Files
speckle-server/packages/frontend-2/log.info
T
Kristaps Fabians Geikins 3313787f16 fix(viewer): viewer node16 support + fixing up package.jsons (#2442)
* fix: viewer node16 support + fixing up package.jsons

* lockfile fix

* Removed unnecessary type augmentations. Deleted unused SpeckleCameraControls

---------

Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
2024-07-15 15:16:13 +03:00

14 lines
1.5 MiB
Plaintext

file:///home/fabis/Code/speckle/speckle-server/packages/viewer/dist/index.js:1
import e from"three/examples/jsm/libs/stats.module.js";import{PMREMGenerator as t,ShaderMaterial as i,NoBlending as n,TextureLoader as r,Matrix4 as s,Euler as a,Texture as o,Color as l,DataTexture as c,Box3 as h,Vector3 as d,AlwaysStencilFunc as u,ReplaceStencilOp as p,UniformsUtils as m,MeshStandardMaterial as g,MeshBasicMaterial as v,MeshDepthMaterial as f,MeshNormalMaterial as w,PointsMaterial as S,ShaderLib as A,NearestFilter as y,Vector2 as T,Material as E,FrontSide as x,DoubleSide as R,Float32BufferAttribute as C,InstancedInterleavedBuffer as M,InterleavedBufferAttribute as O,BufferAttribute as b,Vector4 as I,DynamicDrawUsage as N,Mesh as B,PlaneGeometry as D,BufferGeometry as L,Uint32BufferAttribute as P,Uint16BufferAttribute as z,Box3Helper as U,Ray as k,Sphere as V,RGBAFormat as F,FloatType as Q,Triangle as q,BackSide as j,Group as J,InstancedMesh as G,InstancedBufferAttribute as W,Quaternion as H,Points as X,MathUtils as K,Raycaster as Y,CustomBlending as Z,DstColorFactor as _,ZeroFactor as $,AddEquation as ee,DstAlphaFactor as te,WebGLRenderTarget as ie,RGBADepthPacking as ne,OneFactor as re,ReverseSubtractEquation as se,RedFormat as ae,RepeatWrapping as oe,EqualStencilFunc as le,LinearFilter as ce,OrthographicCamera as he,BasicDepthPacking as de,CameraHelper as ue,MaxEquation as pe,WebGLRenderer as me,Plane as ge,Scene as ve,sRGBEncoding as fe,ACESFilmicToneMapping as we,VSMShadowMap as Se,DirectionalLightHelper as Ae,DirectionalLight as ye,Object3D as Te,Spherical as Ee,Matrix3 as xe,PerspectiveCamera as Re,Clock as Ce,CircleGeometry as Me,LineBasicMaterial as Oe,SphereGeometry as be,Line3 as Ie,EllipseCurve as Ne}from"three";export{Box3,Vector3}from"three";import{EXRLoader as Be}from"three/examples/jsm/loaders/EXRLoader.js";import{RGBELoader as De}from"three/examples/jsm/loaders/RGBELoader.js";import{FontLoader as Le}from"three/examples/jsm/loaders/FontLoader.js";import Pe from"js-logger";import{has as ze,get as Ue,groupBy as ke}from"lodash-es";import Ve from"tree-model";import{LineMaterial as Fe}from"three/examples/jsm/lines/LineMaterial.js";import{createTextDerivedMaterial as Qe,Text as qe}from"troika-three-text";import{LineSegments2 as je}from"three/examples/jsm/lines/LineSegments2.js";import{LineSegmentsGeometry as Je}from"three/examples/jsm/lines/LineSegmentsGeometry.js";import{CENTER as Ge,MeshBVH as We,ExtendedTriangle as He}from"three-mesh-bvh";import{EffectComposer as Xe}from"three/examples/jsm/postprocessing/EffectComposer.js";import{Pass as Ke,FullScreenQuad as Ye}from"three/examples/jsm/postprocessing/Pass.js";import{CopyShader as Ze}from"three/examples/jsm/shaders/CopyShader.js";import{SAOShader as _e}from"three/examples/jsm/shaders/SAOShader.js";import{DepthLimitedBlurShader as $e,BlurShaderUtils as et}from"three/examples/jsm/shaders/DepthLimitedBlurShader.js";import{SimplexNoise as tt}from"three/examples/jsm/math/SimplexNoise.js";import{lerp as it,clamp as nt}from"three/src/math/MathUtils.js";import{TransformControls as rt}from"three/examples/jsm/controls/TransformControls.js";import st from"string-to-color";import{ObjectLoader as at}from"@speckle/objectloader";import{OBJLoader as ot}from"three/examples/jsm/loaders/OBJLoader.js";import{mergeVertices as lt}from"three/examples/jsm/utils/BufferGeometryUtils.js";import{SpeckleViewer as ct}from"@speckle/shared";class ht{constructor(){this._events={}}on(e,t){this._events[e]||(this._events[e]=[]),this._events[e].push(t)}removeListener(e,t){if(!this._events[e])return;this._events[e]=this._events[e].filter((e=>e!==t))}emit(e,...t){if(!this._events[e])return;this._events[e].forEach((e=>{e(...t)}))}dispose(){this._events=null}}var dt;!function(e){e.TEXTURE_8BPP="png",e.TEXTURE_HDR="hdr",e.TEXTURE_EXR="exr",e.FONT_JSON="font-json"}(dt||(dt={}));const ut={showStats:!1,verbose:!1,environmentSrc:{id:"defaultHDRI",src:"data:image/png;base64,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Q+OARAQ8PARAS8OARAP8OASAQ8OAQAO8P8R8N8O8P/ATgEgEvDwEQEPDgEQEfDgEQEvDgEQD/D/EPDgEgEfDwEQEvDvEvD/EPDvEPDgEgEfDgEQEPDwEgDwEgDvEPEAEgEfDwEgD/DwEAEPDgEgEfDwEfjvEfEvD/DvEfDwEQEvDvEfEAEgEPDQEgD/DwEvjwEQD/DwEQD/DvEPEAEQEfD/D/DwEQEfDvEPEAEQEfDwEQEAEgEfEPDwEgD/EAEgEPD/D/D/wE4BAA8BIBH5IBABEBDxDxLw8BIA/xABIBHw8BIBDw/xDw8BIBHw8BEBHw8BL4/xLw4BIBDw/xHw/xLw4BD47xDw8BIBHw/xLw8BEBDw4BABDw8BIBLw8BEBHxIBH47xHw/xDw4BIBABIBDxDw4BEA/w8BIBDw8BIBHw8BIBIBIA7xDw8BIBHxABIA/w8BEBLw/xHxDxHw8BIBHxIBL4/xHxDxHxABIBHxHxLw4BIBDw8BEBLw/xDw/xHw/xLxABIBLw/xDxEBD5DxD5IBHxIBIBDxEBL48BIBHw/8BQASAR8R8Q8PASAS8Q8Q8Q8R8S8R8PASAQ8QASAS8Q8S/AUPDwEgEPEQEgEvEAEgEPEQEvkPEfDwEgEfEQEgEvEvEvEAEgEPEAEAEQEQEAEgEQEQEAEQEgEgEAEgEAEkjgEAEQEQDwEAEPDwEgDwEkjgDwDwEPEgEQEADwDwEvEPwFABABLxIBEBDxHxLxEBAA8BIBABIBHxABL48BEBIBIBABEBDxEBIBIBEBDxIBFJEA8BDxABABHw8BIBEBEA8BABHw8BAA4BIBEBABLw4BIBABEBABIBIBEA8BIBABIBEBABABIBABEBEBABABIBHxABEBABIBEBLxIA8BEBLxEBEBLxDxHw8BIBHxABL5EBABLxDxEBIBDxEBHxHxEBABLxEBIBEBHxIBDxEBABIBHxEBLxIBEBEBIBLxEBIBIBABIBHxH8BR/A0QEfEvEQEvEQEvEfEPEQEgEAEQEQEgEvEgEfwFIBABIBHxEBH5H5IBHxIBH8HR8RASAR8Q8QAQAS8Q8RASAQARAQASASARARARASARASASAS8S8RASAR8S8S8QASAR8PARAQ8RAS8SAS/AUgEfUkgEgEgEgEgEgEgEgEfEvEgEfEvEvkvEfwFIBD8BSAQAQ+Q/AUgEgEvEkkvkvEvEfEvEPkgEQEgEgEgEPwFIBIBHxEBIBLxIBIBDxEBIBIBLxH8DSAR8S/AUvkfwlIBABIBL5EBL5LxLxDxL8FS/A0gEvwFD5IBIBLxL8DSASAS8RARAS8QARAS+SASAS+SARAS/AUgEgEPEkgEkkkgEkgEfUvEUke0kUkUkku0QEUkvkfUgEQEu0gEkAEkfwBHxEBIBFIBJJIBJJJFIBL1LtIBFJFL1IBEBIBIBHxJFEBFFHxFJLtLtJIBH8BR7SS8SSS7SS7SASAR+SAR7SQSS+R/AEe0Ue0gEvEkfEkUkUkgEgEvEe0Uu0vwBL1JLtLtL8CSS9SS/AEO0kkkgEkkkgEkvUku0vwFLtJLtHtLxJL8DSQASS/A0u0QEku0kvwZL8BS9SAS7RRRSQASASASSSSSARSASASSR7SAQRSS8SARSS/AEfwBJHtJIBJJJJJL1LtJJL1JFIBJL1LtJL1IBJIBIBJJL8AS/AUUu0gEfwFJJIBJL5L5JJLxJEBL1LxHtLxJJL8AS8R8S/AEkke0kfwBJLxL1JJJLxLxLtLtLxL5H8FS/AUkvEvwBHtIBL5LxL8BSASS7SSS9S/BEvwNHxJL1IBL8BRS9SAR+S+S8S/CEgEvEgEvwNJJL1L1L8BS9S/AUvEvwJL8AS7R8RAS7SSR9S/EkvEvkvwBIBIBL8ES7S/AUvUvxRLtLtLxL8DS9SAS8S/A0vUfEkvEvEku0vwBL8AS9S7SASSARS/AEfkku0vwJIBJJL5IBJFL5L8CSSAS/CEvwFJL1JL8ESSSS+S/AEu0u0vwZL8HSASAS/AUu0gEvxFHxL1LtIBL8MS/DEvwZH1L8AS/AEvwBL8AS/CUvwdL8DS9S/AkvyxLtIBABL8JS9R/AEvEQEvkgEu0vkvwBIBH8BS/E0u0ku0gEkgEvEQEfw9JLtL8CSS/DUQEvwhH8JS/EEu0vwFL85S/BEv1JL8ES7S/GUvxJL8fS/DkvxVL8cS8S/AEvwlIBL8HSS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9OE////////6h////0N////QT/5J/+R//k3/5F/eSv3kf95P/eRv3kv95I/eTv3kT85L/OSPzk785H/OS/zkn85P/ORvzkz85J/OT/zkj85M/OSvzlD85G/GTPxkn8ZP/GSPxkz8ZK/GUvxkj8ZN/GSvxlH8ZJ/GTfxkv8ZQ/GR/xk38ZK/GUPxkn8ZN/GS/xk/8ZJ/GTfxkv85K/GTvxkv8ZS/GSPwk38JL/CUPwkr8JO/CTPwlH8JJ/CTfwkv8JS/CSvwk78JM/GSPwk38JL/GSvwk78JM/CUvwkr8JO/CS/xkv8JO/CTPwlL8JJ/CTvwkz8JS/CS/wk78JM/GSvwk78JM/GS/wk/8JN/GSvwk/8JM/GS/wk/8JN/CUvwkr8JP/CTPxkz8JQ/CTfxkn8BP/ATPwFL8BL/AT/wE38BS/ASvwE/8BN/CTPwE/8BN/AUvwEr8BO/ATfwkz8BP/ATfwkv8BP/ATPwkz8BP/ATfwkr8BQ/ATfwkz8BO/ATvwFL8BL/AT/wE38JM/AUPwE/8JL/AT/wE38BS/ATPwE/8BO/CS/wFD8BN/CTPwFD8BO/CSvwE/8BN/CTPwE/8BN/AUvwEz8BP/ATfwk38BR/ATvwkv8BQ/ATfwkz8BQ/ATvwkz8BS/ATvwk38BP/ATvwFL8BL/AUfwE78JM/AUfwE/8JM/AUPwE78JN/AUPwE78JL/AUfwE78JN/AUPwE78JM/AUfwE78JN/AUPwE78JM8R8O8S8M8S8Q8S8M8P8O8S8O8S8P/ATPEvDvwE3xDw/8BM8Q8O/ATvEfD/wEvxDw78BN8R8P/ATfD/DvwE3xDxD8BM8R8O/ATfEvDvwE3w/w78BO8P8P/ATPEPDvEvDfEPD/wE38BP8S8O8S8Q/ATPEvDvwE3xDw/8BN8S8P/ATvEvEPwEzxHw78BO8R8Q/ATfEPDvwE78BQ8S8M8S8P/ATvwE/8BN8Q8P/ATvEPEfEvDPEfD/wE78BQ/ATfEvD/EvDvEPEfwEzxLw/8BO8S8Q/ATvEvD/wE7xLxD8BM8S8O/AT/EfEPwE3xLxD8BP/AUfwE7xHxD8BQ8S8P/ATfwE/8BP8S8Q/ATfEvEPwE78BP/ATvwFD8BP/AUfwE3xLw/8BO8R8P/ATvEvD/wE/xHxD8BN8R8P/ATvwFH8BN/AT/EvDvEvEfwE78BQ/ATvEfEPwE78BP/AT/EvEPwE4BAA/w8BEA/w4BABDw8BIBLw0BABHw8BIBLw4BIBDw/xDw4BIBDw8BL44BABHw7w/w4BIBABIA/xDw4BIA/w8BABLw4BIBDw4BIBHw7xDw8BEBLw0BIBHw8BEA/w/xDxD8BOARAQ8PASAQ8P8Q8PARAP8OAS+P8R8PASAP8P8S8OAQAQ8OAS+PASAQ8P/ATgEgEPDvEvDwEQEPEAEQD/D/EPDwEvjgEgEfDwEfjwEgEvEAEgEvEPEvEAEgEvDgEgEfEfEvDgEgEfEfEfD/EvEPEvDwEgEPDwEQEfDvD/D/EvD/EPD/EfDgEQD/DwEgEvDvEvEAEgEvD/wE/xLw8BIA/xABIBLw/w/xDxHw/xL5IBDw4BIBD8BS8PASAQ8R8S8P8Q8QARAQ8QASAS8P8R8OARAS8QASAS8P8S8S8S8PARAQ8P/AUgEgEPEAEQEvD/EfEAEgEfD/EvD/EfDvEvEPEfEPEfwFLw4BEBHxDxLxHxHxDxHw/xLxD8BPASAS8QASAS8P8R8Q8S8P/BUvEQEQEvEfwFHxLxHxLw8BL5EBIBLw/xLxL8BP8Q8QAS+PASAR8R8Q8R8S8RAS+QASAQ8QASAQ8Q/AUfwFLxHxABH4/xHw8BL4/xEBIBDxIBIA/8BPAS+PAQAQ8OASARASAPASAQ8QAQAS8P8R8QARAQ8SAQASASAR+SAQASAQ8RAQAQASAQAQAQ8RARAS8R+SAQARAQASAPAQ8RAPAQAS8PAQASASAQASASASAS+RAQ8SASASASAR8SARASASASASASARAQ8SAQAQ+RAPASAQASAQARAQ8RARAS8QAQ8RAS8R8SAR+RASAS8P8QARASARAQASASASAS8SAR8SARAP8RASASAQ8SAQARASAQAQASARAPARARASAS/AUAEQEfEPEvEQEgEQEgEQEfkfkvEQEfkgEvwFHxEA/xEBABL5L8BR+SASARAR/DT/EvwFLxL8BSASASAQAP/A0QEfEQEgEfEvwFEBEBLxLxLxIBIBLxEBH8BQAR8R8Q/AUfkPkgEgEQEvkvD/EPEAEPEgEgEgEQEvkvwNHxIBHxEBLxIBABIBL5IBL8DSARAS+R8Q+SAS8S/AUvwFD8HSAR/AUvkfEvEfwVIBD8FS8RAS+S8S8S8SAS8SAS/AUgEQEvwNH8DS8S+Q8SASAR+S8SASAR+RAR+SAS8S8R8S8S8S8S/AUvEvEvwNEBIBIBH8BS8R+SAS8S8QS8Q9SAS8SS8Q7S7RS/AEgEvwBIBIBIBIBIBL5JEBHtIBIBJLxIBJLxJJL8ESRR8S/BEgEkfUvEAEu0fwRIBL8AQ+S7R7S7SASASS7SS/AEvkgEgEgEkvUe0u0fkgEUvEvwdIBJIBJJJL8AS9SSAR8S+S8S9SAS9SARS+SASSARS7S9S8S7SASS/AUkfwZLtIBJLxL8AS7S7SS/AkvwpL8CSASAS/AUvEvwVIBLxIBJLxJLxIBH8CS8S8S7S8S9S/AEfwpEBIBJH8GS/AEgEu0kvUvEvUfkvEvEvwRL8DS9S7R/EUvwJL1LtL8BS7S/B0kUUgEkvwJIBFIBLtH8BS8S/AEvwZL8ESASS9S/AkvEUvw1JL8CS/AkvEku0u0vwBEBLtIBL5L8JSAS/BEkUvwJL8BS9S/CUkQEvwJLtIBL8BS+S+S/AUu0kkvUu0kvwNIBIBIBL8AS7S/Dku0vkvEku0vwxLxEBFIBL8AS/AkvEgEvUgEkgEkvEvwNLtL1IBLtL8DS9SSASAS+S/B0u0u0vkvwVL8BSS8S/OEvwZLtL8RR9S/Ikvx1L9AS/WkvwBL8QS/E0u0vzBL1L86S/EUvzZL80S/UUvwhL92S/Gkvw9L9HS/BUvy1L8ES+S/DUvwJLtLxL8KS/TkvwlL8DS/Z0vx5L/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////vBABRhxyCCCCSSSSjTTTjTjjjTjz0UEEkfEvUkg0GEH1NkcDPZS47Fde4mEw+fb0rZ85Lv0T4f7sbMlCU8r5TQVw0rb87n4EzKrm8MjR2HaD5CrwVw093flLnyBxA/nKjImuPH+5NBXuHuZ7kufocQ+IFQLeanr/kmQVpitmfOa79E6LKnRwFvJx6/5TJlcNPcz8S679ASkLGlQlDU9Q/OwVww93Pnd+QOCPSrCQanqL5TQV7p7vylz9DbFeQXRSkho9Re4mQVpvlLn6NZyQW9GZpx4i+SZBWm+UufoLqHqQW0oyk89v5hBWmK2Z8cV5+jSKlA3pHaPneI/lNDFUCtmfOZ+iTHRA3oxE5x4jz53Ve/K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S/AT/wkz8BS/AUPwlD8BQ/AT/wkz8BP/ATvwk38BR/AT/wk38JP/CTvwFL8BO/CTPwlD8JO/CUPwk38BR/AT/wk78BR/AT/wk38JP/CT/wFL8BQ/CTvwFH8BP/CTvwlL8JM/CUPwk/8BR/AUPwk78BS/ATvwk/8BS/AUfwk38BR/AUPwk78BR/AUvwk/8JP/CT/wFL8BS/CTfwk/8JP/AUfwFH8JN/AUfwFD8JQ/CUPwk78BS/AUfwk/8JS/CTvwFL8BQ/CT/wFH8RN/AUPwFL8BS/ATvwFL8BS8S8Q/ATfEvEfwE/8BR/ATvwFL8BQ/AUvwE38BR8S8Q/AUfwE/8BQ/AT/wk7xLxH8BP/AUfwE78BQ/AUPEvwU7xLxD8BR8S8Q/AT/wFH8BR/AUvwE7xLw/8BR/AUvwE/8BR/AT/wFD8BO8S8S/AUfEvEvwE78BQ/AT/EvEPwE78BR/AUfwk/8BS/CUvwE78BS/AUfwFD8BP8S8R/AUvwk78BS/AUPwFL8BP/AUfwFD8BS/ATvwFL8BS/CT/wFL8BS/AUvwE/8BS/AUfEvEfwFDxL8FS/AUvwE/8BS/AUPwk/8BS/AUvwFL8BP/AUvwFH8JP/AUvwFL8JO/CT/EvEvwFL8JR/AUvwFD8JQ/CUPwlL8JO8S8Q/AT/EvEfwE7xLw/xLxHxL8FP/AUPwFDxLxH8BR8R8RAR+Q8S8R/AUAEgEfwVL8BSAS+Q/CUgEvkfEfEPEvEvwFL8BS/AT/EvEPwFLxHxHxLw8BH5L8BS/CT/wNIBL8BS8R/AT/wFH8BS8S/BUPEvwVEBL8HP/AUgEvkvwFLxLxLxL8NSASAR8Q8S/BUvwFL8BQ/AUvwFEBL5L8BQ/CUfwFL8BR8S8R/AUvEvwFL8FS/AUvEvwVD8BS/EUfEvwVD8JS/AUvwVL8FS/AUfwFEBIBLxL8BQ/CUfwlL8JS8S/BUPwFLxL8HS+S/BUvwFLxH8RS8S8S/AUfwlL8RR/AUvEvEfwFL8JQ/AUgEvkvxVLxIBL1L8CS/BUvkgEgEgEvwNL5IBIBH8FSAS+RAS+S/AUvxFEBL5D5LxL5LxH8HS8SAR+S8SAS8R8Q8R/AUQEfwdLxL8FR/CUvw9L5L8HS/A0vwVL8NS/B0vkQEgEvEvEvkgEvEvwFL8BS/AUfwNL8LSAS/D0gEgEfxVLxL8LS/BUvwVL8PS/A0vEvxNLxL8BS/CUvEvytL8XS/DUvwdL5H8HS/A0gEvwNIBL8TS8S8R/K0vxtLxL8TS/AUgEvzlL8FS8S8S8S/BUvwVLxL8HS/H0vwxL8uSASAS8SS/AEvEvEvwFL8lSASASASAR/A0vxZL1L8RS/GEvxBL8PS8S/DUvEvwJIBL8DS9SS/DkvwdIBL5IBL8AS/AkvUkgEvwlL8NS/X0gEvwJL8jS7S8S/AEvxRL8XSS/CkvwBL8ES/CUvwtL8gS/IkvxlL8+S/A0vwJLxJL8DSAS7S7S8S/HUvwRL8VS+S/GUvwRL8KS/B0vylL///GUgEv5lL8IS/TUvyJHxL88S/VEvxxL/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3kT////////qG////Qz///9A//kj/5G/+TP/kX95J/eRv3k395G/eSv3kj95O/eRfzkr85I/OT/zkf85L/OSfzlD85H/OS/zkn85P/OSPzkz85K/OUPzkj8ZM/GSvzkn8ZM/GSvzkn8ZN/GSvzkr8ZN/GS/zkn8ZN/GS/xlL8ZK/GTfxkz8ZS/GSvxk38ZL/OS/xk78ZM/OSfwk78JM/GS/wk78JM/GSvwk78JM/GS/wk78JM/GSvwk78JM/GTPwk/8JN/GS/wk78JM/GTPwk/8JN/GSvwk/8JN/CUvwkz8JP/CTfxkv8JR/CTfxk38JP/CTfxkv8JQ/CTfxkz8JS/CTvxkz8JR/CTvxk38JQ/CTvxkv8BS/ATvwk38BQ/ATvwkz8BS/ATvwk78BR/ATvwkz8BS/AT/wk78BR/ATvwkz8BR/ATvwk78BS/AUvwkv8BS/AT/wk78BS/AT/wk38BS/AT/wk78BR/AUPwkz8BR/AUPwk78BS/AT/wFL8BN/AUPwE/8JO/AUvwFD8JM/AUvwFH8JO/AUvwE78JO/AUPwE/8JP/CUvwk38JP/CTvwFL8BQ/CTvwFL8BQ/CTvwFL8BP/CTPwFL8BR/CTvwFL8RO/AUvwFD8JQ/GTfwFL8BR/CT/wFH8BQ/CTvwFL8BS/CT/wlD8JN8S8Q/ATvEfEPwE7xLxL8BQ8R8R/ATfEvEfwFDxH8FP8S8S/AT/wFHxLw3xLxH8BP/BUvD/EvEvwFL8BQ/ATvEfEPwE/8JP/AUvwE/8BR/ATvEvEfwE/8BS/AT/EvEvwFDxL8FP/AUvwFD8JP/AUPwFH8JO8S/BUPEvEPwE/8BQ/AT/wFL8BO8R8Q/AT/wFL8BP/AUvwFDxLxL8BO8S/BUPwFL8BO/AUvwFDxL8FP8R/BT/EfEvwFD8JQ/AUvwE78BS/AUfwFL8BO/AUvwFLxL8FP/AUvwFH8BS/AT/wFL8BQ/CTvEvEvwE/xLxL8BO8S8S/CUvwE7xLxD8BQ/CUPwFL8RQ8S8R/AUvwk/8BS/AUPwk7xL8FQ8S/BT/xFL8BO/CUPEvEfEfEPwFLxLxHxLxH8BQ/AUPwFD8BS/AT/wFL8BQ/AUvEvDvwE/8BQ/AUfwFLxHxL8BP8S8S/AUfEfEvwFD8BS/AT/EvEAEvkPwFL8BS8S8Q/AUfwFD8BQ/A0vkvwk/8JS/A0vkfwFL8BS/A0vkfwVLxD8JQ/AUvEvEgEgEvEvwE/xL8FS/CUfwFHxLxDxLxL8BQ8S8QAS+SAS/CUvkfwFD8FS8Q8S8R8S/AUvEvwE/8BR/AT/EvEvEvD/wlHxL8FS8R8Q/CUPwFL8FS8R8S/BUfEvwVH8BR/AUvEfEvwFD8BS/AUvwFHxLxLxL8JS8R8S8Q/CUPwlL8BS/BUvEgEvkPxFL8RQAS/GUgEvEPwFLxH8FS8S8S/AUQEvkvwFLxIBL8LR/AEj/wlIBD8BSAS8Q/FUvwVH8BR8RAS/A0QEvkvwFL8BS/CUgEvkvwtH5IBHxL8HS/C0vwFIBL5HxIBL5L5L8DSASASAS/DUvwtL5L8JS/AUvwNL8jSAS/BUvwtL8JS/CUvEvwdL8BS/B0vwlL5IBH8NS/AUvwVLxL80S/GkgEvEvwVL8DS/EUvEvxFL8ZS/AUvxFL8XSAR/C0vwlIBL8VS/EUvwVL8NS/NkvwNLtIBH8AS/DEkvwxL8AS/G0vw9JIBL5L8FS/FUvEvxVHtL8QS7S/DEvyBL8RSAS/BEvwpL8cSAS/AUgEkvwBJL8ES/IEvwpL8IS/C0vwVL8GS8S/Ekvku0gEvxdL8ES/CEvUkkvwdJIBJL8HS/AUu0vwNL5L8DS9S/AEvwRL8TS/F0vwJIBL8ISS/D0vw1IBL8bS7S/AUkvw9L8ASS/Akfx9L8KS8S9S/AUu0vEvwRL8BS/CEvwlL5L1L8RS/H0v/ZL8cS//////cS/Ikv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////xEQAUYcccggggkkoow0044000489EBFFDxIBLxLxJJIAF0IuFksDqC0KOQEze2WrYtzSxbNl7swvTJdLGGGZ11ZpuRfVgAsyKlAexGc3MPG0AkBTQg9aEMbmsYyf9JE7dj4Lsm2qzZRVKwbGxhSE703vWJiqB2mX+M4WrZIwi7v/GgCkCRA5Ko0hTEzI0yr4HBy7sJqR0C0X6kkoakHYtedoV7yEvN3bKk0WA3eW+kaCkUl9L0SXIXXdgKbDh8BEAfVjnSxWRWEhNc/Tpavh/LOsiY7Os9VKLKqoewEiYWQIQM0adJ0HskSzHYqvFSxCz/TKsS9jGsI4ZY8XmwWVe28OmohxK4V5xYpJIwSu1XdiYdyRAGGj/RLWSSOEznXdjptYCWbzelOnCWq0ERNl3aNS0NAhG6Ke4GN076lapjq4xm7sF1JzQTspZGDpQxZennPXLdXe0ic+rhU2zVUrycmhGKnIz98TdBFDyEoy7hWLAKTAYvBPAB8gCBEA0dWKiQAicA9IRpTy9VQwXABdgB/C9jCNzgkFrCaqthF3DCWWHcPWTImuGElLAIiBlIQwAFUA1l81KtItCi+Kky51q0rVkVWAdsMnHg3Am1fqyhCXgi9xep9WALyABMAaoDXCmQYThDIEAhSWb8WxP1lH0XXZFFmai6AMGBo6FTxaSExBZdxpL1eABXA0dSqAdEhSRAm31eibwBhANHRqwhFsEZMQWXb5sBzgNYHsAAoPQwEgegtloEa3MhZDif0q8vzEXCtWi+tNgGUQqAS4E5NGHDgxXZsWXiwA4CeFIGuA040lwnBHGDmXdgGmBhUCGAJuADCHUucIygPABIYBGyhDKHyGLEwkgBSgB9CZ7Wl2Ki/MziJ1guU8R8ic4YSyxp9Mkic4YSywAORIF6gAAYfDwYDyJuUCoxY+tNrszNYJ2b5mcq5mhytCAyw1fXmxHoo76DFX8PIA5OUGUj0VhgAzRc7dtSq0t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",type:dt.TEXTURE_EXR}};var pt;!function(e){e.ObjectClicked="object-clicked",e.ObjectDoubleClicked="object-doubleclicked",e.LoadComplete="load-complete",e.UnloadComplete="unload-complete",e.UnloadAllComplete="unload-all-complete",e.Busy="busy",e.FilteringStateSet="filtering-state-set",e.LightConfigUpdated="light-config-updated"}(pt||(pt={}));const mt={enabled:!0,castShadow:!0,intensity:5,color:16777215,elevation:1.33,azimuth:.75,radius:0,indirectLightIntensity:1.2,shadowcatcher:!0};var gt,vt,ft;!function(e){e[e.STREAM_CONTENT_MESH=10]="STREAM_CONTENT_MESH",e[e.STREAM_CONTENT_LINE=11]="STREAM_CONTENT_LINE",e[e.STREAM_CONTENT_POINT=12]="STREAM_CONTENT_POINT",e[e.STREAM_CONTENT_TEXT=13]="STREAM_CONTENT_TEXT",e[e.STREAM_CONTENT_POINT_CLOUD=14]="STREAM_CONTENT_POINT_CLOUD",e[e.NONE=0]="NONE",e[e.STREAM_CONTENT=1]="STREAM_CONTENT",e[e.PROPS=2]="PROPS",e[e.SHADOWCATCHER=3]="SHADOWCATCHER",e[e.OVERLAY=4]="OVERLAY",e[e.MEASUREMENTS=5]="MEASUREMENTS"}(gt||(gt={})),function(e){e[e.RENDER=1]="RENDER",e[e.SHADOWS=2]="SHADOWS",e[e.CLIPPING_PLANES=4]="CLIPPING_PLANES"}(vt||(vt={})),function(e){e[e.NONE=0]="NONE",e[e.OVERLAY=1]="OVERLAY",e[e.OUTLINE_ONLY=2]="OUTLINE_ONLY"}(ft||(ft={}));class wt extends t{constructor(e){super(e)}compileProperEquirectShader(e){this._equirectMaterial=new i({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},rotationMatrix:{value:e}},vertexShader:"\n precision mediump float;\n precision mediump int;\n attribute float faceIndex;\n varying vec3 vOutputDirection;\n // RH coordinate system; PMREM face-indexing convention\n vec3 getDirection( vec2 uv, float face ) {\n uv = 2.0 * uv - 1.0;\n vec3 direction = vec3( uv, 1.0 );\n if ( face == 0.0 ) {\n direction = direction.zyx; // ( 1, v, u ) pos x\n } else if ( face == 1.0 ) {\n direction = direction.xzy;\n direction.xz *= -1.0; // ( -u, 1, -v ) pos y\n } else if ( face == 2.0 ) {\n direction.x *= -1.0; // ( -u, v, 1 ) pos z\n } else if ( face == 3.0 ) {\n direction = direction.zyx;\n direction.xz *= -1.0; // ( -1, v, -u ) neg x\n } else if ( face == 4.0 ) {\n direction = direction.xzy;\n direction.xy *= -1.0; // ( -u, -1, v ) neg y\n } else if ( face == 5.0 ) {\n direction.z *= -1.0; // ( u, v, -1 ) neg z\n }\n return direction;\n }\n void main() {\n vOutputDirection = getDirection( uv, faceIndex );\n gl_Position = vec4( position, 1.0 );\n }\n ",fragmentShader:"\n precision mediump float;\n precision mediump int;\n varying vec3 vOutputDirection;\n uniform sampler2D envMap;\n uniform mat4 rotationMatrix;\n #include <common>\n void main() {\n\n vec3 outputDirection = normalize( vOutputDirection );\n outputDirection = normalize((rotationMatrix * vec4(vOutputDirection, 0.)).xyz);\n vec2 uv = equirectUv( outputDirection );\n gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n }\n ",blending:n,depthTest:!1,depthWrite:!1}),this._compileMaterial(this._equirectMaterial)}}const St=ze(Pe,"warn")?Pe:Ue(Pe,"default");class At{static getLoader(e,t){if(void 0===t&&(t=e.split(".").pop()),!Object.values(dt).includes(t))return St.warn(`Asset ${e} could not be loaded. Unknown type`),null;switch(t){case dt.TEXTURE_EXR:return new Be;case dt.TEXTURE_HDR:return new De;case dt.TEXTURE_8BPP:return new r;default:return null}}static hdriToPMREM(e,t){const i=new wt(e),n=(new s).makeRotationFromEuler(new a(.5*-Math.PI,0,.5*-Math.PI));i.compileProperEquirectShader(n);const r=i.fromEquirectangular(t);return i.dispose(),r.texture}static getEnvironment(e,t){return this._cache[e.id]?Promise.resolve(At.hdriToPMREM(t,this._cache[e.id])):new Promise(((i,n)=>{const r=At.getLoader(e.src,e.type);r?r.load(e.src,(n=>{this._cache[e.id]=n,i(At.hdriToPMREM(t,n))}),void 0,(t=>{n(`Loading asset ${e.id} failed ${t.message}`)})):n(`Loading asset ${e.id} failed`)}))}static getTexture(e){return this._cache[e.id]?Promise.resolve(this._cache[e.id]):new Promise(((t,i)=>{if(e.src.includes("data:image")){const n=new Image;n.src=e.src,n.onload=()=>{const i=new o(n);i.needsUpdate=!0,this._cache[e.id]=i,t(i)},n.onerror=t=>{i(`Loading asset ${e.id} failed with ${t.toString()}`)}}else{const n=At.getLoader(e.src,e.type);n?n.load(e.src,(i=>{this._cache[e.id]=i,t(this._cache[e.id])}),void 0,(t=>{i(`Loading asset ${e.id} failed ${t.message}`)})):i(`Loading asset ${e.id} failed`)}}))}static getFont(e){let t=null;return t=e.src?e.src:e,this._cache[t]?Promise.resolve(this._cache[t]):new Promise(((e,i)=>{(new Le).load(t,(t=>{e(t)}),void 0,(e=>{i(`Loading asset ${t} failed ${e.message}`)}))}))}static async getTextureData(e){const t=await At.getTexture(e),i=document.createElement("canvas");i.width=t.image.width,i.height=t.image.height;const n=i.getContext("2d");if(!n)throw new Error("Fatal! 2d context could not be retrieved.");n.drawImage(t.image,0,0);const r=n.getImageData(0,0,i.width,i.height);return Promise.resolve(r)}static generateGradientRampTexture(e,t,i){}static generateDiscreetRampTexture(e){const t=e.length,i=new Uint8Array(4*(1*t));for(let t=0;t<e.length;t++){const n=4*t,r=new l(e[t]);r.convertSRGBToLinear(),i[n]=Math.floor(255*r.r),i[n+1]=Math.floor(255*r.g),i[n+2]=Math.floor(255*r.b),i[n+3]=255}const n=new c(i,t,1);return n.needsUpdate=!0,n}}At._cache={};class yt{constructor(){this.lastPauseTime=0,this.needsWait=!1}tick(e){performance.now()-this.lastPauseTime>e&&(this.needsWait=!0)}async wait(e){this.lastPauseTime=performance.now(),await new Promise((t=>setTimeout(t,e))),this.needsWait=!1}}class Tt{constructor(){this.boxes=new Array,this.worldBox=new h,this.VecBuff=new d,this.BoxBuff0=new h,this.BoxBuff1=new h,this.MatBuff=new s,this._worldOrigin=new d}get worldSize(){this.worldBox.getCenter(this._worldOrigin);const e=(new d).subVectors(this.worldBox.max,this.worldBox.min);return{x:e.x,y:e.y,z:e.z}}get worldOrigin(){return this._worldOrigin}expandWorld(e){this.boxes.push(e),this.updateWorld()}reduceWorld(e){this.boxes.splice(this.boxes.indexOf(e),1),this.updateWorld()}updateWorld(){this.worldBox.makeEmpty();for(let e=0;e<this.boxes.length;e++)this.worldBox.union(this.boxes[e])}resetWorld(){this.worldBox.makeEmpty(),this.boxes.length=0}getRelativeOffset(e=.001){this.MatBuff.identity(),this.MatBuff.makeScale(1+e,1+e,1+e);const t=this.VecBuff.set(.5*this.worldSize.x,.5*this.worldSize.y,.5*this.worldSize.z);this.BoxBuff0.min.set(0,0,0),this.BoxBuff0.max.set(0,0,0),this.BoxBuff1.min.set(0,0,0),this.BoxBuff1.max.set(0,0,0);const i=this.BoxBuff0.expandByVector(t);return this.BoxBuff1.copy(i).applyMatrix4(this.MatBuff).max.distanceTo(i.max)}}var Et;!function(e){e[e.MESH=0]="MESH",e[e.LINE=1]="LINE",e[e.POINT=2]="POINT",e[e.POINT_CLOUD=3]="POINT_CLOUD",e[e.TEXT=4]="TEXT"}(Et||(Et={}));const xt={offset:0,count:0},Rt={offset:0,count:1/0};class Ct{toJSON(){return{}}}class Mt{constructor(){this._stencilOutline=ft.NONE,this.needsCopy=!1}get speckleUserData(){return this.userData}set speckleUserData(e){this.userData=e}get speckleDefines(){return this.defines}set speckleDefines(e){this.defines=e}get vertexProgram(){return""}get fragmentProgram(){return""}get uniformsDef(){return{empty:"empty"}}get baseUniforms(){return{emptyBase:{value:"emptyBase"}}}set stencilOutline(e){this._stencilOutline=e;const t=this;t.stencilWrite=e!==ft.NONE,t.stencilWrite&&(t.stencilWriteMask=255,t.stencilRef=0,t.stencilFunc=u,t.stencilZFail=p,t.stencilZPass=p,t.stencilFail=p,e===ft.OUTLINE_ONLY&&(t.colorWrite=!1,t.depthWrite=!1,t.stencilWrite=!0))}set pointSize(e){this.size=e}init(e=[]){this.speckleUserData=new Ct,this.setUniforms(this.uniformsDef),this.setDefines(e),this.onBeforeCompile=this.onCompile}setUniforms(e){for(const t in e)this.speckleUserData[t]={value:e[t]};this.uniforms=m.merge([this.baseUniforms,this.speckleUserData])}setDefines(e=[]){if(e){this.speckleDefines={};for(let t=0;t<e.length;t++)this.speckleDefines[e[t]]=" "}}copyUniforms(e){for(const t in e.userData)void 0!==this.speckleUserData[t]&&(this.speckleUserData[t].value=e.userData[t].value)}bindUniforms(){if(this._internalUniforms)for(const e in this.uniformsDef)this._internalUniforms.uniforms[e]=this.speckleUserData[e]}copyFrom(e){this.speckleUserData=new Ct,this.setUniforms(this.uniformsDef),this.copyUniforms(e),this.bindUniforms(),Object.assign(this.speckleDefines,e.defines),e.needsCopy&&(this.needsCopy=e.needsCopy)}onCompile(e){this._internalUniforms=e,this.bindUniforms(),e.vertexShader=this.vertexProgram,e.fragmentShader=this.fragmentProgram}fastCopy(e,t){t.alphaTest=e.alphaTest,t.alphaToCoverage=e.alphaToCoverage,t.blendDst=e.blendDst,t.blendDstAlpha=e.blendDstAlpha,t.blendEquation=e.blendEquation,t.blendEquationAlpha=e.blendEquationAlpha,t.blending=e.blending,t.blendSrc=e.blendSrc,t.blendSrcAlpha=e.blendSrcAlpha,t.clipIntersection=e.clipIntersection,t.clippingPlanes=e.clippingPlanes,t.clipShadows=e.clipShadows,t.colorWrite=e.colorWrite,Object.assign(t.defines,e.defines),t.depthFunc=e.depthFunc,t.depthTest=e.depthTest,t.depthWrite=e.depthWrite,t.fog=e.fog,t.format=e.format,t.stencilWrite=e.stencilWrite,t.stencilFunc=e.stencilFunc,t.stencilRef=e.stencilRef,t.stencilWriteMask=e.stencilWriteMask,t.stencilFuncMask=e.stencilFuncMask,t.stencilFail=e.stencilFail,t.stencilZFail=e.stencilZFail,t.stencilZPass=e.stencilZPass,t.opacity=e.opacity,t.polygonOffset=e.polygonOffset,t.polygonOffsetFactor=e.polygonOffsetFactor,t.polygonOffsetUnits=e.polygonOffsetUnits,t.premultipliedAlpha=e.premultipliedAlpha,t.dithering=e.dithering,t.side=e.side,t.shadowSide=e.shadowSide,t.toneMapped=e.toneMapped,t.transparent=e.transparent,t.vertexColors=e.vertexColors,t.visible=e.visible}setMaterialOptions(e){this.stencilOutline=e.stencilOutlines||ft.NONE,this.pointSize=e.pointSize||1}}class Ot extends g{}class bt extends v{}class It extends f{}class Nt extends w{}class Bt extends Fe{}class Dt extends S{}function Lt(e,t){t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((i=>{Object.defineProperty(e.prototype,i,Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null))}))}))}Lt(Ot,[Mt]),Lt(bt,[Mt]),Lt(It,[Mt]),Lt(Nt,[Mt]),Lt(Bt,[Mt]),Lt(Dt,[Mt]);class Pt extends Bt{get vertexProgram(){return"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\t\tuniform float pixelThreshold;\n\n\t\tvarying float vAlpha;\n\n\t\t#define SEARCH_STEPS 10\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec4 instanceColorStart;\n\t\tattribute vec4 instanceColorEnd;\n\t\t// varying vec3 debugColor;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\t\t\tvarying float correctedLineWidth;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n #ifdef USE_RTE\n\t\t\tattribute vec3 instanceStartLow;\n\t\t\tattribute vec3 instanceEndLow;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n #endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tfloat screenSpaceDistance(vec4 p0, vec4 p1) {\n\t\t\tp0 = projectionMatrix * p0;\n\t\t\tp0 /= p0.w;\n\t\t\tp1 = projectionMatrix * p1;\n\t\t\tp1 /= p1.w;\n\t\t\treturn length(p1.xy - p0.xy);\n\t\t}\n\n\t\tvec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n\t\t\t/* \n\t\t\tVector calculation for the high and low differences works on everything \n\t\t\t*BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n\t\t\tIt would seem that when this code gets compiled, vector types get a lower precision(?)\n\t\t\twhich completely brakes the 2 float -> double reconstructio. Doing it separately for each \n\t\t\tvector component using floats works fine.\n\t\t\t*/\n\t\t\tvec3 highDifference;\n\t\t\tvec3 lowDifference;\n\t\t\tfloat t1 = position_low.x - relativeTo_low.x;\n\t\t\tfloat e = t1 - position_low.x;\n\t\t\tfloat t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n\t\t\thighDifference.x = t1 + t2;\n\t\t\tlowDifference.x = t2 - (highDifference.x - t1);\n\n\t\t\tt1 = position_low.y - relativeTo_low.y;\n\t\t\te = t1 - position_low.y;\n\t\t\tt2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n\t\t\thighDifference.y = t1 + t2;\n\t\t\tlowDifference.y = t2 - (highDifference.y - t1);\n\n\t\t\tt1 = position_low.z - relativeTo_low.z;\n\t\t\te = t1 - position_low.z;\n\t\t\tt2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n\t\t\thighDifference.z = t1 + t2;\n\t\t\tlowDifference.z = t2 - (highDifference.z - t1);\n\n\t\t\tvec3 position = highDifference.xyz + lowDifference.xyz;\n\t\t\treturn vec4(position, 1.);\n\t\t}\n\n\t\tvec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n\t\t\t/* \n\t\t\tSource https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n\t\t\tNote here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n\t\t\t*/\n\t\t\tvec3 t1 = position_low.xyz - relativeTo_low;\n\t\t\tvec3 e = t1 - position_low.xyz;\n\t\t\tvec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n\t\t\tvec3 highDifference = t1 + t2;\n\t\t\tvec3 lowDifference = t2 - (highDifference - t1);\n\t\t\t\n\t\t\tvec3 position = highDifference.xyz + lowDifference.xyz;\n\t\t\treturn vec4(position, 1.);\n\t\t}\n\n\t\tvoid main() {\n\t\t\tif(instanceColorStart.w == 0.) {\n\t\t\t\tgl_Position = vec4(0.);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvAlpha = instanceColorStart.w;\n\n vec3 computedPosition = position;\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( computedPosition.y < 0.5 ) ? instanceColorStart.xyz : instanceColorEnd.xyz;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( computedPosition.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n #ifdef USE_RTE\n\t\t\t/** Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl */\n\t\t\t\t// vec3 t1 = instanceStartLow.xyz - uViewer_low;\n\t\t\t\t// vec3 e = t1 - instanceStartLow.xyz;\n\t\t\t\t// vec3 t2 = ((-uViewer_low - e) + (instanceStartLow.xyz - (t1 - e))) + instanceStart.xyz - uViewer_high;\n\t\t\t\t// vec3 highDifference = t1 + t2;\n\t\t\t\t// vec3 lowDifference = t2 - (highDifference - t1);\n\t\t\t\t// vec4 start = modelViewMatrix * vec4(highDifference.xyz + lowDifference.xyz , 1.);\n\t\t\t\tvec4 start = modelViewMatrix * computeRelativePositionSeparate(instanceStartLow.xyz, instanceStart.xyz, uViewer_low, uViewer_high);\n\t\t\t\t\n\t\t\t\t// t1 = instanceEndLow.xyz - uViewer_low;\n\t\t\t\t// e = t1 - instanceEndLow.xyz;\n\t\t\t\t// t2 = ((-uViewer_low - e) + (instanceEndLow.xyz - (t1 - e))) + instanceEnd.xyz - uViewer_high;\n\t\t\t\t// highDifference = t1 + t2;\n\t\t\t\t// lowDifference = t2 - (highDifference - t1);\n\t\t\t\t// vec4 end = modelViewMatrix * vec4(highDifference.xyz + lowDifference.xyz , 1.);\n\t\t\t\tvec4 end = modelViewMatrix * computeRelativePositionSeparate(instanceEndLow.xyz, instanceEnd.xyz, uViewer_low, uViewer_high);\n #else\n vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n #endif\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 offset;\n\t\t\t\tif ( computedPosition.y < 0.5 ) {\n\n\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t}\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( computedPosition.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t#endif\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( computedPosition.y > 1.0 || computedPosition.y < 0.0 ) {\n\n\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t}\n\n\t\t\t\t// debugColor = vec3(0., 0., 1.);\n\t\t\t\tcorrectedLineWidth = linewidth;\n\t\t\t\tvec3 cOffset = offset;\n\t\t\t\t\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t// set the world position\n\t\t\t\tworldPos = ( computedPosition.y < 0.5 ) ? start : end;\n\n\t\t\t\t/*\n\t\t\t\tNot great, not terrible\n\t\t\t\t*/\n\t\t\t\tfloat pixelSize = length(vec2(pixelThreshold/resolution.x + pixelThreshold/resolution.y));\n\t\t\t\tfloat offsetStep = linewidth;\n\t\t\t\tfloat d = screenSpaceDistance(worldPos, worldPos + vec4(cOffset * offsetStep, 0.));\n\t\t\t\t/* We're trying to start off with a step closer to the initial difference between SS distance and the pixel size we want\n\t\t\t\t*/\n\t\t\t\t// offsetStep += pixelSize - d;\n\t\t\t\tvec3 move = offset;\n\t\t\t\t\n\t\t\t\tfor(int i = 0; i < SEARCH_STEPS; i++){\n\t\t\t\t\tmove = cOffset * offsetStep;\n\t\t\t\t\td = screenSpaceDistance(worldPos, worldPos + vec4(move, 0.));\n\t\t\t\t\tif(d > pixelSize) {\n\t\t\t\t\t\tcorrectedLineWidth = offsetStep;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\toffsetStep += offsetStep;\n\t\t\t\t}\n\n\t\t\t\tworldPos.xyz += move;\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segments overlap neatly\n\t\t\t\tvec3 clipPose = ( computedPosition.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( computedPosition.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( computedPosition.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( computedPosition.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( computedPosition.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( computedPosition.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t"}get fragmentProgram(){return"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\t\tvarying float vAlpha;\n\t\t// varying vec3 debugColor;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashOffset;\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\t\t\tvarying float correctedLineWidth;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha;\n\t\t\t#ifdef UNIFORM_OPACITY\n\t\t\t\talpha = opacity;\n\t\t\t#else\n\t\t\t\talpha = vAlpha;\n\t\t\t#endif\n\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / correctedLineWidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t// #include <color_fragment> COMMENTED CHUNK\n\t\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\t\tdiffuseColor *= vColor;\n\t\t\t#elif defined( USE_COLOR )\n\t\t\t\tdiffuseColor.rgb = vColor;\n\t\t\t#endif\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"}get baseUniforms(){return A.line.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,pixelThreshold:0}}set pixelThreshold(e){this.userData.pixelThreshold.value=e,this.needsUpdate=!0}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t);const i=e;t.color.copy(i.color),t.userData.pixelThreshold.value=e.userData.pixelThreshold.value}onBeforeRender(e,t,i,n,r){r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),e.getDrawingBufferSize(this.resolution),this.needsUpdate=!0}}class zt extends Ot{get vertexProgram(){return"\n#define STANDARD\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n uniform mat4 rteShadowMatrix;\n uniform vec3 uShadowViewer_high;\n uniform vec3 uShadowViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n varying vec3 vWorldPosition;\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n\n\nvoid main() {\n\n #include <uv_vertex>\n #include <uv2_vertex>\n #include <color_vertex>\n #include <morphcolor_vertex>\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #include <normal_vertex>\n\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n #include <displacementmap_vertex>\n //#include <project_vertex> // EDITED CHUNK\n \n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n\n vViewPosition = - mvPosition.xyz;\n\n #include <worldpos_vertex>\n // #include <shadowmap_vertex> COMMENTED CHUNK!!!\n #ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n vec4 shadowPosition = vec4(transformed, 1.0);\n mat4 shadowMatrix = directionalShadowMatrix[ i ];\n\n #ifdef USE_RTE\n shadowPosition = computeRelativePositionSeparate(position_low.xyz, position.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowMatrix = rteShadowMatrix;\n #endif\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivotShadow = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowPosition.xyz = rotate_vertex_position((shadowPosition - rtePivotShadow).xyz, tQuaternion) * tScale.xyz + rtePivotShadow.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 rtePivotShadow = computeRelativePositionSeparate(ZERO3, ZERO3, uShadowViewer_low, uShadowViewer_high);\n shadowPosition.xyz = (mat3(instanceMatrix) * (shadowPosition - rtePivotShadow).xyz) + rtePivotShadow.xyz + instanceMatrix[3].xyz;\n #endif\n shadowWorldPosition = modelMatrix * shadowPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = shadowMatrix * shadowWorldPosition;\n\t}\n \n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t/*\n\t#if NUM_RECT_AREA_LIGHTS > 0\n\t\t// TODO (abelnation): update vAreaShadowCoord with area light info\n\t#endif\n\t*/\n #endif\n\n #include <fog_vertex>\n\n#ifdef USE_TRANSMISSION\n\n vWorldPosition = worldPosition.xyz;\n\n#endif\n}\n"}get fragmentProgram(){return"\n#define STANDARD\n\n#ifdef PHYSICAL\n #define IOR\n #define SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n uniform float ior;\n#endif\n\n#ifdef SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n\n #ifdef USE_SPECULARINTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n\n #ifdef USE_SPECULARCOLORMAP\n uniform sampler2D specularColorMap;\n #endif\n#endif\n\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n\n #ifdef USE_SHEENCOLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n\n #ifdef USE_SHEENROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n/** We're disabling color grading for now until we want to properly offer it to the users */\n//#define CUSTOM_TONEMAPPING \n\n#ifdef CUSTOM_TONEMAPPING\n\n\tuniform float contrast;\n\tuniform float saturation;\n\tuniform float whitescale;\n\tvec3 EvalLogContrastFunc(vec3 col, float eps, float logMidpoint, float contrastFactor)\n\t{\n\t\tvec3 x = max(vec3(0.), col);\n\t\tvec3 logX = log2(x+vec3(eps));\n\t\tvec3 adjX = vec3(logMidpoint) + (logX - vec3(logMidpoint)) * contrastFactor;\n\t\tvec3 ret = max(vec3(0.0), exp2(adjX) - vec3(eps));\n\t\treturn ret;\n\t}\n\n\tvec3 evalSaturation(vec3 rgbVal, float saturationFactor){\n\t\tvec3 lumaWeights = vec3(.25,.50,.25);\n\t\tvec3 grey = vec3(dot(lumaWeights,rgbVal));\n\t\treturn grey + saturationFactor*(rgbVal-grey);\n\t}\n\n\tvec3 evalExposure(vec3 rgbVal, float exposureFactor){\n\t\treturn rgbVal * exp2(exposureFactor);\n\t}\n\n\tvec3 filmicTonemap(vec3 x) {\n\t\tfloat A = 0.15;\n\t\tfloat B = 0.50;\n\t\tfloat C = 0.10;\n\t\tfloat D = 0.20;\n\t\tfloat E = 0.02;\n\t\tfloat F = 0.30;\n\t\tfloat W = 11.2;\n\t\treturn ((x*(A*x+C*B)+D*E) / (x*(A*x+B)+D*F))- E / F;\n\t}\n\n\n\tvec3 applyFilmicToneMap( vec3 color) \n\t{\n\t\tcolor = 2.0 * filmicTonemap( color);\n\t\tvec3 whiteScale = 1.0 / filmicTonemap(vec3(11.2));\n\t\tcolor *= whiteScale;\n\t\treturn color;\n\t}\n\n\tvec3 postProcess(in vec3 _color, float exposureFactor, float contrastFactor, float saturationFactor){\n\t\tvec3 color = _color;\n\n\t\t// color.rgb *= exposureFactor;\n\t\tcolor.rgb = evalSaturation(color.rgb, saturationFactor);\n\t\tcolor = EvalLogContrastFunc(color, 0.0001, 0.18, contrastFactor);\n\t\tcolor.rgb = ACESFilmicToneMapping( color );//applyFilmicToneMap(color.rgb);\n\t\treturn color;\n\t}\n#endif\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n\n #include <clipping_planes_fragment>\n\n vec4 diffuseColor = vec4( diffuse, opacity );\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n\n #include <logdepthbuf_fragment>\n #include <map_fragment>\n #include <color_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n #include <roughnessmap_fragment>\n #include <metalnessmap_fragment>\n #include <normal_fragment_begin>\n #include <normal_fragment_maps>\n #include <clearcoat_normal_fragment_begin>\n #include <clearcoat_normal_fragment_maps>\n #include <emissivemap_fragment>\n\n // accumulation\n #include <lights_physical_fragment>\n #include <lights_fragment_begin>\n #include <lights_fragment_maps>\n #include <lights_fragment_end>\n\n // modulation\n #include <aomap_fragment>\n\n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n #include <transmission_fragment>\n\n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n #ifdef USE_SHEEN\n\n // Sheen energy compensation approximation calculation can be found at the end of\n // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n #endif\n\n #ifdef USE_CLEARCOAT\n\n float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n #endif\n\n #include <output_fragment>\n // #include <tonemapping_fragment> // COMMENTED OUT\n #ifdef TONE_MAPPING\n\t\t#ifdef CUSTOM_TONEMAPPING\n\t\t\tgl_FragColor.rgb = postProcess(gl_FragColor.rgb, toneMappingExposure, contrast, saturation);\n\t\t#else\n\t\t\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n\t\t#endif\n\t#endif\n #include <encodings_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n #include <dithering_fragment>\n\n}\n"}get baseUniforms(){return A.standard.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,rteShadowMatrix:new s,uShadowViewer_high:new d,uShadowViewer_low:new d,uTransforms:[new s],tTransforms:null,objCount:1}}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),e instanceof zt&&(this.originalRoughness=e.originalRoughness,this.artificialRoughness=e.artificialRoughness),this}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.roughness=n.roughness,i.metalness=n.metalness,i.emissive.copy(n.emissive),i.emissiveIntensity=n.emissiveIntensity,i.envMap=n.envMap,i.envMapIntensity=n.envMapIntensity,i.refractionRatio=n.refractionRatio,i.originalRoughness=n.originalRoughness,i.artificialRoughness=n.artificialRoughness}updateArtificialRoughness(e){if(e&&(void 0===this.originalRoughness&&(this.originalRoughness=this.roughness),this.artificialRoughness=e),void 0===this.originalRoughness||void 0===this.artificialRoughness)return;const t=void 0!==e?Math.min(this.originalRoughness,this.artificialRoughness):this.originalRoughness;this.roughness=t,this.needsCopy=!0}onBeforeRender(e,t,i,n,r){this.defines.USE_RTE&&(r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.userData.rteShadowMatrix.value.copy(e.RTEBuffers.rteShadowMatrix),this.userData.uShadowViewer_low.value.copy(e.RTEBuffers.shadowViewerLow),this.userData.uShadowViewer_high.value.copy(e.RTEBuffers.shadowViewerHigh)),this.needsUpdate=!0}}const Ut="\nuniform float size;\nuniform float scale;\n\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\nvec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n}\n\nvec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n}\n\n#ifdef USE_GRADIENT_RAMP\n attribute float gradientIndex;\n varying float vGradientIndex;\n#endif\n\nvoid main() {\n\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n\t#ifdef USE_RTE\n vec4 mvPosition = computeRelativePositionSeparate(position_low.xyz, position.xyz, uViewer_low, uViewer_high);\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #endif\n \n #ifdef USE_INSTANCING\n\n mvPosition = instanceMatrix * mvPosition;\n\n #endif\n mvPosition = modelViewMatrix * mvPosition;\n\n #ifdef USE_GRADIENT_RAMP\n vGradientIndex = gradientIndex;\n #endif\n\n gl_Position = projectionMatrix * mvPosition;\n\n\tgl_PointSize = size;\n\n\t#ifdef USE_SIZEATTENUATION\n\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\n\t#endif\n\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n\n}\n",kt="\nuniform vec3 diffuse;\nuniform float opacity;\n\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\n#ifdef USE_GRADIENT_RAMP\n\tvarying float vGradientIndex;\n\tuniform sampler2D gradientRamp;\n#endif\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec3 outgoingLight = vec3( 0.0 );\n\n\t#ifdef USE_GRADIENT_RAMP\n\t\tvec4 diffuseColor = vec4( texture2D(gradientRamp, vec2(vGradientIndex, 0.)).rgb, opacity );\n\t#else\n\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#endif\n\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\n\toutgoingLight = diffuseColor.rgb;\n\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\n}\n";class Vt extends Dt{get vertexProgram(){return Ut}get fragmentProgram(){return kt}get baseUniforms(){return A.points.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d}}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.size=n.size,i.sizeAttenuation=n.sizeAttenuation}onBeforeRender(e,t,i,n,r){r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.needsUpdate=!0}}class Ft extends zt{get vertexProgram(){return"\n#define STANDARD\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n uniform mat4 rteShadowMatrix;\n uniform vec3 uShadowViewer_high;\n uniform vec3 uShadowViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n varying vec3 vWorldPosition;\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\nattribute float gradientIndex;\nvarying float vGradientIndex;\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\nvoid main() {\n\n #include <uv_vertex>\n #include <uv2_vertex>\n #include <color_vertex>\n #include <morphcolor_vertex>\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #include <normal_vertex>\n\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n #include <displacementmap_vertex>\n //#include <project_vertex> // EDITED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n\n\n mvPosition = modelViewMatrix * mvPosition;\n\n vGradientIndex = gradientIndex;\n gl_Position = projectionMatrix * mvPosition;\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n\n vViewPosition = - mvPosition.xyz;\n\n #include <worldpos_vertex>\n // #include <shadowmap_vertex>// EDITED CHUNK\n #ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n vec4 shadowPosition = vec4(transformed, 1.0);\n mat4 shadowMatrix = directionalShadowMatrix[ i ];\n\n #ifdef USE_RTE\n shadowPosition = computeRelativePositionSeparate(position_low.xyz, position.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowMatrix = rteShadowMatrix;\n #endif\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivotShadow = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowPosition.xyz = rotate_vertex_position((shadowPosition - rtePivotShadow).xyz, tQuaternion) * tScale.xyz + rtePivotShadow.xyz + tTranslation.xyz;\n #endif\n shadowWorldPosition = modelMatrix * shadowPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = shadowMatrix * shadowWorldPosition;\n \n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t/*\n\t#if NUM_RECT_AREA_LIGHTS > 0\n\t\t// TODO (abelnation): update vAreaShadowCoord with area light info\n\t#endif\n\t*/\n #endif\n #include <fog_vertex>\n\n#ifdef USE_TRANSMISSION\n\n vWorldPosition = worldPosition.xyz;\n\n#endif\n}\n"}get fragmentProgram(){return"\n#define STANDARD\n\n#ifdef PHYSICAL\n #define IOR\n #define SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n uniform float ior;\n#endif\n\n#ifdef SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n\n #ifdef USE_SPECULARINTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n\n #ifdef USE_SPECULARCOLORMAP\n uniform sampler2D specularColorMap;\n #endif\n#endif\n\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n\n #ifdef USE_SHEENCOLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n\n #ifdef USE_SHEENROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n\nvarying float vGradientIndex;\nuniform sampler2D gradientRamp;\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n\n #include <clipping_planes_fragment>\n\n vec4 diffuseColor = vec4( texture2D(gradientRamp, vec2(vGradientIndex, 0.)).rgb, opacity );\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n\n #include <logdepthbuf_fragment>\n #include <map_fragment>\n #include <color_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n #include <roughnessmap_fragment>\n #include <metalnessmap_fragment>\n #include <normal_fragment_begin>\n #include <normal_fragment_maps>\n #include <clearcoat_normal_fragment_begin>\n #include <clearcoat_normal_fragment_maps>\n #include <emissivemap_fragment>\n\n // accumulation\n #include <lights_physical_fragment>\n #include <lights_fragment_begin>\n #include <lights_fragment_maps>\n #include <lights_fragment_end>\n\n // modulation\n #include <aomap_fragment>\n\n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n #include <transmission_fragment>\n\n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n #ifdef USE_SHEEN\n\n // Sheen energy compensation approximation calculation can be found at the end of\n // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n #endif\n\n #ifdef USE_CLEARCOAT\n\n float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n #endif\n\n #include <output_fragment>\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n #include <dithering_fragment>\n}\n"}get uniformsDef(){return{...super.uniformsDef,gradientRamp:null}}constructor(e,t=["USE_RTE"]){super(e,t)}setGradientTexture(e){this.userData.gradientRamp.value=e,this.userData.gradientRamp.value.generateMipmaps=!1,this.userData.gradientRamp.value.minFilter=y,this.userData.gradientRamp.value.magFilter=y,this.needsUpdate=!0}}const Qt={Millimeters:"mm",Centimeters:"cm",Meters:"m",Kilometers:"km",Inches:"in",Feet:"ft",Yards:"yd",Miles:"mi"};function qt(e,t=Qt.Meters){switch(e=jt(e),t=jt(t),e){case Qt.Millimeters:switch(t){case Qt.Centimeters:return.1;case Qt.Meters:return.001;case Qt.Kilometers:return 1e-6;case Qt.Inches:return.0393701;case Qt.Feet:return.00328084;case Qt.Yards:return.00109361;case Qt.Miles:return 6.21371e-7}break;case Qt.Centimeters:switch(t){case Qt.Millimeters:return 10;case Qt.Meters:return.01;case Qt.Kilometers:return 1e-5;case Qt.Inches:return.393701;case Qt.Feet:return.0328084;case Qt.Yards:return.0109361;case Qt.Miles:return 621371e-11}break;case Qt.Meters:switch(t){case Qt.Millimeters:return 1e3;case Qt.Centimeters:return 100;case Qt.Kilometers:return.001;case Qt.Inches:return 39.3701;case Qt.Feet:return 3.28084;case Qt.Yards:return 1.09361;case Qt.Miles:return 621371e-9}break;case Qt.Kilometers:switch(t){case Qt.Millimeters:return 1e6;case Qt.Centimeters:return 1e5;case Qt.Meters:return 1e3;case Qt.Inches:return 39370.1;case Qt.Feet:return 3280.84;case Qt.Yards:return 1093.61;case Qt.Miles:return.621371}break;case Qt.Inches:switch(t){case Qt.Millimeters:return 25.4;case Qt.Centimeters:return 2.54;case Qt.Meters:return.0254;case Qt.Kilometers:return 254e-7;case Qt.Feet:return.0833333;case Qt.Yards:return.027777694;case Qt.Miles:return 157828e-10}break;case Qt.Feet:switch(t){case Qt.Millimeters:return 304.8;case Qt.Centimeters:return 30.48;case Qt.Meters:return.3048;case Qt.Kilometers:return 3048e-7;case Qt.Inches:return 12;case Qt.Yards:return.333332328;case Qt.Miles:return 189394e-9}break;case Qt.Miles:switch(t){case Qt.Millimeters:return 1609e3;case Qt.Centimeters:return 160934;case Qt.Meters:return 1609.34;case Qt.Kilometers:return 1.60934;case Qt.Inches:return 63360;case Qt.Feet:return 5280;case Qt.Yards:return 1759.99469184}}return 1}function jt(e){if(!e)return Qt.Meters;switch(e.toLowerCase()){case"mm":case"mil":case"millimeters":case"millimetres":return Qt.Millimeters;case"cm":case"centimetre":case"centimeter":case"centimetres":case"centimeters":return Qt.Centimeters;case"m":case"meter":case"metre":case"meters":case"metres":default:return Qt.Meters;case"inches":case"inch":case"in":return Qt.Inches;case"feet":case"foot":case"ft":return Qt.Feet;case"yard":case"yards":case"yd":return Qt.Yards;case"miles":case"mile":case"mi":return Qt.Miles;case"km":case"kilometers":return Qt.Kilometers}}class Jt extends bt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n uniform vec3 billboardPos;\n uniform mat4 invProjection;\n#endif\n#ifdef BILLBOARD_FIXED\n uniform vec2 billboardSize;\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n \n #if defined(BILLBOARD)\n float div = 1.;\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0) + vec4(position.x, position.y, 0., 0.0));\n #elif defined(BILLBOARD_FIXED)\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0));\n float div = gl_Position.w;\n gl_Position /= gl_Position.w;\n gl_Position.xy += position.xy * billboardSize;\n #else\n gl_Position = projectionMatrix * mvPosition;\n #endif\n\n\n\t#include <logdepthbuf_vertex>\n\t// #include <clipping_planes_vertex> COMMENTED CHUNK\n #if NUM_CLIPPING_PLANES > 0\n #if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n vec4 movelViewProjection = gl_Position * div;\n vClipPosition = - (invProjection * movelViewProjection).xyz;\n #else\n\t vClipPosition = - mvPosition.xyz;\n #endif\n #endif\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}get baseUniforms(){return A.basic.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,uTransforms:[new s],tTransforms:null,billboardPos:new d,billboardSize:new T,invProjection:new s,objCount:1}}set billboardPixelHeight(e){this._billboardPixelHeight=e}constructor(e,t=[]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.refractionRatio=n.refractionRatio,t.userData.billboardPos.value.copy(e.userData.billboardPos.value)}onBeforeRender(e,t,i,n,r){if(this.defines&&this.defines.BILLBOARD_FIXED){const t=e.getDrawingBufferSize(Jt.vecBuff);Jt.vecBuff.set(this._billboardPixelHeight/t.x*2,this._billboardPixelHeight/t.y*2),this.userData.billboardSize.value.copy(Jt.vecBuff),Jt.matBuff.copy(i.projectionMatrix).invert(),this.userData.invProjection.value.copy(Jt.matBuff)}this.defines&&this.defines.USE_RTE&&(r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh)),this.needsUpdate=!0}}Jt.matBuff=new s,Jt.vecBuff=new T;class Gt extends Jt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n // We're disabling alpha testing because we need to use it for shadow rejection. Three.js gave me no choice\n\t// #include <alphatest_fragment> \n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}constructor(e,t=["USE_RTE"]){super(e,t)}}class Wt extends bt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n uniform vec3 billboardPos;\n uniform mat4 invProjection;\n#endif\n#ifdef BILLBOARD_FIXED\n uniform vec2 billboardSize;\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n \n #if defined(BILLBOARD)\n float div = 1.;\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0) + vec4(position.x, position.y, 0., 0.0));\n #elif defined(BILLBOARD_FIXED)\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0));\n float div = gl_Position.w;\n gl_Position /= gl_Position.w;\n gl_Position.xy += position.xy * billboardSize;\n #else\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n #endif\n\t#include <logdepthbuf_vertex>\n\t// #include <clipping_planes_vertex> COMMENTED CHUNK\n #if NUM_CLIPPING_PLANES > 0\n #if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n vec4 movelViewProjection = gl_Position * div;\n vClipPosition = - (invProjection * movelViewProjection).xyz;\n #else\n\t vClipPosition = - mvPosition.xyz;\n #endif\n #endif\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}get baseUniforms(){return A.basic.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,uTransforms:[new s],tTransforms:null,objCount:1,billboardPos:new d,billboardSize:new T,invProjection:new s}}set billboardPixelHeight(e){this._billboardPixelHeight=e}get billboardPixelHeight(){return this._billboardPixelHeight}constructor(e,t=[]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}getDerivedMaterial(){const e=Qe(this);for(const t in this.userData)e.uniforms[t]=this.userData[t];return e}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.refractionRatio=n.refractionRatio,t.userData.billboardPos.value.copy(e.userData.billboardPos.value)}onBeforeRender(e,t,i,n,r){if(this.defines&&this.defines.BILLBOARD_FIXED){const t=e.getDrawingBufferSize(Wt.vecBuff);Wt.vecBuff.set(this._billboardPixelHeight/t.x*2,this._billboardPixelHeight/t.y*2),this.userData.billboardSize.value.copy(Wt.vecBuff),Wt.matBuff.copy(i.projectionMatrix).invert(),this.userData.invProjection.value.copy(Wt.matBuff)}this.needsUpdate=!0}}Wt.matBuff=new s,Wt.vecBuff=new T;class Ht extends Vt{get vertexProgram(){return Ut}get fragmentProgram(){return kt}get uniformsDef(){return{...super.uniformsDef,gradientRamp:null}}constructor(e,t=["USE_RTE","USE_GRADIENT_RAMP"]){super(e,t)}setGradientTexture(e){this.userData.gradientRamp.value=e,this.userData.gradientRamp.value.generateMipmaps=!1,this.userData.gradientRamp.value.minFilter=y,this.userData.gradientRamp.value.magFilter=y,this.needsUpdate=!0}fastCopy(e,t){super.fastCopy(e,t),t.userData.gradientRamp.value=e.userData.gradientRamp.value}}var Xt;const Kt={id:"defaultGradient",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAABCAIAAAAn2YEhAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHoSURBVDhPTZRRdoMwDAQx9//seaEzI5sXpwFptVqvMOm6/t7retd1Le8XAdF6+SMEYr03l2fF4GJprcfixl4+tyklG6ZvxeAKWGxBQsKDk9FIdD+pDUFiak9IDQEWMAM4dczEZmWSDOXPBuAQ1OCLYI4bc0S0bbnlFOR6Vgo2WwgraIvgbh8L2ZNxRH5T7QWKyKz9E7kNnUE+KTA3Oz6O3YIOkop+4juHoh1H+m3slByVm9vgOCOoXr7HvBJSjLdJRUHuSrbse+jDiZOPPt/jZIv8WPJeW+JVzYj2CIHc9GaEjmc/OhF3C+neQoBgW/KKZx2VuyxFKqDBNwfqA8NXa7p0781GBT6TPkSOozQPMPer4sBqTrvZUZgqSKP5oaCXXirJdZ4jqyRbtyE8amCkLLkzW9qik7Fx9mWE9pHEh9vMHsIawZSPcxut2DcDyjzeKinisypDwQoKnLU5WVLz7pGO/nbrIhC2MMOaGrj8PRLmfKpSJcT4NZn5wFgbKbVlCzia76HbQZMAjP72IyX94v189i7Ewfa2wcdMTfGOqekE2i/O9LZRi/T8qwFuuvknA3kW/YnLTMVO22OwUXg0OZ1IAdeqcEjXffH2jjEqNmSvRZbF43BLuUPsYsk5XPu3NqD3WKzr/QfN+6p+JpC7ZQAAAABJRU5ErkJggg==",type:dt.TEXTURE_8BPP};var Yt,Zt;!function(e){e[e.GHOST=0]="GHOST",e[e.GRADIENT=1]="GRADIENT",e[e.COLORED=2]="COLORED",e[e.HIDDEN=3]="HIDDEN"}(Yt||(Yt={}));class _t{constructor(){this.materialMap={}}static renderMaterialFromNode(e,t){if(!e)return null;let i=null;return e.model.raw.renderMaterial&&(i={id:e.model.raw.renderMaterial.id,color:e.model.raw.renderMaterial.diffuse,opacity:void 0!==e.model.raw.renderMaterial.opacity?e.model.raw.renderMaterial.opacity:1,roughness:e.model.raw.renderMaterial.roughness,metalness:e.model.raw.renderMaterial.metalness,vertexColors:t&&t.model.raw.colors&&t.model.raw.colors.length>0}),i}static displayStyleFromNode(e){if(!e)return null;let t=null;if(e.model.raw.displayStyle){let i=e.model.raw.displayStyle.lineweight||0;const n=e.model.raw.displayStyle.units;i=n?i*qt(n):0,i=i<.001?0:i,t={id:e.model.raw.displayStyle.id,color:e.model.raw.displayStyle.diffuse||e.model.raw.displayStyle.color,lineWeight:i}}else e.model.raw.renderMaterial&&(t={id:e.model.raw.renderMaterial.id,color:e.model.raw.renderMaterial.diffuse,lineWeight:0});return t}static fastCopy(e,t){t.fastCopy(e,t)}static renderMaterialToString(e){return e.color.toString()+"/"+e.opacity.toString()+"/"+e.roughness.toString()+"/"+e.metalness.toString()}static displayStyleToString(e){var t,i,n;return(null===(t=e.color)||void 0===t?void 0:t.toString())+"/"+(null===(i=e.lineWeight)||void 0===i?void 0:i.toString())+(null===(n=e.opacity)||void 0===n?void 0:n.toString())}static hashCode(e){let t=0;for(let i=0;i<e.length;i++)t=Math.imul(31,t)+e.charCodeAt(i)|0;return t}static isMaterialInstance(e){return e instanceof E}static isFilterMaterial(e){return"filterType"in e}static isRendeMaterial(e){return"color"in e&&"opacity"in e&&"roughness"in e&&"metalness"in e&&"vertexColors"in e}static isDisplayStyle(e){return"color"in e&&"lineWeight"in e}static getMaterialHash(e,t){t||(t=e.renderData.renderMaterial||e.renderData.displayStyle);let i="";t&&(i=!Xt.isRendeMaterial(t)||e.geometryType!==Et.MESH&&e.geometryType!==Et.POINT&&e.geometryType!==Et.TEXT?Xt.isDisplayStyle(t)&&e.geometryType!==Et.MESH?Xt.displayStyleToString(t):"":Xt.renderMaterialToString(t),t.stencilOutlines&&(i+="/"+t.stencilOutlines),t.pointSize&&(i+="/"+t.pointSize));let n="";e.renderData.geometry.attributes&&(n=e.renderData.geometry.attributes.COLOR?"vertexColors":"");const r=e.geometryType.toString()+n+i+(e.geometryType===Et.TEXT&&t?e.renderData.id:"")+(e.renderData.geometry.instanced?"instanced":"");return Xt.hashCode(r)}static isTransparent(e){return!0===e.transparent&&e.opacity<1}static isOpaque(e){return!1===e.transparent||!0===e.transparent&&e.opacity>=1}async createDefaultMeshMaterials(){this.meshGhostMaterial=new Gt({color:16777215,side:x,transparent:!0,opacity:.1},["USE_RTE"]),this.meshGhostMaterial.depthWrite=!1,this.meshGhostMaterial.alphaTest=1,this.meshGradientMaterial=new Ft({side:R,transparent:!1,opacity:1},["USE_RTE"]),this.meshGradientMaterial.setGradientTexture(await At.getTexture(Kt)),this.meshGradientMaterial.clipShadows=!0,this.meshTransparentGradientMaterial=new Ft({side:R,transparent:!0,opacity:.5},["USE_RTE"]),this.meshTransparentGradientMaterial.setGradientTexture(await At.getTexture(Kt)),this.meshTransparentGradientMaterial.clipShadows=!0,this.meshColoredMaterial=new Ft({side:R,transparent:!1,wireframe:!1},["USE_RTE"]),this.meshColoredMaterial.clipShadows=!0,this.meshTransparentColoredMaterial=new Ft({side:R,transparent:!0,opacity:.5},["USE_RTE"]),this.meshHiddenMaterial=new zt({side:R,transparent:!1,opacity:1,wireframe:!1},["USE_RTE"]),this.meshHiddenMaterial.visible=!1}async createLineDefaultMaterials(){this.lineGhostMaterial=new Pt({color:16777215,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.lineGhostMaterial.color=new l(16777215),this.lineGhostMaterial.linewidth=1,this.lineGhostMaterial.worldUnits=!0,this.lineGhostMaterial.vertexColors=!0,this.lineGhostMaterial.pixelThreshold=.5,this.lineGhostMaterial.resolution=new T,this.lineColoredMaterial=new Pt({color:16777215,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.lineColoredMaterial.color=new l(16777215),this.lineColoredMaterial.linewidth=1,this.lineColoredMaterial.worldUnits=!1,this.lineColoredMaterial.vertexColors=!0,this.lineColoredMaterial.pixelThreshold=.5,this.lineColoredMaterial.resolution=new T,this.lineHiddenMaterial=new Pt({color:16777215,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.lineHiddenMaterial.color=new l(16711680),this.lineHiddenMaterial.linewidth=1,this.lineHiddenMaterial.worldUnits=!1,this.lineHiddenMaterial.vertexColors=!0,this.lineHiddenMaterial.pixelThreshold=.5,this.lineHiddenMaterial.resolution=new T,this.lineHiddenMaterial.visible=!1}async createDefaultPointMaterials(){this.pointGhostMaterial=new Vt({color:16777215,vertexColors:!1,size:2,opacity:.01,sizeAttenuation:!1},["USE_RTE"]),this.pointCloudColouredMaterial=new Ht({color:16777215,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE","USE_GRADIENT_RAMP"]),this.pointCloudColouredMaterial.toneMapped=!1,this.pointCloudGradientMaterial=new Ht({color:16777215,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE","USE_GRADIENT_RAMP"]),this.pointCloudGradientMaterial.setGradientTexture(await At.getTexture(Kt)),this.pointGhostMaterial.toneMapped=!1}async createDefaultTextMaterials(){this.textGhostMaterial=new Wt({color:16777215,opacity:.1,side:R},["USE_RTE"]),this.textGhostMaterial.transparent=this.textGhostMaterial.opacity<1,this.textGhostMaterial.depthWrite=!this.textGhostMaterial.transparent,this.textGhostMaterial.toneMapped=!1,this.textGhostMaterial.color.convertSRGBToLinear(),this.textGhostMaterial=this.textGhostMaterial.getDerivedMaterial(),this.textColoredMaterial=new Wt({color:16777215,opacity:1,side:R},["USE_RTE"]),this.textColoredMaterial.transparent=this.textColoredMaterial.opacity<1,this.textColoredMaterial.depthWrite=!this.textColoredMaterial.transparent,this.textColoredMaterial.toneMapped=!1,this.textColoredMaterial.color.convertSRGBToLinear(),this.textColoredMaterial=this.textColoredMaterial.getDerivedMaterial(),this.textHiddenMaterial=new Wt({color:16777215,opacity:1,side:R},["USE_RTE"]),this.textHiddenMaterial.visible=!1,this.textHiddenMaterial.toneMapped=!1,this.textHiddenMaterial.color.convertSRGBToLinear(),this.textHiddenMaterial=this.textHiddenMaterial.getDerivedMaterial()}async createDefaultNullMaterials(){this.materialMap[Xt.NullRenderMaterialHash]=new zt({color:8355711,emissive:0,roughness:1,metalness:0,side:R},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialHash].color.convertSRGBToLinear(),this.materialMap[Xt.NullRenderMaterialVertexColorsHash]=new zt({color:16777215,emissive:0,roughness:1,metalness:0,side:R,vertexColors:!0},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialVertexColorsHash].color.convertSRGBToLinear();const e=Xt.NullDisplayStyleHash;this.materialMap[e]=new Pt({color:8355711,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.materialMap[e].color=new l(8355711),this.materialMap[e].color.convertSRGBToLinear(),this.materialMap[e].linewidth=1,this.materialMap[e].worldUnits=!1,this.materialMap[e].vertexColors=!0,this.materialMap[e].pixelThreshold=.5,this.materialMap[e].resolution=new T,this.materialMap[Xt.NullTextDisplayStyle]=new Wt({color:8355711,opacity:1,side:R},["USE_RTE"]),this.materialMap[Xt.NullTextDisplayStyle].transparent=!1,this.materialMap[Xt.NullTextDisplayStyle].depthWrite=!0,this.materialMap[Xt.NullTextDisplayStyle].toneMapped=!1,this.materialMap[Xt.NullTextDisplayStyle].color.convertSRGBToLinear(),this.materialMap[Xt.NullPointMaterialHash]=new Vt({color:8355711,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE"]),this.materialMap[Xt.NullPointMaterialHash].color.convertSRGBToLinear(),this.materialMap[Xt.NullPointCloudVertexColorsMaterialHash]=new Vt({color:16777215,vertexColors:!0,size:2,sizeAttenuation:!1},["USE_RTE"]),this.materialMap[Xt.NullPointCloudMaterialHash]=new Vt({color:16777215,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialInstancedHash]=new zt({color:8355711,emissive:0,roughness:1,metalness:0,side:R},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialInstancedHash].color.convertSRGBToLinear(),this.materialMap[Xt.NullRenderMaterialInstancedVertexColorHash]=new zt({color:16777215,emissive:0,roughness:1,metalness:0,side:R,vertexColors:!0},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialInstancedVertexColorHash].color.convertSRGBToLinear()}async createDefaultMaterials(){await this.createDefaultMeshMaterials(),await this.createLineDefaultMaterials(),await this.createDefaultPointMaterials(),await this.createDefaultTextMaterials(),await this.createDefaultNullMaterials(),this.defaultGradientTextureData=await At.getTextureData(Kt)}makeMeshMaterial(e){const t=new zt({color:e.color,emissive:0,roughness:e.roughness,metalness:e.metalness,opacity:e.opacity,side:R},["USE_RTE"]);return t.vertexColors=e.vertexColors,t.transparent=t.opacity<1,t.depthWrite=!t.transparent,t.clipShadows=!0,t.color.convertSRGBToLinear(),t.updateArtificialRoughness(Xt.DEFAULT_ARTIFICIAL_ROUGHNESS),t}makeLineMaterial(e){const t=new Pt({color:e.color,linewidth:e.lineWeight>0?e.lineWeight:1,worldUnits:e.lineWeight>0,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]);return t.color=new l(e.color),t.color.convertSRGBToLinear(),t.opacity=void 0!==e.opacity?e.opacity:1,t.linewidth=e.lineWeight>0?e.lineWeight:1,t.worldUnits=e.lineWeight>0,t.vertexColors=!0,t.pixelThreshold=.5,t.resolution=new T,t}makePointMaterial(e){const t=-16777216===e.color,i=e.vertexColors&&t?16777215:e.color,n=new Vt({color:i,opacity:e.opacity,vertexColors:e.vertexColors,size:2,sizeAttenuation:!1},["USE_RTE"]);return n.transparent=n.opacity<1,n.depthWrite=!n.transparent,n.toneMapped=!1,n.color.convertSRGBToLinear(),n}makeTextMaterial(e){const t=new Wt({color:e.color,opacity:1,side:R},["USE_RTE"]);return t.transparent=t.opacity<1,t.depthWrite=!t.transparent,t.toneMapped=!1,t.color.convertSRGBToLinear(),t}getMaterial(e,t,i){let n;switch(i){case Et.MESH:n=this.getMeshMaterial(e,t);break;case Et.LINE:n=this.getLineMaterial(e,t);break;case Et.POINT:n=this.getPointMaterial(e,t);break;case Et.POINT_CLOUD:n=this.getPointCloudMaterial(e,t);break;case Et.TEXT:n=this.getTextMaterial(e,t)}return n.clippingPlanes=[],n}getMeshMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makeMeshMaterial(t)),this.materialMap[e]}getLineMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makeLineMaterial(t)),this.materialMap[e]}getPointMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makePointMaterial(t)),this.materialMap[e]}getPointCloudMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.getPointMaterial(e,t)),this.materialMap[e]}getTextMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makeTextMaterial(t)),this.materialMap[e].getDerivedMaterial()}getGhostMaterial(e,t){switch(e.geometryType){case Et.MESH:return this.meshGhostMaterial;case Et.LINE:return this.lineGhostMaterial;case Et.POINT:case Et.POINT_CLOUD:return this.pointGhostMaterial;case Et.TEXT:return this.textGhostMaterial}}getGradientMaterial(e,t){switch(e.geometryType){case Et.MESH:{const i=e.transparent?this.meshTransparentGradientMaterial:this.meshGradientMaterial;return(null==t?void 0:t.rampTexture)&&i.setGradientTexture(t.rampTexture),i}case Et.LINE:return this.lineColoredMaterial;case Et.POINT:{const e=this.pointCloudGradientMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.POINT_CLOUD:{const e=this.pointCloudGradientMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.TEXT:return this.textColoredMaterial}}getColoredMaterial(e,t){switch(e.geometryType){case Et.MESH:{const i=e.transparent?this.meshTransparentColoredMaterial:this.meshColoredMaterial;return(null==t?void 0:t.rampTexture)&&i.setGradientTexture(t.rampTexture),i}case Et.LINE:return this.lineColoredMaterial;case Et.POINT:{const e=this.pointCloudColouredMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.POINT_CLOUD:{const e=this.pointCloudColouredMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.TEXT:return this.textColoredMaterial}}getHiddenMaterial(e,t){switch(e.geometryType){case Et.MESH:return this.meshHiddenMaterial;case Et.LINE:return this.lineHiddenMaterial;case Et.POINT:case Et.POINT_CLOUD:return this.meshHiddenMaterial;case Et.TEXT:return this.textHiddenMaterial}}getFilterMaterial(e,t){let i=null;switch(t.filterType){case Yt.GHOST:i=this.getGhostMaterial(e,t);break;case Yt.GRADIENT:i=this.getGradientMaterial(e,t);break;case Yt.COLORED:i=this.getColoredMaterial(e,t);break;case Yt.HIDDEN:i=this.getHiddenMaterial(e,t)}return i&&(i.clippingPlanes=[]),i}getDataMaterial(e,t){const i=Xt.getMaterialHash(e,t);return this.getMaterial(i,t,e.geometryType)}getFilterMaterialOptions(e){switch(e.filterType){case Yt.COLORED:return{rampIndex:void 0!==e.rampIndex?e.rampIndex:void 0,rampIndexColor:e.rampIndexColor,rampTexture:e.rampTexture?e.rampTexture:void 0,rampWidth:e.rampTexture?e.rampTexture.image.width:void 0};case Yt.GRADIENT:return{rampIndex:void 0!==e.rampIndex?e.rampIndex:void 0,rampIndexColor:void 0!==e.rampIndexColor?e.rampIndexColor:e.rampIndex?(new l).setRGB(this.defaultGradientTextureData.data[4*Math.floor(e.rampIndex*(this.defaultGradientTextureData.width-1))]/255,this.defaultGradientTextureData.data[4*Math.floor(e.rampIndex*(this.defaultGradientTextureData.width-1))+1]/255,this.defaultGradientTextureData.data[4*Math.floor(e.rampIndex*(this.defaultGradientTextureData.width-1))+2]/255).convertSRGBToLinear():void 0,rampTexture:e.rampTexture?e.rampTexture:this.meshGradientMaterial.userData.gradientRamp.value,rampWidth:e.rampTexture?e.rampTexture.image.width:this.meshGradientMaterial.userData.gradientRamp.value.image.width};default:return null}}purge(){}}Xt=_t,_t.UNIFORM_VECTORS_USED=33,_t.DEFAULT_ARTIFICIAL_ROUGHNESS=.6,_t.NullRenderMaterialHash=Xt.hashCode(Et.MESH.toString()),_t.NullRenderMaterialVertexColorsHash=Xt.hashCode(Et.MESH.toString()+"vertexColors"),_t.NullDisplayStyleHash=Xt.hashCode(Et.LINE.toString()),_t.NullTextDisplayStyle=Xt.hashCode(Et.TEXT.toString()),_t.NullPointMaterialHash=Xt.hashCode(Et.POINT.toString()),_t.NullPointCloudMaterialHash=Xt.hashCode(Et.POINT_CLOUD.toString()),_t.NullPointCloudVertexColorsMaterialHash=Xt.hashCode(Et.POINT_CLOUD.toString()+"vertexColors"),_t.NullRenderMaterialInstancedHash=Xt.hashCode(Et.MESH.toString()+"instanced"),_t.NullRenderMaterialInstancedVertexColorHash=Xt.hashCode(Et.MESH.toString()+"vertexColorsinstanced"),function(e){e.View3D="View3D",e.BlockInstance="BlockInstance",e.Pointcloud="Pointcloud",e.Brep="Brep",e.Mesh="Mesh",e.Point="Point",e.Line="Line",e.Polyline="Polyline",e.Box="Box",e.Polycurve="Polycurve",e.Curve="Curve",e.Circle="Circle",e.Arc="Arc",e.Ellipse="Ellipse",e.RevitInstance="RevitInstance",e.Text="Text",e.Transform="Transform",e.Unknown="Unknown"}(Zt||(Zt={}));const $t=[Zt.Pointcloud,Zt.Brep,Zt.Mesh,Zt.Point,Zt.Line,Zt.Polyline,Zt.Box,Zt.Polycurve,Zt.Curve,Zt.Circle,Zt.Arc,Zt.Ellipse,Zt.Text];class ei{}class ti{get guid(){return this._guid||(this._guid=this._renderData.subtreeId+this._renderData.id),this._guid}get renderData(){return this._renderData}get renderMaterialHash(){return this._materialHash}get hasGeometry(){return this._renderData.geometry&&this._renderData.geometry.attributes}get hasMetadata(){return this._renderData.geometry&&this._renderData.geometry.metaData}get speckleType(){return this._renderData.speckleType}get geometryType(){return this._geometryType}get batchStart(){return this._batchIndexStart}get batchEnd(){return this._batchIndexStart+this._batchIndexCount}get batchCount(){return this._batchIndexCount}get batchId(){return this._batchId}get aabb(){return this._aabb}get transparent(){return this._renderData.renderMaterial&&this._renderData.renderMaterial.opacity<1||!1}get vertStart(){return this._batchVertexStart}get vertEnd(){return this._batchVertexEnd}get needsSegmentConversion(){return this._renderData.speckleType===Zt.Curve||this._renderData.speckleType===Zt.Polyline||this._renderData.speckleType===Zt.Polycurve||this.renderData.speckleType===Zt.Arc||this.renderData.speckleType===Zt.Circle||this.renderData.speckleType===Zt.Ellipse}get validGeometry(){return this._renderData.geometry.attributes&&this._renderData.geometry.attributes.POSITION&&this._renderData.geometry.attributes.POSITION.length>0&&(this._geometryType!==Et.MESH||this._renderData.geometry.attributes.INDEX&&this._renderData.geometry.attributes.INDEX.length>0)||!1}constructor(e){this._guid=null,this._renderData=e,this._geometryType=this.getGeometryType(),this._materialHash=_t.getMaterialHash(this),this._batchId="",this._batchIndexCount=0,this._batchIndexStart=-1,this._batchVertexStart=-1,this._batchVertexEnd=-1}setBatchData(e,t,i,n,r){this._batchId=e,this._batchIndexStart=t,this._batchIndexCount=i,void 0!==n&&(this._batchVertexStart=n),void 0!==r&&(this._batchVertexEnd=r)}computeAABB(){this._aabb=new h,this._renderData.geometry.attributes&&this._aabb.setFromArray(this._renderData.geometry.attributes.POSITION)}getGeometryType(){switch(this._renderData.speckleType){case Zt.Mesh:case Zt.Brep:return Et.MESH;case Zt.Point:return Et.POINT;case Zt.Pointcloud:return Et.POINT_CLOUD;case Zt.Text:return Et.TEXT;default:return Et.LINE}}disposeGeometry(){for(const e in this._renderData.geometry.attributes)this._renderData.geometry.attributes[e]=[]}}var ii;!function(e){e.POSITION="POSITION",e.COLOR="COLOR",e.NORMAL="NORMAL",e.UV="UV",e.TANGENT="TANGENT",e.INDEX="INDEX"}(ii||(ii={}));class ni{static updateRTEGeometry(e,t){if("BufferGeometry"===e.type||"PlaneGeometry"===e.type||"CircleGeometry"===e.type){const i=new Float32Array(t.length),n=e.attributes.position.array;ni.DoubleToHighLowBuffer(t,i,n),e.setAttribute("position_low",new C(i,3))}else if("LineGeometry"===e.type||"LineSegmentsGeometry"===e.type){const i=new Float32Array(t.length),n=e.attributes.instanceStart.array;ni.DoubleToHighLowBuffer(t,i,n);const r=new M(new Float32Array(i),6,1);e.setAttribute("instanceStartLow",new O(r,3,0)),e.setAttribute("instanceEndLow",new O(r,3,3))}}static mergeGeometryAttribute(e,t){let i=0;for(let n=0;n<e.length;n++){const r=e[n];if(!r||!t)throw new Error("Cannot merge geometries. Indices or positions are undefined");t.set(r,i),i+=r.length}return t}static mergeIndexAttribute(e,t){let i=0;const n=[];for(let r=0;r<e.length;++r){const s=e[r];if(!s||!t)throw new Error("Cannot merge geometries. Indices or positions are undefined");for(let e=0;e<s.length;++e)n.push(s[e]+i);i+=t.length}return n}static mergeGeometryData(e){const t=e[0].attributes,i={attributes:{},bakeTransform:null,transform:null};for(let t=0;t<e.length;t++)null!==e[t].bakeTransform&&ni.transformGeometryData(e[t],e[t].bakeTransform);if(t&&t[ii.INDEX]){const t=e.map((e=>{if(e.attributes)return e.attributes[ii.INDEX]})),n=e.map((e=>{if(e.attributes)return e.attributes[ii.POSITION]}));i.attributes&&(i.attributes[ii.INDEX]=ni.mergeIndexAttribute(t,n))}for(const n in t)if(n!==ii.INDEX){const t=e.map((e=>{if(e.attributes)return e.attributes[n]}));i.attributes&&(i.attributes[n]=ni.mergeGeometryAttribute(t,n===ii.POSITION?new Float64Array(t.reduce(((e,t)=>t?e+t.length:0),0)):new Float32Array(t.reduce(((e,t)=>t?e+t.length:0),0))))}return e.forEach((e=>{for(const t in e.attributes)delete e.attributes[t]})),i}static transformGeometryData(e,t){if(!e.attributes)return;if(!e.attributes.POSITION)return;if(!t)return;const i=t.elements;for(let t=0;t<e.attributes.POSITION.length;t+=3){const n=e.attributes.POSITION[t],r=e.attributes.POSITION[t+1],s=e.attributes.POSITION[t+2],a=1/(i[3]*n+i[7]*r+i[11]*s+i[15]);e.attributes.POSITION[t]=(i[0]*n+i[4]*r+i[8]*s+i[12])*a,e.attributes.POSITION[t+1]=(i[1]*n+i[5]*r+i[9]*s+i[13])*a,e.attributes.POSITION[t+2]=(i[2]*n+i[6]*r+i[10]*s+i[14])*a}}static unpackColors(e){const t=new Array(3*e.length);for(let i=0;i<e.length;i++){const n=e[i],r=n>>16&255,s=n>>8&255,a=255&n;t[3*i]=r/255,t[3*i+1]=s/255,t[3*i+2]=a/255}return t}static DoubleToHighLowVector(e,t,i){let n=e.x;if(n>=0){this.floatArrayBuff[0]=n;const e=this.floatArrayBuff[0];i.x=e,t.x=n-e}else{this.floatArrayBuff[0]=-n;const e=this.floatArrayBuff[0];i.x=-e,t.x=n+e}if(n=e.y,n>=0){this.floatArrayBuff[0]=n;const e=this.floatArrayBuff[0];i.y=e,t.y=n-e}else{this.floatArrayBuff[0]=-n;const e=this.floatArrayBuff[0];i.y=-e,t.y=n+e}if(n=e.z,n>=0){this.floatArrayBuff[0]=n;const e=this.floatArrayBuff[0];i.z=e,t.z=n-e}else{this.floatArrayBuff[0]=-n;const e=this.floatArrayBuff[0];i.z=-e,t.z=n+e}}static DoubleToHighLowBuffer(e,t,i){for(let n=0;n<e.length;n++){const r=e[n];if(r>=0){this.floatArrayBuff[0]=r;const e=this.floatArrayBuff[0];i[n]=e,t[n]=r-e}else{this.floatArrayBuff[0]=-r;const e=this.floatArrayBuff[0];i[n]=-e,t[n]=r+e}}}static computeVertexNormals(e,t){const i=e.index,n=e.getAttribute("position");if(void 0!==n){let r=e.getAttribute("normal");if(void 0===r)r=new b(new Float32Array(3*n.count),3),e.setAttribute("normal",r);else for(let e=0,t=r.count;e<t;e++)r.setXYZ(e,0,0,0);const s=new d,a=new d,o=new d,l=new d,c=new d,h=new d,u=new d,p=new d;if(i)for(let e=0,n=i.count;e<n;e+=3){const n=i.getX(e+0),d=i.getX(e+1),m=i.getX(e+2);s.fromArray(t,3*n),a.fromArray(t,3*d),o.fromArray(t,3*m),u.subVectors(o,a),p.subVectors(s,a),u.cross(p),l.fromBufferAttribute(r,n),c.fromBufferAttribute(r,d),h.fromBufferAttribute(r,m),l.add(u),c.add(u),h.add(u),r.setXYZ(n,l.x,l.y,l.z),r.setXYZ(d,c.x,c.y,c.z),r.setXYZ(m,h.x,h.y,h.z)}else for(let e=0,i=n.count;e<i;e+=3)s.fromArray(t,3*e),a.fromArray(t,3*e+1),o.fromArray(t,3*e+2),u.subVectors(o,a),p.subVectors(s,a),u.cross(p),r.setXYZ(e+0,u.x,u.y,u.z),r.setXYZ(e+1,u.x,u.y,u.z),r.setXYZ(e+2,u.x,u.y,u.z);e.normalizeNormals(),r.needsUpdate=!0}}}ni.floatArrayBuff=new Float32Array(1);class ri{get id(){return this.root.model.id}constructor(e,t){this.cancel=!1,this.tree=e,this.root=t}buildRenderTree(e){return this.tree.walkAsync((t=>{const i=this.buildRenderNode(t,e);return t.model.renderView=i?new ti(i):null,this.applyTransforms(t),t.model.instanced||e.disposeNodeGeometryData(t.model),!this.cancel}),this.root)}applyTransforms(e){if(e.model.renderView){const t=this.computeTransform(e);e.model.renderView.hasGeometry?(e.model.renderView.renderData.geometry.bakeTransform&&t.multiply(e.model.renderView.renderData.geometry.bakeTransform),e.model.instanced&&e.model.renderView.speckleType===Zt.Mesh?e.model.renderView.renderData.geometry.transform=t:ni.transformGeometryData(e.model.renderView.renderData.geometry,t),e.model.renderView.computeAABB()):e.model.renderView.hasMetadata&&e.model.renderView.renderData.geometry.bakeTransform.premultiply(t)}}buildRenderNode(e,t){let i=null;const n=t.convertNodeToGeometryData(e.model);if(n){const r=this.getRenderMaterialNode(e),s=this.getDisplayStyleNode(e);i={id:e.model.id,subtreeId:e.model.subtreeId,speckleType:t.getSpeckleType(e.model),geometry:n,renderMaterial:_t.renderMaterialFromNode(r||s,e),displayStyle:_t.displayStyleFromNode(s||r)}}return i}getRenderMaterialNode(e){if(e.model.raw.renderMaterial)return e;const t=this.tree.getAncestors(e);for(let e=0;e<t.length;e++)if(t[e].model.raw.renderMaterial)return t[e];return null}getDisplayStyleNode(e){if(e.model.raw.displayStyle)return e;const t=this.tree.getAncestors(e);for(let e=0;e<t.length;e++)if(t[e].model.raw.displayStyle)return t[e];return null}computeTransform(e){if(e.model.renderView.speckleType===Zt.Transform)return e.model.renderView.renderData.transform;const t=new s,i=this.tree.getAncestors(e);for(let e=0;e<i.length;e++)if(i[e].model.renderView){const n=i[e].model.renderView.renderData;n.speckleType===Zt.Transform&&n.geometry.transform&&t.premultiply(n.geometry.transform)}return t}getInstances(){return this.tree.getInstances(this.root.model.subtreeId)}getRenderableRenderViews(...e){return this.getRenderableNodes(...e).map((e=>e.model.renderView))}getRenderableNodes(...e){return this.root.all((t=>t.model.renderView&&(t.model.renderView.hasGeometry||t.model.renderView.hasMetadata)&&e.includes(t.model.renderView.renderData.speckleType)))}getRenderViewsForNode(e){return this.getRenderViewNodesForNode(e).map((e=>e.model.renderView))}getRenderViewNodesForNode(e){return e.model.atomic&&e.model.renderView?[e]:e.all((e=>e.model.renderView&&(e.model.renderView.hasGeometry||e.model.renderView.hasMetadata)))}getRenderViewsForNodeId(e){const t=this.tree.findId(e);if(!t)return St.warn(`Id ${e} does not exist`),null;const i=[];return t.forEach((e=>{i.push(...this.getRenderViewsForNode(e))})),i}getAtomicParent(e){return e.model.atomic?e:this.tree.getAncestors(e).find((e=>e.model.atomic))}purge(){}cancelBuild(){this.cancel=!0,this.tree.purge(this.id),this.purge()}}class si{get nodeCount(){return Object.keys(this.all).length}constructor(e){this.all={},this.instances={},this.registerNode(e)}addNode(e){if(e.model.id.includes(si.COMPOUND_ID_CHAR))this.registerInstance(e);else{if(this.all[e.model.id])return!1;this.registerNode(e)}return!0}removeNode(e){if(e.model.id.includes(si.COMPOUND_ID_CHAR)){const t=e.model.id.substring(0,e.model.id.indexOf(si.COMPOUND_ID_CHAR));delete this.instances[t][e.model.id]}else delete this.all[e.model.id];return!0}getNodeById(e){if(e.includes(si.COMPOUND_ID_CHAR)){const t=e.substring(0,e.indexOf(si.COMPOUND_ID_CHAR));if(!this.instances[t])return St.warn("Could not find instance with baseID: ",t),null;if(this.instances[t][e])return[this.instances[t][e]]}return this.all[e]?[this.all[e]]:this.instances[e]?Object.values(this.instances[e]):null}getSubtreeById(e){return this.all[e]}hasId(e){if(e.includes(si.COMPOUND_ID_CHAR)){const t=e.substring(0,e.indexOf(si.COMPOUND_ID_CHAR));return!!this.instances[t]}return!!this.all[e]||!!this.instances[e]}registerInstance(e){const t=e.model.id.substring(0,e.model.id.indexOf(si.COMPOUND_ID_CHAR));this.instances[t]||(this.instances[t]={}),this.instances[t][e.model.id]=e}registerNode(e){this.all[e.model.id]=e}purge(){this.all={},this.instances={}}}si.COMPOUND_ID_CHAR="~";class ai{constructor(){this.renderTreeInstances={},this.nodeMaps={},this.supressWarnings=!0,this.subtreeId=0,this.tree=new Ve,this._root=this.parse({id:ai.ROOT_ID,raw:{},atomic:!0,children:[],renderView:null})}getRenderTree(e){if(!this._root)return console.error("WorldTree not initialised"),null;const t=e?this.findSubtree(e):this.root;if(!t)return null;const i=t.model.id;return this.renderTreeInstances[i]||(this.renderTreeInstances[i]=new ri(this,t)),this.renderTreeInstances[i]}get root(){return this._root}get nextSubtreeId(){return++this.subtreeId}get nodeCount(){let e=0;for(const t in this.nodeMaps)e+=this.nodeMaps[t].nodeCount;return e}isRoot(e){return e===this._root}isSubtreeRoot(e){return e.parent===this._root}parse(e){return this.tree.parse(e)}addSubtree(e){if(this.nodeMaps[e.id])return void St.error(`Subtree with id ${e.id} already exists!`);const t=this.nextSubtreeId;e.model.subtreeId=t,this.nodeMaps[t]=new si(e),this._root.addChild(e)}addNode(e,t){var i;null!==t&&void 0!==t.model.subtreeId?(e.model.subtreeId=t.model.subtreeId,(null===(i=this.nodeMaps[t.model.subtreeId])||void 0===i?void 0:i.addNode(e))&&t.addChild(e)):St.error("Invalid parent node!")}removeNode(e){e.drop()}findAll(e,t){return t||this.supressWarnings||St.warn("Root will be used for searching. You might not want that"),(t||this.root).all(e)}findId(e,t){if(!e)return null;let i=null;if(t)i=this.nodeMaps[t].getNodeById(e);else for(const t in this.nodeMaps){const n=this.nodeMaps[t].getNodeById(e);n&&(i=[...n])}return i}findSubtree(e){let t=null;for(const i in this.nodeMaps)if(t=this.nodeMaps[i].getSubtreeById(e))break;return t}getAncestors(e){return e.getPath().reverse().slice(1)}getInstances(e){return this.nodeMaps[e].instances}walk(e,t){t||this.supressWarnings||St.warn("Root will be used for searching. You might not want that"),this._root.walk(e,t)}async walkAsync(e,t){t||this.supressWarnings||St.warn("Root will be used for searching. You might not want that");const i=new yt;let n=!0;return async function e(t,r){let s,a;for(i.tick(100),i.needsWait&&await i.wait(16),n&&(n=t(r)),s=0,a=r.children.length;s<a&&await e(t,r.children[s]);s++);return n}(e,t||this._root)}purge(e){if(e){delete this.renderTreeInstances[e];const t=this.findId(e);t&&(this.nodeMaps[t[0].model.subtreeId].purge(),delete this.nodeMaps[t[0].model.subtreeId],this.removeNode(t[0]))}else Object.keys(this.renderTreeInstances).forEach((e=>delete this.renderTreeInstances[e])),Object.keys(this.nodeMaps).forEach((e=>{this.nodeMaps[e].purge,delete this.nodeMaps[e]})),this._root.drop(),this._root.children.length=0,this.tree=new Ve,this._root=this.tree.parse({id:ai.ROOT_ID,raw:{},atomic:!0,children:[]})}}ai.ROOT_ID="ROOT";class oi{get bounds(){return this.geometry.boundingBox||this.geometry.computeBoundingBox(),this.geometry.boundingBox?this.geometry.boundingBox:new h}get drawCalls(){return 1}get minDrawCalls(){return 1}get triCount(){return 0}get vertCount(){return this.geometry.attributes.position.count*this.geometry.instanceCount}constructor(e,t,i){this.id=e,this.subtreeId=t,this.renderViews=i}get pointCount(){return 0}get lineCount(){return(this.geometry.index?this.geometry.index.count:0)/3*this.geometry._maxInstanceCount}get renderObject(){return this.mesh}get geometryType(){return Et.LINE}get materials(){return this.mesh.material}get groups(){return[]}getCount(){return this.geometry.attributes.position.array.length/6}setBatchMaterial(e){this.batchMaterial=e}onUpdate(e){}onRender(e){e.getDrawingBufferSize(this.batchMaterial.resolution)}setVisibleRange(e){if(1===e.length&&e[0].offset===xt.offset&&e[0].count===xt.count)return void(this.mesh.visible=!1);if(1===e.length&&e[0].offset===Rt.offset&&e[0].count===Rt.count)return void(this.mesh.visible=!0);this.mesh.visible=!0;const t=this.colorBuffer.array;for(let e=0;e<t.length;e+=4)t[e+3]=0;for(let i=0;i<e.length;i++){const n=e[i].offset*this.colorBuffer.stride,r=e[i].offset*this.colorBuffer.stride+e[i].count*this.colorBuffer.stride;for(let e=n;e<r;e+=4)t[e+3]=1}this.colorBuffer.updateRange={offset:0,count:t.length},this.colorBuffer.needsUpdate=!0,this.geometry.attributes.instanceColorStart.needsUpdate=!0,this.geometry.attributes.instanceColorEnd.needsUpdate=!0}getVisibleRange(){return Rt}getOpaque(){return _t.isOpaque(this.batchMaterial)?Rt:xt}getDepth(){return this.getOpaque()}getTransparent(){return _t.isTransparent(this.batchMaterial)?Rt:xt}getStencil(){return!0===this.batchMaterial.stencilWrite?Rt:xt}setBatchBuffers(e){var t;const i=this.colorBuffer.array;for(let i=0;i<e.length;i++){const n=e[i].material,r=e[i].materialOptions,s=r&&r.rampIndexColor?r.rampIndexColor:n.color,a=n.visible?n.opacity:0;(t=this.batchMaterial).transparent||(t.transparent=n.opacity<1);const o=e[i].offset*this.colorBuffer.stride,l=e[i].offset*this.colorBuffer.stride+e[i].count*this.colorBuffer.stride;oi.vector4Buffer.set(s.r,s.g,s.b,a),this.updateColorBuffer(o,e[i].count===1/0?this.colorBuffer.array.length:l,oi.vector4Buffer)}this.colorBuffer.updateRange={offset:0,count:i.length},this.colorBuffer.needsUpdate=!0,this.geometry.attributes.instanceColorStart.needsUpdate=!0,this.geometry.attributes.instanceColorEnd.needsUpdate=!0}setDrawRanges(e){this.setBatchBuffers(e)}resetDrawRanges(){this.setDrawRanges([{offset:0,count:1/0,material:this.batchMaterial}]),this.mesh.material=this.batchMaterial,this.mesh.visible=!0,this.batchMaterial.transparent=!1}buildBatch(){let e=0;this.renderViews.forEach((t=>{if(!t.renderData.geometry.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry`);e+=t.needsSegmentConversion?2*(t.renderData.geometry.attributes.POSITION.length-3):t.renderData.geometry.attributes.POSITION.length}));const t=new Float64Array(e);let i=0;for(let e=0;e<this.renderViews.length;e++){const n=this.renderViews[e].renderData.geometry;if(!n.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry`);let r;if(this.renderViews[e].needsSegmentConversion){const e=n.attributes.POSITION.length-3;r=new Array(2*e);for(let t=0;t<e;t+=3)r[2*t]=n.attributes.POSITION[t],r[2*t+1]=n.attributes.POSITION[t+1],r[2*t+2]=n.attributes.POSITION[t+2],r[2*t+3]=n.attributes.POSITION[t+3],r[2*t+4]=n.attributes.POSITION[t+4],r[2*t+5]=n.attributes.POSITION[t+5]}else r=n.attributes.POSITION;t.set(r,i),this.renderViews[e].setBatchData(this.id,i/6,r.length/6),i+=r.length}return this.makeLineGeometry(t),this.mesh=new je(this.geometry,this.batchMaterial),this.mesh.computeLineDistances(),this.mesh.scale.set(1,1,1),this.mesh.uuid=this.id,this.mesh.layers.set(gt.STREAM_CONTENT_LINE),Promise.resolve()}getRenderView(e){for(let t=0;t<this.renderViews.length;t++)if(e>=this.renderViews[t].batchStart&&e<this.renderViews[t].batchEnd&&0!==this.colorBuffer.array[e*this.colorBuffer.stride+3])return this.renderViews[t];return null}getMaterialAtIndex(e){return this.batchMaterial}getMaterial(e){const t=e.batchStart*this.colorBuffer.stride,i=this.colorBuffer.array,n=this.batchMaterial.clone();return n.color.setRGB(i[t],i[t+1],i[t+2]),n.opacity=i[t+3],n}makeLineGeometry(e){this.geometry=this.makeLineGeometryTriangle(new Float32Array(e)),ni.updateRTEGeometry(this.geometry,e)}makeLineGeometryTriangle(e){const t=new Je;t.setPositions(e);const i=new Float32Array(e.length+e.length/3);return this.colorBuffer=new M(i,8,1),this.colorBuffer.setUsage(N),this.updateColorBuffer(0,i.length,new I(this.batchMaterial.color.r,this.batchMaterial.color.g,this.batchMaterial.color.b,1)),t.setAttribute("instanceColorStart",new O(this.colorBuffer,4,0)),t.setAttribute("instanceColorEnd",new O(this.colorBuffer,4,4)),t.computeBoundingBox(),t}updateColorBuffer(e,t,i){const n=this.colorBuffer.array;for(let r=e;r<t;r+=4)n[r]=i.x,n[r+1]=i.y,n[r+2]=i.z,n[r+3]=i.w}purge(){this.renderViews.length=0,this.geometry.dispose(),this.batchMaterial.dispose(),this.colorBuffer.length=0}}oi.vector4Buffer=new I;const li={backgroundColor:null,backgroundCornerRadius:1,backgroundPixelHeight:50,textColor:new l(16777215),billboard:!1};class ci extends B{static SpeckleTextParamsFromMetadata(e){return{textValue:e.value?e.value:"N/A",height:e.height}}get textMesh(){return this._text}get backgroundMesh(){return this._background}set style(e){Object.assign(this._style,e),this.updateStyle()}constructor(e,t){super(),this._layer=gt.NONE,this._text=null,this._background=null,this._backgroundSize=new d,this._style=Object.assign({},li),this._resolution=new T,this.defaultMaterial=new v({color:16777215,side:R,transparent:!0}),this.getFlatRaycastMesh=()=>{const e=new B(new D(1,1),this.defaultMaterial);return this.getFlatRaycastMesh=()=>e,e},this.getCurvedRaycastMesh=()=>{const e=new B(new D(1,1,32,1),this.defaultMaterial);return this.getCurvedRaycastMesh=()=>e,e},this.uuid=e,this._layer=t,this._text=new qe,this._text.depthOffset=-.1,this._text.raycast=()=>{},this.layers.set(this._layer),this._text.layers.set(this._layer),this.add(this._text),this.onBeforeRender=e=>{e.getDrawingBufferSize(this._resolution)},this.frustumCulled=!1}async update(e,t){return new Promise((i=>{e.textValue&&(this._text.text=e.textValue),e.richTextValue,e.height&&(this._text.fontSize=e.height),this._text.anchorX=e.anchorX,this._text.anchorY=e.anchorY,this._text._needsSync?this._text.sync((()=>{i(),t&&t()})):(i(),t&&t())}))}setTransform(e,t,i){e&&(this._style.billboard&&(this.textMesh.material.userData.billboardPos.value.copy(e),this._background&&this._background.material.userData.billboardPos.value.copy(e)),this.position.copy(e)),t&&this.quaternion.copy(t),i&&this.scale.copy(i)}raycast(e,t){const{textRenderInfo:i,curveRadius:n}=this.textMesh;if(i){const r=i.blockBounds,a=n?this.getCurvedRaycastMesh():this.getFlatRaycastMesh(),o=a.geometry,{position:l,uv:c}=o.attributes;for(let t=0;t<c.count;t++){let i=r[0]+c.getX(t)*(r[2]-r[0]);const a=r[1]+c.getY(t)*(r[3]-r[1]);let o=0;if(n&&(o=n-Math.cos(i/n)*n,i=Math.sin(i/n)*n),this.textMesh.material.defines.BILLBOARD_FIXED){if(0===this._resolution.length())return;const n=(new T).set(this.textMesh.material.billboardPixelHeight/this._resolution.x*2,this.textMesh.material.billboardPixelHeight/this._resolution.y*2),r=(new s).copy(e.camera.projectionMatrix).invert(),o=(new s).copy(e.camera.matrixWorldInverse).invert(),c=new I(this.position.x,this.position.y,this.position.z,1).applyMatrix4(e.camera.matrixWorldInverse).applyMatrix4(e.camera.projectionMatrix),h=c.w;c.multiplyScalar(1/h),c.add(new I(i*n.x,a*n.y,0,0)),c.multiplyScalar(h),c.applyMatrix4(r),c.applyMatrix4(o),l.setXYZ(t,c.x,c.y,c.z)}else l.setXYZ(t,i,a,o)}this.textMesh.material.defines.BILLBOARD_FIXED?(o.computeBoundingBox(),o.computeBoundingSphere(),a.matrixWorld.identity()):(o.boundingSphere=this.textMesh.geometry.boundingSphere,o.boundingBox=this.textMesh.geometry.boundingBox,a.matrixWorld=this.textMesh.matrixWorld),a.material.side=this.textMesh.material.side;const h=[];a.raycast(e,h);for(let e=0;e<h.length;e++)h[e].object=this,t.push(h[e])}}updateStyle(){this.updateBackground()}updateBackground(){var e;if(!this._style.backgroundColor)return this._background&&this.remove(this._background),void(this._background=null);this._text.geometry.computeBoundingBox();const t=this._text.geometry.boundingBox.getSize(new d),i=t.distanceTo(this._backgroundSize);let n=null===(e=this._background)||void 0===e?void 0:e.geometry;if(i>.1&&(n=this.RectangleRounded(1.2*t.x,1.2*t.y,.5,5),n.computeBoundingBox(),this._backgroundSize.copy(t),this._background&&(this._background.geometry=n)),null===this._background){const e=new Jt({},["BILLBOARD_FIXED"]);e.toneMapped=!1,e.side=R,e.depthTest=!1,this._background=new B(n,e),this._background.layers.set(this._layer),this._background.frustumCulled=!1,this._background.renderOrder=1,this.add(this._background)}const r=new l(this._style.backgroundColor).convertSRGBToLinear();this._background.material.color=r,this._background.material.billboardPixelHeight=(void 0!==this._style.backgroundPixelHeight?this._style.backgroundPixelHeight:li.backgroundPixelHeight||0)*window.devicePixelRatio}RectangleRounded(e,t,i,n){const r=2*Math.PI,s=4*(n+1),a=[],o=[],l=[];let c,h,d,u,p;for(let e=1;e<s;e++)a.push(0,e,e+1);a.push(0,s,1),o.push(0,0,0),l.push(.5,.5);for(let e=0;e<s;e++)g(e);const m=new L;return m.setIndex(new b(new Uint32Array(a),1)),m.setAttribute("position",new b(new Float32Array(o),3)),m.setAttribute("uv",new b(new Float32Array(l),2)),m;function g(n){c=Math.trunc(4*n/s)+1,h=1===c||4===c?1:-1,d=c<3?1:-1,u=h*(e/2-i)+i*Math.cos(r*(n-c+1)/(s-4)),p=d*(t/2-i)+i*Math.sin(r*(n-c+1)/(s-4)),o.push(u,p,0),l.push(.5+u/e,.5+p/t)}}}class hi{get bounds(){return(new h).setFromObject(this.mesh)}get drawCalls(){return 1}get minDrawCalls(){return 1}get triCount(){return this.getCount()}get vertCount(){var e;return this.mesh.textMesh.geometry.attributes.position.count+(null===(e=this.mesh.backgroundMesh)||void 0===e?void 0:e.geometry.attributes.position.count)}constructor(e,t,i){this.id=e,this.subtreeId=t,this.renderViews=i}get pointCount(){return 0}get lineCount(){return 0}get geometryType(){return Et.TEXT}get renderObject(){return this.mesh}getCount(){var e,t;return this.mesh.textMesh.geometry.index.count+(null===(t=null===(e=this.mesh.backgroundMesh)||void 0===e?void 0:e.geometry.index)||void 0===t?void 0:t.count)}get materials(){return this.mesh.material}get groups(){return[]}setBatchMaterial(e){this.batchMaterial=e}onUpdate(e){}onRender(e){}setVisibleRange(e){}getVisibleRange(){return Rt}getOpaque(){return _t.isOpaque(this.batchMaterial)?Rt:xt}getDepth(){return this.getOpaque()}getTransparent(){return _t.isTransparent(this.batchMaterial)?Rt:xt}getStencil(){return!0===this.batchMaterial.stencilWrite?Rt:xt}setBatchBuffers(e){throw new Error("Method not implemented.")}setDrawRanges(e){this.mesh.textMesh.material=e[0].material,e[0].materialOptions&&e[0].materialOptions.rampIndexColor&&this.mesh.textMesh.material.color.copy(e[0].materialOptions.rampIndexColor)}resetDrawRanges(){this.mesh.textMesh.material=this.batchMaterial,this.mesh.textMesh.visible=!0}async buildBatch(){if(!this.renderViews[0].renderData.geometry.metaData)throw new Error(`Cannot build batch ${this.id}. Metadata`);this.mesh=new ci(this.id,gt.STREAM_CONTENT_TEXT),this.mesh.matrixAutoUpdate=!1,await this.mesh.update(ci.SpeckleTextParamsFromMetadata(this.renderViews[0].renderData.geometry.metaData)),this.renderViews[0].renderData.geometry.bakeTransform&&this.mesh.matrix.copy(this.renderViews[0].renderData.geometry.bakeTransform),this.renderViews[0].setBatchData(this.id,0,this.mesh.textMesh.geometry.index.count/3),this.mesh.textMesh.material=this.batchMaterial}getRenderView(e){return this.renderViews[0]}getMaterialAtIndex(e){return this.batchMaterial}getMaterial(e){return this.batchMaterial}purge(){this.renderViews.length=0,this.batchMaterial.dispose(),this.mesh.geometry.dispose()}}const di={strategy:Ge,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!1,[Symbol("skip tree generation")]:!1};class ui{get geometry(){return this._bvh.geometry}get bvh(){return this._bvh}static buildBVH(e,t,i=di,n){if(!e||!t)throw new Error("Cannot build BVH with undefined indices or position!");let r=new Float32Array(t);if(n){r=new Float32Array(t.length);const e=new d;for(let i=0;i<t.length;i+=3)e.set(t[i],t[i+1],t[i+2]),e.applyMatrix4(n),r[i]=e.x,r[i+1]=e.y,r[i+2]=e.z}const s=new L;let a=null;t.length>=65535||e.length>=65535?(a=new Uint32Array(e.length),a.set(e,0),s.setIndex(new P(a,1))):(a=new Uint16Array(e.length),a.set(e,0),s.setIndex(new z(a,1))),s.setAttribute("position",new C(r,3)),s.computeBoundingBox();return new We(s,i)}constructor(e){this._bvh=e}raycast(e,t=x){const i=this._bvh.raycast(this.transformInput(e),t);return i.forEach((e=>{e.point=this.transformOutput(e.point)})),i}raycastFirst(e,t=x){const i=this._bvh.raycastFirst(this.transformInput(e),t);return i&&(i.point=this.transformOutput(i.point)),i}shapecast(e){const t=new h,i=new He,n=Object.create(null);return e.intersectsBounds&&(n.intersectsBounds=(i,n,r,s,a)=>(t.copy(i),this.transformOutput(t),e.intersectsBounds(t,n,r,s,a))),e.intersectsTriangle&&(n.intersectsTriangle=(t,n,r,s)=>(i.copy(t),this.transformOutput(i.a),this.transformOutput(i.b),this.transformOutput(i.c),e.intersectsTriangle(i,n,r,s))),n.intersectsRange=e.intersectsRange,n.traverseBoundsOrder=e.traverseBoundsOrder,this._bvh.shapecast(n)}transformInput(e){return ui.MatBuff.copy(this.inputOriginTransform).multiply(this.inputTransform),e.applyMatrix4(ui.MatBuff)}transformOutput(e){return ui.MatBuff.copy(this.outputOriginTransfom).premultiply(this.outputTransform),e.applyMatrix4(ui.MatBuff)}getBoundingBox(e){const t=e||new h;return this._bvh.getBoundingBox(t),this.transformOutput(t)}getVertexAtIndex(e){const t=this._bvh.geometry.attributes.position.array;return this.transformOutput(new d(t[3*e],t[3*e+1],t[3*e+2]))}}ui.MatBuff=new s;class pi{constructor(e){this.batchObjects=[],this.bounds=new h(new d(0,0,0),new d(0,0,0)),this.boxHelpers=[],this.batchObjects=e,this.buildBVH(),this.getBoundingBox(this.bounds)}buildBVH(){const e=[],t=new Array(3*pi.CUBE_VERTS*this.batchObjects.length);let i=0;for(let n=0;n<this.batchObjects.length;n++){const r=this.batchObjects[n].accelerationStructure.getBoundingBox(new h);if(this.updateVertArray(r,i,t),e.push(...pi.cubeIndices.map((e=>e+i/3))),this.batchObjects[n].tasVertIndexStart=i/3,this.batchObjects[n].tasVertIndexEnd=i/3+pi.CUBE_VERTS,i+=3*pi.CUBE_VERTS,pi.debugBoxes){const e=new U(r,new l(16711680));e.layers.set(gt.PROPS),this.boxHelpers.push(e)}}this.accelerationStructure=new ui(ui.buildBVH(e,t)),this.accelerationStructure.inputTransform=new s,this.accelerationStructure.outputTransform=new s,this.accelerationStructure.inputOriginTransform=new s,this.accelerationStructure.outputOriginTransfom=new s}updateVertArray(e,t,i){i[t]=e.min.x,i[t+1]=e.min.y,i[t+2]=e.max.z,i[t+3]=e.max.x,i[t+4]=e.min.y,i[t+5]=e.max.z,i[t+6]=e.max.x,i[t+7]=e.max.y,i[t+8]=e.max.z,i[t+9]=e.min.x,i[t+10]=e.max.y,i[t+11]=e.max.z,i[t+12]=e.min.x,i[t+13]=e.min.y,i[t+14]=e.min.z,i[t+15]=e.max.x,i[t+16]=e.min.y,i[t+17]=e.min.z,i[t+18]=e.max.x,i[t+19]=e.max.y,i[t+20]=e.min.z,i[t+21]=e.min.x,i[t+22]=e.max.y,i[t+23]=e.min.z}refit(){const e=this.accelerationStructure.geometry.attributes.position.array,t=new h;for(let i=0;i<this.batchObjects.length;i++){const n=this.batchObjects[i].tasVertIndexStart,r=this.batchObjects[i].accelerationStructure.getBoundingBox(t);this.updateVertArray(r,3*n,e),pi.debugBoxes&&this.boxHelpers[i].box.copy(r)}this.accelerationStructure.bvh.refit()}raycast(e,t=!1,i=x){const n=[],r=new k;r.copy(e);const s=this.accelerationStructure.raycast(r,i);if(!s.length)return n;const a=this.accelerationStructure.geometry.index;return s.forEach((s=>{const o=a.array[3*s.faceIndex],l=Math.trunc(o/pi.CUBE_VERTS);if(s.batchObject=this.batchObjects[l],!t){r.copy(e);this.batchObjects[l].accelerationStructure.raycast(r,i).forEach((e=>{const t=e;t.batchObject=this.batchObjects[l],n.push(t)}))}})),t?s:n}raycastFirst(e,t=!1,i=x){const n=new k;n.copy(e);let r=null,s=null;return s=t?[this.accelerationStructure.raycastFirst(n,i)]:this.accelerationStructure.raycast(n,i),s&&0!==s.length?(s.some((s=>{const a=this.accelerationStructure.geometry.index.array[3*s.faceIndex],o=Math.trunc(a/pi.CUBE_VERTS);if(s.batchObject=this.batchObjects[o],!t){n.copy(e);const t=this.batchObjects[o].accelerationStructure.raycastFirst(n,i);if(r=t,r)return r.batchObject=this.batchObjects[o],!0}return!1})),t?s[0]:r):null}shapecast(e){let t=!1;return this.accelerationStructure.shapecast({intersectsBounds:(t,i,n,r,s)=>!!e.intersectsTAS&&e.intersectsTAS(t,i,n,r,s),intersectsRange:i=>{const n=this.accelerationStructure.geometry.index.array[3*i],r=Math.trunc(n/pi.CUBE_VERTS);if(e.intersectTASRange){if(!e.intersectTASRange(this.batchObjects[r]))return!1}return t||(t=this.batchObjects[r].accelerationStructure.shapecast((t=>{const i=Object.create(null);return e.intersectsBounds&&(i.intersectsBounds=e.intersectsBounds),e.intersectsTriangle&&(i.intersectsTriangle=(i,n,r,s)=>e.intersectsTriangle(i,n,r,s,t)),i.intersectsRange=e.intersectsRange,i.traverseBoundsOrder=e.traverseBoundsOrder,i})(this.batchObjects[r]))),!1}}),t}closestPointToPoint(e){return this.accelerationStructure.bvh.closestPointToPoint(e)}getBoundingBox(e){return this.accelerationStructure.getBoundingBox(e),e}}pi.debugBoxes=!1,pi.cubeIndices=[0,1,2,2,3,0,1,5,6,6,2,1,7,6,5,5,4,7,4,0,3,3,7,4,4,5,1,1,0,4,3,2,6,6,7,3],pi.CUBE_VERTS=8;const mi=new s,gi=new k,vi=new V,fi=new d,wi=new d,Si=new d,Ai=new d,yi=new d,Ti=new d,Ei=new d,xi=new d,Ri=new d,Ci=new d,Mi=new T,Oi=new T,bi=new T,Ii=new d,Ni=new d,Bi=new k,Di=new s;var Li;!function(e){e[e.VERTEX_TEXTURE=0]="VERTEX_TEXTURE",e[e.UNIFORM_ARRAY=1]="UNIFORM_ARRAY"}(Li||(Li={}));class Pi extends B{get TAS(){return this.tas}get batchObjects(){return this._batchObjects}constructor(e){super(e),this.materialCache={},this.materialStack=[],this.materialCacheLUT={},this.transformsBuffer=void 0,this.transformsArrayUniforms=null,this.debugBatchBox=!1}setBatchMaterial(e){this.batchMaterial=this.getCachedMaterial(e),this.material=[this.batchMaterial]}setBatchObjects(e,t){this._batchObjects=e,this.transformStorage=t,this.transformStorage===Li.VERTEX_TEXTURE?(this.transformsBuffer=new Float32Array(4*this._batchObjects.length*4),this.transformsTextureUniform=new c(this.transformsBuffer,this.transformsBuffer.length/4,1,F,Q)):this.transformStorage===Li.UNIFORM_ARRAY&&(this.transformsArrayUniforms=this._batchObjects.map((()=>new s))),this.updateTransformsUniform()}setOverrideMaterial(e){this.materialStack.push(this.material),this.material=this.getCachedMaterial(e,!0),this.material.needsUpdate=!0}lookupMaterial(e){return this.materialCache[e.id]||this.materialCache[this.materialCacheLUT[e.id]]}getCachedMaterial(e,t=!1){let i=this.lookupMaterial(e);if(i)(t||e.needsCopy||i.needsCopy)&&_t.fastCopy(e,i);else{const t=e.clone();this.materialCache[e.id]=t,this.materialCacheLUT[t.id]=e.id,i=t,this.updateMaterialTransformsUniform(this.materialCache[e.id])}return i}restoreMaterial(){this.materialStack.length>0&&(this.material=this.materialStack.pop())}updateMaterialTransformsUniform(e){e.defines||(e.defines={}),e.defines.TRANSFORM_STORAGE=this.transformStorage,this.transformStorage===Li.VERTEX_TEXTURE?(e.userData.tTransforms.value=this.transformsTextureUniform,e.userData.objCount&&(e.userData.objCount.value=this._batchObjects.length)):this.transformStorage===Li.UNIFORM_ARRAY&&(e.defines.OBJ_COUNT&&e.defines.OBJ_COUNT===this._batchObjects.length||(e.defines.OBJ_COUNT=this._batchObjects.length),e.userData.uTransforms.value=this.transformsArrayUniforms),e.needsUpdate=!0}updateTransformsUniform(){if(!this.transformsBuffer)return;let e=!1;if(this.transformStorage===Li.VERTEX_TEXTURE){for(let t=0;t<this._batchObjects.length;t++){const i=this._batchObjects[t];if(!e&&!(e=i.transformDirty))continue;const n=16*i.batchIndex;this.transformsBuffer[n]=i.quaternion.x,this.transformsBuffer[n+1]=i.quaternion.y,this.transformsBuffer[n+2]=i.quaternion.z,this.transformsBuffer[n+3]=i.quaternion.w,this.transformsBuffer[n+4]=i.pivot_Low.x,this.transformsBuffer[n+5]=i.pivot_Low.y,this.transformsBuffer[n+6]=i.pivot_Low.z,this.transformsBuffer[n+7]=i.scaleValue.x,this.transformsBuffer[n+8]=i.pivot_High.x,this.transformsBuffer[n+9]=i.pivot_High.y,this.transformsBuffer[n+10]=i.pivot_High.z,this.transformsBuffer[n+11]=i.scaleValue.y,this.transformsBuffer[n+12]=i.translation.x,this.transformsBuffer[n+13]=i.translation.y,this.transformsBuffer[n+14]=i.translation.z,this.transformsBuffer[n+15]=i.scaleValue.z,i.transformDirty=!1}this.transformsTextureUniform.needsUpdate=e}else{if(!this.transformsArrayUniforms)return;for(let t=0;t<this._batchObjects.length;t++){const i=this._batchObjects[t];(e||(e=i.transformDirty))&&this.transformsArrayUniforms[t].set(i.quaternion.x,i.pivot_Low.x,i.pivot_High.x,i.translation.x,i.quaternion.y,i.pivot_Low.y,i.pivot_High.y,i.translation.y,i.quaternion.z,i.pivot_Low.z,i.pivot_High.z,i.translation.z,i.quaternion.w,i.scaleValue.x,i.scaleValue.y,i.scaleValue.z)}}this.tas&&e&&(this.tas.refit(),this.tas.getBoundingBox(this.tas.bounds),this.geometry.boundingBox||(this.geometry.boundingBox=new h),this.geometry.boundingBox.copy(this.tas.bounds),this.geometry.boundingSphere||(this.geometry.boundingSphere=new V),this.geometry.boundingBox.getBoundingSphere(this.geometry.boundingSphere),!this.boxHelper&&this.debugBatchBox&&(this.boxHelper=new U(this.tas.bounds,new l(16711680)),this.boxHelper.layers.set(gt.PROPS),this.parent&&this.parent.add(this.boxHelper)))}buildTAS(){this.tas=new pi(this.batchObjects),this.tas.refit()}getBatchObjectMaterial(e){const t=e.renderView,i=this.geometry.groups.find((e=>t.batchStart>=e.start&&t.batchStart+t.batchCount<=e.count+e.start));return Array.isArray(this.material)?i?this.material[i.materialIndex]:(St.warn(`Could not get material for ${e.renderView.renderData.id}`),null):this.material}convertRaycastIntersect(e,t,i){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(i.ray.origin),e.object=t,e.distance<i.near||e.distance>i.far?null:e)}raycast(e,t){if(this.tas){if(void 0===this.batchMaterial)return;if(Di.copy(this.matrixWorld).invert(),Bi.copy(e.ray).applyMatrix4(Di),!0===e.firstHitOnly){const i=this.convertRaycastIntersect(this.tas.raycastFirst(Bi,e.intersectTASOnly,this.batchMaterial),this,e);i&&t.push(i)}else{const i=this.tas.raycast(Bi,e.intersectTASOnly,this.batchMaterial);for(let n=0,r=i.length;n<r;n++){const r=this.convertRaycastIntersect(i[n],this,e);r&&t.push(r)}}}else{const i=this.geometry,n=this.material,r=this.matrixWorld;if(void 0===n)return;if(null===i.boundingSphere&&i.computeBoundingSphere(),vi.copy(i.boundingSphere||new V),vi.applyMatrix4(r),!1===e.ray.intersectsSphere(vi))return;if(mi.copy(r).invert(),gi.copy(e.ray).applyMatrix4(mi),null!==i.boundingBox&&!1===gi.intersectsBox(i.boundingBox))return;let s;const a=i.index,o=i.attributes.position,l=i.attributes.position_low,c=i.morphAttributes.position,h=i.morphTargetsRelative,d=i.attributes.uv,u=i.attributes.uv2,p=i.groups,m=i.drawRange;if(null!==a)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i];if(!r.materialIndex){St.error("Group with no material, skipping!");continue}const g=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(a.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){const n=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=zi(this,g,e,gi,l,o,c,h,d,u,n,p,m),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(a.count,m.start+m.count);i<r;i+=3){const r=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=zi(this,n,e,gi,l,o,c,h,d,u,r,p,m),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}else if(void 0!==o)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i],a=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(o.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){s=zi(this,a,e,gi,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(o.count,m.start+m.count);i<r;i+=3){s=zi(this,n,e,gi,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}}}}function zi(e,t,i,n,r,s,a,o,l,c,h,u,p){wi.fromBufferAttribute(s,h),Si.fromBufferAttribute(s,u),Ai.fromBufferAttribute(s,p),r&&(wi.add(fi.fromBufferAttribute(r,h)),Si.add(fi.fromBufferAttribute(r,u)),Ai.add(fi.fromBufferAttribute(r,p)));const m=e.morphTargetInfluences;if(a&&m){xi.set(0,0,0),Ri.set(0,0,0),Ci.set(0,0,0);for(let e=0,t=a.length;e<t;e++){const t=m[e],i=a[e];0!==t&&(yi.fromBufferAttribute(i,h),Ti.fromBufferAttribute(i,u),Ei.fromBufferAttribute(i,p),o?(xi.addScaledVector(yi,t),Ri.addScaledVector(Ti,t),Ci.addScaledVector(Ei,t)):(xi.addScaledVector(yi.sub(wi),t),Ri.addScaledVector(Ti.sub(Si),t),Ci.addScaledVector(Ei.sub(Ai),t)))}wi.add(xi),Si.add(Ri),Ai.add(Ci)}e.isSkinnedMesh&&(e.boneTransform(h,wi),e.boneTransform(u,Si),e.boneTransform(p,Ai));const g=function(e,t,i,n,r,s,a,o){let l;if(l=t.side===j?n.intersectTriangle(a,s,r,!0,o):n.intersectTriangle(r,s,a,t.side!==R,o),null===l)return null;Ni.copy(o),Ni.applyMatrix4(e.matrixWorld);const c=i.ray.origin.distanceTo(Ni);return c<i.near||c>i.far?null:{distance:c,point:Ni.clone(),object:e,uv:void 0,uv2:void 0,face:void 0}}(e,t,i,n,wi,Si,Ai,Ii);if(g){l&&(Mi.fromBufferAttribute(l,h),Oi.fromBufferAttribute(l,u),bi.fromBufferAttribute(l,p),g.uv=q.getUV(Ii,wi,Si,Ai,Mi,Oi,bi,new T)),c&&(Mi.fromBufferAttribute(c,h),Oi.fromBufferAttribute(c,u),bi.fromBufferAttribute(c,p),g.uv2=q.getUV(Ii,wi,Si,Ai,Mi,Oi,bi,new T));const e={a:h,b:u,c:p,normal:new d,materialIndex:0};q.getNormal(wi,Si,Ai,e.normal),g.face=e}return g}Pi.MeshBatchNumber=0;const Ui=new s,ki=new k,Vi=new V,Fi=new d,Qi=new d,qi=new d,ji=new d,Ji=new d,Gi=new d,Wi=new d,Hi=new d,Xi=new d,Ki=new d,Yi=new T,Zi=new T,_i=new T,$i=new d,en=new d,tn=new k,nn=new s;class rn extends J{get TAS(){return this.tas}get batchObjects(){return this._batchObjects}constructor(e){super(),this.batchMaterial=null,this.materialCache={},this.materialStack=[],this.materialCacheLUT={},this.groups=[],this.materials=[],this.instanceGeometry=void 0,this.instances=[],this.instanceGeometry=e,this.userData.raycastChildren=!1}setBatchMaterial(e){this.batchMaterial=e,this.materialCache[e.id]=e,this.materials.push(this.batchMaterial)}setBatchObjects(e){this._batchObjects=e}setOverrideMaterial(e){const t=[];for(let e=0;e<this.instances.length;e++)t.push(this.instances[e].material);this.materialStack.push(t);const i=this.getCachedMaterial(e,!0);this.instances.forEach((e=>e.material=i))}lookupMaterial(e){return this.materialCache[e.id]||this.materialCache[this.materialCacheLUT[e.id]]}getCachedMaterial(e,t=!1){let i=this.lookupMaterial(e);if(i)(t||e.needsCopy||i.needsCopy)&&_t.fastCopy(e,i);else{const t=e.clone();this.materialCache[e.id]=t,this.materialCacheLUT[t.id]=e.id,i=t,this.updateMaterialTransformsUniform(this.materialCache[e.id])}return i}restoreMaterial(){if(this.materialStack.length>0){const e=this.materialStack.pop();for(let t=0;t<e.length;t++)this.instances[t].material=e[t]}}buildTAS(){this.tas=new pi(this.batchObjects),this.tas.refit()}updateDrawGroups(e,t){this.instances.forEach((e=>{this.remove(e),e.dispose()})),this.instances.length=0;for(let i=0;i<this.groups.length;i++){const n=this.groups[i].materialIndex,r=this.materials[n],s=new G(this.instanceGeometry,r,0);s.instanceMatrix=new W(e.subarray(this.groups[i].start,this.groups[i].start+this.groups[i].count),16),s.geometry.setAttribute("gradientIndex",new W(t.subarray(this.groups[i].start/16,(this.groups[i].start+this.groups[i].count)/16),1)),s.count=this.groups[i].count/16,s.instanceMatrix.needsUpdate=!0,s.layers.set(gt.STREAM_CONTENT_MESH),s.frustumCulled=!1,this.instances.push(s),this.add(s)}this.tas.refit(),this.tas.getBoundingBox(this.tas.bounds)}updateTransformsUniform(){let e=!1;for(let t=0;t<this._batchObjects.length;t++){const i=this._batchObjects[t];if(!e&&!(e=i.transformDirty))continue;const n=i.renderView,r=this.groups.find((e=>n.batchStart>=e.start&&n.batchStart+n.batchCount<=e.count+e.start));if(r){const e=this.instances[this.groups.indexOf(r)];e.setMatrixAt((n.batchStart-r.start)/16,i.transform),e.instanceMatrix.needsUpdate=!0}i.transformDirty=!1}this.tas&&e&&(this.tas.refit(),this.tas.getBoundingBox(this.tas.bounds))}updateMaterialTransformsUniform(e){}getBatchObjectMaterial(e){const t=e.renderView,i=this.groups.find((e=>t.batchStart>=e.start&&t.batchStart+t.batchCount<=e.count+e.start));return i?this.materials[i.materialIndex]:(St.warn(`Could not get material for ${e.renderView.renderData.id}`),null)}convertRaycastIntersect(e,t,i){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(i.ray.origin),e.object=t,e.distance<i.near||e.distance>i.far?null:e)}raycast(e,t){if(this.tas){if(!this.batchMaterial)return;if(nn.copy(this.matrixWorld).invert(),tn.copy(e.ray).applyMatrix4(nn),!0===e.firstHitOnly){const i=this.convertRaycastIntersect(this.tas.raycastFirst(tn,e.intersectTASOnly,this.batchMaterial),this,e);i&&t.push(i)}else{const i=this.tas.raycast(tn,e.intersectTASOnly,this.batchMaterial);for(let n=0,r=i.length;n<r;n++){const r=this.convertRaycastIntersect(i[n],this,e);r&&t.push(r)}}}else{const i=this.instanceGeometry,n=this.materials[0],r=this.matrixWorld;if(void 0===n)return;if(void 0===i)return;if(null===i.boundingSphere&&i.computeBoundingSphere(),Vi.copy(i.boundingSphere||new V),Vi.applyMatrix4(r),!1===e.ray.intersectsSphere(Vi))return;if(Ui.copy(r).invert(),ki.copy(e.ray).applyMatrix4(Ui),null!==i.boundingBox&&!1===ki.intersectsBox(i.boundingBox))return;let s;const a=i.index,o=i.attributes.position,l=i.attributes.position_low,c=i.morphAttributes.position,h=i.morphTargetsRelative,d=i.attributes.uv,u=i.attributes.uv2,p=i.groups,m=i.drawRange;if(null!==a)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i];if(!r.materialIndex){St.error("Group with no material, skipping!");continue}const g=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(a.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){const n=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=sn(this,g,e,ki,l,o,c,h,d,u,n,p,m),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(a.count,m.start+m.count);i<r;i+=3){const r=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=sn(this,n,e,ki,l,o,c,h,d,u,r,p,m),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}else if(void 0!==o)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i];if(!r.materialIndex){St.error("Group with no material, skipping!");continue}const a=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(o.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){s=sn(this,a,e,ki,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(o.count,m.start+m.count);i<r;i+=3){s=sn(this,n,e,ki,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}}}}function sn(e,t,i,n,r,s,a,o,l,c,h,u,p){Qi.fromBufferAttribute(s,h),qi.fromBufferAttribute(s,u),ji.fromBufferAttribute(s,p),r&&(Qi.add(Fi.fromBufferAttribute(r,h)),qi.add(Fi.fromBufferAttribute(r,u)),ji.add(Fi.fromBufferAttribute(r,p)));const m=e.morphTargetInfluences;if(a&&m){Hi.set(0,0,0),Xi.set(0,0,0),Ki.set(0,0,0);for(let e=0,t=a.length;e<t;e++){const t=m[e],i=a[e];0!==t&&(Ji.fromBufferAttribute(i,h),Gi.fromBufferAttribute(i,u),Wi.fromBufferAttribute(i,p),o?(Hi.addScaledVector(Ji,t),Xi.addScaledVector(Gi,t),Ki.addScaledVector(Wi,t)):(Hi.addScaledVector(Ji.sub(Qi),t),Xi.addScaledVector(Gi.sub(qi),t),Ki.addScaledVector(Wi.sub(ji),t)))}Qi.add(Hi),qi.add(Xi),ji.add(Ki)}e.isSkinnedMesh&&(e.boneTransform(h,Qi),e.boneTransform(u,qi),e.boneTransform(p,ji));const g=function(e,t,i,n,r,s,a,o){let l;if(l=t.side===j?n.intersectTriangle(a,s,r,!0,o):n.intersectTriangle(r,s,a,t.side!==R,o),null===l)return null;en.copy(o),en.applyMatrix4(e.matrixWorld);const c=i.ray.origin.distanceTo(en);return c<i.near||c>i.far?null:{distance:c,point:en.clone(),object:e,uv:void 0,uv2:void 0,face:void 0,faceIndex:void 0}}(e,t,i,n,Qi,qi,ji,$i);if(g){l&&(Yi.fromBufferAttribute(l,h),Zi.fromBufferAttribute(l,u),_i.fromBufferAttribute(l,p),g.uv=q.getUV($i,Qi,qi,ji,Yi,Zi,_i,new T)),c&&(Yi.fromBufferAttribute(c,h),Zi.fromBufferAttribute(c,u),_i.fromBufferAttribute(c,p),g.uv2=q.getUV($i,Qi,qi,ji,Yi,Zi,_i,new T));const e={a:h,b:u,c:p,normal:new d,materialIndex:0};q.getNormal(Qi,qi,ji,e.normal),g.face=e}return g}rn.MeshBatchNumber=0;class an{get renderView(){return this._renderView}get accelerationStructure(){return this._accelerationStructure}get batchIndex(){return this._batchIndex}get aabb(){if(this.renderView.aabb){const e=(new h).copy(this.renderView.aabb);return e.applyMatrix4(this.transform),e}return new h}get localOrigin(){return this._localOrigin}set position(e){this.transformTRS((new d).subVectors(e,this._localOrigin),this.eulerValue,this.scaleValue,(new d).addVectors(this.pivot_Low,this.pivot_High))}set euler(e){this.transformTRS(this.translation,e,this.scaleValue,(new d).addVectors(this.pivot_Low,this.pivot_High))}set scale(e){this.transformTRS(this.translation,this.eulerValue,e,(new d).addVectors(this.pivot_Low,this.pivot_High))}constructor(e,t){this.quaternion=new H,this.eulerValue=new a,this.pivot_High=new d,this.pivot_Low=new d,this.translation=new d,this.scaleValue=new d(1,1,1),this.transformDirty=!0,this._renderView=e,this._batchIndex=t,this.transform=(new s).identity(),this.transformInv=(new s).identity(),this._localOrigin=this._renderView.aabb.getCenter(new d),ni.DoubleToHighLowVector(new d(this._localOrigin.x,this._localOrigin.y,this._localOrigin.z),this.pivot_Low,this.pivot_High)}buildAccelerationStructure(e){var t,i;const n=(new s).makeTranslation(this._localOrigin.x,this._localOrigin.y,this._localOrigin.z);if(n.invert(),!e){const r=null===(t=this._renderView.renderData.geometry.attributes)||void 0===t?void 0:t.INDEX,s=null===(i=this._renderView.renderData.geometry.attributes)||void 0===i?void 0:i.POSITION;e=ui.buildBVH(r,s,di,n)}this._accelerationStructure=new ui(e),this._accelerationStructure.inputTransform=this.transformInv,this._accelerationStructure.outputTransform=this.transform,this._accelerationStructure.inputOriginTransform=(new s).copy(n),this._accelerationStructure.outputOriginTransfom=(new s).copy(n).invert()}transformTRS(e,t,i,n){let r=an.matBuff0.identity(),s=an.matBuff1.identity(),a=an.matBuff2.identity();an.eulerBuff.set(0,0,0,"XYZ"),an.translationBuff.set(0,0,0),an.scaleBuff.set(1,1,1),an.pivotBuff.copy(this._localOrigin),e&&(r=an.matBuff0.makeTranslation(e.x,e.y,e.z),an.translationBuff.set(e.x,e.y,e.z)),t&&(an.eulerBuff.set(t.x,t.y,t.z,"XYZ"),s=an.matBuff1.makeRotationFromEuler(an.eulerBuff),this.quaternion.setFromEuler(an.eulerBuff),this.eulerValue.copy(an.eulerBuff)),i&&(a=an.matBuff2.makeScale(i.x,i.y,i.z),an.scaleBuff.set(i.x,i.y,i.z)),n&&an.pivotBuff.set(n.x,n.y,n.z),this.transform.identity(),this.transform.multiply(s),this.transform.multiply(a),this.transform.premultiply(r),this.transformInv.copy(this.transform),this.transformInv.invert(),this.translation.copy(an.translationBuff),this.quaternion.setFromEuler(an.eulerBuff),this.scaleValue.copy(an.scaleBuff),ni.DoubleToHighLowVector(an.pivotBuff,this.pivot_Low,this.pivot_High),this.transformDirty=!0}}an.matBuff0=new s,an.matBuff1=new s,an.matBuff2=new s,an.eulerBuff=new a,an.translationBuff=new d,an.scaleBuff=new d,an.pivotBuff=new d;class on extends an{constructor(e,t){super(e,t),this.instanceTransform=new s,e.renderData.geometry.transform&&this.instanceTransform.copy(e.renderData.geometry.transform),this.transform.copy(this.instanceTransform),this.transformInv.copy((new s).copy(this.instanceTransform).invert()),this.transformDirty=!1}transformTRS(e,t,i,n){super.transformTRS(e,t,i,n),this.transform.multiply(this.instanceTransform),this.transformInv.copy(this.transform),this.transformInv.invert()}}class ln{integrateRanges(e,t,i){let n=[];e.sort(((e,t)=>e.start-t.start)),i.sort(((e,t)=>e.offset-t.offset));const r={},s={};for(let t=0,i=e.length-1;t<e.length;t++,i--){const n=e[t],a=e[i];r[n.start]=n.materialIndex,s[a.start+a.count]=a.materialIndex}n=e.map((e=>e.start+e.count)),n.unshift(0);for(let e=0;e<i.length;e++){const a=i[e],o=a.offset,l=n.findIndex((e=>e>o)),c=n[l];n.splice(l,0,o);const h=a.offset+a.count,d=n.findIndex((e=>e>h));n.splice(d,0,h),n=n.filter((e=>!(e>o&&e<h))),n=[...new Set(n)];const u=t.indexOf(a.material);r[o]=u,r[h]=h>=c?r[c]:s[c]}const a=[];let o=-1,l=0;for(let e=0;e<n.length-1;e++){const t=n[e];l+=n[e+1]-t;const i=r[t],s=e===n.length-2;(r[n[e+1]]!==i&&!s||(-1===o&&(o=t),s))&&(a.push({start:-1===o?t:o,count:l,materialIndex:i}),o=-1,l=0)}return a}}class cn{get bounds(){return this.mesh.TAS.getBoundingBox(new h)}get drawCalls(){return this.groups.length}get minDrawCalls(){return[...Array.from(new Set(this.groups.map((e=>e.materialIndex))))].length}get maxDrawCalls(){return 1}get triCount(){return(this.geometry.index?this.geometry.index.count:0)/3*this.renderViews.length}get vertCount(){return this.geometry.attributes.position.count*this.renderViews.length}get pointCount(){return 0}get lineCount(){return 0}get geometryType(){return Et.MESH}get renderObject(){return this.mesh}getCount(){return 16*this.renderViews.length}get materials(){return this.mesh.materials}get groups(){return this.mesh.groups}constructor(e,t,i){this.drawRanges=new ln,this.transformBufferIndex=0,this.needsShuffle=!1,this.id=e,this.subtreeId=t,this.renderViews=i}setBatchMaterial(e){this.batchMaterial=e}onUpdate(e){this.needsShuffle&&(this.shuffleDrawGroups(),this.needsShuffle=!1)}onRender(e){}setVisibleRange(e){1!==e.length||e[0]!==xt?1!==e.length||e[0]!==Rt?(this.mesh.children.forEach((e=>e.visible=!1)),e.forEach((e=>{const t=this.groups.find((t=>e.offset===t.start&&e.offset+e.count===t.start+t.count));if(t){const e=this.groups.indexOf(t);-1!==e&&(this.mesh.children[e].visible=!0)}}))):this.mesh.children.forEach((e=>e.visible=!0)):this.mesh.children.forEach((e=>e.visible=!1))}getVisibleRange(){if(!this.mesh.children[0].visible)return xt;for(let e=0;e<this.mesh.children.length;e++)if(!this.mesh.children[e].visible)return{offset:0,count:16*e};return Rt}getOpaque(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible)));return e?{offset:0,count:e.start}:Rt}getDepth(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible||!1===this.materials[e.materialIndex].colorWrite)));return e?{offset:0,count:e.start}:Rt}getTransparent(){const e=this.groups.find((e=>void 0!==e.materialIndex&&_t.isTransparent(this.materials[e.materialIndex]))),t=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));if(e){const i=e.start,n=void 0!==t?t.start:this.getCount()-e.start;return 0===i&&n===this.getCount()?Rt:{offset:i,count:n}}return xt}getStencil(){if(1===this.groups.length&&!0===this.materials[0].stencilWrite)return Rt;const e=this.groups.find((e=>void 0!==e.materialIndex&&!0===this.materials[e.materialIndex].stencilWrite));return e?{offset:e.start,count:e.count}:xt}setBatchBuffers(e){for(let t=0;t<e.length;t++){const i=e[t];if(i.materialOptions){if(void 0!==i.materialOptions.rampIndex&&void 0!==i.materialOptions.rampWidth){const n=e[t].offset,r=i.materialOptions.rampIndex+.5/i.materialOptions.rampWidth;this.updateGradientIndexBufferData(n/16,r)}void 0!==i.materialOptions.rampTexture&&i.material instanceof Ft&&i.material.setGradientTexture(i.materialOptions.rampTexture)}}}setDrawRanges(e){e.forEach((e=>{e.material&&(e.material=this.mesh.getCachedMaterial(e.material))}));const t=e.map((e=>e.material)),i=[...Array.from(new Set(t.map((e=>e))))];for(let e=0;e<i.length;e++)this.materials.includes(i[e])||this.materials.push(i[e]);this.mesh.groups=this.drawRanges.integrateRanges(this.groups,this.materials,e);let n=0;this.groups.forEach((e=>n+=e.count)),n!==16*this.renderViews.length&&St.error(`Draw groups invalid on ${this.id}`),this.setBatchBuffers(e),this.cleanMaterials(),this.drawCalls>this.maxDrawCalls?this.needsShuffle=!0:this.mesh.updateDrawGroups(this.getCurrentTransformBuffer(),this.getCurrentGradientBuffer())}cleanMaterials(){const e=[...Array.from(new Set(this.groups.map((e=>this.materials[e.materialIndex]))))];let t=0;for(;this.materials.length>e.length;)e.includes(this.materials[t])?t++:(this.materials.splice(t,1),this.groups.forEach((e=>{e.materialIndex>t&&e.materialIndex--})),t=0)}shuffleDrawGroups(){const e=this.groups.sort(((e,t)=>e.start-t.start)).slice();this.groups.sort(((e,t)=>{const i=this.materials[e.materialIndex],n=this.materials[t.materialIndex],r=+n.visible+ +n.colorWrite-(+i.visible+ +i.colorWrite),s=+i.transparent-+n.transparent;return 0!==r?r:s}));const t=[];e.reduce(((e,t)=>(void 0!==t.materialIndex&&-1===e.indexOf(t.materialIndex)&&e.push(t.materialIndex),e)),t);const i=[];for(let n=0;n<t.length;n++)i.push(e.filter((e=>e.materialIndex===t[n])));const n=this.getCurrentTransformBuffer(),r=this.getNextTransformBuffer(),s=this.getCurrentGradientBuffer(),a=new Float32Array(s.length),o=[],l=this.renderViews.slice();l.sort(((e,t)=>e.batchStart-t.batchStart));let c=0;for(let e=0;e<i.length;e++){const t=i[e],h=c;let d=0;for(let e=0;e<t.length;e++){const i=t[e].start,o=t[e].count;let h=n.subarray(i,i+o);r.set(h,c),h=s.subarray(i/16,(i+o)/16),a.set(h,c/16);let u=0;for(let e=0;e<l.length;e++)l[e].batchStart>=i&&l[e].batchEnd<=i+o&&(l[e].setBatchData(this.id,c+u,l[e].batchCount),u+=l[e].batchCount,l.splice(e,1),e--);c+=o,d+=o}o.push({offset:h,count:d,materialIndex:t[0].materialIndex})}this.groups.length=0;for(let e=0;e<o.length;e++)this.groups.push({start:o[e].offset,count:o[e].count,materialIndex:o[e].materialIndex});s.set(a,0),this.mesh.updateDrawGroups(r,s);const h=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));h&&this.setVisibleRange([{offset:0,count:h.start}])}resetDrawRanges(){this.groups.length=0,this.materials.length=0,this.groups.push({start:0,count:16*this.renderViews.length,materialIndex:0}),this.materials.push(this.batchMaterial),this.setVisibleRange([Rt]),this.mesh.updateDrawGroups(this.getCurrentTransformBuffer(),this.getCurrentGradientBuffer())}getCurrentTransformBuffer(){return this.transformBufferIndex%2==0?this.instanceTransformBuffer0:this.instanceTransformBuffer1}getNextTransformBuffer(){return++this.transformBufferIndex%2==0?this.instanceTransformBuffer0:this.instanceTransformBuffer1}getCurrentGradientBuffer(){return this.instanceGradientBuffer}buildBatch(){var e,t,i,n,r;const a=[];let o=null;this.instanceTransformBuffer0=new Float32Array(16*this.renderViews.length),this.instanceTransformBuffer1=new Float32Array(16*this.renderViews.length);const l=this.getCurrentTransformBuffer();for(let i=0;i<this.renderViews.length;i++){const n=this.renderViews[i];if(!n.renderData.geometry.transform)throw new Error(`Instanced Render view with id ${n.renderData.id} has null transform!`);n.renderData.geometry.transform.toArray(l,16*i),this.renderViews[i].setBatchData(this.id,16*i,16);const r=new on(this.renderViews[i],i);if(!o){const n=(new s).makeTranslation(r.localOrigin.x,r.localOrigin.y,r.localOrigin.z);n.invert();const a=null===(e=this.renderViews[i].renderData.geometry.attributes)||void 0===e?void 0:e.INDEX,l=null===(t=this.renderViews[i].renderData.geometry.attributes)||void 0===t?void 0:t.POSITION;o=ui.buildBVH(a,l,di,n),o.refit()}r.buildAccelerationStructure(o),a.push(r)}const c=null===(i=this.renderViews[0].renderData.geometry.attributes)||void 0===i?void 0:i.INDEX,d=null===(n=this.renderViews[0].renderData.geometry.attributes)||void 0===n?void 0:n.POSITION,u=null===(r=this.renderViews[0].renderData.geometry.attributes)||void 0===r?void 0:r.COLOR;if(!c||!d)throw new Error(`Cannot build batch ${this.id}. Undefined indices or positions`);return this.makeInstancedMeshGeometry(d.length>=65535||c.length>=65535?new Uint32Array(c):new Uint16Array(c),new Float64Array(d),u?new Float32Array(u):void 0),this.mesh=new rn(this.geometry),this.mesh.setBatchObjects(a),this.mesh.setBatchMaterial(this.batchMaterial),this.mesh.buildTAS(),this.geometry.boundingBox=this.mesh.TAS.getBoundingBox(new h),this.geometry.boundingSphere=this.geometry.boundingBox.getBoundingSphere(new V),this.mesh.uuid=this.id,this.mesh.layers.set(gt.STREAM_CONTENT_MESH),this.mesh.frustumCulled=!1,this.groups.push({start:0,count:16*this.renderViews.length,materialIndex:0}),this.mesh.updateDrawGroups(this.getCurrentTransformBuffer(),this.getCurrentGradientBuffer()),Promise.resolve()}getRenderView(e){return St.warn("Deprecated! Use InstancedBatchObject"),null}getMaterialAtIndex(e){return St.warn("Deprecated! Use InstancedBatchObject"),null}getMaterial(e){const t=this.groups.find((t=>e.batchStart>=t.start&&e.batchStart+e.batchCount<=t.count+t.start));return t?this.materials[t.materialIndex]:(St.warn(`Could not get material for ${e.renderData.id}`),null)}makeInstancedMeshGeometry(e,t,i){this.geometry=new L,t&&this.geometry.setAttribute("position",new C(t,3)),i&&this.geometry.setAttribute("color",new C(i,3));let n=null;return n=t.length>=65535||e.length>=65535?new P(e,1):new z(e,1),this.geometry.setIndex(n),this.instanceGradientBuffer=new Float32Array(this.renderViews.length),ni.computeVertexNormals(this.geometry,t),ni.updateRTEGeometry(this.geometry,t),this.geometry}updateGradientIndexBufferData(e,t){this.getCurrentGradientBuffer()[e]=t}purge(){this.renderViews.length=0,this.geometry.dispose(),this.batchMaterial.dispose()}}class hn{constructor(){this.needsShuffle=!1}get materials(){return this.primitive.material}get groups(){return this.primitive.geometry.groups}set groups(e){this.primitive.geometry.groups=e}get renderObject(){return this.primitive}get drawCalls(){return this.groups.length}get vertCount(){return this.primitive.geometry.attributes.position.count}getCount(){var e;return(null===(e=this.primitive.geometry.index)||void 0===e?void 0:e.count)||0}setBatchMaterial(e){this.batchMaterial=e}onUpdate(){this.needsShuffle&&(this.shuffleDrawGroups(),this.needsShuffle=!1)}setVisibleRange(e){if(1===e.length&&e[0]===xt)return this.primitive.geometry.setDrawRange(0,0),void(this.primitive.visible=!1);if(1===e.length&&e[0]===Rt)return this.primitive.geometry.setDrawRange(0,this.getCount()),void(this.primitive.visible=!0);let t=1/0,i=0;e.forEach((e=>{t=Math.min(t,e.offset),i=Math.max(i,e.offset)}));const n=e.find((e=>e.offset===i));this.primitive.geometry.setDrawRange(t,i-t+(n?n.count:0)),this.primitive.visible=!0}getVisibleRange(){return 1===this.groups.length&&this.primitive.visible?Rt:this.primitive.visible?{offset:this.primitive.geometry.drawRange.start,count:this.primitive.geometry.drawRange.count}:xt}getOpaque(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible)));return e?{offset:0,count:e.start}:Rt}getDepth(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible||!1===this.materials[e.materialIndex].colorWrite)));return e?{offset:0,count:e.start}:Rt}getTransparent(){const e=this.groups.find((e=>void 0!==e.materialIndex&&_t.isTransparent(this.materials[e.materialIndex]))),t=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));return e?{offset:e.start,count:void 0!==t?t.start:this.getCount()-e.start}:xt}getStencil(){if(1===this.groups.length&&!0===this.materials[0].stencilWrite)return Rt;const e=this.groups.find((e=>void 0!==e.materialIndex&&!0===this.materials[e.materialIndex].stencilWrite));return e?{offset:e.start,count:e.count}:xt}setBatchBuffers(e){let t=1/0,i=0;for(let n=0;n<e.length;n++){const r=e[n];if(r.materialOptions){if(void 0!==r.materialOptions.rampIndex&&void 0!==r.materialOptions.rampWidth){const s=e[n].offset,a=e[n].offset+e[n].count,o=r.materialOptions.rampIndex+.5/r.materialOptions.rampWidth,l=this.updateGradientIndexBufferData(s,r.count===1/0?this.primitive.geometry.attributes.gradientIndex.array.length:a,o);t=Math.min(t,l.minIndex),i=Math.max(i,l.maxIndex)}void 0!==r.materialOptions.rampTexture&&(r.material instanceof Ft||r.material instanceof Ht)&&r.material.setGradientTexture(r.materialOptions.rampTexture)}}t<1/0&&i>0&&this.updateGradientIndexBuffer()}cleanMaterials(){const e=[...Array.from(new Set(this.groups.map((e=>{if(void 0!==e.materialIndex)return this.materials[e.materialIndex]}))))];let t=0;for(;this.materials.length>e.length;)e.includes(this.materials[t])?t++:(this.materials.splice(t,1),this.groups.forEach((e=>{void 0!==e.materialIndex&&e.materialIndex>t&&e.materialIndex--})),t=0)}shuffleDrawGroups(){const e=this.groups.slice();e.sort(this.shuffleMaterialOrder.bind(this));const t=[];e.reduce(((e,t)=>(void 0!==t.materialIndex&&-1===e.indexOf(t.materialIndex)&&e.push(t.materialIndex),e)),t);const i=[];for(let n=0;n<t.length;n++)i.push(e.filter((e=>e.materialIndex===t[n])));const n=this.getCurrentIndexBuffer(),r=this.getNextIndexBuffer(),s=n.array,a=r.array,o=[],l=this.renderViews.slice();l.sort(((e,t)=>e.batchStart-t.batchStart));let c=0;for(let e=0;e<i.length;e++){const t=i[e],n=c;let r=0;for(let e=0;e<t.length;e++){const i=t[e].start,n=t[e].count,o=s.subarray(i,i+n);a.set(o,c);let h=0;for(let e=0;e<l.length;e++)l[e].batchStart>=i&&l[e].batchEnd<=i+n&&(l[e].setBatchData(this.id,c+h,l[e].batchCount),h+=l[e].batchCount,l.splice(e,1),e--);c+=n,r+=n}o.push({offset:n,count:r,materialIndex:t[0].materialIndex})}this.groups=[];for(let e=0;e<o.length;e++)this.primitive.geometry.addGroup(o[e].offset,o[e].count,o[e].materialIndex);this.primitive.geometry.setIndex(r),this.primitive.geometry.index&&(this.primitive.geometry.index.needsUpdate=!0);const h=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));h&&this.setVisibleRange([{offset:0,count:h.start}])}updateGradientIndexBuffer(e,t){this.gradientIndexBuffer.updateRange={offset:void 0!==e?e:0,count:void 0!==e&&void 0!==t?t-e+1:-1},this.gradientIndexBuffer.needsUpdate=!0,this.primitive.geometry.attributes.gradientIndex.needsUpdate=!0}resetDrawRanges(){this.primitive.visible=!0,this.primitive.geometry.clearGroups(),this.primitive.geometry.addGroup(0,this.getCount(),0),this.primitive.geometry.setDrawRange(0,1/0)}getMaterial(e){for(let t=0;t<this.groups.length;t++){const i=this.groups[t];if(e.batchStart>=i.start&&e.batchEnd<=i.start+i.count)return this.materials[i.materialIndex]}return null}purge(){this.renderViews.length=0,this.primitive.geometry.dispose(),this.batchMaterial.dispose()}}class dn extends hn{get bounds(){return this.primitive.TAS.getBoundingBox(new h)}get minDrawCalls(){return[...Array.from(new Set(this.groups.map((e=>e.materialIndex))))].length}get triCount(){return this.getCount()/3}get pointCount(){return 0}get lineCount(){return 0}get geometryType(){return Et.MESH}get mesh(){return this.primitive}constructor(e,t,i,n){super(),this.indexBufferIndex=0,this.drawRanges=new ln,this.id=e,this.subtreeId=t,this.renderViews=i,this.transformStorage=n}getCurrentIndexBuffer(){return this.indexBufferIndex%2==0?this.indexBuffer0:this.indexBuffer1}getNextIndexBuffer(){return++this.indexBufferIndex%2==0?this.indexBuffer0:this.indexBuffer1}shuffleMaterialOrder(e,t){const i=this.materials[e.materialIndex],n=this.materials[t.materialIndex],r=+n.visible-+i.visible,s=+n.colorWrite-+i.colorWrite,a=+i.transparent-+n.transparent;return 0!==r?r:0!==s?s:a}updateGradientIndexBufferData(e,t,i){if(!this.primitive.geometry.index)throw new Error(`Invalid geometry on batch ${this.id}`);const n=this.primitive.geometry.index.array,r=this.gradientIndexBuffer.array;let s=1/0,a=0;for(let o=e;o<t;o++){const e=n[o];s=Math.min(s,e),a=Math.max(a,e),r[e]=i}return this.gradientIndexBuffer.updateRange={offset:s,count:a-s+1},this.gradientIndexBuffer.needsUpdate=!0,this.primitive.geometry.attributes.gradientIndex.needsUpdate=!0,{minIndex:s,maxIndex:a}}setDrawRanges(e){e.forEach((e=>{e.material&&(e.material=this.primitive.getCachedMaterial(e.material))}));const t=e.map((e=>e.material)),i=[...Array.from(new Set(t.map((e=>e))))];for(let e=0;e<i.length;e++)this.materials.includes(i[e])||this.materials.push(i[e]);this.groups=this.drawRanges.integrateRanges(this.groups,this.materials,e);let n=0;if(this.groups.forEach((e=>n+=e.count)),n!==this.getCount()&&St.error(`Draw groups invalid on ${this.id}, ${this.renderViews[0].renderData.id}, ${this.getCount()}, ${this.getCount()-n}`),this.setBatchBuffers(e),this.cleanMaterials(),this.drawCalls>this.minDrawCalls+2)this.needsShuffle=!0;else{const e=this.groups.find((e=>!0===this.materials[e.materialIndex].transparent||!1===this.materials[e.materialIndex].visible||!1===this.materials[e.materialIndex].colorWrite));if(e)for(let t=this.groups.indexOf(e);t<this.groups.length;t++){const e=this.materials[this.groups[t].materialIndex];if(!0!==e.transparent&&!1!==e.visible){this.needsShuffle=!0;break}}}}resetDrawRanges(){super.resetDrawRanges(),this.primitive.setBatchMaterial(this.batchMaterial)}buildBatch(){var e;let t=0,i=0;for(let e=0;e<this.renderViews.length;e++){const n=this.renderViews[e];if(!n.renderData.geometry.attributes||!n.renderData.geometry.attributes.INDEX)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);t+=n.renderData.geometry.attributes.INDEX.length,i+=n.renderData.geometry.attributes.POSITION.length}const n=void 0!==(null===(e=this.renderViews[0].renderData.geometry.attributes)||void 0===e?void 0:e.COLOR),r=new Uint32Array(t),s=new Float64Array(i),a=new Float32Array(n?i:0);a.fill(1);const o=new Float32Array(i/3);let l=0,c=0;const d=[];for(let e=0;e<this.renderViews.length;e++){const t=this.renderViews[e].renderData.geometry;if(!t.attributes||!t.attributes.INDEX)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);r.set(t.attributes.INDEX.map((e=>e+l/3)),c),s.set(t.attributes.POSITION,l),t.attributes.COLOR&&a.set(t.attributes.COLOR,l),o.fill(e,l/3,l/3+t.attributes.POSITION.length/3),this.renderViews[e].setBatchData(this.id,c,t.attributes.INDEX.length,l/3,l/3+t.attributes.POSITION.length/3);const i=new an(this.renderViews[e],e);i.buildAccelerationStructure(),d.push(i),l+=t.attributes.POSITION.length,c+=t.attributes.INDEX.length}const u=this.makeMeshGeometry(r,s,o,n?a:void 0);return this.primitive=new Pi(u),this.primitive.setBatchObjects(d,this.transformStorage),this.primitive.setBatchMaterial(this.batchMaterial),this.primitive.buildTAS(),this.primitive.geometry.boundingBox=this.primitive.TAS.getBoundingBox(new h),this.primitive.geometry.boundingSphere=this.primitive.geometry.boundingBox.getBoundingSphere(new V),this.primitive.uuid=this.id,this.primitive.layers.set(gt.STREAM_CONTENT_MESH),this.primitive.frustumCulled=!1,this.primitive.geometry.addGroup(0,this.getCount(),0),d.forEach((e=>{e.renderView.disposeGeometry()})),Promise.resolve()}makeMeshGeometry(e,t,i,n){const r=new L;t.length>=65535||e.length>=65535?(this.indexBuffer0=new P(e,1),this.indexBuffer1=new P(new Uint32Array(e.length),1)):(this.indexBuffer0=new z(e,1),this.indexBuffer1=new z(new Uint16Array(e.length),1)),r.setIndex(this.indexBuffer0),t&&r.setAttribute("position",new C(t,3)),i&&r.setAttribute("objIndex",new C(i,1)),n&&r.setAttribute("color",new C(n,3));const s=new Float32Array(t.length/3);return this.gradientIndexBuffer=new C(s,1),this.gradientIndexBuffer.setUsage(N),r.setAttribute("gradientIndex",this.gradientIndexBuffer),ni.computeVertexNormals(r,t),ni.updateRTEGeometry(r,t),r}getRenderView(e){return St.warn("Deprecated! Use BatchObject"),null}getMaterialAtIndex(e){return St.warn("Deprecated! Use BatchObject"),null}}class un extends hn{get geometryType(){return this.renderViews[0].geometryType}get bounds(){return this.primitive.geometry.boundingBox||this.primitive.geometry.computeBoundingBox(),this.primitive.geometry.boundingBox?this.primitive.geometry.boundingBox:new h}get minDrawCalls(){return this.materials.length}get triCount(){return 0}get pointCount(){return this.getCount()}get lineCount(){return 0}constructor(e,t,i){super(),this.drawRanges=new ln,this.id=e,this.subtreeId=t,this.renderViews=i}setDrawRanges(e){const t=e.map((e=>e.material)),i=[...Array.from(new Set(t.map((e=>e))))];for(let e=0;e<i.length;e++)this.materials.includes(i[e])||this.materials.push(i[e]);this.groups=this.drawRanges.integrateRanges(this.groups,this.materials,e);let n=0;if(this.groups.forEach((e=>n+=e.count)),n!==this.getCount()&&St.error(`Draw groups invalid on ${this.id}`),this.setBatchBuffers(e),this.cleanMaterials(),this.drawCalls>this.minDrawCalls+2)this.needsShuffle=!0;else{const e=this.groups.find((e=>!0===this.materials[e.materialIndex].transparent||!1===this.materials[e.materialIndex].visible));if(e)for(let t=this.groups.indexOf(e);t<this.groups.length;t++){const e=this.materials[this.groups[t].materialIndex];if(!0!==e.transparent&&!1!==e.visible){this.needsShuffle=!0;break}}}}resetDrawRanges(){this.primitive.material=[this.batchMaterial]}getCurrentIndexBuffer(){if(!this.primitive.geometry.index)throw new Error(`Invalid index buffer for batch ${this.id}`);return this.primitive.geometry.index}getNextIndexBuffer(){if(!this.primitive.geometry.index)throw new Error(`Invalid index buffer for batch ${this.id}`);return new b(this.primitive.geometry.index.array.slice(),this.primitive.geometry.index.itemSize)}shuffleMaterialOrder(e,t){const i=this.materials[e.materialIndex],n=this.materials[t.materialIndex],r=+n.visible-+i.visible,s=+i.transparent-+n.transparent;return 0!==r?r:s}updateGradientIndexBufferData(e,t,i){return this.gradientIndexBuffer.array.fill(i,e,t),this.gradientIndexBuffer.updateRange={offset:e,count:t-e},this.gradientIndexBuffer.needsUpdate=!0,this.primitive.geometry.attributes.gradientIndex.needsUpdate=!0,{minIndex:e,maxIndex:t}}buildBatch(){let e=0;for(let t=0;t<this.renderViews.length;t++){const i=this.renderViews[t];if(!i.renderData.geometry.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);e+=i.renderData.geometry.attributes.POSITION.length}const t=new Float64Array(e),i=new Float32Array(e).fill(1),n=new Int32Array(e/3);let r=0,s=0;for(let e=0;e<this.renderViews.length;e++){const a=this.renderViews[e].renderData.geometry;if(!a.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);t.set(a.attributes.POSITION,r),a.attributes.COLOR&&i.set(a.attributes.COLOR,r),n.set(new Int32Array(a.attributes.POSITION.length/3).map(((e,t)=>t+s)),s),this.renderViews[e].setBatchData(this.id,r/3,a.attributes.POSITION.length/3),r+=a.attributes.POSITION.length,s+=a.attributes.POSITION.length/3,this.renderViews[e].disposeGeometry()}const a=this.makePointGeometry(n,t,i);return this.primitive=new X(a,this.batchMaterial),this.primitive.material=[this.batchMaterial],this.primitive.geometry.addGroup(0,this.getCount(),0),this.primitive.uuid=this.id,this.primitive.layers.set(this.renderViews[0].geometryType===Et.POINT?gt.STREAM_CONTENT_POINT:gt.STREAM_CONTENT_POINT_CLOUD),Promise.resolve()}makePointGeometry(e,t,i){const n=new L;n.setAttribute("position",new C(t,3)),n.setAttribute("color",new C(i,3)),t.length>=65535||e.length>=65535?n.setIndex(new P(e,1)):n.setIndex(new z(e,1));const r=new Float32Array(t.length/3);return this.gradientIndexBuffer=new C(r,1),this.gradientIndexBuffer.setUsage(N),n.setAttribute("gradientIndex",this.gradientIndexBuffer),n.computeBoundingSphere(),n.computeBoundingBox(),ni.updateRTEGeometry(n,t),n}getRenderView(e){for(let t=0;t<this.renderViews.length;t++)if(e>=this.renderViews[t].batchStart&&e<this.renderViews[t].batchEnd)return this.renderViews[t];return null}getMaterialAtIndex(e){for(let t=0;t<this.renderViews.length;t++)if(e>=this.renderViews[t].batchStart&&e<this.renderViews[t].batchEnd){const e=this.renderViews[t],i=this.groups.find((t=>e.batchStart>=t.start&&e.batchStart+e.batchCount<=t.count+t.start));return i?this.materials[i.materialIndex]:(St.warn("Malformed material index!"),null)}return null}}class pn{constructor(e,t){this.maxHardwareUniformCount=0,this.floatTextures=!1,this.maxBatchObjects=0,this.maxBatchVertices=5e5,this.minInstancedBatchVertices=1e4,this.batches={},this.maxHardwareUniformCount=e,this.maxBatchObjects=Math.floor((this.maxHardwareUniformCount-_t.UNIFORM_VECTORS_USED)/4),this.floatTextures=t,this.materials=new _t,this.materials.createDefaultMaterials()}async*makeBatches(e,t,i,n){let r=Number.MAX_SAFE_INTEGER,s=-1,a=0,o=0;const l=t.getInstances(),c={},h=new yt;for(const t in l){h.tick(100),h.needsWait&&await h.wait(50);let i=e.findId(t);if(!i)continue;if(i=i.filter((e=>e.model.renderView&&e.model.renderView.speckleType===Zt.Mesh)),!i.length)continue;const n=i[0].model.renderView.renderData.geometry.attributes.POSITION.length/3*i.length;c[n]||(c[n]=[]),c[n].push(t)}for(const i in c)for(let n=0;n<c[i].length;n++){const a=e.findId(c[i][n]);if(!a)continue;let l=!0;a.every((e=>l&&(l=e.model.instanced)));const h=a.map((e=>e.model.renderView)).filter((e=>e));if(Number.parseInt(i)<this.minInstancedBatchVertices||!l){h.forEach((e=>{const t=e.renderData.geometry;t.instanced=!1;const i=t.attributes;t.attributes={POSITION:i.POSITION.slice(),INDEX:i.INDEX.slice(),...i.COLOR&&{COLOR:i.COLOR.slice()}},t.transform&&ni.transformGeometryData(t,t.transform),e.computeAABB()}));continue}const d=h[0].renderMaterialHash,u=await this.buildInstancedBatch(t,h,d);u&&(this.batches[u.id]=u,r=Math.min(r,u.renderViews.length),s=Math.max(s,u.renderViews.length),o++,yield this.batches[u.id])}const d=t.getRenderableNodes(...i).flatMap((e=>e.model.renderView?e.model.renderView.renderData.geometry.instanced?e.model.renderView.speckleType!==Zt.Mesh?[e.model.renderView]:[]:[e.model.renderView]:[])).sort(((e,t)=>0===e.renderMaterialHash?-1:0===t.renderMaterialHash?1:e.renderMaterialHash-t.renderMaterialHash)),u=[...Array.from(new Set(d.map((e=>e.renderMaterialHash))))];for(let e=0;e<u.length;e++){let i=d.filter((t=>t.renderMaterialHash===u[e])),l=0;if(i=i.filter((e=>{const t=e.validGeometry;return t&&(l+=e.renderData.geometry.attributes.POSITION.length/3),t||e.hasMetadata})),0===i.length)continue;const c=this.splitBatch(i,l);for(let i=0;i<c.length;i++){h.tick(100),h.needsWait&&await h.wait(50);const l=c[i],d=await this.buildBatch(t,l,u[e],n);d&&(this.batches[d.id]=d,r=Math.min(r,d.renderViews.length),s=Math.max(s,d.renderViews.length),a+=d.renderViews.length,o++,yield this.batches[d.id])}}St.warn(`Batch total: ${o} min: ${r}, max: ${s}, average: ${a/u.length}`)}splitBatch(e,t){const i=[];if(Math.floor(t/this.maxBatchVertices)>0){let t=0,n=0;i.push([]);for(let r=0;r<e.length;r++){const s=e[r],a=e[r+1];if(!s.renderData.geometry.attributes)throw new Error(`Invalid geometry on render view ${e[r].renderData.id}`);i[n].push(e[r]),t+=s.renderData.geometry.attributes.POSITION.length/3;t+(a&&a.renderData.geometry.attributes?a.renderData.geometry.attributes.POSITION.length/3:0)>=this.maxBatchVertices&&e[r+1]&&(i.push([]),n++,t=0)}}else i.push(e);if(e[0].geometryType===Et.MESH){const e=[];for(let t=0;t<i.length;t++){const n=i[t].length,r=Math.floor(n/this.maxBatchObjects),s=n%this.maxBatchObjects;let a=0;for(let n=0;n<r;n++)e.push(i[t].slice(a,a+this.maxBatchObjects)),a+=this.maxBatchObjects;s>0&&e.push(i[t].slice(a,a+s))}return e}return i}async buildInstancedBatch(e,t,i){if(!t.length)return St.warn("All renderviews have invalid geometries. Skipping batch!",t),null;const n=t[0].renderData.renderMaterial,r=this.materials.getMaterial(i,n,Et.MESH),s=K.generateUUID(),a=new cn(s,e.id,t);return a.setBatchMaterial(r),await a.buildBatch(),a}async buildBatch(e,t,i,n){if(!t.length)return St.warn("All renderviews have invalid geometries. Skipping batch!",t),null;const r=void 0!==n?n:t[0].geometryType;let s=t[0].renderData.renderMaterial;r===Et.MESH?s=t[0].renderData.renderMaterial:r===Et.LINE?s=t[0].renderData.displayStyle:r===Et.POINT?s=t[0].renderData.renderMaterial||t[0].renderData.displayStyle:r===Et.POINT_CLOUD?s=t[0].renderData.renderMaterial:r===Et.TEXT&&(s=t[0].renderData.displayStyle);const a=this.materials.getMaterial(i,s,r),o=K.generateUUID();let l=null;switch(r){case Et.MESH:l=new dn(o,e.id,t,this.floatTextures?Li.VERTEX_TEXTURE:Li.UNIFORM_ARRAY);break;case Et.LINE:l=new oi(o,e.id,t);break;case Et.POINT:case Et.POINT_CLOUD:l=new un(o,e.id,t);break;case Et.TEXT:l=new hi(o,e.id,t)}return l.setBatchMaterial(a),await l.buildBatch(),l}update(e){for(const t in this.batches)this.batches[t].onUpdate(e)}render(e){for(const t in this.batches){const i=this.batches[t];i.onRender&&i.onRender(e)}}saveVisiblity(){const e={};for(const t in this.batches){const i=this.batches[t];e[t]=i.getVisibleRange()}return e}applyVisibility(e){for(const t in this.batches){const i=this.batches[t],n=e[t];n?i.setVisibleRange([n]):i.setVisibleRange([xt])}}getTransparent(){const e={};for(const t in this.batches)e[t]=this.batches[t].getTransparent();return e}getStencil(){const e={};for(const t in this.batches)e[t]=this.batches[t].getStencil();return e}getOpaque(){const e={};for(const t in this.batches)e[t]=this.batches[t].getOpaque();return e}getDepth(){const e={};for(const t in this.batches)e[t]=this.batches[t].getDepth();return e}overrideMaterial(e,t){for(const i in e){if(this.batches[i].geometryType!==Et.MESH)continue;this.batches[i].renderObject.setOverrideMaterial(t)}}restoreMaterial(e){for(const t in e){if(this.batches[t].geometryType!==Et.MESH)continue;this.batches[t].renderObject.restoreMaterial()}}purgeBatches(e){for(const t in this.batches)this.batches[t].subtreeId===e&&(this.batches[t].purge(),delete this.batches[t])}getBatches(e,t){return Object.values(this.batches).filter((i=>{const n=void 0===e||i.subtreeId===e,r=void 0===t||this.isBatchType(i,t);return n&&r}))}isBatchType(e,t){if(void 0===t)return!0;switch(t){case Et.MESH:return e instanceof dn||e instanceof cn;case Et.LINE:return e instanceof oi;case Et.POINT:case Et.POINT_CLOUD:return e instanceof un;case Et.TEXT:return e instanceof hi;default:return!1}}getBatch(e){return this.batches[e.batchId]}getRenderView(e,t){return this.batches[e]?this.batches[e].getRenderView(t):(St.error("Invalid batch id!"),null)}getRenderViewMaterial(e,t){return this.batches[e]?this.batches[e].getMaterialAtIndex(t):(St.error("Invalid batch id!"),null)}resetBatchesDrawRanges(){for(const e in this.batches)this.batches[e].resetDrawRanges()}isolateBatch(e){for(const t in this.batches)t!==e&&this.batches[t].setDrawRanges([{offset:0,count:this.batches[t].getCount(),material:this.materials.getFilterMaterial(this.batches[t].renderViews[0],{filterType:Yt.GHOST})}])}}var mn;!function(e){e.PointerDown="pointer-down",e.PointerUp="pointer-up",e.PointerMove="pointer-move",e.PointerCancel="pointer-cancel",e.Wheel="wheel",e.Click="click",e.DoubleClick="double-click",e.KeyUp="key-up"}(mn||(mn={}));class gn extends ht{constructor(e){let t;super(),this.tapTimeout=0,this.lastTap=0,this.lastClick=0,this.container=e,this.container.addEventListener("pointerdown",(e=>{e.preventDefault();const i=this._getNormalisedClickPosition(e);i.event=e,t=(new Date).getTime(),this.emit(mn.PointerDown,i)})),this.container.addEventListener("pointerup",(e=>{e.preventDefault();const i=this._getNormalisedClickPosition(e);i.event=e,this.emit(mn.PointerUp,i);const n=(new Date).getTime(),r=n-t,s=n-this.lastClick;r>250||s<gn.MAX_DOUBLE_CLICK_TIMING||(e.shiftKey&&(i.multiSelect=!0),this.emit(mn.Click,i),this.lastClick=(new Date).getTime())})),this.container.addEventListener("touchstart",(e=>{this.touchLocation=e.targetTouches[0]})),this.container.addEventListener("touchend",(e=>{if(e.targetTouches.length>0)return;const t=(new Date).getTime(),i=t-this.lastTap;if(clearTimeout(this.tapTimeout),i<500&&i>0){if(this.touchLocation){const e=this._getNormalisedClickPosition(this.touchLocation);this.emit(mn.DoubleClick,e)}}else this.tapTimeout=setTimeout((()=>{clearTimeout(this.tapTimeout)}),500);this.lastTap=t})),this.container.addEventListener("dblclick",(e=>{const t=this._getNormalisedClickPosition(e);t.event=e,e.shiftKey&&(t.multiSelect=!0),this.emit(mn.DoubleClick,t)})),this.container.addEventListener("pointermove",(e=>{const t=this._getNormalisedClickPosition(e);t.event=e,this.emit(mn.PointerMove,t)})),document.addEventListener("keyup",(e=>{this.emit(mn.KeyUp,e)})),document.addEventListener("wheel",(e=>{this.emit(mn.Wheel,e)})),document.addEventListener("pointercancel",(e=>{const t=this._getNormalisedClickPosition(e);t.event=e,this.emit(mn.PointerUp,t),this.emit(mn.PointerCancel,t)}))}on(e,t){super.on(e,t)}_getNormalisedClickPosition(e){const t=this.container,i=this.container.getBoundingClientRect(),n=(e.clientX-i.left)*t.width/i.width,r=(e.clientY-i.top)*t.height/i.height;return new T(n/t.width*2-1,r/t.height*-2+1)}dispose(){super.dispose()}}gn.MAX_DOUBLE_CLICK_TIMING=500;class vn extends Y{constructor(e,t,i=0,n=1/0){super(e,t,i,n),this.intersectTASOnly=!1,this.onObjectIntersectionTest=null,this.layers.disableAll(),this.layers.enable(gt.STREAM_CONTENT),this.layers.enable(gt.STREAM_CONTENT_MESH),this.layers.enable(gt.STREAM_CONTENT_LINE),this.layers.enable(gt.STREAM_CONTENT_TEXT),this.layers.enable(gt.STREAM_CONTENT_POINT_CLOUD),this.layers.enable(gt.STREAM_CONTENT_POINT),this.params={Line2:{threshold:0}}}intersectObjects(e,t=!0,i=[]){for(let n=0,r=e.length;n<r;n++){const r=wn(e[n],this,i,t);if(!0===this.firstHitOnly&&!r)break}return i.sort(fn),i}}function fn(e,t){return e.distance-t.distance}function wn(e,t,i,n){const r=i.length;if(e.layers.test(t.layers)&&(t.onObjectIntersectionTest&&t.onObjectIntersectionTest(e),e.raycast(t,i)),!0===t.firstHitOnly&&i.length-r>0)return!0;let s=!1;if(n&&(n=null==e.userData.raycastChildren||e.userData.raycastChildren),!0===n){const n=e.children;for(let e=0,r=n.length;e<r&&(s=wn(n[e],t,i,!0),!0!==t.firstHitOnly||!s);e++);}return s}class Sn{constructor(){this.boxBuffer=new h,this.vec0Buffer=new I,this.vec1Buffer=new I,this.boundsBuffer=new h,this.raycaster=new vn,this.raycaster.params.Line={threshold:.01},this.raycaster.params.Points={threshold:.01},this.raycaster.params.Line2={threshold:1},this.raycaster.onObjectIntersectionTest=this.onObjectIntersection.bind(this)}onObjectIntersection(e){if(e instanceof je){const t=this.boxBuffer.setFromObject(e),i=this.vec0Buffer.set(t.min.x,t.min.y,t.min.z,1),n=this.vec1Buffer.set(t.max.y,t.max.y,t.max.z,1);i.applyMatrix4(this.raycaster.camera.matrixWorldInverse).applyMatrix4(this.raycaster.camera.projectionMatrix),n.applyMatrix4(this.raycaster.camera.matrixWorldInverse).applyMatrix4(this.raycaster.camera.projectionMatrix),i.multiplyScalar(.5).multiplyScalar(1/i.w).addScalar(.5),n.multiplyScalar(.5).multiplyScalar(1/n.w).addScalar(.5);const r=(new T).set(i.x,i.y).distanceTo(new T(n.x,n.y)),s=e.material,a=s.linewidth,o=s.worldUnits;this.raycaster.params.Line2.threshold=o?r<1?2*a:a:r<1?8*a:5*a}}intersect(e,t,i,n,r=!0,s,a=!1,o=!1){this.raycaster.setFromCamera(i,t),this.raycaster.firstHitOnly=a,this.raycaster.intersectTASOnly=o;const l=this.setRaycasterLayers(n);let c;return c=(gt.STREAM_CONTENT_MESH,this.intersectInternal(e,r,s)),this.raycaster.layers.mask=l,c}intersectRay(e,t,i,n,r=!0,s,a=!1,o=!1){this.raycaster.camera=t,this.raycaster.set(i.origin,i.direction),this.raycaster.firstHitOnly=a,this.raycaster.intersectTASOnly=o;const l=this.setRaycasterLayers(n);let c;return c=(gt.STREAM_CONTENT_MESH,this.intersectInternal(e,r,s)),this.raycaster.layers.mask=l,c}setRaycasterLayers(e){const t=this.raycaster.layers.mask;return void 0!==e&&(this.raycaster.layers.disableAll(),Array.isArray(e)?e.forEach((e=>{this.raycaster.layers.enable(e)})):this.raycaster.layers.enable(e)),t}intersectInternal(e,t,i){let n=[];const r=e.getObjectByName("ContentGroup");return r&&(n=this.raycaster.intersectObjects(r.children)),0===n.length?null:(t&&n.sort(((e,t)=>e.distance-t.distance)),i&&(this.boundsBuffer.copy(i),this.boundsBuffer.expandByVector(new d(1e-4*(this.boundsBuffer.max.x-this.boundsBuffer.min.x),1e-4*(this.boundsBuffer.max.y-this.boundsBuffer.min.y),1e-4*(this.boundsBuffer.max.z-this.boundsBuffer.min.z))),n=n.filter((e=>this.boundsBuffer.containsPoint(e.point)||!!e.pointOnLine&&this.boundsBuffer.containsPoint(e.pointOnLine)))),n)}}Sn.aabbPlanePoints=(e,t)=>{const i=new k,n=new Array,r=new d(t.max.x-t.min.x,0,0),s=(new d).copy(t.min);i.set(s,r);let a=i.distanceToPlane(e);return a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.max.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.min.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.max.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),r.set(0,t.max.y-t.min.y,0),s.set(t.min.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.min.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.min.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),r.set(0,0,t.max.z-t.min.z),s.set(t.min.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.max.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.max.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),n};class An extends It{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n uniform mat4 rteModelViewMatrix;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#ifdef LINEAR_DEPTH\n varying vec4 vViewPosition;\n#endif\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n// This is used for computing an equivalent of gl_FragCoord.z that is as high precision as possible.\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\nvarying vec2 vHighPrecisionZW;\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t//#include <project_vertex> // EDITED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n #ifdef USE_RTE\n mvPosition = rteModelViewMatrix * mvPosition;\n #else\n mvPosition = modelViewMatrix * mvPosition;\n #endif\n \n #ifdef LINEAR_DEPTH\n vViewPosition = mvPosition;\n #endif \n \n gl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t// #include <clipping_planes_vertex>\n #if NUM_CLIPPING_PLANES > 0\n\t vClipPosition = - mvPosition.xyz;\n #endif\n\tvHighPrecisionZW = gl_Position.zw;\n}\n"}get fragmentProgram(){return"\n#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#ifdef LINEAR_DEPTH\n varying vec4 vViewPosition;\n\tuniform float near;\n\tuniform float far;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t// #include <alphatest_fragment>\n\t#ifdef USE_ALPHATEST\n\t\tif ( diffuseColor.a < alphaTest ) discard;\n\t\t/** This is a workaround for rejecting shadows for certain materials, since three.js gave me no choice*/\n\t\t#ifdef ALPHATEST_REJECTION\n\t\t\tif (alphaTest > 0. ) discard;\n\t\t#endif\n\t#endif\n\t#include <logdepthbuf_fragment>\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\t#ifdef LINEAR_DEPTH\n\t\t/** View z is negative moving away from the camera */\n\t\tgl_FragColor = packDepthToRGBA((vViewPosition.z + near) / (near - far));\n\t#else\n\t\tfloat fragCoordZ = (0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5);\n\t\t#if DEPTH_PACKING == 3200\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t\t#elif DEPTH_PACKING == 3201\n\t\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t\t#endif\n\t#endif\n}\n"}get baseUniforms(){return A.depth.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,rteModelViewMatrix:new s,near:0,far:0,uTransforms:[new s],tTransforms:null,objCount:1}}constructor(e,t=[]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t),t.userData.near.value=e.userData.near.value,t.userData.far.value=e.userData.far.value}onBeforeRender(e,t,i,n,r){this.defines&&this.defines.USE_RTE&&(r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.userData.rteModelViewMatrix.value.copy(e.RTEBuffers.rteViewModelMatrix)),this.needsUpdate=!0}}var yn;!function(e){e[e.NORMAL=0]="NORMAL",e[e.ACCUMULATION=1]="ACCUMULATION"}(yn||(yn={}));class Tn extends Ke{get enabledLayers(){return this._enabledLayers}constructor(){super(),this.layers=null,this._enabledLayers=[]}get displayName(){return"BASE"}get outputTexture(){return null}setLayers(e){this.layers=e,this._enabledLayers=e.slice()}enableLayer(e,t){this._enabledLayers.includes(e)?t||this._enabledLayers.splice(this._enabledLayers.indexOf(e),1):t&&this._enabledLayers.push(e)}applyLayers(e){null!==this.layers?(e.layers.disableAll(),this.layers.forEach((t=>{this._enabledLayers.includes(t)&&e.layers.enable(t)}))):e.layers.enableAll()}}class En extends Ke{constructor(){super(),this.frameIndex=0,this.accumulatioFrames=0,this.materialCopy=new i({defines:{ACCUMULATE:0},uniforms:{tDiffuse:{value:null},tDiffuseInterp:{value:null},frameIndex:{value:0}},vertexShader:"\n\t\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\t\tuniform float opacity;\n\t\tuniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseInterp;\n\t\tvarying vec2 vUv;\n #if ACCUMULATE == 1\n uniform float frameIndex;\n #endif\n\n\t\tvoid main() {\n vec3 currentSample = texture2D( tDiffuse, vUv ).rgb;\n \n #if ACCUMULATE == 1\n vec3 interpSample = texture2D( tDiffuseInterp, vUv ).rgb;\n\t\t\t gl_FragColor.rgb = mix(interpSample, currentSample, frameIndex/float(NUM_FRAMES));\n #else\n gl_FragColor.rgb = currentSample;\n #endif\n\t\t\tgl_FragColor.a = 1.;\n\t\t}",blending:n}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=Z,this.materialCopy.blendSrc=_,this.materialCopy.blendDst=$,this.materialCopy.blendEquation=ee,this.materialCopy.blendSrcAlpha=te,this.materialCopy.blendDstAlpha=$,this.materialCopy.blendEquationAlpha=ee,this.materialCopy.needsUpdate=!0,this.fsQuad=new Ye(this.materialCopy)}setTexture(e,t){this.materialCopy.uniforms[e].value=t,this.materialCopy.needsUpdate=!0}get displayName(){return"APPLYSAO"}get outputTexture(){return null}setParams(e){}setFrameIndex(e){this.frameIndex=e}setAccumulationFrames(e){this.accumulatioFrames=e}setRenderType(e){e===yn.NORMAL?this.materialCopy.defines.ACCUMULATE=0:(this.materialCopy.defines.ACCUMULATE=1,this.frameIndex=0),this.materialCopy.needsUpdate=!0}update(e,t){this.materialCopy.defines.NUM_FRAMES=this.accumulatioFrames,this.materialCopy.uniforms.frameIndex.value=this.frameIndex,this.materialCopy.needsUpdate=!0}render(e){e.setRenderTarget(null);const t=e.autoClear;e.autoClear=!1,this.fsQuad.render(e),e.autoClear=t}}class xn extends Ke{constructor(){super(),this.materialCopy=new i({defines:{INPUT_TYPE:0},uniforms:m.clone(Ze.uniforms),vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform float opacity;\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n\n const float UnpackDownscale = 255. / 256.;\n const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\n\n float unpackRGBAToDepth( const in vec4 v ) {\n return dot( v, UnpackFactors );\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n void main() {\n vec4 inSample = texture2D( tDiffuse, vUv );\n vec3 outSample = inSample.rgb;\n #if OUTPUT_TYPE == 1\n outSample.rgb = vec3(unpackRGBAToDepth(inSample));\n #endif\n // #if OUTPUT_TYPE == 3\n // outSample.rgb = unpackRGBToNormal(inSample.rgb);\n // #endif\n\n gl_FragColor.rgb = outSample;\n gl_FragColor.a = 1.;\n }",blending:n}),this.materialCopy.needsUpdate=!0,this.fsQuad=new Ye(this.materialCopy)}setOutputType(e){this.materialCopy.defines.OUTPUT_TYPE=e,this.materialCopy.needsUpdate=!0}setTexture(e,t){this.materialCopy.uniforms[e].value=t,this.materialCopy.needsUpdate=!0}get displayName(){return"COPY-OUTPUT"}get outputTexture(){return null}render(e){e.setRenderTarget(null);const t=e.autoClear;e.autoClear=!1,this.fsQuad.render(e),e.autoClear=t}}var Rn,Cn;!function(e){e[e.PERSPECTIVE_DEPTH=0]="PERSPECTIVE_DEPTH",e[e.LINEAR_DEPTH=1]="LINEAR_DEPTH"}(Rn||(Rn={})),function(e){e[e.FULL=0]="FULL",e[e.HALF=1]="HALF"}(Cn||(Cn={}));class Mn extends Tn{get displayName(){return"DEPTH"}get material(){return this.depthMaterial}get outputTexture(){return this.renderTarget.texture}get outputTextureHalf(){return this.renderTargetHalf.texture}get outputRenderTarget(){return this.renderTarget}set depthType(e){e===Rn.LINEAR_DEPTH&&(this.depthMaterial.defines?this.depthMaterial.defines.LINEAR_DEPTH=" ":this.depthMaterial.defines&&delete this.depthMaterial.defines.LINEAR_DEPTH),this.depthMaterial.needsUpdate=!0}set depthSize(e){this.depthBufferSize=e}set depthSide(e){this.depthMaterial.side=e}constructor(){super(),this.depthBufferSize=Cn.FULL,this.colorBuffer=new l,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.renderTarget=new ie(256,256,{minFilter:y,magFilter:y}),this.renderTargetHalf=new ie(256,256,{minFilter:y,magFilter:y}),this.renderTarget.depthBuffer=!0,this.renderTarget.stencilBuffer=!0,this.renderTargetHalf.depthBuffer=!0,this.renderTargetHalf.stencilBuffer=!0,this.depthMaterial=new An({depthPacking:ne},["USE_RTE","ALPHATEST_REJECTION"]),this.depthMaterial.blending=n,this.depthMaterial.side=R}setClippingPlanes(e){this.depthMaterial.clippingPlanes=e}update(e,t){this.camera=t,this.scene=e,this.depthMaterial.userData.near.value=t.near,this.depthMaterial.userData.far.value=t.far,this.depthMaterial.needsUpdate=!0}render(e){if(!this.camera||!this.scene)return;this.onBeforeRender&&this.onBeforeRender(),e.getClearColor(this.colorBuffer);const t=e.getClearAlpha(),i=e.autoClear;e.setRenderTarget(this.depthBufferSize===Cn.FULL?this.renderTarget:this.renderTargetHalf),e.autoClear=!1,e.setClearColor(0),e.setClearAlpha(1),e.clear();const n=e.shadowMap.enabled,r=e.shadowMap.needsUpdate;e.shadowMap.enabled=!1,e.shadowMap.needsUpdate=!1,this.applyLayers(this.camera),e.render(this.scene,this.camera),e.shadowMap.enabled=n,e.shadowMap.needsUpdate=r,this.scene.overrideMaterial=null,e.autoClear=i,e.setClearColor(this.colorBuffer),e.setClearAlpha(t),this.onAfterRender&&this.onAfterRender()}setSize(e,t){this.renderTarget.setSize(e,t),this.renderTargetHalf.setSize(.5*e,.5*t)}}class On extends Nt{get vertexProgram(){return"\n#define NORMAL\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n //#include <project_vertex> // EDITED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n\n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\t vViewPosition = - mvPosition.xyz;\n #endif\n}\n"}get fragmentProgram(){return"\n#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}\n"}get baseUniforms(){return A.normal.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,uTransforms:[new s],tTransforms:null}}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}onBeforeRender(e,t,i,n,r){r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.needsUpdate=!0}}class bn extends Tn{get displayName(){return"GEOMETRY-NORMALS"}get outputTexture(){return this.renderTarget.texture}get material(){return this.normalsMaterial}constructor(){super(),this.colorBuffer=new l,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.renderTarget=new ie(256,256),this.renderTarget.depthBuffer=!0,this.renderTarget.stencilBuffer=!0,this.normalsMaterial=new On({},["USE_RTE"]),this.normalsMaterial.blending=n,this.normalsMaterial.side=R}setClippingPlanes(e){this.normalsMaterial.clippingPlanes=e}update(e,t){this.camera=t,this.scene=e}render(e){this.onBeforeRender&&this.onBeforeRender(),e.getClearColor(this.colorBuffer);const t=e.getClearAlpha(),i=e.autoClear;e.setRenderTarget(this.renderTarget),e.autoClear=!1,e.setClearColor(0),e.setClearAlpha(1),e.clear();const n=e.shadowMap.enabled,r=e.shadowMap.needsUpdate;e.shadowMap.enabled=!1,e.shadowMap.needsUpdate=!1,this.applyLayers(this.camera),e.render(this.scene,this.camera),e.shadowMap.enabled=n,e.shadowMap.needsUpdate=r,this.scene.overrideMaterial=null,e.autoClear=i,e.setClearColor(this.colorBuffer),e.setClearAlpha(t),this.onAfterRender&&this.onAfterRender()}setSize(e,t){this.renderTarget.setSize(e,t)}}var In,Nn;!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.IMPROVED=1]="IMPROVED",e[e.ACCURATE=2]="ACCURATE"}(In||(In={})),function(e){e[e.RECONSTRUCTED_NORMALS=0]="RECONSTRUCTED_NORMALS",e[e.AO=1]="AO",e[e.AO_BLURRED=2]="AO_BLURRED"}(Nn||(Nn={}));const Bn={intensity:1.5,scale:0,kernelRadius:5,bias:.2,normalsType:In.ACCURATE,blurEnabled:!0,blurRadius:2,blurStdDev:4,blurDepthCutoff:.007};class Dn extends Ke{get displayName(){return"SAO"}get outputTexture(){return this.saoRenderTarget.texture}constructor(){super(),this.params=Bn,this.colorBuffer=new l,this._outputType=Nn.AO_BLURRED,this.outputScale=.5,this.prevStdDev=0,this.prevNumSamples=0,this.saoRenderTarget=new ie(256,256),this.blurIntermediateRenderTarget=new ie(256,256),this.saoMaterial=new i({defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},fragmentShader:"\n\t\t#include <common>\n\t\tvarying vec2 vUv;\n\t\t#if DIFFUSE_TEXTURE == 1\n\t\tuniform sampler2D tDiffuse;\n\t\t#endif\n\t\tuniform sampler2D tDepth;\n\t\t#if NORMAL_TEXTURE == 1\n\t\tuniform sampler2D tNormal;\n\t\t#endif\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n\t\tuniform vec2 size;\n\t\tuniform float randomSeed;\n\t\t// RGBA depth\n\t\t#include <packing>\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\t#if DIFFUSE_TEXTURE == 1\n\t\t\treturn texture2D( tDiffuse, vUv );\n\t\t\t#else\n\t\t\treturn vec4( 1.0 );\n\t\t\t#endif\n\t\t}\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\t//https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/\n\t\tvec3 viewNormalImproved(in vec2 uv, in vec3 origin)\n\t\t{\t\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// pick horizontal and vertical diff with the smallest z difference\n\t\t\tvec3 hDeriv = abs(l.z) < abs(r.z) ? l : r;\n\t\t\tvec3 vDeriv = abs(d.z) < abs(u.z) ? d : u;\n\n\t\t\t// get view space normal from the cross product of the two smallest offsets\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\t\t}\n\n\t\tvec3 viewNormalAccurate(in vec2 uv, in vec3 origin, in float centerDepth) {\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the horizontal axis\n\t\t\tvec4 H = vec4(\n\t\t\t\tgetDepth(uv - ddx),\n\t\t\t\tgetDepth(uv + ddx),\n\t\t\t\tgetDepth(uv - 2. * ddx),\n\t\t\t\tgetDepth(uv + 2. * ddx)\n\t\t\t);\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the vertical axis\n\t\t\tvec4 V = vec4(\n\t\t\t\tgetDepth(uv - ddy),\n\t\t\t\tgetDepth(uv + ddy),\n\t\t\t\tgetDepth(uv - 2. * ddy),\n\t\t\t\tgetDepth(uv + 2. * ddy)\n\t\t\t);\n\n\t\t\t// current pixel's depth difference from slope of offset depth samples\n\t\t\t// differs from original article because we're using non-linear depth values\n\t\t\t// see article's comments\n\t\t\tvec2 he = abs((2. * H.xy - H.zw) - centerDepth);\n\t\t\tvec2 ve = abs((2. * V.xy - V.zw) - centerDepth);\n\n\t\t\t// pick horizontal and vertical diff with the smallest depth difference from slopes\n\t\t\tvec3 hDeriv = he.x < he.y ? l : r;\n\t\t\tvec3 vDeriv = ve.x < ve.y ? d : u;\n\n\t\t\t// get view space normal from the cross product of the best derivatives\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition, in float centerDepth ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#elif IMPROVED_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalImproved(screenPosition, viewPosition);\n\t\t\t#elif ACCURATE_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalAccurate(screenPosition, viewPosition, centerDepth);\n\t\t\t#else\n\t\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n\t\tfloat getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n\t\t\tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n\t\t\tfloat viewDistance = length( viewDelta );\n\t\t\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n\t\t\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n\t\t}\n\t\t// moving costly divides into consts\n\t\tconst float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition, in float centerDepth ) {\n\t\t\t// precompute some variables require in getOcclusion.\n\t\t\tscaleDividedByCameraFar = scale / cameraFar;\n\t\t\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;\n\t\t\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv, centerDepth );\n\t\t\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\n\t\t\tfloat angle = rand( vUv + randomSeed ) * PI2;\n\t\t\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;\n\t\t\tvec2 radiusStep = radius;\n\t\t\tfloat occlusionSum = 0.0;\n\t\t\tfloat weightSum = 0.0;\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n\t\t\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;\n\t\t\t\tradius += radiusStep;\n\t\t\t\tangle += ANGLE_STEP;\n\t\t\t\tfloat sampleDepth = getDepth( sampleUv );\n\t\t\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\t\t\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n\t\t\t\tweightSum += 1.0;\n\t\t\t}\n\t\t\tif( weightSum == 0.0 ) discard;\n\t\t\treturn occlusionSum * ( intensity / weightSum );\n\t\t}\n\t\tvoid main() {\n\t\t\tfloat centerDepth = getDepth( vUv );\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\tfloat centerViewZ = getViewZ( centerDepth );\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\n\t\t\t#ifdef OUTPUT_RECONSTRUCTED_NORMALS\n\t\t\t\tvec3 normal;\n\t\t\t\t#if IMPROVED_NORMAL_RECONSTRUCTION == 1\n\t\t\t\t\tnormal = viewNormalImproved(vUv, viewPosition);\n\t\t\t\t#elif ACCURATE_NORMAL_RECONSTRUCTION == 1\n\t\t\t\t\tnormal = viewNormalAccurate(vUv, viewPosition, centerDepth);\n\t\t\t\t#else\n\t\t\t\t\tnormal = normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor.rgb = packNormalToRGB(normal);\n\t\t\t\tgl_FragColor.a = 1.;\n\t\t\t\treturn;\n\t\t\t#endif\n\t\t\t\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition, centerDepth );\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= 1. - ambientOcclusion;\n\t\t}",vertexShader:"\n\t\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",uniforms:m.clone(_e.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=1,this.saoMaterial.uniforms.tDepth.value=null,this.saoMaterial.uniforms.tNormal.value=null,this.saoMaterial.uniforms.size.value.set(256,256),this.saoMaterial.uniforms.minResolution.value=0,this.saoMaterial.blending=n,this.vBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=1,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=null,this.vBlurMaterial.uniforms.size.value.set(256,256),this.vBlurMaterial.blending=n,this.hBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=1,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=null,this.hBlurMaterial.uniforms.size.value.set(256,256),this.hBlurMaterial.blending=n,this.fsQuad=new Ye(this.saoMaterial)}setParams(e){Object.assign(this.params,e)}setOutputType(e){this._outputType=e}setTexture(e,t){"tDepth"===e&&(this.saoMaterial.uniforms.tDepth.value=t,this.vBlurMaterial.uniforms.tDepth.value=t,this.hBlurMaterial.uniforms.tDepth.value=t),"tNormal"===e&&(this.saoMaterial.uniforms.tNormal.value=t),this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.needsUpdate=!0}update(e,t){this._outputType===Nn.RECONSTRUCTED_NORMALS?this.saoMaterial.defines.OUTPUT_RECONSTRUCTED_NORMALS="":delete this.saoMaterial.defines.OUTPUT_RECONSTRUCTED_NORMALS,this.params.scale=t.far,this.saoMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.saoMaterial.defines.NORMAL_TEXTURE=this.params.normalsType===In.DEFAULT?1:0,this.saoMaterial.defines.IMPROVED_NORMAL_RECONSTRUCTION=this.params.normalsType===In.IMPROVED?1:0,this.saoMaterial.defines.ACCURATE_NORMAL_RECONSTRUCTION=this.params.normalsType===In.ACCURATE?1:0,this.saoMaterial.uniforms.cameraNear.value=t.near,this.saoMaterial.uniforms.cameraFar.value=t.far,this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(t.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=t.projectionMatrix,this.saoMaterial.uniforms.intensity.value=this.params.intensity,this.saoMaterial.uniforms.scale.value=this.params.scale,this.saoMaterial.uniforms.kernelRadius.value=this.params.kernelRadius,this.saoMaterial.uniforms.bias.value=this.params.bias,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.cameraNear.value=t.near,this.vBlurMaterial.uniforms.cameraFar.value=t.far,this.hBlurMaterial.uniforms.cameraNear.value=t.near,this.hBlurMaterial.uniforms.cameraFar.value=t.far;const i=this.params.blurDepthCutoff*(t.far-t.near);this.vBlurMaterial.uniforms.depthCutoff.value=i,this.hBlurMaterial.uniforms.depthCutoff.value=i,this.params.blurRadius=Math.floor(this.params.blurRadius),this.prevStdDev===this.params.blurStdDev&&this.prevNumSamples===this.params.blurRadius||(et.configure(this.vBlurMaterial,this.params.blurRadius,this.params.blurStdDev,new T(0,1)),et.configure(this.hBlurMaterial,this.params.blurRadius,this.params.blurStdDev,new T(1,0)),this.prevStdDev=this.params.blurStdDev,this.prevNumSamples=this.params.blurRadius),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.needsUpdate=!0}render(e){e.getClearColor(this.colorBuffer);const t=e.getClearAlpha(),i=e.autoClear;e.setRenderTarget(this.saoRenderTarget),e.autoClear=!1,e.setClearColor(16777215),e.setClearAlpha(1),e.clear(),this.fsQuad.material=this.saoMaterial,this.fsQuad.render(e),this.params.blurEnabled&&this._outputType===Nn.AO_BLURRED&&(e.setRenderTarget(this.blurIntermediateRenderTarget),e.setClearColor(16777215),e.setClearAlpha(1),e.clear(),this.fsQuad.material=this.vBlurMaterial,this.fsQuad.render(e),e.setRenderTarget(this.saoRenderTarget),this.fsQuad.material=this.hBlurMaterial,this.fsQuad.render(e)),e.autoClear=i,e.setClearColor(this.colorBuffer),e.setClearAlpha(t)}setSize(e,t){const i=e*this.outputScale,n=t*this.outputScale;this.saoRenderTarget.setSize(i,n),this.blurIntermediateRenderTarget.setSize(i,n),this.saoMaterial.uniforms.size.value.set(i,n),this.vBlurMaterial.uniforms.size.value.set(i,n),this.hBlurMaterial.uniforms.size.value.set(i,n),this.saoMaterial.needsUpdate=!0}}const Ln={intensity:1,kernelRadius:30,kernelSize:16,bias:.01,minDistance:0,maxDistance:.008};class Pn extends Ke{setTexture(e,t){"tDepth"===e&&(this.aoMaterial.uniforms.tDepth.value=t),"tNormal"===e&&(this.aoMaterial.uniforms.tNormal.value=t),this.aoMaterial.needsUpdate=!0}get outputTexture(){return this._accumulationBuffer.texture}get displayName(){return"STATIC-AO"}constructor(){super(),this.params=Ln,this.frameIndex=0,this.accumulationFrames=0,this.kernels=[],this.noiseTextures=[],this._generationBuffer=new ie(256,256),this._accumulationBuffer=new ie(256,256),this.aoMaterial=new i({fragmentShader:"\n\t\t#include <common>\n\t\tvarying vec2 vUv;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNormal;\n uniform vec2 size;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n uniform float frameIndex;\n\t\tuniform float tanFov;\n\n\t\t#define AO_ESTIMATOR 1\n\t\t// #define KERNEL_SIZE 16\n\t\tuniform sampler2D tNoise;\n\t\tuniform vec3 kernel[ KERNEL_SIZE ];\n\t\tuniform float minDistance;\n\t\tuniform float maxDistance;\n\n #define NUM_SAMPLES 16\n #define SPIRAL_TURNS 2\n\t\t\n // #define NUM_FRAMES 16\n\n\t\t#define NORMAL_TEXTURE 0\n\t\t#define IMPROVED_NORMAL_RECONSTRUCTION 0\n\t\t#define ACCURATE_NORMAL_RECONSTRUCTION 1\n\t\t\n\t\t// RGBA depth\n\t\t#include <packing>\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\treturn vec4( 1.0 );\n\t\t}\n\n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t}\n\n\t\tfloat getPerspectiveDepth(const in vec2 coords) {\n\t\t\tfloat linearDepth = unpackRGBAToDepth( texture2D( tDepth, coords ) );\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\t\tfloat viewZ = orthographicDepthToViewZ(linearDepth, cameraNear, cameraFar);\n\t\t\t\tfloat centerDepth = viewZToPerspectiveDepth(viewZ, cameraNear, cameraFar);\n\t\t\t\treturn centerDepth;\n\t\t\t#else\n\t\t\t\treturn linearDepth;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewDepth(const in float linearDepth) {\n\t\t\treturn orthographicDepthToViewZ(linearDepth, cameraNear, cameraFar);\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\t//https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/\n\t\tvec3 viewNormalImproved(in vec2 uv, in vec3 origin)\n\t\t{\t\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getPerspectiveDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getPerspectiveDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// pick horizontal and vertical diff with the smallest z difference\n\t\t\tvec3 hDeriv = abs(l.z) < abs(r.z) ? l : r;\n\t\t\tvec3 vDeriv = abs(d.z) < abs(u.z) ? d : u;\n\n\t\t\t// get view space normal from the cross product of the two smallest offsets\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\t\t}\n\n\t\tvec3 viewNormalAccurate(in vec2 uv, in vec3 origin, in float centerDepth) {\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getPerspectiveDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getPerspectiveDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the horizontal axis\n\t\t\tvec4 H = vec4(\n\t\t\t\tgetLinearDepth(uv - ddx),\n\t\t\t\tgetLinearDepth(uv + ddx),\n\t\t\t\tgetLinearDepth(uv - 2. * ddx),\n\t\t\t\tgetLinearDepth(uv + 2. * ddx)\n\t\t\t);\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the vertical axis\n\t\t\tvec4 V = vec4(\n\t\t\t\tgetLinearDepth(uv - ddy),\n\t\t\t\tgetLinearDepth(uv + ddy),\n\t\t\t\tgetLinearDepth(uv - 2. * ddy),\n\t\t\t\tgetLinearDepth(uv + 2. * ddy)\n\t\t\t);\n\n\t\t\t// current pixel's depth difference from slope of offset depth samples\n\t\t\t// differs from original article because we're using non-linear depth values\n\t\t\t// see article's comments\n\t\t\tvec2 he = abs((2. * H.xy - H.zw) - centerDepth);\n\t\t\tvec2 ve = abs((2. * V.xy - V.zw) - centerDepth);\n\n\t\t\t// pick horizontal and vertical diff with the smallest depth difference from slopes\n\t\t\tvec3 hDeriv = he.x < he.y ? l : r;\n\t\t\tvec3 vDeriv = ve.x < ve.y ? d : u;\n\n\t\t\t// get view space normal from the cross product of the best derivatives\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition, in float centerDepth ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#elif IMPROVED_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalImproved(screenPosition, viewPosition);\n\t\t\t#elif ACCURATE_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalAccurate(screenPosition, viewPosition, centerDepth);\n\t\t\t#else\n\t\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n // moving costly divides into consts\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n const float offset = PI2 / float(NUM_FRAMES);\n\n\t\tfloat computeKernelSize(float d, float r) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\t\t// Apparently this is wrong\n\t\t\t\t// return (r * tan(fov) * d) / (size.y * 0.5);\n\t\t\t\t// And this is correct\n\t\t\t\tfloat rp = r / (size.y * 0.5);\n\t\t\t\treturn sqrt((rp*rp*tanFov*tanFov*d*d)/(1. + rp*rp*tanFov*tanFov));\n\t\t\t#else\n\t\t\t\tfloat twoOrthoSize = size.y / (2./ cameraProjectionMatrix[1][1]);\n\t\t\t\treturn r / twoOrthoSize;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition, in float centerDepth ) {\n #if AO_ESTIMATOR == 0\n // precompute some variables require in getOcclusion.\n scaleDividedByCameraFar = scale / cameraFar;\n minResolutionMultipliedByCameraFar = minResolution * cameraFar;\n vec3 centerViewNormal = getViewNormal( centerViewPosition, vUv, centerDepth );\n // jsfiddle that shows sample pattern: https://jsfiddle.net/TenHands/jun67k9y/7/\n float occlusionSum = 0.0;\n float weightSum = 0.0;\n for( int i = 0; i < NUM_SAMPLES; i ++ ) {\n float alpha = ( float(i) + 1. ) / float(NUM_SAMPLES);\n float angle = float(SPIRAL_TURNS) * alpha;\n vec2 radius = (kernelRadius / size) * pow( alpha, 1.1 );\n vec2 sampleUv = vUv + vec2( cos( angle + frameIndex * offset ), sin( angle + frameIndex * offset ) ) * radius;\n\n float sampleDepth = getPerspectiveDepth( sampleUv );\n if( sampleDepth >= ( 1.0 - EPSILON ) ) {\n continue;\n }\n float sampleViewZ = getViewZ( sampleDepth );\n vec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\n\t\t\t\t\t/** McGuire Estimator*/\n\t\t\t\t\tvec3 v = sampleViewPosition - centerViewPosition;\n\t\t\t\t\tfloat vv = dot(v, v);\n\t\t\t\t\tfloat vn = dot(v, centerViewNormal) - bias;\n\t\t\t\t\t\n\t\t\t\t\t// Note large epsilon to avoid overdarkening within cracks\n\t\t\t\t\tfloat radius2 = 2.;//uSampleRadiusWS * uSampleRadiusWS\n\t\t\t\t\tfloat epsilon = 0.01;\n\t\t\t\t\t\n\t\t\t\t\tfloat f = max(radius2 - vv, 0.0) / radius2;\n\t\t\t\t\tocclusionSum += f * f * f * max(vn / (epsilon + vv), 0.0) / 4.;\n\n\t\t\t\t\t/** Three.js SAO Estimator*/\n // vec3 viewDelta = sampleViewPosition - centerViewPosition;\n // float viewDistance = length( viewDelta );\n // float scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n // occlusionSum += max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n weightSum += 1.0;\n }\n if( weightSum == 0.0 ) discard;\n return occlusionSum * ( intensity / weightSum );\n\t\t\t#elif AO_ESTIMATOR == 1\n\t\t\t\tvec3 viewPosition = centerViewPosition;\n\t\t\t\tvec3 viewNormal = getViewNormal( centerViewPosition, vUv, centerDepth );\n\t\t\t\tvec2 noiseScale = vec2( size.x / 4.0, size.y / 4.0 );\n\t\t\t\tvec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );\n\t\t\t\t// compute matrix used to reorient a kernel vector\n\t\t\t\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );\n\t\t\t\tvec3 bitangent = cross( viewNormal, tangent );\n\t\t\t\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );\n\t\t\t\tfloat occlusion = 0.0;\n\t\t\t\tfloat kernelSize_ws = computeKernelSize(-viewPosition.z, kernelRadius);\n\t\t\t\tfloat div = float( KERNEL_SIZE);\n\t\t\t\tfloat maxDist = kernelSize_ws / (cameraFar - cameraNear);\n\t\t\t\tfor ( int i = 0; i < KERNEL_SIZE; i ++ ) {\n\t\t\t\t\tvec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space\n\t\t\t\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelSize_ws ); // calculate sample point\n\t\t\t\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC\n\t\t\t\t\tsamplePointNDC /= samplePointNDC.w;\n\t\t\t\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates\n\t\t\t\t\tfloat realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture\n\t\t\t\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z + bias, cameraNear, cameraFar ); // compute linear depth of the sample view Z value\n\t\t\t\t\tfloat delta = sampleDepth - realDepth;\n\t\t\t\t\tif ( delta > 0. && delta < maxDist ) { // if fragment is before sample point, increase occlusion\n\t\t\t\t\t\tocclusion += 1.0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn clamp( occlusion * intensity / div, 0.0, 1.0 );\n\t\t\t#endif\n\t\t\t}\n\t\tvoid main() {\n\t\t\tfloat linearDepth = unpackRGBAToDepth( texture2D( tDepth, vUv ) );\n\t\t\tfloat centerDepth = getPerspectiveDepth(vUv);\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\tfloat centerViewZ = getViewDepth(linearDepth);\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\t\t\tvec3 viewNormal = getViewNormal(viewPosition, vUv, linearDepth);\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition, centerDepth );\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= ambientOcclusion;\n\t\t\tgl_FragColor.a = 1.;\n\t\t}",vertexShader:"\n\t\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",uniforms:{tDepth:{value:null},tNormal:{value:null},size:{value:new T(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new s},cameraInverseProjectionMatrix:{value:new s},tanFov:{value:0},scale:{value:1},intensity:{value:1},bias:{value:0},minResolution:{value:0},kernelRadius:{value:.5},frameIndex:{value:0},tNoise:{value:null},kernel:{value:null},minDistance:{value:.001},maxDistance:{value:1}}}),this.aoMaterial.extensions.derivatives=!0,this.aoMaterial.uniforms.size.value.set(256,256),this.aoMaterial.blending=n,this.accumulateMaterial=new i({defines:{},fragmentShader:"\n uniform float opacity;\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n // #define NUM_FRAMES 16\n\n void main() {\n vec4 frameSample = texture2D( tDiffuse, vUv );\n gl_FragColor.xyz = frameSample.rgb * 1./float(NUM_FRAMES);\n gl_FragColor.a = 1.;//*= opacity;\n }",vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",uniforms:{tDiffuse:{value:null},opacity:{value:1}}}),this.accumulateMaterial.uniforms.tDiffuse.value=this._generationBuffer.texture,this.accumulateMaterial.blending=Z,this.accumulateMaterial.blendSrc=re,this.accumulateMaterial.blendDst=re,this.accumulateMaterial.blendEquation=se,this.accumulateMaterial.blendSrcAlpha=re,this.accumulateMaterial.blendDstAlpha=re,this.accumulateMaterial.blendEquationAlpha=ee,this.fsQuad=new Ye(this.aoMaterial)}setParams(e){Object.assign(this.params,e),this.kernels=[],this.noiseTextures=[]}setFrameIndex(e){this.frameIndex=e}setAccumulationFrames(e){this.accumulationFrames=e}update(e,t){this.aoMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.aoMaterial.defines.NUM_FRAMES=this.accumulationFrames,this.aoMaterial.defines.KERNEL_SIZE=this.params.kernelSize,this.accumulateMaterial.defines.NUM_FRAMES=this.accumulationFrames,this.aoMaterial.uniforms.cameraNear.value=t.near,this.aoMaterial.uniforms.cameraFar.value=t.far,this.aoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(t.projectionMatrixInverse),this.aoMaterial.uniforms.cameraProjectionMatrix.value.copy(t.projectionMatrix);const i=t.fov/2*Math.PI/180;this.aoMaterial.uniforms.tanFov.value=Math.tan(i),this.kernels[this.frameIndex]||this.generateSampleKernel(this.frameIndex),this.noiseTextures[this.frameIndex]||this.generateRandomKernelRotations(this.frameIndex),this.aoMaterial.uniforms.kernel.value=this.kernels[this.frameIndex],this.aoMaterial.uniforms.tNoise.value=this.noiseTextures[this.frameIndex],this.aoMaterial.uniforms.intensity.value=this.params.intensity,this.aoMaterial.uniforms.kernelRadius.value=this.params.kernelRadius,this.aoMaterial.uniforms.bias.value=this.params.bias,this.aoMaterial.uniforms.frameIndex.value=this.frameIndex,this.aoMaterial.uniforms.minDistance.value=this.params.minDistance,this.aoMaterial.uniforms.maxDistance.value=this.params.maxDistance,this.aoMaterial.needsUpdate=!0,this.accumulateMaterial.needsUpdate=!0}render(e){const t=new l;e.getClearColor(t);const i=e.getClearAlpha(),n=e.autoClear;this.renderFrame(e),e.autoClear=n,e.setClearColor(t),e.setClearAlpha(i)}renderFrame(e){e.setRenderTarget(this._generationBuffer),e.autoClear=!1,e.setClearColor(0),e.setClearAlpha(1),e.clear(!0),this.fsQuad.material=this.aoMaterial,this.fsQuad.render(e),e.setRenderTarget(this._accumulationBuffer),0===this.frameIndex&&(e.setClearColor(16777215),e.setClearAlpha(1),e.clear(!0)),this.fsQuad.material=this.accumulateMaterial,this.fsQuad.render(e)}setSize(e,t){this._generationBuffer.setSize(e,t),this._accumulationBuffer.setSize(e,t),this.aoMaterial.uniforms.size.value.set(e,t),this.aoMaterial.needsUpdate=!0}generateSampleKernel(e){const t=this.params.kernelSize||0;this.kernels[e]=[];for(let i=0;i<t;i++){const n=new d;n.x=2*Math.random()-1,n.y=2*Math.random()-1,n.z=Math.random(),n.normalize();let r=i/t;r=K.lerp(.1,1,r*r),n.multiplyScalar(r),this.kernels[e].push(n)}}generateRandomKernelRotations(e){void 0===tt&&console.error("THREE.SSAOPass: The pass relies on SimplexNoise.");const t=new tt,i=new Float32Array(16);for(let e=0;e<16;e++){const n=2*Math.random()-1,r=2*Math.random()-1,s=0;i[e]=t.noise3d(n,r,s)}this.noiseTextures[e]=new c(i,4,4,ae,Q),this.noiseTextures[e].wrapS=oe,this.noiseTextures[e].wrapT=oe,this.noiseTextures[e].needsUpdate=!0}}class zn extends Tn{constructor(){super(),this.camera=null,this.scene=null,this._oldClearColor=new l,this.clearAlpha=0,this.clearDepth=!0,this.onBeforeRenderOpauqe=void 0,this.onAfterRenderOpaque=void 0,this.onBeforeRenderTransparent=void 0,this.onAfterRenderTransparent=void 0}get displayName(){return"COLOR"}get outputTexture(){return null}update(e,t){this.camera=t,this.scene=e}render(e,t,i){if(!this.camera||!this.scene)return;const n=e.autoClear;let r,s;e.autoClear=!1,void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.onBeforeRenderOpauqe&&this.onBeforeRenderOpauqe(),e.render(this.scene,this.camera),this.onAfterRenderOpaque&&this.onAfterRenderOpaque(),this.onBeforeRenderTransparent&&this.onBeforeRenderTransparent(),e.render(this.scene,this.camera),this.onAfterRenderTransparent&&this.onAfterRenderTransparent(),this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=n}}class Un extends Jt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored as the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\nuniform vec2 size;\nuniform float displacement;\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n \n // Transform normal vector from object space to clip space.\n vec3 normalHCS = mat3(projectionMatrix) * normalMatrix * normal;\n\n // Move vertex along normal vector in clip space.\n gl_Position.xy += normalize(normalHCS.xy) / size * gl_Position.w * displacement * 2.;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}get uniformsDef(){return{...super.uniformsDef,size:new T,displacement:0}}constructor(e,t=[]){super(e,t)}fastCopy(e,t){super.fastCopy(e,t),t.userData.displacement.value=e.userData.displacement.value}}class kn extends Tn{constructor(){super(),this._oldClearColor=new l,this.clearAlpha=0,this.clearDepth=!0,this.drawBufferSize=new T,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.overrideMaterial=new Un({color:16711680},["USE_RTE"]),this.overrideMaterial.userData.displacement.value=2,this.overrideMaterial.colorWrite=!1,this.overrideMaterial.depthWrite=!1,this.overrideMaterial.stencilWrite=!0,this.overrideMaterial.stencilFunc=u,this.overrideMaterial.stencilWriteMask=255,this.overrideMaterial.stencilRef=255,this.overrideMaterial.stencilZFail=p,this.overrideMaterial.stencilZPass=p,this.overrideMaterial.stencilFail=p,this.overrideMaterial.side=R}get displayName(){return"STENCIL"}get outputTexture(){return null}get material(){return this.overrideMaterial}update(e,t){this.camera=t,this.scene=e}setClippingPlanes(e){this.overrideMaterial.clippingPlanes=e}render(e,t,i){this.onBeforeRender&&this.onBeforeRender();const n=e.autoClear;e.autoClear=!1;let r,s=null;void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.getDrawingBufferSize(this.drawBufferSize),this.overrideMaterial.userData.size.value.copy(this.drawBufferSize),e.clear(!1,!1,!0);const a=e.shadowMap.enabled;e.shadowMap.enabled=!1,e.render(this.scene,this.camera),e.shadowMap.enabled=a,this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=n,this.onAfterRender&&this.onAfterRender()}}class Vn extends Tn{constructor(){super(),this._oldClearColor=new l,this.clearAlpha=0,this.clearDepth=!0,this.drawBufferSize=new T,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.overrideMaterial=new Un({color:304635},["USE_RTE"]),this.overrideMaterial.userData.displacement.value=2,this.overrideMaterial.colorWrite=!0,this.overrideMaterial.depthWrite=!1,this.overrideMaterial.stencilWrite=!0,this.overrideMaterial.stencilFunc=le,this.overrideMaterial.stencilRef=255,this.overrideMaterial.side=R}get displayName(){return"STENCIL"}get outputTexture(){return null}get material(){return this.overrideMaterial}update(e,t){this.camera=t,this.scene=e}setClippingPlanes(e){this.overrideMaterial.clippingPlanes=e}render(e,t,i){this.onBeforeRender&&this.onBeforeRender();const n=e.autoClear;e.autoClear=!1;let r,s=null;void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.getDrawingBufferSize(this.drawBufferSize),this.overrideMaterial.userData.size.value.copy(this.drawBufferSize);const a=e.shadowMap.enabled;e.shadowMap.enabled=!1,e.render(this.scene,this.camera),e.shadowMap.enabled=a,this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=n,this.onAfterRender&&this.onAfterRender()}}class Fn extends Tn{constructor(){super(),this.onBeforeRender=void 0,this.onAfterRender=void 0}get displayName(){return"OVERLAY"}get outputTexture(){return null}update(e,t){this.camera=t,this.scene=e}render(e,t,i){const n=e.autoClear;e.autoClear=!1,this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.onBeforeRender&&this.onBeforeRender(),e.render(this.scene,this.camera),this.onAfterRender&&this.onAfterRender(),e.autoClear=n}}var Qn;!function(e){e[e.DEPTH_RGBA=0]="DEPTH_RGBA",e[e.DEPTH=1]="DEPTH",e[e.COLOR=2]="COLOR",e[e.GEOMETRY_NORMALS=3]="GEOMETRY_NORMALS",e[e.RECONSTRUCTED_NORMALS=4]="RECONSTRUCTED_NORMALS",e[e.DYNAMIC_AO=5]="DYNAMIC_AO",e[e.DYNAMIC_AO_BLURED=6]="DYNAMIC_AO_BLURED",e[e.PROGRESSIVE_AO=7]="PROGRESSIVE_AO",e[e.FINAL=8]="FINAL"}(Qn||(Qn={}));const qn={pipelineOutput:Qn.FINAL,accumulationFrames:16,dynamicAoEnabled:!0,dynamicAoParams:Bn,staticAoEnabled:!0,staticAoParams:Ln,depthSide:R};class jn{set pipelineOptions(e){Object.assign(this._pipelineOptions,e),this.dynamicAoPass.setParams(e.dynamicAoParams),this.staticAoPass.setParams(e.staticAoParams),this.accumulationFrame=0,e.depthSide&&(this.depthPass.depthSide=e.depthSide),e.accumulationFrames&&(this.applySaoPass.setAccumulationFrames(e.accumulationFrames),this.staticAoPass.setAccumulationFrames(e.accumulationFrames)),e.pipelineOutput&&(this.pipelineOutput=e.pipelineOutput)}get pipelineOptions(){return JSON.parse(JSON.stringify(this._pipelineOptions))}set pipelineOutput(e){let t=[];switch(this.clearPipeline(),e){case Qn.FINAL:t=this.getDefaultPipeline(),this.depthPass.depthSize=Cn.FULL,this.applySaoPass.setTexture("tDiffuse",this.staticAoPass.outputTexture),this.applySaoPass.setTexture("tDiffuseInterp",this.dynamicAoPass.outputTexture),this.needsProgressive=!0;break;case Qn.DEPTH_RGBA:t.push(this.depthPass),t.push(this.copyOutputPass),this.depthPass.depthSize=Cn.FULL,this.copyOutputPass.setTexture("tDiffuse",this.depthPass.outputTexture),this.copyOutputPass.setOutputType(Qn.DEPTH_RGBA),this.needsProgressive=!1;break;case Qn.DEPTH:t.push(this.depthPass),t.push(this.copyOutputPass),this.depthPass.depthSize=Cn.FULL,this.copyOutputPass.setTexture("tDiffuse",this.depthPass.outputTexture),this.copyOutputPass.setOutputType(Qn.DEPTH),this.needsProgressive=!1;break;case Qn.COLOR:t.push(this.renderPass);break;case Qn.GEOMETRY_NORMALS:t.push(this.normalsPass),t.push(this.copyOutputPass),this.normalsPass.enabled=!0,this.copyOutputPass.setTexture("tDiffuse",this.normalsPass.outputTexture),this.copyOutputPass.setOutputType(Qn.GEOMETRY_NORMALS),this.needsProgressive=!1;break;case Qn.RECONSTRUCTED_NORMALS:t.push(this.depthPass),t.push(this.dynamicAoPass),t.push(this.copyOutputPass),this.dynamicAoPass.enabled=!0,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.depthPass.depthSize=Cn.HALF,this.dynamicAoPass.setOutputType(Nn.RECONSTRUCTED_NORMALS),this.copyOutputPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.GEOMETRY_NORMALS),this.needsProgressive=!1;break;case Qn.DYNAMIC_AO:t.push(this.depthPass),t.push(this.normalsPass),t.push(this.dynamicAoPass),t.push(this.copyOutputPass),this.normalsPass.enabled=this._pipelineOptions.dynamicAoParams.normalsType===In.DEFAULT,this.dynamicAoPass.enabled=!0,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.copyOutputPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.COLOR),this.dynamicAoPass.setOutputType(Nn.AO),this.needsProgressive=!1;break;case Qn.DYNAMIC_AO_BLURED:t.push(this.depthPass),t.push(this.normalsPass),t.push(this.dynamicAoPass),t.push(this.copyOutputPass),this.normalsPass.enabled=this._pipelineOptions.dynamicAoParams.normalsType===In.DEFAULT,this.dynamicAoPass.enabled=!0,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.depthPass.depthSize=Cn.HALF,this.copyOutputPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.COLOR),this.dynamicAoPass.setOutputType(Nn.AO_BLURRED),this.needsProgressive=!1;break;case Qn.PROGRESSIVE_AO:t.push(this.depthPass),t.push(this.dynamicAoPass),t.push(this.staticAoPass),t.push(this.copyOutputPass),this.depthPass.depthType=Rn.LINEAR_DEPTH,this.depthPass.depthSize=Cn.FULL,this.copyOutputPass.setTexture("tDiffuse",this.staticAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.COLOR),this.needsProgressive=!0}this.setPipeline(t)}set needsProgressive(e){this._needsProgressive=e,this.accumulationFrame=0}get needsAccumulation(){return this._renderType===yn.ACCUMULATION&&this.accumulationFrame<this._pipelineOptions.accumulationFrames}get renderType(){return this._renderType}get composer(){return this._composer}constructor(e,t){this._pipelineOptions=Object.assign({},qn),this._needsProgressive=!1,this._resetFrame=!1,this.drawingSize=new T,this._renderType=yn.NORMAL,this.accumulationFrame=0,this.onBeforePipelineRender=null,this.onAfterPipelineRender=null,this._renderer=e,this._batcher=t,this._composer=new Xe(e),this._composer.readBuffer=null,this._composer.writeBuffer=null}configure(){let e,t,i,n;this.depthPass=new Mn,this.normalsPass=new bn,this.dynamicAoPass=new Dn,this.stencilPass=new kn,this.renderPass=new zn,this.stencilMaskPass=new Vn,this.applySaoPass=new En,this.staticAoPass=new Pn,this.overlayPass=new Fn,this.copyOutputPass=new xn,this.copyOutputPass.renderToScreen=!0,this.depthPass.setLayers([gt.STREAM_CONTENT_MESH]),this.normalsPass.setLayers([gt.STREAM_CONTENT_MESH]),this.stencilPass.setLayers([gt.STREAM_CONTENT_MESH]),this.renderPass.setLayers([gt.PROPS,gt.STREAM_CONTENT,gt.STREAM_CONTENT_MESH,gt.STREAM_CONTENT_LINE,gt.STREAM_CONTENT_POINT,gt.STREAM_CONTENT_POINT_CLOUD,gt.STREAM_CONTENT_TEXT,gt.SHADOWCATCHER]),this.stencilMaskPass.setLayers([gt.STREAM_CONTENT_MESH]),this.overlayPass.setLayers([gt.OVERLAY,gt.MEASUREMENTS]),this.onBeforePipelineRender=()=>{e=this._batcher.saveVisiblity(),t=this._batcher.getOpaque(),i=this._batcher.getStencil(),n=this._batcher.getDepth()},this.onAfterPipelineRender=()=>{this._batcher.applyVisibility(e)},this.depthPass.onBeforeRender=()=>{this._batcher.applyVisibility(n),this._batcher.overrideMaterial(n,this.depthPass.material)},this.depthPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(n)},this.normalsPass.onBeforeRender=()=>{this._batcher.applyVisibility(t),this._batcher.overrideMaterial(t,this.normalsPass.material)},this.normalsPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(e)},this.stencilPass.onBeforeRender=()=>{this._batcher.applyVisibility(i),this._batcher.overrideMaterial(i,this.stencilPass.material)},this.stencilPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(i)},this.stencilMaskPass.onBeforeRender=()=>{this._batcher.applyVisibility(i),this._batcher.overrideMaterial(i,this.stencilMaskPass.material)},this.stencilMaskPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(i)},this.renderPass.onBeforeRenderOpauqe=()=>{e=this._batcher.saveVisiblity();const t=this._batcher.getOpaque();this._batcher.applyVisibility(t)},this.renderPass.onBeforeRenderTransparent=()=>{const e=this._batcher.getTransparent();this._batcher.applyVisibility(e)},this.renderPass.onAfterRenderTransparent=()=>{this._batcher.applyVisibility(e)},this.setPipeline(this.getDefaultPipeline())}getDefaultPipeline(){this.renderPass.renderToScreen=!0,this.normalsPass.enabled=this._pipelineOptions.dynamicAoParams.normalsType===In.DEFAULT,this.dynamicAoPass.setOutputType(this._pipelineOptions.dynamicAoParams.blurEnabled?Nn.AO_BLURRED:Nn.AO),this.applySaoPass.renderToScreen=!0,this.dynamicAoPass.setTexture("tDepth",this.depthPass.outputTextureHalf),this.dynamicAoPass.setTexture("tNormal",this.normalsPass.outputTexture),this.applySaoPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.applySaoPass.setTexture("tDiffuseInterp",this.dynamicAoPass.outputTexture),this.staticAoPass.setTexture("tDepth",this.depthPass.outputTexture),this.staticAoPass.setTexture("tNormal",this.normalsPass.outputTexture);const e=[];return e.push(this.depthPass),e.push(this.normalsPass),e.push(this.dynamicAoPass),e.push(this.staticAoPass),e.push(this.stencilPass),e.push(this.renderPass),e.push(this.stencilMaskPass),e.push(this.applySaoPass),e.push(this.overlayPass),e}clearPipeline(){for(;this._composer.passes.length>0;)this._composer.removePass(this._composer.passes[0])}setPipeline(e){for(let t=0;t<e.length;t++)this._composer.addPass(e[t])}updateClippingPlanes(e){this.depthPass.setClippingPlanes(e),this.stencilPass.setClippingPlanes(e),this.stencilMaskPass.setClippingPlanes(e)}reset(){this._resetFrame=!0,this.onStationaryEnd()}update(e){e.scene&&e.renderingCamera&&(this.stencilPass.update(e.scene,e.renderingCamera),this.renderPass.update(e.scene,e.renderingCamera),this.stencilMaskPass.update(e.scene,e.renderingCamera),this.depthPass.update(e.scene,e.renderingCamera),this.dynamicAoPass.update(e.scene,e.renderingCamera),this.normalsPass.update(e.scene,e.renderingCamera),this.staticAoPass.update(e.scene,e.renderingCamera),this.applySaoPass.update(e.scene,e.renderingCamera),this.overlayPass.update(e.scene,e.renderingCamera),this.staticAoPass.setFrameIndex(this.accumulationFrame),this.applySaoPass.setFrameIndex(this.accumulationFrame))}render(){if(this._renderer.getDrawingBufferSize(this.drawingSize),0===this.drawingSize.length())return!1;this.onBeforePipelineRender&&this.onBeforePipelineRender();let e=!1;if(this._renderer.clear(!0),this._renderType===yn.NORMAL){this._composer.render();const t=this._resetFrame;this._resetFrame&&(this._resetFrame=!1,this.onStationaryBegin()),e=t}else this._composer.render(),this.accumulationFrame++,e=this.needsAccumulation;return this.onAfterPipelineRender&&this.onAfterPipelineRender(),e}resize(e,t){this._composer.setSize(e,t),this.accumulationFrame=0}onStationaryBegin(){this._needsProgressive&&(this._renderType!==yn.ACCUMULATION?(this._renderType=yn.ACCUMULATION,this.accumulationFrame=0,this.depthPass.enabled=!0,this.depthPass.depthType=Rn.LINEAR_DEPTH,this.depthPass.depthSize=Cn.FULL,this.normalsPass.enabled=!1,this.dynamicAoPass.enabled=!1,this.renderPass.enabled=!0,this.applySaoPass.enabled=!0,this.staticAoPass.enabled=!0,this.applySaoPass.setTexture("tDiffuse",this.staticAoPass.outputTexture),this.applySaoPass.setTexture("tDiffuseInterp",this.dynamicAoPass.outputTexture),this.applySaoPass.setRenderType(this._renderType)):this.accumulationFrame=0)}onStationaryEnd(){this._needsProgressive&&this._renderType!==yn.NORMAL&&(this.accumulationFrame=0,this._renderType=yn.NORMAL,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.depthPass.depthSize=Cn.HALF,this.staticAoPass.enabled=!1,this.applySaoPass.enabled=!0,this.dynamicAoPass.enabled=!0,this.applySaoPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.applySaoPass.setRenderType(this._renderType))}}class Jn extends Jt{get vertexProgram(){return"\n\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = vec2(1. - uv.x, uv.y);\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}\n"}get fragmentProgram(){return"\nvarying vec2 vUv;\n\nuniform sampler2D tex0;\nuniform sampler2D tex1;\nuniform sampler2D tex2;\nuniform sampler2D tex3;\nuniform vec4 weights;\nuniform float sigmoidRange;\nuniform float sigmoidStrength;\n\nvoid main() {\n\tfloat color0 = texture2D(tex0, vUv).r * weights.x;\n\tfloat color1 = texture2D(tex1, vUv).r * weights.y;\n\tfloat color2 = texture2D(tex2, vUv).r * weights.z;\n\tfloat color3 = texture2D(tex3, vUv).r * weights.w;\n\n\t// float c0 = mix(color0, 0., color1);\n\t// float c1 = mix(color1, 0., color0);\n\t// float c2 = mix(color3, 0., color0 * 0.5 + color1 * 0.5);\n\t// float sum = c0 + c1 + c2;\n\n\tfloat sum = color0 + color1 + color3 + color2;\n\n\tfloat a = sigmoidRange;//2.;\n\tfloat b = 0.03;\n\tfloat c = sigmoidStrength;//2.43;\n\tfloat d = 0.59;\n\tfloat e = 0.14;\n\tsum = clamp((sum*(a*sum+b))/(sum*(c*sum+d)+e), 0., 1.);\n\n\tvec2 sUv = vUv * 2. - 1.;\n\tsum *= 1. - pow(abs(sUv.x), 6.);\n\tsum *= 1. - pow(abs(sUv.y), 6.);\n\n\tgl_FragColor = vec4( vec3(sum), sum );\n}\n"}get uniformsDef(){return{...super.uniformsDef,tex0:null,tex1:null,tex2:null,tex3:null,weights:new I,sigmoidRange:0,sigmoidStrength:0}}constructor(e,t=[]){super(e,t)}}const Gn={textureSize:512,weights:{x:1,y:1,z:0,w:1},blurRadius:16,stdDeviation:4,sigmoidRange:1.1,sigmoidStrength:2};class Wn extends Tn{get displayName(){return"Shadowcatcher"}get outputTexture(){return this.outputTarget.texture}set needsUpdate(e){this._needsUpdate=e}get drawDepthMaterial(){return this.depthMaterial}constructor(){super(),this.levels=4,this.debugCamera=!1,this.renderTargets=[],this.tempTargets=[],this._needsUpdate=!1,this.blurStdDev=Gn.stdDeviation,this.blurRadius=Gn.blurRadius,this.prevBlurStdDev=0,this.prevBlurRadius=0,this.onBeforeRender=void 0,this.onAfterRender=void 0;for(let e=0;e<this.levels;e++){const e=new ie(256,256,{minFilter:ce,magFilter:ce});this.renderTargets.push(e),this.tempTargets.push(e.clone())}this.outputTarget=new ie(256,256,{minFilter:ce,magFilter:ce}),this.outputTarget.texture.wrapS=oe,this.outputTarget.texture.wrapT=oe,this.camera=new he(-128,128,128,-128,0,10),this.vBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=1,this.vBlurMaterial.blending=n,this.hBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=1,this.hBlurMaterial.blending=n,this.depthMaterial=new An({depthPacking:de},["USE_RTE"]),this.depthMaterial.blending=n,this.depthMaterial.side=R,this.blendMaterial=new Jn({}),this.fsQuad=new Ye(this.vBlurMaterial)}update(e){if(this.scene=e,this._needsUpdate){!this.cameraHelper&&this.debugCamera&&(this.cameraHelper=new ue(this.camera),this.cameraHelper.layers.set(gt.PROPS),this.scene.add(this.cameraHelper)),this.cameraHelper&&this.cameraHelper.update(),this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=0,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=0,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far;const e=0;this.vBlurMaterial.uniforms.depthCutoff.value=e,this.hBlurMaterial.uniforms.depthCutoff.value=e,this.prevBlurStdDev===this.blurStdDev&&this.prevBlurRadius===this.blurRadius||(et.configure(this.vBlurMaterial,this.blurRadius,this.blurStdDev,new T(0,1)),et.configure(this.hBlurMaterial,this.blurRadius,this.blurStdDev,new T(1,0)),this.prevBlurStdDev=this.blurStdDev,this.prevBlurRadius=this.blurRadius),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.needsUpdate=!0}}render(e){if(this._needsUpdate){e.RTEBuffers.push(),e.updateRTEViewModel(this.camera);const t=new l;e.getClearColor(t);const i=e.getClearAlpha(),n=e.autoClear;this.onBeforeRender&&this.onBeforeRender(),this.applyLayers(this.camera);const r=this.camera.far;for(let t=0;t<this.renderTargets.length;t++)this.camera.far=r,t<2&&(this.camera.far=r/100),2===t&&(this.camera.far=r/4),this.camera.updateProjectionMatrix(),e.setRenderTarget(this.renderTargets[t]),e.setClearColor(0),e.setClearAlpha(1),e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.setRenderTarget(this.tempTargets[t]),e.setClearColor(16777215),e.setClearAlpha(1),e.clear(),this.vBlurMaterial.uniforms.tDiffuse.value=this.renderTargets[t].texture,this.vBlurMaterial.uniforms.size.value.set(this.renderTargets[t].width,this.renderTargets[t].height),this.vBlurMaterial.needsUpdate=!0,this.fsQuad.material=this.vBlurMaterial,this.fsQuad.render(e),e.setRenderTarget(this.renderTargets[t]),this.hBlurMaterial.uniforms.tDiffuse.value=this.tempTargets[t].texture,this.hBlurMaterial.uniforms.size.value.set(this.tempTargets[t].width,this.tempTargets[t].height),this.hBlurMaterial.needsUpdate,this.fsQuad.material=this.hBlurMaterial,this.fsQuad.render(e);e.setRenderTarget(this.outputTarget),e.setClearColor(0),e.setClearAlpha(1),this.blendMaterial.userData.tex0.value=this.renderTargets[0].texture,this.blendMaterial.userData.tex1.value=this.renderTargets[1].texture,this.blendMaterial.userData.tex2.value=this.renderTargets[2].texture,this.blendMaterial.userData.tex3.value=this.renderTargets[3].texture,this.fsQuad.material=this.blendMaterial,this.fsQuad.render(e),e.setRenderTarget(null),e.autoClear=n,e.setClearColor(t),e.setClearAlpha(i),e.RTEBuffers.pop(),this.onAfterRender&&this.onAfterRender(),this._needsUpdate=!1}}updateClippingPlanes(e){this.depthMaterial.clippingPlanes=e,this.depthMaterial.needsUpdate=!0}setOutputSize(e,t){if(this.renderTargets[0].width!==e||this.renderTargets[0].height!==t){this.outputTarget.setSize(e,t),this.blendMaterial.needsUpdate=!0;let i=1;for(let n=0;n<this.renderTargets.length;n++){const r=Math.trunc(e*i),s=Math.trunc(t*i);this.renderTargets[n].setSize(r,s),this.tempTargets[n].setSize(r,s),i*=.5}}}setWeights(e){this.blendMaterial.userData.weights.value=new I(e.x,e.y,e.z,e.w),this.blendMaterial.needsUpdate=!0}updateCamera(e,t,i){const n=e.getSize(new d),r=e.getCenter(new d);this.camera.position.copy((new d).copy(r).add(new d(0,0,-.001))),this.camera.lookAt(r),this.camera.left=n.x/-2,this.camera.right=n.x/2,this.camera.top=n.y/2,this.camera.bottom=n.y/-2,this.camera.near=t,this.camera.far=i,this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(!0)}updateConfig(e){this.blurRadius=e.blurRadius,this.blurStdDev=e.stdDeviation,this.blendMaterial.userData.sigmoidRange.value=e.sigmoidRange,this.blendMaterial.userData.sigmoidStrength.value=e.sigmoidStrength,this.blendMaterial.needsUpdate=!0}setSize(e,t){}}class Hn{get shadowcatcherMesh(){return this.planeMesh}set configuration(e){this._config=JSON.parse(JSON.stringify(e))}constructor(e,t){this.planeSize=new T,this._config=Gn,this.shadowcatcherPass=new Wn,this.shadowcatcherPass.setLayers(t),this.displayMaterial=new Jt({color:16777215},["USE_RTE"]),this.displayMaterial.toneMapped=!1,this.displayMaterial.map=this.shadowcatcherPass.outputTexture,this.displayMaterial.map.needsUpdate=!0,this.displayMaterial.toneMapped=!1,this.displayMaterial.transparent=!0,this.displayMaterial.blending=Z,this.displayMaterial.blendEquation=ee,this.displayMaterial.blendEquationAlpha=pe,this.displayMaterial.blendSrc=$,this.displayMaterial.blendSrcAlpha=re,this.displayMaterial.blendDst=te,this.displayMaterial.blendDstAlpha=re,this.displayMaterial.alphaTest=.001,this.planeMesh=new B,this.planeMesh.material=this.displayMaterial,this.planeMesh.layers.set(e),this.planeMesh.name=Hn.MESH_NAME,this.planeMesh.frustumCulled=!1}update(e){this.shadowcatcherPass.updateConfig(this._config),this.shadowcatcherPass.update(e)}render(e){this.shadowcatcherPass.render(e)}bake(e,t,i){this.updatePlaneMesh(e,i);const n=this.getTextureSize(t),r=(new h).setFromObject(this.planeMesh),s=e.getSize(new d).z;this.shadowcatcherPass.updateCamera(r,.001,s),this.shadowcatcherPass.setOutputSize(n.x,n.y),this.shadowcatcherPass.setWeights(this._config.weights),this.shadowcatcherPass.needsUpdate=!0}updateClippingPlanes(e){this.displayMaterial.clippingPlanes=e,this.displayMaterial.needsUpdate=!0,this.shadowcatcherPass.updateClippingPlanes(e)}getTextureSize(e){const t=this.planeSize.x/this.planeSize.y,i=new T;return i.x=Math.trunc(this._config.textureSize),i.y=Math.trunc(this._config.textureSize/t),i.y>e*Hn.MAX_TEXTURE_SIZE_SCALE&&(i.y=e*Hn.MAX_TEXTURE_SIZE_SCALE,i.x=t*i.y),i}updatePlaneMesh(e,t){const i=e.getSize(new d),n=e.getCenter(new d);(new T(i.x,i.y).distanceTo(this.planeSize)>.001||t)&&this.updatePlaneMeshGeometry(new T(2*i.x,2*i.y),new d(n.x,n.y,n.z-.5*i.z-.001)),this.planeSize.set(i.x,i.y)}updatePlaneMeshGeometry(e,t){this.planeMesh.geometry&&this.planeMesh.geometry.dispose();const i=new D(e.x,e.y,Hn.PLANE_SUBD,Hn.PLANE_SUBD),n=(new s).makeTranslation(t.x,t.y,t.z);i.applyMatrix4(n);const r=new Float64Array(i.attributes.position.array);ni.updateRTEGeometry(i,r),this.planeMesh.geometry=i,this.planeMesh.geometry.computeBoundingBox()}}var Xn,Kn;Hn.MESH_NAME="Shadowcatcher",Hn.PLANE_SUBD=2,Hn.MAX_TEXTURE_SIZE_SCALE=.5,function(e){e.Stationary="stationary",e.Dynamic="dynamic",e.FrameUpdate="frame-update",e.LateFrameUpdate="late-frame-update",e.ProjectionChanged="projection-changed",e.InteractionStarted="interaction-started",e.InteractionEnded="interaction-ended"}(Xn||(Xn={})),function(e){e[e.PERSPECTIVE=0]="PERSPECTIVE",e[e.ORTHOGRAPHIC=1]="ORTHOGRAPHIC"}(Kn||(Kn={}));class Yn{constructor(){this.viewer=new d,this.viewerLow=new d,this.viewerHigh=new d,this.rteViewModelMatrix=new s,this.shadowViewer=new d,this.shadowViewerLow=new d,this.shadowViewerHigh=new d,this.rteShadowViewModelMatrix=new s,this.rteShadowMatrix=new s}copy(e,t){t.viewer.copy(e.viewer),t.viewerLow.copy(e.viewerLow),t.viewerHigh.copy(e.viewerHigh),t.rteViewModelMatrix.copy(e.rteViewModelMatrix),t.shadowViewer.copy(e.shadowViewer),t.shadowViewerLow.copy(e.shadowViewerLow),t.shadowViewerHigh.copy(e.shadowViewerHigh),t.rteShadowViewModelMatrix.copy(e.rteShadowViewModelMatrix),t.rteShadowMatrix.copy(e.rteShadowMatrix)}push(){this._cache||(this._cache=new Yn),this.copy(this,this._cache)}pop(){this._cache||(this._cache=new Yn),this.copy(this._cache,this)}}class Zn extends me{constructor(){super(...arguments),this.RTEBuffers=new Yn}updateRTEViewModel(e){this.RTEBuffers.rteViewModelMatrix.copy(e.matrixWorldInverse),this.RTEBuffers.rteViewModelMatrix.elements[12]=0,this.RTEBuffers.rteViewModelMatrix.elements[13]=0,this.RTEBuffers.rteViewModelMatrix.elements[14]=0,this.RTEBuffers.viewer.set(e.matrixWorld.elements[12],e.matrixWorld.elements[13],e.matrixWorld.elements[14]),ni.DoubleToHighLowVector(this.RTEBuffers.viewer,this.RTEBuffers.viewerLow,this.RTEBuffers.viewerHigh)}}class _n{constructor(){this.renderTimeAcc=0,this.renderTimeSamples=0,this.renderTimeMaxSamples=500,this.renderTimeStart=0,this.renderTime=0,this.objects=0,this.batchCount=0,this.drawCalls=0,this.trisCount=0,this.vertCount=0}frameStart(){this.renderTimeStart=performance.now()}frameEnd(){this.renderTimeAcc+=performance.now()-this.renderTimeStart,this.renderTimeSamples++,this.renderTimeSamples%this.renderTimeMaxSamples==0&&(this.renderTime=this.renderTimeAcc/this.renderTimeSamples,this.renderTimeSamples=0,this.renderTimeAcc=0)}}class $n{get renderer(){return this._renderer}set needsRender(e){this._needsRender||(this._needsRender=e)}set shadowMapNeedsUpdate(e){this._renderer.shadowMap.needsUpdate=e}get sceneBox(){const e=new h,t=this.batcher.getBatches();for(let i=0;i<t.length;i++)e.union(t[i].bounds);return e}get sceneSphere(){return this.sceneBox.getBoundingSphere(new V)}get sceneCenter(){return this.sceneBox.getCenter(new d)}get clippingVolume(){return!this._clippingVolume.isEmpty()&&this._renderer.localClippingEnabled?(new h).copy(this._clippingVolume):this.sceneBox}set clippingVolume(e){this._clippingVolume=this.sceneBox.intersect(e)}get clippingPlanes(){return this._clippingPlanes}set clippingPlanes(e){this._clippingPlanes=e.map((e=>(new ge).copy(e))),this.updateClippingPlanes()}get allObjects(){return this._scene.getObjectByName("ContentGroup")}get scene(){return this._scene}get sunLight(){return this.sun}set indirectIBL(e){this._scene.environment=e}set indirectIBLIntensity(e){const t=this.batcher.getBatches(void 0,Et.MESH);for(let i=0;i<t.length;i++){const n=t[i].materials;for(let t=0;t<n.length;t++)n[t].envMapIntensity=e}}get speckleCamera(){return this._speckleCamera}set speckleCamera(e){this._speckleCamera=e,this._speckleCamera.on(Xn.Dynamic,(()=>{this._needsRender=!0,this.pipeline.onStationaryEnd()})),this._speckleCamera.on(Xn.Stationary,(()=>{this._needsRender=!0,this.pipeline.onStationaryBegin()})),this._speckleCamera.on(Xn.FrameUpdate,(e=>{this.needsRender=e,this.pipeline.needsAccumulation&&e&&this.pipeline.reset()}))}get renderingCamera(){return this._speckleCamera?this._speckleCamera.renderingCamera:null}set pipelineOptions(e){this.pipeline.pipelineOptions=e}get pipelineOptions(){return this.pipeline.pipelineOptions}get shadowcatcher(){return this._shadowcatcher}get intersections(){return this._intersections}get renderingStats(){const e=Object.values(this.batcher.batches);return this._renderinStats.objects=e.reduce(((e,t)=>e+t.renderViews.length),0),this._renderinStats.batchCount=e.length,this._renderinStats.drawCalls=e.reduce(((e,t)=>e+t.drawCalls),0),this._renderinStats.trisCount=e.reduce(((e,t)=>e+t.triCount),0),this._renderinStats.vertCount=e.reduce(((e,t)=>e+t.vertCount),0),this._renderinStats.batchDetails=e.map((e=>({type:e.constructor.name,objCount:e.renderViews.length,drawCalls:e.drawCalls,minDrawCalls:e.minDrawCalls,tris:e.triCount,verts:e.vertCount}))),this._renderinStats}constructor(e,t){this.SHOW_HELPERS=!1,this.IGNORE_ZERO_OPACITY_OBJECTS=!0,this.SHOW_BVH=!1,this._speckleCamera=null,this.sunConfiguration=mt,this.cancel={},this._clippingPlanes=[],this._clippingVolume=new h,this._renderOverride=null,this.tree=e,this._renderinStats=new _n,this._scene=new ve,this.rootGroup=new J,this.rootGroup.name="ContentGroup",this.rootGroup.layers.set(gt.STREAM_CONTENT),this._scene.add(this.rootGroup),this._intersections=new Sn,this.viewer=t}create(e){if(this._renderer=new Zn({antialias:!0,alpha:!0,preserveDrawingBuffer:!0,stencil:!0}),this._renderer.setClearColor(16777215,0),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.outputEncoding=fe,this._renderer.toneMapping=we,this._renderer.toneMappingExposure=.5,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=Se,this._renderer.shadowMap.autoUpdate=!1,this._renderer.shadowMap.needsUpdate=!0,this._renderer.physicallyCorrectLights=!0,this._renderer.autoClearStencil=!1,this.container=e,this._renderer.setSize(e.offsetWidth,e.offsetHeight),e.appendChild(this._renderer.domElement),this.batcher=new pn(this.renderer.capabilities.maxVertexUniforms,this.renderer.capabilities.floatVertexTextures),this.pipeline=new jn(this._renderer,this.batcher),this.pipeline.configure(),this.pipeline.pipelineOptions=qn,this.input=new gn(this._renderer.domElement),this.input.on(mn.Click,this.onClick.bind(this)),this.input.on(mn.DoubleClick,this.onDoubleClick.bind(this)),this.addDirectLights(),this.SHOW_HELPERS){const e=new J;e.name="Helpers",this._scene.add(e);const t=new U(this.clippingVolume,new l(16711935));t.name="SceneBoxHelper",t.layers.set(gt.PROPS),e.add(t);const i=new Ae(this.sun,50,16711680);i.name="DirLightHelper",i.layers.set(gt.PROPS),e.add(i);const n=new ue(this.sun.shadow.camera);n.name="CamHelper",n.layers.set(gt.PROPS),e.add(n)}let t,i;this._shadowcatcher=new Hn(gt.SHADOWCATCHER,[gt.STREAM_CONTENT_MESH]),this._shadowcatcher.shadowcatcherPass.onBeforeRender=()=>{t=this.batcher.saveVisiblity(),i=this.batcher.getOpaque(),this.batcher.applyVisibility(i),this.batcher.overrideMaterial(i,this._shadowcatcher.shadowcatcherPass.drawDepthMaterial)},this._shadowcatcher.shadowcatcherPass.onAfterRender=()=>{this.batcher.applyVisibility(t),this.batcher.restoreMaterial(i)},this._scene.add(this._shadowcatcher.shadowcatcherMesh)}update(e){this.renderingCamera&&(this.batcher.update(e),this.renderingCamera.updateMatrixWorld(!0),this._renderer.updateRTEViewModel(this.renderingCamera),this.updateRTEShadows(),this.updateTransforms(),this.updateFrustum(this.renderingCamera),this.pipeline.update(this),this.sunConfiguration.shadowcatcher&&this._shadowcatcher&&this._shadowcatcher.update(this._scene))}updateRTEShadowBuffers(){return!!this._renderer.shadowMap.needsUpdate&&(this._renderer.RTEBuffers.shadowViewer.set(this.sun.shadow.camera.matrixWorld.elements[12],this.sun.shadow.camera.matrixWorld.elements[13],this.sun.shadow.camera.matrixWorld.elements[14]),ni.DoubleToHighLowVector(this._renderer.RTEBuffers.shadowViewer,this._renderer.RTEBuffers.shadowViewerLow,this._renderer.RTEBuffers.shadowViewerHigh),this._renderer.RTEBuffers.rteShadowViewModelMatrix.copy(this.sun.shadow.camera.matrixWorldInverse),this._renderer.RTEBuffers.rteShadowViewModelMatrix.elements[12]=0,this._renderer.RTEBuffers.rteShadowViewModelMatrix.elements[13]=0,this._renderer.RTEBuffers.rteShadowViewModelMatrix.elements[14]=0,this._renderer.RTEBuffers.rteShadowMatrix.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),this._renderer.RTEBuffers.rteShadowMatrix.multiply(this.sun.shadow.camera.projectionMatrix),this._renderer.RTEBuffers.rteShadowMatrix.multiply(this._renderer.RTEBuffers.rteShadowViewModelMatrix),!0)}updateRTEShadows(){if(!this.updateRTEShadowBuffers())return;const e=this.batcher.getBatches(void 0,Et.MESH);for(let t=0;t<e.length;t++){e[t].mesh.traverse((e=>{const t=e.customDepthMaterial;t&&(t.userData.uViewer_low.value.copy(this._renderer.RTEBuffers.shadowViewerLow),t.userData.uViewer_high.value.copy(this._renderer.RTEBuffers.shadowViewerHigh),t.userData.rteModelViewMatrix.value.copy(this._renderer.RTEBuffers.rteShadowViewModelMatrix),t.needsUpdate=!0)}))}}updateTransforms(){const e=this.batcher.getBatches(void 0,Et.MESH);for(let t=0;t<e.length;t++){const i=e[t].mesh;i.updateTransformsUniform(),i.traverse((e=>{const t=e.customDepthMaterial;t&&i.updateMaterialTransformsUniform(t)}))}}updateFrustum(e){const t=new d,i=this.sceneBox,n=(new d).copy(e.position);let r=0;t.set(i.min.x,i.min.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.min.x,i.min.y,i.max.z),r=Math.max(n.distanceTo(t),r),t.set(i.min.x,i.max.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.min.x,i.max.y,i.max.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.min.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.min.y,i.max.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.max.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.max.y,i.max.z),r=Math.max(n.distanceTo(t),r),e.far=2*r,e.updateProjectionMatrix()}resetPipeline(){this._needsRender=!0,this.pipeline.reset()}render(){this._renderOverride?this._renderOverride():this._speckleCamera&&(this._needsRender||this.pipeline.needsAccumulation)&&(this._renderinStats.frameStart(),this.batcher.render(this.renderer),this._needsRender=this.pipeline.render(),this._renderinStats.frameEnd(),this.sunConfiguration.shadowcatcher&&this._shadowcatcher&&this._shadowcatcher.render(this._renderer))}resize(e,t){this.renderer.setSize(e,t),this.pipeline.resize(e,t),this._needsRender=!0}async*addRenderTree(e){this.cancel[e.id]=!1;const t=new J;t.name=e.id,t.layers.set(gt.STREAM_CONTENT),this.rootGroup.add(t);const i=this.batcher.makeBatches(this.tree,e,$t);let n=0,r=-1;this._renderOverride=()=>{n>r&&(this.pipeline.render(),r=n)};for await(const r of i)if(r){if(this.addBatch(r,t),r.geometryType===Et.MESH&&this.updateDirectLights(),this.cancel[e.id]){i.return(),this.removeRenderTree(e.id),delete this.cancel[e.id];break}n++,yield}this._renderOverride=null,this.updateHelpers(),this.updateShadowCatcher(),this.updateClippingPlanes(),this._speckleCamera&&this._speckleCamera.setCameraPlanes(this.sceneBox),delete this.cancel[e.id]}addBatch(e,t){const i=e.renderObject;if(t.add(e.renderObject),e.geometryType===Et.MESH){i.traverse((e=>{if(e instanceof B){const t=Array.isArray(e.material)?e.material[0]:e.material;e.castShadow=!t.transparent,e.receiveShadow=!t.transparent,e.customDepthMaterial=new An({depthPacking:ne},["USE_RTE","ALPHATEST_REJECTION"])}}));i.TAS.boxHelpers.forEach((e=>{this.scene.add(e)}))}this.viewer.World.expandWorld(e.bounds)}removeRenderTree(e){this.rootGroup.remove(this.rootGroup.getObjectByName(e)),this.updateShadowCatcher();this.batcher.getBatches(e).forEach((e=>{this.viewer.World.reduceWorld(e.bounds)})),this.batcher.purgeBatches(e),this.updateDirectLights(),this.updateHelpers()}cancelRenderTree(e){void 0!==this.cancel[e]&&(this.cancel[e]=!0)}setMaterial(e,t){if(!t)return;const i={};for(let t=0;t<e.length;t++)e[t].batchId&&(i[e[t].batchId]||(i[e[t].batchId]=[]),i[e[t].batchId].includes(e[t])||i[e[t].batchId].push(e[t]));_t.isMaterialInstance(t)?this.setMaterialInstance(i,t):_t.isFilterMaterial(t)?this.setFilterMaterial(i,t):(_t.isRendeMaterial(t)||_t.isDisplayStyle(t))&&this.setDataMaterial(i,t)}setMaterialInstance(e,t){for(const i in e){const n=e[i].map((e=>({offset:e.batchStart,count:e.batchCount,material:t})));this.batcher.batches[i]&&this.batcher.batches[i].setDrawRanges(this.flattenDrawRanges(n))}}setFilterMaterial(e,t){for(const i in e){const n=e[i].map((e=>({offset:e.batchStart,count:e.batchCount,material:this.batcher.materials.getFilterMaterial(e,t),materialOptions:this.batcher.materials.getFilterMaterialOptions(t)})));this.batcher.batches[i]&&this.batcher.batches[i].setDrawRanges(this.flattenDrawRanges(n))}}setDataMaterial(e,t){for(const i in e){const n=e[i].map((e=>{const i=this.batcher.materials.getDataMaterial(e,t);return i.setMaterialOptions(t),{offset:e.batchStart,count:e.batchCount,material:i}}));this.batcher.batches[i]&&this.batcher.batches[i].setDrawRanges(this.flattenDrawRanges(n))}}flattenDrawRanges(e){if(e.length<3)return e;const t=[];let i=(e=e.sort(((e,t)=>e.offset-t.offset)))[0].offset,n=0;for(let r=0;r<e.length-1;r++)n+=e[r].count,i+n!==e[r+1].offset?(t.push({offset:i,count:n,material:e[r].material,...e[r].materialOptions&&{materialOptions:e[r].materialOptions}}),i=e[r+1].offset,n=0,r===e.length-2&&t.push({offset:e[r+1].offset,count:e[r+1].count,material:e[r+1].material,...e[r].materialOptions&&{materialOptions:e[r].materialOptions}})):r===e.length-2&&t.push({offset:i,count:n+e[r+1].count,material:e[r].material,...e[r].materialOptions&&{materialOptions:e[r].materialOptions}});return t}getMaterial(e){return e&&e.batchId?this.batcher.getBatch(e).getMaterial(e):null}getBatchMaterial(e){return e&&e.batchId?this.batcher.getBatch(e).batchMaterial:null}resetMaterials(){this.batcher.resetBatchesDrawRanges()}getBatch(e){return this.batcher.batches[e]}updateClippingPlanes(){var e;if(!this.allObjects)return;const t=this._clippingPlanes;this.allObjects.traverse((e=>{const i=e.material;if(i)if(Array.isArray(i))for(let e=0;e<i.length;e++)i[e].clippingPlanes=t;else i.clippingPlanes=t})),this.pipeline.updateClippingPlanes(t),null===(e=this._shadowcatcher)||void 0===e||e.updateClippingPlanes(t),this.renderer.shadowMap.needsUpdate=!0,this.resetPipeline()}updateShadowCatcher(){void 0!==this.sunConfiguration.shadowcatcher&&(this._shadowcatcher.shadowcatcherMesh.visible=this.sunConfiguration.shadowcatcher),this.sunConfiguration.shadowcatcher&&(this._shadowcatcher.bake(this.clippingVolume,this._renderer.capabilities.maxTextureSize),this.resetPipeline())}addDirectLights(){this.sun=new ye(16777215,5),this.sun.name="sun",this.sun.layers.set(gt.STREAM_CONTENT),this._scene.add(this.sun),this.sun.castShadow=!0,this.sun.shadow.mapSize.width=2048,this.sun.shadow.mapSize.height=2048;this.sun.shadow.camera.left=-50,this.sun.shadow.camera.right=50,this.sun.shadow.camera.top=50,this.sun.shadow.camera.bottom=-50,this.sun.shadow.camera.near=5,this.sun.shadow.camera.far=350,this.sun.shadow.bias=-.001,this.sun.shadow.radius=2,this.sunTarget=new Te,this._scene.add(this.sunTarget),this.sunTarget.position.copy(this.sceneCenter),this.sun.target=this.sunTarget}updateDirectLights(){const e=this.sunConfiguration.elevation,t=this.sunConfiguration.azimuth,i=this.sunConfiguration.radius||0;void 0!==this.sunConfiguration.castShadow&&(this.sun.castShadow=this.sunConfiguration.castShadow),void 0!==this.sunConfiguration.intensity&&(this.sun.intensity=this.sunConfiguration.intensity),this.sun.color=new l(this.sunConfiguration.color),void 0!==this.sunConfiguration.enabled&&(this.sun.visible=this.sunConfiguration.enabled),this.sunTarget.position.copy(this.sceneCenter);const n=new Ee(this.sceneSphere.radius+i,e,t);this.sun.position.setFromSpherical(n),this.sun.position.add(this.sunTarget.position),this.sun.updateWorldMatrix(!0,!0),this.sunTarget.updateMatrixWorld(),this.sun.shadow.updateMatrices(this.sun);const r=this.sceneBox,s=r.min,a=r.max,o=new d(s.x,s.y,s.z),c=new d(a.x,s.y,s.z),u=new d(s.x,a.y,s.z),p=new d(s.x,s.y,a.z),m=new d(a.x,a.y,s.z),g=new d(a.x,s.y,a.z),v=new d(s.x,a.y,a.z),f=new d(a.x,a.y,a.z);o.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),c.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),u.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),p.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),m.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),g.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),v.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),f.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse);const w=(new h).setFromPoints([o,c,u,p,m,g,v,f]);this.sun.shadow.camera.left=w.min.x,this.sun.shadow.camera.right=w.max.x,this.sun.shadow.camera.top=w.min.y,this.sun.shadow.camera.bottom=w.max.y,this.sun.shadow.camera.near=Math.abs(w.max.z),this.sun.shadow.camera.far=Math.abs(w.min.z),this.sun.shadow.camera.updateProjectionMatrix(),this.renderer.shadowMap.needsUpdate=!0,this.updateHelpers()}setSunLightConfiguration(e){Object.assign(this.sunConfiguration,e),void 0!==e.indirectLightIntensity&&(this.indirectIBLIntensity=e.indirectLightIntensity),this.updateDirectLights(),this.updateShadowCatcher(),this.viewer.emit(pt.LightConfigUpdated,{...e})}updateHelpers(){this.SHOW_HELPERS&&(this._scene.getObjectByName("CamHelper").update(),this._scene.getObjectByName("SceneBoxHelper").box.copy(this.clippingVolume),this._scene.getObjectByName("DirLightHelper").update())}queryHits(e){const t=[],i=[];for(let n=0;n<e.length;n++){const r=this.renderViewFromIntersection(e[n]);r&&(t.push(r),i.push(e[n].point))}if(0===t.length)return null;const n=[];for(let e=0;e<t.length;e++){const r=t[e].renderData.id,s=t[e].renderData.subtreeId,a=this.tree.findId(r,s);if(!a)continue;let o=a[0];for(;!o.model.atomic&&o.parent;)o=o.parent;n.push({node:o,point:i[e]})}return n}queryHitIds(e){var t;const i=[];for(let n=0;n<e.length;n++){let r=null===(t=e[n].batchObject)||void 0===t?void 0:t.renderView;if(!r){const t=void 0!==e[n].faceIndex?e[n].faceIndex:e[n].index;t&&(r=this.batcher.getRenderView(e[n].object.uuid,t))}r&&i.push({nodeId:r.renderData.id,point:e[n].point})}return 0===i.length?null:i}renderViewFromIntersection(e){let t=null;if(e.batchObject){t=e.batchObject.renderView;const i=e.object.getBatchObjectMaterial(e.batchObject);if(i&&0===i.opacity&&this.IGNORE_ZERO_OPACITY_OBJECTS)return null}else{const i=void 0!==e.faceIndex&&null!==e.faceIndex?e.faceIndex:void 0!==e.index&&null!==e.index?e.index:void 0;if(void 0!==i&&(t=this.batcher.getRenderView(e.object.uuid,i),t)){const t=this.batcher.getRenderViewMaterial(e.object.uuid,i);if(t&&0===t.opacity&&this.IGNORE_ZERO_OPACITY_OBJECTS)return null}}return t}onClick(e){if(!this.renderingCamera)return;const t=this._intersections.intersect(this._scene,this.renderingCamera,e,void 0,!0,this.clippingVolume);if(!t)return void this.viewer.emit(pt.ObjectClicked,null);let i=!1;e.multiSelect&&(i=!0);const n=this.queryHits(t);if(!n)return void this.viewer.emit(pt.ObjectClicked,i?{multiple:!0,event:e.event}:null);const r={multiple:i,event:e.event,hits:n.map((e=>({node:e.node,point:e.point})))};this.viewer.emit(pt.ObjectClicked,r)}onDoubleClick(e){if(!this.renderingCamera)return;const t=this._intersections.intersect(this._scene,this.renderingCamera,e,void 0,!0,this.clippingVolume);if(!t)return void this.viewer.emit(pt.ObjectDoubleClicked,null);let i=!1;e.multiSelect&&(i=!0);const n=this.queryHits(t);if(!n)return void this.viewer.emit(pt.ObjectDoubleClicked,null);const r={multiple:i,hits:n.map((e=>({node:e.node,point:e.point})))};this.viewer.emit(pt.ObjectDoubleClicked,r)}boxFromObjects(e){let t=new h;const i=[];if(e.length>0)for(let t=0;t<e.length;t++){const n=this.tree.findId(e[t]);n&&n.forEach((e=>{i.push(...this.tree.getRenderTree().getRenderViewsForNode(e))}))}else t=this.sceneBox;for(let e=0;e<i.length;e++){const n=this.getObject(i[e]),r=n?n.aabb:i[e].aabb;r&&t.union(r)}return 0===t.getSize(new d).length()&&console.error("object selection resulted in empty box"),t}screenToNDC(e,t,i,n){const r=this._renderer.domElement,s=this.container.getBoundingClientRect(),a=void 0===i?(e-s.left)*r.width/s.width:e,o=void 0===n?(t-s.top)*r.height/s.height:t;return{x:a/(void 0===i?r.width:i)*2-1,y:o/(void 0===n?r.height:n)*-2+1}}NDCToScreen(e,t,i,n){const r=this._renderer.domElement;return{x:(.5*e+.5)*(i=void 0!==i?i:r.width),y:(-.5*t+.5)*(n=void 0!==n?n:r.height)}}debugShowBatches(){for(const e in this.batcher.batches){const t={id:"string",color:Math.floor(16777215*Math.random()),opacity:1,roughness:1,metalness:0,vertexColors:!1,lineWeight:1};this.setMaterial(this.batcher.batches[e].renderViews,t)}}getBatchIds(){const e=Object.values(this.batcher.batches);e.sort(((e,t)=>e.renderViews.length-t.renderViews.length));const t=[];for(let i=0;i<e.length;i++)t.push(e[i].id);return t.reverse()}getBatchSize(e){return this.batcher.batches[e].renderViews.length}isolateBatch(e){this.batcher.resetBatchesDrawRanges(),this.batcher.isolateBatch(e)}getObjects(){return this.batcher.getBatches(void 0,Et.MESH).map((e=>e.mesh)).flatMap((e=>e.batchObjects))}getObject(e){const t=this.batcher.getBatch(e);return t.geometryType!==Et.MESH?null:t.mesh.batchObjects.find((t=>t.renderView.guid===e.guid))}enableLayers(e,t){this.pipeline.composer.passes.forEach((i=>{i instanceof Tn&&e.forEach((e=>{i.enableLayer(e,t)}))}))}}const er=function(e){const t={};for(const i in e){if("id"===i||"__closure"===i||"__parents"===i||"bbox"===i||"totalChildrenCount"===i)continue;const n=e[i];if(null==n||Array.isArray(n))continue;if(n.constructor===Object){const e=er(n);for(const n in e)t[i+"."+n]=e[n];continue}const r=typeof n;"string"!==r&&"number"!==r&&"boolean"!==r||(t[i]=n)}return e.id&&(t.id=e.id),t};class tr{constructor(){this.propCache={}}async getProperties(e,t=null,i=!1){let n=e.root;if(!i&&this.propCache[t||n.model.id])return this.propCache[t||n.model.id];if(t){const e=n.children.find((e=>e.model.id===t));if(!e)throw new Error(`Could not find root node for ${t} - is it loaded?`);n=e}const r={};await e.walkAsync((e=>{if(!e.model.atomic)return!0;const t=er(e.model.raw);for(const e in t)Array.isArray(t[e])||(r[e]||(r[e]=[]),r[e].push({value:t[e],id:t.id}));return!0}),n);const s=[];for(const e in r){const t=r[e],i={};if(i.key=e,i.type="string"==typeof t[0].value?"string":"number",i.objectCount=t.length,"string"===i.type){const e=i,n={};for(const{value:e,id:i}of t)n[e]||(n[e]=[]),n[e].push(i);e.valueGroups=[];for(const t in n)e.valueGroups.push({value:t,ids:n[t]});e.valueGroups=e.valueGroups.sort(((e,t)=>e.value.localeCompare(t.value)))}if("number"===i.type){const e=i;e.min=Number.MAX_VALUE,e.max=Number.MIN_VALUE;for(const{value:i}of t)i<e.min&&(e.min=i),i>e.max&&(e.max=i);e.valueGroups=t.sort(((e,t)=>e.value-t.value))}s.push(i)}return this.propCache[n.model.id]=s,s}}class ir{static isPointQuery(e){return"Project"===e.operation||"Unproject"===e.operation}static isIntersectionQuery(e){return"Occlusion"===e.operation||"Pick"===e.operation}}ir.DefaultPointQuerySolver=new class{setContext(e){this.renderer=e}solve(e){switch(e.operation){case"Project":return this.solveProjection(e);case"Unproject":return this.solveUnprojection(e);default:return St.error("Malformed query"),null}}solveProjection(e){const t=new d(e.point.x,e.point.y,e.point.z);return this.renderer.renderingCamera?t.project(this.renderer.renderingCamera):St.error("Could not run query. Camera is null"),{x:t.x,y:t.y,z:t.z}}solveUnprojection(e){const t=new d(e.point.x,e.point.y,e.point.z);return this.renderer.renderingCamera?t.unproject(this.renderer.renderingCamera):St.error("Could not run query. Camera is null"),{x:t.x,y:t.y,z:t.z}}},ir.DefaultIntersectionQuerySolver=new class{constructor(){this.vecBuff0=new d,this.vecBuff1=new d}setContext(e){this.renderer=e}solve(e){switch(e.operation){case"Occlusion":return this.solveOcclusion(e);case"Pick":return this.solvePick(e);default:return St.error("Malformed query"),null}}solveOcclusion(e){if(!this.renderer.renderingCamera)return{objects:null};const t=this.vecBuff0.set(e.point.x,e.point.y,e.point.z||0),i=this.vecBuff1.copy(t).sub(this.renderer.renderingCamera.position);i.normalize();const n=new k(this.renderer.renderingCamera.position,i),r=this.renderer.intersections.intersectRay(this.renderer.scene,this.renderer.renderingCamera,n,gt.STREAM_CONTENT_MESH,!0,this.renderer.clippingVolume);if(!r||0===r.length)return{objects:null};const s=this.renderer.queryHitIds(r);if(!s)return{objects:null};let a=this.renderer.renderingCamera.position.distanceTo(t);return a-=void 0!==e.tolerance?e.tolerance:0,a<r[0].distance?{objects:null}:{objects:[{guid:s[0].nodeId,point:s[0].point}]}}solvePick(e){if(!this.renderer.renderingCamera)return null;const t=this.renderer.intersections.intersect(this.renderer.scene,this.renderer.renderingCamera,new T(e.point.x,e.point.y),void 0,!0,this.renderer.clippingVolume);if(!t)return null;const i=this.renderer.queryHits(t);return i?{objects:i.map((e=>({guid:e.node.model.id,object:e.node.model.raw,point:e.point})))}:null}};class nr extends ht{get inject(){return[]}get enabled(){return this._enabled}set enabled(e){this._enabled=e}constructor(e,...t){super(),this._enabled=!1,this.viewer=e}onEarlyUpdate(e){}onLateUpdate(e){}onRender(){}onResize(){}}
SyntaxError: Named export 'ObjectLoader' not found. The requested module '@speckle/objectloader' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:
import pkg from '@speckle/objectloader';
const {PMREMGenerator: t,ShaderMaterial: i,NoBlending: n,TextureLoader: r,Matrix4: s,Euler: a,Texture: o,Color: l,DataTexture: c,Box3: h,Vector3: d,AlwaysStencilFunc: u,ReplaceStencilOp: p,UniformsUtils: m,MeshStandardMaterial: g,MeshBasicMaterial: v,MeshDepthMaterial: f,MeshNormalMaterial: w,PointsMaterial: S,ShaderLib: A,NearestFilter: y,Vector2: T,Material: E,FrontSide: x,DoubleSide: R,Float32BufferAttribute: C,InstancedInterleavedBuffer: M,InterleavedBufferAttribute: O,BufferAttribute: b,Vector4: I,DynamicDrawUsage: N,Mesh: B,PlaneGeometry: D,BufferGeometry: L,Uint32BufferAttribute: P,Uint16BufferAttribute: z,Box3Helper: U,Ray: k,Sphere: V,RGBAFormat: F,FloatType: Q,Triangle: q,BackSide: j,Group: J,InstancedMesh: G,InstancedBufferAttribute: W,Quaternion: H,Points: X,MathUtils: K,Raycaster: Y,CustomBlending: Z,DstColorFactor: _,ZeroFactor: $,AddEquation: ee,DstAlphaFactor: te,WebGLRenderTarget: ie,RGBADepthPacking: ne,OneFactor: re,ReverseSubtractEquation: se,RedFormat: ae,RepeatWrapping: oe,EqualStencilFunc: le,LinearFilter: ce,OrthographicCamera: he,BasicDepthPacking: de,CameraHelper: ue,MaxEquation: pe,WebGLRenderer: me,Plane: ge,Scene: ve,sRGBEncoding: fe,ACESFilmicToneMapping: we,VSMShadowMap: Se,DirectionalLightHelper: Ae,DirectionalLight: ye,Object3D: Te,Spherical: Ee,Matrix3: xe,PerspectiveCamera: Re,Clock: Ce,CircleGeometry: Me,LineBasicMaterial: Oe,SphereGeometry: be,Line3: Ie,EllipseCurve: Ne}from"three";export{Box3,Vector3}from"three";import{EXRLoader: Be}from"three/examples/jsm/loaders/EXRLoader.js";import{RGBELoader: De}from"three/examples/jsm/loaders/RGBELoader.js";import{FontLoader: Le}from"three/examples/jsm/loaders/FontLoader.js";import Pe from"js-logger";import{has: ze,get: Ue,groupBy: ke}from"lodash-es";import Ve from"tree-model";import{LineMaterial: Fe}from"three/examples/jsm/lines/LineMaterial.js";import{createTextDerivedMaterial: Qe,Text: qe}from"troika-three-text";import{LineSegments2: je}from"three/examples/jsm/lines/LineSegments2.js";import{LineSegmentsGeometry: Je}from"three/examples/jsm/lines/LineSegmentsGeometry.js";import{CENTER: Ge,MeshBVH: We,ExtendedTriangle: He}from"three-mesh-bvh";import{EffectComposer: Xe}from"three/examples/jsm/postprocessing/EffectComposer.js";import{Pass: Ke,FullScreenQuad: Ye}from"three/examples/jsm/postprocessing/Pass.js";import{CopyShader: Ze}from"three/examples/jsm/shaders/CopyShader.js";import{SAOShader: _e}from"three/examples/jsm/shaders/SAOShader.js";import{DepthLimitedBlurShader: $e,BlurShaderUtils: et}from"three/examples/jsm/shaders/DepthLimitedBlurShader.js";import{SimplexNoise: tt}from"three/examples/jsm/math/SimplexNoise.js";import{lerp: it,clamp: nt}from"three/src/math/MathUtils.js";import{TransformControls: rt}from"three/examples/jsm/controls/TransformControls.js";import st from"string-to-color";import{ObjectLoader: at}from"@speckle/objectloader";import{OBJLoader: ot}from"three/examples/jsm/loaders/OBJLoader.js";import{mergeVertices: lt}from"three/examples/jsm/utils/BufferGeometryUtils.js";import{SpeckleViewer: ct}from"@speckle/shared";class ht{constructor(){this._events={}}on(e,t){this._events[e]||(this._events[e]=[]),this._events[e].push(t)}removeListener(e,t){if(!this._events[e])return;this._events[e]=this._events[e].filter((e=>e!==t))}emit(e,...t){if(!this._events[e])return;this._events[e].forEach((e=>{e(...t)}))}dispose(){this._events=null}}var dt;!function(e){e.TEXTURE_8BPP="png",e.TEXTURE_HDR="hdr",e.TEXTURE_EXR="exr",e.FONT_JSON="font-json"}(dt||(dt={}));const ut={showStats:!1,verbose:!1,environmentSrc:{id:"defaultHDRI",src:"data:image/png;base64,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Q+OARAQ8PARAS8OARAP8OASAQ8OAQAO8P8R8N8O8P/ATgEgEvDwEQEPDgEQEfDgEQEvDgEQD/D/EPDgEgEfDwEQEvDvEvD/EPDvEPDgEgEfDgEQEPDwEgDwEgDvEPEAEgEfDwEgD/DwEAEPDgEgEfDwEfjvEfEvD/DvEfDwEQEvDvEfEAEgEPDQEgD/DwEvjwEQD/DwEQD/DvEPEAEQEfD/D/DwEQEfDvEPEAEQEfDwEQEAEgEfEPDwEgD/EAEgEPD/D/D/wE4BAA8BIBH5IBABEBDxDxLw8BIA/xABIBHw8BIBDw/xDw8BIBHw8BEBHw8BL4/xLw4BIBDw/xHw/xLw4BD47xDw8BIBHw/xLw8BEBDw4BABDw8BIBLw8BEBHxIBH47xHw/xDw4BIBABIBDxDw4BEA/w8BIBDw8BIBHw8BIBIBIA7xDw8BIBHxABIA/w8BEBLw/xHxDxHw8BIBHxIBL4/xHxDxHxABIBHxHxLw4BIBDw8BEBLw/xDw/xHw/xLxABIBLw/xDxEBD5DxD5IBHxIBIBDxEBL48BIBHw/8BQASAR8R8Q8PASAS8Q8Q8Q8R8S8R8PASAQ8QASAS8Q8S/AUPDwEgEPEQEgEvEAEgEPEQEvkPEfDwEgEfEQEgEvEvEvEAEgEPEAEAEQEQEAEgEQEQEAEQEgEgEAEgEAEkjgEAEQEQDwEAEPDwEgDwEkjgDwDwEPEgEQEADwDwEvEPwFABABLxIBEBDxHxLxEBAA8BIBABIBHxABL48BEBIBIBABEBDxEBIBIBEBDxIBFJEA8BDxABABHw8BIBEBEA8BABHw8BAA4BIBEBABLw4BIBABEBABIBIBEA8BIBABIBEBABABIBABEBEBABABIBHxABEBABIBEBLxIA8BEBLxEBEBLxDxHw8BIBHxABL5EBABLxDxEBIBDxEBHxHxEBABLxEBIBEBHxIBDxEBABIBHxEBLxIBEBEBIBLxEBIBIBABIBHxH8BR/A0QEfEvEQEvEQEvEfEPEQEgEAEQEQEgEvEgEfwFIBABIBHxEBH5H5IBHxIBH8HR8RASAR8Q8QAQAS8Q8RASAQARAQASASARARARASARASASAS8S8RASAR8S8S8QASAR8PARAQ8RAS8SAS/AUgEfUkgEgEgEgEgEgEgEgEfEvEgEfEvEvkvEfwFIBD8BSAQAQ+Q/AUgEgEvEkkvkvEvEfEvEPkgEQEgEgEgEPwFIBIBHxEBIBLxIBIBDxEBIBIBLxH8DSAR8S/AUvkfwlIBABIBL5EBL5LxLxDxL8FS/A0gEvwFD5IBIBLxL8DSASAS8RARAS8QARAS+SASAS+SARAS/AUgEgEPEkgEkkkgEkgEfUvEUke0kUkUkku0QEUkvkfUgEQEu0gEkAEkfwBHxEBIBFIBJJIBJJJFIBL1LtIBFJFL1IBEBIBIBHxJFEBFFHxFJLtLtJIBH8BR7SS8SSS7SS7SASAR+SAR7SQSS+R/AEe0Ue0gEvEkfEkUkUkgEgEvEe0Uu0vwBL1JLtLtL8CSS9SS/AEO0kkkgEkkkgEkvUku0vwFLtJLtHtLxJL8DSQASS/A0u0QEku0kvwZL8BS9SAS7RRRSQASASASSSSSARSASASSR7SAQRSS8SARSS/AEfwBJHtJIBJJJJJL1LtJJL1JFIBJL1LtJL1IBJIBIBJJL8AS/AUUu0gEfwFJJIBJL5L5JJLxJEBL1LxHtLxJJL8AS8R8S/AEkke0kfwBJLxL1JJJLxLxLtLtLxL5H8FS/AUkvEvwBHtIBL5LxL8BSASS7SSS9S/BEvwNHxJL1IBL8BRS9SAR+S+S8S/CEgEvEgEvwNJJL1L1L8BS9S/AUvEvwJL8AS7R8RAS7SSR9S/EkvEvkvwBIBIBL8ES7S/AUvUvxRLtLtLxL8DS9SAS8S/A0vUfEkvEvEku0vwBL8AS9S7SASSARS/AEfkku0vwJIBJJL5IBJFL5L8CSSAS/CEvwFJL1JL8ESSSS+S/AEu0u0vwZL8HSASAS/AUu0gEvxFHxL1LtIBL8MS/DEvwZH1L8AS/AEvwBL8AS/CUvwdL8DS9S/AkvyxLtIBABL8JS9R/AEvEQEvkgEu0vkvwBIBH8BS/E0u0ku0gEkgEvEQEfw9JLtL8CSS/DUQEvwhH8JS/EEu0vwFL85S/BEv1JL8ES7S/GUvxJL8fS/DkvxVL8cS8S/AEvwlIBL8HSS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9OE////////6h////0N////QT/5J/+R//k3/5F/eSv3kf95P/eRv3kv95I/eTv3kT85L/OSPzk785H/OS/zkn85P/ORvzkz85J/OT/zkj85M/OSvzlD85G/GTPxkn8ZP/GSPxkz8ZK/GUvxkj8ZN/GSvxlH8ZJ/GTfxkv8ZQ/GR/xk38ZK/GUPxkn8ZN/GS/xk/8ZJ/GTfxkv85K/GTvxkv8ZS/GSPwk38JL/CUPwkr8JO/CTPwlH8JJ/CTfwkv8JS/CSvwk78JM/GSPwk38JL/GSvwk78JM/CUvwkr8JO/CS/xkv8JO/CTPwlL8JJ/CTvwkz8JS/CS/wk78JM/GSvwk78JM/GS/wk/8JN/GSvwk/8JM/GS/wk/8JN/CUvwkr8JP/CTPxkz8JQ/CTfxkn8BP/ATPwFL8BL/AT/wE38BS/ASvwE/8BN/CTPwE/8BN/AUvwEr8BO/ATfwkz8BP/ATfwkv8BP/ATPwkz8BP/ATfwkr8BQ/ATfwkz8BO/ATvwFL8BL/AT/wE38JM/AUPwE/8JL/AT/wE38BS/ATPwE/8BO/CS/wFD8BN/CTPwFD8BO/CSvwE/8BN/CTPwE/8BN/AUvwEz8BP/ATfwk38BR/ATvwkv8BQ/ATfwkz8BQ/ATvwkz8BS/ATvwk38BP/ATvwFL8BL/AUfwE78JM/AUfwE/8JM/AUPwE78JN/AUPwE78JL/AUfwE78JN/AUPwE78JM/AUfwE78JN/AUPwE78JM8R8O8S8M8S8Q8S8M8P8O8S8O8S8P/ATPEvDvwE3xDw/8BM8Q8O/ATvEfD/wEvxDw78BN8R8P/ATfD/DvwE3xDxD8BM8R8O/ATfEvDvwE3w/w78BO8P8P/ATPEPDvEvDfEPD/wE38BP8S8O8S8Q/ATPEvDvwE3xDw/8BN8S8P/ATvEvEPwEzxHw78BO8R8Q/ATfEPDvwE78BQ8S8M8S8P/ATvwE/8BN8Q8P/ATvEPEfEvDPEfD/wE78BQ/ATfEvD/EvDvEPEfwEzxLw/8BO8S8Q/ATvEvD/wE7xLxD8BM8S8O/AT/EfEPwE3xLxD8BP/AUfwE7xHxD8BQ8S8P/ATfwE/8BP8S8Q/ATfEvEPwE78BP/ATvwFD8BP/AUfwE3xLw/8BO8R8P/ATvEvD/wE/xHxD8BN8R8P/ATvwFH8BN/AT/EvDvEvEfwE78BQ/ATvEfEPwE78BP/AT/EvEPwE4BAA/w8BEA/w4BABDw8BIBLw0BABHw8BIBLw4BIBDw/xDw4BIBDw8BL44BABHw7w/w4BIBABIA/xDw4BIA/w8BABLw4BIBDw4BIBHw7xDw8BEBLw0BIBHw8BEA/w/xDxD8BOARAQ8PASAQ8P8Q8PARAP8OAS+P8R8PASAP8P8S8OAQAQ8OAS+PASAQ8P/ATgEgEPDvEvDwEQEPEAEQD/D/EPDwEvjgEgEfDwEfjwEgEvEAEgEvEPEvEAEgEvDgEgEfEfEvDgEgEfEfEfD/EvEPEvDwEgEPDwEQEfDvD/D/EvD/EPD/EfDgEQD/DwEgEvDvEvEAEgEvD/wE/xLw8BIA/xABIBLw/w/xDxHw/xL5IBDw4BIBD8BS8PASAQ8R8S8P8Q8QARAQ8QASAS8P8R8OARAS8QASAS8P8S8S8S8PARAQ8P/AUgEgEPEAEQEvD/EfEAEgEfD/EvD/EfDvEvEPEfEPEfwFLw4BEBHxDxLxHxHxDxHw/xLxD8BPASAS8QASAS8P8R8Q8S8P/BUvEQEQEvEfwFHxLxHxLw8BL5EBIBLw/xLxL8BP8Q8QAS+PASAR8R8Q8R8S8RAS+QASAQ8QASAQ8Q/AUfwFLxHxABH4/xHw8BL4/xEBIBDxIBIA/8BPAS+PAQAQ8OASARASAPASAQ8QAQAS8P8R8QARAQ8SAQASASAR+SAQASAQ8RAQAQASAQAQAQ8RARAS8R+SAQARAQASAPAQ8RAPAQAS8PAQASASAQASASASAS+RAQ8SASASASAR8SARASASASASASARAQ8SAQAQ+RAPASAQASAQARAQ8RARAS8QAQ8RAS8R8SAR+RASAS8P8QARASARAQASASASAS8SAR8SARAP8RASASAQ8SAQARASAQAQASARAPARARASAS/AUAEQEfEPEvEQEgEQEgEQEfkfkvEQEfkgEvwFHxEA/xEBABL5L8BR+SASARAR/DT/EvwFLxL8BSASASAQAP/A0QEfEQEgEfEvwFEBEBLxLxLxIBIBLxEBH8BQAR8R8Q/AUfkPkgEgEQEvkvD/EPEAEPEgEgEgEQEvkvwNHxIBHxEBLxIBABIBL5IBL8DSARAS+R8Q+SAS8S/AUvwFD8HSAR/AUvkfEvEfwVIBD8FS8RAS+S8S8S8SAS8SAS/AUgEQEvwNH8DS8S+Q8SASAR+S8SASAR+RAR+SAS8S8R8S8S8S8S/AUvEvEvwNEBIBIBH8BS8R+SAS8S8QS8Q9SAS8SS8Q7S7RS/AEgEvwBIBIBIBIBIBL5JEBHtIBIBJLxIBJLxJJL8ESRR8S/BEgEkfUvEAEu0fwRIBL8AQ+S7R7S7SASASS7SS/AEvkgEgEgEkvUe0u0fkgEUvEvwdIBJIBJJJL8AS9SSAR8S+S8S9SAS9SARS+SASSARS7S9S8S7SASS/AUkfwZLtIBJLxL8AS7S7SS/AkvwpL8CSASAS/AUvEvwVIBLxIBJLxJLxIBH8CS8S8S7S8S9S/AEfwpEBIBJH8GS/AEgEu0kvUvEvUfkvEvEvwRL8DS9S7R/EUvwJL1LtL8BS7S/B0kUUgEkvwJIBFIBLtH8BS8S/AEvwZL8ESASS9S/AkvEUvw1JL8CS/AkvEku0u0vwBEBLtIBL5L8JSAS/BEkUvwJL8BS9S/CUkQEvwJLtIBL8BS+S+S/AUu0kkvUu0kvwNIBIBIBL8AS7S/Dku0vkvEku0vwxLxEBFIBL8AS/AkvEgEvUgEkgEkvEvwNLtL1IBLtL8DS9SSASAS+S/B0u0u0vkvwVL8BSS8S/OEvwZLtL8RR9S/Ikvx1L9AS/WkvwBL8QS/E0u0vzBL1L86S/EUvzZL80S/UUvwhL92S/Gkvw9L9HS/BUvy1L8ES+S/DUvwJLtLxL8KS/TkvwlL8DS/Z0vx5L/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////vBABRhxyCCCCSSSSjTTTjTjjjTjz0UEEkfEvUkg0GEH1NkcDPZS47Fde4mEw+fb0rZ85Lv0T4f7sbMlCU8r5TQVw0rb87n4EzKrm8MjR2HaD5CrwVw093flLnyBxA/nKjImuPH+5NBXuHuZ7kufocQ+IFQLeanr/kmQVpitmfOa79E6LKnRwFvJx6/5TJlcNPcz8S679ASkLGlQlDU9Q/OwVww93Pnd+QOCPSrCQanqL5TQV7p7vylz9DbFeQXRSkho9Re4mQVpvlLn6NZyQW9GZpx4i+SZBWm+UufoLqHqQW0oyk89v5hBWmK2Z8cV5+jSKlA3pHaPneI/lNDFUCtmfOZ+iTHRA3oxE5x4jz53Ve/K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S/AT/wkz8BS/AUPwlD8BQ/AT/wkz8BP/ATvwk38BR/AT/wk38JP/CTvwFL8BO/CTPwlD8JO/CUPwk38BR/AT/wk78BR/AT/wk38JP/CT/wFL8BQ/CTvwFH8BP/CTvwlL8JM/CUPwk/8BR/AUPwk78BS/ATvwk/8BS/AUfwk38BR/AUPwk78BR/AUvwk/8JP/CT/wFL8BS/CTfwk/8JP/AUfwFH8JN/AUfwFD8JQ/CUPwk78BS/AUfwk/8JS/CTvwFL8BQ/CT/wFH8RN/AUPwFL8BS/ATvwFL8BS8S8Q/ATfEvEfwE/8BR/ATvwFL8BQ/AUvwE38BR8S8Q/AUfwE/8BQ/AT/wk7xLxH8BP/AUfwE78BQ/AUPEvwU7xLxD8BR8S8Q/AT/wFH8BR/AUvwE7xLw/8BR/AUvwE/8BR/AT/wFD8BO8S8S/AUfEvEvwE78BQ/AT/EvEPwE78BR/AUfwk/8BS/CUvwE78BS/AUfwFD8BP8S8R/AUvwk78BS/AUPwFL8BP/AUfwFD8BS/ATvwFL8BS/CT/wFL8BS/AUvwE/8BS/AUfEvEfwFDxL8FS/AUvwE/8BS/AUPwk/8BS/AUvwFL8BP/AUvwFH8JP/AUvwFL8JO/CT/EvEvwFL8JR/AUvwFD8JQ/CUPwlL8JO8S8Q/AT/EvEfwE7xLw/xLxHxL8FP/AUPwFDxLxH8BR8R8RAR+Q8S8R/AUAEgEfwVL8BSAS+Q/CUgEvkfEfEPEvEvwFL8BS/AT/EvEPwFLxHxHxLw8BH5L8BS/CT/wNIBL8BS8R/AT/wFH8BS8S/BUPEvwVEBL8HP/AUgEvkvwFLxLxLxL8NSASAR8Q8S/BUvwFL8BQ/AUvwFEBL5L8BQ/CUfwFL8BR8S8R/AUvEvwFL8FS/AUvEvwVD8BS/EUfEvwVD8JS/AUvwVL8FS/AUfwFEBIBLxL8BQ/CUfwlL8JS8S/BUPwFLxL8HS+S/BUvwFLxH8RS8S8S/AUfwlL8RR/AUvEvEfwFL8JQ/AUgEvkvxVLxIBL1L8CS/BUvkgEgEgEvwNL5IBIBH8FSAS+RAS+S/AUvxFEBL5D5LxL5LxH8HS8SAR+S8SAS8R8Q8R/AUQEfwdLxL8FR/CUvw9L5L8HS/A0vwVL8NS/B0vkQEgEvEvEvkgEvEvwFL8BS/AUfwNL8LSAS/D0gEgEfxVLxL8LS/BUvwVL8PS/A0vEvxNLxL8BS/CUvEvytL8XS/DUvwdL5H8HS/A0gEvwNIBL8TS8S8R/K0vxtLxL8TS/AUgEvzlL8FS8S8S8S/BUvwVLxL8HS/H0vwxL8uSASAS8SS/AEvEvEvwFL8lSASASASAR/A0vxZL1L8RS/GEvxBL8PS8S/DUvEvwJIBL8DS9SS/DkvwdIBL5IBL8AS/AkvUkgEvwlL8NS/X0gEvwJL8jS7S8S/AEvxRL8XSS/CkvwBL8ES/CUvwtL8gS/IkvxlL8+S/A0vwJLxJL8DSAS7S7S8S/HUvwRL8VS+S/GUvwRL8KS/B0vylL///GUgEv5lL8IS/TUvyJHxL88S/VEvxxL/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////3kT////////qG////Qz///9A//kj/5G/+TP/kX95J/eRv3k395G/eSv3kj95O/eRfzkr85I/OT/zkf85L/OSfzlD85H/OS/zkn85P/OSPzkz85K/OUPzkj8ZM/GSvzkn8ZM/GSvzkn8ZN/GSvzkr8ZN/GS/zkn8ZN/GS/xlL8ZK/GTfxkz8ZS/GSvxk38ZL/OS/xk78ZM/OSfwk78JM/GS/wk78JM/GSvwk78JM/GS/wk78JM/GSvwk78JM/GTPwk/8JN/GS/wk78JM/GTPwk/8JN/GSvwk/8JN/CUvwkz8JP/CTfxkv8JR/CTfxk38JP/CTfxkv8JQ/CTfxkz8JS/CTvxkz8JR/CTvxk38JQ/CTvxkv8BS/ATvwk38BQ/ATvwkz8BS/ATvwk78BR/ATvwkz8BS/AT/wk78BR/ATvwkz8BR/ATvwk78BS/AUvwkv8BS/AT/wk78BS/AT/wk38BS/AT/wk78BR/AUPwkz8BR/AUPwk78BS/AT/wFL8BN/AUPwE/8JO/AUvwFD8JM/AUvwFH8JO/AUvwE78JO/AUPwE/8JP/CUvwk38JP/CTvwFL8BQ/CTvwFL8BQ/CTvwFL8BP/CTPwFL8BR/CTvwFL8RO/AUvwFD8JQ/GTfwFL8BR/CT/wFH8BQ/CTvwFL8BS/CT/wlD8JN8S8Q/ATvEfEPwE7xLxL8BQ8R8R/ATfEvEfwFDxH8FP8S8S/AT/wFHxLw3xLxH8BP/BUvD/EvEvwFL8BQ/ATvEfEPwE/8JP/AUvwE/8BR/ATvEvEfwE/8BS/AT/EvEvwFDxL8FP/AUvwFD8JP/AUPwFH8JO8S/BUPEvEPwE/8BQ/AT/wFL8BO8R8Q/AT/wFL8BP/AUvwFDxLxL8BO8S/BUPwFL8BO/AUvwFDxL8FP8R/BT/EfEvwFD8JQ/AUvwE78BS/AUfwFL8BO/AUvwFLxL8FP/AUvwFH8BS/AT/wFL8BQ/CTvEvEvwE/xLxL8BO8S8S/CUvwE7xLxD8BQ/CUPwFL8RQ8S8R/AUvwk/8BS/AUPwk7xL8FQ8S/BT/xFL8BO/CUPEvEfEfEPwFLxLxHxLxH8BQ/AUPwFD8BS/AT/wFL8BQ/AUvEvDvwE/8BQ/AUfwFLxHxL8BP8S8S/AUfEfEvwFD8BS/AT/EvEAEvkPwFL8BS8S8Q/AUfwFD8BQ/A0vkvwk/8JS/A0vkfwFL8BS/A0vkfwVLxD8JQ/AUvEvEgEgEvEvwE/xL8FS/CUfwFHxLxDxLxL8BQ8S8QAS+SAS/CUvkfwFD8FS8Q8S8R8S/AUvEvwE/8BR/AT/EvEvEvD/wlHxL8FS8R8Q/CUPwFL8FS8R8S/BUfEvwVH8BR/AUvEfEvwFD8BS/AUvwFHxLxLxL8JS8R8S8Q/CUPwlL8BS/BUvEgEvkPxFL8RQAS/GUgEvEPwFLxH8FS8S8S/AUQEvkvwFLxIBL8LR/AEj/wlIBD8BSAS8Q/FUvwVH8BR8RAS/A0QEvkvwFL8BS/CUgEvkvwtH5IBHxL8HS/C0vwFIBL5HxIBL5L5L8DSASASAS/DUvwtL5L8JS/AUvwNL8jSAS/BUvwtL8JS/CUvEvwdL8BS/B0vwlL5IBH8NS/AUvwVLxL80S/GkgEvEvwVL8DS/EUvEvxFL8ZS/AUvxFL8XSAR/C0vwlIBL8VS/EUvwVL8NS/NkvwNLtIBH8AS/DEkvwxL8AS/G0vw9JIBL5L8FS/FUvEvxVHtL8QS7S/DEvyBL8RSAS/BEvwpL8cSAS/AUgEkvwBJL8ES/IEvwpL8IS/C0vwVL8GS8S/Ekvku0gEvxdL8ES/CEvUkkvwdJIBJL8HS/AUu0vwNL5L8DS9S/AEvwRL8TS/F0vwJIBL8ISS/D0vw1IBL8bS7S/AUkvw9L8ASS/Akfx9L8KS8S9S/AUu0vEvwRL8BS/CEvwlL5L1L8RS/H0v/ZL8cS//////cS/Ikv/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////xEQAUYcccggggkkoow0044000489EBFFDxIBLxLxJJIAF0IuFksDqC0KOQEze2WrYtzSxbNl7swvTJdLGGGZ11ZpuRfVgAsyKlAexGc3MPG0AkBTQg9aEMbmsYyf9JE7dj4Lsm2qzZRVKwbGxhSE703vWJiqB2mX+M4WrZIwi7v/GgCkCRA5Ko0hTEzI0yr4HBy7sJqR0C0X6kkoakHYtedoV7yEvN3bKk0WA3eW+kaCkUl9L0SXIXXdgKbDh8BEAfVjnSxWRWEhNc/Tpavh/LOsiY7Os9VKLKqoewEiYWQIQM0adJ0HskSzHYqvFSxCz/TKsS9jGsI4ZY8XmwWVe28OmohxK4V5xYpJIwSu1XdiYdyRAGGj/RLWSSOEznXdjptYCWbzelOnCWq0ERNl3aNS0NAhG6Ke4GN076lapjq4xm7sF1JzQTspZGDpQxZennPXLdXe0ic+rhU2zVUrycmhGKnIz98TdBFDyEoy7hWLAKTAYvBPAB8gCBEA0dWKiQAicA9IRpTy9VQwXABdgB/C9jCNzgkFrCaqthF3DCWWHcPWTImuGElLAIiBlIQwAFUA1l81KtItCi+Kky51q0rVkVWAdsMnHg3Am1fqyhCXgi9xep9WALyABMAaoDXCmQYThDIEAhSWb8WxP1lH0XXZFFmai6AMGBo6FTxaSExBZdxpL1eABXA0dSqAdEhSRAm31eibwBhANHRqwhFsEZMQWXb5sBzgNYHsAAoPQwEgegtloEa3MhZDif0q8vzEXCtWi+tNgGUQqAS4E5NGHDgxXZsWXiwA4CeFIGuA040lwnBHGDmXdgGmBhUCGAJuADCHUucIygPABIYBGyhDKHyGLEwkgBSgB9CZ7Wl2Ki/MziJ1guU8R8ic4YSyxp9Mkic4YSywAORIF6gAAYfDwYDyJuUCoxY+tNrszNYJ2b5mcq5mhytCAyw1fXmxHoo76DFX8PIA5OUGUj0VhgAzRc7dtSq0tTqfzEF5u7DA5w2DIWSX5bpBfFqmUbo+hrliBLSWc67shJtPAK4CKJjrnqDwGU4syk2r+/kpO6sAds3dgYabjSgUcGiZ2QcTCo2WraYcL3sfRHN3YL7CzQBZQitnykczNLLnxOluYKO6XZyrnKsm7L1Y3h80CgPkNW46WiUKqSjd2LyHlyszoVWqvQR+7sA4iBpAA4Ap4s5nPlQBCCBzGvUW9gduHMxbNOZ86nQwjjOLss9VKwmQ9nIqmwfgRIeNANmDeigGzRGC6LhY4sTUamWLODDuEpScOMnOfxzRoLOcqzOdTGZirMd5g3G+0hms3QXiwHOAfawzALaAWsF8RFXHFBwGYTqdIgUeQdouIRcL9yuc92c5guZ3EXtNHU31ZOdLGTBibF2a2RbupGSaFIJKznqZedGIXzJKwlm7sHLKYHEDOaKWoLXAY5jIlRWuWD9j4MU9wx93YICR9wUweu1sShwKoKLXrzN6eEXR4I2GWXdja+Mgt5NQenlMDGDKWmp/zZzC2KbmHBA+7sCfWPEwE3BbQSLTGWFNmXu2dKkyQl+XcrN3FiXcQgGtAzymH15pYSZyzt1YnC0o5WS8vj3ZerAGxC5gSwNEUCMLGKC0XMBgofEwkQIMzKPa563NpWc75irlXaMyydaDtVg2KqGasESF4UMJ5DsIZyxUVLOLCaiaRSidE1BzOZihbFpY7dhdzmMey/T0dFWM76MjYB9iIWY4IbA7FgkEajmi3kIlUzSxC7Ml2YzuY92Y9mdmKuzGZ1/GlzbNf3xYIRonYOyTFJyz0BKJBM7p77y7Od9Lib3Ksc/mHWjqucabYBNQkHWgA7ABbJLJoDRA0COALqUc5mXO7CYDfAB+phRzqVcxmc7MYq5jnOzlXMsJ3TphOTu+M5xFCsss4QsNHmhp0JynYxf+l7fLGuzJrmJZTnaYLznNMewMoTS4adQzlE5Oeyup39r+X6rDC7p/NMcvF+NFWAKUgfPUYig+U2OP58zpW1/f7qHtk3yr2Vep5z4Lz7B6Ekrkspxr9CctBq0JlrZLwu/EHGt/VmtJLKsXJv6R2lWn1YfAL/IuzRG35tT/SCnV8kTlWM1GIzL65R8ZbX0RVZrebONbL5VhWLB2oV4eSYGg4K5XC25BT/M+bofWqmPYRMVZfDRRU7sbpMe5QQV8Fl7mGWCWCyRkLGwPuVWd3pJTu5Qiba20jNHJcFbVpHG7xzi9WHoLcCI07NVpNirvJedD++THMxc1Jp0kU3UVVaLBNjeTHFEp3zWKL06Z3fy8vgvFj/1FHJHU9q9LRhFjRrw1PlJVbXzYGSJg3odHhUUO6KVKzPSh63rVgjcYi9WHdDYL+6iprnGJsThDClPLFWjMIHquntjUXp/nxa+llluc+TE3pWi0+VI1TStWFx4rFSC+cNUayXrzms+Yh8x7MxVjtLiJlr7vPfFpQwZarCskdW0I4sCXmiobHp6kzOlakuWyGkU9j3Ms5aY6a+cxpF4+olq4BJTKX8n6dRmrFQSE1jsrUIB8LlFGrlrNO7O0v8zsvjKMvOSUhnovGWIEXA81KdRrGKDCrUA+lqRcgMhuPuWg2XoS+Sz6gw5WORReJpGovNd3wXXF4NXzUwxmqjHuQhnoCvhcazqZa8ppU72Pc+MzLYrJG6zZk1vXUgqat9acjqsFsR4qmGpM81cDa56+uVWlOwuvTa0aSpq40aYJYvzRunmKsLkEOGFNR5y+v7yt0u3Y0v2WtpqK31Wi/NQjZCUlJyQ1P8nCuO7KMa+ctWNFZxerRNnKVBhxiLNVWRTYNZRM8NpOWs8fhNb53OfUQyDDbHnmjzJ05u4xm1xoPaRe2ilhAKx8oKxNMtJ/JMorqlcl4trjVEueohL5VjezWZDQ1bfVqAfRQK1/lih5Mtm6KUmegxxiMx7lYMsuAVyaUPTevks3SSkv8vbBL7FQH0SDg2iNIIEI0eXkqTdmtnTCsmHTYNK0DofMu0GOurhL9WPOoz7F4LwQ1jeHRXhY4om7dibXNa1r5VW9gxdekbOEO/7mrarD/eSHqSg3TE6TM2OAL8cK8RYSLaJn0oti1H0WY2S7WQYYZY6xmUG6YOesYOi0u2NWSL0STYnQw0F6X/JlWpNaTH2k57c1zHrVKGHGWKstM1vGpg+Ia3etyOLORmWyiOvmbDwIrUgPBNacsSw+vNT8n5fM1Y0lRtMWXrv9aLUnI9vlWbATcMpHE5U4jQTwiDpTMH9OpelqsZxJyWLnyga06V+stxHD/fnN6//EPmwJoS4Vk3CPJG71pQYYlRbWKtzTHImGIta1yk4apr56s6jPm0v6NYlMqyrVgTaA+TQYc2SqA3mS8stlO0dj2NY0vyN15OFnLmi9F/MmIfFwf25vkYfRYMQzoHUB5hVbJUOlIszE81qji7HaS82clWreW6TFPm0jX+sjGqwuEZMgP6EqMRUTy67F/Ne7fUqwvFojp6R2mKne8MtX9SszYoEjhodmEQulhulXw3NXzEv90i0Zlr16XxcQdWl/sF0QtREW+FT06l571sewvN1vE/72bD0cbYRDcgoo2T1EvOKbpLXmx8t7FZtLfdPHS/vZZtRjZ3sIrB1AGoRUteomaxa1C0u08o0w6WF5tp2lGINl69CvMSRzYzRul9d/rqxoGNWDMF5ZToKMISjUMnoUbilM7TP1F/eNyT+c1dxUw+EV+wBMyzghgBCgEN5Y0OFkDgDnAGcxAhCDmFXeQHMBI8zMlb4pj+WxYy7MsBAxCcnxbKX8Nhw5p+l7FVkO+5nqzpI22A+h4sFhAEaT8OYScTC+nS6nYhp0lgkYpmF2YpDOQ4h3f87jmYXdYuBLFB8WrSkcFDCakaOhJzt80zWdnZpEwi9jLOcfWprv5sEk6enq5zNNoBLKCwPJERMcCQNMa5Y2vEIsczVSs6pnOY5hG7OvykeNZJJrt1afLNVnNPDR0HSspEmf7HgvCWJlg8CUVBgUYGw2OFmDjhtzmsPQy3ue5xZ2cZZRmrHU5Hhkomcpuvq8xQwm4W0+Cy0mLjzNZemwUxZgXBXCiHKASFBYiPBHCQxo4TKZxUhxQMRO5zt9T2KrLszjLsywdKg0G4hO9F/IwZNgT3ngfxKjRxeHDB3sgBEiJITuDwgFSYnIJS4bjkoCz9gmEz3OYwoxjHshjO8hzFXF3X/V4Q6I3qwLMIeOBBgeYHKatqYtExNBaak5bmQxzuXdpc5jnOVYY7LK09GbC6HjPtQIIqcChArwwj5q4BPi0sWjLW3HYmTE0ZZhjGPWILnsu7AQJIVBuHAApguU/HjQoAZ2W3TmeEGMISrhjWq7sBCjiEdEgAvATyyfkawMwfs0PlDLY4XMZqWZY5/e4YMu4sTSLAggvghdOnoLBkFvmN1qZTNCppXM7l5zC9Kuu7D+QlpAToKBNlItSTB5DHKZsyVxT4I5hnVnUMYzjDLuxooG40DKBXsRhJaSZAChFzf0JrueLcUY9xdmdI4XYRMuy8WIuVHgeAQSlRly4JIeMUl8LzNLnfNgxLnrzM4jZd2AOgEQ5QCLgigL0Ese3CVwCEAM9RAOd28SKOHBeH444pvL2ZzmDjDDHuewu57BqnrsWQ8VT6MSuwGiC8kJmAgRIOECmGw/D1cu5CtZVw5iEPI4tKSwsXnOzHuzHsYYYXdSsWMmv8RBf2AU88VYHZeW78RINdTG5RfnzLXse4joYOImaLi08Vw8ENKEnlWgaQ5lEFpxK2ywm6tyRj3Zl3YOaBaQrBWSU8noMBBhGQX8po37iw59OcSQS8iZrqwRCJYeBSgT/ShJZ3FAs6j1zGmYCKLHzJhkPi7sGc1xyIIfy2VBEpgrlOllNT1q99EbuSsu7DqA1WDcNZY+jiaZQo2VP57ZeUZPe4vKsXdWA+JzBCA0Q44+cs9AIwmlrZUnQ9hC4k7/7uwCkQExAG7AIRAE8AKAACgAMoBcgbgCzASIA5QAeQMoKIAwIBfwLQGQXAowIcBzAZgBlwD0AB0gHmA7AQ4JEGgJDHB+D8CiArQAqgEwAXUCNYGYGMcFwVgrBKAuQrBmEoUB8D4LwzDIXj88dGyoycr+wYuY4YQyyCUeUKzKtUwYQ5jhhM1YBCwAcYA1gEfAGLA1g6CGBWhSEQZisHYPFlhxpSiZaXMIXMLLF5QhzCETEOdPY4UELGEI46OwhYxzMzXkYsWgCJAdBNrUh4BEiFqn+/9CQc/5L70XT4h8WEsAQ0DoZXrAAPg4JESAYs4wm40GqxN2PgCFgdLKVARQKaRFIZfjFlxogvF2GgAhAAyB9d4CLBU5FIZlRAZatRZeLCUAIUB0lYQSaBaB+fHLpKAwuYMOy9UWrSqNgMsAQYAYUEGCUEwOA4AWEWhkLhKoxxMhkL5Y5jV0RSrJll1dGvqwA+AA0gDngiABxAC8gOsBDQC5AKABDAIuBEwFPAsQLgBxgNoBDwZw/B/A2QIkApIHACkBjAZ4I8CtAqwaAkicXBWB8BSBXB8D8UBkGYSgkigXi8XEJCzDg46zZ46jplWrL1osEMBYAaQAHoSAEKASAA2olCKC4BDAAXgANwHgAD0BFAjBmFMJAPYSQYAOoBLQEqAdIBjAFfBkBlB+CSQi8GYDYBmBmAjADlBUAyhKBTAiw9D8EYClBjBgFAP4IwKoVQRYVQzD8XRGNjQRQMIuDdL5ovL4JIjRaLyoSCZ3pJHtSFg5VatKrhzRZqqN9WfYFUC80mCicKkk95QC9qCiUQ/9ziEcZL+RMtTRlxbJ0CnVcqb8SGxv4aLnaiPi5nGM3d5GGyd8j8bRQPvRIUq7tNsojYR6nJaEgjibRvRkXxd2FJOZwRcMt9fCdn0qyqxzpi7sAX8Ik4DZBvFaCXmU2sdSHXqfRYowh3YILM5WrOVOt0vU9gFjNgmAV0GRelRCcKBOlUpLL/FBe6r6v9oKnnWKujg5A/I5LrpQMnIKyZFFaBh7uwWxSjQmCL8nzfmhJfVQX+cHZQY+7sLprAfwYc1LvkXC5kcvGrMIXwS+7ticyB7C8t1IWcsXzmt86Y0uE8vdqLsl5RVyrHzd2AOsBSBAAFbB6BEDQGSAgQGiAASHQbAhUA7kIwGiCID8ESHpCEhwvD1g4FEoGIVRQKBcQhkQuYWHBwXsY4TkJCUIWMc7FHZgWUbZBVZKamwihIgSCVgtBtK4bLJ9xx1ILgr6cxVlOYx2h3cxbGMcYdVg0jr6ebcRofVgJQzrAzwpsSUzpYEcXEC3acvKRyETDndmF5V+YRy9hd1qKzYkVb7OXA8kK5ppqJxZwYk95mt9BYPCF3gkYy7sTfKA3BFSyW+UD0XForSr1sZGm7sEqqLQ3nfw8XliL08h93fONNkJ6kjv3oKgmf8t8qlBa+buwU6B/AAaA1FB/fMEgYiQsp8dvlzIUxQ906DLnWtVKbcqg2wARgxEIiBdBNOlqhXOD0TL7mry21lsLOdOnQZ82PK1NiOHmtqxGd2h3243qliFsvowwTu93YHw6OLWHP8UssOVMEYm03dsJ9oEwHWme9ZQTuO00RMECfd2zSO8GJGZmMkTIQhq8w4pnDF13YYlFDQMRk0pjpLCwhKOlWp6E50aiL502XNs016VqPOBbH/jUo1da3xzDhawQJu7AKSBiGQbwA+wA/xc1DpHhFAIwAI0ErUvCq1g9gBggB2sJXYGYlZYTYeewic0YssJyqycGXOGEssAikBCg2PA3ANgD2EMMB8hDZwvD1AmTKM6jnfOcrMzfirsDlACRAgYHAD0HYuBuAngnSEQeFbmoFJHHafGaXa+X+7sfAC/BPRT6Aoy0aDIn4gMt8aL0arTAC8CpkVQKMtGgxQnaIDL1Vb0Va1XgDQAmy9AURaCMInEBlxVQqbeRq8AF0FTI5HAUQr1atT4DBogTe/ukaiwyADACqpp0gzkH3Mhg0QGWXi41WA5QAlgIIBXgmwxFwRQCpi9wRREWY1o2scdTWL3Lsex/kyy4q7ADeBFAmQYgE+AZ7A8CKKxs1gUBQtNvG3Rl+HMfLoVphHV3FgChAipFYAnYAR4JMLGyI1A8APSASCQkBbFsUdig4AEQAIAKGNYZczscq4y6wi/ST5E5wwknaB2RKSiZLOGDGWABmBNYF4BjDZNJLO4rByLOW5aiy2c8cE5R/VZWoidaiO6ViQ16Fg40tAVA+tRp/JgzhFE06Ts3TiEWiZmkxBduoQGXdiuYYEkKLEag+EAxHCkr3+mWuIWK0RzuRuu7BMBacFoMwI4IXXmS4HfNl8/TBeJJHPkk93YOvk4aH+v5SVAwCilpfXyecFEh7HyMWXdghyghcAbQWNgZyXHAQoO5CpzC8wJRD4nOzHy9z6BUuu4VqxHSAyEkD8m9eOcOA9INQXLdPezOVXTHuMVd2AMIEZMHQC4B5KE0ZOciEkGcOybYhtb4MQfQxa6ny91KtdYhrQlNlp3Z4IosFCBLD40AnhUVpELmCQ5bFjchuTzBwg7ibtNfOJHF3YsxjLq/D/YI0TrA9hJAZoRdNdQMQKEGQm16y/YGYne4zM75riSLRfXq1m6DjoMzF409RAfzd5OTBQgwjeUmX9Uq9ZfvkvyJ13YJpRbCAB+lZ0VNODIo1vh9LzhfRbvaRsLszlfd1YDEOlofA7txv/aA0A8edl6NMYTxL1kTqJHGWXF2CyMn0GAkUhfyjgRYYqaTEccD7M+gvJiiSbuwPqGQA1hJJ0pP4OrEm+pVXmkKs7kfm7spCOAFcFh2P6RwTgyd9UzCruJs4YsVddl6sAa84WCIAV4F0qJHr6AZ9Dsw5Lu2Xud+ww7Mzi7szMzlXWT04+sjZDWgeI5sCnBwKFGlekHQ0HR7llSzSY2tnKiduWzOa5j2ZmdvmOY9z3PdYpgxEWd4ilas8SjYOZAHRYcFPWVH+uBI5y1lRxAh3YxxCTYUc50EJZn8OVYZc64rG3ER/9FgMcoWYG5QQqBusqIk5egVKqLzUFlHOYzFHznOYzu7Mx7MzMe6++rOh9aLAJnYHqgDuACxFRDKHCRwDigHXYEaVkJZjmi9gFkAlRYPu0TKjkS4oWDLMcx7nZjsQvYwcsJ0HcRiQ0u2HEJmOqwcJKCBoxVnynIckDfnZfHBNL/pxTeXC7fMlV0Of151eNPXimXq0u0goBFQqWWXpUhfQ7Grcg/5xdjtRHCtWOxSVY19Kr0P5LFw+X1YGKEFbRTq6P7Ti1Y6dNbmerN9/OX1a0ti5fKXNMeasHgFwQnAL4V/ntKoKKZDyOS/wX+cXcqyx2Hy2NGqTK7Oqp8eSWrAwBQN5jVEFPzsvOSWovFm5smWs5GxzLRWfo3lox9w1ujT4sB7Bhh4nlFk3NZ5bLmFGM0VzPzn9WLr9I6fpfNanwy8dMpc43qzoV9i0IoowbJygf0CFb1tZLm9sSYlpeLEJrKa9b5bNthSTtSUbrMVYO4Q3IIKLrqaTmO7HNQl2Qaxys8x5zOrVnwlSGhFWdLTPVl1o+d9UGZsG8TTik1jqObyrFpOnTl1zDSJhllwlkRFkvD/3sEH35ePaTS8v9gmAPx1AFNLDZYSHBu3NevrzXlctr5b9L+z3U8ZG6WlObUXFG9TeXzPsNQPmEKyyxw09o+ex68pMvW4wt1nRUZSj39ox9+phGck+JGMWwJaQWIILDobzBX25f+Zyj5LxWqns9nFU1ZUW/mYi0mDUfdaj4A7YtTKJtSWMtPFcPrHrG84cbMkcvZcN+iYqtyVnuon71KvsqJjkiiWLFk1CiWavjZVc4tO9PWuXMe7Os2l47HdTNl9Pku66zTUd6XpsVAwaBpNJlJakoVSFbntI+Cri4GoiIpZL1feHXo6veA9pE3So1p6mcgw7qadLfLDNSq21T2/czD6MxZsV1YuBxbBYTUw8tAWrn6kEFVtJuLy4w694geWl3y0YzdV8vnQCpqwSichYAvVjUqFUMkHMrUahO+ku3S+YfGdalSvdfzVXWfqa9KTE2PjU0A8TTfqWxI75eqZzCTl59tiJavdWSWbOejPtEI0uDeVKCxRaCBPpHlZUnM1Ks03KMDrprSrEvn3jak7v9tKBBBsWkPlhKUa1RfWevvlz2OMOdeSl2prWb3CzQsiJlQzVjwRudKai0F8motUcIPLVy6VWZnLzcjJpc2Hr5eFauPkatQF4fQHWuHM0mlpnD6Cimooo+H1OgvLmXJ3Gd9L5IovimR1XrmyoLk475ALZcp5XTc3MlnbIQNWsdxp0Gy9vvgeJyVJI1p/sqEcpkTXonguFkKUd+ONW2ZnU9u+82dj0ZfHzOZZVtr7yi/tmwsBYbIqKUFiRzREysW7strHFVDPInWo3iGCiS+9ec/tI5Vkir3Oj5s1Yb4e+LJKfVJ06kKVX5Y52jM/Ms9ybKDaSkioQYvv86bBvBBEyEIMBa5BxWRWVktIk/nKV3xqYzdWmRoupmJbRpd330341aY5ebBcAYkiEB5LUEYXRmKLmXSozzkMz5c/TSrHxT3Zlpx4S1St8PnfVZ2hGbC8UQEMB5CQpJ3Smjt8hvmLfRHD/bU8glJ4zQKmrliIpOptKzqsIwLonamcicFh42k153ae3S3+DDL4zP0ylGib3SlWasF0LEDzjqQawru1/42q4jbKrrw6dMaF+BjVyclzd/AgTYH5aTlIQYw7TS8o1vqlKJOqySKLgU+JbL4VY+i9VaJ8xT6331EUWJBNjQF6c9Q6DirP+g2d+c1unRmcvFjqNc/1JdpmCKLjTLZlEuurBbC8NHCltINZMP+lqvyD5XmZ1tyKNfS2IA7YucaXqLBiBbOKCpJJVRaCC0PPc5sS3S9y6YIFXOSRS1GvqiL2+YOiafEkcWBPDgiHlCcpT5T0tWyuvQUZU6HLlpRlP5erxpqKM5KSKDEkkXMpUb8M8lqwBMBIDgLQAfACGcEQNUFD0ADmgGZJliiUOYuiFwCNAHdcJtMKwqxgte5xh1gMwfKSNh3LlVMQifzReJZDBdnGaVrssB+heHiYfgxkAjSnCdgMIVihCzO+7hcWFwMzhO7L05j2MHA8jf/ec57N812kKIYgnFmlRJAYIJqDbZSW/s7vDTEyrJK6z3CRHS3OfHseQIZN0ZgwmxGTD7BOlhYTk+gtN6SijWE6+6tTnM7nbs3tqJSkMkcp9yOva5K5SITZFtC6TsLRDAXlmKQJSFcuanms3zO9rHszqjMMOtJL45aObFSYgFTVjK3otjIOX9PsFEDhg5BRAnwxOyiywRxMKCjCrlJYJD5LBIE7sQ5zIxbOe6s5hmbB2l4UCBEiWMGRYMioH4ckicMHVYTmyQoyhxdSgYhgyVkItWQUtzW75jmSxj2dxYu4iYq4u7UbjbRozVgAT4oHIC/BfG1jQ8JJPDwSoZbu5q81ay7N1WZzMtxlz4dZVVKwurUv27HMA0wKkf+hbBQCDAzAd6np5mnDgnFxaXTuXc8cVc5l3YABg7IiBiC8sf8todC8PhcPtQbl5uYOet3uhjtCvgw4w67sBC0FlACvgG8Cg006e4GBpNTtU3zWuIW0/6M5WNIxZdwrF5DIBHBgaepp0gylGxpUnNhzgrC12pqrND2KsMMVYYdd2BetC0fBEAYzUx5uigqhliBp30N+4R61Oc+mP8KsVc913YUgu4kBCAFyKepOkeBkD4h1NUnvULBVD0vPfTnZmguxxK67LxYndSQfAUHU+TbAYC8nU01b2rnvlkNe7dj+YYYi7sAdgRBuCwAbcBsEAYSQOHyEEcJirhxfjQLFhmD4FbMYxjny6ntw4XdmPY9lsjVNWLcjAaIY0wsY1VgVwE0wNkAReFstDoUiwPQikBUfFiEKC0LyFguYWgT5y+9zGDlZj2Zz3S92daVUbPsLIyKR8ImKsJK44Tx93qelTHefTX9f33VW92YXgu7OVhVxdkXFiWpIYAnqzdLlAUUt3a/t0sYyNMvY/yZq7sPxk84Pwfx9Lz8xAMhxf7d9LdLNT5zHGGaCJ2kwy7qwaFyoBsgIApIpzTlAii2dGdm6HYTi1/Z1ac5/VcqxX3dgFUTGjxsChFR3xx2BOBXE2WtuW/9hTvnci6rLuwMNE4aDkF0svTllROOPQ+bL/Ocx8wX4K1mZdgaPigGGAggb1FTxsRk2P8VTZLuu7B+B1B7A/jgMwGUAVkDECsBSBXBCg7AzBXBEBXBFg8hTBEBXBEAZgM4UwkA+gzBXBEg+gyC4UBVBmCuCKCsGQZA+AzhXCSLxQFYGYHwGEMwrBKF4oD8JAoF44fTx2w11ZeqVaiwFFADMADOAjgAvgPoEIAjoAcgAfgA1IAvoHEBph6CkAiQCsgLUAIeAIIBIgOwBUwNwH4PnB6D+BCQFYAjgC1gBrAdICtgK2BxBABVFweBWBTAcYHSBvgpwOAFOFcXi8K4KUH8KwVg+F4vIUkD63+WwkYwQGWdK+2I5MoSDhT8k/ZqsDEAD3ADxBPixwLYOgAgIAjIOgXOB1EgomQdQBKQBIxY5rCzdL+WYAHeOENO0GSFlonrpWkGEjGCAu+xnV7ClEZQoIDLAywBCQBAwM5FaQKEAQ4AR8E2wWi8XCRucAJMAIwDI1rGO8rrcEYAG0CKzM7yXZmX0EOr2MJGMEBd8oIuryhQkYuBhOiwNUASQAR4BTAlJiMBSQBHQBGwUgRkgTrCagnCUAIKAaQB1C7uljnuwPoCUAJWBdg/Yppc14nYFVgoc7MdhzOYxzJ6RxvOXikrUjS6MJwxdmr1Q18ucJnOKVnSus4ccULad2d2KOLMckF4QlNFDw4xvlVlZxCU0kcjhCUY4ikst0l/MZr/gqgCbACaBUFolQBNACVACLhSRDrtw+mwANQEWEqVe/vYDQByAysYRszLyCBhBhIxl0JBGYKMJXCA6wMYATkATjhNAYwLYOYAlwAigUCwVwd+DAwgYAFqBCwX2CZ0hmLg+oqWwMYC3Bk9mYJ3MzCmYq5jrzBrUqxhJN0IxHMPgowlcIDrCaAJ6AJ0HwJNQLhcAJiAIimvBfhW1pMAJ4CPhlVfM30zglAD3BnpI2Zlok2RSrGEkXIkEflUowkpwgOsA0QAkAAjQAcoB0AGgBIwA2wBEwA9AAxwF2Aa5UTHgkQB1wDHABVkIJ0BbQHAxweFBe0PwHaAcUAc0DoAW4FKAlwESKC8JARxaEkA5gBkyEB2gSIEaODguBjBIAdgNASgrg/hmD5KB663OXM1Z5QIKHySDGTzFPa6iOc5zswi7NPM1YkTNFI8JmrKBgC2UHB8SCcMAxBfFAYhmGQZCgTlAxE4SAyBgDMMhwThkGYZhkKBwcCQGYZhmJxOGQZhIHBMKAyE4nFA4ODjLsbKYdCP0qn/oC/Lrd8F2DCburAAOY7BUCgiVP0qMxNnJBc50jBlWnWqZsbV/sRIImyJk8ckjuL3S+S8PdnDGIu7CChqyGSlsblAp6fuZKXdloywhBIa9s+AjlNH0F6kHX3dgYJ50MCQi9ujieTtGhWnuq7qwBgXAtjgD4EihZyi0w2FAnK9eXv1WMZnSYZ3ZmYZdZ8VQzZXGmpvqwGYivgUoILiGkZQ4L4odM877wtwZ9wxdF9X+xCqubLaIBKBnKPqdxIsmrD4+4mKRpJau7DCVwEcm3Nfyh4oU36zBQPnMoYOu7CGogB7EgMJCKhMJAoEwjA+tULAui6CHCcO2Mb3NDEXYTlhMLcJhdLxwhw4LRwhw452HCEo7Mcy7DMBQQTZUBOgIYBUA3hTB+oMQEOCuOPB+B8B4YDrgqbsF7BeFRwmDMUCZzCEcFASGFHicUDhbMY8MhPiEhIcQ0irT41WkilUVM2CCABAARUAsAFcD2BTAOgCxAYQDsBcByAf4KEB+g7hIBIAMwHwcYD8GeDEKwSgZANhoeAb4fApgY8FYDWY4MQ/ISEMnFHBkLQZxQQicGcMwkh+4cD9xCwN1qDyxOUFDUCzmMKDnFvhxRjnyQvFpCLnsLQ55R5bFogo6SEcZ9LnCgI4vBd6nFgVA+CoTIQ8D2cwHgoGckIYlCbCjhO4TuCSGYMJRwSCF5YowoHkkIesbOcLS0PYxpCEwLywQhIunJMH/1y4mcPsKtbvmMatjHOfy7iJmky64l9WijFgAvgTBMoEsE2HQ1/jgvDNASVmy+nuDtjqr8v1WPYRMtSxIa9Ho2gPpjSEqItlGZKrLczOEwYucslcLmXdhH/HQbQiJIomvGxOQkLY0qy0hK5d3YJVJGQmFUp8opKB65DL0P8xg8c/3dp5siUOWl6aFZi5+kxLPou7B9ESQdAFcBRjknPa4EIHaVTU7x8ONHBcMRyrOV82o+j22BcgH00FwAqAd0O5raIQp8t29PNXOgcnUxZmWZ02GiOr2IzcadyKrDBGmkCn00+SYU1NW5iRQ6Rj7uwPk6QcEN9K9Jby+urT2KySz7uwhn00A+A7EVTO6gZMUXGpWuOEOmruxpRE8QiVTpToEouDFxHLmLY4YMgkq7s5iwggCsSEVFNSVDgpFcuYlWdxdp0/UXY+fZdeqy6mNsf3wnH0jZnxixPVp5lvcMYu7AKQAEiAHKAJ2AD9ALYAEAAZ8A1gFuB8AICAC0AkYPoC7gGRAbwCugdYFkA7wLkBaARoEeAL2BUAPABdAHYD+BGgFYD8GcBxgOIDnCqEoC7ASwCHgJSCoA5wVAFwA68LwLMBYALgDgA32AcYCsAO8EWD4A8mcNUNJyvn6rDYnyo1jjlWz94GNDGbAG1AFFAKPAiABsQMYKofACOAEcgaqZAFAW4qHgFWAZ0DmA4hQL2yWdOLBmFUCwCQD8EkPwycq4UC8JIvFwoF5TMIROQkI45jnIgsljDHEkXhwgMFHEjPYVwBRgCjgKBAfKh4AJQASPiiG+5AEUAOEAeQKY5oMVLgzAuBexxGy8JCxgm4kZ7wkCZBco4kZ7AfQAogBQoBV0StAYwAkIBIwMUje+dw7ADmAH1XK9KtP7AEhdN4SCswUcSM94oKjBNxIx1gqABQQCbgLQFvhRAN2AIqAR0BXAvSG6wwwUAgAA3AF4BnE+FrmOcwTYWh+A6xMOYhcwoWcwpnZ2YUcYY68JCDG5HFHEjPeERYwTcSMbYtAE+AJOCGKlBwhANKARUIyzDs1xQqAGQAua3ITvU7tZgHNnS/z4vCIqXobcSM94mVMDbiRfsFsAT8Ak8JzcgJgDSgHnIWmFlAAyQFzdSvzDADmMOey8IiqKsE3Ei/eCCVME3EjPYCLgCgAE0AC3AAAnB4CQAEWAI7AgonYQLEzhaA1QDSALwD8Jli3MYWw5yEMwLshHJIcxzHZlOzsxzHF3WiOBtMRVFCxIxtyNu6ssdWgyz2AhQAoYBPwCaQURBCgCSgElA95uXl0KAA6ADvrWoRQ0sBdsvCQsYJuJGe8TKmCbiRjhAmwAYgDTAFGAVoAtQFMD0BSACTgEigVgRWh+GKAvBRAC6ABogLYA4QSIZCXFZzg9A2AU4HECRBGAjwKsJQnZqIQ+B+B/CsGYSgkidhYXh8LxwTlHO0hcK/WjE3Ei6uiZU2NSJNxIz2AJWAHmBFgBEABDAArgA5wBsgFOAb4HKBIQG2BGwF2AH2AXIKgDpA0AYAN8B0gWoC1AD7gwgJWCMA2wEpAuQIqDMLw+AqAI4COAdwFwAEoAX0GgFEBHQR7mAWwHGAroPYHWwB1h8BwgJICLAuADkgdQXDXJslfV769EftZtLPOGkS8P/IvVgFvETaBDCdFBI5o20PBa3JZyyulc4ce19WpUUk+LJm6D7AeoqaaiBlHLOOrODoJIoyjZ3ySyk4h5lhcckjdmXdg5isQ0CDDaB4npUFovE4liafO+KS53+5HF3YPlNG8AWES0Fq66AtYVSZlqy9hT5oHey7qwMAtKiyZyxFmKKAulutNKfoncXC1XkdXdgIEgjwNsDPb2QasTAUIVYb6a+s3gw4cc9mh852+ZdxbNUBmBOG9DQ1FwPCBzYpuWhPWUl/93YEAJnBLAAlAxFipcpoHgjHOUQiXuhwmCqJ/qYxV2nSSsuVfFjyqDSKLAzwJgaByAUCBLCDFGEOEzhyUJWxqDt8zRuXY5zO5irDDrh5puq6f0sbYE4CwoInDgkWNLSQE4mJiVjeuf2sHCjBxi91WKsZmEcWXqzVYscY5NYlNSGl/lQrhI/QyD5y57hBWS1d2FY5Q44FFpXM8fB7COOLiY04tijCF1GWPdml2CAzMurAAI7SwbB27oSe1QBnC8o163+HMc4pmAdztV3FiUmnImBDHJTGPFoIsPEMPzK9VccCiLnSZguy7tMSOC8IA6W5cnoEOd1Est7lsZnb5plmm7tg/qANWAyBbQqnHhyI0BzNp807eHDngw6szRd2Ac4WnAwAJ2EqqEvDpQhEznHrp2YgUw5irKc4ic/mWKsc9lsNyK7FiOlSSKLAnAjgS5ATOIQuHGrxYrhanTZznKdzoc3fM+Zpe4iYzMe5j2X0UYVq5GTafUWEsEGGANyWEp7VhfznFmp4MFW9pDMRvmPZTsz6GOLszGF2Wb3xeGYRqwkgFQNBkDwcJ8sWDYeaxp4YrQpU9jnZzNyXmWWj94uTsd7AJiBgB1kAwQCYg5KEwvIAxCgBGQFvDALypYq7C2BaEgCxABkLCwo5mrDjBxhQPRQ4ccxjHOc4hznsYOWFANGpiYTFJlflhCLXEdOYJ5oYFJJasayJxCW6XcueUHIjvZmKuFu+ku7Nf5zs57NFMzH/FbBQIYLQWUWhpqPRSy5yHLz2O+8EVMvt01Jo6YkYQ6zZfHxoHbFg9TBpUss1F09hXujvh7VZ5Ix7ba2TT3ImWzVzPzV6LCoJVEmIlWINbpTnqZD5DKPXpztM1aU+lymdKv5FL4tdTm9f+jTJL7D1QTdFyfgmgP5Ot6U1ILbJiGwqzciq80/vqtGq8NJ6lZrRYJoOgs8aVB5iGQVnIOXl8imVWXxSa+X/VoM+8e3R3rJZsHETDZB+PhDFS9xpLQ1Wc5fj5z2aVewidZq5ajufxA5HBir6dH6lprr72E0SZRaQykyDaTTyiUz9T60P+gxE2NykhuuvP35dZn2mjKhq6qVZsOgvPSHVCelB0jTs1PfvWgZbaCzRCTTP31TLQgatvzXL+h/qbDoD1/nDzDoUQVWe2W5z2mPRib3iJ6S3+dAKmr0UrKNh8JHAshgplOto+m5ZOm/UvcvW72F/ptqSMjX37/vpBVRaB2apMwrBJV7saT5xBSCTEJe2mrhRvMrf31qM1cJGmxpSbDRh7SWlv9K9FpjIXn6sNKcbhvVWtRi5zSLjFlopSjWrfTZohTouuxaWCCMzp+61GzlqnMe1/Lr0l3X/M6OapO5mIi8TbztDV7oEfsOmEOGcuCZC3iqMtfSlb+X+hrHKzcJOyM5suf7g4RY79BrM2TLVZsqJ3LGxs0aiePDZ66zHVo0yXdlmKvDON7ljPVlWVuuUfRqCXkiqw1ETA0SbIQZ0j2mdKb4L9j400X95FfNmRCrV1PNR3qLFgjIYATISprQyhPy7FhvfL9NmXs5E60pbKR/pWX0IMWaibp98mgotEalPSlP3SQ/lrYU33Vkx2XNUk+fT/JeFautBr6NL1YygPZAgT/gbg6KiIdD5asxRmSNliH7j3OVn6VZtsxS9NuC4sN8VTwx+PatWiamK6d39VsWaaogq1n0kjV3AycGpzEc5kt0aX0+bKlhxctPUY7G/Qt5UbbOauDHi8PIaN6bl6gO6aviNsaNNS0iXWq6RICDuSA9FHNTnTLXSvSRSv5yrvZqe7+gtrbph660tdIwqxUC+HQ8Fna5MRkznwpT2Ytp8l2+JzNBFVoy18bvWS+6UKHG6lx3WDWAwg2Fc9JYdE1G6cpvieX5lpd24Hay0ggta+pSYSQXm1uYd/Ol1ohIDYLwsXKLiwrUSzOtuleHO+H1K+rUvm090GQ+ty/My+LO0NTfCsktWQBkgvQ7FB+eot7kMhm7tzZdpMTVjqQhk49Pl/cjKKPauC8F6saAnSwqkLx/iQ5NZOspkHQ9uovOmjFCBF6XcLFoxL6MSZki91SCKWjqyY4gzYRgYRVSEoj5RSUlkObp7Zh7PqL0X9wcVo5/Qdql26v1Pm+ieb3mtlWbCGGNEINwUSgrN5YbHFGLG5l80tehVe5FVvhRRy0lYnQEDFr/GpyS1aaB3RYRQJ0F5cJJOHHS3fKLWVLNLwRufFyehvjankjboeUxurclixQGIlYNoDIiOQk6U9ObKGj9/MN0P9xKEoPOgjq0UU+k/tqwPYLZ7EDjigiQJy1TU7oPhaq3x3XEz5acaudLVfaSPR6/X712JRMKmpu6i0KJ9a8Ty0qzXwtWCKNVyNDsIpzPevqyZh86CSL6U42f4f5sGITHBo0mjSNdBJJcpfL3owy4WdloPrNiWmJI4uP8l4VnebAPoGKFEaUFLlBvu3pKRzTMKffMW/q0+mTNwdq9TTSSbNSRiYecSVFhJA/BDQWelIQsnR0S2llWtpra3zH9296T+Xkkqrjt1PN+kil8WAJeaNAuAA/gELjZSSokSwA2wBnFDpExR33XgEaAkedm8w5VmYxzjDjDLAZJ+6Qug1bMueOQ+jPxCIC30RxYApxY4QisUM3LZzhwXujSxzWZjHChbs52nMW7UWZmMa2WunFeyfDHZgcB0OoAlmFCzhc8qxxApisrEs8owuxmdLqpzrBXGjUUOlMsfL5fD+/2m6pdBzc5/f3967C8PoSFWIBssF7lypWaNiwmUzmbqw9pdttCC87LHVtkzS99Fnljkvh2aJG2E0OVjq0xSP4Iq4H0HH9gkSX3HxmaKpV2cYouyzkK0eTs58mG3QarqC7LAUQMTyYGIFVNMaQSUIBwIyz0AwH6YHQuywkDi2MdKrGVoLuMyq6wTHyIUCHQZYMGTYE9FSB/HIRMuGDvYLgE8Ig5KgfBMoC8xhCI84sKz1uzI9OlmY9m6rmZuYq4uwuxmZeSmH/3MyjohGbAtAQRUF40IxQqdLsVChQt+SV6+wTQ+Xy7Mhmmx9GEUo0WI50nciqweiFY4BjC4NqX5UCQBXBSnwtLTKDQ+xYcY9rs57nYXSzOVcqy7sCX5MTAH6g0ehQm0MAZReQqPSn4/kJNxRf3gicxVjDDiJmuwGQgNCYAC0BPg2GibfhaUWyN9JOVF4sz6dL3aFSujOJWF2ay5tkBMTIASooQNTK6UAZQY1qwYcLxcWI+IMxd2G0CI4CmD9Rp/y0grBighOnOzokGHfTmMM9ogsu7A0ibCgkAb4kSPS/Jgi16W5mlvxYPReLc7uLsVcMIu6sF2BDIfAhkWQ1KZFgeMlqWlB/xRVbjFZz5JJu7AOkC8HQuAywAIxUC2GOTYkBSh8GIckCEM5XELANIXuw4xxZzNOYJhawhcZZ1WKstlaI+qw4nIpM0mJGLasCsBhKhYLwQDRWEML2MDIoOEAnasfe7kGHHOc5zGZzMx7JVYXdFpovOq2HalDtReLBkhgygK24bUpfPnes18b6aVYXcr4uLiwPzFtFQFKUzPJpAD45yFT5nTU5lPcILDNGWXdgGoyEhuEA6ZSxrQTomHG0k+XyUfLcyFXPYSu0MurqwGpxssBpAUoTFyp+kEcPmTGpffJQoLZ+5iFXSZddxYHyTyYEwBNj7UEjg0GwNcKg3qQ715ZCUDFX9WLuwriNoXyCET6EpD5UIuhcS3LXlsF4uZyXrCBZdXVg9m9wCDBImEJa0ImE8s3rzmQ1j4qrsvFu7hcAygQwNaUxm4Tyg7Sc/vYyGd8kbLOV9gklV2CBSSOAfwE4I4Wi1PhTHMpOnLzEGPdJauXdN9UZq1qqTF4qPIhyGI8ikdkmg8yQtb1V5Y5qdBJF3Y+ajhoELkyx/a1AhFqSW+nNa5xbfVd2J2QiCIgUpJykckD1NTll+8pp0kXuy8WQk1phNCRxlrWzKjtNLOV5f73dgoCY2PB8A23NQqExGBphQaTen0HsLA0B/iGXMl7HZ2E5TMzs5zNLsOOZnEOcXRm+qbYpQgmLhcobJ1ZATrWRTuwvJJ76qNrVmwhZKQguUhJ/QwYVMZb6/lhC4Yxd2gtq2CIro+OTUcPr0v9ZecOK0SRd2sn5BdCgTLtYHmLTCVP/XD4JJf13dgFRCKNAtC8KJZZ0otaLsd9T5etkudOnl+qQktWkjqibPnT239wtCCB9X9MpNDks7l5fOp8US1d2NoN4pHD2zomRIDrqf3yrLhAm7sN808MRQ35sIyGJCh0jNMD6fCySXXdgYZop44B+721VFHxJitDGcjlX3dWArIYDQ+DsDEGyinGz1AYVn5N/7aw4LRZL4fD2F1vcXZbFZqy0PbNGZsJM8cAYgMBP9KGoBkEgnoaY+DMTsfyR1+n/2B4fB02LUuFgJYGD1T4WLBxjfReHlBNd2Cytp4MAvOyW/HGC5b5nU+hwPWOGPu71UmBLhwO6nyTBQhiWO5ecsWzyWH+7sIwDcAQcRhQA2AM5gIIfRCqCgFwmD4HQN2h6HmHCwuKC5rMQsHGFmMHFSF1PY9j/emLxsWBHw8DMBqi4C0DICcByEwRATQGkcD+FYWBJ0h+LyEgBnCSJ2Bm4KIuFxYTC0JRQo4KgtLDjAyIQ+KBWzhxgfYMsGbhQL3TMZq5tyOGV/xYH8ECPFlB8oEEFgcbO+rkxY1ahDLuW0OzGPZDJzHuzmMzC7M5lo1BqtWbNWAkwHyhMCND8KaS3DeFxBIRia1F1LZwSGdbtRG4XMYRsseR1fRYkNeuvYJRTrQhcqIPUY5zZy3zBOnK/eDJQTMJHMu7BcrQNB4LJ71oMYJhvytX4oUosQ5ZG7su7fyAPBIOLSlLFQ9kglLLn7lHFv3xRFTvd2LBTpCIQorU7ccDpxbPk4y4YQ9nu7FgLgyWKA4gu6d0AcBOHwYT9RgWidzNyNmcSzcPi+bkZo2wCxgT5CCEAAEOKC0IZYTFkhWQkDiZAvLcv0wozN8mJdmerajke+LGp0naLAlsfgJQVFubloLEwuXv91XC3MYxZJMuu7C4bHhsSIEKC6w874sgh53bmPZK3yZdqaSe7sIS0BwVrHQ2mdMlCxQsOLauS0MIfnQte72dzHr+YZjMu7IAxU69wvKjSQiUnLcxyeYWPzNOYWYtyrlWQ7MVcx2cwwy7vgIQEhQHpwPUODloOLvg5OZiEcQCKws5r3MzOUY5V2a7Q510KUdOm6QmG5uqyEGIXDwl4kYxBQepTFednMh65exmmo7+5z/mMVc7Tdq0rFhYKCyw94RCARndRYMDnFiieW5nZ19zl+VWPcx7HMMuzLu2gN4Bth0DcJSwJYBsAVoePKDhCQtDsCqBmIaLZxZ2d3YsEh2c52aXcq69EXjTbFgDkAArKA6C9ZMBugWAkTWQkKz+UAaYIgSZlZz5zMUDJji9WaabqupjRVgfQERArAJeA5QCEDQBPidPBFyjEgjBHHBOgvuDwxQmYwuy2zO6sWuHzYRgW2hJBkD0NwKAKIPIIUVDgPInCcJCoZBWB5BfooWHMQ4cLMwYi8ppLDm/w4QquHM52Y57ro9aPyVLjeAD2RF0dNffS/gHtiwKMCCAKRIEIB/WwCIARASFmgNUEUQ4WCUDgA3hIHRUTuB8B7cJihYhKA+McWKDjg8Frig45zmDjhcLXMzHEJDnGmxkbiwbwIQBEXDQO4LRYDkAVAN5QEgUV5grAUsFOV3ZiomIZ1LcD4/vjOzmZhf3RsUrV2CZHCwGMBlhLDoDLCeFUHohFxCGRYhFoPAKAKgUxaQy8oOPcQi8XkJZ2YU0se5znsiWF2WacdKps3T6VqyABDQEGBrSDhAPAGYCFBv42LSFDyLwjjgt05ji7sQsdvL5uDTb0WAMQBcAjQkA3BRCgFwFKBQiZQMAq8sJxaJwZQYSbhI6ha6t8WKCeHZzM2WDhhjMxlr00bGibFR6O/fy9WA0Tg5EzBG0XHjbpcuVz3MdyuJslnZLjMDF0X9JebEMUarVgWwkXwQ4E7ly+CFwtIENU6Yaxwudp5JLLaqlVjcaD5sPhYtwpLN/pORYDyLyHf985gnZBQpzDMxmLOMuGLrsOBW4sFoIYIa1Ep5CE4WB0pOqW6WZ2YUJfnPcCpddgPpxygD5BFhCPUy0hJhY3zv60rHAilG/l2OVZJl11dWLVB4NASgZCdopT5xYJAoKJ7yq1pD84jnvdN3YAAw0mgAKgBBisNalhKEgXidk5b5Qd/mL5Kzkjpu4uUnMAKeBNjyTk4PoPQ+KKJJPa+XSx9clq7sB7CaQogFlB5CKMqKTBUGgFIJJH2ec6cJxO4PMuTPZimdmWcr5tONSDYMzVphJIQ8CAAK6mNEzpaLRcGIkQOk9iEtHCwURNL1w57nMczOhmc9yrr9aI9jJ1dq7CQgfBYN1JicumuSQiN4lBbitePpViHzcXFggT0SxYBhrhvpMsCiEzd0lO/rZpVYYdOjmWK1V3YGMkeGjQ/QNT+SIQewqkKrd51BiwoOE1YVnMxZqrDHu6sCmEdCIWA7rx7TmMBCC8SMfHnKfCxjHd9F3GXGeROuLiwWhqZCGAV8UzPxyg4HwSJQ8989weC9kPkjLSq4Yuey7B6EsgsgQEeDWUOj8EUs6Kf916QxJIV83dW0VpoDgMgeNXCKgYhQ6CfmVUGZzCFjc0ilxLF3YB2QlA7h4BghKIQCotQWLUhI7IRzqqOOOa5z+9xlzCJhd1k0TdNG+xad+kvHGIsArY0HwQwXhUJgTJPDeCH/2NSIM6CErmOwtbnKuY9zmZj2GHMtpxdGbWbzTn+wD8c1iixI41RIWJqNEeEZRQogVWsh3diFzfnOjFN+Ycqy6fFjNY2wiByeJA4wjFfHyxAtjxwST2ua4TS6mLdTFaLsrOcZ7DDriNVx31oqwCYwchYKwATADPATvKFGBECOBFgJCH4nFqGdiEsQhTAa4CThiLmEK87M44OMBjE7hxmYxzHEJDnOcXYLlRopRes5wwhlm6M5MiYwYd1g+hu2R4VISupWg1pdCetPuidU8vStF3WKWtlJ5oK2Lk4+pM0B21YVTR5R1NG1jkJPblF70oVl8l2TaQ6kO6KXpgYe4OOlX/eyzcVU+cO7lljbmZaFPQSLue4xKsvY60FMl8akq2I5H7TP0xXWquwMQaCDJQepJa29/atiaG/XlyrL+r7OqfL/IKmLHTajvn+SKPYUmAsz6KtKFO1NeUnnCSKyS+rUmYt574/Wt/Msv4dVNzWvgz7D3HMISbCYlXPLKqKMZpXCHzt3uI1xdSeclOlej8v4tJqg7D+3ci9hODAgRKpJHDjue3dfX6WgtDSrDjNPZaMpdJeNOoYy+THECr0QbH1ewmiZRaYbKIE/I1H73KqcsYdmyYYXllqZpsqIny+dSvVolhWtNrx0UvJVYchExqeOQEUnIKLaqgdltzfacpc3QtlTDWPp8l22tF9VXbq8uJZssF5MGsfFh8vKwOZmon8tr3aFWkTnxos847o/f5tPY+TEvm6STl9TGWryKvY8B/ExX8qkJBrNd1ZaNw/6S8+TFWIRCg16SKFjrSq3wc72EwUCcQykicOCM/LfSkdepvfy8XIHhhu6RrGW1wrS69yvsGsTAexG4II3gWRFuV7z3rzdGl/3m04GkE2SaeyM0xQxgzVoHJ6Wpmtc9ZmqL1YOhSUAWx6RGwtUisqxDNQa35j+q4w6bDWIQOfM9/67Ok5sauuSSLBrE4qXxE5hOXcoN9bcn3tbPYrBFV9BTiyFJmcwv3F6JFiBNjPNkRZY6r7FIYskLWUoI1pS9R2iTqnr5dn/p7tWqx3ykK5noF5rvXFyb1s70i/sqgWOCDqOJpYrJ9LP0PdVWPKKLOX4Z9yThAxazjka5ubcBgHUsos0mTSIFNMlT1zGnrZqe3cu33PKoranmParJJJfmaIqusyG6epomwSoRT+BKji0UnNWWLKzJeJp9aeR0qy5Nyye6atdxJJmL9bp6jlY0ElWB5GlhoJjlr5stHKzC00q2dKs72cnXPny1WVW2iCvWrHcjkxFitY6z0mnp55+6Du0b3UnmO9heNFg0/S9L6XyZW+rGZxv3NV98QrONw8atFpPs6nKjeXUmJIvqvcv4VkxU3jX0RVaYLWbpa1MeRQW1dUNtXpdJnmXWYhu9EU2bESbR0Raxw5IaUH5S/CxrfS56ELy1y3M03kjTZ6Reb0Pq2BiuRkgG18mxfXX06e7HCCzTaztKKZy9MzY799FdX2eJAipHjYaItOH1oOfXSn5a/pMwq681lTP3nvq+FhWUdMoPqxCtoaDPWFn45O70GoJP7dBF2Zkkbr7qbGONegR+BAi8fC46KL22UgJi4OGiyDR89T6JH1r0zJenuzBg5VlrUSNfIpj8xDhjIg9Wb560npIVpgwwY/cYxYjEQkxYt53ERCLWdvUZ9yjeJX0X5d2YSOuWnZrdE+G8kj5l9aRp09FqyKLDALjksxKloordpV61Wvl9Z1r1IxHov7+hWLBeCKdSDEj/GOzpUWtb4esv50USezcaifvN6Kj2wpkFtiMeqoxf+jVEL7+/yXi+lEnfSYqCWrkZyTZiwhhEDpBI40ROGqY9pVcLzXNf3z1yt7GabNPUmnntfKvfFg0pnc2skt/Vh9WBNIDyTly4cKwcd11+35i18z6uKT/o1q/pJIGE3oQnQitr+SdWrBCEA2nz0I8rw03IZenTLTLZEBlz1wnGOLxfOaac9KwYSh1Fho2ZlU5c1EvjQvdVwwi6RN1Wbq0WAJYUFJAAY0AhMLyjx5zQFkATAWqdY5KmXJQBGAF1KMbnZzCzGPIXZzGKuewwxlgMlI44mHjUurRCGJduguwPC61Zoj6sl4Vb7ANbKbQeQksOXGXgzB8++KMa2fIeAz6IxCqWZP3+7GPYW0rc5/HClgm+HYhCwog6JLKCZbmCNfEgs/QZmqrzXucq4vVOeyycMpJKjnzLle/zZaVIy5330qy9fsckbckG6JM8hUcK2SeQsafmrQdq3+KfDmdCsl3EjLb0jsvJaZlas0IFP9iE3ftjen9X6pfBHL5sLQWhrHELVuW1jBGQqNWpmNazQr3ld2OzjLMy1FO+ZqX/6LGVzobjfD53sCChHGgigPwfCbgnQoVDeQkD/EpAQtKDmEuDEcfXbmZjHMLsLuztRhz2B8jmhPIIVhVgwZNghF6QPol+6tZwwd7BDh5hcHWGyw0l0hr4bGw3Juni1z3dmZijM5mKOYzOY5jnZzDLs6+82rX3/RVgAOAtlVioTqSj1nHkyyi0MpGagUxQcYzdhdjt9SriRzrUVSsIMPPsDRc5EHIDSWzyfpA/AhwkoKUThzoxCWExC7dvztCompVxhxG7XYCaBMNEoDFB5nHrUaeJAkAxE9L57muqWul8kTJJIu7yDgXQC6g7yuUBHyHMcnlz2rlbhcJ2Tq/VcrOY9yriRll4svNg8zwuCwpKQlOXlgxAUi3tf984TlhcMXQ9xlzDDruwa0E8Ag5APnDcNwcg/OYTQ300wmUCQJ5ncw58li7DHu7A3l0OB4A2RJCC01iQEMGJT9JvfL+WXmQRMcYddXVgSztIAo4SElrPQobB1axRfL/OX8zsMM7H0STd2AsTB80VAIqHEwUUYoHoKMGDtIXtp0vCSLlsmX09z3OJPaBuR3sgfCKFEVWAxwuGjQSjEzybWFcEfLlqC8t7GMLwvMex/c19KsMutSHrtkRhTYH5MeQCGK3eUDksv/ytb4n6fm78vyKLuLBkG2j4OwDTGsgtppCDyWH8xBerLzsOaOv0rJeCNzruwTJVoqPBQuOzJxABnh8WOyHLsE75jOL92dTi7DEF3Z13YADJ6YLAKICeJj0rpISIB8pmpMzOhiEUM1MYqx851Oe5wgs1xZp7iYBViAsXgMAIEW7W4/N56yEcKOeyfJlj2KuYSOu7AT0FsUjQH0GcVM8ygVEot0fTneXh+Hb6jvcXZ87OBUsq6sOx6hUAfYUBOgl5cwIomLTpjdvzGDmpXl3K98Gau7AKuIkAogNAF1g8n0jhwWi0S9sqKrezOY90+zlfYNUal1FggwvJjIGYJpGRtJ4kWLiFanXp80UHHd/fFpU+bAk5enN9tQgC9/kl0hIO4bzNF/1jjtH5LF3Yd4dPCcJxw1keRwTCYpktSsugczmkrvd2JkOaAyiaR0ytPB+4Vt30epWqyW3ZeLTEaTQbQJjJ5Y1TCEtqVh85xTOmbuwqLPOCcAhyMz1NID7D1kNO+lWQRYPerQMWEVWXqLp9WLUFr4UGnVEHUTYzfw+lZm+qjZys2Fy5gIodJ0oudIrDFa4qVfGKC7Nu4tAmmoUCEFyxp3H5Euhc6t6bLl75pLLLux8MA3o9qQQhFBBnFGFSASM+7lzTJYQ5rC8uY6Zokm7sShkVxslmIIx3aOpPhi252mWKs73S9i2XVXog2w4A+CsXNBbEImNQHzgwZ2NzazK5A5zWuzM5VzGPlmcqy7sNAipFApAfQWh5emkwxFy3O8+SkuLQQ6mZ1PZqZnMJPd2DcNpJgfRMdMpQ5AqLhxRDfRkHaRx2lxG4o27sHiZwQhIavN8lCrBxr26NXzNL+SMu6sCFgUJABliEGA0TCcXEJVnoTIFhKUcQYo0sWZTMWzI0MZWbSrnsfDrGkTY3yNlTsl12C4FxslCYlQ+SkmowRz/O70BwcKFJJYY9ll6s2HxosHRsoOG1N4eeHXT3bKsQxY4zcli7ttFBsgB4E6SXW7OFxZknQ9eYHY5vOaRuZqI/F3ZSR2AXw9hJKe1oRAYA6QOSfPkqOFmMLEjGDBzLuxOw40Wg7iaKXGFo4HgjQnSr2v5Cwjndd3YA3Q2oDqAxgLMLy3KkIYBgChCAFqxOemV44sWh4AzxwccQ4czszFswJDGZ2ZnPZDHuYqw5Vp5FVj8PQStABlAUonDnHGgygiSBA+onJFAQYSIY5ZherCdjiOL3q8MnGoqzYMEgvkwisCIJgvEoLgLp0T1iYTDkjmW3fOc34o9m7naK1ZheFWOukjFXLTpN0xFwKBoWitiIchOYJBGNSxbsUY0hKuYUVYTYv5jNJlxZ2c+WGGXh028KTrKlhsUlThEENCROEUowsODi+Vxbywt38qWex7iFyrnOMOMMvDpt4UzaChNAEkOaETpQE8NYJmzPxZjHMlhZvb/mdztPdmKsY5zryUXSk2sqIwta3syOQUWw5QmPysqxuZKtaXGHbtfTMxX3krykWkWJ0PjY/lB9klG5yxtjmxLeZ7u5ztN5K8peAwePnJMH/nIf79BNrsuiOM696vJ++FDBofI03L7DWy3E8dpZ6l9TuxWXEbr3RvCn20HDqNWmn57VtzV9WctpmdF71eS5iroHCu9FEU+qIvd73wL0dRhVvJPd5G0gnI8dyNJaqIqu9VrF3fL/q0vqLvI3woBo5InSiW+EXeelNZboWYZnS92YZZceos1vNtoHkn04qS0SfkJQ30wzytisr7BAY694uGzZYUZQG5otkqxxRxAwsWQUTy3LXqjOWZd3aC7LhGLjyiXqx4CaJlQ6DpMppCMEYhX0GISphdyjMWktMKu1cu26+RfVzpNN0b2E4MjxIDELBKIw2wdJCzsdB1DffNZbnsKv+jOED2+LhGaViwPwcnicCDIoyk1RweAWAIsLyHSx6DBYUCuD6xbHw+M544TY57nZjHMVZnWXRuwdAXBFhaFRWJ+CLhbS2Q3uXqFHYQ52pWcwhyyRlXdkMTxcIlDjVN2iccb26H09ks0VN1dg6SggDgDtumpMqBu0tOid4lhCvOZJJP93VgC/BgVFxYKwmEQ3MsahIdJ5KdyrNJNguzWaJVYrBK60DcidqsB4xqb5sA/gMgFsRA9MBiSWNLzD8lXPn5cOLNdLa0eN/DmR1WKs0++MvN1WalMN02AWZBEFsJQMQq6R+PEwIQcCd2xpfDeOOF+gldBJV9X+0I0LmwnDzjhsIgkxRuRUE0t6FZ1OxYPCFwtfyKJawkm7sBgCVguA0BwSStJrAQAkEwYQuHtZDqe5z+Ydqc3Ou4sBOASqJoKBQOnIJTJQJAPeEmX6b5LEJOQYRydJf/FizFWGIu7AYgEsUAxABaAZAyG83HHB+GQnbLX0TWOCjFGFncyzMZzLLuFasCby8oAbAOzkEtAegnSET5rUKX1Hud3aH0/vohgkYZdd32E+BQIHcaUlETA8h5OnVM5B8sLwXkw7QILLuwJ4SQHIRjwjuWfR4eC4KgSHH6lewPgkccezUX73OVZd6NRuNtwFFQ8BCASCiTG9qwfQyEqnG63WxwoF+Lai2h8ZjMUXnGGac4u60ajL9rGYRHkCL2C8xyAlUU5SH9m7Z639xdysqxJehBZcXYDGHDR8AUkBpiZqBswWBQy7Sdq3Q7GsLyX5fklXdhSdi3WlSH7fg8Depms3O4eg9di1kXcxhl13VgTiDgjg2kDAbGjZzSzRwIbVNOZyrRcWLC4tutxmcxjC7syYcXdd2WYVKAUYFAQnoIcqGQO4fZvlaq8UD6e58q0XcSxd2BqBeGrQTwjBwEp+TYQggAdVJatdN+nBjxbKsl5YU/cXc9jHGGXdWMpLKgTRURHhtUKFGBgLUmpS+mvKlmZzHOInFGGHP7LuwBqwxOBxAqQKcDOQlRQsTE44Jk4JtjS50vY5lcvLnZncYdbEX1jbBrnUbKVhKCUCYBJhfizAJwE0HrizsgwcHAxFotLLVZmP7GPcrL3PdaSUasbHuZrSrNgyAASAQPuSBtEYFKHq+1vSY0KEsFD50yxVwvIWRHzJI3OImX01qxvcnjsF4sBhAI+AoBoVcH4eCsGQI/TY5hxMWBSoOypNhDl5svDJhCwvL3PdnWi47Tps0aSyW9gE1gFkDgBoAAagBXlRaFcSAng3BOgcAEgZwzEwRHCbAwkwzBoABUcwXyVcQucWYH7g/LCZjxOOZmCS57iHOzBwXNyRrIiTDhiy8vHI6tVgZ44PDQbkCQ00m07lamlr+YLc2V7/T1WOcZY60nwl8aIPuKnGxvYOWOc3nimWlC27zh/M681Qv81arLw7CSOOp62mKtE3HP8PbNhRKHSPJ9qKkkCC/pdLevNfy7ZY+HQwkdfia1bvhswr7Nppp2NmtSDerHf9Ngnz80EkmkKYx1Fmb6YSLuY+HZkl5ey5rUlORfGbJLV9U2jM+wcBo8Zntx3SnuUKT99NTH9iHwadqSf9P7CWtNjptZGxetA8SHZJNRbG/L7UG5nQM1uqwkdaXjMQp9aeRxZ8alOrL5kvRerBKjgrX6THAnIEK0ny4RiulrdCzMGK5EzMs2E4p63ZpmfaKK6V6GmyFBvG5RRFw0UUOnx2UxbpV74sZb5Ok3uhdGI03R4z2tNOQpunq1qsN8meKXHDxZDima+PbymXO8F1wtWrNH2m7z0oJJGM3ho6H9/0WoTJlBaPrQDBrCw/DKLKShkF/Vqbm8xUmXXKelqWhmnvjUXm+IZNN1Q3cl9hMEZ7A2FSEPXSiWUjNnfdqvbmWIdBw9zTFDGrSeidFh0CycsQua2mtNRy1ry50te7mHGJuDYOn6ryORsVCT0IZG02sTdqpMbbznthrDMGORRdPbNL+X2y/rMz5GPvQjL6mqierVoDZpXvH1zjv5rr5fuhWNNnJpNboRXGj2icbMvirFrA3krJAJ01E0jlPhWJnVO9Lkwybbmy3tY3VRdzLXS6PxyaCrVVusr0g0HDnDQnUd26lqS1rGfUYh/V9ohokidPlCiWLNGjZ9bqRahYRHNSJiuHCUqirLBWhWkjlzC83hVJzzm1S+ZbeYkk/rf9JibNGiE3rphNhYby47ZXp+OI+q4lZcDw9NTj4zlmZuTxv09N61DFewlgfhEHHQEQbS4RrPXyzFsbLJcY87mWW17kscpvJerk2DlTrgMRzBcQHhcF8lFPVMhrTs3uzH1Nfl/fXMr61zo/GM3SvyOq5QH01qTXasg6H89QplrzWVpy3yryKrPb+d8j3t0GItKTZ82wFxohaVbIQXmkCGc0ot37O4v8zdVlnzjcp9KvhWb9RWXOpWLEQlUJhCKrLL05bFE1/fV5lWswjZaG5yDZbfxqPebZMcPPC8c64pcyuD8e5Wa3MeS7n1ZtamSlL4fJf2jD0tFlSiY4sWEOKH5rUGMYgzvlrdD61XUtWo0e86dLNBmWkcGYuMc06V7kVGKmxwF0L0n8VCbBCU725Riny2tL9WXssZOXBuRyEzZtJelW3IlGR/7jguOhJdevnM75MTmvh/vInPo7ROq4+h8debNhBEzTW6SAWsKefHWtn0sdJfxpVdJEy0Tn09J2Qgi75um5Ko0s1aJ0WTYpJo0g0RrUG4fSyo41bchMQXcxz3adL41WO9E1Dxp1TJfspWLfGa+lfzFWGALdGoypCmqIPzaOZWlB0EXuYSV5yT4zNRllo6XxuY5HVhiNCQeGmJoaksh8dvlv6+rPCBda0ltCyeZ/vz1imp9icocEsoihz1pnIpSs5Qsqtv3Vbc6OeZjfS9ww96NXqRhFjgE1I2KTXDwt6iR309A5Dd7DC5Yx7nWiNaX0i7cFbD6uR7VOmF5dgvBeNIDO6SguTX3xpQQxRb6I4ziV1xpg2tXcSRput6p8Zgw9gwjTz8lijKZ2rzG9jdDWmJf3/cy5lyjkV75caYMzfjGpRO5L7AoGKGj43oQzU5ifO6s9ma9erknfF1PA7o0F5uUZsATIMwvB6AMAAQoC7AJ6QkA4CQBVQDLBQEgnGz8WQFomcBWgHXExCHenOY7QKCFwnHHsY7MwvMusCfBwwRAuDxfHMWQLEIYu7t9OZmMF0wuHyXdncxCrLD8EJIUQcQjh5IdYo4IooD8TrKYpnZ0i8hDMt3U6HRmYphQuczMdnYtvuzMe4HcEiBmMIJcB/CkEgXIZjcocQELhwqo0xDyEpmMJHZlkwqhi1eksNlmUZlmdJKz2WCUFCR15MqOOgidTBg5c2iAgwG0BLgkyyYLAZKCsR89imaJsJyHU4u6Zwmc76iKmXIfBkEs86UiGZ5l2cwYO020ECCYG1PoE3csyzMcMGV7CeEcHQDyUBxEQOQRyAchgnIXEDSoSBcTWtronSzFnMzN1ZfVgShURjyTGlC0ue2YnSVZxjVioRg1sWWOICjmaWffco6SX1YEDGzw8CqChDEhUHEtIjDFQSYslmFmMKBkONc7eXueUdTMx7nszvYJjImg3kFEUjBcWBPRqBfHJInDB3sEQEQPEATwMQrKE+cUpR5bQUWVEjSec7sY4hznMHKVW4w4lczeo03M1Hn2A2QiUKsJlOFrZUaJRxZOIaxqotLZytTnGJtqqVWFsPPmwcTRsOwTAUhWPD8FRsPANEOw3Y/ucuRwMymYOGWTLyHMMOMMMuurAfI0P8GAMwXRpqyoaBTCm4PC06t3jhR7CjdO+rRqzgO1muwDXDkBFAbaILiA/jh9EmEh63wt9EIu5C/vjMnO1MMMVpll4tFU2wH8srwnlhGcNs6IjFgoDLIRLHywJISRMKHcz5xZbi7Hsu6tEECWUBIgNJnms0HQH8KZDMZe+ayMGYnjMMs1CZxGxhll3osCECGmgmAGkQFIX0GCTDmjk3/vFxZ8Z3jdirc4uzOurRtMm4cFw+iknKzUAojhVB7Zy26XSx/rSrDs4Dtdd2AM8BNjwfAMUEcHQkSRY0EIAbgqJJrE2NzMD0DHmPnOfDMWcGZNj2Pc+rYr/ZDO60KMQ6wGOGIcHgnS3Fq2HDiwYcOFMxzSrSmksJmPbuxjpLu+pxI6x5VdkzUcn6oxNiImwaCK7tLG5SNWpr/pVYAetl3YFMC32hXALEJFhpqWshLC0qTqi7M6M0rmaH0rDn0SMuy9WFLTxOg2nb8hkKoeKaU5dS1BaFHDjHLzKMskIF13VgM3sEYGOJhZ5hBJBwvLaZW7OaOYtImZnOc+HZzs4sRznF3XdnAvHjwDMATwoajS2hCA0xOW353lVoYh3H5h3zswlZd2A+SgjDoCrBoF58fDZRi0G+Tv83OFubo0q9V3rMIqu6tFsqBQDcIWPjMw4wc5huosONYrJGxVl3YCIjzHBICoKMclKQ4HgnDqD1C8sdLhyvEl4l7pfFyrVoqz7NA+EwvBLBRBwNCzEx8SBFISctSfD+Q/MGDNyT21F8aLQmMlXuGI0KhKT6conSJ8hkty7RcLijG8jcySxJF3YJMe7ha0WYfiZLOcotpiiasy+iKdF3ZYawLQMAL4mU6cwWDBpatMKtzXOay7sMBo5w9GPG+sVFBbqaTdT3L7BK5jnyRzJJ7uwqk2iQEwCPKEEUF8yBoA9KJKKL65lmBGBUcrOl2cqvMGDnMui8XYTjmA5shwjLQkshUKOKlcfkJayV5ny9RFJLV6ryJptogfBwaKHjg2onC2unhuVdo/7Fqysowx1e+nOLuveLps3LRsRFXKIafLSbCh08+ZatBhl0mY03XtFpiL4tOQNRg6VyRzq1Ef7/e9XSXtIXtRNg3p+plWZ3fEXqve6BxSMJar1XkbKg48VMkmVSzmLrdbHfNQWRTNKxeRq4SRi6DwRInpIKDY11pF6PeTbL40vlrLj1cN8WPDwmaNuJj58CoaU62+VMuG7s+pbc5kMfxBow68leUqxGWDATfrEjHMWPJw10rFardKrIVki5JV4dvJmZsTBQC4D0AvVGAehEspLtGUbm5R3I2+XxeHbyntzROG3hIGs8sPeP/DyB8P5F2XkrhOjEWEtQRlQ4wuRUKpFuJMUUWVljUFNMwwo7UzMc8oyYZmGZY68leUgxFhZJRY2mUTIBWkz9qTNUrzUKcvSWl3LlmOVc9z3MVdeSvKQYiyadIAk0Aa0R49fzt2tY3TMR1afHZnBA1eHTbyZ1gC4BiEIhA0gAOgwLOEZAGMgbgV2KFCESsKlHDgtAqBc9ZCwtnM8sYzvh7s7U693ozf8pG1FmlapurI3kb1WGAuHTzpmEnxF1V6rWDcjy6V3kbkPNBqvvVeRug8qi6V6ryN4PDKV6ryNpB4+FR29V5GxkPIjqjt3kbOF74VSJau8jeChzCRLV3kbNCgYpK7yNmh5urA7d5G8HVVSvvVeRsLBbWh9e71XIcmI96r1Xg4/L+71XRX+n1V3quXcxV3YdBRGwXwWwmh6CTFw2GIRBQEMhDwOw7DcthIJROJxMzOIRYQuLsKMYRuc+WMY5zmMdcK1YDPAUEKITwFEB5AzQfwGeHICGAxi0EIEYGACcCqHovkXCRoZC4KouFgMwG2FPjjHEIMooCACqLuDMEnB8KAywSnFmOB+wSWPD4hNRs36IV9kI2kwsVQFjCwiDomUFooIEitOYLZzpcOFiYuY3MznFH0zMcxjmZmYXZZop3NjzWqasZdkjZSmo8+2gfz3D+6RVLKHMbLCyCZMoTQli5evscYdoexjs645tw06i9WCaBgcQglHEIHnINYVC8TLauf+7FibGMdusjXnZxnuvIm1e89WKsPAKcBhByJnGgPQCdDAJwTSGWrKkBaSEmWcU05jHuHCzNUMY9mq9/L4irHhmd8jZUAE4BvC8KY2E1wMYOoLxX9sdwL4PQesWxfW9zsOFsL93skux7jDLlzYN01V4BenpJRqi0CgRwPwSQ7HAXSo+egeGAnCOUwrQgc8iUowcKTmZznOc8TFMUVYx2cXZdmmwaboixWpQTQHu1YmG1CAhKuJrQKCaHOc2S0sJjglKaXucLS2YwcZmPcxmc67sEIB+aCHDEPAqBRXRYJ2cVrIZDMWLQ9c9yxOOPZnOYJ9TyEsqx2h7C5RzrsVBIDkE6GIGUFEcOzkwJwF4Tsrz3VnC0XC1wucsc9KuIdxMqwQWXatWAW8TiID6oDwBqg4tKMwYDhYI4MKCmmSEqLhcvjjiGWKuYUYzFmMc4QHXFm2IQbhkMBKBPCIr5kOA/CkVD4gmN1zGFxC5w5uROZhwy513ZURlROFoOwYkB2JqMCs5JctY+vItHGOZ9Pu7E4S2gvLC8tJqmJiMKYnFiRbTvmL7MxpEx/LsMsu7DwAC4KJYDVEgVwXGCUNgQIkCoLQ/DEoOKFnEPYLigtetZRg5ijpxCQ9ypCqxlopZE7TZo2ia7JQrNi0GIOQJgFpJYsXhEVOJzCBQqWXIsVj5jxzVnTJmszMvReNsBARWcKAogxAYoS5cPhgDK4hLEGX83CsWFqKMHGMkuWLPXTi7mMYzOu4sAqgMCgJgXC0OBWco4MgYxYTUFqiboWtpCJs6hMJpLOeyCEhIXFqYZYxxDmPZd2HxpUNgn5olXiotwuLZzRLHy3C906XNE0ue5w4JyjCg4xzlXZjnGWa7bQ4F4RFhmDuNLJqCpotF4tUEcucTHHB8sccWJkM5mnfOZiz2OdmOLEjLsoH5ZMUjglwJMIxDInWUoMhcU7Xb5g5hM4oQl6YUFwneUIS7mOdnKsVddh2DIC6Oi2RaB+BxEwkWopkA8AnBc3DhZhN3eVgSudOHHPdpcOMzsxjoMMe7XaYiOEQB+SB/JhPFBAUE5UsHgYFA6FDYFq3ENM3KPFo4qx7KdnDhZzGZznMc9z3X5nm6EbwTXHHIL/km3ILxUmUc3CRbi/zHuuqi21Md82NC2N9Wq9V5GygNk7yjveq9VgE7gnxEIgUQAXoCCiRLFKDsB0gRsBSA60uVKi4KoCvhVAsVkPY58PgTgFuKDhl2YZZYt9QiN6aBVe2grmmm6jFP9gPlQ1FEWTms+a5zfv3tQdPMRMPkicMHXSNVuiCpi/JeNFhQaFh7nPd9+xuTpv0LauTDpGLmGJs02YbvuXkkoFbFo16O06QVsWDkcaGgQU6QPWxLKSyJ0tmfq75qb1PPfEaS8ElEXv6MO2BjBgsdKE3S+utPVKn+XkHr+dRnzZz6WelV+H/zYUxtEakfSUGpzcvtls77qzqV+i0TTZyiOlWo3vUijC4sKaRpwWodIotNByjslLiuWzL8l2l4e6+16Cq3w1pf982MnRk983Tl2K10dNIhcJCii5P8nLk7MLLIpLKsdNzKOrIiFcDHkjb6Op8f2CTEjXDLZKiVsnTL/kHMUbT++AgXXzfoqmoPgji3zXxsd/shCNpBpUKv5NPzpUH3d9O+W+ZdpfHInMs2fqzYewz+XbeHToeunqDGbCcUH5EMydOaozrSWWa9c5Zdy64xZbfUrXO76MNuTd0aqnwZiLIRuUkhEVl6bJlyB3mnrnOM0MYq5NmstIvL/N1FRqNqxSNyOlGjSkZqKDXoNmdL5LzMZlyM1JRy0f3r6tEdGZtHvUnmPY+I8cCSQaiT8zT6dzvpdJiHscr5uVfApqSLmKvqzpsVgtt4W5JBFa+doatRSHyvTzE2lFUuGnPn3GiPpqw2E6nIEhUNSvVlvlvXLl6tBdhdzHErLFJ/yfRmQVsWc3GoPb3xqrQZgi9huC2E5QSKHJtGxoaOXuoogzua0y7M0PZaR4aY7U1saSKbNad60ny/xYXhcI1AWcxYTFlVD1TyxZm7TMfM9rTQy8s1u9GWxY6ND8VmwheGnHS8qnmJrnSvEzsxhBRGWVlxFDrzR3wq3L8GJfMck96Y0akUM6yD9NjFqHLksxy2nJlm9b+ZZ5eys5/i+Gj4mU9L4MdXklKzeXkfWXPkYQSQrVh4VxwHo9pNiTT2p1Pat0raTfyX2P0bhpb5EGbOpGm+xGxIVnT5EiQ1ol8obyg5/LufReKtBqPnRC9NpGv9uBaknOSRESaEtrN8O8tzG6tJj2O1Rp3qJy9RLFyqlBtqHNWc2R9ibPk+wo6ZzmfcvyKXWsdaadobL+Y8Krsdmd9R1Pm1ryjpONlrztWata9OObJfs3LsukzdL6h9GJGNSZi8M1uZmx8Lw5QDmZYTISwXHzqyUj7NO7TK3X1tWm9A53XT6V4gVYyicidW7Z3MRps4RiuAsacWHBtps/dDD7mFGHLM/MfT2XjWwa9qEkf+i8MylWjVfE5xZA9QWglCY0fHzWYSLzIJGuVdfPhsRTVJiDM2b6QjRK1ZMexsI4Rv0eKSAsKlxCs0WprFa30vm8wR76e6uR+8Plon81bJlXqrLzYRBMcIXKMGghrYThDvFcqy18Kr1dX2cuTs1eZpnMVq0Ut3pU3VVVYIEMBs/rpLJwp0HQxhecui7ssvJEyxFBsnLhFWuxWLUf3+C8+wW0MIT1GTO+lD/RjstsKMLryy/f7QGcbqGt7b8i9TTYLsqEA4eeguECo+0otVTMy3K1o3e57ouXtC18q/6ST3qhaasPiLCIC4gB7QSLFSrFBVjvuVUUXm5plmqQgXWbIyhX+87jGrRBqam+R2XrMRFgMCiFuQwXhBIRYeXam5SMh38y5WJJXXLR7VkV6lJvwxF6+9dGZjwS1YMSCYaJZgrQlgrQXirBue9zGd7FXKse7d7GXmp6PlHzT5I53tKRqNMDWrmaLwSRYDDCxqKRMeadhpJeW+HPnxO/fPgyzVcnNaMxzXrBWRaPk741GwBNQM4SqAQEAhwBCVB5grOEoCTAGHA4hOz1m4Ti4JQEeBnAbjiFkl2OwmA43CbOVdmFnMVY51gSyMroquW76tJHL/aiGcuUx2KnMrOY+vOp7Ox/MOjQ5We+d9LVfM1ioeY39/vJXRtjov0/Iwk+oM1dJVcTYbAm2lQPIrCIQ84WCchZiZCJhW9xQszeW5jmU9nndc0RzZ7kmKLch8ty30t0q+SKPYpQOHxppMenKMc+XM6rGyrWjyRVFh0EUCkF85AXAFVBkLVkMN6haDGGRZuZo05kkLhNnZmiZezOLxFqD6g83ppqNa3q1/6qrG0BpiBw0ggxa1qzMzpkkiwhAALAVotCWTkeApgQszDs1DiYSODCUHKxmsWJyEozcjZeakY9xJyL402CCBBSBRDQUA6YB7LCcI4RCYuDwSjbUHdbCYmY5o4OS4s9yrsxirnOe69Wp9VZ06Zg25EgWCQcBcC0fga6+ENjiCTytOLcqHhZwuIX1u+nauOMGDruxWB7IQrAPhkDhR3EwMSAmBhha1/MgWue4qxjlZLPLFuSMzlWZl3YG2F4kFYRwXQQwk5w/ywPIIcTy1bcot4mdC3eiRnI2MdnXV1YJlIgDcE1AEspmsBwkWixClpPbnC4XFu5ryysF3TmOZnMzHuLuu6sA1IIMcBfA8gWYM2bOLBKBeDwKBChL1y7lGcWlnO0mHB4QtYYc8owwxmddgKFCxYC2CKDtqJyDRwPqE+Te7oLbi29DCGszhgy6urDcLhrC0OFD8kok0qqh5y1VuVrcyzSROImXdgYwIceA1QQwfgyDiY4TDs8PAZAqCgsLPmE2C0UFtU4t2Mc7fDgtFjM7MVdZ30/ex47NP82UBHh6AyRa0Vi8gCKQsD1iyaxwMCEsQ5DFCrHNK05w4OaVXMYMWWKWwlD4sLV0MopVYanHoAHxJ3KIpDVNVXm6u/+WaPSsAqmXdg0BceGgCdAhf5TPSA+gyC8XINy5+SaxguzGaDDnsgjddwrVtC9oOI8GARgvJqNLFSYMISMN1OrSxxbi8XKsInMzmGXEbNdg47gfSwrcOQxI3wwMGFVpZz+OfOFzVerLCGig4xzDDOxl3YE+sRgYIoA0xonTCqw9LAxh8wSSq7wwSh4OC1fhV08oQy0YOu7DNMIQtApQ5ApwcA2KCYPhwqQ4MmFU26Szt4LCYnLTFEJdj3Pc6My7sDKEw+JSpQDKBhOIHBGFvExWGL3aoGQOomh5CJyFhhmcxzmOc9mHPmZ2cx13YDSCgcBMAnWi5zVBwGIHgSCyZLLEnUgm5jc4cXmML9hCySjnuVcq64uwpgY4mB6ICEIY0mHLCBs5rSjSmhqxxjp7ms0OrOzt857Ls03G2HOQCDWCwsVJkw4DxBbRxix97RMJxPiFjyyrGS4W8hc7MVczMYRuuxOBPtF5yQsH4OHAQAnKcq0q1LIOFjChcTCdlPcQlnPWx7DNZzrt8F6sEsF3AvQ5HHDWk8IYjpmOxZbSlMYwuxcEcRF1UWj5i1lV04VhuQHFCwbkPziroZkF52nM7dPMsewkq8O2imYNsA1gAr4MqYG+DQBSioKSIoIAZQ9UCkDyoFIF4hHAlBFHAphmHoZBHKOCrmFhOwXh8HguEwnwoIcOYUDmcH4fuDIM8wPnI9G6S+nVo1XgbVyITaGfOnv75L1eq0UdVPq0xdBqse71WoHegv71XqsNA731P96r1WoE6I1P93qtIPNFKpEtXeRtoF6Zbeq8jbQb0S8NvVeRtoUPRdK9V5G4BuRrq8lq9V5G0An+Yh46S1eq8jZwN/1K8lq9V73gocwOktXqvI3QT9RfktXqvI20G55tPSu9VgpRVhWBoAN0NOkloHANEKzZ07qtcBUB8udzMvmiSLi5p8tuAmP6tXeqxEG+mIejd6rODmjHu9V4Onwr7vVcC6C9JXqvI2Oh2bBdK9V6rSChBhK9V5G0Q8MpXqvI2aL8aXSJavVeRtYOFGEiWr1XkbPDzJPjclq9V6rQDo2I1Uld6rODtcQqleq8jaw71U833qvVbA530aveq9VrDY2tD/d2gKo9Q/3eqwWhpQgSUlCmHLKBeLg7DcsKyxMSiYThGFAmLC8PQ9F4uIXMEwoDIMhQOC0Xh8HoucUFASBQJiEXi8hHBMOOcy+jpmvReCOiWIfVgTjlAIMFAFsH0HIMfIFcC+LGBQBGBKD4SuZgUoejmdhQBvA+igtmOYDOKC2YLgR4IsPWPCq7MCuD8KHBIwSAki4GmN40l4vxSMaTFEcURxoGHLwXgzBQmwKQAswKISA7CYMAToRgdAK8MpB3CMDtItISYPBMsD8FVouE4eOYQjhC4oL2OIcL3Ythc92cOEI4QsYQ6ZmZ0zGiIs6ZGUMcuMuJVnSXmwEBF4sAKkBhCQAtQJ0NkBcDiGIIcXg9gVgVg3D0ccFEDZArQzF2E5CGIfFM5mIQU4JFmkThXHBQOCYhD8EaUDMFNgkjgoYFUKwvsd+ms1Jsyt8wRu/0K/cu7UuGSY5j5uiVB7d8Lf/d2V9S9H/T4M1d2CVFmai9reolM6Z7Us3RF2ijY8P41SG76EZpWr1XqtQOjw2KYoQbqHy2XIfN0uJugu1ji8vh8OuPU2cKecrFhICiEMEGeVaDAEYIoLodFkKWmHsscLQozzDmCwWudxxxEJsOXmo3nJarOBLByaKnJiwPR8WrLKZQfTLCTKFmt33zn8W5jnETrycXismJseBOJAeRMgKAYiwrBABishWLiqxvMISEPA8XNThcL3Oewhc//MZmYcHGf5jGKu2TMxeKmZsLgmiMRE2iQfYwqI5X5KCUoTYGIYMd99yFw4OOdiF2nLexz2PY92cx7NSZiLRKmJmwnC4bDsGuSAOIkVpnzOZnMZOXUzpnTmZmYRsvJmYuAlml0ZsWA4CYXHIQE8IokCaVQy5khULC8oV7GTpYx2EwtZi2ZD4Y5z3GXXk5vFV2J1AhAehWHZC5qhVEWE8JEBMTc5gnXGbLsQ9js55ZmjMZmF2Kuc60U4Lm3ypsKjNqA7JL5M+YNRQJuzkJSb3rJJzDMXhT7xVKxsPBIgocVYx7oW1bVHFizu7ObX+dnOfStXm+6KtshD4NAmiSQvBrHx/iSJlfG2FeTX2Q6XYm+FZZnSqxmZeFPuB9perYFZxQRlAPQlGhKGAYDk6SgmEokWwov5ud3cu5xC5yriFznELjDrzfdOaY9iIPMJCAsLBofdiwrOg9rmu3agwwwp1XFGETFXF3XhT7ofbaIOajUej3J0j639ZTv96r3s4Ph442jTizpkxEubAxq9V71aQUmvrGjzSRt3vY8A8xUOrg/llMhKsn5T5ckUTcVeSRvAlprqpXkbyNsCdNUr71XkbC4EpFeayV6r1WATiB0CgHwAe0BKAEew0NsB2ASYAJoBrBkBlFUBa0sJgoEICyAcIEPAWsGcsxeHClDgtKAkAOcGgTi4czi2YQlHZjsyw2boTXJlYwp9WpqqJNMRYKEViQhkf6Y2eo9fYekYpbJfOlyruRVeifqyM3HSl8T9Ng6jax0fatgrKslVy6H3u88xM/qzdCHVUQc2puB7mxjegxskdWCVdI0o43NUUH2NW1yGQdDFeXYXYYhWLSN615GI7futWLRSlrdKsy+gVVWFIhG2jZUaDUab2nMINK/qU0oZxeiJ1xRpuavy/zv70b6Wm0+K0TYfQNvWp5SQgfKcnud3xL++SWfeSkZpD9WezTdSijFRCtarClSLColPmp5M9Aqv90z9+rMy4YOsdjHdA5aszvZ0DKUtHUlfqmyEIO7+NInLauv5mUuyc3UZl7Bg5lxKMRoViiSLHUd/kYViyARNT8NCWsgx1edI+JG6nyYnrVZuwyy2x0lfuRebOHccrFhPUDcmFjXm0QSrK29a9+swtzNWZuSMdZrSpsvqcoBJZtGRv1FU3MqwbpcobJrRGoxY/K/PnTue0z7K1uxeRXpe5hHNripb433GPsgEjcwqab5Q+U5XJSfpQV6sukYOudSLOXl9fqwMPfVTssktQaUQRced85DQoUV7fqMzc1NH0b+ry9TffTXwXm4PTUpTOEeUHkGtOQe2GdrC8fdtoQlG56U5vXqJItKpfCUvifYiEbfNZZxxOUkso0m1vcpJeLQzcjpOfJmVfadGoxO9qCYG4Rhw4e4XmpHuzXqCRRa17mW1fGXQm3wdo3MMGNXDSkHIUknmtMumqfRiZ0WFvIUHoJHM7UJzWvIXbyszy7NNzH1aZ+/ky600kC6O8kbHxagmDYJc4qUUE52Uf/l01setzDblaXjeOyzW6dWnu1GfFitZAUG0qBYcgPUe7dyCdbrYR8vN+vM76NRFHVWRe4UlqKq38knew6WG0ZuFSSDhI7vUQdm9DUY+cxWCNljq26XpZmmi8Pok5FVwozovOY6WyXa+aI5ukZwQihwap009AqxMrii31LC682VXZlt88bn77yvyrJiLmEZS5tRbRqlBUJBXXak9umUPEyvQXhtjsxxSepWqzfUHddliiyw4PN7Umndv0pLW9yH3L+DLLWjKhNqO6v1EcXzetSYRLxeEUk2OYtvjefppR/zWmKmNVyjlrx26vWS1dPHfX0KxbUN4Gvg2cg4c05y8vVhWtsWr5Xqb81ZL7pGY/fL5qyEmc4eRPS4sPqZjSoUc5eQGLM61PDfprNkim1mvR0zp/tgLw18fFC4OHOVb0nryi4GMwRVcjQh/n531Xk9GqbOCIB5nnjQb6VMpqWtQs93aYl/LzfWgrKXV5erkdUS+rLfMmIVXZwLpw3+3DhYsyfmw1bpevLMSUlX3kJOfWXTZIuMZuUs16KKWkzL+S1YEs4fDdRiDBohNZHzeWc8mytJeAgWWeOpNRLuIvfGUDZnTmEUmJsTnYmmxkLOg5aUrUa9elWN9zDpf7hKkIk7SqvQvcY+8dCUaq5n6baPoSt6636Ut0tVXKzHbnWk81LDppebl/OibC9HrNKSMy5A5ro09b4y2sWq66CxFKTEz+STcNRWjq1PqwGCKQuFIK/ShbUlN8oto/Od+ZmdT2TcrWv98voz3+8GgpbKvfBmbA/UPJpr+lJqHXl79DMzHK/My5s1JsJvqt5Il6dNXjTqXqiNHgz1fYXBocF0oBtKC5DdSFjnUUh7cxV2jSX7/bQaaNmWzL2982sFef6n98xqqwYhX2itBop0ITvNJOQUdu3S+s5hhhG5V16dGmkXwRRqveETcbPI4qI0WAJaAMkDABUgHkAHMAL1hsmPBUAG5AM2BCgYAKIVj5DhMJgxFwBiADgAXAA6QKMs7MHCHB4LXAWIF0EAJxQOPHM4hIZc4hYxmY4TpLhRSZL9gx8e0abjkpVquZ9hsHlR+9rzb3ujbHxfEanpEtXQ7cRYSwoy+npEtWj7mxSHmS7474IquvZtWGAGEPDjlqMckdR31aZT69RJN76Ln6a1WsB78sC+HjCgJRSAcA3WxhZQJ5VgscVE2pudhPy2KMwt0VoZixYv85VzLkU6lfYhH49aO+LBhAnQ5AwQpiUVgYAD3BAAwgfBMOYSBigoLMQiwo+XaiFY4J2OzBcXcxzsxjM1yri7slJiryi9WjewXAH0AyQJwE8WE4MIlDrBFEmcTDEOwoELJ7CEu4XYpImZnZz3PISF2c/52YxVjL1WBNyN8B9BGBQh8PyOAH6CGrhQHD3co0qH4fZjvhwTFHOeQsZ8tmIVRxmc5V2Yy4uKfVwB5BlDAA2PAFPDDicWhFggWHImCSQnOwUBwOxctjiEcHAxcUKO1DgtLOYJyznOYxjM5mddl61WDqD00fBMBsLwTSXC8WtCQUBdE4kaycVHBKQlnB4VLVM52Y4tuUZmKuYUHHuzHOvVcIxT6ixpYQgeQQwdBmLQ6EY2Ljw8WFEMyBMgJsHFCFjmFsJiHOzOzOiWvLKsY5z3ZjLuxYB+D8TDwuDgXBDJlCje3rY4KAozisuzJWwmxhC5xZzmTnMzGOYMXXosCfBLtBZ4lBNHFA34nCcJGjhCJBYUcxR1FHZjtJaC7s6c5jnuYSuu8iaXqxYHwIMWuWOlgP4Ug8QEpPuKSJBeUY5SXOY8nmYTOznCAyHsvIzc5ZysewbSbAoJlQtkIY4DEF7C0NYxRQhc5rHy1lFiEs5mc5mqc7DjCmdpZmMuvJirRas1WvY8PFAP4H5JgSExcLwTZCKxOTYHJMS8plifOIXOEzPiFzGMc5zyEs52c7Op7GXvJirhI6n1HsJQH8BfgFTJi0EoFIJoYkIVRcxzQwHBIQ4gEwMMENSxzCEWFFSEPMOSxjMUdhwcZLmOdnOezJTBeryghhWvYTw2GgdQ8UDAtTSgRRvlGuLSU5PMYOMzJE4oYx45nPpr6zsxjsx2LKuuvJirpqzHtwTgXRECwJwvBfGiAIzBN6coWZQ5haLSFytFixZ7nMzHyxjGOezSZddJmItErop8zagOArDtKWhQDpYrUPfLCDBGKLFpxMvJRxaCF5aX0Xc9zC7My8mZi8VgxNiIDELCQU9QIYsUG2lTpWLc4LxMWJh1pmZ3IRM5445zsuM5zs7OVc57s5zsmZi8PmZsShSgRGj5wjFUhDWV9JqEwhiYSoCdzqpVzhQWxYTZ2l85w5hxxdz3Xm3g1MzawcDkgEzaHCnPaGzUMTxZbFlPRN8vXpYRSqxVl9LI2kpu+IsbBzPbEDKmWpNF5UlboJXXkas1JGLCwKnRmYa7+Tpxx2/VmTMXkb31K1eByCxsbmpyZp/vI3kbB3B9D0PApJAUgDHCZhMFJmDBwKEDKLCfB0GIFSGQuY5zCpMcc5hQKYGsLmSxwSgZXPHMx2D8KrhOEgcZiEGlGol8q1fBpRicjL6q+KRKBQBaDQDGB/E8hsDIEMPgrrFgMYeh2LiwlCtQVwKYPwyCu4K4eFOwXB8LgNYMXOCQD8Hz2C4Xih2FDMOBkJxQKBPMad6AXmAVdWvVOS9cFbBiQVf1VgyCcLQGIFDgVgOoUWhRcDECGBiB1BoB3IQcCwvFoPQFYWjBIFAmFxCQsYWwPQFWQlFgjA/HHMKOIRQJglBWFA44MxewXuqx3RCOqVYtQXmxqrJEtXqvI2PhRNMJEtXqvI2oHsGEiWr1XkbTBxiqrU29V5GxSL5oukS1eq8jaYJejA7eq8jdC5ExyWrvI3w7fD696ryNwCVfSo7eq8jYyHZkdvVeRtYdomErvI2aE4z71XqtEJ2guleq8jaIToqFfd6rAfpCtwGcA2DepppAHwKqlTvSsNApg/ZO8SYd4ezOezOZVxZystsqKuIyziaVG6kFPM+fvLVl1tnl2y6X1nWi82tF/VPqatgTZiFUb1XkbRCdJpcdu8jaQJd8PhK9V5G0Q8MtvVeRtoTzKV6ryNogljKV6ryNoh3RhK7yNyE3o0+Peq8jawm6X0ild5G1g4rOLpXqvI2MhSyJdIlq9V72IRfqLtu8jY0FBWHpXqvI2TBLm6DXtvVeRtAPJ0Q9Ilq7yNmhSJiJjiwrICg4JBITKkJCQiwgJiUSheODjGliEhFosIXMHBKJhwoxxYhISFzBwcKMc5zmMZeRvVYfhgGACqgMENgQIUjQegjgIuHRMoeVDAMQeAeARIfgRAWhiH4YhUCQFQXkIZODIPwkgNcMheDCEgXAzBKc5gegpBeJ8D2Fd4SnBmDMJ4isjkaojgApejcjP3/I5MSIP5ei8Ph8l6ri0HhwOAdh2LxZguOFgvFwsDwhOCGJhMKBNJCLiziErImFAoKDgoFAmhzvA4GIoHBwTicpmDgnHCg4xjGaryNhdIfBoClB1CaEIEQBsDYZiQBCwYsQAbYtAYWCOBWkIvgK4tYWBFgxg/uD1w4FUH8owPxMLheDQwTjgVxwMygfg+YMnAjBQOBXF8I3KT5sAV0BABwB+AyCoA+kAcMCFB5CIQEwdgaANIoxxYKAFUD8EV/DIHsTsZWcLRxVwoCsGbmOKBVCULheKMzC7CgXChGC9Wjq1QjuRwYaZmhhReX0ZneKApQNosBmCYPwxAvQJqQZgUYDRCeEcCiAggSihDheGIZhXIQywdjgUQkh8zOYHoI0IATDgtCuCQD5hCLmC8JTXCjB6H4uCSLw+IY8Xk17nHQk+vO8mPUTpzXyZXXnNMTvFhwFGZN8r+ox0vV6rr2PhNhvRRRS1XqvI2Kg6NmqeO3qvVcB3Bpcdu8jaQT9BqqV6ryNqBQMpXeRtMPN9T0rvI2OhOrUqld5G+E7VSqV3kbSCc+Ffd5G2h3WhUdu8jYpCa9HVXu8jaw70Fx27yNrBLmeS1d5GzQbtUKpXeq0Qn40uleq9VwL6iFW3qvVdC8y0lq9V6rHRe+FUiWr1XqtoT9RdIlq9V6rwJfG0qleq9VhBF70TdSRLV5G7BALDYHYOhKCACGHQSAxDgPRWTBdHAnhUCkKAYwYwjFRa7FJF4VAqB+QicMwYwzFGdhcH4VA/FwnDIMxQOC0Xh8LhOKBwhIWRWq5p9WAReAOSBUgHbAIQAO4BHAESAxQ9B6ARkDUAGaBRghwEeCiE8WkJCHQ4BdANrlALEBGwj6CEhF2YJxQA1wKYJQnE7GOcOME7GMY9llR2UmqJz3yXkjkCSVaKJsfTBeHw/gqqsHYXrRU5/bjoW1uQg/fSRNV+kxVzo3OioulTdVg6A3z0Rp1JprOUOdXn/RU1vu90yXZpi4rUivl4f7pWObYUQdDmgPJpPt0ooHrSW9ulrNzC2l+widf6OU0mF6SONVzONQlKuq2uZ8PkYTYUgoD+6aHHsmi2eyUpLZbs4kY+XaC7LRT8G6aIo1Zr+MIuFzT+R0ZixeHEG/EyyS0UpP1Zza0NcRQZdoveajHtJe+dyKLRmtG5z+RRYcj5YqG5ZgqPkmflu5MWrQ3XmbvlfLs+dfih3/NfOlWHGYs70c+NGqTEmashJg2QOugmQlHTL5x7mZmgz56868tOtT+tpFV5M6FaXlkU0IFWmPBPiUqom9q/q8LLLzGtiC8SZddZ0IvldQR/Vc4bp8IqEs+w8KitRNKEQhjYkTT7/yqrCpjr+m8inXVZK6M8v7qF6Yo5TNIpLxYtQBrIVrPIWrHBpnVGybnzzEvaX9ozSMSse0wv6nyMItF8/9CvVF4GPsNl4NUYNSbOERpNSsuKVbzHa+s5WbQ1GzJtd85fBU1aT6qny+rOw2wS9Q+JOf5OzXyhnPbpGEWgO1Q3ktOmjMU+avm40UmYuTmCIJimbujQbO3Z2/N7fpVYZmLnTLuj4VUGFXUVjtBiLTFi2DpVo+g1Dsim6laQ0QrCs2IUstNRFI7zVEk2jObC5nvqxEHCRy0kR4r5W5JqhzChN60PmmHOfWozFr6ZptfNfJiJm2rO0SvoPbpf/urVjwTkKiDRSI+V63r6ihzGaNyOr6mqn9DNI5uAsRl/j6SP2OsgJjHITkBwnDVtJ8SdbmsUMd8l5s07pHNhHSuS86VfNpJSbp+hpn7245ModQhDZQ5M3HZfK0tj3QXiHe4S51aGjCZJatE5f0WkG4XIHNNHiokRowUlRb0JuXLmTFGZfD5vMUHerL5I6tAgJpo5ERE0vznsUKwg+WE1fBE60x45NeHTzqhu+hWQVVWMjKR9QMo/ebEKZvS7MGs5yqhSMvMJGcv7OpqU42GvarSs6LqjpSVl67DQNFtPKtTjtQnNdz8mYXL51GFvdZQUxlkDdVK8YxZUZ1Jk16Lc0miNLSYxCGpNY1RuO3yy9XzUqYxuXP3Vrl6m5RnKOWrGgl9nI80WDboWvS1ByBbzpjLy39lpG6FCbZjVT2s5JFjNajmnIq0+dNwWEYblXFYcmUKl1rUdMjii2eFYcZdNyOxWa1EvySLhbTolavIoV8XJ4dBrOTWISikZdTCxt0y3yXmtxiy9O85I5mojarVw0a3xxvbqIps4oolphMgyGboJ5RQTfSxpl2dfilTVZjmZVgi9w5co6ZXX0mfZwoEiCeSLODcg6+/z3ZZMkZJebkRH18i3/6SObHSqmh8zD+SzY0K+wXDaCyxaCiRNrkCZzF5k6XzmMEF1o0KTmvlz1mGZk6NNyadog3LfzDd6tAfKHHeUVFOPpnP8sX3aZLzuZ5ll/Siqi/8incliyWSOrCKPiVQ+j+K1CspVp725j+YY6C8+1ojZx2OhTeeYoYQZi0oHh1LDuQViygkIJhbWS10HRpQzdKknyZZG+iSKnWjHrvX95AKUq3ybOhsvbYH/lSaWW7wvHPbvTXy2Ve9l6UpO5rfeqaRnHTYRASY4NHnlZcfTtTJbqhU/VM5bc20a0+UjNRvZtaoqbNBy6RNLLcvdnxzyqjVs3L/d8qy/3E6jm6qVhWN7NRelIxiwCnC/HBMY5qBNstjN3lrmsc4vGYzd7GGXOvQRSMYuPRsF6iwA8AB3wRgAToBDwBmQBsABdgeheDKAXYBogDSgjQRQEaF4SRY4mQtABQA4uQgWoCthm6RwhHHEIoD4CyBSA+igPhwsQlBwhFBUhYQuw5nWUFMLUXSVPmnw+TEVbTpbHObH08z/PJOr5I5fUWDmcG4ZhwHAMITg7BAA3h0GRCWBeFgvBChTCQD0CFCiWE7sOcPQQoPQMYtF4ZhWCSL8zB4GYVQzF4vDMPwyIROHwZC8XCgXDhC6vfjQjYrAwIhHxDbr3agv47VPSJauvcXQF7ppVK8jcI3IUdCKqRLV6ryN4KTzcbkr1XvYyDpzqipTqdBep+i73uQqis3z6ISv8qzTXdugkbe6Nw3wX9tB5FaYpyigblU0y8NSH3Zskf1XkbySKtarwKAhSqemLCylHTpXlCrW9cGZ/fUXujeFPMezQTrevHoj3o8wumvWSTcei8XANSJqptWOgmsKVUkpajo0amvq81KC/uHNgulchTJ8QpINQY1bY0/fNmqgi7HMvJpGKvFVDHtIDHHx6F5pb1J562ILj6VoMYqxjGS9jGMMMZe+pWrRS6NakbEYJ/yDS+lNyKveRuPZME6g1XpGvoxFXkb3s8PRtOHmqGvq9V5GzgoTpg2Wvi7yNmgldSOqErvVZod0Y93kbkPEYLjt3kbOF/kuleq8jaAUkTS6RLV6r3s8HR8KtJfeRve0Ap1KL4TJavI3vZwO/o/eFFTTNXkb3sEmCcD4XlioEyCEIMJip7YKA6gnEmYrIMaDmZ2KCgo5mHBeD05nexjnYThmz4Wi95DhwTugxVy+I39hngJkCfCPgYQYgiGgwBHTD0XhVIRNIvD4X4XA9hUWJ8D2D4LiEPxeLyEsFQHwWhiOC8PyFjmDjiGWMFAoFAoHBOKBNkbr6q1VYTwqBugDeDKcJgQYUgdgvHwd8wWC8I7QycJwZIcJxcUwvCqOC4XiYXsDPMc7ODwMhOHzmC7CgUYT5wfDjmQjcjsQb7A2CoUwTgLgHwWAhg5OBdATgGcgFoUgGcLB8OXCUMSgeB4KODCFUGQX1u9gMoQASXFQZgrsY5mcOOFAuIXZgZsKZ85HfTepdffnSXiafD6fL+skZVVUkVVYMYD8CIBlggROFQULDccEgdYhYVCMHk5gehmFEMRY4MQdQkh+UV44H4Zi8cIRQLyjmMe5jBcx4nFomc6r+qUcbVuBxp9PSJavVeRtMHCkS/vVeRsUgXvpGnpXqvI3g8+pVK9V5GzQbtSqI7eq8jdC7IqwO3qvI3xbzHu9V4OaMe9V5G1h1opX3qvVZwdIwX96ryN4JyMF/eq8jeCdRj3qvVYpBLoILaPD5UbKE2HtcWFYrH2FBIJCjJzixCQlndjCg4UZPc4s5zGMZPc5zGXqvVYD1BRiQXmgyAG5F4SgNgBAQEPBnCoBSEIYAKKD2AzwqigBlgqBMBqAjANQXi8KwJEKaouCqCRAs8DC4EWBEwUwVQlAzCgEaBwh6JwR4oE4PgoFoZgpAqr9eHjp2WrRiDFK986lWq+TMq/T3zj+tGmjVd7Vf1vnfT94lugxLsz6SKTFR4wAIIGWDwD0CLIQLUFIWCEVAhoDlIRwEgLQeGOIdAG4DOwcIQ+AbgKJ3IWDjGOB8BItDMUCfMHBxxCLwZw+wvzg+ISEXC5X38a2J0K1SsiBNqBPHiiabB85rHMb0FEFJy2rbNaevyYq9V6tFog6RRdpLV5G8DTfClBhpLV6r3uAcDeXSvVeRvBOySpvu9V4Nmowr8bd6roWoLN1NUyKJiIvVeq0Reaa+Dnxd5G+CX/VpK7yNwLtFK+7yNyHiJpdK9V5GxoKNSXbd5G2BSiKh6RLV6ryNsCkrD2ktXqvI2NBS1PiGktXqvewoCgKYVwdxYEQB8QEiAAEAiNFBCGISQwLEJYWAow8YxhC7gpGOzBNglBmL2S4UAzjjHFA+FxQcF4VSEhHBwcFGhGIs0dmTdUK+0Ac/wV6w6occY/7dJJXvVeRuQE0CGIoicPUVaYg98LJPe8XvFikDIPTyPXS0Ppy95l/yzE73veStMKcKF1FaM1eRvewNgGEKVA4hiBugVEDcgGvBDhHcGQrCMopJQTgboFU4XYXhRAASD8h72DjsLs4KoI0P8x2CUD8xirBQH4uIRPFXKMIvnqwMIsBhhAAxgaoBUgxAyQKAJpUWggAcEHcnxYF7gih2JSEcdxwXCgKInLPcJw9FAtYVE4vHHuYwhKOw4WIRxw4Qup8WOmoyjjUbwJeUTelTXm3eqxWE+eDTWhK9V5G0goY2FUr1XkbaDeZSvVeRtMPK+p6V3kb4d0YSvVeRvhNpEv7vVaIdVBf3qvVfF1GPeq9VpB1qL+71WkHUZFX3qu8E2ZVpK7ugoTJdK9V3g9xsKtJavVeq+HplpLV3qtEHF8KtJau8jdA45Eu271WiDgZbeq9V4XmUr1XqvC81Euleq9VrF+ORptJzJx07t/+mZmFa9XqvVYBIQBCoCAgBPgBDApwDFAIoAbUD8GAA8IA5wFUJgSBYGcGUHYh4KUBJAAcwUwZlhaBDgIcCkwMJCJyEEiCkA7AaCEMgLUC3CUH4uIQqg/AXIG2BzBABWBGBkCNBSAOMIADWcpC5x0KtaMIs2qOnJRYfgneJOQnUxpMR1LShNkua2exkF60qsl8TmX50o1kV/R3yYp8Xkq8K1L4sKQGUvJ6VP0us5kPgw7Ty8mJMOue9KTM6bRVki+qwoAYYiUNPlEebkk2u06VZrLVd30XnTZzzjkJpWmu4xjVaVYd7fMPmYmwpAYZ5ZLuaplBE1R2YPqr5MvOZnZz2S4uwuy0UjUfkaVm9PGdJsqtJY9i4HBQenLgh7ZL9gsmXLXRdnzWXqNVNySvMNVi63/30KyYmwbgdGnLrFWCIgKasgooUc7QudOnO8l2XXg1Vq5aszNxNUqv0tsWWF6HNOGhI2lBtv1N1aF5a9D6h1z9UScerPvxRtVklfY8LF5B9GpHry3nLl8fQZ5iblF86LpWtVjwd45yai05SG/5X+e38vJdt5LQn+Xm9DztFhNDmUWFpynanz3aI0+X1pJZsZbBs5aP3r76HxdTG+S02Fg8osFwccV6iSjW5qmIVH/fcy4zFo5vPJopLzdCv3+nSZqzcbPbE/TaJobLKppraNSNV1UN1tztzPLstaDlimoX2ZeojrTaSU83etW+i3H0Mnj400eKeUlMlR+8ZBdGGQYmwVwtOOW6Zdq35lk6CSbpJJHrRpYwq05U+RblMV+9VOX83IcvN0c6Yj5ucRTdDqGgxNg3h2NBDxQME01FCpClpUS3mOTY4vT3Pgji8llytbWva0lm8bHSyUnPmbHgPRVYzI0sXIn6qetdDjKfRid7w0kajphxLMX1Dv9UMfBF6tETqDsJQkLkTk5725jJkilX3lpeH9z/FnIrP3o5hJ/ZwLmWWpjQL0VntWhitZBBjKy9zFEXtECUNhujuf4MzFw586IZFikIXaxM6ReQ9envly2KapJGXKEpQ+XO0EcWiodPOyQ3NWFBIIoRVoLIRKcHChWf1tWxhOXsM+1APDDzplq838v1ZuVHZrUlt0yYYXibC4gkfDHOPPQEqDf8xctfK4MN9+t2IGsJI3s1H5repWojixIVUEJyaiUHuEWS3W1D5uZWi0Ex2e6vD1wSzaRs1MxNntatLfptZlJ3ctRrMy0EKQycz9GUfVb6QO2LUShJFdIq9ZiTEWczpjI8gNKFDVvXGSY2G1mmfBeblCuto0e2RBoii+lJqUt82QYWjQQk5HEBEG4bZSY0OeteX1XXKx84/mthjuXlX3XWklPl67gLpNYco6RJhYtNBqh7KaVZpfL5lbnZmdagHg9A+B/r1efD5V5HFyoPqPZ3PnmYGFab6KRySCfWdj8lv1K9LWfOhVvtL6js01VYxi5h/0l/fDQ+mNESigiSHkkHjZP1plyzM8u6b/jLx3qaqpfJn3OrVq0Kxa+oUIFGNHss+kMVXLVZzNGj6Hcu5laCNlya1anjNfGhWaGMEUWjjuuXnPoxVsFU9kZYrnmHT9HesjlWff/wWZKW3OnNx1RYjDaalBEmLVoLlk5CEj5yHMT3NVc9xiLN+Rk/MU0zpBVVZsVu2RSx/sIgeFZUg9QLxtxv05pYmWWTlugwus5X2jCaKqSG5FPvdcI0ad25sGPFjgeMTSxNNMSILy6rlGP5DlwYc6fpzrNmVZ+mTMrVaR17r/VPNp9GfaIeoCPtxRDrQmMuHJKS+iTvdc0dMPWe9YKyn1f37+k1/sF0E0KYbzxUo87oMSWk1pHLaI2e9U5Fp3VmpvU+ZRi0AdMKTk+m7j7YQyGPl8szTDZdUWjqr6K+4wgi9moxD6sD0CZRJyTSzstai1xFZubWbCtSRwYddRM6dy9XOSbubJeLAYQJgVlVrhZOqQTV/LbrY5jXz3k3uc6bMozL4vcubSQHf7AEHAIhAZAB4gAmAC0AGPAGCAhQIAPAB8ADJgjhaAWcLwZwfQeCFYG8BHgEtBIhJHBcBbARIEdg/IRcQgb4KUB2gjBwHUC4A5wZwYxeOBWBoAdYI8C5BTBKBGh+CPAqwIwCmBGjYaZp8z+9skvi+/6vY8L5FNGikZTlpzZlq2rS3ls0rPmjEXkbtMXvpVIlq8jcXwL6NSqRLV6r1WiDg+lW3qvI3g9ow0lq9V6r4OXilWktXqvI2iDnRhpLV6ryN0H2qHwkS1eq8jcB8ZaS1eq8jZoOugu0lq9V73QGHoLpktXqve8H+NLpkvvVe94E2iYTJavI3vbATtTUalCWryN72NAYtSXUJfeRvexsHupxr3EvvI3vZQDN01L3EvvI3vZQDNC0dxsJNnURVeRveyYPQlTg3dxs0RVeRvI2FgUhGPG6lj53I/eq9Vmi6ND5bqu9VyHWgv7vVci5HVoyV6r1XgnJQXSu9Vj4eKKDhAJMWFgjkVszMQCctA4Limou4SkPY7FCxhjsx2ZqzmPdmOxqOi5+lHVZ4PLkAWCYXhDGxGGIlKIZhMSDi1VrMuLOpxYs53e4hIXOziF3c52c5zrR9Vfb+jkavhSckO5Jo+1qJnt1XqvI2sHcVBYi9AfavUYObUXqverJgYiUo6RXMOXSteVVBB95G97BNFsAwwTbQH4BMyWFwSQNAXgwBkBrgwhGDBxCHgL4Viq2BkDICmKCgcY5zhOQsYJQZgUrhMzOczBKCuQ4Xi0UC+4f40RcvbONhWpseAvUjUud60871PjdWKu8jfDukS47d6roOdRf3eq4Fugv7vVdByZ93kbwuo0v7vVch2XhH3qvI2MhwclD493qvBsjL6j3eq8LvCtVeq9VyHWRpX3qvI2HoJ8IgZgfA4D4KIr44GILa18sWhji3yjvmDg4TYUY5xCLRaW0jgnEzGZxCQuYxlw+rmK6OmbPBaF4Gm5AOQNIMXBkAxRpRZUIwDTDrsUFweuZ84cF4G3hxzij2KkI4BUFHOE4ndmYKxCLyEcxTZGJuvJ74l9ewDUCIIwVRpAF4PhOOBRBfB1EwPQMYfhFDkbhxQKAMAVARQUwYw8E5ZVjmMLCgWFhNnDjmOKM84ccOOYxzDaeb7EPrSojYEFB0BgArwUwDJA6BcLRECABnSCIJQLABUAnFRsPywlCODQHofOF4IwDeFo4EkTh6HroBHg/lpE4fOFAoF4fOBlB7cKAzFBCL3Xx1GTujM5vl9aY0auZmN6mST+IM1dN8BYppX3NXFOYydO7aguyc7sZvy85zZkx/EWLwMjBSDagb0yhVQsHiDBaWICBQW4WkDixRnlxCwhYOOKFszMhxQsOFCFjs7C5mIc6+lvbRTSX1VFrDvqVoWxsURe71WcQY19DwaHnkXa+rvVeBuHBqFVKU5mb1Xqvg7rENPQg6TNXkb3tIHZqSvUvI3vchRO6qLSWr1XkbkJ53LpXqvI2aLpRLpXeq8HRn3eq8HVQX93qvC5GFY93qtYec2FUr1XkbPBxRGYVSJavVeRs8HVJejy19XqvI2KBeFIHQKAHwGIEAEIJoeg6g6i4cCQCADIJAYFgoBSD4Xi50jgnFASBQJmOFweB4LSzmFBwTiZjiEhc5jGMc69V72AdQAgkAIkBLwiBQBdAjICsghQqAKaUDEqKxQAXwBGiEMwOICLKC5wYhTaKBwDYDEMw/HARoFuOYKoSCgSQricDgBSBJAg4ItgvHA/HALMK44zDjsobvRpeHw/vgvW5HQwiX98/v+hbe3vlfyy8OpVjVWqsLu+nRNatMs8unMc5/0hRAJNAf6wDeBUDwJICWAItwAPhWJiEGAJQFKD2BvgQYWgRMJAlwflg8HArh8Bvgxh8EkEcHwG3gycUCS4cYBaCcEhhwcwuHARrA+cQi93UrvNh8mafJjqy/zSvVkxWlWajv+SWilONlTy+pVnSXj75b/PfLVWcu3T3z5dpbADoAI/AC3AGGKhEFABsAMQA4IBiwDVBSD8UBiTCMBFAKUoByAWQIQMixQcYLgqBUA5wLgUCcK5bFA85C7BIFACSPYKMx4vISFjyE1y/URN8ZabT4l8kVArZL0YoxL+AjIHQAXMA44YhFD0AFMBVgHEAM+EIKYVHAhQJ4UAAYgQoEUCkA2gqC2FShCOAW7BeJwOcUCgXR2YTi0HsCvCTnFnMFDmMF+cJ2ajEXvosOwohuDCFEXAggTQQwnAwg7hHISwYC8GAPQvLBiHoRhaOO5QhEweCgWsKC4TkI4WY5jihCxjmOY5jmZ15G94VqyADCElAr0Mk9K9X6VQtcLnf1v++C9Oq8jdfVaYOWqMbmvgiq8jeRtMHAy0lq9V6raDfqpVK9V6rHQbtRdt3dBNqi/u7RDkz7u8HRn3dpBNgwld3wbpNVpK9V2PA4DJqsJEtXqu0wcYMJEtXqu2g4VRdt6r1WiDgXjJXqvVaIvMpEtXeq0RfVKwkS1d2iDfRht3aIv0F23eq8LzLb1XqtIHGTp/6kzMq//6LvVYAuoCkgAPAAjgNhgBwQOwDhAQ4BIgANnYWtJgKeBFwNETgVgI0PmBkHwMIMIPSwRjg8YQg+AcIfgzEIVRQQhVAqALcGUFOCmE4oc4XsBFkI4OOzN5jVSNKxYhTEKiSiz2y1rPmOieqx2Wx2Y4wxuY5jtPLsdLVZ9gHlAJWAugAFQAFwNMBwABhAyAQADfA6AMYF5oIcsAt4ETAqAyAZYDaAbpQXMFwnB9D4BIQHIFXBWB8BThAMYwS4EgB0AcZCCMDMGcTh8HofigC7FAKgMwRoKYGdoqXp0HP+9ydkd4S0aQCmKsCGgG9AgIEKA1ANMDdAFjA1QfANwFOBtA9BRCuBrgbQGoDwHgVgrg/A+h+LXC4PgqBWB6D4sQi8Pg+F5C5xYhFxCWc5zuYZmM3SRk3zqrKcvVzGS89HRS4fGgFZFgmAd0VnJpKJOZ2/cqxvps+TDVvcMGWj+a/v8mPNxGp8PXRifYO4GGein2wW6RM6mzkq/3OI64xde5/eO9WbRGWm/Tof7CeHyh7T2HtUiPKjmkLWPWsorOZJlznzFmzAhmZNM09xmDEXVYd/GE2E0KJZA5JIRBLWPDUzNSxSVk2kU75mY5lxPo7dYElp8XSS93tkY+BAqw7B4HMopIqPQETt1tWTUOxSuY8y6Xsde8xVZJeklgQYvnIov81vFkIOQ4ym6mFkkl98+V5rpI/qVkYss1JcvnIOvnf1vnMl8KzYtBwQGTs1JJeOdC5w/SGJtbnb6YoxHYZq0h2d38vD16tL63dcz1YNEDw+bHgodEU0e7eNKHfSTs3kUtZFrfSUzzE36fNcvFtB2R6Dsd04lJ7UN0ND5VjTFr/b3zT4bRiLSxozJmptQO+Kw0HuPluagv5ShJMzlvmS7XK04iZZtYdd15uil9WND5vxUIRzDbWCdUcKUYTcJXMa2lndb5pehWILus5RyTe+mddpMCw07Gz25pHFtDk8eyaSxEJUfVN0cbdOanRledmafZqW5djI4KyrSXpVhR8Geu0lrUQrjw1znc7Lruy5zTNPZnMzrNEM+d6Xo5HF0miv43N3gj98eEY2A8j80eCdI+etfWnj3r5iZdmSRw91rxwypGbnT5L8vJLNpU3oaTszrMS+M2SKN7ISglFgbSPlhOTFiXOmeWPdT1kTijlWXlnKJauuPqL+RAX1Yuvlm6Y+nmJtzl8JbhukHKLW9q6jxuTbJhlEUWtLUPOX51TPfJiotE161+C9WG7VoI5J6aS26YbmLrv+6rXZgxq3ahk7eQO/6LWbvWmrDdCFEmCufjutfnpbvk8xG5mbDU18LTNL1a+r4qx0NOvj56RsqsmuuN94aZYY7LOxstTWXrLVgQIMxY7WRk7l5sNxwRi6Tzx+RXkCkdsNlTTu+H9nMe5OlOoYlDctXxxjNX0UTXpTYairCUZNkQiIq4L2syzmMJ5uZRiP/fHZQVlbWyZibPQap9Gaxekw76LWWEKU7rCxoXO+rrJls1iDTLWSrBGyzU507xGZzEOujuclo/lsGWCDVj8tG0h2VtJr6n1UuiHM8FS69LXuf3XpSGfoN0v5nl/eRnLVX50EtSZq0yrjQ0k4gaUKNbOlhZpUpiyzLGwxVzLRycpPT8rMu3ncj5j3GQ86Bmd9Wh7NNabGh9o2eehIcsKlTu9v69MqSrWXLlYuaSnTMOzdF/HVTXslZFMWFwSw2+LJBsFxMRDS115cxy6fy876XuVm0zXJIKRSERpf3y25x8pTRqTX0Y7LJh1S26FCo2PiLzPXTHZeQou2H9X2USpsqGw2esYL5iLUnSiv1L/ZwOh36gkNRmUPXqmKHLKzJJ1WMMssLTuuuf50rM0B3Rafn1HN+9hLDrMFJMqysgtbnqds/rhqsvkwwYMvvlFbTp0P9y9E2ptoOKhMCUK9QqvE5X05cw9sugxKzEe0s1caRlWdVr0pNmurzPsaDwRqILTLJoj6lLe5ralcNMy6TE2OnnI1o07zdIpRT5V9iUHZj0CiDRopL/TDhs/r0l5Vd1a95GtGnRl6DEXoxr61arEYJ5YkC2IdLUD9NZvKiuV7r1GWOGDrNoZidKS6I6EGRjV1CVI5FfscD8SFR5AqNeVBGvrQwrrtcpXLyvwYZZ8w1J586ptNvWqmloqygUnMR/Ra03TqU1J5b0NReXse7MM1cajX1ZtiYKCic5QmityUnMXllj/v3t3fS1WZmjU9zLS/x0tXGrqwZoFbVm6d8c1WLAlsVTXFMbmKYqwqTOW7M05qrl+YMMvIJPbjnzvoqbhKEYXkqVmwQoewgIihyJUpys6VllKha38xEszs6fb+MvqPLeX9maqHzYCKgcAKUBugJ4BTgb4ADoKQDPAATANoBVgoQYANIBpBAAVIPIegzAowaArhJFrBcDCFYGcHsGEsOB6GYfigXMYQicPBOQscx0mGZzMtsK9dArZ9+C5vsA0IBNIBeAVABZgEEARgA8wIUCBANcDrBkCPgQxMAd4BxAjAYAUgFiBFGCcoJhODMFMAaoBHAk0EoK4FcCodnC3Ab4CuAXAuBSBmCkE4MISArB+AkYvAhoVAUwKgH8acuVrPx2XpjTo0qxEkUvi4QOYtaA2gxbGTmStj2TK5fDJZKsxEqzK3zBFGmwEXAU8BvAHIALWVAOEA7QOQBEwFjAdBORO4VgcoCOg/icFOBVgxFAph+H4MYMuA2+KGDgVwHAH4VyEEKLyEJQI0DnBnArwU4vFDCgvcDQODhCUzt5RVn21M89JBbWzPd8xmrqudludlsMN+YxztMvrMZ2qzFmg4mpG5KU5SO6s+fqmr1XaIUYilUiWr1XqvgX+oukS1eq9V8KKJht6rvhRqoVbeq9V8HGjDSWr1Xqvh7oVhpLV6r1Xwc6NhVpLV6r1XwdK1KtJau9VpA6mRToI6vVeq8FPGl0yX3qvI2aCa0F1CWryN5GzQT1S+soS1eRvI2aCgqS6hL7yN5GzgMjyXHiX3kb3tAH3z304l95G97GwBUsM6Hj5L7yN72UB/HV6Hiol973vYXAbPO0ziAl973krEgG0c+cOjx7SL3veSsCbAzBUBig7AvAUAB+BiLgqAoAdhaOBiDAEkEGEMhD4KgfB4LSrBwTCcJAMAoYQi8PBcQkLmFBwcEw44sWc5jGMc5173h2IjVVgHEAGkAL8AlQLoUAL8BbgBoAC8AA2lAYwqiUGQHsEGBGgFQBGAVwG+EohISixbg8FwCPkIei8BYQ+DMoJm4s4XgzgOAKzM6MJxzEIvcwTuOUQbO62z537HxRdrPTHSRsbPW0xLY0q+z01j05JBsKTnNZqY/xnMb2OnUYpjmNY4xLppirXxgFeAJQADVALsPBuEgBEwNcCMgHaATcF8E0HooDoIoDmBHDgCNgOEE+GQ4sXlAxCqDOArYCsDgtCAcwhIWCgW4JAfAPATOcKCxCzC4TkLGX3HzWhWridCvsEKATIE0JoERCSE8KwBkAHAJAAQyYYDgZhWAZwFIBCwISOARUKIlWFQcDwhB/FAEMCsHwVgKsMgUrgzYQhJw44C2IQSOHCHC9wFXg+KDgvYaPvRfQg0IEWMroZnRSna/99fLL/18x8rl8sVZJdumYzXNdu3gBKgEJABRgD8CYECCEAMKBGwZwxAVUKAlE8CwB4AdItDMC2AV0hD5wmDKRcGICHBID8PyECtA6mFgrB9gZgaAzAtgUoVgOMIBwmcHzAHIDKJ85g4sGqGqwAUt73RN3yT4gCSyX5jvgvy8YXlAnggQMAPQJsKYRQ7BhB4BBhQFoIAE0GYfBgQhHCmDEHwYlmjgeBID4JAuYUFwSBeJyFjhwXBiLhwoQjhZjmFmMcy7p8XAtM+71WaHXlI3nKJLSgv1pafd2aLHwr7vVeFugv7vVchy+lUrvVaIdGmErvVeDqS9Ngkq9V6r4uXKtJySe9V6r4eIGwqmaSVeq8jeByPXSqkElXqvI2gH6GjR0javI3vfB1ESQK76+kzV5G8jYsB4TOTocDEmkDeL1BI4hEgRiZZg41zGNxTFiEWulw4EgUYhphQsHoteODm6rCF2YOONNr2cd0n0XmwtAmxI0AVEEQBsBTIQ4F4GYAykANJAENLA3IWAzgwsCABFi4CoB6KYGZ2cGQPZCOAwi8hIQlA+BXE4vCsDOD2wThXBoFwMofhIFAuZXiHxN8Umy+TySrkPJ9Rkakkq9V5GyAE6CCE4yc0HMKgIYGDk54tQPB4BQBmCDcWY5hYUM44wPheJ3C7OF4uEwoYwczs4Xi4TihmcLxcJxx00832fTzlCKLBPQDGBoAgwdQlAJsKCYUgJ4E+KBaDCH4MDWM5QOwkC5mYQlKa5WXF3DhZj3DgtYOELMxxRjtH0VcpafHiwENA0ATg0DEHoFSFcqsOgE6ALKLygM4Uw+Kta5oPgIUsJsHgFWEAwvDwfgRWHKF7KzixQKwZBVYQ5jnsyStZGx6NHyUqy2x0B6kKjzsEvzNF5PesYTeRverCwJzUTd0m+uZr3qvVagGBC3zmvoiq9V73wMDI0+mktXqvI2aHr6VaS1eq8jeClBeGktXqvI2cDrpLtvVeRtYO2gu0lq8jeRtYO8PjU0lq8jeRsZCmf6VSgkq8jeRs4KTPD6SJavI3qs4Xs6sJxBHV6r1WJBGHASwKADIAFVKikIoMAI0CoUBgWEAAogD4CmDCBTAV4I9gVRdhQGYuAggG+D8LwYwR4JAMheHlYcHA/CAB8CUGTnZzxc9jrszFgDigEfAGgAMTQuAYYBWgFLB0AOwBDguEzMoCOAdynDICuBkD4sJgqDguDMDYA7AN4GbAzjgVAZw/HAYyEhE4FmCPA5QZwrhmLg8YGQKYMxaOMId1Do1Sb3+waTm1P0vmjNP4xqBh4sA7IBIAC6ADgAS4GQCOAqgNgEMADiAB2D4GBCDEFIBuAGBLBWBEg7gogYxcUCSsXhkCoA5Qqh8H4HIClDMPhcDKKAehaCLF4P4nBHigKzRcLgZgaAklCHDmyfg6Z31Gf3x+Z9aZmSSdE2edhCuTkW5vku76d+Zp64le/MyuZMRN4CDAulQmOFbQc5LFg2KtLEBA4fcVLEBC59OLEJC6nOLFnUq4s5znOv99aIutSqPsFoA2YSB+ZeE4o0d1aa/bOokj3HlGd0a3tGqhHSbagG2B8hdYQh0eelpVjFcvUR1e86a0PirfWrVSsWB9AUVQEGLygUwJkKotDMHML1JcJQ9BBC8WhkLxK6VVuHBeKCw4LWOMuYWzrmtHejRJF/6o0G2BdAEYgEAAAngwgMMBjgAIgLiBDgUII8EWHxQKgSQLMDmDsMgOsC0EwvKLYzFqBIgcgoB/BndnFGSOELMJ3kIneJyHOHHOZpUSl6PtFa5fUq0YoDviLAswCWABlgJ0A+iEGAAZsAGoAFgDkBuBwB1wvF4G8CQCgBBAEcAgQmHHOJuIRQEkGYGYK4fgXISBO7MLOYOMAtswcxC4cE+E44wcYOZxmbo6Fa3sC0AJSADDAUMHiBwCIANgBcAAWgJnBIXjiAUBKAswFqJqBUzmTmEIfBKB7AdpCGIZuY1zsQsBnD4XCjFGPHBfiF4mhQ7fRW5JNwMoq+vIKmCPl+RRYDdAIlADNAN+AVVgOQIkAfMAvgM4D4DgOliUMQLACJBHA5gG+BuCxjuOTItLB4BrAWgmAtBQOPLOfAvA4ShC8TEOYx2cJ8LsKV6tO7+Ym9P05HTYAA4ChAWIECA/ghAdgGwAMcACWBERwHscHBaGQYAOIBYgLsDmB65MXE2FhyQ9BFAWYG+D+FcJRDpctjhOFYMwyF44QvE5COMIXlNTZjzJjxXVj6XzpVrqzKvVnv/f9Kq/o6Uykcv7vbPcqx2XoXpV7tOYzvc+Vu8Na9uXFZjtIKQBrAQoEjgw4BtgK8AWcBC8E9BzgxwG2AhAKIGjB2xkM7nCfA9hmKMLWMksUrOHM5j3MMOZdIxq03qjfSX9nA9BFU/OYHAXOSl8eUCzG+CSPd2kCZCxFUZS1EdXqvVbQdoR1aGxeq8jbQpq09Mlq9V5GxSDrq1aGktXqvI20PcirTb1XkbaFHUXSvVeq0Qb9RdK9V6r4vxqtDugiqr1XkbHgTIXM8SPCwoNfviJTLMXVEle71WAAWAhgELANuPC0mAWQBsAKKBuj4LhTEIdsBHANMFED+4Tjj+8hFrAZQYRfQ4OPW15YtmMev3hSuBTKGbOU89sM1P9SzTm/SYmc5e9F4zZMe0R5CVJZ1Fw5stdLN4zuxmXnNiVa0szmZvLznLMeLAFTAhIDbBIBkFYHcA3YCrAF9AthMBRBFcLwdxKBFQI4BdAOIKuHCjCznSDCDOBDgIODQFcH0XaBx04JAM4Zh+HrnZg4wTuLFmMdkbhHUrFgG+AIsADTARsJQ2FMDNAPCAXcBPQMdYeOE4vAbICNghwIsAqIKYI7GYheLsHgMoFkOAWwejhbDjGDmDIDjIXOcLRzEOEzMLnCdFKYfBf3RrdDzZJKBU8YTYAzoBLQBmgCxGgaAZAGFAdQC2ALKDfAmHGA0AowIXIFgADgCJCMHzMOOF5CD6BUDgegR0K4PgZueQiYTjgZhXBGC/Mw4HzhczOcGZTj85J80+Y1PjLfy8meRd8aa1Pl9Rp0fhY7JneGszNNF5r/97Mzw7OnTGnOjrzHb12fNXmdbgFlAJZAPGApzANACaAuwaADCAGQApwfSgMBRMIYFqAWngQ8FODDgYcxxQPAZgFSAGhD0DiA3gRwfi4hXhcHwvArReCLwuc5wnxRgZME4oHEnc07f6V3Jy1Tn9wK2NE2AcoA6IA0YA4IAtYJkBUwDmARkCIgK8BDQeRaoLgpgQIBUgUwPYG6D6LSHRmPYLwexeLsJ2ZmjMYJ2DjDLL7UVUyPmIBVezYjRlmwCpp/1WCWBMsdJWK/bnS2XdJR3bpVqNGqrRN1G0b1ZpWrn1P3lXzYGAL3HmpboyG5Ol6anN0lpkxUGeRMsdmpkw1dmpTkTC22CYBMZQ2YEQ+kPSgXW1r+pJhjt1WOvDvrTl1vpBVTRmjEXRq0Ye0vQKrkUWDoHJ6MOKhBb0EudumyOZbp+5RVxlxhjrfNalJfJihBqbo1KIg9H7mIMQRx7BzDsa0tQ8+kJZ6/Z/MVnO0Pl9PY/kjL9DNS/y9egvFXCPrmW2E8J3whRPTSSy8zdqWqM2fmvZquEfl41qq8t/GM2i+O8ZV+9h0LSqcpZ2ipb3wg6VqbyY+kvNm/JaMkSRdPGafNh2LjhoJgkYJBqT5U7kyzpW3LWxitMkvD3e9B2ahlnWjvju/2VBNsbTUU3bnwm+ol7pQLyqxr3WIfp/pNLU91Eccim+rOg6LLB8cmPEO6e6fYoetJVy1mJl8mYtcZHqavu19TuMYv+sbJpebBKBTQEY+xbQls/WxhR8uhfQa5WXyZdoJZvfHJLf99Mwwjr3RtefbgMNQLTyAqIUsmp5eyfoa3+S63yq6zdU5zp8t3VkjgvN6sO49fjSYq+CaEakKSKh0pmpNmnMSKYp5Ly93zFfeRyKqgwnLJfFg0mnGz4XOgj+q3AlAxT05spytKNOcdWWyYMVipeSN1owNIw9HfSSySe549KpyVqJjZ9PJi4NzmeIfOdnMqaMTmKzdBYdOmJc7TaI81GaethJFhLFYeIHblA7ymat8rUSdpJPfQKm1qW7ci9ymzm6WsI2zxjFjIuCfglnYqNsPak+VCAnTc2nxc0pSWpJekx2zfRGjZeMt/MTuwY1YhFqTWDw90HYsc1yqaiqjNwO1loP5zWzqzdVX6xvmap82cLdI2Kh1ZAkoee9Q6PNRiZlZlzCJ11L1to36pGE3qqPjbKEOLHoOaVexM7nJLj6UG6p06Zq/GSiYak9ZLFzUHVucr7RIFBsq4boVoNax6z0NW7oQLzNbmGWhFCFLr3ivL4gx9Np/JPaY5JO9hYG7REFjhs2dOW1yi+olvLZc+s2jEWIYRGU2sRnRlvdJnz7SiURk5s0rQwq4ao5N3OKlGKL++lZCVatJ/I2DF1ygiil/qkkd7RbjTpN620STfcHS5awNBEI1EGt6rg5ezkc5mdquDh6FedJH3Pmx3nDsPOtwblKC1Lj40NqNWnlwkzNJ5mYXqCznMdXs2UMtWZfBiXyS+rRST/07/2sVhaPz2olSp2/x8oZRjWzBF3uGDrGTj05qNyXvq0mpLR1cYQ+bHgbVjh0ZAaKsUTTf1GSUa1RcF+5znwy6XC50nIZdEcjH3motrUOqZtkwTpwka5BFpac7da0nIaV0RrZOjSZc51zONhurU+pL0IMXQNUx4mLwfLKuOZVdcjT4Juy3yZc9ytEbLnLkvy8RGdp0P82/8vJelZ1WFosSH6OKmnHKSxnnlO1bu5ZjmGZ2gy66N/8+n/LLyY8WaiabPM+yAPBqBrqCJMeWuXraJKl80wwuWZz2Xk18/onU+RAgzN4Q85uhF8VosRA6oBY1MRpOXgupk4pqbnet1fuRM9r5spY7U9bVvmx2MjGRMR7HApFVFrPY0oQD7d59FNLNJmm5zLO/yOk2paRTaUybq/1TJn2aQg3NDTCHp4pNP71CucskleZAwdb+j9IQMXI6fKsy5pHGXYLw01LG8VVhU2dPyDevlEOZYqwldZoK9R92vrkq7Rb2zph8yZkY1YEqgVSnJrTSUaNeqpfzcztYZlheLNn1O++9X/orSrEWB7wjSQYK4pI+Q3ZGKrUhVZh2dnKywvFyafRubT5hpeLe1F50vrmYsUFqR3kRZq0P3oZujt0mVmJZax2TY+QngrJMzfW2nopaIGEkbaMewxNLJm88nJp09PTOYt/M1nFVWEjLRzfWNh8SZgY1cyhJspKtM0rRJM2CBIeC3KC0J1FqrfKHLWry9al5z+SOudJ8Y6Z1NMVaSKSdZNv0yYnVYL4GMGjMgUoeScpvmtlb1y+uYgvEMMOuq0PmfWbzEKySTcDP7x18TMgd1WBLAoGuesaH902eX+Xw1ZlszQxZZu9I6UX8zS73hXmvgzHsAFwA6YCzgA+gG6BjAVQAxIAzgCpgApAREJQsKC0GMDdAcgAsgGYCRBRiYWlPux2D0GcXidwtzH09guwuZZyiZs5vEFpJF0sZr6TY1DCbABmAJsAIMARmQKYGQBYAGoADAAugFUCKJh+JsJgOUBvOAcAEHD/B/3OLC8K4HOA7w/AuAIIClCoKCF0i4MxcCoD0H9gncUYJ8OODNwuCQLjhU1GsbptEaOldRHyyKBjMiDFgAqgE2gBZAqAsBFggABswAUQJCADKDgeEUXIBAAa4DcLAWQEiBFhRCnqLOFBYBlgjSEXgO8H4GcM2PEonFw4FUH8IAX5nIQ+YL3sYGZDJU+leIFXKA/k+j+zM0zonLqXT9Ts392d4bHnM0rzGZfW75rc6VsALqARmAG6B1AH8WBMgUQA/gF2A1AfOLygRQjgWQHUBRARgBxgpw9YQ4c0B5IUQfALYWgXAoExTkLmEOD4DlHHMcJiHDjCEcwnIRbDZRvGpw+KWSRp0jGe+CKS/IvoAZoEPAcACjAgQD/BOAFuAGZAdgAwYLYD7BdYHoZiUBzgLOAkIHSD0sTOYOOZIVQRYDfA4AUgPwFMLnkLHhkD+EkJIfZ2cxwnzhwhYzVF76i8eCLrdIw8gd1KxYEBAAYAUgAs5YSiUCDgWAKgCuDcJwlWLhOOAbgFWD8AziwuE7lWC4TMB8DMMnEImdorMISmcwy6953x27/cClfSy5bOar9O760dWaI/orRZwPAlDX85gtEjvNafKBZjfJJPu74vyL6lu5HV3aYvMtu9VpBRRMJXeq0wpVBdK9V6raDn9SopvVeq2g6om0qmS1eq7TB38l0yWr1XbQT2OfXHtBFVXquyoKITCIdhYai4cZ++JlQhYh+Sd16rsBBwADQOECGBNIRQAiYCJAKOAowUAwE5UXi0IoJABqgowgBcJhQOUySEPCEcBnDMPiw4JymczOFrmMHGZzM5z3XCL603xSs6sb2zJHVgaoAx4CMAV4DAAzApgRECNAGGAcoQgGWC+WCmDwF4BwwFoASUC7Co0TjjCFxZgIUESBFQOEEeFcH8PdI454MYNAZhWCq52YOMFDiEhHGO3hWrpsQKZP0u1ee7VmOpmicyH06F5k090aV9ua6M7rjyx2kAYcAj0AOIAEQCjDoE6BrAEGgAugPkH0F0HVwLwsAbgDjDEBVwFXBT8TMEziHhUE4egV4FuFQC3DwUYszChhQoBx4P8LnMzgyYKM4XszZt/yONRnSRfSIFaiWbAjIBP4AbIBcAMkoJQEdALoAvAA6IZjYMXaL0A8ApAHIAZVjQrNYLV4cDMFED+D8BIBaHgShO6ROQ4PhcCRDIXh+xxCOYMwlOYwhdgmH9UQv+lXzo0Ek2gstlk6LYoTd4nOllOIWQ3Me1bHZg56lblZc0pOcyVWM7XsAVcAooBawfAkjgIMAGMAJcAHkB1A4gTIPWCmGQHCBEgdQOIAa0DgLBgUa5w4DCFcEYCjB/BmAdoVAkMzSjnDhCAjjmC/DjBwX4XihwuHBaCuQZGMjMWtiK008k5zs12qZeyZY9bJzGZjJdl7r7nuc5ua5z25mYxgEdAJLAIoAWwCcA2QKgAXIAfIA4QDKAswBYQqFQUAGYA6AEjCkEkBJwEcDwXli5bAWwF2GYI8EbLCjIkcE7MKHME4nYwTjmYOMYUYkPdTQk2J+Q+awyz1PXnMovFZjmsIl/yrFX0GNTQ46gzNY7OY1y9+x2Y5m66VqfmOczeC7HNWrPqxUAsYKEFALywVAegMsKQJ0KYT1HFSEHcHoKQuCoDuQluq5xCHweliEXlnbmHEN0Kaabprq+6rnfV1am2ADRBRKCmakPXMbvpTSktmofSZZcpIyZmrr7q0+rBiAjoeNHpPLB4387dvcUK1lkbs5WSNjrlNH1polm/pg3eKI5sJIA1AOIQhYF4tEgJponFRNzCEIxCOB45YsKEK+9hCUISmYWHCFnnOYQlC2cyzU4yMT/l7qstWi8EXsAKkAlsA8oBkhIAVgBDAFGBRgUgC6gF/AZAmCKGYZgOIA54tCuBoBTAZYIkI44FZgoCUBZAdYFMD0DOB1gV4MgZh4D6HoVhOCMDMDbIQSIfhWYKBeD8CMCsOCbCdxw+5b5a/yYq/lovhf0iBxhNgJeASmAGgAO0sMQZQUgAvYGWAFEAqIdhDIGiUBsgLcHSwfALEKwURwTAyCYUBJAqwFpAsgaBOCMF4Vgfgqi0KxYTicCJgWQDpBoBFhmKBQwPwVAfi4hLELBoqd1rNapNKaY3Lsn0ZXP7dEGZzvoMf2IZH1oLgfe10zGc1jMxmdpe3yynO7Gf6tLM53lWc1yvygKAKA0Af4IkDYEg+EYE2A1QgHB+gA1QN8ClBOgxgbADdANwwJQeYJAVA8AsQOECoF4VgSIEJDMJAveJiEKoI8K4PgZ53Y8XvczO3uEtSsWsB/N8KuJfe94ds4FG1tKlSWr3ve5A0B3lw10EfvI3vcA+/0+nEvvI3veB7odhUe1EfvI3veB646aqoS+8je9ognKRVpQl95G97RD/UXUJavI3veB35eEyWr1XvZME8IstILCFQfQOSjRJUogwqowzWKOcxjiR1zzYp/s4dmO9KHzYrA0wzGUMTDEIgtYIvJTle6hxjRaWKMzMQkLCitOMMYqwc1ZjMy+3dWLaPQk+JfEmIvhXC4NNUHnlWVRecozLJJ03veStQHkQ6KbwvpsGFBsg0klL03kb3shIQKEKYJMEGFAB7AzBJD8KIMwtF4eAzBQCmEgMQ9FwIcPA+DIhBjD4XAxkIeDhZwZC4XhmLSEMhcQidxRxCKCzhxz2XHuW0arFjgT9x02iYrQLSYZ0swrBHDlfeq9VgC0psApAbAigKkJiifQBFAwcChAgo4TKOKh2HYDaF4fMDxwfDg4xUhDwCtB8cUBRMYxmcWCUQhXHM7MZmOl/nTZ7019Aj82B9DoRglRMIw9EgcDgbgvCwcHA5E4eCUsssJw7EwtKMIRMLhOQsewhEwtHHMIRwsx7HFHMdejReNo18I2KwMOUUUVk/oXD4zTHvI3kbRF6NI6qbd6rwUK0KpXqu4F+hWkrvVeF5lIlq9V3gcTKRLV6r1XgpIwXSJavVeq6B0xpdMlq9V6rCOsE2A9AXgewTIMQMAOgfBmDQGTQqg/gmhQEYWi4MwKcJLBYJhO4KoPwflGOCQDODGwXB2JxM4Pwqi0UChhCLhxjiFjiFmcj4NVRvpTKvqwBvwCKwAzwAkBcDoDGAsIA9gFsBlAJ+CGB3wZBUAAwAB4KigA6wCorKFgk8PhMH4ZB4BbA+DgDsLCjC5wmCSHwoCsAs4M4VwzF7iHEIMzsKHMc0eWITd0vYyck36Zh9Ge9Yg0SzYB0QCeQcoCEHQB/AGYACDApQRpC0ThJOEgCsgLeBmMAVcB/hkD2DGHpYWi4HsEaBdAVQ4CNAcwZBKCuOYTCcXgVYHSJgOwcE44wszB+QuIXOw6KoxupB/GMXK3/Q18EsWAdIAh0AeMAegBNAjB+AOGANoByAcwoBjKFhOBTANME4BnlgyAtQKwGAhF4uD7hJBHgWoSsGYI8EaEpgvF4eC5gZhKBmEwnYQi0hcx7nOc6h7dWP4kzIEl9jJ0HjMTMzBLBmqI6GNWB6A5w38nLWHiESv6lprUyBHOlVmm0UaS0aaY2DHvfDJtSjHkzNkwBiSHoJJOIU/9T6Uykv8Ec2jktL/PJYuGzkoqfo0EVXgFUIIFI0MrCfz2ROS3puWovmZLsufkYVrSRU+RBm+lGRr1O5HVBA1YWAdJY+scgHqiTZe3oHuX+R+8i+NGaMIvJdWqmxsAZQOctfgHJN/8aEFE1t1WalvDzvuSRqt8HPhs6SSrcArRAxGekLV+erS87L6xjNopI6pN638kmzarRkZ74s0DrUaIcisG6j/o1VkmvjcxO+9m/eBAq6RfVkACrNHwV44ah0d1fX0lhA9o6tOpGYJG3CT0dG5LFjwHMo5elAKHNnqrlZDUfyYi5qXxofJG6n1aP761Pojmx8CKBqNMrDwTneu+TyjSHqMa+jDHZz5vvo16KvMTcJY16KsWJwOkG8D60mQBHDtwRwnDbZcsOQyFpYJBYooXhzCETuYWlxl2dcejZ0Gq1fo3Iq98WABAAQCAdQBGRYNkAAFQB0AFiARAWhDy1CjQGiB0gQcJJQSUt2cx5QTg+MEzsxVzM5jrlw8j8dlBhVg047S9Gd5sD8ASQARamJAWwPgCbAEFgR8BSAXwj9jgwBiA6AIFgOgMyjijGlGOYEgCGigFEJ47CjnMY7MzmMc7Mc91rK9o6+m76DK7at8ylSAwW+LAAbAJgAIjAQkGAmCHWApQCUgQMIxRvdxaBBgAnAErAf4KEqo76nSWA1A9At8FfyZZg/zGF2Zlrd4SThb29r/T3OVrTMvnd8sVlWWaJ33aq3+qOC04ayjXue5ubWa7uLsWx7J7qzJ0sh7GZjM7NdpznO/DIAmUAf08WFQ3CuBYAGPAfhYsWaWIecA5wrAjije5u7ZHBOCRA3AZwzE7H09hQThIHGMVYAUyD411HRjUTiWnWs9azoldfQZ7Wuokp39WA0QCdABvARDExGCiAMsAE2AoxYeUlI4gBQhTAOqAf7mPlVjMBWAHLBnHGMcq57mOcZdZo9oTpKm/RWh7Hsyy/f1WZ2rl61O0vmNMS/7yNJGqdSnOpemYzHszJV73Kszt/qfT3Zb1zpmXt3EoBPYCtNeeLQAywDNypNaNygHEAeInmmXaXASAhfJEy5FXRh/QXBH75q4VGX1aQBPQAyrgV3SwAMoAK1iR1NzFHARAA8DmNkuv6cBIGe5Koo0k9B8SXq/lmxJivYGyATkAOED6GKEAUYAUgAUIDYKwVyUCwEQCdAOsD4Qd8uXiZZgKYCPAohzDmqpc5zBxhDnMVdmPZuPtpHKbviZ72LzNP306G98dz2aC8umXu+8tevLRG9xUtslnQhp85mkpmdWXuVKZ2dOnSvQ7Me75q/8zLB0AJfAH/FRAUIQKIBsgJaAylBvsISbpAA0CsCkZLZ+684MQU4G8D4GQuZFKuKC4UELCzHsLMczOZhSnk56+qtsl2O7KfzEuX580ZqairUAlEHIKDTc6c2al7HOZyOXMaxzOYhrPPkvNgQYAl0AiYA2QDBLAUCwIWADQCOBfKlZashAREAy4BjgaAfGZlamYoBrCcBv4FFDDDnh/mOLuzraPKJNmFZhf1M06n981L2vp7lerLd530tV8zWHWDQpzP87Uz5z5c5kastrHuy2vKr0up7HZzM7LdpzmMbJCASIAedpoUQhAFWAIFAWgBEBKFNeJh8GIDkAgA4A5BQLZzHMxMhHALIUAiijpYxzmKsLucYdZoaePXoij9cwSRuYi+BKL3yUrZPbJei/kzRLRJVgC4gLuAOeAMYVKlgBegBvQBpgN8VByp3FcCkA5wVAPBPN3znL44LQruHJzlXZjGPdfUb50m/v5LNy9dEU2DeAnZCA8xUkQhRDchD4JyimUICEHIOnC8WZxhziEXOIXOcZdnZ1jqXqZg0lq5xqNdL0+bTAySkoDU8qiN5qnzZ7mr1PhWnz7es3TkYy81Wggfej1vprNBWRYqAylrW0bNHlytb6b0u1u8cl7ryPmfP74WMIIoi3moqzZUH0443StuN0zq6TWrXYK4K875KZfzHaMZi6RrG6a74MRAxqw1B7Wkb1m/ld/vHn5Biy9Pp3V/ImXubT43hpFPVgj9kcZdkIJ07Rkc6FTqnDbC/Mt3LxNo/l0iSLfMPibByBN6KTzayT5f5OS0rYYmL0b1o8ahhE3kYNjVqsHQHcaCYk1CmntbO7WuluW2er5W+bRRQbutVpiuMZuMmvSlo0kVWLwdaak07oqZN8qL1Vv9JiV8YstLjqq/D/30CpoYxcRNVkoViwSgshwS+s/7zqelNbxMO5im0Xgyy/EdLSXWMeIEWa+X1Ev4B66sKA9lG4LcbOk+Z6U6i7i8ahAZadJClqzi6xj7A8Qccd+ar7CgExMblSlpJpJ6Vr+hNkysvRd1ptROyWPV86NT/EaCT2s2Oq1WLD0PMgIeezTlw+m13Zj6cYY6VZq2/ILmZ9nP/1ebDhxbhaaQYpIrPGm6Mo2XllwulW5zHPcB2suGpGzkqnNmCTknL+6OWjUS/7ksEkWCVCZCRRM48UlFpD/yZ2hupb2GPpVn201YpP0TUzqfT5s3dbY31WLU1CyUiJ1Sck1DfT15zHGKe5hhhdlmxus48v9NGett+Ed2t1Pkl9kAJRQhDhEIoXlcsoJV5TqT/1JKsMM3c9zLBXGTmvYc1VatEXs5vWlk+ua1WE4HEPh58oCoSBxKy7UluHCugwvOjOY6wPBqQ6rHlukxT4usM1q1PXYJsFIDyCAakcwIzSqB9ZrZWWzegZjhAszL1ZGdGl0ktaLg02kXmpTYH8BTQhNoaJg4AewbhMp15bGlFwuny1VnqYVYwy6669EwOksTpuDlFYOfyPxYlAfoL4dxqPCfTUHeZTQIC2KVU9/l05jFXETHMuUj41Tk3rMTvoI/fOHtERmfciZZwOYLvLYaJuIW1M7r7FMVYf+X+bnOdNmtOnNRQj/TBihhF9aWNmmvkzFqC8Q4JeERrmyaohXVjNWNugv+1WtzMWxHIpZe+hbS8K1mOIuMZsdxuXvCvWS1YLIec/TyqdZsf5RSUNK1F6ny2bOTx8vSov7x2S+qbEQUlng1j441JrZJsQaua3e0im4o2HKHXSq5qw8B1Gl9xaW5u+nIUe/6dKve3vYy0kZr9Q2iSBAq4RebK7CcHQ0QAeSqkHD+7pXPkcXuV0kU2bA0GprR+Je1WdS1WiBF6h0/wvviZMVbBXRwycgcssPMOnTKyAppdBFzHizQJOYhWfVou1U+ZfyLvi+VKaFWSlC9L0Eq0yui/03jz0SObxVsVB0bksaCSrIBcJDfB8oIUtL6GrcWlcQRSvOvSboxt0m+nw2ywTQWKHUpSwlQ3he8Db16WmIzmdljo0uqfS7zlJrSdXI2vqw3B2E4jQ6SanTpj15JiZZAsh+q6N3OGDnsvLQmdWXuSfcYe4RUSS0Zr+RwMZsgAzBxbTkoxCdpdLVpOF0oVpMTUsexxFFjR9RT+t0ajLhAi01IRmtLmVJEwY1YZAY9C1RtLTUHhufqavnaHM5l26rrQaPJCmF+HOQ3f91ZM/czRmbSy5X0TXy0zNjgOYdUVNXI2soNE2w1dd27mrI5MOfRll6XcNIy16VmapWIECLGes4/mpfV7BtBxJ1XQaGybEqp8nlEKn6uXj+TDrHjmDKeilMsxUMtBEeHV7yvNkx/YkSQUDTrJiIeUH2r/5U9elq30ZYrF00aRS3y/2mPpuDx2JxubMyRVYH0clgymPjXFjVHQtjirnOzWmImc2rW0aSrmm7v75r2iclOivosRhes4bWkP4sPsbGac1JVzGmV3xTlqtf1mKL+5lHvg1X2JlrC4/NWk5rHaXypXchMzGjM0F4zrSNo2M1bW6KI+SxZr0XneFZsTN6LVtEUoLOmdPZM+VChL3+506Jat86FWxaMd9HJEc2C42qpcECz+v98qZejSYl82+H1CkzlmPouaejPX/HmwP0tJ44LE5EiebOSW2UFwvmW5kWaalOnGvq289umNBHKtCDFjhURTK1FEpHkVnKnKsYwz5m5jd/VaSxN+NMVKq7C8gHk60AeWSec1/xbvQZpInK04jZcG9WDoA7/dVON1N+ozAHdFgS5CgC0a2HJqKJKToUa2nzRmNJiLxqzlfq1VfR7dBiZLxYmCgU3PyzZXphelKSrmSSsLxfk4xyShBmzaR1ZFGwhAnNx2WyMxKap2UWpnErKm/XS+8w/mPuMZ9mozKvVmi8aLJhU69GSculy//TplrSLqs03RvRjQjovJTp0TL+R1VlgM1jG9Z6Sm5p0qtX8zSZirBpqd9M6iKi83M9FebqkinU/kkWWAz0nRDAsLbowq5yj2rQkinjBjLiq9POfVmxK39pei82EUAVoGwEGBeSGwMAUQ3BfIFtzmC0F8sWDIhY2C/YQihw4Q5xlzHXLYOebur78pesl1asAtoA+gC5AAeEIjLAAXgHTAGuALU4L8zFMCOA6gIYEomxrH9jxwTg+4cdmGXMs0er1p3cSTV0bVS+tNicAkkAjJALgyEgBqwCDwFtAU0IoIReHAYgXwFaBTDgEYBfFBNa2MxQcFAHEGQPw4wpmFGM0sYx7GMMMZZqno3Dul9KzO8qzZrGT1oyxj1zmTpmXysxMmIkzFgkACcACLgAIQY+CHWAb0AxoCiAutLUQOIQIcAmAAQQKUHws5y2M8SBrBTAt8CjHCmYyXjg4H7Bxjs4sxjHOc51FUjUcdUq8y0QafN4aXUtfTXtM9xLL+9ZGvTYB8gE6gEHAMAqg0K4BbAAjQH8PKNziFQgAc4VwKprtVb9hQTAkAISDOGQ4RjgoYxhIyx0fgay1zJJ/6oYd9WxizV1MZulb5Vd2voz+7ckqrALAAUGAOyAVkVCvAaYAVgBmgOGHLZKDAM8KoC5giWDj+q1mAa4BzQaHU50GHOLMMsZcDyiKktr1EzFTmPZmffS/97M7NZpfOW6Vvc3Olr2ZiROkR9akkBaEJY6aZoHMx3+Zpc/lMW3Zp8LzHMY9zs5jnszEwCiwOwmtayoAa4AXAbD/33aTAVIAgcog+CKgB1XZl8V42og1e9mnSX9hPAKNAOQNCMsoOAGjAC+X0EHs5UDlAIILdQsYZMsAXIpPi+G0Sd/C4EGrGVyl9MKxYKcAocAeAB+HCMNgGcAZ4BMQEUmT25QoDOD0AO2Fdjm0YdgIOAtIP7nsMscxWrOBJJopZ0J+pauXsezMYr3/fMzt276Pmu8vZOXMvdm4RNQLOa0gLVPy5gpUFMxmnd7maSkltTt3/Oc6XsnMlj3ZoPwBPoBDAJRqjQaAC4ABJAIS5BLNKCuQEdBRgbeZ55fiUFQBDQrhkLWaC7BaGTmXnJtnm6Ygj+m2iFDzR3zn0YW1q6JV1FgKYATwAegCGgH6kDMiBygA9gNYI4jFayEmLQAKQDPgBFgVoVyjmMcxkuA2wYQHHgUhCUzHd4mFwVCEcIXZhC5jiFjHMRFSVGfpMxpJKs5h6zkFxm6UDDSzncj9d37iN1cxStWH4BKgBHjDw/PApwCGgFwAtwiA8sw4H4oAL0BuhiAXsUBSHIWVlhQXBiA4QYwRg4WYxhCQsZi2c5jCzmF3Os1yivVrcikFVNtPZ98kxj6nT92bvkxJeiSLAN8AQMAd4AZgsQkAAxoA7gC1ARFQOm9IhWCmAWACJA+FHNd93RxMQg/YTRnf9VhRjLa1qsZox4wizm1jdBogTYUgFADsB5h04J4VQ8FwfhOFY/1FAnBUFwsB1Frncu7lg9cQlsWI3Wk2Jia5K24w6O76LHgNxzBDmHiuDRvQ+js3MkQZtjd0UqN0aJfzERFqToNk2i/tEBPINbKnFiWNGpbK4qtT5cXmYuTpX83NVje+3N0SRRbQNlYjpNQ4N/CTlwknKbtK3sL1pM1cIpHf5czO8P+dQxmbReO47fVvBhdrBUIhB/PPTOWi1XqLnLnvhWbORo2NJL1zmWlWReirRF/vYkA4CHImrNDdNSZp/Xmq8kmxl8UYq+lFToL1cgQkW6pai6IWtLfVTVa0qzemjdX+h67yWqtBtgTAHAW4S0MKgnJ9BJja61lX+SJsl5Msumy1JWac+b0VMq/TYLgEPKAtLlyYt6cDSC+tvc9TSXgvWm6ShaNUnUx5GE3COHdMHv+4w9hEAGAxQQrxMJsUKU9Pqc3N0SYq5jjc42e/3vKj0UVYsSAcobnGj8hoG5ojEbdK27lcoTUJuMVuMGXP3/0HaI5JEyYa+hjF5sTp+6skvMzYASYBEgA+IAVAD0ByAe4CWgDlgRUAD8MwrMEoYgGuAAUBDgZwsCkAXEFODAJw+FAfsCSCoAcIKLB+BYApQlYPgyFAucGYVgZxcJ3EInHCHMxYcY5gWNbo1Q56yKdFpwtKdNIaORUCqiwEuAKJCmiJQigUQA/YCXgIIAoQcUJwrYWAHGACMBRMAuggAog+hVD4cFwnB8A3AEiA2xOClAug/BmBFDmFw4KASADpE4DtEwuHCxQcwfibDhR2OLTSvA74vHJZH6PqGMArfvYBkQCNQA2AB7w7BhCSAC2AeAACwChA3QUIVcDGEkBzgHYwYgBHARdpMmErB+LQqBTFwETCuLwEnKCig8YLgkhmKAZgFpB+CuFQXlBNhwGZmF44UwyPLSVn2j/Ko7IxoQeSzosG4qCdBBBIBEA8APUCZCmDCCDBSAwrBQAM4KgeigXCcGMDWBkcLhcKGA9A0B+QsYEgK4SXC8UC8TsD8JQtF4ZOFoYi4cYQucOFmMhHUrFm83qzY0CfR8RoUJfeq9VnhU9aHqEtXqvVawTSsPTJavVeqzgMOqLtJavVdjIfan1mktXqvVawctRdpLV6r1XQUUeXSJavVeq5BvRMJEtXqvVYyL+Ybd6rPBzHhpHdalQR1eq9V4HVg9UQPiHTzCjK08km9V5G5CdjXxki9XeqxsE8LCY2WC/tJkImFhRwlFoYC4SFBcGAsEpZeYWHCEcIWOYWKOY9jmOexzLN/mtUWc3nfeauQcoWB5EwEuOFAiguigMRITEwYhHBfDEThICOGImHGZg4JhOKAxYOCYTCYcZMsHBwcYxjGTmMZaPpFWr6XHUd/eBKmUrvVfCc+lfd6rRCdVF/d6rLA6CMcXmkBCTKLMcfctkkvq7sLwEFAgYdgM8E6AbkCVAQcDXFoCHgiSo4OA+gqCgIoHpoFaCILC5w4UEzAewNrCjAigZHEJYWiZg5Afh+J85xCOMYq5lmas1w1x5pOXMzlyxzmZs50sdnSxvYr4l1MdDOXbmO0qs9gK4AP8AFmADSHaxQAswA/QBlQLgORWCIaD6JQilAI0CIAOGFVy8shw4EoXA0AGMHAOwIAGYFGLnDjhzAzA/gzBKFwZEOKYHzBJYQjjnKD3WvNWxzlafLMyeqzuhUs5irdGZD6Vc6c7LZnOW4eTPPlqAkLFtW71szGNVY50qkLhxV3XJSTEuczOzGZzmAK+ATeAaMBynhmeBagUYC4ALiBjlFAqlAfgGEBWAjQGoADOCQlxTNKBKLAVAEYA4w+A4wrhVE4u3WLg/cH4DuCUQifDlBkJ2C7C5gfidJwhWr+S1YysdSN1GiBxAmwBpwD1ADxAP0RhFBhAB3ABsAByAeCAH6QexOgCnCABEBVAWsCGg9igKq3DgmcCiBjA6heHwCRjgfhJE7nMCSLwKgC6BmIRQQ9gfZxCH4nE4fDg8PSoe1CM6pbPndjexXmJcyluZRiXL+atXzW9piKHLaxPOiWz2fMc5jnunQ+XE+xzO+nrcx0OZT2s8NjfADjgEQAHkAHrcEhgEiAHdAOSB1gggQwR1ggwZwGiBpgQsKyADXAZYMhRxZw4DKBTAkQzFoZAjgZwZRO4hIcKAkhmEocDIT4s7Dg4zOdeTTqK3rSZiLNmTlZXpJZklm0ABYoCGIaHhtpBj51N42g7rZ28yxj2OInXm477xq5H+IEWjPbJdc0Xh82oCoaQT0h2g2EladMvW3TJFDrmqUR3mXLI5Vgj9+aQebuxoxojmwmAQRIeHucsNp/QOxzZPbm+IMumav8ZOf+r4V9Q/kjtAgRZu/euFZA7osaBTujL5pVqzPQUfBH7mFtNj6CPyCpi0UfNCBVnAC54IKZw1JCoPKb5LHMLPiSJ3VZN1Rs0+X/3JqPNw73ysDumzwFHIBWnlwG/bCKvYUqJXG5hzr3N86UvuZmbrVkXzOiTHa+iWLcAbIsgs9QbH6ymrSg6H8icRTBhznXXHcbuaRxfSrvn0+LcAbpNBmGiAOllnHTvpHGksiC6/B1S9s7kTBBi5pLd57dJE2xkAW9RSa5pCogdof8QPUnSSOs5GPLziVz3WOo477jpejDHzZMAWzj5z1hx0oL9AbLLmPBjmHXP6VPNXqImOkQY91UTT/yRzLCCCmbgV81AtB0d87ofObyX3Juh/GXyS+8iXirC4AWBx7+mHKj4nVVdRWIsZXza3zbRS1Ro03gN00XD8uRDhpwiZPli85/dzDuZi8lkUe0vKq4ECrOmKzTtL2vgigii6CAFRU2TuQdZP6WpP+WvLguww72bv40QrNo+ZR/r6vYlAf7SrkgWcG0sO3W1XvnsMeNAxq/+j6QNfIgTc6TZW1X2gA/zjVlVlCqRyCDVvhehbeYc0im2t0GtwhVibOO36zeXbYEsBoExyTkUFNK8vKSfPe2eXrVZ50nZel8To30WklkUWzZQCAKKItkdLJytOt3t75I5lz4uc0U//qzuX74EGLpGThBmzQBVuk07okGny9emEF9RpnvgvFzMol506TM3m8x97QBRqJI6Eh9zfp0xXllLIqMOujTt9SMkrJuPVSIP9yBlPXh05LGpanxnfQu0VriZrIaqM9WLnv+jN0wZgYzaYGcWlFaJwreuV/f76ZzST3Uo155s6J0GYmLNRmDfBeiWrCCAnIqOTkaSITXSium9/nSRReROyUzy/IpuN8bSNrAfRVszJ8rZ5VW/w2FkUWbMPjSvRdDqJj6rOBQlQsBLHUi6McK2vSXKZdphtjtY5tT1Yqzsakc2S/Wx8iBFjgApfxVqkKJPavIHf/dm7Bgy0R2DW/76XwrRebNORoZ0K+jEKxY8D3hEVWQSnzzk/luOa/6JMOtNFEQ+BSXWXozBlpFFjWNdqGp0ZujUszzMkXsOwe8lRORCpMm1LtKe72ParOiw0LoaFYMUXm0NT+ZlX2oD46oJjSw089iqk02obD1l5ou5mdZ9b1Jys0tXiDBjxbY079Wp6siDVj4GKPPHhCkGzDuk3RW7lrrSYgw60c2M2HzNQZcIFKxZumtOqyoVlnc+R0hxu9Y5kyvtao0v5374m+jztOj5ZFM6m0R0Xi5GYbHevN0GfWix4Ho4Qje7N9x585jm5cw1ZdbjE3uuZ1TCrTHovRmrxvLol4MTYvBOD5Y9OUB7r31bs71qLIoaXojddZOhl575MyX83FHy2sm/6i9CDNh0E9bTUjc2CZUeee3y+F8xOouzcy60onqw+fQHb71aRl5v3XJJUWGwOBx0vT+T7Ipuku6ZMNZFrHZiZyU70sFVV+fkkkZ+mPYsBwX+aGvxzkJO3rcvMq/ebSnQ3J6t0CKFZkzNyjVTll/YNYF6w88fUFRAggsf0NJqKeXzRecszF/pTCnprHtVZ9SsUXjVaqMTOnvlWosHQODm9AoxRBm68lTVqSo1pHLlXML1dSdMnLnv5jmeRTZtJV8kivczL+rBF7UGQ06jx+WdEiljSji8T5LuZzLKuEm7xvT+Sz750xLzpfIwgQPYrPEUrT0rcC2WlqsCT6WNMtzFWe8jERX66Y0yxWKui8Y1ubBLVkIk6bkjQWA3QzPvLehmINzjNM7MwYMs2ZR+56k6eRRNb2ia1bzWnUMPYOAjSZzk4RiUm6c0qJGM9T5guWlnVm0q51RRqtUXauBh7nR30jL4MM5eiOrBtURlZApkCa2/yuXSvLdyJs36Sy298v9vnc6S9SrVhMETUHINx5xrBWq1X01jjFaGPnTcxB/yel8OJY9/IpPkxNg3ggRGK2jRAWWxRSHrU07rZ2XEdJJaiteYfy8Touvplqy88krVfDMEEdI9wtA8k6UW3pNbpcvQZ5jqwXcqy5UfPRm0VyqbosTIBmNyNM3JpN65yHcT1aCKdTHzc0vTJrdHI5vfz6x38wRe2By0IvDnkAds8pN+KSxc/STLz6zJzr81J7pU+nNVnSYgjizd0mnIzv9MKyrVrD1E4ZhEoHZN5VLKSV/rtndX6F0YdYyfMxPW57THfHJYv/xGGUp0SR+LTCkVZUDtCw8fX5V+cMGfS9lnDSRyUJpuztKrBBq0k55umZyzFEUWoDu7tPKntzlFoQhlJavU1hG7jBlipfTmWjULzpok5mbGh3SjUpfUsYRZADookTdMBsNM7n18PqxJinyqyrROTNQ+RTZPaRVps3yi19L9QsxNkIGEk1AaHDlucbmS8gJ9mZJiC7rPQONPkaqSNrHzfBJJS3qSSttovBJnCIqOrIA5C/H9VBxVnW4x2rKvdaKCR5/+6sGHCBVy7JVjZQZqvhOJuZI8WDYOBUlRz4rEDmt0kUssZGV6N8l6I/bWo/vqWEk3h8SBLGYpMhDlDKU3MnkLdXkkh8kUWccIUvp+a/qy/3SaRpqsTYboBDWsqmNNFgsSHG7j5PC1y/KyKHsIqv6Yltam/L7/Oq4UUrTOqYI5sfCMGArDX4mJUZKtJsbPLfuY3cvOr9z/cnn9H49b26S7lZtJMU157W1psNwQwlFabBcQcVp8bauUBMTppUcOcwiYzOutKh2HkVeg+MyVZ3gil/uVvTyBvy5763fMDDviwhtwiTOGt0yizZXp5xN2lQzPkhYSuzrOHkqedo0DGiRz6vnzka0cCSMsaGybk1qSwNyndq3cTFjlYLs3X3s+q0TsOx0YmlkbreadERHY0jY+rDASHKFcasowgSVlrpQcOOfJkqqyrxs9WV78kglq0Tfo1f6bE4Q1oDKxCuBEIt6fWSazeiKIKMf/fR0vn+VkffRJM3L/GqYpoK2rEyYXMeMrWK3JHaIS5zK05pG7MvhqhKs53I5ECrGRpTG1kstdSZ4gRqsZG/RyPTyHzfW6CirZMtisxWosdqWjNZqs98PpXkXMzc6lYNV4HbFiY4sdIp62rLL6cZDeXzyPsteUPNfLZaRwMfNoonN+jodYKyPYlli6S3X81unNYXnQRUYq1RmvUw/9Wl3D0Tcb1YgvVguGys/zKX5x33g9Rr5mLOl52hZJLb9PRfyWLCKHS+IaP7K51K9edvEkS3/dlyO5GKXz1eZoFVF1FG1kpSsTB2FwX9aQdZNqHbMlGtXlBKSSzvgjdfoZmtSnfNKyYZcf0rL4GHsRA6iQVDR6UipjUEvly0n26CKVYey+lOmEW1Gmi/mzZ5ebGhcPdRy0B/JHPmHqNnLojl7rqK8fLbuRdWSSbhE2FUpqCKbEpApGW+V5enTqY1asGYXdKzoRXJHNxopWG1awo4bGXmnLnd9fVutrWkVMtKlzWR86NRmPPJKm5w7SozawT7kEank3Qdjvpb+tskcvrOq4yUSqhySo95Gf1WwMIsVgYqa463lRrxpiWrVXEjCL1PrGordNW81/8ddWHIJiHQ0enOcpCUzvENnkrLSHWmzudOcRVZy10ljvpWRRbQcwmjVZpMNiE6Ufq7Cr3SSurVM2i1KJjzuAeybmZ30arWH4bDWNof/U0PbJx61rWkYj5xdmi0a+8xS9RFEDH6rnTBqSNNA74ssA98yFIapKPqc5fn0/8vU7jGL8TKvf+r7jIo6carFlQeMPT2udW+++nfL8iDFyqvDvW+i8Wkqljju+LBMAmUsnx6FImpmpX8pLWzLVfT2qzdAr1SWS638vD2vq8i+cdDXyrVPiwSgJ5qJZFSXFflry8umytcGXNMOdeijUsllt5JOWSVeR1Tp1SS/ex8DHTRQxx5ZQ7RCv050bkrNVo6kTZ0ahhQgRYzRsb14sOQBTRYaehLGz+T6jVOVW1m7eYjTnXE1pXohWCOLyZu7dRLFrAyh4RFOhizDXd3cnKkal1PLruUTZGfBtTv7alkkt9FWE0E5IbJjq2FprpM3bP3pBAQPczLfWP+5ijEjCL6OmNHVqyEB6oBase35qWXvNTqy16i87yr7SecvnJUSxcxujLZsKAfrEI41RJGYaXWud9Bn/v9tkZhDcdziKNUyR1c8dpumbKhQlT4tJBMjSSq1rVXQxdZwhP0S2VY0GO2x1L5HSirW9h0FXiSluJj7ZEiRB2KLTTreTEEc3KUjKJw6dMyhTdKsCBVon1zlDkdWcr5MRYcAZiSfUQPT5Nx53UTJ5ublILy2Xcuy83pI+dWmpLrMcz9V1MmzvD/PL8QZsNwMkfXUeFMk3RulDU94YRL3uYNLmnZvM0XkijVaKL4fSWmbDkDRDY1DUVFSR3OneJQSztEgrWX1r0anK+VZZL3Es2an1ZPVgxSsktWaAnZAFm8rHkmpaX/ucrEF5I/eakiqcsjpvBUzeiYfVckkFVVjQArLYGf6IU+uXrleTezcxMLVm0euZySrTMbvm3pd86Mu0ANgeU8xhWs2JhVeUfK7xqXpWo1GJMRcJTYXgJ+WWtrCZWZXqelU7rWZoi9wM41ePOjSu6S3Hcl61eygCflh0LWtGhXh7H5bT9Ohua2C63z7+NxzWnzm6NHLwXizUcijJ3+nVYQwE+aK3mrIJ7tUtgbUd1tjcuuX0rCtPY9lwmd91J+a0wwioxKs31pToWlGlZj2B9A1ciFh7CDNJnL1cm1Aq6ZbPLzpLxaSMtROlOaWYnzQxmzuiuPws8cx59hgAK2DcJB/E8WgsN7vWcoP6XSszLi7rNaoxuP72rJaJKvyc47KDL1tL9WtNicFLLVD+PiwsJEkN3ypLVre4y5is0ROvpLHU4b/o0mOrL+Yjyqv2MynJ2XpV5etwVTZsBggaJ4cgsrWkQrcTkrDlrbluncvNfUMKs2MjNUb3zqtHUbWn2AEUAQ+AQIAFMVBxKABAgLsAswAJASgegkNBBgaADUAqQFLB8IQLIDWBkLEI4QkIIcFIAWkKwuD8CsBRAyi4sJxM4XBJD8JRCGRDhwpiEcdmMsZTTr6JLwSTYaASjE1wc5bFJjrbGbO73MbLmd9F+x0y5fLy2Y8KxYBhwCggB6gKsIhADGBIAAbwAdABvigvEgM4R0gIKCNBDhWAMWBEgQ4oBlJjgnLFgZwyAuQ9FAAJouD8KwoHGFArB+EABdBXF4fC2Cwf4hKBWF4vD8hotlyrNrG1ZmWvjSRck9OfyWrABKAJzADfAixoO7AIoDOAOmAZIHwVpBJYAzARAKYBqgVYEfBINaWzGA9lgNYCMgW4fAWwVwzE4o0ODwMnBmA7wrEIuYWwZC4cE+E7g/F2HxDkZnq9peLhba3RN06ZL0rIgcYVYBfgCCgAuQFsDxwYgGIAIDACZAVQWDgIlYPosDAqBGwZgEgCqguWDnFoSgxBGASETgJKClB8B/E7iFgmwMwIsGcKwvD8hYQ4GfBWYOFiFg2VgfQymQcyDLcyi7J/VY5yrG7s5lzPmZzMxzmOUFK6a4cLDnjLex2KOc/lGO6omLEMvZ28p39/cx2ZnMpjnBLAZoChicBpATwEKCaBVgJ6EIAtAVywsHAKIAW0sCLB6kBrA+kAncWKC4oDMClwowIsKzhMWHCFhDAZh+LsUcOFmOVY66nwbvUvi0SpOXLKdzMWatzlk86c7sZmQ5ssVdpZRYpnfQ9mczdV02OAmQWCBcJCMhJitdF2kx9jpJWXdoA3vnQikqbd2sKEVT4SfF3qtYeGUruzQ8fSqV3ch2ZSu7NCb+i+OrV3qsVgEmAB1CRebgB5QxIILzIYAF5AjpA3kccC1ZfUXL4/s1aSKsWHYBKoAdgMQrYiDeAtoAu4fhEWouhaVAagANwHIChDxhTd7nDgnBRUBWiYhLZj3MY4PhOxxghZaTlrnfqzFuGS0INwjQY4rpexjizSjO0vMNcsoW7JMV4Y7SYZ7AfIBMIAeoE6CABKlQQgEZAH5A1AUDAwLOCQC+DEAZ0EgKAYwoB0xnw4OC0HwKoA84oIQkCZztLHC7AzC9zGfOwodmYpkQHifp1TT/1ZMQScQYuhCpl1USvKGJznzqIm5gxZYGIAT4AGICJByPUBjABrAHmAigMBRpWSwYiUKYCPAI+HYdzmfFMOBVCoLwOqBR8WzHOzgRYveyOwu7OZyq40aPaKCdaInzJHO4x67AOAAUMAXNoJqRaACsAGMBBAigghxg5kAkALKAuIMYG3hcLmO7SFovcA5gElAcYuwZC1mYzCgUC8UC8o92YFbOcxzEx5FM90n9yBeIbMznMM+c6XMqoV87spZjz7aInNkseiQZmc+Cjii2ZxSMyZLlsQsc6XZzl/lJZpzGOKOzO5wAyYBQIB3wNkHMUB8ACKAEIAFOAYbCgbHJEjAyBEgLAAcZgbi0TELiGQ+B1DMCOgRgDgBnD0Wlt2DguFBCEpwM5CODjGYJT3ELiybvp3nToIq0jCLx53R8/OI5EGdPsA34BLgBG4ClBXDkA14FGAu4KEB3Anw7KSJsKwEuALiA5QEswQxLhwmJ2iYUEIDqBHgjReKGEJQozC7CYXMwvIc4Xi/EIvLOIXKJYeOQcvzuv5y9y8fTTHyYZWY3y+C8/mPcMJ9yHKlGOzPnM/ndxR2Y1mcT31ZfzHOY9eh7HOku32AMuAdwCQgLOFUOgeAFhAG3AOOBGAdwoucWDsXAQ8CKgqAUmFrSzc12cUD8HshFHe797MJmMfSrLbCTcs6uMZJJ0WIfB86ZVkuu5Ax1on5RA7IFeqk1CZQ7eYpzp73UROtY7udK093yrPLyRQ59WjKMpZs1BmoECbFYVFEkUOjKGT0aG9qkrhAxGXy9WivjJsxlzuMIuEoS/3b9Nj4J4eTQSCyXDR0d8pqU17eRQ64Wn4LzoI61Wi1cvg7N1EsWKwfAsDDeWhvjji8yxctUtvQQ6zmuy80yzcl9jNdI3+F5uWZbYtBSHDY23lB5JqLXxOapO6fGM3h6GVUytzZMOfD3GfN6c6N3zPsOgNVqa+oeQFZ6/lj53n6iOrk1pqWbDu3NMUXm+Om0dU5ejLsOQr80NMGyCeGis1qOcustvkwtph1z059NettGK05nokm8bKU43frJXWE0BOSEVN00QBvB74nsJzpX+ROzrqoU+RW+jLL3NPVauNRj2aBqsHEMgsNWj7e+ajHdcyYp7mMtuOPmoVbwVk3m8UpSjqVixIBtDY2M5IUh0sSLWvfeJ0rJO5V1ynhmH/5ckU2OrpKtUTmttwKdzlOOhcG5aSel/683OLEfpVjLj9tfzvlkvcIE34lcTkleMJuAN18Th4swbxqsoR852kx3wXde8TJiZAkvun1VGy/2wFJIcCnjJxCPJTp3+qflzBeX8x7QqVPprUSQ+bTN6B8JUryKn0RfLtADUcIh2GBe3R9G6inlXyZl1/5aWYxB/MNuPSc5NqmqAVcl4uAE6KhomgaWGSBQ186UkE8trDFVLWdWL6XNVHjnrkzL6JYuTS8Hd/tgGaPpQoyBaG6R7Z01lCzW6ZMRG6vsdzdGiJ+XzPcS0+bPbMjtVCU5sF5GPsMQH3kHyg5RfXoQzfE/QS0MHXKh0l4cRd8uJJMRfhLz46tEVWsB9tntSSFjmsy1WHKaGtduX7r8L/8Z25mc3TyP3I7zYist9EU2IgNAsiQLKwWQ1da2LWe56CBE1qtN984Uw2UjM6DMkdVcpL52OojqrC4DQH5FOGTh74058lXKV3qcxMsL1V+qObjZh86HuaY9GIiLNjJCF9Kt3ethiYMexKD6oTG6xUWrSHx/T2rT8ry1mJWve5RpZzUv3t9imsl1ydD5WS1cAJsenvpamnqVnoOZ9zM6XuuZmorHIOJV5nJatGuj3/sGPsLwE1LYenCE9aGlfVa7VMkk3E81WWASSLrzVP7eSRYLQKEe0nCnkEnpzOlLrH576Ipq+kPY30rFArfVyafuY9kwULmQv8OXJZSHzNZqnfBFPuju+NRXvoFZVw00wyZtAHrBqlC8lubkKb+m9egzX1P5Ky+cd6iDEGOINarhLxHqC/smCbFQq+XIqkaXJ7/JMuvkTrOblEvJ1PnSXZprTRF74zB8zvD+ZcXqygPGN0Ys58S/9RQqXmS/fNnHNLt75InQMZi0R2aVlWiKbHAMgIg+dKyYTEOnSqCc5rY3mC8/TmWtp2ror+9jy81dHNsTA9DyAikaSTpKWqelzqf3rp9aTHgyy5NbzvU6eR+SWN7aPHmwfhTvm6Yf5GLdL61TZAFZjZP5zktzZ0+EGdvIl6bevjMwrDZLzN6vP+lWTHsIIPAjKm9a1CunJS3L75lDmZMSSOvdcfIIS1r6LyqxZHzHMxdZvXKaelWVeX/I4ugdUDUN1R7TomFe3Ve/nekVvmVYVb7h/jRur7TDhAZbi2WhRVpd0LXHI/7xqUPS6reRTe8qmmqxaYTVtiTw1T7jm/JeYl80IEXpgu373uYNfFg1hPHyiLljyeTEaL2sd3tmWmJdzFXog6qn96y8F6v9JsZI07eiSfZADc3gkpUPd95Oec9vazyX+9w9bd9xjyT2Oom0vzJLT48EfVmxaHfRKikLWpSehkMPyYY7ei8mJ0WibqS6++ZV5mPep85I1/sPA9oRSvqHmtal3lFGNV8W1LLmd5Il+5neqtQOZlyelq1z/2tiW6Mg3q1HZ7A8PltalVq8inmI023Rjty7RhU2QEAj1LQpCFEo+UXv/C5M+YVYRxaOO3OXM7l+ZmLf+bkqLzYUAoDePGhkgYc5qj5WvLfzP0mJtrTpWvJTvXBVVa4/SqJS0jCLBtyeOTQEZY149L4KFfvokzLlXW1aJrzt9zK6taZ0P/gj82KgoEBPnSQIJNyD5pp685lPhXy2HuY6x1IeORf93wCqrVBf2acNNVlq9ySPYbAlxwWrdjcflDl6tHOZQwpXkrHXIpPdH1K8iibpbWaKNVkzG9hwmW6HSETa7e9PMUpeqV2Mnpw+j2kc+4af6enL4MxYdjyZAoNBobBsHnzqx2nv6mrQXkwy0kR1Tz/L5WXky4jm5qToqZL0XqwblGhZVc5dGwer1GS2G1Jer86axxsPiX1VRZqMJPSMVYeBQKpk0h7p1LzuuJa+Ic+nwr3utBLUztSM0rRdpn2KRnGqRMWQFiAWDRNstzRrNVpkZcbmJ7/nPYZZcm0Gk6gD21f0r74sOg6TaaxfUTx6XxTRP66W6TFdX3m5HrlIiWRtuJqt/JeH1YtCbGHsgEuSA3HrVUKPbySRAZbon1B3zXxCtTaFJTP+86OXm0gnDMaSsjWIec/5s6u5hF87MGDLOOO7+X5itPtEGqpjHfvkFZFpgnGDUJsUPIRpjVM1qzhyY35insGDmXAyjOovMkUWjUjr/mzuRexGFMIIq340VDZKUJrQxIsxRfIqxC9zCKLw7BeW8kbIxbeOg18dbOSNGMWcHDNzh6iw4TlXrlpRxNpxmG9lZjrrzD69MJJaMZrTcQkOxonOiCKoGPjVaY+Ih01TDRXlU8P5qR6yHFGURTnDFmZdGnozWX9X3VnOzJJas1JM7vSh8kTM32sVCtQo4bFUyh5peJ6TtK+ZWq52dacp4bSlul9KxFx15KednPkx7aHOPyZqJZp66+nE0vl6WyXYzd7vNykiMxM5uXqLyIEXzd430bmasXC4VjYacNiii5QSy1HMavz5qTLrSOSOUyh2jLL9Zf2b552XUvaY5eLEYtaPqICxAZ5WSr1tzJ0T/y8uMOix3G/4UnRvmmJsFdU1/pWLJhZ5bJaFGpnoLlfW2VWErM60TeelLd3rutLTqOL+0Fk1ER8RLlQmo47Ozly9eokqzkzkVFD5Xl9r/u+LSP+WtP6OZizhEogKZNaHJaNHxz0JKNqvoVlbHKyROupy0dHc4lZdJYUvo1jJMw/viwWAWlo1m8bSUS1K8q3ELo+6v0szmSRMs2Dd3xOoi7/xAm8jGN0UIEWEJY8i6W01tLnS9ToVNEUZirNF1LUXx26iWLmV6aSSXYXtEUpdRLnqKTy/bo/ImQXi8aetFWpkYe0UtEvmdFiNpZqJxVBBgjNVjNLZ3aSMECrr0Xl8me6zTX09rfzLGKyINW0QhxJwyogPHkDpV8tjISRs0PnUROukEkZ31Z18Ul5W9gw9hi5w+NJjQNYiKn5BuacoovTcndwzzkpy7jRLYiK33sRhMWcDTjkEEvVNx2bqdL4GDLQ6Eqrnv5n8IGLbP1ak60aCKLCC5Tc7ORWveXwogm9yzEPnOv5uR0fT5MxT3Wbl1O86iOlZsIah3nj0tSj9Xqdcr3uD2018pVM7vrqze52W/xG5JVrBxA8oCHCRrT0TUnw1BZ/c+SKZtqSAzHPjRBmZe21oKeJSqCOu9gw9hECgcTVZmsEy5LtQlDN9GJYXojdZ9aX1M6WGeIE2kboebXnN3LrfRL7EYOI2ilmnjSmOh7f6rN7mmWM0iAyzR1BFuqV5e5HyVl0MpQuorvqSOSWrEYOzTScqBr9Lf3rlvW+ZIpcqy0Vul6XfyPvokY281D6Y0EsiBFjQJpRRI4dlGHxW5y0pZuReH9WLwp5qJiTMOZF41Y7MaiVjqtQG8/Ol2bJ+8eOvr8ZpJTrNx2S1S+dzMPkYe/Xxurv8QScYRYai87Jb4qgh99GnNVaYm8jMJKtZPt/0qr9WGgOShyUZo+FyPl9QllHPgjkv7kUtRebTWUR0MYtKT8jqmXaAVdWGgOKTUqpJqHlnzXzu+WjH2dKXSg5LMpcPr6NxjVt8mjO876iOLIQe+WHjUD/2oM729B/mOXi2p5StJxebx+EM7tVppeC9TYcBTwQTmjxUVShLZ+Wud3r/vQMoPHU/pi9Xa+VzvYqBPTIWIlXFqo1PVB3TSbv51F4XZ3XpyTWq9WNW9+UtWNWtWVasG4KndSJy0Dx+dOmWt386SKbfSjYmFzRiNSsXXwhGdW9WDYDkoGiSjN2UnpyXWpTpWRRqzL5271pQwxRehAm5HYVRje1A7LJTS0lBpahduW50Vll4nVmZ2mzV+PvvpaROEFd8dyM6dNaSKRB9g2kKZubCTc3xEaup3eYIpVZaK/pf/uSVeSnejTp0WLQnoCKGz+IieS9P+bmV4InK176MSaXWslm4r2PgPc0ZHl7kM/zW8yuM58mF76bC3/FdBqhdasAq6JatOZg/Jdb6MUCriwdweHDI8WUHHI10mrzWcu0x2ssJZyMZvWrXLzaCUows7vnTYOACa6hE/u0VJPU1Ki/gzzE242OsihljSSOb5MUMKscB6W1jaHhTqOQKqLKNpqtbl51WCx4y9NF572ciqxVBtJz4V/l/gxIQPsKgVpk2Bxzpx7lJ+d5y2y2erzE+x5JLNyDUi/3j6LXjZXlFzll576L+wdA/KsLYWMUliSE6dLaesgWYXml4sUm+B7JHPXUSSez8dS8cmqtpiS66MVbQUCBYLO5Bz1pPp0drW8n+XmxkeNbOSnQZ5mbSENHI45JWrBuD9RIqockpOXE7re17ZIvKsTFya3N+b83gqofJeL1TJzzXzN4E4weFLREO+scc9NvmdK28xOoQIuTkkfz2vXBiAO2YIpvNlE2et/M9WLCcDywaOWgaGuO7XrOZp3qC8RqdnKzaYysQxMy+NzHfXJPZ6PS3/nfSXovBJNmgZxUmAvcgPJLDZJdQtzGt0tmTHvIik0Q6fpaZm5k6m+I5FBibC4H1DntKiErJx5s6ZXXegujENX7O52jdfMxpLwR+27yjUpSR0IE2JwMyBXxppQNo3OfPOfWncYVFmzubCZ/VgvF9I3RparFhCB3IeesVJNnNPLyPrny0j7LSjovT630YhsDH3PNk3DRzfoMUIM+xQBpKQfRyA/ijZfOKKfOKNImSXmxnjtaoPfJimU+ptLRNPa+jLpfHsEABnIlQahpiTpWaknkug6s4pWkxKrHM9y2fUnd8PpWafTCODE358TvKvMdWOIPsFsKo/h2YPOQ0+tMtQUVSkz9V45sJKrfJipGNXSR3l6KmjmasECCdhoJKUj8Psag3TnIKZmnmWmYs41aaNaVagv1YumpiGJhunkVWBMgZpAeahPFaJVGXxu59RyP2bucbORbuRVeg5L7wskihA9hgA+w0k+YdKjNKpyZz3Mkkh7rlHrN0pSRSX4g+9JqSL18YzYXgoTiozCchsxrRpj16K1fcx9KrpvvURh/fCyT3RtLmo82GAD7IQ2Dc/0UHCByKqSn05zJku7dzHZhGx7rEI8KfMSaucskm60m1FV31YAJIC7ADjAO4DCE4JwAwQA3AHYAXcHYUOYmGAdAWoEXAgwDTwlaxucyWDgSQfBwURLHRnZmE2YZZZ2Qf8t8EUgqptqSeN0pfVPMOf7ALoAS8ARwABEAKuOBAAZAEjBQgLIBjjjMULC4A7QDhAdAB1WhSKYUUEhjApi0BXgSAQAvCnhwTvYJ3C8XELgkOYOC4UYcFw4OELJapPpGfyPyx1myfD/kGaqfT2ambl4f8xX2A6AChADwgjQdQ7B0A6wAhwDMAR40XiQhPDk8HgCkAjYCQFBwXC0WMIXB+GYZgO0CMgWIM4ZC4ppcOCcMhwJWBFjg4QuZgZXsHMOQPKSXXqIvuMZs1a5jTPrTBl29ElO35LVgOQAogBwoA7jRUBYwDRAQcHYEC4oWxYMQDBgDqBKArHFCF2nFCETkIHOA7AOZ0Cco9zMKBcQi4XFmZjw/Y5js6CqU0uUVu5jvhXjCdD6MyZjSYimKPJ5ZZmlfeWzphznMzHKspjSbCbs7MdTsxy8yXMhk06XMAYYB6gAxQH0DqpgeAAdQDvAAZATI+1klBOHgUwLoBXBaGEwxmLNLA9BJFwF0wX5zs5zIKAihO9mYwy5yy09Kp8tWReRBq+NNXO6KjG6i8MGPsBlAEzAB7BVAmgXioKADqAPGBVA9kIlKcKIMAOwAWAJAKQIUUB52Tiw4UCuEoA7ovFwvEzHZrGC7AzidzmRDnCgczsxkDy8aZ5LJJxBm9KePr6WZQxOd9JJ8wYssUAErgB3Amg2IDwjADkAKYDEF7CtLJtA2gDFARMGQPGs3expCJwRWBTCYcdmKuYwPiFjDDnKuzHU06cpmLcXdLG90zy9aXdjN4M/MWRTFjUlqCxDlkGMd5jeWO7mQ0vUy7lCnbJiPmM3MLmwWwCUQA6wSurMAHpBeHGz9KQ2HYDqAjolLLIqZgLVxKy1uQT3hbd9Njq0jtMeFfawM4ob0ltCevGpTD2YtnLkz5LuJXW1I/et1CObqUlzkevxZMDKYNBo2SYrZ0FDpa3tH938yx7rOxspaYVkDui0UY+g0v7gHrjwdQPIEKePkm+WLdugpzE6FWDF1oovT/XSsyrO6tWbT6k7vizQeVG/Tx6DpTfCDfT3ZphZmLW1LnVkkvGpWVZ1ajEKzaQzp8RFmg80yZUUaocdksd/vpolpWrOaOwbkk/3xRFNEftGTdWldlQHrBzePQpjkOua3akq0im2zjvTTfonmasZR3fOl9Xwe0MmkFvakhv981RupnMz4q19aJuPy9NEq/f3NrN3ED2KgTYzvho5qA2ohG89KM1BpFNxG7zpetsmZ1TdVMv/f1+x8HVMaG/DEjsj9SbUJrStvtp6SzZga0cx1l2e5bKSrSOKL1YqAyio+OFRINlnCNRWZbWrOOozGda/LUMs79BpiDEX4ShLen+TFWCyCjLDRo8EQOCBOBUclpYooXozPbcw1qGPS/zV98Pq0vMpbwqurDgDJU3aTcbx6ZS3zpe3LMQ9mhWblstjLHl5uYXcX8EXvnZdZrOq0uwvFkAPDqnJhcLOk3fpNXpiWdpls9VlrOFKzsct25F1Yvc/pZtL0kUWmCemGpSGw1mdTVukdT1t5j3LUJ3OcvMGC7qWo1PPblBh7cCfQ+kZPCZ2oHb5fUUVnjBzrNNlF876phWLhHklWLAeB2RrLUnc5r/UrzmbktWKT+bC5SWSM1EsUIHuW771uSNtQDGczLSQDWUDtGXI353JHNLsuoafoy2vmS809xL7NRlKayMjGbEIJtwbhxxkqPtXSER2LdP7K5mHKs9t61E8iOty+rEsdZ3553k2N56v8K1ZUPSxU09ho/16n8qovN0KSYWy2nurSs0j9ykfEZtEcGPawblAsajS01ChNb/+cp85Qi5ibRZkW5L/LQWXovXECIs0f0IPqdTeZhWRApt4DIg4048bFaDEMloanv6oiq+DWFlTRw15ky4vF4m6vkk55FNoA9YZU/QH5IUDl/KefodO4wcSMuBlZ3yaLd91a4HbN5tVGPlasl40WJQe2HoiKJDkgKHy+YOUzn8YsvJHTpNGS2lZJF99K9b6sMAq9QQzh0N81s/UdCQ+tqyLqxqtcp9/ybiR0OWMJtIdWXiWEX09jRhVsBQdZy5a1BJu5jzqJF5mi/jZnQ2ZaB3xc5Gn+fYWA9NlKcaVWjlzvkJ8rGPuscjWg3L/gvL5GEXkebO/Vkx7JgmzW+U0kRtJHl1Fs3I43zmP90cuno+GaDMhA+8DSlD4jexMDyVJm5tCtBClefKbXadJlz6tGGmm/d2WR1c1L5iF9tUYm0ATBMJzcWajKnj6VHZMsTWRwYqzjpa9u7Gkc9gQPtKOf8tGfNd9aN44wiwuCkEYayTW5CpG3x9LS3buSOuDkI7/maZIve/qC/tYPSQXiSWiPrETSB8k0F9v8wY7c7mJuY+iTpfOcMJM+4y4bPSVmVW2GIKAWDa4cPCzonrjNdk0GUrBed9NxSJvfPetavtLHb6ct9exIBlkIqFU5IsNDxN1bjZ8k4ethd1NcXZfR6n0eJatpeNJeCL2bpQrHJPlsmeSRYiAzMUFpMSIDS6KKE/ocdD6zjP90cNID0nSxmW2FeMIukUuv/qemyXi0ArisbJrJ/Lwsd2v5daE6ny+bhqiz6XM6OZkvF4DweknqgvE3wE1/aNlBssk1Q6c4WKNiXrYZaXh7rSanOWec19K9zaMRY1K/+kkt898zJn2NBW6TDhWCw1vJ85Vj5nzJlhdkWmjmrWPyquVakQZVizZxyfG+/t3V9hCB5hLIYnx50q0q3RyKHGJtdDX8Gnfcv9JeiNogxaWUmHtO0Aq4sVBUkLPuVFaknF1oS1q8kY6rHudenGzkWt0yYmXzcelTZl/tAE30juayE8hWjTvGZlwMHVcoxE45c1pJJvgr5H7pVeCogqsqWkaPqY0MzZV5mbRN3jUp8tZFWm4+nxK439mgY8GoNOJzCxlCYlbRWpphpmrA8JHDJ3WFsqrL91Pi0ZHf8kmX5iLYBitTNgfgrzVqTp0qzpM1Ml5s+mpRlMk+SKLaaMrRy9D/fD/DwzS98hO76Wc92aRe8iXnRputNWCVBxKIDOKnlliZ2nzmD/XLPBfvkQIsUiEZNnNO+ZRifcqI1GW2cpJL7KhRaVKRKRyA8c1DwvINlRbaLy93Lxe47DEupphcyrxhF1j8lPOrTW6siDNiwOdK1oMk5inQVjd/JrVp8mPotF0ybByCy8l3PnSRzcLS72tp9b2WBslD5y1pOkfa9RvlVcmG6bGZROrNVUlvfRlhmrHdKKtVo82VDj05RNRuSOWgrJ05bAgavDL0un+SSrF1Wo3TE2GxDRVRaQ/UnytWV/x5I2cxVjsZtZqj5QWSTco403St9VY8PSo5qnUnUrA2hL5bK1mOXdYh8p/eC/VYRSMKvm1JtkJbsCXLu52Pb6WlO/8HWl8IRStJLt0d8mKs03JT5N0arBMA1iymmnBCQHOl301rezOJFusVGomjr1yzczWnVa/WO1bt0xYrDShoLkGCrSmPCt2ZLSi8hj/wVcXB0ycueXaYXfR8V30rNirrO42Neunyjd10k/kldWrg1LuWcueyWck5jiDFvgZPaj3uppJUWQJoNKlVm+H1XjoTvOWSd8Wts0PqLzVe6ny+rSnmsX8dpfNhwOCMNB9a5VGht/a5Ks6ZIoI6vtWa2J1PllxKXXVRD+pZUF3mhoK2MXLHp5q1/LzHbmJsCURg4eKwl9M9r5EGLUN3PZzlalb/agoFQ0mQdM5kiNfzUMccXbCvfNnapUd6h7IVgi5er85JBCIVUL8iiwSwmDw5RMshg3cUb/zloOYhUSSMzrSRbXyUd2QoxNXMykdC3zDYsWj4sOGk9+QjSX0wuCxOlHyReWDFl7pJKz/fk6Y0PnkftxocdQ9sk1ljpSf0FVqapL9m7GXWbFT3x7qDdOnqxZMaUIJlPhFlMx5UzGO/MQ90ZlEjrea02vyjOR99Wb8c83lvIwmwWwuloEmcfxOoI818HTTJrLI+x1mrP0Kk9IK2PfSUqNEOssC4zzUpgskDJjz4U07oURuzHabHUEDafRzokFbPs5qkPRns3s0IY24oPCQokotuQVUzeo5fI6uZQazoLp8wSex3Nn5qUK1ZUMKDRFJClqTpy54rPy66lRBd2c+pueamuZSjSZcIH1Pq6nnP8kk2HAYZLNC3IaUpVUaoT3ZyN1pNg6m5J8kcvm5O306RBqwtFBVY0hPnSIlqSmtx+bK55mIZ3usdOW4R6ZarzECBFylz3R9KqzFWJAWyBAfEbkyeFelcRVL/WWXEl/mU7MLXvUNWM0v/krhAXVmxqOpLfQMJIouRNCnkVDY+hKa043nt00gZlVmmw2OyU9w016iyWbKDuN+QTOev2QiaGFRtpy5HkU0NLnrHPuYhVz3W1HIrYkZl/VniDVhZC5zs1uXRn7wSRotgHoV49CVlGIHy0u3s0LI2MZmErrxqmiXruoGjX1X3IptgHlnTqRXCgqRQjVMd5MSfmWMYryN1o6Z9Sm/kssvekp1LeuDMKuI6qwupiC5kRISUX4f2rPZLV3kVw+pXlyYa+b09WtW/I69hZlDj25gaqJpK9s5KqdRJ1ZtGU4N1LbmmKufNVje+bC5qnWcpMdA/Tvj6iNW5mrGfB07z8yTEWjORfNRvYXOwanSmh0Tq30fNVmrO5yerod9TaU87RDZfFWTTQbL3LOX9WmZS0+fe6KT4Ukii9Joyqd7WMsG1IHiy951PWxA7Ngipr4tFZx6WaKSKXxcotUnLO5mgF5i5ITg2qEWuH0CZ0vWTXL6aSQMItLyp3/fLMLsLPR5z5VaYcIEWIyGBCgdJ0jZRZfpJ6d5kQKs6aisdlwu0qodnJJNzbkOkyBQ0aEvb2Sk9xZR8sI2X91Kx6D6kvXpWbnSIZzUlaLzNsCcwDyT5y2pf1USp1qZbtRF7o48an46BA9xxSGnelxAm0QdlyyTWHIFVDknzMdVZmvVF/ZrYx0RC9Xs4/It/7XyMYvg6CoqWph4bY7V3qQh67txiyxlvN9Hb701Xl6vmn9KPKD1rVkvL/bQcxdPx54djjZzcuVkEtdW5F7HpP+jeGfQrL1gqYtcCmEf4rvoxNWiDiE2cgsqmOShKvUEbqZyKMzsdeqpnS+JXJhmiatX1qVoiqywfT66Kx5NGdGmXszsvkcF6vJnPpGM4kkQIvHfQ+tNkAUFtCzMaQpSa3Vkt/lucZkyu26MdK+3TFEnqzvo/Sk/Noliw3AwHE3ZARoIHFMdo0ZuW+iKi9XvB2mVqrveB2N1GvUsGsHUdKj+EWIGHdJXrPe1pmnu7LSCwVQ+u+JMxl7ktXKY1ofL/yOrCcDhzRnDQhSNlpyszuXi+kmc9czcTCMbl5sgCd9DpZ0Gl57TPMLkw5xEy0koOjSrFxORvkDM2DUw45v070yWb6TM73h5cPmir6MTM3jtBdZL7ICsocqpDMnTk505B7vmGK95Q6f/pzdyL3p3ebktNhNDg2KbSnxzJXpqO52XlmW2cogi3dJbOvyZdWi0jvC4hbmx5IpsXBRYGkKQd5HoX5hDyhmvgjdKsWsNJUN0oZeqTK/aSx0/vbvW5mpsKQTpiMPUnDDTo0rbDcuNyKatM5LTvm5dm1EIqzuR1YNw/x5dCptaUkDnyp5y26i9aF3qlsZRE7TzNPm30M1jt9Vh2G5AWKFRFBZcrjvS8p7tOWYYrForSUWofCcEVXLTkGrabNhoEzBataAhaWUWdO8z16Wck9nZE45azludMkbJJatNHJtST1LX22E8N0CuPNH5+bm5RA+azt2yMJvpf1CLWP6tTE6nCDM3M1GqJUIqLyEDVhwWhvT6QkJoLSjfcslnaaMVLFWMuZUSRyQpYxkme9rRAm+kefPOW7/8kYIHsJoux50r08eN/0bnrh/kw75isstHqQjpO+ovCsMJKusIfNZpFRf2DkHo/jRWg5DDZ05umnwveDLrhY+n/NNchBfuVZ79IHHTUytQxLH/xYuA0WCZcYZSpTr+PlsvbpWY9wkis2ct7dBG3e8bkvuk+SWdFglANgQm0kiiWg1N8ealr6XZyMJGx+SSrWmx2UX+J7+rG9rAThoqK5MedJqnnfLe3INkxWdCrLcvS3NS76ImPnkfLx7QUmUOd1YkkdBGwxNngaM5HiMdHsNJpzm7rU306VYIvNwlkkserLdOqxSB4GYOWGkeOvfSCpgvFgTgQDBwNlwG6h1anY5ZAd8hKkEUl/Z6VHaUWy/0XaIDbHoebDZVQGEEcWEIBPgPiIAAUo8qmmLGt0y2XM45JPSYKac6nb6Huzswyy0ckbpRp7ZMza9Ph4y+fYH4PiwsJ8fn8okq1bZ+qEjNafaSzRCvJduQ0kdEsWttdLH1GU/JYsMwmuQQWVLV1FPL+k2MveCKbXS4XnNVaSQSzfzabB53fM2AwQdkmFIHmtUGj674OWYnVaE81DOb+/0rJmLS8cU5Zz+Z9hIAxRINrYikPZb+rU97Z5mrSS8zOOjLmwV5fVV/vYHwE6dSxtIdH2U2NDVl5kkbb6EOhqjSObyO7zj5sLgUA+Nny5FQa6/KsS3VpozF5rcbkqL1eGTarTYQwMWSHLUSrk17zGH0nUtpGy/jWv6b1rMVvoJIuU+s2pQe3UXhWrWCdy+ckUTlcy3SovvY1xJStWPHb0eaMt0rM8vzNb2h5NzaRWIM2EEE+geJEEkBU0cnKaC3KquqTE6C9Z1qScMskQnPYuVe+FatBHIqUn3t/MdWSSLCID21Ed8otTP1KjdfqtfD4+mwgrOfRzX11eZrTbkeqkdMRKskftgGcQUehz1HqLctf+c+ZozWiHxdJdpy0tBd2Wr80YUrNzJoyi2TaLs3MTYjCuPTjpa1o9XnL+le638YxahVJB8JL3qVe1/yxjVrPyWjy0jkvVhuH5ZYYMgCVmEGt0btX2McgsvWXJjmYtJH4LJphfkcEkXCL/82FYI+MJtYD2nBCOTQFfKuPQzd1pytyjbedmZGfvovIvbp75s4KgculAthtkuPjffOrEGgxCsv99FTnS2JfyX3OGpp6PrkcktGYsmBjsFKqRAxinOeoTK9q/HI/Y0kdSfRVmWq1JmrattL0Gzm8vPMzeDxh/Wi2D5/V7zszSRz1ff6M6Hxo1Aq6s31qbjW2mE0Szoaf2pI1EaZPJs63Ern+x1OMa8ZSrURTPuUmwqlAxmwjA3iKVlkjsK2eW5tE3VpnUYqV2FiJvzUomtRiPZVLIorS/VkzQw9jYJ+VpLkec8//d7WPnkfsbKxM49Tv9GZtRe9ZI6XrL0/2G4GKxAGuRprukULLyjGy3NzG3xCgmuEvT5LrunUelvuRcxFg1gZBx6+EEqGxNNB9KtbltMw9lwovTj2tY2TNXhClvmrlxHFlgMUoehlyQHY+a3Wczcs20TUJXBq1ZhWJW9tvHm1SPn5petT5vgYyhbLWeTHiuWXaWTw5oIoYYm6Hf50or3Iu+SWZs0406sj25fMzbQqByuccePDgj9K+Fs3JXWtdHo6jfoIlyuYvJLbT/3Noiqw3B3Ddu+TChl71p8oSuKI4zM69UVVb7vgzxAi8itWIQsXBNNnwVOCcueh17qbuUcRL022N3/eI5H/7lsP5tMJWSMKsfBMLFjOiJPklGaYS6iDmZpFN83eM1kS+VW76n1aq/lj27+YgvFqA3jbTTRsVk+UT09uO3zZoil11mb6Wry2q8FS64ylTvNZq5sJoUmkz9J4anOQVhBAf8zl6TLS/uoUOO0PYpJlwgezUVojr67WETBAmxYDubpakmc2tFZvfOdpaZYXq0FFoo45RCtBianNJJseWlpeepG9F/P02Kgeen24SlltHpa9rCqjp35ledcNeKXiR7THY52klj34qDnkG7Hwq1jM4YTbgqFuKaw8I5f3x6orOojjUrV4NE8nl4Rvar1XCDN6Rql5uLPkiKcQPZ4O6Q8llym4nzV7ylT1rI+XZfxNRTSa9bZVowy4zjj91akldYQQdccOyksVNrJw/wv5owhWbNQxzcig7yui64fUXDZHV6Ot/s8G8SBDGlA0SIegcolmqNIC2bX5mc65eyXol6MV965JV97XzKtGZtQKgnFTjUj09LpfKyDlPlyIHvIr0aklkbaY+CSZukA1fFSvvoy2RAqywOigzM1JUL2z3zk4X0N5Mf6VZvo6UscjRR7SObRqR2S7l+SKAgasoDuhWORdLY66iZTfDpUI6vHH9896zPfLpuR5y4jS3NMyrFhgDweKj0sGjjx/L1Y5BqGY5CCSFYs4b+p6TWZegvLNPvuXEaTodDS9ZzrDEKJOUDnCJQfJ5KXtSzaVgine58r00dnTJeq0Zu9ovbvqy9RmbCwHXyTykprUSb3/EDJ3i0kkKivvPaZcx/uTWy+Y30mZbYlBwGjpJ7uJyPVL4eUfNciljrRkmb572bkTKuOPI7q/SRexKHUlh7HlUpTHz15spIbrXMGI63Z0735kNPRybXtW/xmDH5uq9+uoy5fFGPQgRZQOUSqDSY1SnLM85qy3l7VmWeXssdihTPPlvzYMO0Esl5ixlHHI76Y0mZsTCwmiecT9JMP0vTQ05Bs0Re4y2zlw9cmIVi63lHdF9WKgblpg4LZSkTJMnHnUXrezf4KtlWtMxfmeTb6MNsoDf0xDkO2j5hr53VlpnmatuNObM8v31Z6MJzktGqhAiwuDs40omTCDSaMzL1vnMlTq09d42UUOcvcYRuRRepLN3bW/q+DdDBwSpn9I9s+cc/6YmS/tGJ0k9Fnb9SpLxViQOxIchyvbRyUrymd6VjkfuX1CRpf2ojC6hGwsCiVCW1yElZG86XtbFbx2F6fBebajSb0F/SY943DR6x5r/M8vNgSwUhGNCKhtmhaz6V7S7jLbJws1cSe+dD41UX5n279opb2l+/6TEWsHj478R5Y2jy7YQfzpMeqtEerdM6Wdeku17NEXjsbRz/PMy/3g961Dyo8HjVD0nw3zvDk+Ylmm564rKJN1aiT22Wx8dp0VFrCoQJilKkNzkPGiZKlXd2WYb2XlEmovlmmpMNV5JN0cac82m6tzEWFgeoampKBpiqkqxk+/skim2yzjuUa3NbBdn71rI5Lxa0lDZy1zpnl/EPbRH7PD5w7ScynONVSzXKsjSqzSRMsZShTNx9F6f3F1yEDFoxR2XuSSX9jQfuK/H7nIiKY0KFS61CJdnNFLvkIf5lWnF49+VoPaY5ebaCdkRm6oK5J8bxKvq9K2KZNJu+iXwuH9/uYHVJmZL1Z4NwmFqXIMs0fK7vblFO7TRmdVrOPH4yh0v+7/m23NCz9aRHBn2oHwyPuSJojSMwhOg5bT9EzRmS8W1rWj+Jpry1l4kuujPM8zJiLla5Gs6W5vJagzFhqDiw+EGGj0oD6laX9SK6xBi+OjI0vQdM9zXy+qGNXp7UXpfShD6BUxY+HKCxvwPirtCw9be5rZVd3GIuV6FvDRR69HzjPI/dCmN3nLfRdYQMWWCcoKkucgkscHPMysflu6iggMq4/HX0c9jDHv6DaxqL+0xFuLKYfNGpS3Z6/Wvzo/0l/nVbd1Pj5p6ySLGcauN7Focw0/nHd48hplRr5pukv2b6X1nWEt0H6Rtj+5WRBki9jS99Q8o+ECWSL2QCtnOlwq+WUTXM9BP9eXoMza5mdLlPlr8KsoxzNWilX+QQnNaYdNiwrMHZQbPC4VjkbnKIMmM2TLc6w0RpHSlMrcwxJiDPtk6ckv6mO1K+3IcdHihwianpWpnNZTXyvRBdjrOW+Z6FPlX6dVtFJqPy09GaYdIx9isfcafhpayp7v9E131mmazlWOsGlNvmVzmraCrpWby1zuklpagZh83Rampc0VlGjQrn5bznytxI58Wcm/1CkeXDCraNeJ1IZbWEVPbJF7BrGyhx2ck3nxPy+trH+PY8IUMvNSb1l4fE6bGqT6dLOfyXkkWEzCPsPTRRyeRfKCklHfQSMVm1D0E0J35FLpX3xZ2bLedJIvebDuAmBwHPEsk+kFy9OJpvch5aXr7klWolg1bmHP8mO/yRexo1JlZRr5nkU+w3A+5DJLWHRU/d/+65boI/OZY6TldPlQlgY1NyKt9GomytFj4L4c/nUcQEyxsr3mWy1e80YpV0VZqx41F8NzSKtVopDST0UUMuiOKsqEgNzRnQsbEZ+lXwws+GkcuYIDLmUjTfkjpqSL2lR6SprXTzPXagLjud0OEM98PrTJZctkx3xnPq4OlKVZ5FP02MpLlHTlNyNlWIyZUSAr4awQS1eFVpamO0kVX+PHTjZpskvvGhdD6fJK6LkeFg1EmloEaBStW7WlcT76MyY9nCkJcPlOmVJF9PtslO/oS6eYkuwiqyhwXOFnNBZDhhZa2ZLs+a5RZEx1Wb4SnnLbNF60iD7RnTW/m+F5SlEkWgsOy275RaQjc7KGfHpVdn5F50aVZV5ducRT7R06dUF6JZvBe1uUWIwhu5eMWcyGQSTCvtTD3RnoLJHSMPa4GZjnNokmwWhQ0aQpDG1R7YVnTK+vmZcXi1n9ZtHSvRPI40EUXXqq1fvqwghDEgLSOQTCWdKSSW9dRTU19GJbVnDMjVaeozTRj73oambvK/uZiwWCaxpDCI4hO0pV+vIKqWcfzlNKxW9dKxoVdqvjsUv/sVlX776bDYFuRaayXHpVmZegfPczFa0l4MzFqDXFKqSxhKtWtp+l8qP5FJebG0DwvA8Ymgg5rWzTZXmuIfzNGGTc0ihGO0jF16JqtRtDFdjbWqDOUw4kgjpiWoD8si2pej96Y+TLrmZNTeamSLth5ySL0Tscdo0tUWqvcxOYMXRZ3nov5I1d+NL0TiSPZPuPc9f6aGjU3LarJmdN6SqCeRXOcvUXjl5M+RAm6RQadp+pbbPCYNTKSKMuKTL5y+t8NI123ob7pVkDMGORxYhNbUaTY3sFh04e6DTehBr2ylkst8GZzLmjs16j18vJdYwi0cjUvX9UklXg2UjzIzS05MNX9NWjkzlYe2DMW85JHQrFTaw5peRGxSNqOP7//26ptJtLfNIU1dmjMDpfv9oqJnHQVKNG8TiX0vzl45ekw6ro3pRuN+WyYlWCT2c1Z2pEq+QVcWJCwXJGrSDQNxIk1JeatkpZc+iKS7ry0UZ0f6TMWonDa0nzWXNF+q21iwstdJJtQidT145emZm0YSk2a/gkkYTFm1h2q0yS0+LBsIe6MjTm5kqrPQ+nN5H7qso82e2JJIaS1ZpuOgvFtDwhSHaYfpQKKxyvexsiB7hFptaR3x4MUqsIGrrLxu+nw0k9oAlx4RgSb0JyK4p89X1zPM1c8fEMetO82jj2o6u19WwB6LHjYNUynnNVpX6eRS9mm5dko1VPmDPtFemnxW98Eytx2g3Htxr4jN6sWiKZTfFLZoM+zTsa+o9WMgYI+bI90pYw+VY5RLOI691vpo03MmIMMt8mo7/UR+yoUTzW7jIW5sqF1Fp1uSdWpIov+UKeig+aLtEGlauazYpGFCObLBRQac3Hjp2SX9L5du2YM/Os4/JzvE5ZidLdT5I6vtLzvmmO+S9WCXB6EgW1CEJ5pXvl86XzYpUOQXjelv7OEKSiWhayNpeZI/YsBxzWHNPK+M1snykplta1qsl5uqo2J8NfXov7rQ9pr50yYXYdh7Amw2EFBx+H1e3rXvlyYp9WGqbRCdK1te0vVk0Jb8k057CKtNb2IgMIRSJWtlqfntdmqfw9v30gqWWNKSiT6VKUX7+IE2mc2XVMrIpEGrHgMIRiPnBctmk4tO/6SgxmzR+VtQXOrU0x1ffXXNbSRLNgPQPRoaCC4RE0UaKlUHz95jLkyyKsNVEjnnw35ri/MRbEF/dNOZ0rLyXr2OgX6RUcUQNH+cPlG5DKf7xRF7G2t7Gr/09Av/ZU844rmxD4bM/TFhyG7R6ZHTnIeqa/qS/xJjwv2i8dNl7hi0lq385F8sJa02LBaJFnqevNLXP+p3fHbqMNdcNEUvowsw4xRHV0Mu/iNSvLxNlR+nH5teT0VG1FS2IQb1mZMOuoSSRLzM8k9W+YM+yAbybVJUdqXpzekt8TEl4f7hcmjuO9EfLzep8ajbD4NhEIkET2S5P5TeTyerNdxAm6chpxqG6tF2F6vIfIvbpgi9hPcVhThomCwwmNUzS9Ry95ImzeWo1u9LzF+VfReCObRaeuamfmtgvAg+2lv6UWiWntXO/0TmMaMXEjLNPJnm6u3dSDHqpI6fIQM2k1yZEszC5GFWCYFCgdjRUgWMjag+evTmnZvXRmX+81aiP573Okwxgge+d0Ik1N7Fme0QIsHsEKL0mJHBBagNKK8+UIyC/9yKXEjLSk3GxKTtOh9aWXI6XRk4j/sG8CkD9gqnD2bLY9ZqzMK1q0Z2cSOtcnUjByrPBLySLaj8jqjU3USxZCDaFELw3GghNYWWggg2lFMv5c1HfNbrLxZZvRbll16bGjxmF79VShhFicD+oWAPgaDlpDnHJsldMPbVaNzDLiJRnN1ZsUXll+Eka0ycR+rBtAmwTY0QPKEKHHEB+seuprKLYYhfvhB/S0tUfO6syYkzVyKpOW85B7dOj11Z3MxFgUIqDpqhRanbxtimWp1Ip85hF7amkjMonPlCz0Jl89/qwkj6DBEePllJRGj0EKXPY9i2l4/MuuZmUuompqmFZfL5kQffR3XKC1vol9hFBzaQgePXnMEZc/LLu0mWl5mzdRV7VHywYOEGbRee86VWjCLCEHY+WGjhSzIIDZinuzakji6yLZ3O0rWMZs18vlX1YH4XweVk5BBLTJ07lU+9f5ibQ002secRu9pqmv5JNhFBNDxNRiSZXNWPfLWTQWtWRh7b8clmpNzd1Zi1m5I7TM5ehX2B6B1OG1zoRNaxR7VDm/T55ieu9ByE1SKqy9arN1Jo2iA9JRPGxUe5uYN/TmMf18jZbl0PUgPHfTmWg2DoavLzc0lmxIDsFpA5fPBrzZ50rkRqVmZZlul1ipE8NEVs87zRLFslq6S++mxoG5L5cyjjplJe+S86XEndaa8O5ay8jD2v1Nfl/YLgvKikC8UlIm1RGevTjt1tQMTmN05nmzkf+1Gl2jp0zEVY4KzR4NGlG49FamhP7yxVpia0F3WlpNbkEVZaRTpCB9nZHzu+CWtRHVlA7UGwllCa25kfdKszdvWMZ02kbObJPl3GJ1byZ6vfIwkzN/DqJ2bL4y7PCmUUBpTKBMbLlDlYxaWszSKc57LTSZT0OXW+JtAZbqyay9WUDsL1K0lOVNOW16iCDtS1kZNwxZZq0PTxDqgFZNwPKQr31eDU5M2UQglnqeNPfTSei8vjL6XUN5lr4vJT60N303ArFSELWp1pm76ZbkM5pH3zY6aPZHV1kjN/ZyTNL1/yROtYdis+dTlGd87nPXGat9GXK1a+3pzLXwYl69VqY85fw0R97rTDv7jVYhSGsmvfeGM0W18qZfU0kbLOySTM1a9UkTrPBMDtBqcbg4zkTnzS/MqwRzc09uNanmxbfuNSktmjkVWPhOXHRntUWtR/mp1VO5J7TA8HLUqX+Z7/PixD/17vkimxWGy3Lg1MrlqHfUTag9fsm9PNnl1l5LyRe0kjT/qMew3cPI6Ekkjg2bJfj7utCZujlBn1p0tuR6qmtUZAl9tCaODbZaosbhJ85eJub9BFXuEYWa9rSSffakKa1TqaRe6Fg20Zrj49KC5VXJ27d4Im3KOn1Q63LGPs3o95uXaQcjY8lPGjSFOVZ04m6Z5H22bjx3vnO0EU1aLUofNQzVbg6LHA1NOQKDY30KfB0itmLVIwi0af1ZhcQZ73Xqxr/3+2h2JF1MhrB5VJJ6TV9LNUJYZZp3nR6h8kXuYSUN1SIE2Beg7FRt2RYUQKDSddUsWb/7DRKEDXwtmgz6+okq1od30077mWLGFW0J+UJ0OymofkS8rd8tvI/ZyFInyKWal8wvN3nkntJqWa1Aff8vquidIwmwSoOQ8NVOcsV0ZT64y1ma+nUyx0VY7dFRB0kXl8ksPm1sza0Lazkff7LA34NEeagPIL8v89Bs98kTFfZqMpxHOeg+Ve+Rgy4nLrSk9r6VkQfZYgNN0wmWYknjnwpR2W2CP21Y0KZk1Tz2mHacyzh1RdVlqoGFq1Zwc4bXOY48qgr6lVuaR/U+LnJoHTltzpsdyxT1TssxVtCiUNQ9Zp5ugv6e0jm0WrHdWSnRZpvlHVNtAwFiQZzh1p8ILXXps/TJ03T5N3Sl8mKvIvN1G0+rGQUQjIQ4KuK1izDlMgI8pvK5WY8l4VqwPES/qb5cGaoQKv/HrXJ6/lOq0IGraBoScTallFlGHrelzlvp8GauRShBuqH1dQnkd/ySLC8H3Dw8cmwrIXMUbqUkq5fzZMzPL1bc1Ol+JlCTDlWO03Ci/ONUj/l5s4DIC8VBqgIiajfk/M9Ra3z5MTF4ZPTTiYSboAKVi92nTvNhDFw4wNWKNIUl9WtP06eRU1V1pDbBpOUkXOXJiN3xcD6jRnLlktUovWXq9iMC/LGyg4bKiZpMfbKEqYm530kntqRWKnjWY1fJKs8Fcax3w9DcoSxYYgk/J+keKwPk1zq0rnrXuRSzvqxTI9JvRbpaszEiAt/teXqnHbyRf2JAoThEcpkJSqVZOWvrbpI/fHU0T6SobhpHLp91M5THQ6lkk6LEwePRPUpk1kVfmulDzcG79fxPQRuuKRNnnU7cjmwD5BJqEytNELFlRwee3feMVQaMXTeXzm/5eazvoz7yORmI30eLwtUksJCojZ5/bpLepVlhei9WlMw1aZ5z+XoimzarG43+w6FxyItCE0brGqNfPb6fOkvFj3OgrPOhWlv4xi0NUDScdWdRLVguBuTFSXQym7T9TZmkny3mG5atabWacPN/Sf8tWbSRHUNOl85toA2ysflMVJaXILqZUrdaE/l4YIFX61N3aq2S/LyRxcvNmoNVj2QB2sfYFxxMennrTek1B/YvRbtA6IUMsuu2JQekpklYbNuFyjGiSUR5MVYfct/mctmgzVjr1ooP/bTeRzbzUoSmXrfBF7KBx2winypxwrjOX9PzUNJFNrQyW7YUy3an8vV9PmxCHnNYXgvNhgBeyJB5iDZXk2viWyfpX5MxVrqD6Wvw/mPpvnQOx2nDCrFQfhE6jRpQhd0p+hqBRBzdJldaZtyI01Lvb39X6YtcJHaPNhoDoJQlg0nJCMoE3Nl8nKSONWujK3+/RrfKK86NBlheLVN31DD2KwpjgkOzFGj/ajoSobQ3zUtRir6RyH0V3VzEiB7NELVJrGrfJjmIsLwpQotJMbEtZKlWz/G9yged+pJPf0XncFTFxXbGW0rpix8XlYG4FTEmKBcjpnHVOlrL6ZyQ1CR61tYYXdHtELctL1LZL++LQ2WjIbnCofKlFYo/NVYRdher0pyaseQa5sSXkYzeUX808eQZO5f3w3WQCHEI2Vw21a9OT0PQ5mXTcUtScPL+W0DubF1LZRyHO3kDuj2JBc0cFTWj09h2h6nKJtcTbVF25eh7LQSkLG5Lw+S9Zj/JJFtlJNmQOp/LxnK0SNsfBySlCVEZyZNWFFDvFdhHFtd1mylL+sxzE2sQyo+UYe0xNyQMoalxSpU1Patve36jMmPZrDt5azRpp/MzuYqbSFLY3W2a3l8WQBukoCSzSz281e619aqzPMMt7VB9stnRMqsXQw5FFmorGWLL9tKt9lRcIR9CinH19dVmuaofly0zLDNWKef5y02vXL3OM0ZmbQpp3ySCqnfEmYsgTWpLDsalHzZatubpUWRxafSSldLevdWNReLk047c1J7bUFwXblVrn4qhD+mmd+yNNoSUORya53cYd4L+8MuUQmlHyhy7Ny83xUE7S5JLkyFiiqHZob1mYzHKuuUXY76stq+Yi6x8tfJ2XyOrFMnIJ/oCFRm8PUaOJZenmeT9yucirOWZplDCptEGqtL5JXW1DlJzVqUke2X85rH8ir5ltGWnTO7d1kUiBNykvI83IP9F/vbqKmjXRXUtWr4KiQf69L+YZflLTvKsmWe4HRqfpad5Iu/iDVmiwflbTxUd3N+rMfGY1qyLqsvBp1Tko3IqfN9A59JT7FLm42Voc5RbXocmK1Htgx38u6zUmviF6OZY64GZ05EdjyZpllYG0A1TEKBMWjinfWlnmUOZ65/zLRNOW3RMuZzK6fJJCs3XSar9PIvaZTt6yw8QGlTz5fJ38r7GmfptHJHH0p1Kbpv85JsLOXl2kJJRRn9NBym6rZiXpL5eVe+rX4bByPrNaMYvxpinxZYmgxTLSyCE8vKFPojnjFlqNhivmIWZi1zk9WNpWLHxHQ7LUEBpRNaa3wnCESuatdZJb41VPI4tKqlFWH1ZMIYr8NEIajKA8kg5/l2XXzLFPTPpA5Hw+e925hlnVKW/06SKDHseEkrhxo30UpXD/Etla0DK40vdbdUzkZVmzkYR9G0r4sORJiAA98MphhiqfVYxTse2jFb751pc1q39DfdWDNW9E2nzVkwhCIMWSPoBFSQFffLTmy51SRR5zrqJYdLVsfy/V9r8tTpaimWYkzVrLExbOPyRUoPSq1coaKkk94eWksv2EUzeGucl4r5sEX03RTopajgSihsy1WJ3lrTM5edpuvWh8u9vNNfCK7OEZaEI8kMn6PkqxUp1FCSZLxdZTS+CpJ5uYX1YZaxGuTck0Nso+t8hmYoTGDL1GxOpJTNI40rGE2jKSKMws7Lkk9WxEc63z/q0RpWTTc1gxZZo6NK0rBFNN02aap4rQ/6THtSRKyDkBW5o2tr6xRDdu4xdbTkJmJ7dMmFq+zk25uabL2mKsbzFnIwC0EMVofRokf/ZLWyZnOVmz8MrecxjQO/2Kaa1uUUbNDGbYihKMJD4bhyxLU+pd1yMJZmOuaiJemo6SJoKqLrxvqOWwkm00x5a9xotHZM5tNaTkYRKvtqFS/w7StXqsiotbXoqobkftig9kOo53ch31S2LxTzJHL3XoFIydkv82TMvY+LnL9Y2HrtiZMVjcqDe9RMRK/O+dBE7V31YhoaKm5YQNCBVthqD/pvtT53WViU6XHeoUr4qsQIIotFfxqS3JZ0wrGXL3WbT6lI+MujLVZsLU3elzSCyxPH6T2qfRRG6S9VcIFjvl9DOkuy8oTSnJS3Lov7YPpzLTklzCFKzM/eZsaEKiNVSSsGI3fBHFtauJip76tDmnv+donToxyRfkcWcUlacJ5N0xJec18X3V5xyUTWozL6sGtoMSx+USzlnOX83rWo0l+mx6hJCWpNr6IqsQnOa85Z7n8zNnhxJY+R9B1OZL1oDaCD5iCN1zPc9SFM0iWIPtLww3DXQyyJytWVFtLpNCR9aI+q1Y2opm1pI5Vi249WU300vD+91m5NKtzlZvh0gn6PnoKFfpyR+a7Mkx7paCVaaUfRJ7j+a3OixULFlJaifjpXMK/d8EURbaREVPSbMz1ZoYxpuPlC696tYT39F3Fa+oXhc3CkzG6Ls1vVhc9X3l/o6pXomCWbwuH2wk3LYhM7zSTl/V7pIea/tYxcGXP/vHHzGNlrW8zL4i4Bv56EtH5HMn26Fyh2+YGLLw6MtN1IwzcvFom84w7TZCDu47tWuC2hb201BLKIEfe61Co+cjJsrziKRBixlAQ+dVNyBFVhsE84eCEo5L5lZfr7vr6DHrTcKHeXwEDBiro5qJulWavhsNuA8cgUk5AoXmTmMlzjMl3Wdjk63qHrMzpts8LJhkU/l/aypVbkSzlwOCKI3Ye1RbWpGayy7LOk1amUa+Z0W36lyhL++tXsJ5AGwrUK8pWGhofSlahWvl1lqzakGpIp0aXdoBU+1tlAbxps7tXv5IvYrSRGxzsPN8KHLmVzjpf6kwyWvjVaaxlaGONVpWIsZTa1LdMiquZ9hyQD5XIDSKKieZ4zkv3oL8GHfMf7Nnt69y8kskftHm45KZV9WFMXDzUEgsKH5xVq3nNZo9HGZ3LzY8jkUplb+Zq2TBpr1KsbHaGhJlG5LpFXamnac3S4imxo0/n5rZzd3EXsf6fCXpVZls05e6tQY5FVlhXkGpHN6WUlWlrX2MmTFf97CSLHcxbd+v5pmXxIgTc4NPOievTKsbvqwmipBw1OOHMG6WbJ06JnyszWq2ilCDtSxvNs45LVo7tNismopJ7ZWuCpsP/7+yTFX9+bLZh/JZuEYj+asWIHBYakpicFU0HnLWe/7u4xm+Mzo3y83xeHS8b2Hig2mgetJZ60+3HaUDtD+Xq6SR65NNlWiOLRk3I6kYsE7UrScuhtocTo9SucuJkxJHV9q83SjOcMJIovSljtzXzY8FFyHhaI4gsrSWOUXysaWLM+hjFz/jnprZLeYrTOm6xu+peboixsC/Jon+XNKFR9rX09eWx8kUWaQel9Bi3FWkTHySyMavMPlLNd2Lgi7+S1YF6FE49aZVgmY7vmZbkJzMsx397qs41Q8/fLd3dWt5legimTEXA6an6f2Za1ZsE2ChEpUVuYG2HIN7X0TJrha9yJsPc73IK6PTePtYvNLsCBm25soZJCWt0F+YXJFKtWLwohEA9jyYbsBdUcjC/3uShZNZFBeroLDkEnm76bl2FJzzlxuY7/YaAQALw2HpCD4w4TQp/EhTdmbyJpf2idol9PWsxMiBVw3JK+s32EgHkIRCFucoVWp1vhb2rzZkvM1osdRNmMpy8klXNennRYMiwwDRU9FDKKaUuch1r6VK+w0fxE1c6J9n6JdLdG9gTkrcFwkQTiD1yg9Rrmw7ddjQ1KiCFJpZsSXjd82on5SbpjLsF08bTOSx2Xl+Hk6bu9ugzN8VHDregzQ0zy6yKCODM3J/kZyTXwZm+GzGw0LguU8u05CWl0JMO1CAywaRT3G8aObvzHVm4QyHlRr5MxYHkPSYXILJjylOTO0LmjtMTaKMnrk5Jto12pdFa7EoNwqWWEQaIFFqeZ0rnVMaSP2m3rczQvcvIQM2gvNGlEmtyFQXgxVheWc3yPDy5pRHL+OJra3zQx9qHyinv43s9HImmJqxKHI9Urw9H0ecv+WN1QRUYZeaj+9JWDNReXKpxwwqxGHYXooLGx5BRvUrTBzlx2kle4NY1Lo/d/aR0Rzfya5VqHxFhESGkV1KAWZa5nRo3y7qtM1B0Ec2a+q1USVYH0rLFNPTy4bBdIs5s8jmhgyykSd/D5kj/GEW5GPK6kYTZQC9S1VhuCeU333Wlly0idvYJJqUz/JebA8TMQ/2TFiiFQG1SNpKc6s2s5rWoSZl83M+qWPq8jh/m9RptUurYDsMjw7j05U3pWVJZTkORfOnOXebCX0JaiRj4JfF6TVqncl9iMXitM3nnKLbl+nrmVrU+gxMum1tSR+Olu5JGq2zJszXj6vYpDwWILOip3W3vp61VkTZvA1J5LT1ZIovSNZeo36as8HMrqnTxIio+ZnTyyHJJukjamJfO5H4ul6VUW1pIpiywUFpBqvHg19satH3SzWkUReGt2rRzf5IvaSniOuFrf7DcHFNLm1lMccN6MvNlfn+1KRa3Iozpy7Q0rnTJLFjQF64eEKXH0SepLq9CfvdGppHF2VFzB8I/6an2IwpHoJcTZNvh9Y9M6XPkipyrLjT3jTSTxYz8bVJHWKxeFsBachDs4syKOQ5yrSPyrFmtWUebXzvT5M99WOzh5u9TlxaQS5FYix4Sw4SjVM0lkHZC0kDU5mOpxhFrSSQ/0zPIvFoCsGMFqq8Csn1EFYa7U6pq5gLz/qjx2kjb46QKG6C80Xh8TcgYYQ9E44eXq0qqZfXPgyuLoqg+NJJ3+b5NNcPSJItpAEEeXlGlWrPp9aJIGrzYsFeIRej2vkidZqJg2bBtCaOHLapg0k4bOjRlsEfa7kTnOuqWa+t9EyYYyq5H/aMdWrIAoEwa440TSDcfNmX+chROfBE516DlPBr3NJWQSer7Wqo7szTLdQwmXxYcA4hFCF2yNZnIIfB0lv3Y7kXsdSEaCp0x+Z5eLjCtxsGtrLIpECXxFioPEy30OKuU+nfLKT1rWRfS59XnZqL28jhl5BE6HmnEbXKxZxA4dNx2Ndz51T5H16Z5mrEPpsVL/lmXW1fWjO+ZuZZ7B1DyAwHsoPBckNHl4ICcsU0EXm1EVsReahmGXMfVjO/V/zTM1YGGAmvSESg8JU2ljZXo65lk9ZHFmooOnIz820UWrRfD5sXgKDAYlVEBTUiPnLf3Nbps0ay60oPnRaKe76bYOACqAviYtguPCgcQhx9MwJEE4blkXovNtHpl52rNUouu5Qa2e0161yXb7QAUoIIuJtoOQoLlDHKiQmo9a5M1pVd78jvnIp8jkvNnNWerMZpn24BTgX0CpxQStTTg58/NPzI+ky1xebqlqxS83kUX0mt9em2oBDCodgeEj0A5KCIbXL2ytrGt+oxDdWZeHmqKnKzJhd5czo3L8xVgTAPwmTJtFYpDrIED+lmptzW5ZG6naSNlnrmppqf0Nv+v9Jy3rixMD+DwDcLjzgPQbuWC4zwvUx3Z1H0MJsdUpLRMbrWXnSXaIEWtcm6mtfXMTYFODi4gBqkZLInJY+FUitOd+0zOcILrka3T30rfJj3itaaiKsaFxNQCTJnNb0sT0tagx6EyRt6sSRRZVq6x0ol12gcKUv4QiwXQoB2K60hCJrPKZKJa3ep3gyt3s4Ulk65pOYlZjiDVWkwozL5bw3l5l/VoiZNhFLBsISfnDw0NJeFapvK+COfZoK6knad51Ede5xqLW9GXx7EhAN5ai01pBwl/u3D6i38iZLHxNqGws71mcq2jPWMJtfyXxubkJsF1xMNBtY1QjIBxCH18sWda5I4zrNrpTjsUbMkTtN8446t8Wn0ZixMTCF9Jx5CLGxo0U2lHrkjdfWNTpNWTa6iLvkk9wj/NenLkFZF4NyY2CygTQTWPeTnr6ea6tRF13FRqmaXlmal2cIEWIaRPGfv83czOiwiA3LC6MEv/TjUIza3mdyWdVjI8MhZCSR7HN0K+nsmRh7bLUss6MyCRt4PhIHXOTmcnU09lV916jLV3x852nyI3N5E1dyNKLppqai5klqwtBwQcxxRJyEJnzob16JYSTZrhSlPOaTmdKve6NNor0eOttURy+rEwTumyjVlibpl86shmr1XKiikvPzJXJG66ONXWpu+qjFPm5FkE0D8k4ogo3zOlBcr0kS4uqFK9GHiuXLS8y9lwbP360N9JHVhoFBRANDjobPzV7r3p81ogwuJzr5uPauq//ozVabBXR3kzFjYJcfJsTaOj3X3KrljHPQ9nItOOb02qtLyyafNpZb5k9asmOX9oC8rK5lH/42J7e187ma0WbXfIx92Lg3SDgpKg1FHFWPat9Es1Y8tFSc05Vs2NNyCT6Vn2BMB9BUa57fpcdCp+6vbJePN/mjxu6FP4x5mrOEKiFbj0vZzFXIGCcGzD8Ug7j439KhP7zmmOvLVZeTpsx1w9sq0wxwVcWmNIn+kuqui/MzYkF4jZmppfTmqQtMot7aYRUYmzh+F7/Tof3uYXpl9BH6TlfurFkI2v6h8LzfSDtNKMPSewibll6sUjJdzF7kUjDmfcpNW06WpaZM0+iORBqxEHR5ySkhYkvlqOx3lLdj4MVos5KUhnpLfPq/SR2mXMevUrUv69FlgpJs7fHpp5+WssxRmnJai7c7RaKiZz/1ZLukY+zkD0v5P7/T6XpGEWmLEKJonIDsoLis1eOa2etttQnH6ZfM3KiLW0OpU9pergPRsg/EZZSJH11pnzTV5Qjq65489iivI/FvROrJHWsNw5DRJw0maNiQLY7yjd1lWzopWvHVqzj0vGQy5lcqr1PcrBirBp+islvbhcNDacyoio5yasO7JbNPgvOWrNt501Epv/Ips1equlMWGsQPNSHikNKb6ppff1kjC82udD6XOhZiboeUfGb95sdBKJlNKxUzn76H9a91kVGKj3ApONrQkumVQHfNjJ0lZ3iH+3C1im6hNw0m6lfM6G6hBq4iUa3mlaIovy055zYtMN0gWR7dpz50F4bUyRfSXq1yPHPafNcin6CWKvwxKdPUmaLzqvA2oFm15XKCUl2+p1EkWcKVqVv15ntE9IQmzJqmdZUJcngrzKdZKfOmElnfsI6guy/8a+PD4JZuDY3M+x5yZVrzRwnklv8zKjV50GVl5uo3HdRqC82CKp3ucaX/+kkqxCVW7tGh8bcvIffrUP6kzRmXVaFGt3hp3nyrUUXi0/S+877zcmyEwJY9ljQ2smelpr5j+4k9sbLmt50vWSz7FK+vTHV9hLOPPRzDSZ49NJRjz08uZIvNjJohObkESOd9JLNpdKpyUEsWDYctE6ug06VEC8oCOCrYMw9tuXKc6d4hsmZ3s9LS9GFYqyZZI086WqZKKV/bLkFFkay8WNt9IRm+W6SOCWLTNNyVaXzqtq/uPqEwli2fpel/LMxpHLrDU+VJ6k528SY+kYVaHqccf6gibovHBshkJkOGIDyaq5TEs5pFG9lAacigtCNLPKsw/ktW7Qc3pd7TNXgmIDfQaLjzsQIvXKiyjdNSRcvNtHzz1HunsaZ7/JHPs8bTUO7T3tmSRpJNglEmIcRFUWpnJw9cxKTYW0iq1KlcntzSX3or1jdNyeEseHpToSBeWXKsqNbltJXTfWp/kctnm68wYq3G0cv4rhPRyT/3u8NmTHfLLrVEvSzLRNxpePFjywwXS6xAnp+msgcQN08jm0sFhhTUR+zq8mvidFjpsptSaIhKeKurMNUfT5JHXRpqKp7NyKggas1L6n9z/Y0wqMnHNGRooIknxPPYfKsXIhHop61sXeUZoyKbXeoLwyzZKsQnTUpGmFnrZvcZp0aDSWdN6lp/NNlXmPvY9BVtJZqZ0w2lT2t0+IIpZnWKV9L//6CL8YxNymdM40vzMwIHsLEhHCf7BW1Ar6elJ+dmczOYqyzsxaLznaaMzvptLOavJdhJ1atIPIGXSxSF5aL50ra3tbBFOlWL4rWc82uvSR8QIs4ROajL2Ogj7BAbZNA9Y109LZ6dZsrao+QgYtOZQxzZVXRn3MVkedZpWDkusqfkDqfWcgo3S0klWSN101aSkVyOvqECL0o5daLaWIZpaAlX1nmFGufCyJs0MWWl1PWgbVkw4vFrx8KuJIlX2gHRQRnyMqOlR0P7chmtbmkUWtqB61wo3dpHXuj21Xx8vXaQOBwaHJLpfmZf4TLJYpIgOuitNVGkKbyRgg8kizWPRen3ySOEGLNDpI0n0lhwJUDlanDZ/d4I+7q1aJrkdRzXrMzKxjXs44a6WS0/ma/XNspIqfmwPFXBb/m6SvKE0PRGyblkacbK3rMUrNuH9So2q1WVac+LBLBNPWMrEKwmNkeidKygk7/+SsseauYfTX0YmbC1afp5sqwYaINWto9l8VC1JAofl/Nze5pXQZ/7rPPqtDR6MuCXkdWoloece/mKMSRzZoUeVEKaAEuKe6ZhVv7FsklY+rOS31STrcki0RDJwzHbGnVagdcaNiXKQ0rEvbz3zNjOo47Q3v9g05IdjUFk24XtFLUzpQQx9P+a36cuBAdbexP6kmMaCtizTkTtC1tbPsoHh46hkh8fpqNPicxrVYM1a1sb9K1HZtF1rdXiwHiDVyaMyO6a5JBHVjwuk2UTWEI3ohLQ90ZuOuihaXwtzGwRTqGPtZUb8btZ45JIxm1HKNZ4jy38vSCsKWNFFEGt/TjTUmGDCrSTWPQrFtBrcNBeovs5+lfXqKvZuIMWfWOZplenSY9tiUvqRbqthU8SFM3taLCFXrYdFdjIMUuVWSROdYhmUD3185xiJVmba3ubkdOXJetT5sJeUIMgVFXQPat7dCjc7TJF2PYRxZsptjVRH9RiLrrhHGzVhPCeTDVIbPYj1Piy9L4nM4gxbk1t0mrMOfNjK0js03yXmw9BsXvJZrfKR+nIHnd//twyab8olSq1Yiz6rzly+LLB4FjRCpgslbU473ML1zFGYvNhLfLki82jOn43+xcQcmfxsnK0VCu7YntVnVQwi+iitcLWX4Ekq2Lwado/1aXUv5eWkUVaiichSGz1qTp5/lyC5y176Vas6ceozSX/I4JItPopCPot+qtRiRj1fYrEVLS7WlWygrWh81pEGLBq0zT69rySOoxBLVoIhicKR5rWJJrOp6RApDlsUL8u5V1zTHtFPl6zDi6yWrjNrTM/V7BJh6OFXLWsa3Zo0nRpehJmmzchMGW1OZO61ZfDK0wZq0RrnPpR88i9iwXUec6XDzVB7R+zydM9cGWMZZxuOlLKOa1ulWRBZN9Kh2nrYtBZjiBVgXoN5YNQgtw2dScw+adq85dptSHiazxtnaZ6rFYJatconKdJzdMmZf7CkQlsEJyhzoXKS/+9DINqjHgxFrPFRq9Q8PrYgZY/uJPp0jCr6S/qy53aXnOVmw5LIISkpCCWTzW/dze7kjrEbBH19szneu/51ua7thfrTKzEvieZ4gxZCH3Koygik3HHby85oxhlp0jzsdKqBmBBm5x2rdKdDbNLBuoJt8VzGMjVv+rKBG4vFj+SQQnof6FjCbEWW13l05q2qrV8v5ibATgNgKBAFtY+HQcDg0WpBrsozsX5yzHMTZx0uPppeYL0X9hp6JpvXuuS9MsB/ADFAMsGEhKhEwJ8IaAtKNe0R8stqDVmI0elfeOTidRv0tkl9mqH1OmJnrqw2AiYIMG8Ji2iVRmQKqT5LE0ofJj50EXuHIxWpNb4ov4GPkQIvLfD0PqMzYDQAfAXBOAXy8KiE3Mboy5Qp//Mw25xqJzzn8iizfFU/2AgYTj8GqyyyySZNXrlR8ZAi9ygb6zR73hTUvNPiwJ0EuHITjkDhsaUkSnvX025y5H2mWGZvNa7daC9LFvjei/IpMxZx0oVlKa9rS8mIM0Rewii8eQQwXdTIlmLed6XuuSSLPNlCYZX3cuC8qssdR7fklYm4DZwLGWetuRSH/uVb2+O/mFzaKWGjcdM6d1W3jUUn+n1osRz0kljr5WxCVZbE/NkzXLzeRlR2QOVhcX0kkF5KC9WB/BKPg0dG5WgcfGmVFKXTGkU+VYI3WFiCxo2nfT1CLvmItMdFI74O9VM2B9SLRKH5apTTe3emy5m5iNFmw2u/t01RFPm4y9Oo2Y8WEIJYuPGZWkI0C3RnS1NBtM1CBNtorCOOavNii/mzsxGXnN08xNiQEoEVNY0wNinGyzO9a3Tm5fMy6bOaFqUSts6esx7HRlOYrz1eYi1g2OOQ47hX1wrB/W+ZXAx90e2Hpd15s42ZlliMXC6EpTNUKCs+fpfC8g4iq4NdL6jMbBLV1R6JmasmE8VJiEu1mO++nNh9XK0lJ0JRS71SIVY+94HdqBZsjxA7t3y4kohpJG6bSR0+jUs58GGWfUVGRnMI3WF4UAax9E6kCxVfPnd5Vk6VCOr0KFzlHSROiwacs7zklz4Mz7EwJdqg3Cgqk9alT9OlumbXXhddy4XbZmR2qP+qzQ8HuhqlM5dGJze4vRj51+Wq9Dvkk9nJCGDdLZ3IpfF4KbcGiyblEj1FW5x75yU6jMXmpDvx7fp5ipvGnGvSW+iJ10FE8gAlGuQcaU8N/+SV6vtAfPKnbjX00S+2n9n1D0PgzFqCzSyW0pTkElflrzZul806t25s2i00vM3ATRGsfRpjiw2p5zX/fQSMqzmrzXndrNVmzGOivMe5CfkYXjflDdL/1pZhKyxlKmw/1uSrJYujpO74fFpB1CApR5RR7afKUJqPauDMy6x5a+a3HcirUr7O6PfKN9wlIUdLqUcpEvS/b2Pojl8WTyArCyTmv6jHxy82kO8aa818x7WLgxHFtZ8N6Flzu3OaSRaJwiY+MuRhV7ptVR/GE3AOaSSPRCEGXb4VWo1krmiWbwaR9WYOEs2af+vdornRBl1jQeg4946kEJBj2Kx5WyII2+5oqkrDNJHMMtI4IJx+S5YjhVwwXFkIsAvxWBJm48OBwSQ1VsoL35J7jD47GlajF1ZqJSJ3+c2CRYwq3MKmj0rLB0LitQ//IfsYSVZyCSKePDRrnEnlhJVilp0oUmgcxcEXzXEvssogMz0WrG9Jyswkya8EfvnoS+utZmHzFmtT6pqnsJgN/5zeOMGmpr+lKsc/nErLFfKhBagawpFZsv7TEkk2FkrUN+7rcLhamCSrDSh7oiplNenTlmfpuEyD7pLU30l50RouZESq2yrVisfOcNZaa6a3zT1t0zHi+PNSXO7GKcvReRhWq6GVoI6e2lyXilasE4DFOpRQTBrDGzDfB3ia8kbrWcN0o+M4o0jgYePaXKzL5XnRRJRJFgJyCIaDmND7CpYmTd0PDiy/pZJGuS7iN15FzY6ztPMus01Aay6d3qN71s0vbYO4BXgXQX5ICxQWG5q2ueVUQZv6Mw5zt7EK8Mz0nzMGOIPtRJqaWjzyKS/tqyEFoL0hoIYrySnlsrTnsbvzPuYzfvRLKsXqpdgKPwIQwNE1AQCgsQWdqWxp8tbLfzFZlpNOEJz2xoLzeN/+82AVgHUCLjYNkkwprDs4Src+aJ4tqcvdWmmGWFvSk58Tpm2xv3/72BTKAZYvAAAC+CBIhRUpc7z85Ss0i72EtXjkVPDaEGLNTRCyevrfBmVfYIsF4HkbCCgVUWkkfMz4lrZ+mzTZZPai/t9x83ScXnRYFGeBgsJjZCQtaco2tKA4xVCVmKc+b7U2zku9uaXgvE2agf6x1Pkz+X9gxKILESCjqlyWndSU0t1rI4L++NYQrkeSfwVk2aEvdToM+XoA7vYB8ubMrHsPdp2XGWyDlyuSSLPmnx93yYWrFpfd86H8w60CyQ9qPHVpZffOpb/7UyYpTx3ZWZYyjEnaje/2NcsIjl9iWQQXD0loE8o2w0lrGvpv0Nf94Z/Y0jg1mpiZmpfD+7RbBanju3lkEkNO/lxR06SSbpy/L6LRlkS/fQFJv0yzVyLxYiAvxIokexIVBtxtumNC0HSTJG38yk9OLO0mGF5s01Sp0Ux/MexsDBESZpwjKCtRh5zce2ZzpbzMrvcbR0ILboXF1Laf+rVjQN3NyI0cI1HLk6PLZbvuZh7raahoy8TzZVozNzksjvDsurBZBwK5JRpAF0kxo76UP09NEk3ko9ZrRItckVWctGKqTXdtsBuHj+0qTErEDp72lW9VpFJj3OnV+eOTaKPVlpWwvAvio8blFuRQk76ceyJbkiSS9WtH9eHTdTNBdjLRiYHTDTNVYmFbU/JVP5BvfMd2jNi5JoU9Md7p5nq1eHk1TozCObC0VLaKahLlR5NWePoTmPgiovF1K0Xmvd+Y9m14h9ZlhYPNWNm4bXMH0qd1FH1cx5Oxq1vgz7pHI0/+1IxoJJFGg4iWtfHy3tI4nUrFpRMNfy2ijETZu+jVLCSrNLYLGyNSNJ1myqp2xYz5lLRKHfRf2lH86t7DlAhEoq4dAtGx5hepzJLtM/RY8eOninulVZf6Bh7G1Dk14bUfPLs5eSKVasEEHS1HECnShY95l5xibCCitopb5pWpsfELUJXPfT/ZQJ7CBrREVW8elvnuQjLj+VZ3tah3S5zl7mfaaBpsxyahn5ZibE4tBrKd0rDeRWUr1ln6NDWUYmxFMLnwtPNWXgzNj3/+6S8v2DYLUA6Uxv3Eobn0+EvL6bAxq2nHqfl2OGDbQTUGvqis4nReDEWkDkHAkHlAgqLxbx83TT1taZqblqYhRx6SD+YkxyKbach6yR75gx74fFEUIgflJBJq3pIJTW83KOg/JtnLQL1veXO+k75tjwb9zEThK3oH/vakpP06S9Zhn21NN0aBE+VmOrBJNnQcs16b/7EQrXAiROOevra+U28lbNoHLGV46JL/U+qJffR/q+QlcVhQ0GtYrqU3zLay9KyOS/s2kh1u5rYUtWZ0edNlQ6HyZZnQNN5Qt9JVTJqsbdQ0ZFMaVVtV5mavIzUv9isPOf4/jUNQ+JmO/tMxbRTKE5JtPkzFwd1PpmX+xcPiQeQRHsf2KGxMHPXpbuYjTKrrbBqWpp05b4IobvZ6jTW49L50F+Ykjj2UBJiUNyaK3Yb3OfMNlQvRJWpljaUtnLSbGaZmxSf5rtOW9draNUP8RFCE4eadu9jXqRpozSrl35lrcvNzW2b50akV6LBJphyF4ymPoNS0LLs05pNpmDM2ksfZOadQgTZqY2n8f3yReRi2xwOnKIzI+B6cg3n5sP+6HIptBRPeJUZo1WktendBTebFbRX38abKEaVWd/3JPYSw1wWdBAanN7VeZXJipM1YhGUU5qknrBV1a3jY1+nh5ub8o3Lh61kcXAzl98zzPfKyX6AgasZf5e2l6iPksXQbLDcLEmnJTPQfzqTW+FjH3Pkeguz+THvm1EvRzpirW1jmZTnrFc989qFZf0kfsZFJ6kfzO9GZvT16N7yh9LKmnS3SbT5idGcRzpf7Xhk052n7jD2lPjr1Rp3sShMRKjdZBHwig+G9zKbZRTNP0du/Iotwz5bMTL5MVYS2scPnfjxRJZRup7e5jpJHVZ0OOT6Z6i2oK1l1D2kvtKhpp2W2a35erDQ9oTMgfMxhpr/1EHaWri1DsWXK/Pjcimz0cwd9ToJfYespojWxDupNWDugdmkjfZVelCDlxT4s8djJxvVjRPBZC1lhYdCR0asc1z2zcriIy6y9zEP9jv6Kpqs3KCA93otQdD5+7V5DklZj/cGya9GJMzaORL+1nQjU8RL7Mar+umVP5irxpr4xqvuEX1jfahyPh7XKI0jonTofBHN83JvORGFWiiNLekisYe1FEBtCj6OPXMmP8vRcLXE5aPjTZ3a+aPY7kVaIvkBTt33SH1MvSfkM2tySbeNY1Vu/JfelQ3Vmry5MVvaLBaP1GGxNQ2aYakWy61GKLuq8M+PpOX30Y97oHK9LNIpm+JgnKLOzhZMmPLF5tEn3ZfQHqf6+ijMPbdD7JrScT3ky6ynC8aDRq0UBU50v7aUJ+1njeSqEc5vL/eKvuUkZehpZJllh4Kwpmjx+EwS02s/fK1sWzMMzzFWGi3QlkkH/URSrBiLGchpxrdVjYNo9JQ4UhNQOYPRL1FrS3zSOJsdOQXOUH0MszAQM2ea1PUeg/1aIe40/MKBcogdl7z5UZvBGvfVeFVCk7HLQfJHFoskLG5HpzRmY3f7CCjKmTUcWKqZJXsQQzJ1Ekv9WNILNjtn78ii0iqWmJ6C5JatZZBY1JyBTnGs9ZcFtySrzUTWqx5s3Uki/tuAmleOrg2BL4fELQncYfMtIUxjYk5Il9zVIpeerJEvRZqQcu00GgsknMafkGQ9em6Gh5KXpqZZmdG98qed8tApqkw5zhAmxoViYcHX0Py4VOLuSe50kUGJs7EyfwzH1NaSe/lB43Vpy1yRyMOr7BKD0ZNo+gVd9SvnHZpHMhAutNF/3O6tGYtdTKtWkQOPEk8bGmy1qtZOYmpM9u9XPSOPeIZfVpVCT0UrBsDaGDLWtcooo3vapk58SRSIEWicj1ekRd9WTntbIzC40mJsRFuWrCESHptn/S4gH5fMwZkvN9Gg0NyB63yYouu/0mELUWqacxWWQX5FVqdCQslkmqJaVfWd5fF4FfLOy1xfmUk+mkr6oFVFik4L0TWnHFHaNWnSo1sbkdWiuJ06Wb2ajFVqptjZyxFoTJoOQ+p/nOa5dv8fNiVZMVnXWrTp3sqWOHT+POyahysSuinWMO910oVxqXy5dJiczLvSuC9ZdEXsNRYgNjMrOHHaW980gg1swRVaxS02npDhIyLSWd4jSWJPYcrwrhKR5o9B3lWetmWsjXaMKKNacmvLZ1Z1CBG9nIrQ62zDGtXYywoIh3O6jR9xvavN53yEmY0WasRM+Snfmf77XOVUojmVViDVhstMgTSzCtS7Rzsm2a61mZ1XjUFE/z/ZynOQhbV73hIoJX04OJUbv90nzOmzzhpD6Uis5tj3Hk9HOQrSZmbCg1unplBYJFnc5/c1perDRp8RXOcvQX5j2UXpmUE1uoilWZI11YkYiF3UFgrH8V1P5ycr9EkvixpNAZOoeTI1vYrFugeUacTPjQyVf6dp7hjOiwbBcaWOw6cEFyczOh9PQk4jmlfZ2PLGyp3ysz3wSxaiSRNLHLnNaSVJJVi4G0Wt/GcxfO06NKrZsdUG5Uxzp3YY8MzdJFVpU7HZJBVpiTHsVFQ8SSmU1k0j91T1rVWZ9gSbUG11nqFHaX0+XzzMvj6LFKTay/5cutUmW2CWEVJjKTmr+HsukD31o/aRcxFqDLfPSOjS0YVc86KiUu9ZirKhYPon4bFkdg2cdpmUk5Q3aZXmKuI3WakmrBV65Vh/rS+jMXS1/vZ8oRQ+rCkxfnL7Y65Pet9PbyPqsv5c6Z/3kvFyclza8TYuFGFmc2jyx5RbdOJxo3auDLrNNT0t690FmJuR0ZSR0VD/YOQYBDCMIkipQbP0/NbHQMNVp7jPuB6VodJejgq+Zq8FnSUlf74qwegNMWAvhiWSWC2VSRlbcvrmsvkcWenlBvdOVeSTaa5Cx3k4vJJ7AGRAT8CBC4GsKSAH4qQiRgrzkFyJD3TkC9XjeNN66VWSzFymcPH4dmpzZ3zjHI6sA2wQwIQDYCZIA4IQoh4nCRVRq3LICrCubPMsVZZ33h86a0kdXxlc9/W+jFKzYAHAEBB7EgvKAwBWKi0VfNnMHyB/UUQlWmOMuL1qLuZZtUjRiqLzqs160dRqskVWBcDQiBxYJUp0uQSzGqILnLbMmPJdlnZJAU1lqyYYIC71HhqdGS+lsWAgoE2BM84SDbPm6VzkibXrqCLrpV1w1f8IaeR0+AgavHNOLw+TFWCAC9AaEaxqRvoLGtMLbKsEc23VJ2k167Of0bHByXDvaU85I53yjeU09thbkUo3PV5fvWr7S0y+KsRjTlEWtTWP+VpZeJ5mqUrTGe1LT20RM0aCX1c+JnVjiP2GOQapmc5sovl6HWrRJFmyeNnQccu8O5vyObVngfjTu0qJP2KJHd58VqZRGu2iPeuOjbcuuSTZwS6l8D684YO0WKAltGibEBcNDyDYrTLT6zZgjbCrLSNmNMFltnyrLi8ks2dqRisz6oMSX5JNiMC/LAeT+4mQD6jJy95UUznxdGtOrDpqn7CL2aibUQvnvbzHfNsB0Eii0SrplPqypSxAWYq809Osjo3sdQSQfNPi2C5ZY7OC8JbCw3pVKNb574uTqRnUv5pmfdIwb9XjT7JkBqaUxWCaF31Q+uplFjClYuUNy8uYS1FykrXqWOJZ9nCsWIS3nkKHWjOl/H8z8YssdQTOl89eki+mz2jaT/meCOM2yhMVcVcVcfH2KaXy3EMqEns9BM3TXGDra1ZqWo6d5JJsIxCLED+cPEDS0anr3mWzpt5BD5lu5JCs2OojaL6OXpI/bRYdILJrF14aXXll5sOOtJi4OS/f40aVZfBj2FxqNNr8lqwuFY+MoICFKVylUxk6l0fyZrRYQZrH42jp1WV703newSpVNgqGiERSgpkHw5nzZbpMxy82nNBa3OXGbJfvkQas6MpOXX02HAsaNpt7BvN3edH06Fy/mKt2SJtzmH76QVU2FsnlXrcnl2NhLkWDfN/bWQjR9FVM6iNlhYPHEDN9GnNV7DEW2UmJ859PQLu0q+yw+mzTE5v9TugXqVPZU9QnXTXu1YxaMKtiRzfl98iBNsDlKsvqRoH/8uF967BZHqc+vOnyXrRYaoIoIvl7SP2Kmis7zJTE0FElayiGdJJStWGpqZrZgay30Y82gidpe18EU1aZUhWOynKZReXoyUoevm1bjU0G4fO656y8za8c2ctGyYrQyHHkpXvUv7VrV9jXPCXOSNl9Wp+NI6fYmFw4VSH2JdsqSXO+avUsim0MtuUXK6nSr97S3lFaSKmoxNj4rC45aWbM6dCvb9D5tINCk/SknJJVmwp5edvYdhQCzs40I0kE/Sq5JoNnLWRe1Gmnr3OQzTE5mmxmsn9NNmCJ0fRagcFctx2H1w79dTBZOiSbROKld14gc0v8xVdaSOdN0ieNfJUyVyZWX9EdWHINpNJM40s1QRc6cvJnNeuaM0Zi5oaDXyx286VZ1W08NEEGlUDt9ReZV9r6TW9wiDjCo4vU4+dJLNpCFyDcoI250EVWxQLXL0OXS/JHFrFZ6MtTKsUJ/d6hVZ+pWSKrOHjmzTUkGsaX75tI9p/mJUlyy824OAJUqlI4NIKJwrFKdn1LvHDbXsjVWaX6sWiGqR/zY6s2FALyEakfOJuw9KSq5TYv6Ri62jLhC8+Xtkil/s4eQHo3UVaYqXwSxYGSEMh6LRo4bFaib/u7lGLlpldjwhkdbLdLmcxU3MNqdEfNkiqwcAZxaCVlx7hthBI8rLOT0ydBnvqxpIr39uksvka6GNSRxYpWgc+Qsns5J7A/ANcbDYU0NFQsWU0U+jpEi5nkTNNnjx6Px+nM5FF8DwlE5LfNiwCnAN4EM1Q6QbBM4N9T/MuHF5e5FTrWmwfT0np53YXXovntPnfvieZqw4AAoAZBYeQKKATA4I11Wan/1v5mXyXqxUlSXk9KcyyjJqe18N5ibFACLAUIYgrrgTBkNt/8UdnJdSYkx1fouEjfloSvcFbNmriKak1sLmbC0BAxMB6QYNgthEG2NbWX1D2RlktWPn83QNHse0x7G2od6jVNSy82UAmRoL2HrS8S5r5lZ8ac3mYvTCB8r/e3mIuKa1TtpVZeLCMUSGg2PEQS2mpfzvA4NzTWM0l6c4xVwjkmrQHn0ZZKrJIveNmd0hDYkKlTUsgcTSSPxyvhuQ0EdWK+mjMoILr7q/mJgQKtCJj16rTYXk0ZawUjzutup/e1/vBcKa8/Kd/V891yPydPjrIo0zZPdJHGoOg59K9ZZ9SRRcoJyjjjqfJE6hj7/PRjJdWiKbBcc4mdzh5rS0+i9Rq0wSU+rGfkMlHXzPovFom5HTjmyRRZMgpw00/DgrGsv6Z6ERuRebRTGkxnnLY5ekxM3CBWfOSaUfy9Z1kw2QPWge4modDZ0w7xMfkcw91y4+YO3QboM/TfGh6XzOnmPmatMWciOE/h5ajoUjRpnubpulrgdyR0e90cbpR94OTo800RIFnzu9rofPtKcjWRxOGkXue+MbneSKbGwcQ6LA04aJjbCZ51aW5Oc3QRRFmpitJ8rXK7g4bit0t/YiSFrfB0hs87cwtc3jhXq05z5Il2aOk5fUM1EbvYiBroSTOSKtKtlWlk9DfqM1bR2Vy9IrX8mF3MpIo6pZMR7DEPBU5qh48xsjeOy/nJzlKJJsacPKJaZVYY7VW2KUFrnV+9piC82coenSSDJall/RjmublzfQn7ydLm6TH9y3S/6omxrHsXAaCvrQbM6d91VrtbMdFIpvkQItJKfWqX1agaoJpL4WuPT63/NbLf9JE26fGnHP8mKEGr1an1otMVJJmzPSfJ2nVHpX3plpum0p3N0I2KWHBYKpDcLksTUnvTOSl8uM1bRuc3KHvX7lRQZmlovcRNLzeFoTCgtpw6d8wr9OafbZSPTyXW+PStXHzVxlq+bOFjBtNIfHhpISbtfLspMrUuIOn7pIZnMNgvV9L42JymU1F5sgBKCQVjfPlSWt525yknZSZI/FlTTzhvNKw9Al5Gy8PVCkLG26XagVTTMWgGsdaWUUbWXOl7jn0Rw6xogzUPhtCmaVZaWf97H2NEPjqNY9phlioPEEEForNX0k2yvL8vaRVl2k2pXk0/nNoxxjK7k/I/SrMXyo+3JUtJI/fwlCjS8mZ02NrS5NuRb83cxKsWo005NZsTGmwnBucaToepqRy2S+ugc+iKrKonwFmTp/pdsWmoPShJdtiNKHAsyKj0vx/rny1s6bG/Q8NynL4/sNJyCiSHfWWSQRxZYtmiSllUpOfL1H/VNikdWIRrUV8Rc5qbdI1NWJg6cK6eo2UZQS8oeaMSYbNmtHyya/jqWhKsiD76zmT5RrVy9WCXF3QGmY0ayh8qZrsd9POmS/mx86JOQnw+N93zbFEZSb1mI0vq2jw4KiaJZaC/Kkx8krPoi9pLP85psq1ZwNTTtUm+wiolGftPYtmp8ynPzclJF7G1nHP8Haba1NKZlJu9hTAeeJy0IR4iHnDzkNMpSqv72VH8t68vfezjt31qsBgBYLBIJNwayreclO6A3uqhZNacr1Jv9t0IovOeuwSaUECSJp3U3Vn0/oZCw0J9zZSPQkjcq6SKLWGmQmltUojmRhVk2jI1OaimkmoevIY87zWbYhWoT3TbqbRiZfVpJnqRjznzeIS3FnhScge2MvRnS7kfm5UmivHlYzXzaJqPG5QNLrL/VaAbtEQaGjLTycIKPlKV9/JF2TWPID/7ZZM9WqlxLWmw1aemhpXv/JjzYsQQabOWVw1vO/XB0P9j6EIjKiR74I+rViFTx1rbRLNiwOExEIkMODXiF+cn2vQ+iL4rmFvEL50kjbgml++qihhFjwasHii1GoPU69VbnLovJLVrNlqGa3wt8l2+01McnKzlua/q+V2JSfHlDXE66CSCb2n+J06SObEPySe6CWnra+pLrsdxwydpFMq+SP2DkLWDSUiRq3JenteTUy9JFVj6MJHT+1WjDDEWNJZf+XMEbhjFiRpMgg1bA3HkE1q9BSWKVJJ1XWhjjd8tTRyKX8QfF4e3XUNKTuY8NbbQPTTl/j4dDz+rNDbGSMYvnNOnfOfNGJZquE96fDGEvECraUHEJkdaLBZpmVZzvIwll4ZWrXc4kjSMZvqN1PhbJvkxNxlbZxV0cv0xW3RF0NIeIp/0EVXA8PKm1yWbkLRxBPIohgtOTi7epm6iR1jq5WrBSPMGW3A7+rTbgfEgqQwWyckJKLnadK2yRRc49M6NE5djs5Hva9tqBMUJjpxwqLMchL51OW1bTMKstRf1T/9RFQgxZyU6tKsWmCTLDzccc4cYNq0vyshduMGXlEpL9krI3e0T5RfFatyObWGxAoO86RaUHuqvTQlcsl+dcimFPpRUmtRlntKedGo6VYM1fUBJiRGZQUGx431v5ru3JXXAjTZ8cx2kCSxecsejdRCxYE9mGewhQLCPeFR+cvrJPFpFqGnoFWfQrGc+bkLabq62kcqxbIPWdLgWmwQ9KdEKNdvpgFXFmoHrO1Dc7+6apm6A0b8szMzZUJ4ulxxNzchvD6XL63JF3x4fw7R6c0RRFwwb64UG3T4M8QfaCQdCx8uLJiQbW3Rkony5SRhNnjKgaR4RnslWH8YxfaeNPhcZrbTDsIYnZ5J5bismG/NbXIm32kxuetCM1tjJwaj+Oa76ZVqyYdEAcHTlDSvl1aOghGYgthE5WrnuDT+PvUUXmXzBJV+GQt50rIqEGbGSpy28mJSgizYOy2qZ3zlkbpVm5lCfMzOYS1aXHfGprdVt8rNOkGsezea9KXtmcuhg72O0bFaIl83CXRl4yvRYsBrYdO7iq0mK08sp/pkzM3jclvuXm8bqjIxFliFovLSNjh3pcVpTH9OmSayKbTSRalhENF+r6s7yUWseSl7TE3vIYCQ5Ccm00+ZjSfL20RxNydibJWdHbptJo6op2/q1ZYWHS2nGheWyUKz0kqXRIux0ZX0s3k/6uUvE6YbZUWoCpI85yZZnOrdaElszNI4mXutI1afmP+vQXnfRZu8m1E6PqtAKC1zMoLDfqaXzX/nVeHebOk+L5r6iPFnhOIOP0e6HNmJ3zay9BLFjfH83mu39qQhpmkLHxaQuH+uB5iCEKxMnbuvUWanolzJklq0cNyt/W7+ywbpSe2SxCI8i2tK3spf1Entvae+FHMfzM2B4xzTqxp/sJhxb/DSgqzZ3pu6C8uKI/vZqDdOlv1Es3kolWbH0ho/QPKDaSRsxpnoamtGFWlR5z/ljH2bPa+d7DxITpDMYeEZPN5ev9DeRyy2yIaf1EGavc5LTpW12myEeDELoX6EjOkkqvLZu21iknKTzpZmmZh9Wmclp3b/pIvYbA4Mag1MZW7ea0wuF9pLLLkfnm/zvXgvIQM3S9Gh/sOB4XEKiSKCWC4aQar1Kl7SLyILrSks1/jsWuz1Cc5q+c5tEk6COrIZUEa9QdCzJrHnwggTPy26jEb3hrGr0D5YkWIHvN+p6C9RF7oqKckjHC7rX6mEOt7mmZ7t7ShiEZtfTpf5L+iKrOqm6tUK0+LRy3DzUBS4+jtOiJ86VN7YVzfzk2zVF502ivS+TdXIvYdAvoFZndZyi9L6zX1qECr65SnLSf5M1copMbmoPkxWiwpgwqBcm1QoI57JVSXvpWsiix9BrEo8r3ZZRQ8Uy07U9T0Xq8USprTxvU1hdTJzqagYpXvc6wscjESuPvIwiywWJIfJzD5pXvmwnAxiVbPBw2hkB5Vvj6Wvov4ZaiAyteqQJJFnJo99arBPAUILqygqW+VBEpu9hCg9uoyt83OTCxe65zV3xmB4zPsBQwG0CDDaSwNoXhCGyqQqQ+d5nd/IoMVZ0ZKsmsv7TOo9HL+qwNcAEII4NwNrhUaEbmqdPQ3cc/Q0alZjTbsafWSrVBHFDGbQ3HnryT/JeHWBPAGAAYIlBLrDtY3x4hYXW4plzKG7/hzRNrU01ubWq2nvqI86dNgFeAqQ6AYxxMNAxxUbO3nnL/+WIMWacXTiHz7iiT2AVoOwoEAyJICagpKh2k9bj81fzTMaLN0tjGo3u2Z1HK8z7BDkJCNrGkHCxaR2XL1kP3ojnq+0zevHaWviLWic016a9DTK6sIxATFSnlMSKIfentQ+azeC/1Wtop/0os8w0xBirHj5QmEs3tkxGm2CIdKjy0Du02O+pS3V5F4tYywb05RTKOLxfaoP1WWvSskmxKgsSjPOYUqfP0tTcvNbyKNKvtMhHhS3HLYxb26PnU/6DMabWTWte7UnyZYINWeQHDaBw9nT0k4365XQKmLNDRuGZ6tPgw3UMZs1ZuRVTfJEuwPgvw8PtYocvLiC6UaeSTVrAeQpyMLUQ3MVpmhhPtEaWr0GvqxEEsF7DvYOrGtXf/CsyrV9ApNRFLZO98fUSqpSTd9IKyLCw0MEoPctAbXlvlaVfsnwMfaTCh2lLzKyWLkUj3ead6q5Eo4PKS4aCyclD/XJtVaRzfC5Do5q/pGEXI802tKc2gKhon5OH0B/TP0ykvOnLJXP9mzK3nKZ30GJzr9cU086V6SObEayZUZbjuvy1/o4qt69NyegkM1juSOfVz1FxoiSSXxfDCUjVwFqZ6DT6fWW5zV+TC7aJKSfSDYs4q+NCa97DAVFgW+h1nKOGy7l5PKY4z1l/puoTKGz8dmrL8vV8UjQan42dEuJI1WNh2w4Gk0fKVLXcug0vQg1cMXPzhHE70XZT4m8nUHQt1Ef0Pq0A81Qm2NJ6jZf5M+0Dkjsl8dl1ySd7aDSd5g1XksVYQQmhsKR5Q4gNQyGS0LUiantfRiLQhPt8qP8mHKzbUTo09c6TMWiQtatps+GvrTl/RaYh8zNLoiqFfYy1H/z53JYsmQj43zsCw4odOr5SVDE2dxSFg92sUV6talYJJvGrSGucnO5iLgWiRyJyWcxFKS8y9r+Zm8mtI6eb5qbNmjv8i+d7LCNNQB40KhpRbToiN0NM+2sTSUw8g5daC66tai5PxzUCPzaI7AzBzYSy+nCp9K9tt3Xpai2dRibO8986CSrHg0KSDV2UU41W+rNag9fIotFIa9aUV5ZF5fNr31Vp9heoWWM+NGRiO+OfpWSzYQVtQ30w+aA7otQGnJU+vYrPqnlT8kc40v57/yL38ckb+oy0ZbNTkEyKrFgNjXHrPGqJpzqeVQb3/TaJNab5XmZZdr4s1NJcVWnw2+Qc5xU4n8cYhZVboQgiXdJDxRzUGfITpfG7Fas08oKhqGlZzfqLy6w4CccyFtDST01M3S3z2tmZMU9zLw8kgjKPTeo0zy83Rx6U5ZqD1zZaWEIipQ6WJUmdu0v95MRYahZI8vJL0Zpjq1aAaIoKt712JQhj4XJNFKCRDp1PWzTuy0MVQR362kS8tXktWmsoVrJLUZLTDn8YTY00mouJLSeclJdangk9nqMDXefOXpVqXWitRCHpP5lq1ZsViY5NCUycz6qVexTL5JVuQjnboIQ0ih2ZZNTL/38kfZnWKsxfSkNFCGRVO6orndCeROkvNs4hOSxua1bTEOq1BltG5vQjyY7JsOgwLBv3UGgXDZVkKrHybWzvct6aXprI8yXcz2OjJy1zz3au1WmdmjRagZCbD3QaMpICpQv2rVkjbovNG6rrlulvJKuTfNZLRqsMAQAEqzMWVOyiXfObSFN5LN41cxK2qZtGatLwjWSy7JgfAJgRow08Na+bOnINK6YkjWq68sSDNajXadzLswYTcSPKGqs7ZImWgIxKeCS1fiVqf0ZCWqT3wIHuBlJ9SNlmOMw75pL1am6rxoOTW5ZEuzw3C8occaQcoN7vWvUor7CxRohPjOzGEUt3GHvhYuG1U/t9GPag+1yUSIyAMEF+HzLVf76Y8ok9jmaCKt7EMoHzoUn7kkxeKGiI0eLCss0sbK/vmM06TMTStWefprpNb22PD09czK8uwigmQW2gkjiZw4mTXvo3fKtGfax8aR+Wihpm0RD4NyMVYjYwVnZLFnrLzjm6SWrafkpetTLutFK+LCCEYml1qSPlVIWXO7mv5HVyB5zR3dIr/aITElr0rXNinCY9y+7cnGjTqX2v9j5xRjZmlNPtfLKG5GF6psIodFCiE4puczeNVHKSuSV1rHyZ0/oZxI2bpjkkccnpmrKC49NHDxZcpFJ+hanKjGGWOiqU/NNW9AicIE2cF+GtVQ7NUM0uxsOhIG47Mk4T0TUPdUthZK59XXYn8tep8F+XmzVj58V6fTfanJrDSRCsII+18v+X+tgw96UN6NmXVBLNjqTZ07xG9iQgKo/IBaxiB5xhIruSxaH8I44+ZmTNOtM1HVq4wm0Eukkib1HLOaq2splkrb6CkVVZtZfM+4bNPjS/xY4TC+EZHkU3wutGnCtzV+jPf77FzWTapK5ky65b++Vr/oiXZQJolCx3OnTLV1oqUJmGEnuVBItOKpSdVGGKzeQFXO3pf0mfeAv+sglRE9o2vSq131TyJkyrVg1D1DtSllrZMl3OL0RTcnmm+kdWbXMTYLAGAomog0aH2981lrpDSz8x3XhSmpG6DtDS8T3yuiKrqVrrQmvVBmFas8G+ppKHKJlXaTCGlhHF5yA1OhRTOLGZgYzaJuSSefOWhYLAsUTnplW/fqyvpPWdBiYtYHgVN+T61eZ4xm0hSet65fVW0fSOQSzGnnt8vlLv83lmnToQ0ruUq7+lVznD6aiw6BwKqLMDZSsTgjrRaeNXPzi25mZECJs+qbT1oElWOFhwRhBNEjEfObWr8r+7VBF/ZycRJyB51XjzX/pWVFwkEe4j5WSsu/8MrTWOgzNtpx71n+W9phxebg1AdeOpfTpMTeFyEjdLEamPmYf5SfPmxUIkypuSTdmqEsyRzZNqAWJZI5AQfZ4ua5bFz1zK1eolGbVWs+aYta+rJj2Otamp0lFrI51WG4OBTqZAdQRTTWk/pzPjLM/ex4U5aXmUN6MVcCHc7dFr4vhsPuEeThM5Jf8eVoS2ulNoyokuG9pHLL3k18ScSeyBQbKlIPa3ISbL/6+mptRA5q8tJ8rsQt625q1W20XExk8ocwfTmTpqV6NT2kX03mjS8yVtfEvmby2+G15sJZVYyUamLEmluv/rzO19XTIx3TLP+ixkex1aRuqiygNoiNGj0DsetJr0oySvkij3ApCyIQYfKvfV6W/dRtqDzCqUyouHLPfH1d8W1kt85Jb5m5Uxz4O33ssHDUBtZwlQjISnp658KrsfH0T1xJM58T31YWILS/Rc3S+HwRVbCvRedNIShpVWcr5IqtcHKHal6NJfmY90iieloSI5sGwJrRIjOmTmnaNKzDpJKtRLjZ++75LzBfkntdYeUmZOIuZi1AdVtnnhoQEBTtjTqyGjLIpuCBbZxze5lAq6XaQkDSXjs5jZMw0QG2wXlChTHCos4g+nNynW9ukji5KjS16e7tM0X9oscjWo1ljQvElLya95n6vEtQyG9rH0NOg1Qkq0Roe1P7LTUQHx+A1WPKFEqLzmT80j+mx087J5M4s1f5iNIgRa+ll4+ic3ArEYhf0hS9piqQvIBboe2s3mOEDF7imO82dBFF9QRN9RlEkv4VmVVxfQP6ORrckq4HfKORvlQhdRFAeFLT0pSetah2XqIo9ycTRjquki8DH6dV5JtfVDbSHwsTW1Bvls+dMR31MXS0ETtM/6aBV1b0jUsjvYXFRoLs2V9cm8vMvnVcnrGo1ZTURfTMDCb6SST4qwo8EuGwNi1BFLJGkJjL6TpXvVhrI+kOrk/TpkzVnQs037q1VjIYB2KQlnFuoOE1Dq3zV/N08ki4G3IpSnXZPm8lOnHWFzhYsZSWQj7BVqfUc/dBtpIJ5jcjBJOply16TzbcCVOHK3aPvQMLpX2xNqzZ9eqkxJerSiR0zFWTDsTBw35g/qRrVkmeXy0jizhSwUpaZSf6Lzflp076bbQ8tc85KpGVZy0J3kjdNWmIQ0lVdnNO8Pq1hRNP3NHlqfT9M6BvMfFnD8wblqRySLHWeH+aj2sWaecP0otJCpVn9VdrRRpHVX3m++FatQg+GUlFipWfvUtVkkibqol9IqXoRRVNm2i1ByUIUKl5Kp3mZbl2okcPVpQoYzZxvWbulY0WDpje3rw8fMK0emv2s4NTh3ep3tFE7m6LSDrFfBNMQ1PbGnwoU1TJH1YuU8m85q9GoxU3Qzja3n2ePQTHsw+EJWl98PoKZbZIqmLGZlnyB69/zEXSNJxkkvo03xe4oPHHlaYocl+/w+XaSKlWWeGw8ci8rTFeY7+R1aY2vy8/VoM0rNkKkhuTjlHLNb3xCWcqskm0xlaZuqU38i9x/pxukli+PiQF85aXQhNTqtK9P6NVweISmn5eb6Lts6Eglrg5qmWtZeZtYOgqFXUT4+eNk1Vrx019RG2zR1yk/G8kmz1rWljZXqvg5nBBN/HRVVIJLMTVyuubjbHk1rjVSG6luBPOH0pQHFtckrO8+tNETvaXEJ8GGmJIqs1blBDLVNJRZiS/sqeKyyRtByDYhB5eBtnGPtJaae8pp5izMq1cKILmaYvN5juECLQDkRExmCbDcvHF/3xqI/aAygudKFppjyiW6m5LFhwQuSTXECtzV98UtaeWslZaY0WTbpW12kjhlyPMWvVpZuSN9tcK0FzkMNcvGhRJ2o6zcPnzJxzZ5E7fVfka/w71uI5sfFrlgeDspBRMtD5mJl80RRy8WkGg+c+kaZ2mJ02cIVpcu2VmPcEPy8kKls8Q+tEu06bySVH5IeXM6TPvg0zKeOX94seAvgv4yoTGe7pZe/WylYI/CsXh9BOOs7Oul85/sUhQWdU4fNobU6s5sqzJitxAdZzVrfOnL/ujap9b73w2OTDRPnSmm+t1uSbYyw/tpJ7u0vHvqJIvh8abohIEXDxyKdRMqymnm6Z1KzpMezj0vSUot31GPaSUGv8Rps8fBtrTKYqn47vrUzMXUjGrEIiUO07lsszK2Wk6UVTkN6M/6LBuFY0sfOURGmJJ7vhybW6ZkjZZY5I9JbT2s3MufIxq0Oa2fLUHaDM2EtRorXKTSDSMta+d2aVzJiHusayxpfTIGsb+B2xakdqWWyXSS1ag2PGt8rFhyjzlV5CdKyRljo8uEMexrFt1EVPgimLk5ubHSO+XYrHCstSSTDZpxy63Og9krklcr7NPNN70ir5kvMrfG98U6BDjZY/mKshCwOCqZppwJNmPO0+pOQZnaTPvgeN/q7nyRMje/2zM5Z76M/2HCSBOcpJqSnaqk0/Tm6NNtkSJ7447OIopWCKr3dOnIvmygsC4aPRSRW3019aWzobyOva3LEaqSqBiVafBFRddg1IZyW5yrTFWNBsgQDUwf4x+h8aS8WtIZauWzD5pWLbPySS+r7CkGxAIxcspkEB8mnO+nIZrSODPsqVUkfx6WW1AxGl/thMakpmnT5aY+bYUgiheQD2hjUxKLYme+Xri00EE0nnPY6xoqPHxoSe5hhfsOQiaVnDTWrUKyvS1Jsvb7k02JOGW/dtx31y86rB0E+Hkh8Sony5Ka8S2pfBH2mPZ+g5NqHrQubxtSdKUF6sC/AAFHZLJE2+YGnJZrWeXyIM2juFim4W09hfzaOps6E535eNNhNAAPBdBtWpKB2X4fT4XHaskcrVr0pHaFtsGoymdps0EeF1DvN4lEY/TE/OdLGs9EXtJCE99MsrRT6V7LGWzNaPnaNBmPYE8COIJHoQYJZaTSfPQLITmkbPa1lX0bJLxjFncaaM5vfHsD8COYC2Il+g1TKaHt0oMXOm0hDIWGvRU35FNypq8PXYEwCDEZMeQy2uKqLl/zu9jV8zFwMyl5hWiKr4ajuReuZX7ESXCGNDSCxrStJ8Vpn5aySbHnZmmFrzbOOpsdJRtguN0tQQ5+cKyr/LZzV5BhebEJzWpV+dupy/MLm0WoHRBs98jGrKBgxgDyznECRw+ovUso+FZMz7PQPYnuo17erEWkk1OXrW+ZtKBKe7j+mU3UrX/zakiib48zRTZrfkUXKDkfB1Q9drTHR5A5NkQ//zmyg9owi+KUlNUZe/1F2e+uScf5ukjmwxPaVHmtCWc1GkKhBb2ElWUBaOn05SN2mW2oGySc48/6V8vUWQPThi5G6H1r0z50PWubIEzjW6EjqWZbPLzYWDI6Oy+dLTMeLlAbNXOG0GlDi/OWV81FES5tqB6z4TEjuhqMuoYRcqJb44quxw10mwuHO+iZ/el5UI43sRwKkm6B4tKsqzoe23JrOnUsnXvj7mQvHlnad9DZU8zoI/f7kP/3brM0u5RGkpVnTYRBYPjwac8epZxxqq+ccq2CKrAXwrzmtW3MkxGlX1Y+NGoHIJLzvurRmLKiwVsH5WyWOG3zm/Vp8kftw64+NBy94qz4QS7676tBz25NZTds6Pm6rk5GEclJN/MVdUaXr2Fgt5xulM9FCVa33uG9ao7L5q0jjWvNvpitEqtJhBVHpNjtQ9adUmZtpNTJ5Qmo9bS7KGM2MuXl89Rb2zD5cIFWgQsFKK0hshnf77+OtrdO99Naj6WpMVJmrnQd+tKn+S8KxbCEc/mnEBM6NWh/638i8e00BHPlJJrJGPuE0pfM6qtAOROMoPTLCRp8KzL2Es3nDR8/U3NkxMzvbZ6tSg3URRViIKQR+b8gPoL6s5dL0NsQuGvq8xkCJrPcjburC22mDgOcNUdDoUOOVjtJtXlmKzPMvq+PJZF8v5F50kk2iNjsjORRnQ2waw7EiUykwmo5KY1TpKVo5HTrFLRT9BsjCRA95Dq1vM0Rex0PA5k5LCETrXuqvdN9EdWliyLzV0ySWriUIrTTdXtMKQuEaig+G45vPfEZbvGmTMssZkUyX+dyL6CWLRhaNY7fTajgWgbPJCw3DajX9r4y3X8bm5I6dPhXl54g1aUpTOhr6M1Y+DaeNI1vXSiS8RL6q5aMpzW8KyYq1ZSxptPir4sKCxzWDx2W+dUSlWjebpEoPtxyiS8oMYukSp85JZ/y7kFvCXtaOBplzvvMcvFwIkxpKKW567hy+vR2P9tDggQ9HOZCk/RpagrJH7SapPx1TuRRa8IeZiw4cFzRqj1GrQ+kwnpvHHoPSSOYMffNSSVn+QVkWJA4diePlvT640L8/dnkx3zY0Kc2NEq0SstI6hlVGLFQqQROSohwXjzTB0tjfe6WhNfipY5ctdp0DabiSnxcuhp8TloHoF/K9W8TY0PCGpqlreuDEWGh7W6Mm57bPYJ4H/HX8arK8o588ji+gOOrNr6bhIfON0zO4wqzkBDIydR5AcI9y8To4w9ojbTfqYWrLIpzrlSZOePIP5F7nFJFMilJIo5OFaTSfNXAjntyaksc0iZpuCyRq6WvuZPMusWIjhWDoWJCbZku1BuQbqIq0WkNz3nSxhHNaboqOm6W533MdWhhV4SE2jWSPEsnqKy9JPKebNBZYr8zzVpFg0SRV7GkcWceTETVqQTRlrDELzW+0RGIjfvo75fRF7xUfadpRqX+xGQyV0ysZ/X4e2Wzp8mYtAdNpu575kxPECL4zVTpbaQoCOKR7tUETRrq1VM9R/RFNtkRbvUW/jCrOW2DdK6fMWFwoCMs+UsaQaZfUZIfdLSSbREJPTvz3aIM19Vxk99G9iJNZ7D8Tb4PX5fNFfv5tFx50TBq3abNWn6o1HTF4OxKNoLSFWP+8PmdOUsdLCI6ZpPklWeNj6fqT4sFoXBDIPLJNalml5obrIEns8qUd8ccvNI2PmxSxx9aO3r5F31amOhIm3FjWFBuN+TfOmrKsZzZhv0rWXZD4uWtOmpOjf8u1u+9gsA8himo0QpOH1nM5foRMtIoq0cweh8csuTES+RhMWfIaROR0s1WeHgLgdInLwqas5WjsluhPI+Xq+CuI04o/7kfc2bo8tOlI9unkUy0YexKNhD3X2H7+VaTl/tgkEk1qPXG9qAJmPp/HDzfyOdNqA1iZNSBEQj51DRytHQ+dVuSEXeePtfM2gtyfeTPzeSwSVYQhIEYgETOTQP40c/zp30b2scEqhsqSzeLwqFR7WjWU09b5dahYLhMh2tG1zStV2IK1fJlAtnqYbgjibpyiiUn5T/UZ9i0HQmNzIqNEaTY8qtbMjGr48JObTeU3ozU3llslKzuS+wXg+FRD+4eZKBOlT9H1WImmlTckiguZlWLKiFpNGJ7X/2HQJhQFnGnFFyokr/oLnWopkK0ITO9rP/nU3fTfD8s4npG25YqasxRejM33ItPeuntMxZ0mm+jWxoiwPIUyAdEOKA2Nak2Zf05XS7Yo3RjlFai/IybTzrLBwWCEbyxP8fw8lO6+rU2WZprFRtj3F/aDci9BRR8l4tMEw1sTJUsPS5SN4QQXomFmI/sZIDWn1/nSZhk3QiS3VpZH/YmIJHV8eWme3/va5/JJsmvJHUjUvqrTjnVo3tQOxMtuHVAlntb50ad6bovdBktSUqXxcT1PMoWJgcnBLRTOQWgsnP0rpWKtAsk5HQxCJWZ9pMNQh6aWrmYsUuYCyQJi1w806PKs19SDbSXUp5Nr6oYVe85eXNgsBTyIiySBzud+9cb5dymlK3yg4YTaMm0i/1bRWPODQ9qKWk7q+W1OmSObRZ00pSqrhRGZ0m6bSKhqmM+e5crkvGPyGkkmzV6Y3b9yWbyXqnjNlU1CBP5Yb/oLXpnrLraRcv7Tmgl09bXriztJ76Rl7bCGVWteKFtKaa9WlTQqpZOFr0H9VsF/adIpPovNioPJ4rwLEDfecvUc2M2BhNuacilj/NrOqZ3mws7XJM7amT1v+OhVuoz6uD92rfD5i0Uqia1WDWHghEiCWQpeUVlWSSNVp8ZGprS+fbDpKqTHfS7GgokCgqoaDcnDVpfedMPmDPuem2KymnxaSDDu8p/Njxw0K0fRyg+v0YX48yR/RelcfeF/VReFfaUNOnDqcz5tIqmysuSzFJQW/odcr1XR6DXnZDTeLCSdKPzZ1GGOr3Ac9Sp+ayDorVjnyrVjqHl8rgli6TBa5cs5ZFWq4BuH/qWiducr50tfOgibaPH41Vk3wYnTcMG0l5qCmozVyCTJwaknI0p2yZO3f7fIy+u/2cNt3x0us0Pk0XraJnaGtfD1G5Ywl8XioaU+MUfJE60SmON3orNtF5MQp4ZUWNGp0c9b/VDGLzlDZyMoXiZyL/SV4PBxLvO0nKSYnzFTRiDPuCqaRdmkji4KSbqe7ciq0gcegbXFI4PrPSfE96/m+8K505Gmcli1jnRrRJaeB3xYrBOZc848m3JKwdHL8ki0QbUe82CZJ7SA8tQQyajpmTMv9iYKOUPSWPDjlncuklu9tnlt/R3J6ItMRSehKa3ZQYeywJYMIyVUQlUO+J58T6JYs0qz7rs45sTkrOITdS4WpKi26H0VJ3Q25im5RRfW1WmcvNmqBYlOkeX94L+yoqldS0/CVY9vozfOQ02lzk0i7M4zCvtCmxOic7ssQkBVNDRmk0jP33mxD05XjWxmmfaRs5TIrrTZ4aM1dY/53p/8r30wSVcmnpVp8vq3pS+qqyBMsz9okSSOO0aMhTJbPtMZHhD8ihq0XKMpQ9KwPIu7kUjh9kQl3zol8ks2gotJVLTlL5zRmFY+myo10awpG0VvqtWkfe19Xz0u/npaCL3kph8eLGhckFjmyQIrEheV+lZSvJNPbpd8xZjmKuJnzvL6q2j4s6a0mEK0UEpfE0UzSWtVowVp6KBXVBEyzegrCR5LVqCqWpSxySMtNL0xuX+SReHkzdK01kXy76EU/nNGEWDa1eY2ZmR81r4XPzPW5H7TG5RO7UFK5lj2DD6d7keifMqSR8vNky0heAve0ePJnpTO+WgIM3AyeITt3HMzZvV0nmrrebUDsLhYTXhXJ9T3zjmy+aJHWtOoXu1u6zE8vRHVWit/0m2PCUQjI1+Cx4ltfda0/pZcyc3vGluZRKy8KWiF9Uo+LUUbSPEYNorJk10/6VtyyOLBqC0eNl482V7qwZi0SyHOeTXmqF6dSskc2gWEksyALI+TxpftlSX1axCdMvPa+hhV9JH1ulVtSDdWkCpQ6e9L/M7m8l9tWQb/HtYxZEvdtr5SJekg5vInPmxkfIKTg9FTNiaf/z8vVeksjEzBZ/hVr2ZhJFWiDSvI9HMjLLw91f27tyDZW5v36q83MvHu8092/InXGQL0fpsL2nrWlHORNa19NySm/tCcjL/D+Re+bMVkZ9tBaQNTOThTHZv31TMZu9mk5lOO/v9jrmpTEo98xbjhGtzWqRyqcKnYVlWZZIy4OOOTai19ETnTpI4i2ppNEMnLzCOZf7HwnRP0MTJo1MP6CHiP4IquVDqSmTlGEU2ieocM6uc2yodFUpRR05aNd/X3tJfqvhqXnT45J7hf0b1YsFs+cgsNZQ86N9NZdQIFW1wWIzju7RVye2J3OPfF0WNT60EB+Epl/bWnT7loW1OnN3Ip33vy6uqt8masNnCJYJJJcFW5xhdO/9Ea9V9OWzj2rdokx1fcjOOrJTVsUzjueFhyjH0rXneq9sRWib5QZlma01YpN3fXU9yI2pMRyaPajofL0GSMHWiv+Xt0cjmRj7NSNOVm2oBtkZhBjsNL+7WsaTj8yt82icPU+jljCBjFz1qojCrDhBMgmDoC87r0b/KNe0klWbEMJmJKPox38li20ttafJZ8mJfM24GHj6+0fOn+H/LluXJFPau6WuoeopvyWbiGy9E5dQRVYsWJBGITUOuX0Xj/eb5UShYjjq0P5iZs0aIE53XOqjNeyDEyBCh3NGpkzL6o7l4s5MoPqaEGLc1ZeW21YqZOhRtMIpECrBYTDcLfG8mpoVD6i4UdKPWox88v56sXUnpTCRzm7maVmwnDY2mHJ6axSost3+WnKPXJmX9WLceg1NdLfDTHsaHnHzjm/NQMTYdnNGhUsfUZSS9T+7VL55lr2W07npQ1NVZirnwpGlCXtsJ40VHqPTW2XHad4Q5fkbWW0ZS5spL+bc8031LYssGGKlmqNG2kx5uqegd60EVGfcImtbkaP08xO90dEnaZUnTZYBinB0PJCoqhpSV+S0KzoMz7NJpKfcdnL3vuiTqlB3I5sVgIAFhzf2j60Ti8vY/3z0Bqsio4klX3v/MTK9VGXW0Cb40NImkykqZLvmXZjJm0iEfFPmRIU0yYc58kq7PEUzuaPldRFNicULBZOZDYQPULxofMxdOLTWlrZmiKbOYfFPmXrm0BIPJqLQadCh3VW2c5a1kfsCUODfj2TOc+SVZJGmxTimnHZb+Cr9kyhMTc6EyBGDVvrS1Yxq0fSHeoVJZtFGUa0HL02EJRYpas5aOcgPffNQPLzaZXx1mnvbHMSyKfFyyR0Z+aMPYpH0DoXIk+PSnTu+Ztx5VOsGg33aVZpe6skc2FqZM79gpWRRy8WwrTk2tHjabGXly86cuDFaWzeG00Tco2Z7dOkxN5OTUcudWklmxoIJ68cogctcy87daGb9JFViEoaabLVOrFjwS2p7nlJI22gWSHJx8sn0XrpqP+5JFtKyEFuPPY+bQKJj6GSULfqVYYOLICPFtOHmqN1eJreVyZm0R5o6fkpW2SWrWTyDaOzZ9w3pk8oxLdqvUlcP9Ea7aNHcLPSaT2kkEsWseqUnjS402B6pQg1NHlH+e+T2slmWRVY0MzmRlzO5n2nkcpGUztBLFiohUO6xoby4d1Z+UfFuaOppQhL5M+bQOOGV9LVuRexUDYPnnwhSGSSSOf/K+q2w26Y0flxG5I2rEXYmjXUfGmjE2JlKPGz1FOmNPl/O75mxKN1KEqdenl5LrJKsfaiopzj1V3gMAIVJJHU56kv+mS/tzhpOdPTVkvMWggoNJ6czTml+XmzQHsOGpzkjQ3Qx1b/5D5fuB9gy3fy6ffEikTGlpT6jPuAUILqSKSCTnM9F1Oe3TeFYiS+N3cu6JqDL6fJJ7EgOgYD5ZBFgeI+p+jToy1kUvq1pk0k5g5zd740WNOSRpj5MeNPsFgFkT5NrWjg+hjv9R505xHGqbyxrxvEzfcpBf2OCIFwVLSawLhv1KqVNOzKudOR30PkxUaLzlDVYbYhUDARA1TMH7x++JZK3RctNTmaObIwm0R51Vo1WkQiVOcsRMemXiUmZmi+lpSy9Woj9m7+tSTcu4LOG0pWcTU6+YPfVx/oxqK7aNDbZe0s4iiKsmGw8o9FqGZOSV7WwIFXKbVFTZ0QY6s2aTC+JfEu5F/9VipzqyVJD68bqeueXgldaVD6Kp0skY1cHjh1Tm53IqdZDnNnV6Uacd1YQVlpFV4UllzXli/75McDStWU8LInWLQhi0splGCLDb++TqU8z4vIkA9ONTOfXL98PmzXMG5yDIa1DQX9oHipojkaH+gcnK8dqX7HhEto3kMk9unRva2+VMlpfNpjKg1GQUJsyEToya/SnI/CrrjpCNGQsLITkFYW2S/IuX9XUSPP57azTPfFnA1hqNA1Y4pCBXUr0M1rMcRx1ZtainVG8xplaq7HRCNrndTFl+jM5tj2WQnaizMxKVax7nySzcDMqPpqD+Re4bJqpyemyARLNmIPFKnPlVq58OZ1jD2GiDUI1HrdUmIV8kkWeKVpKtbFlCAmUPbz4OkbVj7/LJZs9y1x3zlyYlWbpBFOsad9yX2QSJg1gecvk1tb3zomGt5H7wJIRjxtF28wyLpAsgjEzOYsx7EI0PwuEjhW5DJd8V2SSRcsSg3NQbTNy8X1Do+lr3WVXxo2EaWmPp0qvLh//tNJq/jevNIl3IyM0/z9NyLUuouSoQiFjd3r7e+YvD6E+e1nYR1Zq2+KiGw26EaQqlHQl5nq1OS0+2nnBrNRRVpHP0XIp6CWg1kkk3gQAcDo7FMdEvS1P/dOkzD2d/vhDTmHsaS/2Mi1fVH1qwZmbGwF+FA+ciOlZ9ESTlzY0UDZD/tdvJiWW5xNQ540zTRj+wWBsOxrmy0bxU7VqfPs0NBVLaO7M24WxE7fJ6atxwUGjpx44JHE0Vaa3wzToseDQVtSWeNlHM5f986bOEKEzmtczmZsFsTjxOUR8qokop1UkneeSxF0JGnaEs7NbSvzp1RcuzdUUzLIo9s0rSyI+WgeNLzK6yESSMs1DR90fmksxcN0xjbJjzSqmKCML+gedOnivvrcjq4keUFNLOXmTJejFXmrmcj/m1YmHMhORLUg70rO7Fxps8LYGVU25QjmLHUoqtR05do0VWecth0ny36M1vy8u1ER047SfErsZxqte4KccJj6aI85yah/zf430PlWr43Ux/lO39X3P3SmwjdBJtdqOSzVfvKsWglFDc6ZfNp+odJ830zUGoHIHLTP660nL0PlpePptI47VVdb6qzk2ydomn+LDEHA4aHpEhyT5md1OXXPsolz24ampyy/sJi2qZag8us3qwZ8mfYdLw+EsaUPbU5JX5qq7DYnSbpSL1RJFgHuP4bQpZstscB2WJQuwkG08m5a9Gpc6lzVwnzz8gc3ds3EQOupJJivVoz7Kh40qJ8mV683zvBeLbCXBYe1vufJylIrXpsGsVjQJMIR8vSOSQXT0DuS1aGOx08li5bzkn+ofVhiLFIRQGxo49A9CH98P6lsNSzY68uZGFWVlY6e/va+iSbAwgbXLAeTOi1I5DvluQL+w2GdSi0aMQ+tNiNqRstmC8mKsIorKOO6RyWaM6IiZp8abEeXSPxtio052nJWCWAwhUBLCk7jeWoNcugl6a6bFQ84bbjT8vzzFWNDYiUQ0qQ7eS7l1YLIJ4cKoILcnpHk9D0Kf8dYhFg1jpyj1tL1F4IQaxvkPnIQrBj2kUJj4aZ1Bp1Z3y4759jp8t0xvogzF6fFPSfVj7R9hNFAancb0v708vQSRYpGVD5ec9qyWrN66p9PlthciI01nNTWuvNPh/tg0I1Dc3+jPZmjGLSTKnPmVzuRTYqFw+TbOEiOYv9/Ola/ptFRbEqQJoZZmt7NGUw0nNUU3sfUQ0HuIQ4FjYS76P75WMJv7mmyk7OqxDEJ7wvS+bkWiIRBdBzITj9/QPhr6uh1BZ7zd3+zZalT6ixCLSw+TwaD2PP5z6y6Y+rW1JM7dF86LRmDUcbawbypCWmUQlpIMWrK5Xl5Iip/tMNePNx3VmzV4+d/bA2qEscKU2SfpfEy+bYglvE15hZiV21KdGovVh0Kw2caggJ8x8d7WpQ+ZmysuRNg5hz+Yr2sdPNeikSxaYqEQjnD4a9biq5jV6U0XSB50QkpW7SL2al2zoWrNjQelR5JFFhM+oL1UKatUWb4g16ExyP2kjUVE7ks2HDVFN1G01f8xD1pzlkkW4Z4pnUi9ZJNjYacbR0qTmrIoq2JqHAr5p7TTju+Iyj/U8jXcoJTD4JfY7j0631e6FwURsU87E4aNy/z+rPI3MtFRM/6evyMJq0ToaX9rF5Nw16FSHY3fS1amltBAxeH5HZ1b+QVkX2GnPN0RYSxSBMc6XtZRePltah1kkWi6DvCrPqIqm+zNl9arQSE62pSNi4tKJhcqX0jknx3SSzY0FmOfUrA74ulE1w8LRZvkjDWZ2gjpl1Mq+VM0jkQJtqSMqmn3x4XHfo8eEZU7qxmr8+0lqdWBhV9Q+n00m+YMT7RUK5elNw0tpeUljffJmbRkdiNJerQHxG1/Wg4jqx1bVEaRUFvjVD5jjj5JKuGaEd87RqMzcBL+NqjijIInbiB7PPbLY54cUKxkvJ+bC5oki5KHVWrOpowizSFRGdGJlCOY8UMasLEqSW9SFr5iY++i4l86YmJI4s1e/3b3GKVdVj7Qs7TZSFrT5nVXXKUv5HF4+Zf6dV0PZR8LmI0mZ97hgPTEScgK0i/alpr1ZxzEX1L2mavdSJfVhuNBCx25whemXnLpsDCatzKFJ2Hd39asablulGDeuqmxzSPmtQDUpzlrpX5LvaSOe6wJRpMgpsqFNOWXq6lQR+WsLK8vNqEzkj5kRCpq0p75qkt7kmhUxlkvtNRRKntq8mPseepTWqcup4zboZUX8jR2bV7nVoNqzwbZHUsaoQRklYldVpJZs9N9ZFP2kdqfU2Gx5TipFqGUWPat+ottDGrHxEUanCk7y2TDLJkBVBfQR0tQMusbIMh4W1xxVsTvEvXKkkk2ITkj30b84xGq2+W6i8kUWLBdKh0jI8Nj0vSLy9owm2lT5mYLL07mIfQwizRprZezvoz3xchuewBfUkhIqrth8wpNb2dC+gkiNLdO5ht43HjsmubJHFtFyY2TaPuTb4MHumX0Mfa5CYuapznwZ+i2tYm+Vk9Bmn1YRA7C4Vhop1nLyc9876VkkTY32fvhVpJN/eJ0l5sG0fmKRcoghEnTpfOj/218ekmrmovDNFz26asQuEYrRo1Ch89p6sP+8iBF4QsHqed3L0Ek3lFFzpSmfqtBpYRI+pLNacr9JV/0kjLWc5D97t5IpECL/Q86cu1FBosfxkJYkYjLVa3rVqJYtw+PLW/obraY7gVNXI0vqz9OgzNjoRhPSDeeNSvJQ+fPqtNWsaQRQlGFxLeR1dDqkN8ZuqYsV4JoXp9h0kDkPT2cR50xNt48NVjmz3ajE2M45sbreuwjCEsgdyw+WIVt5dhZLNgiq0F1Pw8l3TBhlpVRpuk+d/bg8KZLDTUhtRQvErPa1pLVpDw326anNI5f7OPUNOjpUIEXI0gpVNOlMo+i5zvO5HBebWTZ9XOzmEbbaDTy9fexWWEQ0njh0qp/BeKKtrSS1aYLAhSS3xZxHTrWPpiE7SahBIu0jgvDdPNYph5Se/vbm6SOLaxcHbyvO0F6s5vltUqurcC3EjtNYWbO75pdL1QRwYm8cUmtBy/BHNpKObT2qarb8zfzkUlzGryk2mtbzETZrRIdOSOfyPv96lPWmu+LGQnHqOUzhsbPyHfFdupt4JYLStKaJaRr95ZbqzL5tociSWpKZss0cunS2QScvVymIUozWCBJLVox5fKb4vhwT7c1BMLlNRdSe+KtYSzu1/ayuY6sXz3m5HLbYakBCMpNcFjD1Pp0zpnvmL4bUii1FB7i8KsdaJx0DMR7HAnB2IXflRoaUQ86oqp8eTM3IakXpQvT2VeWujtE8lqxWHdJsmFFukulkCm8/mZtMgJo5a0naKovFrC1Oa76ZouQ+FgaJyNkwuxM418vKv/i5LHjNY4m1ggVY6gj0Xt+qDM2Kha5SczsnwrHqF/z7SKqD0/oM38kVabk5a0Y1J2Ha2pZJFAIJ7YV8K1NjdCVN5ybK5UxL3aSX27hsb3jSc5Al94Lhp9IZh60Yf1Tp7/Z8kxpPSgzL5FIx9pIqJy9RubYqYggdJxUshK9FRKsrsC85+acaokRROX/Z2qJfNlhoIublMmgnXLpdOmjCrla1G6IntIvvAwq0k8uckMJsJ4cgeubkEm9OZp8w2HrumIqVj7SDRs0tI+FfYyGBxU48fG0pyDX/LnfrokpWLEJ1R/mqyRe0qlXzD/YahEQXoRnoIKJF/51e6TZm49jZyl6lMvItl82QuCECylI0K64+o19TLF2kG0TTUHNziJkvmCKrYEJN0QkucsibVyEUWhuai1ZSRINNfDPD5dK7OQH1HqPkmsYzbewabR+XneS/1PXZoIARjiGSSC1MgLVW+6c8rX4xm8xiB1eppzTHfTquk0kuYXNhaGI+QpvcIz+aerMqs0knsDwIkW/JKMJKVi2lZl6xr6m2IQiNGjjkZ3PR0TuufvE3ONNh5twa1F9ez2CIV9qHn9RBWN16CWLTIEEc1b6zZMyIFWaxp+lqv1WC2NEIXEORw/JZaX0nLl8kc6bEp60kmj6kFs2FYVmIstTucuToYtZejFW0SFnHnIpIyT1ff6jp/UkxFtN7ZfH0zZtHLSj2UKDQ2fDaU62K+km0+JvmGnNfJhvfV46YebR1lM3TSRRBZAhoV8qafeTUV8vdJF7NGZh86NNsBdIQ7LVh5FwkQnvg5rt9yKcz3CCQrUxrW6ZMLV4wm8pI2dqOW9pj2UE+EZyCCH3hcRHze+vZqJ6E5ZuiLo4dajvWqxSTcfVKEwuG2pl/2qLXjotsJU2ko0+rO00bpNfFhIA9D6W/awaXCnyVJMSzV2Islp9fQ+jE2KTYL1Vh0JzibTh7uNlSf8zNWt8WPIHnvb1MuxnpjsaTp3scFYdCpJI1IaPQQW+d/Lf2makvNk0R4qlCcpxmDCrbJy3z1W2KltNbo48PaIf8uZh8kdW5qKztMqxZ6vVp9WNFTh1CMl0F+S/atebcpTpmelOoim+v0/q+2Cwq1Npo0osfmFZW2YmxCP0il9De0zOZotJY7L/pkkbanpxu5AJ0jpnVTW/soQfYaJHV8jyZLNhYajza3Sy7EXCG41cyEKZWutEPUWtRtEUF/cYaqp3fOklq6akdXqWksPiwWgbyqTUhloQ6W7/7wXXBG25ycSqOVFEcaBhV5rEtRskGoYVeIAcTa8IFhExatSdiedaOLQrNLXJEy5x+h6L/aQ6Gzq3TIScuMJHE8yb7OibkmuncinTcaIR0QhbhaF7AWDTw3HzVNSspQ+PJJNtSG5XEqfOIouVqI/c5eixCBfHrHlmiQWpJLOLrxTltJJNmtONboGmufJeNO98/83duZJHWi3BQICs6TUFBVpMlMyfeUcm87sc0jnMuEDpjfOZJL7OSw8q0TkJzUo1Zsj+WSd7rlnr5E0o2aMVnWiigjCpUlZ76CWlcSVFTDLIbLb7EtM1x8rJHV90nVpOYyrLBeVSHUjVCpAkd4LnFswli5G++s1R2gi905JGnyhNrYwSfJIiwsT09VBzp8clq0EZG/qpvI/fR6T6x06rYQiIhSkZQUj0bBj7ktW084ee3/NWYYXgji0ejXx01ltIosWBCUUT6hNjGqRy7VKje0QvFRP9Mov9Ci7PWppL7GxWFiU5hB3wZmLUWLxqYWoOHuZ3z3qF5sRYgpHraxy4M9VdhMRHEtPJ6dBejFWEFIIIjo1IQhckz+X9aG/mrWK8uqQ61YMRqsdG5S+TVqxkgzkktHXzI2khl1ZvUSnJaXyZ83+eutJvf7cKlqTRw6I0mRKvbkHri6LQejp6GWZblvi5Z1JyMN3MxvZpAexuXI6g44x3aVtuS0+tSDWOiDHfN8Riku1DTY2PCZRHrW1cqety8Pi1uG2vNiMvVfQHjlfW9qBhIa/U1N6MF6y82LSQNTVNTJY1XLUTlam5HCq9BwhhCV6dMJScu8gpHxuWzSYov7hOVUUe+rJlBaTmHiFnbvq1T3+psZERY9/PGHtIeQSVTnVYkUDhZtYfPOUO7/ojRXIo1WvhutVsQ0YVY6aUbDznrs9TDKMoqMg6fOrVD/l3irpiOPIaZMxeYeXP90HYnGvoSH0JSh8UdqjVF4gJ6NXU0WCugnq0GrsG7hsCT5xo4P6RIXbTPv2kk2V/U049R6Bmbk2jlec+rFBYD0IjVgsSKlJUl8NW58/0ZqwJRQmabC5dp5mrHc1VGl2Nb8ZNRQUXBtF6MTY6mYltmz1YqbY89a+PulswrSffM3DYNncdbvBLF0d99GmxGjmyrK8fo1T5qrGfST4fNTflGbCmHQ9lJC5aWWv0/1KWjeLR3Hk8hkq0rqxo+pmkrE4ziY1EScf/1ZqFH1anOmYWbqJIsmMtynHU5iZMVaBRwqC3mqIyIl+C7G77kXs0LE05876ZtNRCfqW9vtAqwDy5BiiQ0s+Y3jV38i9rROC1sr8svJKFhpqU75oxiwSbVj6B48mPN5RB7cet8ZtgJkjKWke72oTYEpqXHOlrt7KD68taYiTmUIlVa402cs9s5qCs30W9F9NuA74bCNILcg1DS+Z7erRmrGcOjx/nspZFVjPmUlfvYWB9wvDVxQt2pzKj58SXmzVOhue0xzEWmykjoact8WGAtC4tlhLYvS2XzklZtgK6DUcKZl/i46UnZZebCi0JiRU9x8ZqC4e2S/ixUel05SLrs9umeciX9iYG7lTTjxo+Sb+9qf878im5o7GzpSvmzofFWkwcQjiqvNFmvjNUbm72oeM0t8q+DFXLetWFZsJuYgGmK6lEG6tT469LSKfqfNjqFJL8SuxEPQd999Wqwjh6IqGlnpqfNRSfHa3f+xIWQWbmJte2w4BYSdWKsfUSSzcBsjjtRvnvm0fRc6LNipl6nJItgsORUTPRmjkpelp6qyT2geTpPo6exQv4LxaaKmOipe2bb1B4fzTsctZ0PnTSv9lRySqS0s5y+sxM2wVpnx15jNFGauBUoyqSHm5uNf5nNVi0xEigidpc4zXpXjCtFyKe3d612iLUh8dOpMSKJTKstOe2+K0Gzj+T7ZIp1WaEFsinKZ2nkXtDhqlXg7ShKRf6qr6bOQ9Ppb0CKrRSMd9WLQlheNumhUHWWicXQX43sdYNhY3Na5WLyTR03SbNyLSYrnNCEplGrlWVJbp9oimHTuNtf5MxeGaOfPvgmyBg8iwsJWoLLy0nNyWS3pY+dl2aeNIw+HaSKrHw5HCwS2pHtHkGpK9qk17qUMpkVv8XOcMnaUG2UctCJTPIEnNhWkpcIPucgnWiNE1abXLjdNeojm1Bc747L0KIwYT01aJOe82k9Wgx4s0qtE1/QqSKfYQRfjY+DRnWkX60O64R6FPSgkZ/dLhJU2iT3IOhOBmRo4tljuXoOPKr8EjTHulK06t3wZ9ojSRr0dBJNtAeYkmOgG4lYocYTEaCrSONN5Maxr1Fs0GKXY7H0as22JigUykkwSL0undstnjGrWgzxkph83kkjHsVLEVVuNgsjfOgvGd58WmyDX89ke5HnI/TSembcLWiP1xENEDNT5qTl1l0MHXjUgsReety5IosZGTkjXpeWtIqsdB2DdcnwaPFEloq/NlsfclZcufOhFSCRd4m3JaIWS1ZwUDhUNNNHyinRmN3s/rezg0WGhrTm6CT6bTmhrTX8Ek2FgcCpCpwiFLTd6Vkqp91yRTT4tebCOmVPDS8l+y8kFnhVBmkzKtWQmhwpPKnYoNN33nL8LUoi7bacOjL2y+ORxa2oI/Q06SKdVjgURaaeegKxKpjtOnuQ+aR1bB8qrLmfSY+hWrHhpCJprFH8wwQIssF44PItHt2oKNVO+pVdEU2kCyNJ6udGjVayBILZjqPoibpvhdOQ6x8J7dJqsPli7wlx06EnDGLwcn+ukfEktexNgwHPNDJDx5v75yTs3URxZ4WMQRV7+Z7ptIsm0Q75fbJlhRwgTZB9+i1aTqn/VjmJabLFEOvDx8uyhiWWxQVS35ss7C87vn3CcOXKzW6Ulq1CjfXJPbHQ6ccc3V5V+crUEkWkd1e0/SRTaLkjxTK1it2mTHatTUSU+rod66etRukk9ytIdN1aWDGrH1CFENDmnDQi5xjptjezumk/paSWbTmTkXzG9iksPIJo9Jh9U+tPX/G9wk5CKNy4pdzA0l1a0+x4g7fA+eEMap2hVJzZYS/TaTZHZzTWaKMe0VwbWiPvbA7CYKUoOFjBwbXvqjLFct1WsfbPkZUYzkUVNpMwpNed2zY+GwkheWa5STqLyz/6rRRCwNtxpbn8yu4rlPujOqDPqvaCIXqIHHSzJrMJKd/s0RDcHZff9JirwSx/d8z9Ni7SNipJESiPTq71E1tfUEc2GgkUNr0NL1EbrxUb74U/1QYhlkwmCIaWvKHJptMHala5G72fKTJnqM+qDNb3+g36FqW4ViINU2nHw0mp1aOymmGkk3KbG9qJ/y23zUxmZyT6mx9MrOlbCtZLTp36kvkY1adJvml0R/Va6QVRbchYQjoWPcVYmkjL53nRZoXJJ1CRX5pmL7kofDHrm8HKgQzcNFvh+PT15k7+91k1zNKyXm4rov7fZoclR8ElHWPZjOrMt05vI5s00ea3JZuWheUOh8RO9kKaHmBlahBTVfWlzVzaelWZzvRHUWsdov5ldjQdCQcPyPSKUoXbodm8k9r6B5r+1m5F7aan4yJq2+SKbGwbWkAhduFnYal3y3vjcz7ONSbktE6Yq6Rl8WEsFztKpFRUQntQlWUAgfaIXI75rW6rNHzcbpOtEG8FsTaVnFhHktWnLZW7SWb5Y9A5/SkiiLwiH0n+GOJIsGsKCwmLy5PSpe++S1eRhN0WROmG6bNGc35dXk9wa15JKl5qsym7Ros4rkk3ooM35jxF0w1Z+R39qL9HybWXXMwtWrNGmIv/YskmLSSSmHrqw3PEiBvUDY45Ncq0uGb30CcneoQfEF4EGbodaaOnUk3T6tMHMSRCjAhCIRsgaLtbL5vBsrUjTFr03Ak+Ojtdm1ReZsZLOCav88eTEY8X7T+9alsFWDUQ402tPtRANEGv69EkXsoxIbAk+a53UU8qt7dVm18a/vq9UatG7/YUAa+h4Pl1IV3xvLZn+w1UQOfHOnURRFlGdGv1N/NsBuFgWhMOQHjU4G2t0r7dTWkn9pFk16aGWMlZFG9nLQR3k2w2CaIRE1Ce5CKU6v7cu0yEaYctFSHy0vy82aJyyTXKDSqzPr72LA0Rx/40xpBDVZzE5GHuB9CFwmt/3MMZcsHu3S19SZ7hjFioShSTHjklqYmN9X7/NbNpj7jis6d8xpmRhVjI2NSh4r7tuAXj1zmllD0ky/aom3xBHN9xNnyaSX3BWRYyNFW11zpiS8XQLZQUo87O5ZCFZPXL1zdC3JJaWLa0FZ7gSc457fl3wPwHsay+aFx/rwXa+tFnJUfq6/l72lMqrqNyOr1HHVhs6UD8dD5PObNWVNpR29NzTK9MDD2uYWfq85Zmqs1BYpCWokmiqkrMU3fTVhBG8c2ktMz+SVaahyR0T1YsVAuLCwdSDUaJjn9Vv1BX6fNGZtojo9Pjy2Moibm2sJfavH9zokzN0gt1SgoGq3+X1A22dE1e8tl7fJFN6Ym0xEOw3DYXfUoi+u3qzMXxT4qkBt9cxy8WbMK9qsWVPcFw3TxpEVN61W9NjH+xSVNJrxqma3e5Q6nevTNjgQyFMUy1NFxzEn/zlM2SWLaimGiK8yXLXRhishAxZvOYdpa1ajSKbWJWmkHnnrYf3z2punUoRTZQSnLnDxV1ZpiZ0jD24hxsY5BebViQIYkWcvrQO6UrVbMaveitCtbkVXXRHTM3JrWo+Wnygs58bqF+RTdRjZyP+m+ju3RM5uiyp9DwzI2UNjxMbt/h67aob0aYNvboV9F5sQnRE5JSNIwq2FnMPOGqXOObWXOQ+X5oil14UjzZ0mzpmlZ0XJp60cirRF7BcJheJpxUg6+lT25ul/myZ8jh7em1VqtWojxU2XrVhWbBYFgmDpJ6Ci3yXned7NBqWVf1+6NatHT76hoX5vaOlCq1albWrYScvNqDrT50nP5FWiwsXKvS9oBOK4epEooeJN1alBrHEsxbEnZPLPI674GE2pE47Dsy+SOrNEKgTCuHyAgSdlqr8y/2kJMP96n3mLWGlDU6D3zvYai1FlJHlBEpPSVnqKz7XRzDsNDTNMF4MRaJyTfmpe0jZcdKI/nE3dXtY5WiObRGjlI3Uny0zPuVGjL5mt5M1MWaGAjnN/Uc6Wq1KkZtyF05Hfck98V/HaaXNkwhiQ4JjTiYsICacfVj1VzfCDPbzjXO/gzOZZwS0R16TSeWR/VYaiEG42XrFxyEnSrXZOnkXuEC0+dKmmYMO03Q8T01uwlbbCwdSMnoqcSitTdWp8zeWQeH+Bx10Gg4bGN/csjm4B1DBtVkaahq1aK0vq8Qjfl6O98Lk5f3sJPcB6EIpTXSVKlZ75y5nNy7wNbDo1Gw5s3IkU/Lss4EyGCYpqTwWGppK/xMxeDYnT5knXI5m5BZdp37tJG6x8E1J1HY8MCykGFxK5gYReFfmo0oOqDEaGCBNohBOLtUjUR8QPeD4hSj4bBbH1/Tu/vXaQ+PNNqDmNGE2sbG4f+6LkKQeLn/MnfdVbe1vsZc45WFv5lzvY8NH9GYW6Zkimzg9D1NcpyIzpkv3rGM3g1FffUyubWwRHfwPFsoRLiJtQHIJ4hnKYaQG4gvRWWv5JNmqFkfE6JJItIaGop63WkHgTxZ5SyYjfPVnd8Ekq+1Fpmxum0lm0VoTWjt3tNbSA2aIYEztEPow20Ts2pSUpjSL3h2ZVXvY5CA4KUsTGkGZLv7fDtHGLLgdRWj0TkGUSe3w2YOT9TFkAN40OHL8zTlEjC2vqx4hH5NmVrZ9y8arA8CVnSry3r9jYOUA2SlMntYktX7xuEDV8s7HeTWaSLv9tZj/unvpMxbE9ztx8tSZvL1mSuz0VpTklHbkbNOgY+82ah586LaLKlyZqBYSPlWZdOXaQS3Hfyg0c0mXbrs89BujdZb0ZZEe1hNbkckV5SpMoFZqbNFqhp+7WMfBhZabRCFqUrnOdzES4pp0WkHALbQ0SyQ3PUSfNaWZvtEhEyUZHlK3aZYyzRIE5dapczLInOs9omQp6xOVb1a3446OSerlxQQzErKOojZZoQRWkj0knFFkbr5bDr1lAwdmmKTbya4uB5LI1AWCYtBKwY1dDUjM7pkLORMe2+JQ94aJKLQXEdU5ckLtM2igWRRzYrSZnOvJIV8b17masmFoOxwz9TRHKJiu53s6Q3k3SjW91yfRs5oPC3ymsn0NRc8rltGE21YcdHVPfNy0obCq7ggBzFPpcEyjDjDXO33tFEN/OnSuYM+zTWIovqCSbppRBlYhGyaKLVWpnzNb+661reVlj6uFpV3n51hCKVCdcIRZsoelVr7NNnoT/qP+mbHWpG1oHZ9VaYXiRRKOWDaVj2oxTJseCwR5LcedMcjmxDx9GXnIPiwiylNLGjg3JpoUrM5e7eR1veGzubGWpPWSVeFNG/R4f7DRBDBBemzu0yrCAgReGl0fpSnewaRSjCWRNsMEeTlNRKRUfNTqk9RPfTZM5OVGt63ISXmN7SSzdJpqtWKgmoC0W6RSomaufpnJL06blKsO7mv90M9Z8TpfVgt0UXL4Hf3yr2zl3GnpP9pew2BvEQ5FHCI7JNaXbu9cXIzL/0J0GeXi6HTdWN9t0FQlo8qGqeap8pOPmnxBHVulWkZnfmPqs9Q49ardNjYJaCgiWfBzU0FZyatWgKcgzV5fNrQNd6y2v9jQreKTnLIKSny+GTK7PNfGbLt5MTacJS3SlOmxsVnJm+IyUol6jxa05Sqo0Pq0TdSpth4EPFkkUz6SzqM967KiOR6skc+G2gK3CJWV5zDC6GM2wNxYGIzj6TPW/6pkQJv4fEST2iDFoQTFZ0dB6+X7C9TZQXjxVDIlYfGhVLRK/ZxVHre22iHHexGQLKelGitfNTp8rbG/mz5y0d8pP1Wi/mqrs0eOSfzVJSnl6ovBFFos3fStWOppatM2HUuRQyY2ma+VevIMrUSe1BpoydqidyOtFgsda1N2982F4dIJCxcitLE4QUL02pfyKbOFL3L+6smZi3NlpRx3W9bSL2cHR/Jzlj6PnyqlP0XCO4yr7pE6dEnKzYyGvGzcPLH/1q0lKiW8X1856S/qgxDbOTNHZxzZI6ixwHVgrT56ByVadW9F1xY2P9qNHSuw0YbM7/2QgYoQhKlkFGNc00xK3xBHVqCpa0dKc73J1dU6rcAm5+GfJQR44xHUboklm6DedGg9dwgiX9XQPgUCBLDYWjx89N8zK50kvvFiydY6b61rjf2EURitroHxdC02vjnVml6tYk/+Sc+quk40aDroWMYbzvR01EKxF5E6Xmqxdj4erronfMOkz53tQe0PhOJ03J8pF53vcSisaj9BD7q09C1nDSi4Ry5tGuv6Da0WDYB5DCaiBsfSHOYlfevkc1fEa8juf6XcuHpVr5pFVlhGQsOyQkFsmYnr9e8eWlHVnR5M+b1MSVSZo5il/TZw8CYPNr9xRxpF9PvdSFexd4Qn0rLnLsNAoi0R+aHwvcknBdRnygwm+okdWhJn0knuVzB1PK6rNCoT6SUkB5VAv4/OreST2OtZSLzf5gimtFn4U0+euST2eAacIeEML4tUk5WYnpP5Ky453rSM/dZmWiBVjo2PR94mzxem2skF4t7VrpVbk5Vkj916g3TLSX31tlF/QtAE1LUjj9z0myr9+/ks2c1xp2jSR+0kD/9XXWqxkO1lZ+NaTzYLnVOjxRH7lrulo0sJItIannatLiKoqxoC+70pata0YrRm6hBm1gkkh31mnySRaSCQhiTb4JWZGekgcvNlX9ai6GHsdSmWvXOmjHvoImpb2gDpSi/OH0Ftkw6Fq0RxfTTmHyoSzaIW6n+mP9isHR0VUeY+mS6y2mCSGWO/d6KTnQRSrFyxOpeatd8HcN/px2bjslomVy5rSKN9Njo8+cccW4xq5Z1UUlss8PHJt5rQhlqhqvOpkuJas3oz3yztI53GHv85GYnFWL0EcjCLzhaaCvSwWAiDY3HVlTTMNkz7xrprQeJNBiKfNmtnG7tId4MS91iFQhOQGsKyzRpsqqbu1EkWFklWnRSZH1ZsVDwXHJZZqjd2qzpZ7CwEmJR5bTkCvK418+M0vVisRQUntYUf+YZaCWrwd1ORutQ4Zx+acccdzP1f2B4zefkh6MwyulatZq1t1Tv7CwNiHqStM5Lob6f1qzpteXKcc6XeTMqrtTDzVY5NcmaVdbQ4HBoZSGlo45Ki8+hAq4CWyXrq1AJNI1GEpid7FSw8pbaKELEzvWSmHLf4I6tJaKJz2dWjHtaPmt2q1eDwOgvjHBuetJaM6HrQltWogVXOR33JIuR4a6vnLaRVYiDxik1qSNQarUzlzNWTFSUPN4wYMatMQx3+ZJfYNofB0x8IHSkunxHSYIE3lE3/mrJPeOg2NH+9tD0JuHp8lvQ8pT6ZhIrMGZzrgedvGRaRrs047Q+JsmG5ZRm7qxzdGjSmublJLy+p03jdBerhsnVLXKIQX70i8Xyk0lkm5lwn9OmdVqB0B8QUlRNrE04VjzPaMIvIhch94zI9pDIpL+LaHzFNEjQh3XEK1S/NXJU76q0uJIuDx7VjjVrQkzXfRLNuIXNnonpFEKMNbPbyRdtoebW5+Ysz+/1axsnD+Pz3czL1wSVZAQlgsUyYpd1PPevFHk5jmai2plpj9rnNImTC5vEwWTX9hTSRU7iBV/hyQLyZbKUzqyet2b/cSKh4ZySX7VmGXKcrrHIIRJmrEY4JmPTaTpacvqc1u9nlEJ0dp7/fATJ1G1Mvm1Ab1PueI0MPaZV7fpmbpSlTUF73M/ovFL1xYbpuUrliyWSOkuhM7zbsPNR3T+hdjZw2gqdOppjl6uVBpvRHWFGr0zvurW9wuW/SgdfFePQpFRKxHlEgtOo5JJDJK/NnTZNCEGZczfaamPZQ18SSxY6JDxltDySOHml5zblCZ+5erHRTTZ0oqzY8ExJDTHOqZ0l6+i94NnfVeg3fG4/yMKsXJ8VuS5Uq2RLo36CHVoi/0WGjVB8f6295MywIGLZjxsaecg8qZc+rH1BMmOyNhCBYYdMU+vD5apYpWdVY5h+mTHvdSqpJvsLWiooNfHStaVQ+Tu1dnHpE/qO7/VqKQPRptijhWFnkgdSvVleZEEnmxk0dHp+TUJIfNik6Zp8TaahsD+JnhYfJ6yNu9jqMnfTK4yyT2IUv50excNOLNzZQlA5aspZb+Rx70Hjr6qZ1WdSR1ixN1EK905Ue2TtLX1YNaCKMQfofNoJaJ9erEfeJEJSO0vOViTtOi2G6UFnGYvA071/YrTboo9cRO5hJ/tL4167mC6Njw4I15JQq3JNTfNZrnwSReEYkX8nT28z/aI+Pjs5e+mTM2oWJiIQys9FabS8rJzq9WkPnHmzK1kk3J+6qPssmG5XwuUE176tK5V5LVqOHlDsecdl72es89uU726SSLCEKKYikoPHUel3w/nTXoj9hcJON1v0rLEElYichZokQGwackb2t9fVUbvm4GZN+SjVqtHo0bp0PiyCYHYeOshQ6lZmV76bFLfoVnNuRmSKLDQoNla0yKpEWitSSzoyDbbjlKxvdlmYuJqYfC7Gh3MYbI2ioP+VTtxAqxkfhcxKG7bRProvbcjhAHM7kI3BMajvit3uojnRfQogVKsy5gzT6s5uG1T/vYjEgiBarSIWj1ZJ8Y5TdsEcWTESA3uav+oM+w0H+pWpKSWLDoLxUWAlMaI5J4ekv2rVgj9lTR+ZezySRaEII/UnNWEQTFWDPoqpu3q1pb9MkUxY0n/FdNPVyKbU0+olaETJLVhusFgfeselReQLqHfRZUaWWnT91masmpwWPXXDH+wPRxMnFNG+m2eXn/clixthQm+pb/bnFR7vNQZJn2IjfUam456L/L4fU2gDTlx5PtRctNilC8GIsVlh/E+ebyg81J8nT5qwHjQaHS9RRnMzpsLEUPD1y7RYEug0mdmhpUrHmvr5cxoiwgjMzNJ981aaM19J0Piw2OQTYkkooic+X1GlX2KpzTqRW3L5FNrbpRf3+wtTHBtSUxoq1eiNL2z6lIimwvJzozW+qLxZVHJ6TlVyZmzQptwNMoLPOxq3zlM4YxYahoNHaYSl1ZdK+eMKs0bHkUXjbWNkxPV9hBCe0NUvLing2FZSmo82ePrTV8X5Hlq9ZJN4qekNbnNOXy8l/eqfL599ORmNXsbwrkElukDdCZytY85kxVmnhLLwK9RJF4fKF0YkkqyCAuU1dMqp3K0upn5se0juiO5HqO5HNyovqm5diQqPBYv0pJAK4Ilzp0EUOs5qmqs2XNI2TaUrpWdEWOi5jNDaEo+t9Q/yvSMJvOQW9LIOkjmzVpNfJ3WSe5WUEbvEMIXVqVjuYpMvqzTmLSfS+2+0dbL0VIi6FgnQ1NFImgi6XjezUmR1Sgwi8aljXw6xoKYXjST1hFUmqMStly1CZ1HMGE3zurGaMKvA5BCbMV3JE2olz2rmquh7QqkvrJJ949Gi8WsWlGqR4DpFEvUHZemfZvX0n9QliwV9Exoy7HRWGCUV2pnml43l6/aMMRh6OjRdDPqrNFQHmUN1ipKIVjVHV9xya5VbeOSpF8TZoaitLVI03zPVjuzKuEeka9CtFm1jVUpixqZmI4+WGvpVqctl5iaVPa7USTeSO0Pldp90tO4kSJysx0on2OoCnd6Gkj95I+VU5cRzbkSqQzOOHyZ2RV52XOhtjohFNRoOTZZyh9Q+mO9sCGT6nbyz+Xqd1YuCgyc3Npz+Zm5LJimcasp1kTpbagkGzRk3DQ+w7QX/f/aUoc15rVkVVaQ8Ky6J4wq/BU2DctTNmS8whL+R1fGfJuRP8t9rSgU1p712Oyc07JCoTfIzSvzM25HabO48UfyKbqB098HuJJ+XZ6AlRjJnk3ajoVmSffBHGm4wWwM75kEjLmBSl3wWdRG62lsFhs+gwFVRXV8yIM2mPnoRkuNuI1sBVRZ40mmjlypOgz3XAvOOfXKCvHGJSJ8YezQbWwbm5jtN8IVHapyjORti8HombD19a1C8w567gWrSNVkk6sXguTNrRCySIthCKx75LpCbTqevHFmzqvCpTzjTcUkjdeEUylv8WsZosl4S6eh9Kyg1bV3jiD1kocRzOZovosh8wgSVaxCWUjTA2khJz/vKk7+1pBvQ69Jcysi9ooE5fU9/tg3LYiFAtrmUm1F0O1Rr0V3pxqptlQjDRULeuWILbo1L5iLRQPSl/XEWa1OKfDasSEw4CKGpyAplIVMRV5y5zXzZqaxr5aVWjkmv+mwWJC9ozxThMpm6S7SmnktWMrEfemcTfREy6FKis00lqyinlKdA2tBegulOn2tqXp8L0zaJugvVjwsEIWs/ajo0wXmxS2Vr6XLwYi5n95tioG4hFjWsEeUG2Q+aUa9eStJQfFTYlCetAz7ENDZSckPu39rWaEJSBSGpY9zUuSQR1cjOQeM5s/mZtwbyPV8yXexkJ7UggxlpE5PlWtKmrxb5y8b6qyiHrT2y/24HCjulMjdKGyXouu2tqJfXrTaR3LpSSTpsMVIKn5qYzzclKs898HWTPWlW73Efsek06HxYSxpNJDwyjoxpeYtwjNSGXy3yZizhWVGk4qGMcsibWqwPK1z/0xz0mckX+7bQQWhD4Q9uHx4qqktltDpgWhY1qiDjjpLxJ9X2jOnI9D2sDxWNxsexKCYGQa09Kz+cgrEptl/q2D1D3rQt8207Lh9ewbTlhLXq9HVy8/yrFhsNUPoadSsWUqQtHsnEK+2pKDXPNWKsxasVC9T6I5zLhFFDSvNGDhj4tL5x30yMIuFMtcqS9NOXxkpbEXQhOicOzZxXnRj1Fvm0gTGPFUnDzm0cYWf9Om6cmusij9U30EFPjZX5M+zgTsMo3SKlqINrRLDozWyR1ayCpqN9Gnl4sZEiOn6e58l69uLCMWSj2zMVpV8zpaSVagiQHzci2SSFasaBrDRDVKCntZY0clJeFbUUNCq0q30kUXLJGoy5pumx1Tt+/peoim2C9iG8oisr91Zn9vXZy9y/GHuhTJqtWJQ6TEbU06CWfRyj/CGnLsaESSH/3fHsGpSUofEWKwdQwRQ9CtJdLL1Le9dpHoG/NT75M9Vdm/ovNmbgPAQTeiitec+lVoKPm0lBw5LQtmcRSrF44epXty7gA04YBg2cUCMp6MJaJfAwdbS2WbqOKPm5QNSR0d1iUB7cqhI914bO8qy32Fo9lJzWnZdpjML+mPvYUQcWNQVd6Tp/ijtxjFWWqOc+VfYEn53fVWJQ5LKM5xVSeeXmJmO+SP2waHuc9Nr4sGpQ7U8+bKg5KCQ46BuelRiZbotHSfERMWj0vbQpU4LF02TmqSXluidFtbGl8Tv7mapVF8WKgTrBHC8PLbJioOjN0W0VaNO52XcoRofNXAN+DQZofGh9tH9aq/FmnzUZSfaKJeai8DsesGp4+Tb1rf81LLaIPs0VUcjpRQdovTWjVCVjIeCQVnSjS/E9WP7NiETcjZrciXqxW4IfRrikmtQ1WN6mbcezvps2adXp8vkjrxZ6wiO+SWEL+YMLUVq5CxjTXnMcRrdeaPrebBV0EfsLRGKDUZhNaUtMTnVHi8TZM457iRz6unCro75QlibNC8I0qREHKGmfnO1Elb3JQaqMbook9WiGqkPR/1XwJYMajVEjyyMs4QPfKMqNNDD3ITAlw+jm6COZsqEQpK3oD6egxHS3toLM1D5UdRFV0WFSNav4ojm0EBMNN04m3NMKQpmyS+5QWb9KKBK3e6HitRvSgwmxsgCGpHGju/w+af9FwexJ8P5I20hS7zoU+5GuyEJwsC8LKSEokYVWtX+t4tJFM6caNHRotA+Vo99Pm6AxCBQUwcpIkEfmlZastbSrfoW2Ykk9yMmzq81YkBwHyEQvkOBFHMoINfJJ7WGiLYfCcX5mX1osXBQDgLPQWniwacY+UJvbahVQ98nN3IvFweIUlfNElWEQsKmkGRRN6v1VJ0aZsmEulIxylPiCSLHwsec9avuWrUGjjkkppJGVTslY8Iyifp8TDasaSUEMyiXqL0pDR2GYhLLp9ajE2gg1jxo4o5qyJq9FilLN1Nappqx8SLIUq7R9qeXRiZWSVYaS4ae3smFmOX9jSLG/RLqbagrIBGuhsRL1SrGavetJHN8Ep2t557e0imziiFTkq+ki9oiwJ1DNUiIsVovGhDr8WeKy1S+CjfbTyerSk20D1ltzRUN4m3mJzhh7zSyj5pDLvHDZ/3O3sQicFhb51dGC9RKn0USe5Ep0pZJOK5J7oJfp8S3SSRbjQhhc3pIyNn+VYa1u7bas2WxGQZKzH/e26TfD//7UByEY/WWhTXF5ee+SX21RBKdJu7SJdnSPeNxlhJ3xYyKjVUcGC1m6nwoolP1XKel8GlGkbr5o/EPip1GZ98eoZO3pojQfCtHaXnWbXqFZYu4Ob1Uv7CYHSzoqcHf7UerKE72knK1UStEUTZ0nHPrM1ETqvplmo5SThak3Q85u7GLoi9q96XxYlm6UyMaYhkzckAcdFp/pZNRIu3uzeSTaB4WH1vDad6LwXi8cjT+Xm0GqLGkWJD7WpaN63do3ojm8du+NMyZm61Qjkv3zeIECfpJ2YhRhJqndyX36iVW9c2iPodLLOr/kTLSDxhUElHrkA/EcuyXLQ8X1Oa/nZyhHNrgZ75303QawP7rWPnCNDvjLST0e1odw7qyWmSKrFKhxOdWjNbYXBihIF4sfoNkx6Vv+hKt4olq1iRBflKUtV9yg+O1STXyYnRFtIRoov/1OXNw+K1X0ZONejYUAMlFByI0OBB/arMt528Ek2AmRBB6NHLh/smhCk5qSs2IhWE8OD8oK0Ujsk/ytqkrZBHOi0DizTd/XfRlr5JItJJh3fK1ZsWOFsm5hOUGxU6fKrYoj9mgSfW3TL4IpuE6R+S7bEYEqGuNyQbtlZ3f+gta5m5W+nyhlmeXq1B5rafTbCYWEoLPpBBsud3rWN77vq6k6Uskr/YzLdKvsRduAk0RSPysbNVrILlWL0popbozpWRzY75VjN39pi09ieRQQfNK+pnTvcJZJPLG9Oku29Ok7JJ+wbBaVH3nTJy1l41U/2cxA371FwVRVNOhWrDuYRK7owjDard88v7Ky9f50WEFPHeDfYYi5TIIHis900rGTSnVHECLAXrTlriFJV9EcWEtZ8/tNqw0WeVqaateiS/m6EObT0VYtY6jT6sdGxINqb9BlajDe+iX3Qyggi9HSR+4rjqsWPFic9E8nKEtRVjRlxaIpOxuhfje8sd0atFlkw3NNp/P3R6rc6BhFjuHtL0e+iL2bE3GDYNFrlpqPiTEl6JKs2naYNRXdYQyir7HRF02z6EMTMwq3O0Es3Ut3hHr0EfvdasW0RlFGacWy2l6hBObSPWkXdlkUtueiarE3IRAwQHc1RaSberSakT9yRl6REtVJ/tGlEVTauByoGaxMbGjzBzTi8WaDV9GNPXF0ZHfawhqJnvH1KnyXqXwSRcDKbZ0N+i6RONp5tioIoLGOSzRohSby/Wk2NySbomhoL8k90p4rQbNiTLOGoZJNx8HKzPl7bgNVrjHTZp3Sf0bKi5EIIp8hoFqS5h8TDY0arRLJdu6a9MXkDZl8e2EIoUS1NbpTp/+63xeHmXU1ReLEx42GpVvQchj6fMR/aE5R35taV3XmTsbEvq8Fhqz3nKTJsQYmKunxOg26NRr24OQgoiqSaz2JKalWw+ba7pOyB0xuYbc6Fn71yObEIWOaufHQO8qneX+8NqDsvps7mKvN3RVmyqgN2UXOPERVisty3raS1bxVKUz5Y6bNy6nVq032DjT9IaIaXzv581deTZf3xdb1VjwQwile2AWBWeglu+n1p0e0xIxqOacV0WcK1Fo6UULJhHFpoadrRb02UrO/7bRHEk5xvbchyieO6suLFZpQmgthougSJGKnVfEWCyprFdOgvF8hw9vVIWxYXnc4NB4PJHt++s10vq0iiCXhvdpIptAs2Y8yvVbQmsC1sGiNRekx0PnXDTxsdexox9owiPKpoEsWJgnpOnGpzWiDErqdVhYEtvVSmLaw/Q9debHgbQvSNx6iBWuloh7UG6baVGu+Up5IuzgsyFZI7voiq0TxITTqEoFkNMNat1tOOO76fJGz3IqS5r5XqJYvuETZ0jMy0zKbRBm6wWY186bNTTMLtNRszUjQ0vSYiUC8X5/N0zJJE+xlIZ1PTGDpuZzfkcURSN0mZXyWLkao2Hmz76izXxHkk9nLOSR0ZBRnIkn1ZoilsashpI/fFU7458tsNCiWN8tHnHHbviOlm3hvHVpR3GFWdPa+p7LQBaJoA0zW7lNzC1LSGzE6vcJLEOrKOYsiqzxzNGdCBUfQIv2V4JZtZT9U164JatEVCNGtENlvMxcgHyHS0s1AWfkScyIDL5Qqb8itsEdWMj5Q2Hor9nhFCdUU2iGVkR7FiBNnCMeNR3pSIIl6RAm+QoVWlZRxH7WB9ymrkAbh0PcxM5aF8SIb6mqO3uiEfVNPnLi2BkJUB2g0HVj6USX4+WuQvZP3f7wcCvTpj2gNAt9JVbEmnKw92bcjRSafHirFJUgTfDYfF0kEua0ExsnBxeNXoQJvToVXK7l9U+rc4KC9NLYvrL+d7Uaogluj91mWRcLN8aLXAThTFVJCxDcuuhuqvCrNR1L+gidnWafjo0Iks3PFZOo7Q2Wo+VVpPm6Hh2fqT7Km8dPnROrVZwTUqbR7UJbJjwdvNrDdmrLp83RNTG72smIxSbkuUKTVK09c29ik6Pp82bnL+qXwR+r5MSVFTIyJF6TNTNpCQDyir2Ms1QsiXb7LSHeFJxomSE8ybStUlq9miRh/eTWxZLV7j1PpTV7amD0gbSMYcbMwrSGm65Acr5lqyKrxpyNPh8WIwoh8TyOcJ1Cr6V8xuMJtCmyl/K3NnmXbiBF83IxozZkji0QMYOVm6eC8k+jDc6eMItJR86aKOq4nQ+kXTfB7Dg5J5oRJPhWN5l3s+BENJ5Q0c08jdfnNnQaWklmxoFCK/MvHOk+C8w6LggP86loOqrRP5qtfSRVYhBNBPFSWk4SrWdvozXKUu8PCpJWSj4M+r6SCzdVKXIUWaYWLWsOozDd7fCU6HTNoDwpUT0smw3CkUQW04SP6OnSdl2kDUuTutCdNyEFOvHc+LPxCK1JU+rTq33UrRNjRxw1G6T+ZqyyzqebPtBQgOxx1TLYMnLnzY9jUl6kI+5J7EYaLJvlRRmWYmzXDQkjJJIfpq9/iVrtqKSCqWd6Ip0zcuPKvRX5GNWB8BxxWElxKEY6S5yllFMobojLfFlVyt9VVEdXIuQl5sqL5HV1kS5vuaXqLwSVZAFPlAaokLV8f9PjytX20f60ok6c4ii8Itz+01uXy8bqzYjDcqLl/FRtw2tWIzdG9m/D06GodcWIaTnvHfuRTZMIZw190HKSXp8eLOYsQ1vNX/++L+cudRyeU6JePFzVtNbCsNsJ/ChC6gaY1MvzFRYbE2lTdMRYkU7Jf2zVWEQOQ6Z8sVofTXfStWIwgqIPlJr1klWGo9hTO5qD/YJQaHCohluTETG8z8v6rUBZG21v/l3LvMaKX7Js0g1Y7iyZXPfCrGxeGhIgi/kO9rH0ql8HWiGyya/oTUa+dT5W+LNCWNnRpO35FM+0tXrUjFjwOSnFNDSAlIG+i7aO0LuQlt30LY6hhFogeF+X/2Q0E5scdyhwiiofOlL2GmFg9CrWMiz8NrLr3tMZFqE9oqF6k6H1Mz9E2jKZ5z3FiSbjwkjoOQs4WBuVUzDyyhVdPjV5nLuE2pfSt7ZozN0hpnf+F2NjZAwQ42Wn/1RiNOizQsSheOleiquh3QO776rEiZVghpFROW7l1xNsJ0IV6Wpb2m6fWo47RbQbg6mTpGyaCZ276eo+tF442VVzuR1eamlT6fFog5pnIzDhxszCtd7HzaQqpaOmlkvmzjoSVjeqIpsQgX3TQyJQZXKWh8Zr+MJq8OpJHbri8bJqv3gji+HvaGnYLK0zqfCSFVptEGpvRxzpJF3Gg19HX2qQMm8SECDZRfWnob1dBYOnG7r+5HFw3U+PYTxaDYcuDTj3pLf3rlX2PObD4yD6s8LDklaTsLhcHATCejx0K0v+bY0OucvR5y7TlZ47jZ+baCdDORySX/IvaAWLPh5ttSS9jod0tKZzYN5iclotw/K/jop7TEWIV5E3VeDk8VjOXUzvKtafm+iSb6UKPnruDsc+rWCV7G45g66Di/nzU2cDTxlHSvVfk3G6vchwdh3NTFSiHgx7hb/uOpVqvd8aYtgbwmO1yY+V6StV3/LuUdSOhdO1EsXoMVYyLixsTKR2aZ83upqelMabxslzbkhUbL40rijFXLVqxHtGvqtIeze8/sHuYnttFIwt/t9F/aA4THlJaoT0j0wqkuPVjwkYPv6i/vYhKqLjTPfFrO4WvnNU80YlmbovHKM+ntd1kRRbRhNXWlN6OmZI26LcCykGx3iMUVl8ZxTcY1Z+psxoVgy5ntKJNebUEkusqB+FginBoTSXOhXyTml6iObSESMP41D6My+blRGXw0lqyo+acm8VoJ11Z38v9qSodT1J9nY3xqnRci0VDQpW0Snj35nrzRjFym2a1Lm6OGUVfYnDkPnc5ENQwroQrTdK2VNrSKtfSTNV+TpVltoKS0+c5ZsPh9T/a0UjTX1aMRT4q28RH/VPQmTE7zFoju6v9yMycrM24fb/GQzKNrq9ej2OneUcidmXhT9WjL9WLBdhE85NrvRljF3x+RCq36iKLOPUaqchYahSOQNp4kFjjEZKVfeDc6o1ZB0XQ3y7ambDQPBWK0YkmERReou130xJJFwK1FHygyiOrRYfPf+skmwlhHIR8GqGpKBcfu/vpBrRh/YNIkKilXyyCOveHxIdKq6/IptAUBscCvjx0G5qCy/hh86CX2MlFFr0tLEk3xUtqORWyxWJBqfp4TnJ+aL9m+m0pGjofDeoRxaKIqSVlemxEGAlCX8k0WOLNlWFpy+bPRP69C8wkgQavjKcqttMFg4LKg7Ashu1dKxmNZlksWdkVvrIbkk3jTki6jLSEwbO+kmseJyXjqD+9jJpYd6q5ld5pQ+H09vtoEzTccmPixQ3yrWPvCNtffu0yZmL4b1UVJ61xFjYLhMLUUcuU+XjtUT3okq1jQhl9aCOrUhJT5FvdzMZr5JIsVEwvZOb0EG86DHmvaQyTOrepf7PNHu+TTrOKjQrbkEBtzJMVOkQKvFlppZcR4uhIPLe36YI22sL2BYdqyzmpF/3LvLk+d0FwR1Ztavpa23JwetGBpqG5iTvOi0lKNXRpz2tMxa0JR5iZtxYUoBb2wuO0xLWq1cpqHIb6X8xO9pE2DrY3f7TCCLAmJZ2GxuUZrVJibjpKNyKg3RHD/aLkVro9dj5CE4RnzA/hHlyrOXO9Vcju8Y44lbOi5NyKvs0OAmkCUQNBck2C8pTGWS+0xsZpVqj+ZXemYq0QXA2dK2lipAcjoVQzZqbXKSJunzom6HZlWbGQijY4dx7Tv1fTWv/uj1mnVurN0lXtQOYhelZ+UMpaPM3g1P0Y42d5s5jR1/i2olQ0Ht6oaXJmXb6LecudW9+KNnG23wchqTb0/pLnLufJdaT/ZsSl9MNseJirBpSiJRLz++ZUXuMJsepJJcRyWbKPQ+NjsIvZwi4Wfd2OlBMuzr/s0IMmv/p80XnRZVSXIZZsb+C/s8qIxJVc5vXPfCqDuuxlMbJy+aGFWmepA7jUGzNtDsIrWytMqg3mJpd0AmYi75SJaZa2FcbkVaIoq8GAYONw+eI1tS0vnv8arOELGvbK4JItIGlpzzfaxMgh8kiw1ba740TquAsiH+JuisRWjxag2GqSPOGVJPijtG8LttNVnNs4dySsrs8mVQyOTUzp306Mu95l8tU3uoSMTUWtkzWrhfkZMVMrmb0L0asx8XkTPs+Th5KJNWwamEtH3jRZunpPlcTfeaqilYpYyZfLUPzEzenw+puucYq+TXp3yf3h9aZSfFo6eqk7QR1cZGFZm1AmjZyeJ4fNlJWaqJf74NYiGfphTerkLXJTq033IHxFNcePQrT605tqBtJ07zluqzgtS1Y372LA3oedJ5MoopXpX5e98hHivy6QJGWaUPEJ2bm2EIc6R8pJlD4TMV5myYjWdMfw/mfabkkvplWbTBaEcRk0wuZ6kv1y/31rl/y7qqL1qsGsgGkJyz0OlqlWd2zViktUxjZm5CCtr0afNsA8hYWUl1FFMoYSmZtA9bXpdermYuYHRqdMtfJmrkT9I56QrLeJlVDNy9JJN0TyU41rnaCSRhN9SKfEIMi2iJrE9AWBuuZ9Krc2G0SVaB2QRo1bpoi9ox0X0iu5YWcykKHjkN1Y5/3vjKjTtNVE3NTP1aLHQYOcCv+2kCD99Zqjcg0lZZojg5WJlpFXtENUUS9abligXaEVhcLMuS8lCHOWSLp9Widz6ijVuiDK3arwNVdWtBJNjQtE6aWWDWULIcyVZcOEZtPbuR+LxMqkbqk/eTM2UPBdHjnhBkR8zPXNiENRIGj5Wky+Tcg/9jpuAWVm005ZRmjl6leizWSXlbLaVadWNrNvBFRhbUjv2fQXZ74ikvL59yEtHRq7/aYYD6Sh0pkIdc+WzvJy/y/uREVj6GubpsdFY1pfLCVdyG5NLpIpIqHxv9ENXRj3iBhf1oI5uGJGl6todBDWOwbx5m9F69TaIbFDDbhD1Y8HQQ51dIfQ0mYbN4VM6sNi0WZFWl3QJUIZuNxo7JF8daQqQWqiMJ1WazdWF2kE0n60k1BuvurPn2cpCiq+SUz2Om5B8UdecVRjf0zRSs6Zvo6ZebO9XGS5iYsgFyROsckNQ0zUzagTSqCeXgvfBj9wgzZ4klOdSLmEk2sHXGqVJ3onRiVPKG9tFpVN8IYogRVxAq8F0rVR/5EybKB70xk6KHhvfQrU6m2gQaI0j5Zkcyt7b5NKX85DkffFohPjvORDaD6vlhtFHDOIdBGypJa0XJzYfVFOSe4OxWdXDZzV0YX/ZoipR9QWryRe0R+Rl8ZAlixoSCLLy4pyeowo1t4cWuNW/5G6rgrmvjSSss89Bh3zBqV+C9ZDVcISsx4I5mrrtMebx5ZxyoTOgRSeIPul/xqzSWbNSg0vNrkNxv94dr+hWJTi5NdKsJRVjvWrSsWIg8DeU9PWgV0mD9SAw9wDUVlFVc8lizoQ8KtuAmlUp/UHGaDLXTfH2l1GTePWXOUtAOa6SMyGEmjJhspLs4NT/9BwjsdX5NyOUsJZAJkWaRUKT1/QrObptLs52hsaCKLg1qtG2ooGU7otQOT/fEY57faSQXrV6G9jJo+i+DW6bBYFYRmIzwsOmJp9aczV4tY8OCH6jl8km+cGvV6kkntAXhDHTdGhqOiDDGiBFjIqG2mvjckZV0c2US8EnvA5hCWjjjs3Iq0qTbNgkhUwaneUGkjLOQ6aOmFFklWoDupktKxHusw2nxcBw5vxsCR8EfvBcfE6uWfyOLwfJYZpJIbG5kxVW0sQ0dpwknSROdciMnKOqiz+RMZaw/J/VEoIvmn15QfNrKhxPefWXJEztGPtpQmlL2tW0j9qBSDBsRJVqE7qxHm0B8N671HapImaRj6uijDVVr0XhUKOjPPG1pdWsleFTjnwaTzSKbRG6NVGXZdEnGNWoPiZQ5HJDRx0mZbptqhA1eNlCFwZqzkaOp/UzbRKgfBmX0m/m0rPdmjH3muWXWwkmPf8JF22TBwEwWG9aA/lzy9ZtwGxWp3atl4cP33sfDc8VHVKBCtqPMKfNseKlnTS1wOTJFD+IEWggez5J7tyL2GA+ew+c0eZVaH+pla7GsDYhD67PJGuBjFgXkjTnwksYVch2URR9UouXyYbYNQ+KtL5azVZwkJyjqllpg5sESmlhyDlNSsv+q+QFl/RXYRyy5HD0p30ktWJQ9FY8cbGEeOgiba2kA91YJWabSEJ640DGrTCcP0bUwt08vPXS76QtiNJ/0kbGe2sHEvuPL/I3OkYT7EYeEMJSclkpO1K9vmzpDvov/JZYMYs5ITS+VxRI38YVZUOJy4yQaGzuYi0mFfOhJ15MaORyOiyqgHpyM0PCqXwrUQ7TfBaGp+48WJJd7kgpE165JV2o0GJE03Jc531KzlGtq4QE0qpKN5J7hEs1WV3hUGBM+uJAuO3lWHrtFoYHjO61x7x7v8aklE2mHQeisElpJkzmM1aN/Wi84VOp40vRJiczTZpwiEL4T+9iImme3D4+pobSrdCb5sFgQlVv6n0GZseUQ5ulcWEwWiWUucoPoN5g66TWrFVeiotw6GANjz4G2N5sF/ofV9AaU+pGZq5UaarFtHsF7ZWNDi1nGOehvdTJ/xsoPi/0+X9nB2VSpVI5cGZl/Jas7/Q82r0cv7Hw8KnIzXUN5upWbenRf3QycrVjoOSi9HO+NiIIom8DTEm3oMG2CTByWVQReohSZlb/7FVE1DtDdIwq2YfWluv6bEYF8K2dvQICq9KsStWqI4sZYagjkkHOkzNtHkU40KSurHApBOUUmBT1EmGOVY/3KRClWh7ZXaWCDMGeZi0BatRcTktP0q0t82tBPL09zr4piPqibRG2cezWj5ZIvWrlbko01LdF25F7SdPjTmEk2xLDMTKHzZMQl3+zdKsarNNSNR1TFXxS+dHOhcVCtRV/To0b2Mg0t1PRXYNYXD6gS3yPMg/Vqeo1/sqJEmqby6SN1sUPOOfS38zFhaGIhPiWmllr6tVib6s8R1ESjvOozNpj+RfFysaWoukQ6Un11Tk5vnQd9VKElWajXVi0Og1eOzWD0UX9P9oulWHzVyhVWeFv76W5JZiHzGWSxcJan1m+SSLx1G2eFhZKtzio02ZMy2bNSTp/W2W2jpl8eLCwsThHHjyVNShXv+i5Kr7583S9Rf3ghiYVo7jTmnpGOh3+KvLQTfU/TaM1KtWIQjFRuM08XkL5LnJSxoxZcjSUqyPuJYueuKfU3Sw3mfWLJN8QXUJrGM2mTCX61S5nIuyLOUJzD0mcjh1rFouGtzW4cqS9U1LMuqDZav5Tkc1Ax97iRqp0ukkmrGw7DlMGrHY8mkujCBZlEsVcNH+82FFroysQffEK5NyOhpHVsTWpvh8SHRUGEls+9nolVac+pIptGJhWblISIG0lB65IpOm1ilDo42am+O6YVi0SDc35aL5ujTEezm7l5seRhIZ9Cmp8omICBq0V/q1Y62JVmrFQkHEmm+Nzn09v8lVLUESGjdF3XbA1dHfLJaRfRaTBxuhYhUcdpLtQY4QKvHlES7XNM1eTIZfXkou2iMMD2w1pAQfmK75i8gOR9T3Xh4qlOk2LpwHvSdFD+SjQX8/3I8Ul87ks++ePovrr95wmo1GDlDzdRlSZuUkND5bN79H6aQdBFTKtTCWB2McWOby9Tiz5upQRejShK60XNGXnHk96ImX8TajplbEjMcsMZvsQ/eauORusQiotpf3sIoZeHEVt/WEUL+dy7eVqLNGjZVkowk90n2w9pVxJFopBshJyxoTFEJ6teWzfkqb3nsZptGQsNMNvHFTkd+PsZPh/fO/uN4L+ULXicyqt1ci9hLadoRni5teDC6Yu0fqebRaqIp03R0enydfIFDdR6CWT5eW/3h4emtMzXuAgjMTvXXFio0Xj0PgtLFl6+99NTvjt03omUXxp9kwwJotrhMCZx5KqVqf7Wgfkt0m72k398G2IROEM6TWy7zRme+rxMpL/vepQwlagqlCaPW1vkx6X26LaGq9GOn3K0qfX9yxpCbl4VFkDtT6xw4xckn9jJuFLzqzSRk3VQc+nwSe+GA4FxuhrcW/pXuTXeGmIG6qe0j95JJKjEWig5pyKyZSDzE/JPm1eqtDSR+0YlWu22hHFoqNat3Waei+HnXKXEJdfI6t5upX2IgXmheqsZG9Oh9ft74tHJV+l/6uuaiboNtQJgiZFSGgpmvJg99WhnJRoheolm/KkF0G8imw3Cbu+RuUolIv2rps2ovoTWaMHXjhTp3pbpsIIRCENkd2uOWhzC0Mu1zKjzTlxEXmqR8aa1tkwYxsLBThT8k3oq1298XDNRulJv5mLzXzjdKySLIRIcNCHrw2tN8l/5mLUGRCuaeyfYHhCR3mJI4tQoPPSnMOYdRdJn34wdYy19KoaCKQgfeZjVYaMPZAB6KpO0rHR5ulU79R/tCpy8jxhFnNat5uhmi2QVEjZoVqNSOgvPnew1Ak1qN3iNRHWi1Btg9Oo6X+2lAihNqeIUEGu0K/r++qx4dKDaUrzHZvIv5JPF4bKhZL0Y0rsRgewdCY7pEI+Tkpu+d103RNrkWLN1Sqsjn30UEafHfVkwtCXhmYHkVt+l/qkNNn9ROH8lavruPp6s2oEOm6Ufj/FK1ExpGNXxGtFHI86SX3IqbMaJ9jIQkBDqRlCoGNWcTEM1qNm+4UtjR/YqTSGzXmsyUyYmbUTaFkvOZTb0njtP/ssLxqdzoJ7vp/0nPoli0RclvpOZV4IJ/l/9heQrU3k49a8iYibWkoVh6T5vDK0I0HTZV3Gje2m6p03mZcV97yRvfGm2ixTFvz5JpTVP8NkQPY715P7rvI/Tomybmj1SjgvJtgx9FoCkR9WSj6sdOH6VRbY0BKlB5HClInKDUTEt02th9P8ry76LdGn/e0xIWWM6Sa6rSrPzbacWhF66fFnGhZCvs4LSw7OGStNOMVjkrGZT8PT/vJTNPOXaQkRRBXwhw+ojJGvjGLg+oLqe0fuXXotAmeFhr5+qxkZk03REWrCtWLR81cJSNDUO/fGOzcuxS805VmbffVZGFMsii0RySwJLDo+J3RoL0tR8DCryAjHYekGGkjoQfbXEIyjqPFv0GI8RQxmxpMMBHoncOCfgzW8205iHehyyzMF4sLRUPtnQoeUaZqxGQntTnLH1ld1ZW75eklZaCiWSiY8tA74tPSjKq8sii0Bs/hbPlbM1GC6/vdTCM5HTb+Xr2VOIYTSeNhdkJL9RLercOio5urMX12NSf5f1K1GZsSCULiz6aNjZzTDWN0arQERMff0lrnmZtMVKIeJlT+DNWiC6I0NKRo+6aMRyvfFyEIZO+5yjiRt8ha2dPWwkXFywbiXyEtqJFDd7GTsunpN/tScnGiXrIptRSRGkbqa5TJeHzp3L1aRVBdaKirOGk9NP+qxWPSKRlqK2rmq9Plc7l6tLVBuqZn2ry/tISk0ui1NeS6KtZq4uRle7+x9GWhA1eQ+rVk6vlCYhiaOPnQYnE5vISjCsySTNyO84v/ZUeaNeJWJUk5kxOYsY1elNf3OWMIvJHeNH94gKpP5pPlMaXrv4wm0RUW0PpcyRe8TG6+RzfeFrTl7jqmTMxMedRJ7kfMJNnUR+6P0KzFj4cSOzSXXl8y17RhHuesdjUjbd5Vm1huFymrNcJNzEadPtoLBRQuudVrHnDKqLb0BenJuGR47Iqxugppq+B7JnPRVkj9nBMHi8VvaILS8jugGym5ePWY7QSxcBegia+W7kk3iBpfnTbJFrKNlYdejM4muRhFnBB8vNlrpvqHDr6pdzx/nZGRYPTy/rd8Xynou5xJ6uB7SrEySRYaB2DcOA1PkN+5e6s4bfVjp7kO+XOJfaKkol12MhTFqcRA61Q40v9CTVjFl5xWHxCjiRljSB6aqS9BHVwDyPEx2dQiw9RhrVPQxZaINZY58DGRBmzgiE0o3ymkDv90CfIFEJ54XPRoy3iBFyLXQrTNyOLDQFs+VTiAYxZME2PNNo4VCPkk2ISyDY1NjSRstMLHH1pmc0jdYyFMouNzinkip8XANRSH1HmCNdWb3F6ZyRs3w/A9Nf1D16jFaNV8NByKf3MirlEtofLHEs2aCbDDg04ZPaTWkYpI+8KSfNecVYSVdZ2p/Y4kZcA4z1TQls5FK4uDVl6Unkk28eLxOgjmywdD/bkxofavQYlCRA9tC1f+SlTQRTovJj2jG6SSr4fuQrHCp2+gx6mKuU1nG6fXq4lo6r5m0Q/hGax7jyOkrynLnabpAaL/ck98PVFDZNxWX/gq6uVKMNm+gvqx/fCcPnS8Z/+ovRzcu/OSL8kixk3LVmN7aHRDx2M3ys4x+3f20SJf5GCukj9yVNNN0dlWPg6pLnIYg7DLUE43sFcabEY2S14NJ1asyqugmnIzDQ0DkN0zu+qnlnzeC1FE1/dqtIVHQXYSzaAbhgo1Us2PuX6eq+JH1qgf0kkWsVL74hAlmygdCQ9U0NE2kU6r0IH1je1rSKLmv1ZmJvgYAjiafyptUXqc60WsLow4l949vMTZoeHNS0RIrTOowkp1yMGX4hKnrW7wCti8ctb+k6ZsoFA4+pNwk30cvyrqGHuT1NDxkpqs0qFtU/kEyRzY0Du0LH0snjqMrje81Q8uJGkc2bLE41SQzfB4Bv/qicZcmXLvlRXVajWOgi67hgQZV5aKIosQh8HqR0TQqKYdovUs0DH3LSFKHnTfkLpp6TnxYkDoHM31khYyji9br1ezUBd1aUXN8VAuHPiZr8iq2g1lnLNNHi31F/j/pugWHJToUcSRZpULFUUEHwZq0liZc5MrCTqgx+33I4w9/7Xe4c5JVczNiEG8SjRpsk2QRTkGzZpwXQiqduSe/itK/2kDiK0u9bDjoMV/ouUmLVlmm+c3l07HQ8FpevMmmJn3SjfDzpWS1ePMdL2WIBY5LycPp+OXXvptskLVV9eizcTlVKPYWs5ptJDxvyJF7GSbqVTvc81Veq2D6xp9TJ00Y9WMsOGbw6ijZYPJQ9eHHEU2k2Vl0r0WKg+H9NGrETUzPitNpCuYVleqzV6i9WsEvmvpyGQ5lte5KnU+kp03l0XixUEw4tOmB5OH0rJzdFpqLbWNlrrOO5z60WFoQx7NpI4UvNMR7OJ0i/6nxfTRVi0EGoU81FZmqrezzURlHRJ98z/cqCykZGUFJmd1a0TaJo8irL5uOfZRIgQnUopm1T++I03Kx2VUW+94q8ExLTjanetBetN9HQrVmvq5HzZ/eJh5vov2J8QKv8a9Kocjmrx3Me2CsqPHYZkoQHyYhKdV8Zrw+c6LiYhWvFlDh6tNNJvgxTV2dkafCS9yOL6NQrPsLAtodOeixCqMVpmzVYVm9FmiIZXXrCQnuXj9SYGMWmd0VYlZJVnI42w0zjkdJwqQEXNV+lu9prf3oqTJH7WpEw9Fe9kwSjhs2s0NmJzBimza0UpNea1dEbra2fSq7OB4NodpbR5A6ZL1qls1awHjq+kdbIwq0pMzY2HYXKRutxPJGTkFateQRejPZemjEXwnCuUqNQSTiZL/LXoq0lB+XwtCzTzqVRbZoOZU4ZiGnKJGKrHaLBXH0jVWr5JF5CC8NmzwMLeIjsa+DHmLGR5fMUSTaU+VYf7UBsHCxr2jZ6KPVrNXY6Fg0or51XPSkzNpCIIZtfszSbdWqUkHedFtCGT8ZGV9fMVNnA2KLfNefJn2oWUZqeLhYdJj5SPouRG5daJc7RcA1npGvobJ2sG8OEkZWwC+c0iUG2e0YDQZrGqtImrEH3+NpK9DSRTawbgooGqtQKzBj6F2akLS9SzTeQBZisjNOuAcQnmozDRKd5oxJW+WUZ9XJuaRL3vIIDsPhSSOrGgoBs6dI6OZegypFjRVEeN1dnYRO0X0Dji6kkc2PjaBbUkPCNu8GD09NtJoJqowSTYy5p6spElW4cKQfoaJhZo0Pjw2eMavCQmMlz6uSEehWMwkXYyIwhHIo9RgcQsxO7JvsJn/fS0k9tFpAi81a2WksUTSoQiFOKMdS6HhsZLsq5cEsUvRTawjpt4mGI7ogQhCHzzFfLylz2Jw9b5sZK+a0otZeJjhwF5uggpvKsPW/kvuJPlF7Wrs41Ry3nNZdZ0Y3msIXaVZjnvizTxpX5t4b61UnaSOptRwcpw8Qhc5c6THbeSEUvrKOJJs2hItF6jiWNVojYqH60uW2H0rSje0YutIsIvWg1/q1AmCQZl6B2aRstAD4hNYdbJQja5wwm6CWPF57FzdC3oxpOQ0kbLGwwHFv+UEm5mD+24bki5ZhIzVf6aaO6XsqEYbLK8VtNkxKC9N0Tyb6ziVdjJ0zYjCQOFJ3lkJ+eq1tavYhZlqxO95G+Tk0ZxxzFrkxUXprQrEXqM1Y8KDh5HpSokduXkvNpCKUq3r3Q7EWIRRCCL0uNeIMVXq8AvuaYi94LxawuQNrRQ0TmJMLXO9wFrdT6mdF5H2ksRLW/vioMJNvILmH+bNn0rE2oLRKyMai2VYVmY3tMNBtaOhL3C1C8IWDWHgQn/HCL8z++IuWjaSL1zuR+5a6S6yWLSKtcl0mL0m0YmYulxclR7G6KzCWrkSV0jVFG6jM9m9wxGn1GiwSTUklfvYiPQ4zNDLJS0l/D13ONW81GZuIMRqseQnz6iWmK0HNsUzPfxj7x+9PRseEkpL9QkoujPnNolq6mEos0dat8TVsHJ8mnImzXMdpy5vIHGJumqUX9lQXj0njqSK/y8Qc3TYz8udG9XE/Jb71YcAu5H+JGqXBF99785Knx7QFLTVfZoWKDg8b1nZvkxOrVFhoCwlFZsNfzM2imtyGP8Ev0WJAL89YK8rFSDUKMU21iwfY+U15SSWrUA8wtu5zNyNzhAqyZVjphI/TzvY0QLdDxnVBF50XIhk4uvTaTJbGRRiRAi68VD495YzVatNhMKECwV4piJuRSL1vY7A/FPW18WbKzEWVEgsbD2hsWP3MMJ6r63eFXeCObO58l0CX2sMT1pQmKUiEVtgvCa9N4Be1q3SSpSrRHjqfMTl2lToa8LBKWNfReVzNjqQS5rScv6TM3INI1jX17Eiyqa/KYjac+nxlEl2Mikr3yixxHXix3DUPrNtoHwRte1pyC/qVqauhJKVbo/TV4JcDMaLoLxwbXqapvMGPYyTOmHpfewaS0oqm2kHARSkKimYqaLytvucNLVm83+LSCmEM42cdDUkSSbofC2Vepb1KVlC2g8E2otrMOMRKvq0SASIvj/kk3RwrLythJ7UBvHlI3QWs/VD47/f4216J/uUg1mtDZi1lg8d3wPNRWYlc2dmwrKjrSHpmHonTfEodllPErUqjFe+tyZjkfq5FK/aAZB6bNTLTpIkkrobCXKsNuZZ30jFjIIMEq1SKHlEDYMVm6rOJuyWRqrRHZxuibEoHwmTmDixyDvBjrjRawtOiHpP90O+C9WascG5+QGjl6C8ITdHMlVF8kdXQpSNgxVlUmD6NY6Sy6gwdossUQH51LKzNGYsLSBRfVJ8j9yNDY2DTTc4Wo8xEPqLEIQaVOS7iLrfMWOupKN8gUtQOm4ZhYyiVbMGGk2XWTWbjs52kiXbUjd3moRqtAOWjakZqnlAxOWybQ40a+uVaSe6NUMToI4uQoiJNsb0tIi6cqxcpoU+JqeR+6rQa/0SxY2B8CaxT9Jcv/LrcIHdaHDk76ut8kTZseWOKTjYrjCLG0NOiSuNnyY7Zq0HcupxhN5iz4ev+iP2jyiUVMFRuYMR6sZav203y+tVhLKE26PgmMioM+bo7dU24UxqtJRaY2caa+SHVGhWTsy0TuaXdeUGaseRRPjT+5SKMLZeR0qo+ORxejpKm/zagipRH6WBwdJf/ILs1M6i832ClWqb+R+0QXEPWRawV+DPqLpFAxVwg2C67gD2OSDUjpPUOrmPN9MmrP9yaPSrE2eJOeqweUOkiWuzUGd9L+kim81pfzYhxY3Q9tJEXXeQSLy3ci8XvJibjlalWYM/TZqxSX8LI5vImItqHaaiiia3wRdt885FVGbhJIvHujlnPlFsHGK1S33loGqojH3SKiJdtX0SmqJyUtozzvNwCuN0rVXGdBf3+EvovETT4fWiDt7HRqOqu8lzVfcpB4MjORxNadaX1qTuRlwybohd0DTKNqNDv6skEZBQ0x8Vq2mj5gpPI/conQXbVoMFn+RaGJNcUXjJt9ygmi+khGy6TMGtq0GNyVRhOhuZOuEFwrxIu6a2lYUtcuRRVHNMQZQ1WaccXOZpI5uukYaS1aYWJp7w0crRBldjs80ufJJFwiiYbaIRBEp5HUxw/VzHizgsORfSSDCSbr8x7gMRzUjJoXY4iPbdHHw+My0US9b2sI42+B04n5mTDW8QHXDEGxo6FwGuWi81skk3IHxY6rL55Eo28JGQXO0Ef4gVeLN6teaI4tII0HRENrtI4i8wQzCv90lSReZsgCSEEsO5KkHRXMLtIaQpWc651QXlljoIWT41HHJvhWc514Lei+Dc0jpt/40u0kldrBfKlEt8Fh30F5Xm+0QvHqRyOnUSe8KlyboRGE2zqBYuc0npiDHh0WMrSQV7LRTX1Z/JJsdDuT6VEX9QYiuIDLotK1akl9yeikqbHJJvBRS6qwPLdUArIuhZN4m0wv2sJ5VHS8D0oSVaIcmxciRJEvFiMWKNxuREbYI5vB1qViLopjVUbo4VqI0iaUajMGVNNyK29WFuJZvjZ5ekrKYqaibPCEnBlsOm1llKrG4o0lm0hENK1nWegV9ZGlzOkvP9mtUqHxF8bG6p/seYGyM6YbjzTFT5tKi3VnzcjRObcJB45GKTDpeii8NzBAq2iFRFVNy7OTQOVXNrPGj0s1ouZ5kvMyu8aIl/U1yyWLj8UviV3IdDRyOGT0cppL1Oi8HQ2uNKzqbZok/ej2zNohLFQ9RqKxpKNy9VeBtb4fJNwEki0REuVUXTY8gLOqats+DEzYaCwVqwcxxIuziYQS46pNoFBY18tj6S9aq0WFrg3TVSQfJHS7TWUOVW20gxH+dq0SjkS8f3K950JH8k99Lm98+SSLkBgnV2opjbCKulYK4kG1Ucv3TnF6qbRA/IGnTJyKCyKYm4YccqMvi4FKSKvtMMj/KP/QRRgvGXNohYd1e+ryjYVmrcEhRm6TBop6M/e6Gjjn0chF9o8iXUsewuCDRp3C5lSY8JX3NOLoXK0urSkWTDZSny0Sr1F6xzZED3AbeKVZcBByKtNuBU6j5yxHC/oVqvuMJvhLH/DzmXDEJVRUi1jxA1uhx6/Jicg66Hi2p6SG5I60ZJzD4UuXCZdRh6Vr8GYbe53VSXpJKvNMHVYkLCNFF6DV6CJfs9c6tR1Es2iO8v7Giv0mozo+gxNmy2LRbFrbhTWRy/vBlr4s2KL1e+RLxaDmrRNndcTV6rjVeHkB2Ho6aI4vmyiqjNwijYTMFyJtVgg5OqV9WosahWhve546Y9kB4nzUkeJHL0KxS1BBdamGlTZZptccvX1WgKgxEXiPh43dWs2Zqzsuaul9GHxM2gDcJ5XKJ5UnNQY+mzh0+H1k4i0T0jC7kO2c2IOFaH1GJU0XI+gqbnTdINMIWsNc2lQ1k0zWK1Vm87qwpJJ7RhI1Wl2tPjJsPdKUaTHuTjKVoo1edhk2N1ND4LxcPNL1fndWrxZc1XpNK90y5ratEmNatSNpCsn40I/kk2immY5LNyNIG1qgYVdJBY02jTkkYfBepvzx2NFXBsF4sLD0jlZdON5lvm8gkaXrReR5irWQJBZ9O6H0GKc60T1l+6iSvctHS9WFhDNakaaNSRV7wWr5mryni0Abhk+sdRYSTqM9WLmTTnwb9N9FH2IQbniF/DUolRF7NHaMNtGUrgOT++GyU8UXrNuOhSv82jnF5mbRSEjVUjxvxFGErROYlBebhINZLoTYyaI0HonsJv76VbdBauFTvMWany/YS9l9zTktz1iJcEc3yjdT1qMJIqwVwlyrCTHEjmXiwqmsjh4RxNGZtY2Gkq14q0lBui8umx4Wj8m1Bqgk8GIpbb54al5llwmIqV+ddFio7O+5MihaG9EtXR4rMQySKLniREv6tQWiufUIiRycGGnE2CB7lZVWPpojm0cNmxql/I22iVSFIzMJQWXJiexi7wXJpl3Lm2iwaGofQ4MfZMVk1y9JFJGiKbWIufGilN7wtYnTzWOkjZfFxSZ/rJRoMrtE7RcqSOqxPJJseAvhyDfkuVgjPbVtSWc+kc64QyasWKgHuF65ROQSbqMqLpdjotWc+YPcR1NyGDWq17TCqw2ae0ol+Xic6qugbNT6NWsl9nCbHKmnOuQrTI75o8j+PbosZIFPSs6CT3xG3Q+bFIJ5Ieeaa4cmDLZdNtFTdCrmEktsQgspUqktxHNtByRHUnt454Vjc7tuce35FKWNJHXmRL40lpJItobiUVL0NUy+ZnvizjljNZE6dN4a6MCB7YGpNcY1ZZDQZqrgeNNjG+bTAlXN+5yloCw9J8ilzNBnt0XDlmvqbNAlg2kv+0jirGQ7YFh3gbUQMRplTVaLkPT2+0gvITlYXVtCeNyM9EUqomKn3h4bhWG2kwVS+ugS+5CkIpp5vebV8NWWcc2jDiSKtYvYmqd9/Rf6dVyA8UC502sbHuX5JVmuSUelONkjjTeaoOw85ZJV4+JV/sg6f3N0UjEGavpFZp/WS+LELDmqzxh7DZBNqXk4/1Rjye28lvBerOHNL/yrJI6saC8fRHd2oOa+lZe2backXhjfaNCM6dKRCTJHLsTFsNIQgOgtDy4hWK31WNRMd/EjrFRoWmo0ishHORuvhssZBXeic2d31T4s7rNjVU6bSH8dSs5pEzz7KhQEYhmN09NaVY02iPjcqoum4H0+qcNuJJtQPmDKq5SHjEaZuix5cZ+aRzcpORV8sWRe3A6FYjc8TG+lYe3e6H0urLLnzEP7l20Xh21dZYXDbNRep31RccVIl2aL7WIq9TVaIsDpIdg1MgauaMTeNUL+bNNGy8TuRusZW1M2dIbj1ejJ29jK/y/aSLv83Q80+CT3ghhy016A8m00iXotILXIqy0YTZwNS4V6BLVyBLg3pIzDUdB1GP12asqcqk5d0id1Vss8GBEeVFTT5Ipf7NhaUaEm7ki7qR7Vqh8WTBBhiua7ZlvMR3xdEyhepJauKUL03kkWNgvgun85E4RDT4Vqv97GTicqnZl41KlUdVrHBGvRByCEyZmbxslzbfEWkNnSjVDRx25pn3pNi6HTBsWPjwtWbUrEa60F/k9Vjw91w+Z1WFkrSVa+b4qFh6L2jbX0YmdV0Kwly+pQ/vDRQwpotygrHp/x4rOgycu1B4OB58HHUwjnVcnk5fWaz2dx+IxuYQczXXNyIQ3LqamwRMm/KFKy2YI6s00NUaecTUlExXXE2IcPLRegT0URTNjsIaH9pL74kIXAeEYx68bRj/3GDjyXZJJ7RGSiNP8+1AJhR9fgsIN+hWMnQgOsdJht1Ucwl4gVZ0COVY3sWhHDvJPGxExYzStKrvCJKTXtziNnm6aylYlfImz7GgPodpeTugU9VU6pnTvfwamo6UILEjmWaOiLGv6DCRbr44e1Kv16dCXLyIPtGdMPhZLNoju6tWPAeRFkazfyOb6KMF5i8tfp9TbgWxNFPpSt6gwtvuk6gv5gkaIEXKCEF0NVnCUTS+smdXkxyggxYy5OIfJUlXV5bDBSLoLRIM6KWKZ5mJKCCywaVB6i7iVdwcNGCc2PjqGN1P75MiMQZsda4w0lZZpwWGDyWrUIGTNbnu5pfxJ+XaKiisVPvHrpWLbxM7VOKEJtUrWn+8lNK9fvnJF5GE3IiEp0y8RixLTBibGU2SXX7549zFWiwcSfGEgsklgY1eKsMIXAiciXr3ghiRMZhKcLUKMwo28KhqC8tuBI6i9WeEMbnIvKkMETY9DGrgVoQrFOJJuguK2gewamMiKl6aMJrdeBsONL8ln3hI69xMijWamTbBmVtvhwNF/JLHvCQetY0EVyT0lzBsPh8/3AsKUXY4l90ImwXaskq8OAfTdUYbejCsfKCC64DYSGD3EtXmKGGzeEYLunQctuoiLCC68KgvSVqmwSOujx+VYmbEIYCdJ/40lG5iiAQXXjghJF05JHOED2jxVJdmq1guBFNj1p0kZYQXWaNCQvLmEjnCB7yhWC5RxJM2sIwRaqPh5GS8Pkto0XkBHBcqwkLe4cGpgSOJGTeBfBcRg01Is2oIiChA96AWILlWEhW4TDQwT5Iy8CBAl6l8+ORU6uMauZEReHMJG2impBdhLFrBgBbpGozJfKsF6vHjdF1F3h4eMIVZoSAhSi83GnEUzdIEzDiV15rUVaPtIIoX6cMy2Y0XlhaaXcSui8b0S7CWboFsTSi8dafRn73BqFKw2CR03oHZLoErLaJgxGY36kElXQ0tEuPkrl2inzCHJGe+sIwWS/qIoyZhbfelgyr3aiN15o6iXQcSM9wkDCp9CW+8GOTcIE28LkVa7CSrih4uatxJN88MktGOSWvQZl1moiM1WE1kjro5yJdjiRl0TBdiHy6Kfy86rwaE4LuYSOuhp1F2OJGWkEIIiQNO8FtD+YPEGLpQpStNYSVeGi0KzJYkizxoMFo5HO3oiZN4NCkKw0oSeLyBYvUlraKhKMzpf6fStUxd9Mpy7ShKuzRkqaXQLXQbiVejHenwYhlwoTOVlzIJJvSoirTHXIUAhQ87tSN0GWXBAIi9OXeEKhhjrEIN4Q5NeanJIurggEZhy7pAeouxxJNpA4DkG6lj0bmZi6DcoaXdN4opy7G2oFI+IRiZlpmPaIck4Vj3hxxibaDexTxSYQhxugx2zfBtG+qivUB3xYyUccAvPsdCiJEJ3kTiWESJzLwrKGGMAkk3hpQvTbaFXjUG0gFw4s0zLZ94ODpVOZNwNale22gZorOmJOJlN4MTV4OhSXll4bWY9rAyhcPI1jRGwkptmhwWRVlk2iEEaL00lq1g6hNH27vRPoyc33gmBwlD5XoI5vEykl/yRtoB0HiOrmt/Im+bhode4koaXklq5IQS4aIv62RMGfNmmi3q/3CJQ1WJvnC1qOSyi5MxOXaJMsOq9O4UYbTzV2keLUS4rqdRlogzeC4fMOJfeH0DCEWmUDlGKNSIV1Bed97wLDjBUYe6DQ8wfeCEPNrSmoxONBj+LoFhup6LWcjr3k1mJsLRKsLJfSxtHq/fOtbERkvCyT2O44dsLNCxmIiUJfReW2dVGmIvHDN4fPn6B2c0j91ppWqvSaYizaHI++YdSJFN6Di8Tb6tIsccM1SC1DYLxE0INXktBjkkWOrrl/eDtp+iMssRfL1XnY0vLboRI0+obawTPGi6BCljTEDfuipxhbiSbljZVhtogn0/4g4mK5ozyntErFKmr5JFmnNi8CfIJUrmrH9JicU9w5IvQwXehG1gnmtVawq+jKHtF0UrS6JIuJtIPmNBp3HSaZtUXjL4gTbetJWkOSTZsVBf2Og2DjdOpBsR1a3m8FiFGHXA74t2DBOtJq5l8mF3gsQovyVlmjyU3iYX5GKzdOgxGbaJNnLtJZ9yK2yXXfhkeMcDYocRRvaIlCDy6lEvvBwpBdCLNcmcjFDIt/OkxS5uQhMlWXWkQjvVo+xkWj8dUgrmkS5s5iIhVl1pJy1VFdyDckbVbp5KCKblJOS7SWavjJ6JeLaFGVyjpOb8aYk+4d4V95hxc33AO+Of8Nj/3MxotEJeguh7kLMaXbdAmXJArvlhYjnRaJWO+Mx1mrMtvA5KJQ+FlZ8vqnzqtHyi+tLiSLyzaL+L4OTtWNeQURQsQfaONpWpdeQMQ2LSBvcj8asLC38GKOkQHXxDKtSt1wc0w5dwDsHU1JppQtBeN7nD0qmoOvL5hy7GgdhZUmmtJunxZ3SRV63XhnwXbNnBTHtJpqWHtzEVeQWkYdF7+LwOSnOjceHjq0mKuiZxeHOvJcxN8ExjpikhU7eS86GiBF0NLNLudeRSovNyCfSmHmpKcipbrjytWe6iT3pSRLxbgUAbTGo49J8GOg6x0VKGqnHXjzFWmAakEtqg2UkDo5hJjrosKzE2iFghL1FrBQB59PaGw1pL1Mk9F4qWLo6bx5xeYs8DILZF6bRppxFV4VOL1pvAScF6s0DIPzcaj1mmKemIMXJbl/pJKvH6FTbkDGKKzTTUdReJ+q8KpMeST3hD7NBMDakxB2jkVVaJU9F8I6CRt5bTVYvB0NpvjMn8xT5vOWXlAl8iBV6kzHvcopkcOiQ9GjMaLSHm+nyU5I6blMeku68JBMlvSQ4rBlP3MfqtX5Iy3uBUPwrChLEXImBdp/4jO9ai9N90EESIvptErvcEIbwrLvfBYCLvUyUZOkz6uRsTQXbfIQmwqa1pJ74XhERGUfRRCvFGGtuThKMqwpeIQ8oxBI0QZsQjYQjUXnDR66MRDW3FDhhvJaugmA30rHYBJF2uByTYqFn6jP3q3jl4fDylaTgkaIM3iw2FiLxlaGNRjRombNTKHKm8li0oDhNVN7SNwgzaIdDSKOORlhHQQMXxWIi9KErKuQWB/UqUkkcIM2oG4YROjnM3MRotorBYMddEbPayZWC5+kj98G0MDh2OaeySOLggEco6jZJWe8NFqhX0Se4BwC+J0ZJDG3AcsNgvyRd0UcXoYe6ByCEbKqLNVUrT4vi0oXpDcjm8InUX5L74fFMbWQWf+RxeDhaKp4kGE3Qk5f+1hOyn0cQzoMzYhIHIlyl8RoF60kkzeIGT96CweIzpq5IEZV7HEk6rSHEEnw9hKu5DkR6tPNc+jHZ7xCtFWluI6Z7gAppxqsjDxcNHGvRpCORc7RdFpLrQuAuNlWvRJ76RPIxEiQ6iKZXeICpqskySHMvAss8P+kl9ymUqdGKSvwRLvA1lUVaQdJIyhj7gSiI19G6SVt0KiZ0G5E8a0GeuL4qK0qb4I+z3JQam+CTEZ0P54jmoMrEGboqKi9coSus0IJ5eNyWLRBxEct6pOdKsPQEGb486oVUYS+4JnGJ9yDjNR8tp+rmVtECLyZWqVcMOIE3DEILz7UCcKhS+lj9TuXiZtI7pxoSbRLVmmnjKsHXKgt47kcQqaNzLLkLpMUS+8GkwqaubYoodzcmPRyLpMtYXiJWktJLNjrlFYmbGxayXyi1fIoba0BEtWfJLF/qIl5tYJNhtRWN1VoVmas1JcRom0ckXqbHQbToS3hBO8nJiKuty8Lvi1f1fG0boMeb/n29Iwsl9j49I+Cvqw9jiKZtJkjtKqEs3PxqqI2S+zRIhoek6fuYqm2aNowXbF8NJ0Ks8WsoTEMF/VGYr2aFhmrRUOgvLrQ7DfPg5tGkUWMnY28PnGFus5yBytLfBn3EXAaHUXn2koxGtWmVYujbhs1amY059DebMmfN9c9WpuUtCsXgglMpOOKaPuYpj/dDZ8VqzLoe+lWrPkajG6qx276L/3kjjHvI+2wNxzZNbMPp/0ReHTjHvVV/E9SNU7RUyYm9UmG3Zw2cjq8u+NVlWS/t5pht6r5OpjVTnzuYm9BlS8jeG60U9Qil8q+9BlQYTeRvnrpe7Uo00rT1zemDDRhN5GrHRxD6IN879WdMxdHzRfjCbzUYtID2FiURqb3xBeOrFok1ol+S+LyiUF6sUhHJpI6cPqT5MQmr7RAPc8x+SOuB9piraEhA2eac5OomH+smrN0OLMfkjrgsmYq8CANRNSePpkiV0F0FzeStvFkrHgYEjoo1Ie8l6ne6EjS8JErbwqMVZoMA9zfjh+fRn+8I3GOSuvD8l6tYE0EvG97l7yrWr3hI4xyVt5y7oEEHCTTXtZD4MVeHFDHJW3nHXIMIcnetTWaZfGnLi4C9QxxhN4fOtAIgTTo3lQR46Pp3yDLgSKQXoYMvOkxXtImCVXM6Whd0X0+Mey4ESZmSVggRdKTReqvhYDeforIiTGvlXriLgmkXqZJWXhTJj1Zw2HlRO8lKRV8vXcMSguewlm82TH9ncPMaiiaeU0nK/TePUguthLN5JZj3JUPOj4yDNMSr9WiLy3GJZe595wuLnLZReK09WLo8fovDLhqFowE5FdeczR++DFe6G3Il5YSzZoaIRY6eHcHT0URFjap8KxeBYDSi8sJZvD6FwwPOCvX0k8beEahiWXg1EJn2MlBd3pflDTjNVeC5MxDCSrw+cY/ugvDpLoovEkSY/lt4L/ReWEnvBLgw11hoGAuNRo7HDmjdWvPvCb0XhhJ7gVomGuuQPgufGN4mRI59Xgwoyy8Qcw118F0PMjComfCtPX7wLZEy8Q8w11rBbDmkdWOE0cvD57+SxcgeUZLwTtEVo0Xa6zQuDhGqRRQCHoIp76s0FjyXOKWi7Il2uvBcDWjU6hoTEvECLw3y9LKXlDTDXXhwf70USYRPki9aroRGl6QKXh4y11ogSqNJKiQTEa9xAm8JDzDCl4f5hR1rCIuToxpMRaorQ+bNKLNLrZdO9F21ZwRHo74bZRtXAWrgvLLRTRov74RSml/G2V5LxcDR5iV3kqov7OCKELVo5QnX8Kxof7yCBiZvI1dBGCEsGo2qEhTG9WZy97y0DEru0wXQvw7VSUJkjLwHhAxM3ouROOLR0yeTnkR630SxelZmb03wiIQkjpmZRoygIM3jZgv7x0WgEPNN0y3kUZYgsvRBht5Zn20IWEJ30pt3MRM3oMtvLM+zQwTRORpFzZMR7xplt45Ex7oMUhSCvEYVJ5Hvi9MGG3BvMe3AvNl8jpZpiH17RXNF6vIpQX9mhkki+so0ka28eszN7pGPZwIAdf8a1Kqgy1t46TS8svVzDbkMR5aJs0Xgx823owrEsvRqLttYncbEN+nQY76uu0xDL0yYSq6Ejlgr70ufPM1eSTMsvDJxj3BN0HRus6EVZiLzUzM3hlZir6BU3HRhukTSKLhNper0nGPcmjx9GyizVqoxCs3lOYi8MjJj2icmb96ZySLyhmLx0mKvnN3+7GvlXvm8oZm8MmmKvxzTZ0jamkxWmryd6Ys6UGxWag6H8vF0Om0Yq9EQXqxSwbSRmUZFU0R+bRg5FWs4k9wDSRTcsQiZR0liX3jTjFOJPeRIpvnLfEanRJitFvNMd1vgzN4aX381o/p3LwuLyJlriWLfBiJs5CvGiO7GmefFw2oL9xLN400zFxjRmqjQ5ExWpC8PaDHJYujoq8kcabONPH3oyYQvD5pn3jjNWamyJ6POH4fL4ehWm8GpxiG3l1azWNX60j+iTK/ecsy28tExVyaUHd/uPzBEv3gLxAy28ciYqzViNHJUi1SN1Zev3gLxAy28vmKvrEh+N3SUVgwh7zkDEe8dzHtY0F2U3lF2Rqd9GQ6sXnDRifelIx7iQWDX1WboLzVL94fGjE+9KRirlMSQk/tbEkS/eKoGavT7Topgaoe6pIoX7pyFXjfcZiKsBp9OlX0h7pNBEv7jeLxo3UaJKndGjFM91zzClwDTzE3MobonYVnSRsq95Lw69zK7R0w804WH6vRhnvDtGCt7mmF2Ok0ksdhkWjSJGheHeYKksXvJhC8dErg2hWz+Va1IXqRou6SSb3kwu5w1QK+nBqUrU+VWUIEXp1F1GEkXuZmzT0DcdjRSF33Ms946THZe9jp65Sr0KRK86n97G3lnGOwkm69rUOkGl5yY4/mIY65earHYSTerUYqxktB05JqRSZ0q+UG2a3wXay9EGIuQSY3PfSjCRbbNHtBds3pMxaQck5O+48hMUZX7zpMJRemrOICikxjXToL1pXeDRZht4FfmItMfKGopRQ/5VhWJvAkkDDb1eC831CiRtY4VqaqL/N90kfRdTknuPzB03BokRqq4qU1GKzmxdIrou7knvdExMWkwSNiMaWcRyVddQeYU5I28lzEzeC4IeRnNHx6tVPj8s7ReGTzCnJG3m8xM2kUCLLZyLfVGKpzr0oF6aS1eakYi0igLjUTdJ28Iqy9rqvHMMe81t4TAup6Ypc7xT4fTry2GPeSbdDgomjZo9CNNPpX3jhsx7w626EgLyNREhYsjhbbxwiMVeHU7mRQdJ2kagkQ9xJS91LOUCNMehk82q1Rq0r74uAaSkXqTovV4hCIdpet5pj5dXCZOLxrauRYC3v9K26iJfvBoN3pStMJol0aDUE8iRLulCZiL0tMVaw6C+jjdIiU8Q+O8+6UJmJvS0x7wdCbdFFEopWilfjryhMwdelphKLoXBDSSOxokU5FC97wF4NmF3paYbFpC4Tan0JW40iQuh4bMIXpaYbcBwGBsG5EMGo5F9KsvKEzCF6EzCloi0FvIqiVKZMVDNV5QmYQvQmYUtENwJX0qF7akx8yryhMwgSxb0zClmhsEWt9IkboovWJ3lBswcSrt7TCd0VCIju8bTnSZJ3TWAqWW9phtnlgXKHdByDVYVmGXuwFSy3pGG3xWEM+p0jSepWHwT4gTcNGoL/ki7xvMe5Fo51aQTgxOoo0QJuB4+AgV3jjPsdCaJT/phBsomeI3CAyzR9YKld5cmKs0PBxGdzmN8kQkcIE3BVYKlnvLgxV8KAjSRpGT/D4VjFHCAy8VWCpXV4DwbeCcU/09aUQZ5N0DGbxVYKmavHXAcFMO1Kzq8RD+9jrhwhvTfIRJq3S1GYjrbeHl1eN0XQbFPEGmmvN763y23k12+ovJk41atESX71+80+9XMVax0SeciMq1vFKz7hJd1XqLAeJztfH2Q3dZ1H6xICuMoKSZJPZzU1aCp4zKxZoIoHpt1FAdxXZWjOiriUVRGUWRIoilqRZHgcvd9Arj3Anjf+wGuKGolyxRM0zYjJxbiURTWdTWoR/WwrqpBVI/LcR0X9TgOmyoKmroJoy/3dy6A994uKcfOJNP84Udy9z084J5zz8fv/M55eHz/gaf3PWuc3/34xplPXfjhB28//oVVzg/+5K++tvilK5e0+M+XHvv+M4bx5fHHd5x929OvvPOpf/ubp0/GH/5kfJiN+r7XXF1d7fmbo4P8d53bfnX/Pb9x3117H3kuueWTP3T9l974mYWrb9oRf+zDb37TTY92rB/4/F/2e+HS3U+wn84a2XvefE7fvelk3/y096T3pVc+dW7RMS++8NYb9x9+LPB58/3Hv7zTuXjDyltuereWbb77p5/znvlvH33X9/3JzvSTp09/4uQj8fooGIx9X4SjtWAwWPX5eufue+49cOeCdcsTZ772S4/+1MtvuOG39l9deD93489fu/PmJ/293/z5P709/LUvPPiHP3joqa999qC2e/HWMzvVH3z42fjgs8/3P/611pvDJfsf3P4fPv7Jj/Jfec/P/eIPXV8oeTJM/vnvXfP+t56647qPnbr+3d9S0lO/+YmPPfjoQydWhoORz8eBWB32+Yrnt+3u/fftu//eWz5wcvnCO678/f/xSDH2ru0r6+/89I+/+13n9kbZU/rpWxvqjovmj9uLn/3Miwv6wnF9+MLShY0//3r65OY3b3nyuS88mtvF4skrnr/+6eONn/7m05/fcd0XGjtf+ZHWFcO3v6T8n9eufvuPPXXqo78Tb25uRGuT4SqbhPDB0A+5H7SbHXvhvvZdv3LbGXGxx/79vzz1jHbmJ/buz/e99uePvCkprjunXb1YvPfgs1fe/FrLePK6i6e/+Ow3nvv62Tdd3Xp25a4T73vf7UsrT1rvUV5qtfLT9lf4WS8zDu2++WvFf/7tr7/wTOfrpzc//ZVrn3zbEx/92BMPHd88fmy8Nu6NnVXu+Rs9xn2/211c3H94+cCd5sl3XPvVf/XivXe98Knnnj4bX3fhm8+++cmD3/j0Z25O4uzrz7Q+d+Pm5ubx31KyLz7ZSo6ffJOq7+fOeO2ORmup8Z4bl1bs07ny7q++/doFY/MnWrfuXLnthPL83q8d+uO35vaN//UfPRV/NHlsY3392MZ4VQzDwO33h0EvCB2nu7h88MgH7dtve23zzJr66af6X1w4/9nd73px9yuPepsvvq946027iheytxjp8189/+SJk49s3rFviUdffsdNtx7i/eORY1t79x289ZbblFcuXnjq7DdeusP84l1fXlv6fMu57T2p5UQnP3XHDX//zt89GZ/5yIOjyfGNtZ6IeNBfZx0+ggNanc79S0v777xn4Tnn85/7zN4//vo1b93/yJfe9Er24s3GBc3fubD/XS/e6h988sc+/eSZ06eO98eLBxb8cGPXgUMrG3AnP7D/wP73v/e9e5/pvPv5z7yj+Pzp/uNn4pW14x9v3WX7PByf2LjtyvjOx+NTH4qPDTailcmgt84GYtR3+dAbuE63e6Rz35FfWzoi7rz6c5veoc6C03EajT0L1918u2MvHdy397abvvq1fvb03uT0cccbjpew/3C3N1wbcsfh/fFwyXrfHvPa2/cNP/7Z9+5+Jnnk1KPRcCXaHPveyngYhrzzy7ed/sgnHn54fTJZOzEYD1Z7/Z67znnARW+53XPbywvukcNH/nWQx6v9IAz90OGCHbn7xrfvevueg41Oo3/Dic7N+hUba6Hnt+yW0/nUe1967w3JXXZ/LbRb0MK+63b95h/++DVW9rnHHz0e9fvjEyfPxKthrxey4Eu/8qP/7vHHHtmMEHuT1V5vEvb6LBjjTZ91XTFy/c5S67B94OZ3/cUjP4Ww6A9CbKovnPbykX13vP+mq3/+F15MT572lyhfhuPhgYPPvPLFlRNvvLqB/O22lo9+cMHWT43estzxfv1NP/Ph939AsJXo2Nr6cBB9619841f3vfP5Uyc/dvLhzQdXVo4NVgMeDIKw3R9ELAh7YtQOesJdunfh4IL163f/kx++86X/+ds/6o2PRcdWV45tvmp9Q7n5+I3Ne3/9vX/4S6tLTccVIuSH1OTUqf9+zavsIS44E/y2n03+058ssk7LEaNBv3P9n77wVuVn2Je+9V9+5Ad/P+yPxuOHTn3ooY2HHj6+cuL4+KP87oYH+StDMZqsbTQX2XBp4fDR+++8Z/n++/cvsQG/7o/ftv9t2sNv+IPfe/Wf/q/+Kg+6sO+BQ3+0/9eOjO89aB9tdLz2cvOPFsKxH6xr62/5N//7mt6K7zrtMHTdttftHD3c6Xa6zO0Ettvrj4R/7EOra+vHHxxtrB+PILIXCBYOR3wchaMjS8v3LDacxcOH7APdo4usvzb2gvUTj0zWVsfHVzdPbBxbGzlue+nIHfcf/I1z//BnrvrF5++2j8IQv/ybj+7fs/rOw88Nw/H4+Po4aAR+0HGWlpba9r2sc+Rop9tedpygK4LRyjpWW1sbTo6vr594cLgW9t1uwEYrwl72W0fsxbbbXLq/0T561OGDYW+CJH1gPHlg9cTk4QcfXjm2Ohy2Fu+7b/9d99x6tx38SPD7R54YW+aa5womVnr98cZofTKaDAcd4bDWQqPRsJuN5SNLR5edZrvtOUx4K5PJBG6YbKz0V6PVtRPRevuIw0cjcWip2UT6tVsNr9N0lvm4Axeura9Gg9HaCTw21h9Ye+yxB8atlnnkA3d94DcWlhYX7dZ9S12/+Qm33R0M14NgvOavTDbWB26rOxDssG0fhjd5Y7F9lC02A8Zd1+0jpdaGvdFkNZz0Bg+Go/6AOcL3226n63Za3RZ+O067P2K8HQ7G0dpoOFz78Np6FD340AMP/M5vRXevfFD/4MFDdy4sLh5cPLx01Ou4H3IZ609GTq8/PNbfWBkPHP+BxmTRXlhYWDxsu4dbHbfb6niB1+05vSYb9PloZSSGvXASBgN/5A76jnBdx3PdrtsWbrM76CIThrw/6D0kVsXG2kOj4WASnYrdwRMfOXHw9l/8YKtxeP8h+6B9CADgeQ+g3Au/77AxMC04tvnJh/m66/B/drN9d+t++3CjhU25XqcnlltuECLp2GAQ9EU4FqHohWHIROgJgQBhXiPkbcEYFeWJFyIyg9VgdeNBdzJc33zs8Y3OyfxT73vHL3yg1Txw14K93F7yF494/GE+cLBC6AGDVlb4qaf/44ee+8Sbf/YXbvzAkeXl5pLtdRtLy40+ELbVCsZO3+0xNvJ7oUDd9eEPN4TuzA885vXbfs/hHW8QrE4aA8aGww24auIfWx+dOP6RzU9c+4cHr3z5hkZz8Yh932K322b3H+r2jndDoGGTe6sPjHpCRMkT4b7lpYX7mvuO2kvNRrvjNJeOdlqB12cddwDGw9lYcN4PBB+6YgDDDNsAYIIfwcWAu6TARmvY7/q9XtQbrg9ODAe8/9iJyZnn/2zt+p+83lpstJAibqfpLd/f7o1EOxTYQm91KFaXvWMnVpcPdxsi9Bfa7SNLza7TaDacVstzV5ZCiO0ywB7z3XDo8B4qT5evDpZF4PQdjn2EvjsQ3RFe8h5HBI790ai/stIbtB6MVk4//kB06JYP7rcPe7y16C632+1O25+0G8xnQ3C5ITDeH4Rh0wsDv8GXFpe6DW9p2bHbE68TOL5PdnY4JCDgVl0fh6CJ32ecC0fgV4gtI0LGbVjJw+4ReMOw2++vj1fEaGW4OR4GR+3W0pEO7zaXu23RdrjXHS0htV1/cqzRD9nAHwSi1+oh6BqdztG2Nz6y5NjdEQ+bYcfhMH7HGyLMBILW9XseoXhzwINe1+d9x2f90Bl5orfe7AZhPwwoTkJ3JNaGwXg18Cc94S954eFOkx/sNr2B5yFanW7g9JzAGQxbo4HDAhjV8QDNw+7BdnOVLfNuu7N6pOe21hp2D47vDll/5Dhup+cFQ9pxi/cY6qwfwPhszUEkIxx8tsKDyfJ44rvjtVa4jmTxBz4ipMdsV3TtJc8HacNWPUo/Fri87/lI5B4LmdPvIplZ5+giX7X5KoJv1D/qNXsb+3wsMmwcGbLRoOf7HjIelwYD1+tCD2c4cPqjo5AfrgSOuzJYYnx90mW90YP3oMSMgk4wcUTH9zzecFlrDLQceNxddTj9Cbo+C7ANzuFOB8AwPNxprw8Wh0udsBG6SLy2i5xzJvwITMr7LOyEYafrBbRsY9C/xx+BcPBA+M6oB3v2PLfxANoDDis9cLTVC4aMI3lhm57oHp00gvaEdwK34a258GrAO9z1nK7jC1cA0REXfps3eysIQOS+46z2u6PGqD/qN5rM6wy9EfLMY91OG/Wn7Q9RgQ77KNGDodfjbiBcv98WgxVkCAuG7prT5Z7w+h2vK/pipYmQbPTacH/TFeOmHwjBBsPlLnMYzgKGTjxkFIIa1dXh7U6viZ+TkCPjgPeBGI6ah8O2u4oiSaCLPblYqLeCLOS9EBkS9ntBG1tnPWBFr+2trrI2X8J6Y9eNOm2Pca+34rYPj7wuCwcjBDO86AZOG5jluA5gBPAGyhkgDbtoLJjrtoB6/kh0w1EPFndaHdFtNjlAD4XR5YPQ77COH/Z8EbiQ2mJedwAm0RtOeJP1hVgbLy2z/rDH25wBtkEcuuJIB1LCbgQW0+8NAt9xPR+x6IUAcw7lXQbcaqLuNZ1uUwBWEK9ezw0GPa/ld1tNp+OG62HT8RykoYBEp8s4kEmAjXWRToMe4AShBJW8/nqw2A1QtPpY2+l02gLZiQzorQT39XpIlx72J7B5AeO4Hv4whBJCmfselmQMJ4UQ0sUB9BxtnOx7QB0WYDueh5eIIcHbjosQDGEvrEQHBCKbwxPcR1lCaAv41e+B4KFghNAY/YNHzA++gRcC5JfgLoLFxRU+jlJuQiMfrz06i7QKEV7Mo+eM3sYP7pV5Q6rKsMF7qMjQUYY2KgasCayh1alI4AIkHh3lzHufwumhlL/S1LLwK+Zc49sfhkHv54ZdGDzXoizXDC2P0zjWYm4ZmZkaCjczTTF2Jjv1glaUa6ZGdb3CLaye6NXrUmIld/pQ7Miy7TjmfNsbPMW5hllYuqrgEZM+cVIkka1GthVbPNUsLc9zvHFhZ55qKYmXOij1UpeVOP8SqsZYKefKVOnZCQYpECumyvNc0zPOISrOzFjBcc2w1N3nLUPjqW1H585rJplQUSodvssH7a9UgJ5ND+exkeZxbCeZaeUcTwsVttBSSzGMFE6JNSs2dUXJz19wluzL7fX1xM1OnF5wmSulSqpVcEuxzdi0UsW2TK6n2ClPshwuNyLVtJNCLXa0vs069TFFqUQr3CDrcqPe9dar5nTS8kxPU8OwUsPCT0Mxcq4mCuLQjBA5aZJYVm7NG0251AFpCpeRMyEWmypfVXKrYFHkZnGifEgVy3cMPEsRZpZpmwUdynechR6qaWlWlESFocWZjXNxtTHVQIaBAWXpL3yFR7m+QTkFX6cU3WQEOkHqTL8gn0xrUSjx2KJtaZoC/+dWlhW2ZkQZOdxUYySiFZncyE1Tj2JVhY4IVRgJikxVKbdAoUXyDXmwFCMFyB8Gsp+uklpDfCUfZyDDDESdhUTXUwNJYpqKbiCXcz3iWqSbpmbwLEIIIi0Rg2kel9snPIGrJKxYRmloK5aHKaeQMop8Wm5TWt3S6IxKr/oJNEijxCyizCgy3dY0U891M07VAsooBnLRNONIh18tZClZOJaryMU52Z0DrfIt8mHvlJzAyR6lpjkU4naWSndDW2kCbuWKmqWaEae2waM0VgtbVVQbRlJNXJDnAAU1UzIoGumxZeo8BhQp1dVSAavIjFTnNiSVe5fBBKsiHmhzpQGS1JbK4UJLN6I8RoQjJmIENbbNCz3LMwodxEEawU26NKwMzUSFGQwLYGgABQkbbROmAA5yLUGq5lgpt/QihReN0uL0Q9PgXjxXrDzSIjXhsV0APBHdBG6GFWu2DoAn8I1tnRQ1iki3EiWFahEST48y28QpNrAB5sABGNpQTBNopfHEThGwGXaF1IihmQWU1hQCsFgaPUXSakDOBJCJK+AlK1VhP67EcZLA0WlUaIUCLxtqGhlxZCZZnMeZjittFf8SrJKZGs8ybEjTNAMAlAAhLDMi/+kZwSOCkxeqrVNo5bJoIc5zDY5MC9STPFI0lZu8MExVSxEltP1Uw9bJTahwnIJfQfWytSwycLIKw2lapgLz7BwCYB2saykAxDyJaB+ppsNDBTaHhRA53FB370yzwtpxXka3srnbhoVjgEaSkKmViOeFQiVIIffZlp3Bf1mhIXYRaZFq26kZRWqKwKPAvnAgMiiUlUSlWLPgWCATgQ+9DVsjOWzLKkzghozD4WYOb9uIAF3NYYKz5zJFT3NyLExlG5GCaMwJwrQMhiK/6zCAAUQzjbN7ONV2qvXYTR7puQIPaoVqFAjCFGGvWKoJc6IWIrIp8o3IUrNEgRnywirOGOexR54VO4fAKjABRbfzyDSojgHdYF+cK+kEsCbTkZrJxV2qZsO0BkBNR2alwB4tAvDY5M+sUKJMNzkqIBa2TVQPS4Z2llsqMgFRrKlAKPJnnCBCFBMJZSdxoiaWTmebqW4YqmaeO28Yum0pyeYmgM3G9hVl1xCbLgpEB3acANXtwqQ4BS5yw86iRMtTKKDbQBBAE8xmGqZpRpIQGBmUgIuAjQoiVI1iZc+OIk/tPMvT4XlEk62niOQo1i+2gNOpmcUIJLXgamqmMS4z1CxLENRqjCjNsdUESxnqubNIiDPDPMoiSzNVFFw9M3OObQBJTTUpdBMxWeAPJZqm8B17DDznugKqYFsZMgnOyBAQWpYhfZD3pqFrtqYne7UWOBwggCsXdqRAGW1zj66biUKxDJCzNOXCWSWxFUu3UffOnkW5A8Klug4uwAEBVpFIRANKI44RtchIWdKNHXts+Pv8uTROdDW+uNvIVAvJghjlmQ1vwRK8yFIdG45gcnjqwHmqW0kCk8QJpCjwOTyqkSqRnmTQB+mH2pMluw4UxvlWjJC6cDFNI5wSaUpuqyiSsRnvPWtohq4T4pzbzfNd50090XFlhvxE4qlRglAkFqDF0SZOwDYR0oaexXCRQfieqNhKkSiKpSEp83TXJoAxBxPNUYuzKI1sKviI4kQvdJVHhgnvAJEht7UrixMk6k7s1FCLLNlxBlVZz6PhWTtXKCCLJEFQczWKUDuAPqmVJjZSNLIyYD9KjBEXhWQpWY4kinZvIsCVyMwpOPJEB/DvaAH39pyFv+MC/OvMOeyOwANBBm/C4ABhA/XJgiuMPEWKG3BiqmZWjgPD86kSIZiL/Mx5vE7tzIgP7MxgMBB1QHVq6sj2AhuWVMqG3ghpREOq2TL1LDXJEOfASxvSELWgQ0mBd40M8KHu3WMoF3YC1LTz51DMzrRyQKKCKg4s5MAnFY7jag4mExkZ0ijKL+5WCyBrqsZKvmcTvQBcl9rAEB0FMbFsRCTwDiUAkZtZFhFC20AQmxdasCO4jbHLOK/sSHepZy6g3EIoEiInSDVMJA+KiqXtPYByzA+cj3QDwaop6ubeyD6wI0OFSjUlQ7Qmm+dTIFGioialKPkwoR0htbhVgF7YPMmR45oOnENc8B1nN/doaZHFu/Ya8XCvaRXD3SglQA1QORSSzExQ+2EbJHiSRHqE4/FZ+2yeJ0UOHMrs4Q4rBoNO4zSJzgGnoSxHTUCCoMbnOeTbe3ZHkcZVIMKOzZgDfpHfBkKEFxHBPVAwUVPAPo6fOZdYBYJjz54MlTInd1mwFxAO9DjW1CSygICahXeAVgWqhHrxDApsbJtarkIuCrgF/QHKF3ZbF/Ya2oUWLB4bdpLu2OTo0BS0gGm8a7dG9CxFYOY7lfjApoY+pEhNK7JilVyHGEzVs60cAIrKbqS79iaAnSjiaZYpuzbBSUxEChgBbFAgZI1c353uxnYBVgCPczuNLIkBJMYFY7dlmBFCQc127UEdJzql7NLOXLgY5SYwpEBMowMESzYsFOo0v9CyVWrRoEFuxqqJ6l7wBFAHlhijlqnnd6F0GvauXDuA6Nd2D1sQZtimzW2tSGKgHCIjiQtFVSNiBTEHugOwIgVFAW4FgmGTSbbngolgBLLaWQE4BCjCOdSXIImRQlG2Q0vPIVhjqHgBvPhCblp4kWSIBIWoQBzZcaainNKDm7utAwCzJBnyzSiKAFYoibQrWB3cIEY4cuQBeF+U5PTCMnQrogJv2nF+LmrxiNgjXYHQPRcP8Y5N3VKSgGxw3hrGmweolFnEyq2iIDIo+w7QBzAAgrPIhjJVe1Z1JGAaQHJQk5TovwoPpgRA1I0A8+MciQMODNKVXHj2KzvOR2nVvKZG3XZrUBnV11SVqrtRJLky8jn5eALksrG/WPZa1G7J83AKYCrSYlQ4HTWRSi4He4A+OWoDNhzZYJcog/lXrnzja+cQ66XU+faPVgPxKjtZ+QNlakrRqcdA7wET2zCTZsyuk1uhcgrWJBm1kaoWANhMzDQimYCgDGyjSMCZTLsFO5xDJyJFa3m9SClQqX+Ub4A4zcSkxlRjhF65gdkUgdgulwxMTRNVpeQHqqESgC9YlMewJoAzucV+JXwUnirlSPNVXSy/9FFOGkpHV12hlFe3bzPLkWtANhE1JhUstBg5wVhuIVxA9BL0oMhPmPdcevsNKUqgIrWvWr6ZK+pxjFJOVIyqB6WfpXxi2giW2ZigNBmVLxBOKAFzm2DhUWomiCiUDuAHkKxA1SHQQKmykMjTXn5+HFA1wDLRZB9WBp4cAFDzi03gsKKBzwG2cS5164gS+AosUqEIQJ6iLmLjYJEK+ApKNmIGyYmOp0BExClQP8nS2t3S9NRUU0aiCmmy/5adoTxDTh9SqQ1RNrhQSWmGkfKyAU+r/p1qE1mMFoGqsY50zgubNEckgKiplCJ0MoqABrjTYvBdiNKIEyPTsTfiAFg9TqnZlALBu2ELo7QAOBVOoeke7RvCyyCgdJC/baUo4HSQiBS8l7o1XK1RhcP+9ATWS2MTPE03ZYtry78QYZpIaopR6VZjOlwja6NliSAgAr5Y0ooF9YgouJG8moIL/+hvlqSAOAVcocASZkrDFigLDkxgRw1XSr0zVkcjQddG8lqojcugAiokGGaMYzYJxGH4UjFVSw4ZLPproxZpWAggG2soANIAuADtHkxHnoNyaVGg4KRakpClqfAC81FilVgDhzcNmyYHFpBOi6QKEIT+MlHQ+oEu0/vSnXYEnhOZup5WUwJUaNWk4SeljJXQKCMlY6EuqwRNCs6myZKiZtxEjUbDCRqccHSZIMTocWLyuEFDFvRT4AHIA26ZRZyrKrLEoCXISFAYYBlJ76Dp0QHVEjtzGpEAZND/gZCAbcKu5QgGkKehjTGB3VpkgYMl6H9iGRkKeDu2DlSAMWj8otnQyIhREiE+p1YmpjoE0E5o+AEhSFasTi0pBYUJCNXRf+J0mgTYRhEbRY4GnlpA8EauRzmN+Cj3UfFwgHgt5aFCHkK1VqgLBgoqaCQysOmY2m2gk2bHaUT9gpnrlh3TNXZEIavQ9CRVwLzBlDNYxcoiEMTU1rFqkeXoABMEJ+hLagJqTS2lmTVoRQzSiF4lgYUzNCwqOl4d3QLWUgtUepgY3UAKpogMskAQI5pLgycgZYFRGfYJoaqmxircBdCMEnDIiPIN6ZoUJjFu+B7Bh9YKHlRoTkJhZWjI7hzVhhASKwPkNE0HhYCG8D9IfWyiJwLzh8uUIiVCCBy0IgONgJoTaKILjtWMchpWULFzAjgENbp5mgCk4H2wPvyZ2KC/QAnEDjoTNIo0t4SzoAaNq3B6SuMU8DzgBaBIQ+9HjAotKNIR/EfTIhiyiKiIINw0xVZ1HRCVQS36yABZZ0JHYCyYM1cLaECJFSPMwQchJqcAo4Y4K1QQO5Q9HcnD0wK5h77PLJAXKXqwJAdJVAAVtg27IcPTWCXcJyxTddUGIeE0dUqJExuFngIh0Q0ZEQhSLmceoE5qDGAyKI5tKJmClyHZsShaBoWjmhp6AZKUFaD94JiIM/gvV22KeEBRCiKV6DB/nFDDAtdg1zSJAiFEI4m9xHoGM9PMCaCM1pYTeGYgoDQogZtz+heTt1OQQPBOC80xWKBFAc0pAkH/6SOHlJg8B3c3CtiMZxRPVkQTnYj6lQKGpeEMwAkhCJqvJ/Cvie6IRmtoyQoahAHhQR+iWDMzi8bJ1EWooK7oCnLyRxSjiBe5ivZLRXdsJkhXCx2CQQ0amgY0vCo6fsmwDSq0wEONYD030C8i4hDWpDFwMlIiDbkE6AL8gCtbiGFcTNGOII+poTRUIj8KokOjjzewAtoO1Fk0xZy2paKXxlk5SkuUpAhCNAaajrprUfYj+hMTnB4cGLGEjjCPNFXVUX3QpyNviQagq7bQNdIIDW2OppvECWhSqaZwITXtdpZF8DR5GxCYZHlkxhSRVG1p6I5MNRSwXFDtXNUyRAE6K4IeOTkmUpzSsJs+VEgVit8M7BhLxjREJvBGq1PEoBTYVF6gUGsKsh2usS0THsupOOa0PcsuLLTAOgAa4YBoB4Ya1OrDXBnlS05dDSyv0GbRUCpUuXMoAi5IuIOeBr01mmFqBRE7NG1FXNEYzM5onppwtCsKsF6xC5Q3FK0YSanqYJNgrwYxXKICRCpRAXOEW0rDQCWjkRzYmkbAg/dKTqObmY66GqHPTLE9pKZBE0hUPZ2E0tQZSnN02HmkQlELcUklEHLRCaFamIWBQLMTjWKbPh0EfNjoH9UitbFpW0VM02dbktBBMbllwC3gFFIMiXlmROM9vNQINDOFLEnDUvmxB/VhqKhxpCDJdWQ90iuTjENuAB0OtXE2EY4igueoFsGjKO4IaVXWXxryys9Ecqo4qBwIjNyGWBvZBFvZphwTAQWtPLFzMCTFRHHLCkB/rhXgMZkBz4CdEsKZJgDToqin0QJQkNMkheojfXJJ1T7WlURF8SEyBbjX9fITmZhIL7SCW1AQi5i4LrpRhAk4Cc3hVaq1OeUwIkYrwRRYhq4X8UHZidREdCG9wW9gEAXOt2gKALFAIhUrEioh44wiyiMDprZ0GezQU0cdgM0yHbCmo1wjm8l3IFOEuujK8UoDKFCUg2KgiujEinESzdloaC0pjgJ/IoiTjD6vwnPoC3jSaOQmP3GKaRRkZgjmlJgkzYYjxaTGS08s09Ijk0xBcxhTV7hZmJoCVqHkOigLuRpOsw00QwmcifIBEMIhADF2K2Espw8FYjSQxCUA/fBQhi3C8oBBogUWsfw4pw+QcuQtIMoC8NDYL+OyhqomHI0Yl30CSjAqEX2eZ+UwIGiHSQQ1iUs2SfCqyHIGU9iwNF6BcaiKSaMrQny8UBXkbERc1TCocyRqCiiJKUfNiKgO1EpsBEiWUveecBrfEb2TtFZOuwEdVPBAM0HnTBqBE22VBBqJaFuRrIeovTQTtMsLY3DXSM4M4j/wHE53GtDPwFvr+ZKLMtZpuoLeEKHjyUOB4KwXiJK5C375B93l4HTpfeYKeedBIO80wDujcXXO/UzQzQyBR4dDv5QvXCl/tV+tzDoNumMBbwSuvHfiu5DfEZeTz3t0lwXnXpvunajkhz533Tn540G5NOPtFhPMhwahwy7d/+toIM90Opz7nFYn+XhWyZdS6TmjjZXyfd8vzSvoPhBB92TB9nQ3F905wnzP59h/JR9bCPi3VaCSTzuX8uk+FUZ3tlRvYWVPyKeCyzd4wEg8K3WrlhV0n4pw5AU+K/2EQz5n/WBe7CUalIs4bbpxxZUX040xUr7cNp763vRiMgLMw7Zfz32P/C7dz3lpNrIerhgF24RW52y53GmKSgDdo0OXieruG/zy5b0ys4tEdZmY6lGtKDi71MLD7fK3vKxWcKV82rSonV69yaani/qYP7f98hB5qN76NvFscqnNL90/a8wdZPPvzGtQPbbYfxql85ufu6AXbhd/OfvzbnfLaWxegUuu97fJ50FAd19dLs7msu+S97boQAh06YOJUDju7EImt7lN/zAgAGQe87wt/qd7s76d77fIpxusmDt/vaBbu2RYOM6Wk8UsQmjr/iwey/uz5FOxXdjrwR/n29KpNKTYEhCe686dVYqHHwLff/1Vtz9eX4Gtnr78eYy5Xo0DgbwlrXbD9sD9rsVvue7SaJ3XQQIz6327JV9HiW8jfu6qy0fL1nAXlwGZv1qFv+qayz2m13xbw35HKvx1xH/n8sXrncX++sK/C/mXc9PfxKPMYfYd7f9vXHgln4vvQP7f2uNvy7Lflfz/b9K/9/je43uP7z3+rj2+3H0VP5X+Sx73rrm4FtbHl197VZKyff/4/4bUDXg70NO9YSDK3oCV3zKQjy2sCoe/NeC806Y7wKmUXem/LEms1x9V59iday7iwFV/RncmXNVzXsKvi6svgzS/cU5+8y+ukHx030+8xCv5jL06rsrYlDdt5U/U8GIvgrW7TaWst9/nvyLls4v9K/1ODwt1+FUv1/L7V3kOXvADb34FbcM1Fyf9eql7dlxBzJQ7O15lsnW8OuDsL9fLTW0j49IU09r6Lazb7jbeUB56g1Ak1WXLf+9lOqE5LD9NF9//Tew19N7Ylvq9ciVEXXEF+tPWGnWtV4mvPso9nwnnB/A+Na5XoRFXhnVfWDUvZWtdW0P+Ygrs327ff00p/7XwW1VbfhUc7fmNIf3Ee1eSXNEchmWLUDrWo7ZHuIG4MpBux5lXYv+gyv4VPRfekkKkmMoLlxBY9srQ553OCyuV/EApm2/nDQqNQ7xQCDkUkGuwqi2qLq196nDvtStoVIA3L+4o5z9g6mIQzgw+88O2X92XPbF8NfdL+S1lBx31fI/UDWSnMd/ziS2veNW48+pf1T/Rl2xIi74vpj1vPSdgs19MXuMe7IeBQAM4DUqfBbXe2wRe8pL+MdmUC7GN68Ja1XSq0m/6kPO06QKsKcp+SrCtl/Oqndwy7eDbur5pUl/SgOPUUH5Xic0OTecZ3vQI491LpgxbutKt+xXT1cuo4r5g3pzUuUfgX6Ib27qbSpTnXtolVL02q66am3dV/q5elh04mxLleiV/1kVfAj/1azYl74xtI5rym1fyDW8rB503dJkZgrN6T1NLy7MYfbdr/oI5B889nQ6dSlDaPklibItyszO2ZoKY7m5+FsSqrGNiOqLZFmWVKcsgYdU1bNucCDA9mwPOzyfEvDGna9McdF7lUpCcl4r52eWctqxOkXqIOBvrVTuo7OuLaqvzO65sN4vMOslFjXvTlBMz8K8RqRbMSuwoB7vyq3rTcysTzYveovsWa1ZOJ2W96e7lVqTImWnY1D/zW56ajPO5ms34bA+VHqV6fJrjU5BhcpY6df3cUNOvvpZY6kIbnVPep/pReVCIqUulxcTMo9MiIuSXHGdniJlnp5rM0Lfc97ZdsrmdS/lCrkNH5a/Z+9PiVW67dOC0pDFRfeGy9F1tWGkx+ZVLXk63t6dgHfbC4zO0IOScjoNxcalJlenSEDIb/CmAlBDks7nd4bpKGSa/TFrOiFHVAk/KrbT1JVUhPSvnVoWyfKPMLi9gJVzLAGSB45f73FL5aH9TCCRFJGeo18T1fmXE6vumVQGQHy+IWSpUsStcX5rU3xrO0tF1HJSbq1KsJDa1eUk9VkdD5dsZYtOyJJ0c4lfpXeejqOfw0xyoUlhubwuqYEeVYzyfV1uiz1/qjJcmIkvOK8PLL+b6pbtKf4k6imeZzErw5pJ6UUy6lTXrD2PkGQFjdRRJJ1e2oedyOdefhuksp2SolABDLK3WSKriCfr6MqgIZQJ5nb4o7fJgWqjqaJuC+qyIV9HEpG2FXMupvjws6qpb/S4JJQlnpf/pJF+4nIWlRymTK+3KXsCv1J7l7AwJqs9rys/OpLeYkB+TyNwrHUyvIaFOtlJCGZHlCnS5F5R79KafJZXuKVGpSuK5GsGrtKpggFV4UJ5c4hXhm7SS9FDtVvnP5VNmySqkmBYFn82MjXeqSJcGFDJ9JT+szVmVLmmE0nI1JsvP7lgg5Ow6ZGUcc7kQq0i1qOKi4q5eCQWEHaU95RfRmfyc0Q1kEaxjrPZBhRPyO+tTbs4qgJelmpWb8fxyX1Vksxrj5U+ZOKJOX+kOUepVUlsZL3gDYenN4kBMk6FK7SrbEXyl+yoWR9Jl7RaSqk1bktp89AlqnXh16k8RuVS5+qSlroGXcuX6iZjucPqouItsC3ipgpjpLWpNKlH1J+rV5kRJDmUo8RmObOtDtr5g85xxhiliKmX7m7ymOXN8Zv7dKbsEV17G8X64DCmT5mTaf3vdljy/P2h3ZDxPgtLSJauRKFC3SPWmS/owQjB3HLdZHpyI5TLnB8Nq5cP+sIFAnLTpU7pJQPJ5P2zg3JXl1W3ymej3m64UO5HwUtd/MS2VnphZREbuCAnScZxWGcFj3vSk/F6vK2SpbfER6TZuO5C74kj5vR7ke6vL435teq/TkTAQDhueBMRK/syMJZZwt/w1I7xDxHXX6bbLvB2KVtn/h70GHfHRYQ/oDoERyfd7w26DjvbakDFsQ8OQPhoTE9FyJL0KRsul90n+DKLFtEeYhUMVOCOf7C/Vx/kD3in1D3pNUcFyQP9NxLhFiTcIHQmKdSi5BC04axRIs+OtSVN2LGIYVMg2Dc/ZCGg+rASaZNF12l1ZM/2+3y47HtFrUS3xfV+mHqsc1qvTdraI47usHzSqoj3olEb3BxJoBX+dR0W9cQUVI3iZ2JEQQdDxKhhyfRHw+hP8Ol39KTdgtRkl8yrTs8TVGpjYFKCmEbC1nS1XkMMC13XkGQAiuomDVwVn6rAaHvwt2lTgNA8HM1yRRWuuw5jJnhsAzF/B61nCdGcVaZi1vBJZp80cm0PMyxi6Im7z2HRZd2w5yLY9nedOlyArn23u0lVLVjAzPZ/B9tZAFJfEZbV9sf0YUZF5yOTyP1ORRpqtMS3ql9WshAG2NR3ELKSrTK1GD1uBnfOtg5btas/Y+Jz2l+/6S7TZaoaaHc2Vs8vvgUzmXSJ9bouXTAK2dpQ1ErG5PJ4i1JaYqRGrYh11V1TZomoPLlHO871tWs/6/ilB2r77KThWw4ppT1s7UlR8saaR1SKCzV12WVvV5824I5tePxW+7aP9aqd8VkPZVqIwFwp1jle9y3yzM69SPVeosaBunti8vG0mqzp8VoeLmM1x53vrbbRBvl+1K3OMhc87fAq/U7N4Zfs0A5y5GJX3ZvGp+rPGt5ZLDcssPsS8XZng0xFwvactres0JqQWQY3wbGrpGYrWZiu7uGlDIxuwKcDLHkaWBL+yMZ+7dBp601QQbHZfV0n5yzeqDkXUfZ78SaHNKm5TuYnV6rIprZJP6vvZpsku3NAJPDF1LrWI9MIJ551Y0rWph3yvtqckiG5Q6s7EdJRU3rg3I8yzQJpFft2Z8KkRSkke39r6lo2+LwcGtVGomapp3Cyc2BySzhrn+ZDgM0FVL1xNLkofz/tzDqrqmPCqdCmlSoe6/jQDvcCrBitc1LcNzuSwGtC3lL9yflHzzqnL5nOsqplVByJ7NNlV1/EyYy28CjG5TBVjXtlb0udA3BFhPTCsw7S8vrq0goOyH6yTgALBC+UHSdIxRO2EN1N3ikhcckPGxNweSXCpFPVuXnvEaquwutGWdZH6fHmja11wKMjc7pD5Hfm/j9F/memzS1BMzNjO1FVsbicyTJxAmsrxp58TiGmoVDauWm1B59QRiD0GVTu8dZBYOpHsIbuZ6UCtFDgNKXkqqDIixJfTk3LmQ5uoJleiipWyieflbKgcNDBRDpCqAPA9t1/CljSb51fztXqAzSuX1oenXY0oM97jVZ8t2xf8dnxqfN2KOZX75VWDzVgNpBXukh4u/Wd2bBZvVAxdOUwuBzEV6OCHEwRT508HgWVE1FBUUjaZReW8Sfb2dZp1QiHvYa6GCPVErTssI2VK9+T1boAIDaox/lxlmSVtldW+bJnJrnXoVSgtn8iAZzW+EUrLHptx2re8AdtznVGwlYp6NNSh+UM5GhGzajktcltBvQbhag/lIflRhi9qcrflUWW18MpryuQs7Sc19TmvY4TPMe+atMybQkz5Fq8LwpbHtiu2aHFZujd7/D9Q9H5cAA==",type:dt.TEXTURE_EXR}};var pt;!function(e){e.ObjectClicked="object-clicked",e.ObjectDoubleClicked="object-doubleclicked",e.LoadComplete="load-complete",e.UnloadComplete="unload-complete",e.UnloadAllComplete="unload-all-complete",e.Busy="busy",e.FilteringStateSet="filtering-state-set",e.LightConfigUpdated="light-config-updated"}(pt||(pt={}));const mt={enabled:!0,castShadow:!0,intensity:5,color:16777215,elevation:1.33,azimuth:.75,radius:0,indirectLightIntensity:1.2,shadowcatcher:!0};var gt,vt,ft;!function(e){e[e.STREAM_CONTENT_MESH=10]="STREAM_CONTENT_MESH",e[e.STREAM_CONTENT_LINE=11]="STREAM_CONTENT_LINE",e[e.STREAM_CONTENT_POINT=12]="STREAM_CONTENT_POINT",e[e.STREAM_CONTENT_TEXT=13]="STREAM_CONTENT_TEXT",e[e.STREAM_CONTENT_POINT_CLOUD=14]="STREAM_CONTENT_POINT_CLOUD",e[e.NONE=0]="NONE",e[e.STREAM_CONTENT=1]="STREAM_CONTENT",e[e.PROPS=2]="PROPS",e[e.SHADOWCATCHER=3]="SHADOWCATCHER",e[e.OVERLAY=4]="OVERLAY",e[e.MEASUREMENTS=5]="MEASUREMENTS"}(gt||(gt={})),function(e){e[e.RENDER=1]="RENDER",e[e.SHADOWS=2]="SHADOWS",e[e.CLIPPING_PLANES=4]="CLIPPING_PLANES"}(vt||(vt={})),function(e){e[e.NONE=0]="NONE",e[e.OVERLAY=1]="OVERLAY",e[e.OUTLINE_ONLY=2]="OUTLINE_ONLY"}(ft||(ft={}));class wt extends t{constructor(e){super(e)}compileProperEquirectShader(e){this._equirectMaterial=new i({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},rotationMatrix:{value:e}},vertexShader:"\n precision mediump float;\n precision mediump int;\n attribute float faceIndex;\n varying vec3 vOutputDirection;\n // RH coordinate system; PMREM face-indexing convention\n vec3 getDirection( vec2 uv, float face ) {\n uv = 2.0 * uv - 1.0;\n vec3 direction = vec3( uv, 1.0 );\n if ( face == 0.0 ) {\n direction = direction.zyx; // ( 1, v, u ) pos x\n } else if ( face == 1.0 ) {\n direction = direction.xzy;\n direction.xz *= -1.0; // ( -u, 1, -v ) pos y\n } else if ( face == 2.0 ) {\n direction.x *= -1.0; // ( -u, v, 1 ) pos z\n } else if ( face == 3.0 ) {\n direction = direction.zyx;\n direction.xz *= -1.0; // ( -1, v, -u ) neg x\n } else if ( face == 4.0 ) {\n direction = direction.xzy;\n direction.xy *= -1.0; // ( -u, -1, v ) neg y\n } else if ( face == 5.0 ) {\n direction.z *= -1.0; // ( u, v, -1 ) neg z\n }\n return direction;\n }\n void main() {\n vOutputDirection = getDirection( uv, faceIndex );\n gl_Position = vec4( position, 1.0 );\n }\n ",fragmentShader:"\n precision mediump float;\n precision mediump int;\n varying vec3 vOutputDirection;\n uniform sampler2D envMap;\n uniform mat4 rotationMatrix;\n #include <common>\n void main() {\n\n vec3 outputDirection = normalize( vOutputDirection );\n outputDirection = normalize((rotationMatrix * vec4(vOutputDirection, 0.)).xyz);\n vec2 uv = equirectUv( outputDirection );\n gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n }\n ",blending:n,depthTest:!1,depthWrite:!1}),this._compileMaterial(this._equirectMaterial)}}const St=ze(Pe,"warn")?Pe:Ue(Pe,"default");class At{static getLoader(e,t){if(void 0===t&&(t=e.split(".").pop()),!Object.values(dt).includes(t))return St.warn(`Asset ${e} could not be loaded. Unknown type`),null;switch(t){case dt.TEXTURE_EXR:return new Be;case dt.TEXTURE_HDR:return new De;case dt.TEXTURE_8BPP:return new r;default:return null}}static hdriToPMREM(e,t){const i=new wt(e),n=(new s).makeRotationFromEuler(new a(.5*-Math.PI,0,.5*-Math.PI));i.compileProperEquirectShader(n);const r=i.fromEquirectangular(t);return i.dispose(),r.texture}static getEnvironment(e,t){return this._cache[e.id]?Promise.resolve(At.hdriToPMREM(t,this._cache[e.id])):new Promise(((i,n)=>{const r=At.getLoader(e.src,e.type);r?r.load(e.src,(n=>{this._cache[e.id]=n,i(At.hdriToPMREM(t,n))}),void 0,(t=>{n(`Loading asset ${e.id} failed ${t.message}`)})):n(`Loading asset ${e.id} failed`)}))}static getTexture(e){return this._cache[e.id]?Promise.resolve(this._cache[e.id]):new Promise(((t,i)=>{if(e.src.includes("data:image")){const n=new Image;n.src=e.src,n.onload=()=>{const i=new o(n);i.needsUpdate=!0,this._cache[e.id]=i,t(i)},n.onerror=t=>{i(`Loading asset ${e.id} failed with ${t.toString()}`)}}else{const n=At.getLoader(e.src,e.type);n?n.load(e.src,(i=>{this._cache[e.id]=i,t(this._cache[e.id])}),void 0,(t=>{i(`Loading asset ${e.id} failed ${t.message}`)})):i(`Loading asset ${e.id} failed`)}}))}static getFont(e){let t=null;return t=e.src?e.src:e,this._cache[t]?Promise.resolve(this._cache[t]):new Promise(((e,i)=>{(new Le).load(t,(t=>{e(t)}),void 0,(e=>{i(`Loading asset ${t} failed ${e.message}`)}))}))}static async getTextureData(e){const t=await At.getTexture(e),i=document.createElement("canvas");i.width=t.image.width,i.height=t.image.height;const n=i.getContext("2d");if(!n)throw new Error("Fatal! 2d context could not be retrieved.");n.drawImage(t.image,0,0);const r=n.getImageData(0,0,i.width,i.height);return Promise.resolve(r)}static generateGradientRampTexture(e,t,i){}static generateDiscreetRampTexture(e){const t=e.length,i=new Uint8Array(4*(1*t));for(let t=0;t<e.length;t++){const n=4*t,r=new l(e[t]);r.convertSRGBToLinear(),i[n]=Math.floor(255*r.r),i[n+1]=Math.floor(255*r.g),i[n+2]=Math.floor(255*r.b),i[n+3]=255}const n=new c(i,t,1);return n.needsUpdate=!0,n}}At._cache={};class yt{constructor(){this.lastPauseTime=0,this.needsWait=!1}tick(e){performance.now()-this.lastPauseTime>e&&(this.needsWait=!0)}async wait(e){this.lastPauseTime=performance.now(),await new Promise((t=>setTimeout(t,e))),this.needsWait=!1}}class Tt{constructor(){this.boxes=new Array,this.worldBox=new h,this.VecBuff=new d,this.BoxBuff0=new h,this.BoxBuff1=new h,this.MatBuff=new s,this._worldOrigin=new d}get worldSize(){this.worldBox.getCenter(this._worldOrigin);const e=(new d).subVectors(this.worldBox.max,this.worldBox.min);return{x:e.x,y:e.y,z:e.z}}get worldOrigin(){return this._worldOrigin}expandWorld(e){this.boxes.push(e),this.updateWorld()}reduceWorld(e){this.boxes.splice(this.boxes.indexOf(e),1),this.updateWorld()}updateWorld(){this.worldBox.makeEmpty();for(let e=0;e<this.boxes.length;e++)this.worldBox.union(this.boxes[e])}resetWorld(){this.worldBox.makeEmpty(),this.boxes.length=0}getRelativeOffset(e=.001){this.MatBuff.identity(),this.MatBuff.makeScale(1+e,1+e,1+e);const t=this.VecBuff.set(.5*this.worldSize.x,.5*this.worldSize.y,.5*this.worldSize.z);this.BoxBuff0.min.set(0,0,0),this.BoxBuff0.max.set(0,0,0),this.BoxBuff1.min.set(0,0,0),this.BoxBuff1.max.set(0,0,0);const i=this.BoxBuff0.expandByVector(t);return this.BoxBuff1.copy(i).applyMatrix4(this.MatBuff).max.distanceTo(i.max)}}var Et;!function(e){e[e.MESH=0]="MESH",e[e.LINE=1]="LINE",e[e.POINT=2]="POINT",e[e.POINT_CLOUD=3]="POINT_CLOUD",e[e.TEXT=4]="TEXT"}(Et||(Et={}));const xt={offset:0,count:0},Rt={offset:0,count:1/0};class Ct{toJSON(){return{}}}class Mt{constructor(){this._stencilOutline=ft.NONE,this.needsCopy=!1}get speckleUserData(){return this.userData}set speckleUserData(e){this.userData=e}get speckleDefines(){return this.defines}set speckleDefines(e){this.defines=e}get vertexProgram(){return""}get fragmentProgram(){return""}get uniformsDef(){return{empty:"empty"}}get baseUniforms(){return{emptyBase:{value:"emptyBase"}}}set stencilOutline(e){this._stencilOutline=e;const t=this;t.stencilWrite=e!==ft.NONE,t.stencilWrite&&(t.stencilWriteMask=255,t.stencilRef=0,t.stencilFunc=u,t.stencilZFail=p,t.stencilZPass=p,t.stencilFail=p,e===ft.OUTLINE_ONLY&&(t.colorWrite=!1,t.depthWrite=!1,t.stencilWrite=!0))}set pointSize(e){this.size=e}init(e=[]){this.speckleUserData=new Ct,this.setUniforms(this.uniformsDef),this.setDefines(e),this.onBeforeCompile=this.onCompile}setUniforms(e){for(const t in e)this.speckleUserData[t]={value:e[t]};this.uniforms=m.merge([this.baseUniforms,this.speckleUserData])}setDefines(e=[]){if(e){this.speckleDefines={};for(let t=0;t<e.length;t++)this.speckleDefines[e[t]]=" "}}copyUniforms(e){for(const t in e.userData)void 0!==this.speckleUserData[t]&&(this.speckleUserData[t].value=e.userData[t].value)}bindUniforms(){if(this._internalUniforms)for(const e in this.uniformsDef)this._internalUniforms.uniforms[e]=this.speckleUserData[e]}copyFrom(e){this.speckleUserData=new Ct,this.setUniforms(this.uniformsDef),this.copyUniforms(e),this.bindUniforms(),Object.assign(this.speckleDefines,e.defines),e.needsCopy&&(this.needsCopy=e.needsCopy)}onCompile(e){this._internalUniforms=e,this.bindUniforms(),e.vertexShader=this.vertexProgram,e.fragmentShader=this.fragmentProgram}fastCopy(e,t){t.alphaTest=e.alphaTest,t.alphaToCoverage=e.alphaToCoverage,t.blendDst=e.blendDst,t.blendDstAlpha=e.blendDstAlpha,t.blendEquation=e.blendEquation,t.blendEquationAlpha=e.blendEquationAlpha,t.blending=e.blending,t.blendSrc=e.blendSrc,t.blendSrcAlpha=e.blendSrcAlpha,t.clipIntersection=e.clipIntersection,t.clippingPlanes=e.clippingPlanes,t.clipShadows=e.clipShadows,t.colorWrite=e.colorWrite,Object.assign(t.defines,e.defines),t.depthFunc=e.depthFunc,t.depthTest=e.depthTest,t.depthWrite=e.depthWrite,t.fog=e.fog,t.format=e.format,t.stencilWrite=e.stencilWrite,t.stencilFunc=e.stencilFunc,t.stencilRef=e.stencilRef,t.stencilWriteMask=e.stencilWriteMask,t.stencilFuncMask=e.stencilFuncMask,t.stencilFail=e.stencilFail,t.stencilZFail=e.stencilZFail,t.stencilZPass=e.stencilZPass,t.opacity=e.opacity,t.polygonOffset=e.polygonOffset,t.polygonOffsetFactor=e.polygonOffsetFactor,t.polygonOffsetUnits=e.polygonOffsetUnits,t.premultipliedAlpha=e.premultipliedAlpha,t.dithering=e.dithering,t.side=e.side,t.shadowSide=e.shadowSide,t.toneMapped=e.toneMapped,t.transparent=e.transparent,t.vertexColors=e.vertexColors,t.visible=e.visible}setMaterialOptions(e){this.stencilOutline=e.stencilOutlines||ft.NONE,this.pointSize=e.pointSize||1}}class Ot extends g{}class bt extends v{}class It extends f{}class Nt extends w{}class Bt extends Fe{}class Dt extends S{}function Lt(e,t){t.forEach((t=>{Object.getOwnPropertyNames(t.prototype).forEach((i=>{Object.defineProperty(e.prototype,i,Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null))}))}))}Lt(Ot,[Mt]),Lt(bt,[Mt]),Lt(It,[Mt]),Lt(Nt,[Mt]),Lt(Bt,[Mt]),Lt(Dt,[Mt]);class Pt extends Bt{get vertexProgram(){return"\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\t\tuniform float pixelThreshold;\n\n\t\tvarying float vAlpha;\n\n\t\t#define SEARCH_STEPS 10\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec4 instanceColorStart;\n\t\tattribute vec4 instanceColorEnd;\n\t\t// varying vec3 debugColor;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\t\t\tvarying float correctedLineWidth;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n #ifdef USE_RTE\n\t\t\tattribute vec3 instanceStartLow;\n\t\t\tattribute vec3 instanceEndLow;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n #endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tfloat screenSpaceDistance(vec4 p0, vec4 p1) {\n\t\t\tp0 = projectionMatrix * p0;\n\t\t\tp0 /= p0.w;\n\t\t\tp1 = projectionMatrix * p1;\n\t\t\tp1 /= p1.w;\n\t\t\treturn length(p1.xy - p0.xy);\n\t\t}\n\n\t\tvec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n\t\t\t/* \n\t\t\tVector calculation for the high and low differences works on everything \n\t\t\t*BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n\t\t\tIt would seem that when this code gets compiled, vector types get a lower precision(?)\n\t\t\twhich completely brakes the 2 float -> double reconstructio. Doing it separately for each \n\t\t\tvector component using floats works fine.\n\t\t\t*/\n\t\t\tvec3 highDifference;\n\t\t\tvec3 lowDifference;\n\t\t\tfloat t1 = position_low.x - relativeTo_low.x;\n\t\t\tfloat e = t1 - position_low.x;\n\t\t\tfloat t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n\t\t\thighDifference.x = t1 + t2;\n\t\t\tlowDifference.x = t2 - (highDifference.x - t1);\n\n\t\t\tt1 = position_low.y - relativeTo_low.y;\n\t\t\te = t1 - position_low.y;\n\t\t\tt2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n\t\t\thighDifference.y = t1 + t2;\n\t\t\tlowDifference.y = t2 - (highDifference.y - t1);\n\n\t\t\tt1 = position_low.z - relativeTo_low.z;\n\t\t\te = t1 - position_low.z;\n\t\t\tt2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n\t\t\thighDifference.z = t1 + t2;\n\t\t\tlowDifference.z = t2 - (highDifference.z - t1);\n\n\t\t\tvec3 position = highDifference.xyz + lowDifference.xyz;\n\t\t\treturn vec4(position, 1.);\n\t\t}\n\n\t\tvec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n\t\t\t/* \n\t\t\tSource https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n\t\t\tNote here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n\t\t\t*/\n\t\t\tvec3 t1 = position_low.xyz - relativeTo_low;\n\t\t\tvec3 e = t1 - position_low.xyz;\n\t\t\tvec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n\t\t\tvec3 highDifference = t1 + t2;\n\t\t\tvec3 lowDifference = t2 - (highDifference - t1);\n\t\t\t\n\t\t\tvec3 position = highDifference.xyz + lowDifference.xyz;\n\t\t\treturn vec4(position, 1.);\n\t\t}\n\n\t\tvoid main() {\n\t\t\tif(instanceColorStart.w == 0.) {\n\t\t\t\tgl_Position = vec4(0.);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvAlpha = instanceColorStart.w;\n\n vec3 computedPosition = position;\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( computedPosition.y < 0.5 ) ? instanceColorStart.xyz : instanceColorEnd.xyz;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( computedPosition.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n #ifdef USE_RTE\n\t\t\t/** Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl */\n\t\t\t\t// vec3 t1 = instanceStartLow.xyz - uViewer_low;\n\t\t\t\t// vec3 e = t1 - instanceStartLow.xyz;\n\t\t\t\t// vec3 t2 = ((-uViewer_low - e) + (instanceStartLow.xyz - (t1 - e))) + instanceStart.xyz - uViewer_high;\n\t\t\t\t// vec3 highDifference = t1 + t2;\n\t\t\t\t// vec3 lowDifference = t2 - (highDifference - t1);\n\t\t\t\t// vec4 start = modelViewMatrix * vec4(highDifference.xyz + lowDifference.xyz , 1.);\n\t\t\t\tvec4 start = modelViewMatrix * computeRelativePositionSeparate(instanceStartLow.xyz, instanceStart.xyz, uViewer_low, uViewer_high);\n\t\t\t\t\n\t\t\t\t// t1 = instanceEndLow.xyz - uViewer_low;\n\t\t\t\t// e = t1 - instanceEndLow.xyz;\n\t\t\t\t// t2 = ((-uViewer_low - e) + (instanceEndLow.xyz - (t1 - e))) + instanceEnd.xyz - uViewer_high;\n\t\t\t\t// highDifference = t1 + t2;\n\t\t\t\t// lowDifference = t2 - (highDifference - t1);\n\t\t\t\t// vec4 end = modelViewMatrix * vec4(highDifference.xyz + lowDifference.xyz , 1.);\n\t\t\t\tvec4 end = modelViewMatrix * computeRelativePositionSeparate(instanceEndLow.xyz, instanceEnd.xyz, uViewer_low, uViewer_high);\n #else\n vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n #endif\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// get the offset direction: perpendicular to the view vector\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 offset;\n\t\t\t\tif ( computedPosition.y < 0.5 ) {\n\n\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t}\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( computedPosition.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t#endif\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( computedPosition.y > 1.0 || computedPosition.y < 0.0 ) {\n\n\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t}\n\n\t\t\t\t// debugColor = vec3(0., 0., 1.);\n\t\t\t\tcorrectedLineWidth = linewidth;\n\t\t\t\tvec3 cOffset = offset;\n\t\t\t\t\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t// set the world position\n\t\t\t\tworldPos = ( computedPosition.y < 0.5 ) ? start : end;\n\n\t\t\t\t/*\n\t\t\t\tNot great, not terrible\n\t\t\t\t*/\n\t\t\t\tfloat pixelSize = length(vec2(pixelThreshold/resolution.x + pixelThreshold/resolution.y));\n\t\t\t\tfloat offsetStep = linewidth;\n\t\t\t\tfloat d = screenSpaceDistance(worldPos, worldPos + vec4(cOffset * offsetStep, 0.));\n\t\t\t\t/* We're trying to start off with a step closer to the initial difference between SS distance and the pixel size we want\n\t\t\t\t*/\n\t\t\t\t// offsetStep += pixelSize - d;\n\t\t\t\tvec3 move = offset;\n\t\t\t\t\n\t\t\t\tfor(int i = 0; i < SEARCH_STEPS; i++){\n\t\t\t\t\tmove = cOffset * offsetStep;\n\t\t\t\t\td = screenSpaceDistance(worldPos, worldPos + vec4(move, 0.));\n\t\t\t\t\tif(d > pixelSize) {\n\t\t\t\t\t\tcorrectedLineWidth = offsetStep;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\toffsetStep += offsetStep;\n\t\t\t\t}\n\n\t\t\t\tworldPos.xyz += move;\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segments overlap neatly\n\t\t\t\tvec3 clipPose = ( computedPosition.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( computedPosition.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( computedPosition.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( computedPosition.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( computedPosition.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( computedPosition.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t"}get fragmentProgram(){return"\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\t\tvarying float vAlpha;\n\t\t// varying vec3 debugColor;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashOffset;\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\t\t\tvarying float correctedLineWidth;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha;\n\t\t\t#ifdef UNIFORM_OPACITY\n\t\t\t\talpha = opacity;\n\t\t\t#else\n\t\t\t\talpha = vAlpha;\n\t\t\t#endif\n\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / correctedLineWidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t// #include <color_fragment> COMMENTED CHUNK\n\t\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\t\tdiffuseColor *= vColor;\n\t\t\t#elif defined( USE_COLOR )\n\t\t\t\tdiffuseColor.rgb = vColor;\n\t\t\t#endif\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t"}get baseUniforms(){return A.line.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,pixelThreshold:0}}set pixelThreshold(e){this.userData.pixelThreshold.value=e,this.needsUpdate=!0}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t);const i=e;t.color.copy(i.color),t.userData.pixelThreshold.value=e.userData.pixelThreshold.value}onBeforeRender(e,t,i,n,r){r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),e.getDrawingBufferSize(this.resolution),this.needsUpdate=!0}}class zt extends Ot{get vertexProgram(){return"\n#define STANDARD\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n uniform mat4 rteShadowMatrix;\n uniform vec3 uShadowViewer_high;\n uniform vec3 uShadowViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n varying vec3 vWorldPosition;\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n\n\nvoid main() {\n\n #include <uv_vertex>\n #include <uv2_vertex>\n #include <color_vertex>\n #include <morphcolor_vertex>\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #include <normal_vertex>\n\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n #include <displacementmap_vertex>\n //#include <project_vertex> // EDITED CHUNK\n \n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n\n vViewPosition = - mvPosition.xyz;\n\n #include <worldpos_vertex>\n // #include <shadowmap_vertex> COMMENTED CHUNK!!!\n #ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n vec4 shadowPosition = vec4(transformed, 1.0);\n mat4 shadowMatrix = directionalShadowMatrix[ i ];\n\n #ifdef USE_RTE\n shadowPosition = computeRelativePositionSeparate(position_low.xyz, position.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowMatrix = rteShadowMatrix;\n #endif\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivotShadow = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowPosition.xyz = rotate_vertex_position((shadowPosition - rtePivotShadow).xyz, tQuaternion) * tScale.xyz + rtePivotShadow.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 rtePivotShadow = computeRelativePositionSeparate(ZERO3, ZERO3, uShadowViewer_low, uShadowViewer_high);\n shadowPosition.xyz = (mat3(instanceMatrix) * (shadowPosition - rtePivotShadow).xyz) + rtePivotShadow.xyz + instanceMatrix[3].xyz;\n #endif\n shadowWorldPosition = modelMatrix * shadowPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = shadowMatrix * shadowWorldPosition;\n\t}\n \n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t/*\n\t#if NUM_RECT_AREA_LIGHTS > 0\n\t\t// TODO (abelnation): update vAreaShadowCoord with area light info\n\t#endif\n\t*/\n #endif\n\n #include <fog_vertex>\n\n#ifdef USE_TRANSMISSION\n\n vWorldPosition = worldPosition.xyz;\n\n#endif\n}\n"}get fragmentProgram(){return"\n#define STANDARD\n\n#ifdef PHYSICAL\n #define IOR\n #define SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n uniform float ior;\n#endif\n\n#ifdef SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n\n #ifdef USE_SPECULARINTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n\n #ifdef USE_SPECULARCOLORMAP\n uniform sampler2D specularColorMap;\n #endif\n#endif\n\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n\n #ifdef USE_SHEENCOLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n\n #ifdef USE_SHEENROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n/** We're disabling color grading for now until we want to properly offer it to the users */\n//#define CUSTOM_TONEMAPPING \n\n#ifdef CUSTOM_TONEMAPPING\n\n\tuniform float contrast;\n\tuniform float saturation;\n\tuniform float whitescale;\n\tvec3 EvalLogContrastFunc(vec3 col, float eps, float logMidpoint, float contrastFactor)\n\t{\n\t\tvec3 x = max(vec3(0.), col);\n\t\tvec3 logX = log2(x+vec3(eps));\n\t\tvec3 adjX = vec3(logMidpoint) + (logX - vec3(logMidpoint)) * contrastFactor;\n\t\tvec3 ret = max(vec3(0.0), exp2(adjX) - vec3(eps));\n\t\treturn ret;\n\t}\n\n\tvec3 evalSaturation(vec3 rgbVal, float saturationFactor){\n\t\tvec3 lumaWeights = vec3(.25,.50,.25);\n\t\tvec3 grey = vec3(dot(lumaWeights,rgbVal));\n\t\treturn grey + saturationFactor*(rgbVal-grey);\n\t}\n\n\tvec3 evalExposure(vec3 rgbVal, float exposureFactor){\n\t\treturn rgbVal * exp2(exposureFactor);\n\t}\n\n\tvec3 filmicTonemap(vec3 x) {\n\t\tfloat A = 0.15;\n\t\tfloat B = 0.50;\n\t\tfloat C = 0.10;\n\t\tfloat D = 0.20;\n\t\tfloat E = 0.02;\n\t\tfloat F = 0.30;\n\t\tfloat W = 11.2;\n\t\treturn ((x*(A*x+C*B)+D*E) / (x*(A*x+B)+D*F))- E / F;\n\t}\n\n\n\tvec3 applyFilmicToneMap( vec3 color) \n\t{\n\t\tcolor = 2.0 * filmicTonemap( color);\n\t\tvec3 whiteScale = 1.0 / filmicTonemap(vec3(11.2));\n\t\tcolor *= whiteScale;\n\t\treturn color;\n\t}\n\n\tvec3 postProcess(in vec3 _color, float exposureFactor, float contrastFactor, float saturationFactor){\n\t\tvec3 color = _color;\n\n\t\t// color.rgb *= exposureFactor;\n\t\tcolor.rgb = evalSaturation(color.rgb, saturationFactor);\n\t\tcolor = EvalLogContrastFunc(color, 0.0001, 0.18, contrastFactor);\n\t\tcolor.rgb = ACESFilmicToneMapping( color );//applyFilmicToneMap(color.rgb);\n\t\treturn color;\n\t}\n#endif\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n\n #include <clipping_planes_fragment>\n\n vec4 diffuseColor = vec4( diffuse, opacity );\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n\n #include <logdepthbuf_fragment>\n #include <map_fragment>\n #include <color_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n #include <roughnessmap_fragment>\n #include <metalnessmap_fragment>\n #include <normal_fragment_begin>\n #include <normal_fragment_maps>\n #include <clearcoat_normal_fragment_begin>\n #include <clearcoat_normal_fragment_maps>\n #include <emissivemap_fragment>\n\n // accumulation\n #include <lights_physical_fragment>\n #include <lights_fragment_begin>\n #include <lights_fragment_maps>\n #include <lights_fragment_end>\n\n // modulation\n #include <aomap_fragment>\n\n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n #include <transmission_fragment>\n\n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n #ifdef USE_SHEEN\n\n // Sheen energy compensation approximation calculation can be found at the end of\n // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n #endif\n\n #ifdef USE_CLEARCOAT\n\n float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n #endif\n\n #include <output_fragment>\n // #include <tonemapping_fragment> // COMMENTED OUT\n #ifdef TONE_MAPPING\n\t\t#ifdef CUSTOM_TONEMAPPING\n\t\t\tgl_FragColor.rgb = postProcess(gl_FragColor.rgb, toneMappingExposure, contrast, saturation);\n\t\t#else\n\t\t\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n\t\t#endif\n\t#endif\n #include <encodings_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n #include <dithering_fragment>\n\n}\n"}get baseUniforms(){return A.standard.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,rteShadowMatrix:new s,uShadowViewer_high:new d,uShadowViewer_low:new d,uTransforms:[new s],tTransforms:null,objCount:1}}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),e instanceof zt&&(this.originalRoughness=e.originalRoughness,this.artificialRoughness=e.artificialRoughness),this}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.roughness=n.roughness,i.metalness=n.metalness,i.emissive.copy(n.emissive),i.emissiveIntensity=n.emissiveIntensity,i.envMap=n.envMap,i.envMapIntensity=n.envMapIntensity,i.refractionRatio=n.refractionRatio,i.originalRoughness=n.originalRoughness,i.artificialRoughness=n.artificialRoughness}updateArtificialRoughness(e){if(e&&(void 0===this.originalRoughness&&(this.originalRoughness=this.roughness),this.artificialRoughness=e),void 0===this.originalRoughness||void 0===this.artificialRoughness)return;const t=void 0!==e?Math.min(this.originalRoughness,this.artificialRoughness):this.originalRoughness;this.roughness=t,this.needsCopy=!0}onBeforeRender(e,t,i,n,r){this.defines.USE_RTE&&(r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.userData.rteShadowMatrix.value.copy(e.RTEBuffers.rteShadowMatrix),this.userData.uShadowViewer_low.value.copy(e.RTEBuffers.shadowViewerLow),this.userData.uShadowViewer_high.value.copy(e.RTEBuffers.shadowViewerHigh)),this.needsUpdate=!0}}const Ut="\nuniform float size;\nuniform float scale;\n\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\nvec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n}\n\nvec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n}\n\n#ifdef USE_GRADIENT_RAMP\n attribute float gradientIndex;\n varying float vGradientIndex;\n#endif\n\nvoid main() {\n\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n\t#ifdef USE_RTE\n vec4 mvPosition = computeRelativePositionSeparate(position_low.xyz, position.xyz, uViewer_low, uViewer_high);\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #endif\n \n #ifdef USE_INSTANCING\n\n mvPosition = instanceMatrix * mvPosition;\n\n #endif\n mvPosition = modelViewMatrix * mvPosition;\n\n #ifdef USE_GRADIENT_RAMP\n vGradientIndex = gradientIndex;\n #endif\n\n gl_Position = projectionMatrix * mvPosition;\n\n\tgl_PointSize = size;\n\n\t#ifdef USE_SIZEATTENUATION\n\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\n\t#endif\n\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n\n}\n",kt="\nuniform vec3 diffuse;\nuniform float opacity;\n\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\n#ifdef USE_GRADIENT_RAMP\n\tvarying float vGradientIndex;\n\tuniform sampler2D gradientRamp;\n#endif\n\nvoid main() {\n\n\t#include <clipping_planes_fragment>\n\n\tvec3 outgoingLight = vec3( 0.0 );\n\n\t#ifdef USE_GRADIENT_RAMP\n\t\tvec4 diffuseColor = vec4( texture2D(gradientRamp, vec2(vGradientIndex, 0.)).rgb, opacity );\n\t#else\n\t\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#endif\n\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\n\toutgoingLight = diffuseColor.rgb;\n\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\n}\n";class Vt extends Dt{get vertexProgram(){return Ut}get fragmentProgram(){return kt}get baseUniforms(){return A.points.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d}}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.size=n.size,i.sizeAttenuation=n.sizeAttenuation}onBeforeRender(e,t,i,n,r){r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.needsUpdate=!0}}class Ft extends zt{get vertexProgram(){return"\n#define STANDARD\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n uniform mat4 rteShadowMatrix;\n uniform vec3 uShadowViewer_high;\n uniform vec3 uShadowViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifdef USE_TRANSMISSION\n\n varying vec3 vWorldPosition;\n\n#endif\n\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\nattribute float gradientIndex;\nvarying float vGradientIndex;\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\nvoid main() {\n\n #include <uv_vertex>\n #include <uv2_vertex>\n #include <color_vertex>\n #include <morphcolor_vertex>\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #include <normal_vertex>\n\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n #include <displacementmap_vertex>\n //#include <project_vertex> // EDITED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n\n\n mvPosition = modelViewMatrix * mvPosition;\n\n vGradientIndex = gradientIndex;\n gl_Position = projectionMatrix * mvPosition;\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n\n vViewPosition = - mvPosition.xyz;\n\n #include <worldpos_vertex>\n // #include <shadowmap_vertex>// EDITED CHUNK\n #ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\t// Offsetting the position used for querying occlusion along the world normal can be used to reduce shadow acne.\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n vec4 shadowPosition = vec4(transformed, 1.0);\n mat4 shadowMatrix = directionalShadowMatrix[ i ];\n\n #ifdef USE_RTE\n shadowPosition = computeRelativePositionSeparate(position_low.xyz, position.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowMatrix = rteShadowMatrix;\n #endif\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivotShadow = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uShadowViewer_low, uShadowViewer_high);\n shadowPosition.xyz = rotate_vertex_position((shadowPosition - rtePivotShadow).xyz, tQuaternion) * tScale.xyz + rtePivotShadow.xyz + tTranslation.xyz;\n #endif\n shadowWorldPosition = modelMatrix * shadowPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = shadowMatrix * shadowWorldPosition;\n \n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t/*\n\t#if NUM_RECT_AREA_LIGHTS > 0\n\t\t// TODO (abelnation): update vAreaShadowCoord with area light info\n\t#endif\n\t*/\n #endif\n #include <fog_vertex>\n\n#ifdef USE_TRANSMISSION\n\n vWorldPosition = worldPosition.xyz;\n\n#endif\n}\n"}get fragmentProgram(){return"\n#define STANDARD\n\n#ifdef PHYSICAL\n #define IOR\n #define SPECULAR\n#endif\n\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n\n#ifdef IOR\n uniform float ior;\n#endif\n\n#ifdef SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n\n #ifdef USE_SPECULARINTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n\n #ifdef USE_SPECULARCOLORMAP\n uniform sampler2D specularColorMap;\n #endif\n#endif\n\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n\n #ifdef USE_SHEENCOLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n\n #ifdef USE_SHEENROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n\nvarying vec3 vViewPosition;\n\nvarying float vGradientIndex;\nuniform sampler2D gradientRamp;\n\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nvoid main() {\n\n #include <clipping_planes_fragment>\n\n vec4 diffuseColor = vec4( texture2D(gradientRamp, vec2(vGradientIndex, 0.)).rgb, opacity );\n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n\n #include <logdepthbuf_fragment>\n #include <map_fragment>\n #include <color_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n #include <roughnessmap_fragment>\n #include <metalnessmap_fragment>\n #include <normal_fragment_begin>\n #include <normal_fragment_maps>\n #include <clearcoat_normal_fragment_begin>\n #include <clearcoat_normal_fragment_maps>\n #include <emissivemap_fragment>\n\n // accumulation\n #include <lights_physical_fragment>\n #include <lights_fragment_begin>\n #include <lights_fragment_maps>\n #include <lights_fragment_end>\n\n // modulation\n #include <aomap_fragment>\n\n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\n #include <transmission_fragment>\n\n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\n #ifdef USE_SHEEN\n\n // Sheen energy compensation approximation calculation can be found at the end of\n // https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\n #endif\n\n #ifdef USE_CLEARCOAT\n\n float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\n #endif\n\n #include <output_fragment>\n #include <tonemapping_fragment>\n #include <encodings_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n #include <dithering_fragment>\n}\n"}get uniformsDef(){return{...super.uniformsDef,gradientRamp:null}}constructor(e,t=["USE_RTE"]){super(e,t)}setGradientTexture(e){this.userData.gradientRamp.value=e,this.userData.gradientRamp.value.generateMipmaps=!1,this.userData.gradientRamp.value.minFilter=y,this.userData.gradientRamp.value.magFilter=y,this.needsUpdate=!0}}const Qt={Millimeters:"mm",Centimeters:"cm",Meters:"m",Kilometers:"km",Inches:"in",Feet:"ft",Yards:"yd",Miles:"mi"};function qt(e,t=Qt.Meters){switch(e=jt(e),t=jt(t),e){case Qt.Millimeters:switch(t){case Qt.Centimeters:return.1;case Qt.Meters:return.001;case Qt.Kilometers:return 1e-6;case Qt.Inches:return.0393701;case Qt.Feet:return.00328084;case Qt.Yards:return.00109361;case Qt.Miles:return 6.21371e-7}break;case Qt.Centimeters:switch(t){case Qt.Millimeters:return 10;case Qt.Meters:return.01;case Qt.Kilometers:return 1e-5;case Qt.Inches:return.393701;case Qt.Feet:return.0328084;case Qt.Yards:return.0109361;case Qt.Miles:return 621371e-11}break;case Qt.Meters:switch(t){case Qt.Millimeters:return 1e3;case Qt.Centimeters:return 100;case Qt.Kilometers:return.001;case Qt.Inches:return 39.3701;case Qt.Feet:return 3.28084;case Qt.Yards:return 1.09361;case Qt.Miles:return 621371e-9}break;case Qt.Kilometers:switch(t){case Qt.Millimeters:return 1e6;case Qt.Centimeters:return 1e5;case Qt.Meters:return 1e3;case Qt.Inches:return 39370.1;case Qt.Feet:return 3280.84;case Qt.Yards:return 1093.61;case Qt.Miles:return.621371}break;case Qt.Inches:switch(t){case Qt.Millimeters:return 25.4;case Qt.Centimeters:return 2.54;case Qt.Meters:return.0254;case Qt.Kilometers:return 254e-7;case Qt.Feet:return.0833333;case Qt.Yards:return.027777694;case Qt.Miles:return 157828e-10}break;case Qt.Feet:switch(t){case Qt.Millimeters:return 304.8;case Qt.Centimeters:return 30.48;case Qt.Meters:return.3048;case Qt.Kilometers:return 3048e-7;case Qt.Inches:return 12;case Qt.Yards:return.333332328;case Qt.Miles:return 189394e-9}break;case Qt.Miles:switch(t){case Qt.Millimeters:return 1609e3;case Qt.Centimeters:return 160934;case Qt.Meters:return 1609.34;case Qt.Kilometers:return 1.60934;case Qt.Inches:return 63360;case Qt.Feet:return 5280;case Qt.Yards:return 1759.99469184}}return 1}function jt(e){if(!e)return Qt.Meters;switch(e.toLowerCase()){case"mm":case"mil":case"millimeters":case"millimetres":return Qt.Millimeters;case"cm":case"centimetre":case"centimeter":case"centimetres":case"centimeters":return Qt.Centimeters;case"m":case"meter":case"metre":case"meters":case"metres":default:return Qt.Meters;case"inches":case"inch":case"in":return Qt.Inches;case"feet":case"foot":case"ft":return Qt.Feet;case"yard":case"yards":case"yd":return Qt.Yards;case"miles":case"mile":case"mi":return Qt.Miles;case"km":case"kilometers":return Qt.Kilometers}}class Jt extends bt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n uniform vec3 billboardPos;\n uniform mat4 invProjection;\n#endif\n#ifdef BILLBOARD_FIXED\n uniform vec2 billboardSize;\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n \n #if defined(BILLBOARD)\n float div = 1.;\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0) + vec4(position.x, position.y, 0., 0.0));\n #elif defined(BILLBOARD_FIXED)\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0));\n float div = gl_Position.w;\n gl_Position /= gl_Position.w;\n gl_Position.xy += position.xy * billboardSize;\n #else\n gl_Position = projectionMatrix * mvPosition;\n #endif\n\n\n\t#include <logdepthbuf_vertex>\n\t// #include <clipping_planes_vertex> COMMENTED CHUNK\n #if NUM_CLIPPING_PLANES > 0\n #if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n vec4 movelViewProjection = gl_Position * div;\n vClipPosition = - (invProjection * movelViewProjection).xyz;\n #else\n\t vClipPosition = - mvPosition.xyz;\n #endif\n #endif\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}get baseUniforms(){return A.basic.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,uTransforms:[new s],tTransforms:null,billboardPos:new d,billboardSize:new T,invProjection:new s,objCount:1}}set billboardPixelHeight(e){this._billboardPixelHeight=e}constructor(e,t=[]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.refractionRatio=n.refractionRatio,t.userData.billboardPos.value.copy(e.userData.billboardPos.value)}onBeforeRender(e,t,i,n,r){if(this.defines&&this.defines.BILLBOARD_FIXED){const t=e.getDrawingBufferSize(Jt.vecBuff);Jt.vecBuff.set(this._billboardPixelHeight/t.x*2,this._billboardPixelHeight/t.y*2),this.userData.billboardSize.value.copy(Jt.vecBuff),Jt.matBuff.copy(i.projectionMatrix).invert(),this.userData.invProjection.value.copy(Jt.matBuff)}this.defines&&this.defines.USE_RTE&&(r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh)),this.needsUpdate=!0}}Jt.matBuff=new s,Jt.vecBuff=new T;class Gt extends Jt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n // We're disabling alpha testing because we need to use it for shadow rejection. Three.js gave me no choice\n\t// #include <alphatest_fragment> \n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}constructor(e,t=["USE_RTE"]){super(e,t)}}class Wt extends bt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n uniform vec3 billboardPos;\n uniform mat4 invProjection;\n#endif\n#ifdef BILLBOARD_FIXED\n uniform vec2 billboardSize;\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n \n #if defined(BILLBOARD)\n float div = 1.;\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0) + vec4(position.x, position.y, 0., 0.0));\n #elif defined(BILLBOARD_FIXED)\n gl_Position = projectionMatrix * (viewMatrix * vec4(billboardPos, 1.0));\n float div = gl_Position.w;\n gl_Position /= gl_Position.w;\n gl_Position.xy += position.xy * billboardSize;\n #else\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n #endif\n\t#include <logdepthbuf_vertex>\n\t// #include <clipping_planes_vertex> COMMENTED CHUNK\n #if NUM_CLIPPING_PLANES > 0\n #if defined(BILLBOARD) || defined(BILLBOARD_FIXED)\n vec4 movelViewProjection = gl_Position * div;\n vClipPosition = - (invProjection * movelViewProjection).xyz;\n #else\n\t vClipPosition = - mvPosition.xyz;\n #endif\n #endif\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}get baseUniforms(){return A.basic.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,uTransforms:[new s],tTransforms:null,objCount:1,billboardPos:new d,billboardSize:new T,invProjection:new s}}set billboardPixelHeight(e){this._billboardPixelHeight=e}get billboardPixelHeight(){return this._billboardPixelHeight}constructor(e,t=[]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}getDerivedMaterial(){const e=Qe(this);for(const t in this.userData)e.uniforms[t]=this.userData[t];return e}fastCopy(e,t){super.fastCopy(e,t);const i=t,n=e;i.color.copy(n.color),i.refractionRatio=n.refractionRatio,t.userData.billboardPos.value.copy(e.userData.billboardPos.value)}onBeforeRender(e,t,i,n,r){if(this.defines&&this.defines.BILLBOARD_FIXED){const t=e.getDrawingBufferSize(Wt.vecBuff);Wt.vecBuff.set(this._billboardPixelHeight/t.x*2,this._billboardPixelHeight/t.y*2),this.userData.billboardSize.value.copy(Wt.vecBuff),Wt.matBuff.copy(i.projectionMatrix).invert(),this.userData.invProjection.value.copy(Wt.matBuff)}this.needsUpdate=!0}}Wt.matBuff=new s,Wt.vecBuff=new T;class Ht extends Vt{get vertexProgram(){return Ut}get fragmentProgram(){return kt}get uniformsDef(){return{...super.uniformsDef,gradientRamp:null}}constructor(e,t=["USE_RTE","USE_GRADIENT_RAMP"]){super(e,t)}setGradientTexture(e){this.userData.gradientRamp.value=e,this.userData.gradientRamp.value.generateMipmaps=!1,this.userData.gradientRamp.value.minFilter=y,this.userData.gradientRamp.value.magFilter=y,this.needsUpdate=!0}fastCopy(e,t){super.fastCopy(e,t),t.userData.gradientRamp.value=e.userData.gradientRamp.value}}var Xt;const Kt={id:"defaultGradient",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAABCAIAAAAn2YEhAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHoSURBVDhPTZRRdoMwDAQx9//seaEzI5sXpwFptVqvMOm6/t7retd1Le8XAdF6+SMEYr03l2fF4GJprcfixl4+tyklG6ZvxeAKWGxBQsKDk9FIdD+pDUFiak9IDQEWMAM4dczEZmWSDOXPBuAQ1OCLYI4bc0S0bbnlFOR6Vgo2WwgraIvgbh8L2ZNxRH5T7QWKyKz9E7kNnUE+KTA3Oz6O3YIOkop+4juHoh1H+m3slByVm9vgOCOoXr7HvBJSjLdJRUHuSrbse+jDiZOPPt/jZIv8WPJeW+JVzYj2CIHc9GaEjmc/OhF3C+neQoBgW/KKZx2VuyxFKqDBNwfqA8NXa7p0781GBT6TPkSOozQPMPer4sBqTrvZUZgqSKP5oaCXXirJdZ4jqyRbtyE8amCkLLkzW9qik7Fx9mWE9pHEh9vMHsIawZSPcxut2DcDyjzeKinisypDwQoKnLU5WVLz7pGO/nbrIhC2MMOaGrj8PRLmfKpSJcT4NZn5wFgbKbVlCzia76HbQZMAjP72IyX94v189i7Ewfa2wcdMTfGOqekE2i/O9LZRi/T8qwFuuvknA3kW/YnLTMVO22OwUXg0OZ1IAdeqcEjXffH2jjEqNmSvRZbF43BLuUPsYsk5XPu3NqD3WKzr/QfN+6p+JpC7ZQAAAABJRU5ErkJggg==",type:dt.TEXTURE_8BPP};var Yt,Zt;!function(e){e[e.GHOST=0]="GHOST",e[e.GRADIENT=1]="GRADIENT",e[e.COLORED=2]="COLORED",e[e.HIDDEN=3]="HIDDEN"}(Yt||(Yt={}));class _t{constructor(){this.materialMap={}}static renderMaterialFromNode(e,t){if(!e)return null;let i=null;return e.model.raw.renderMaterial&&(i={id:e.model.raw.renderMaterial.id,color:e.model.raw.renderMaterial.diffuse,opacity:void 0!==e.model.raw.renderMaterial.opacity?e.model.raw.renderMaterial.opacity:1,roughness:e.model.raw.renderMaterial.roughness,metalness:e.model.raw.renderMaterial.metalness,vertexColors:t&&t.model.raw.colors&&t.model.raw.colors.length>0}),i}static displayStyleFromNode(e){if(!e)return null;let t=null;if(e.model.raw.displayStyle){let i=e.model.raw.displayStyle.lineweight||0;const n=e.model.raw.displayStyle.units;i=n?i*qt(n):0,i=i<.001?0:i,t={id:e.model.raw.displayStyle.id,color:e.model.raw.displayStyle.diffuse||e.model.raw.displayStyle.color,lineWeight:i}}else e.model.raw.renderMaterial&&(t={id:e.model.raw.renderMaterial.id,color:e.model.raw.renderMaterial.diffuse,lineWeight:0});return t}static fastCopy(e,t){t.fastCopy(e,t)}static renderMaterialToString(e){return e.color.toString()+"/"+e.opacity.toString()+"/"+e.roughness.toString()+"/"+e.metalness.toString()}static displayStyleToString(e){var t,i,n;return(null===(t=e.color)||void 0===t?void 0:t.toString())+"/"+(null===(i=e.lineWeight)||void 0===i?void 0:i.toString())+(null===(n=e.opacity)||void 0===n?void 0:n.toString())}static hashCode(e){let t=0;for(let i=0;i<e.length;i++)t=Math.imul(31,t)+e.charCodeAt(i)|0;return t}static isMaterialInstance(e){return e instanceof E}static isFilterMaterial(e){return"filterType"in e}static isRendeMaterial(e){return"color"in e&&"opacity"in e&&"roughness"in e&&"metalness"in e&&"vertexColors"in e}static isDisplayStyle(e){return"color"in e&&"lineWeight"in e}static getMaterialHash(e,t){t||(t=e.renderData.renderMaterial||e.renderData.displayStyle);let i="";t&&(i=!Xt.isRendeMaterial(t)||e.geometryType!==Et.MESH&&e.geometryType!==Et.POINT&&e.geometryType!==Et.TEXT?Xt.isDisplayStyle(t)&&e.geometryType!==Et.MESH?Xt.displayStyleToString(t):"":Xt.renderMaterialToString(t),t.stencilOutlines&&(i+="/"+t.stencilOutlines),t.pointSize&&(i+="/"+t.pointSize));let n="";e.renderData.geometry.attributes&&(n=e.renderData.geometry.attributes.COLOR?"vertexColors":"");const r=e.geometryType.toString()+n+i+(e.geometryType===Et.TEXT&&t?e.renderData.id:"")+(e.renderData.geometry.instanced?"instanced":"");return Xt.hashCode(r)}static isTransparent(e){return!0===e.transparent&&e.opacity<1}static isOpaque(e){return!1===e.transparent||!0===e.transparent&&e.opacity>=1}async createDefaultMeshMaterials(){this.meshGhostMaterial=new Gt({color:16777215,side:x,transparent:!0,opacity:.1},["USE_RTE"]),this.meshGhostMaterial.depthWrite=!1,this.meshGhostMaterial.alphaTest=1,this.meshGradientMaterial=new Ft({side:R,transparent:!1,opacity:1},["USE_RTE"]),this.meshGradientMaterial.setGradientTexture(await At.getTexture(Kt)),this.meshGradientMaterial.clipShadows=!0,this.meshTransparentGradientMaterial=new Ft({side:R,transparent:!0,opacity:.5},["USE_RTE"]),this.meshTransparentGradientMaterial.setGradientTexture(await At.getTexture(Kt)),this.meshTransparentGradientMaterial.clipShadows=!0,this.meshColoredMaterial=new Ft({side:R,transparent:!1,wireframe:!1},["USE_RTE"]),this.meshColoredMaterial.clipShadows=!0,this.meshTransparentColoredMaterial=new Ft({side:R,transparent:!0,opacity:.5},["USE_RTE"]),this.meshHiddenMaterial=new zt({side:R,transparent:!1,opacity:1,wireframe:!1},["USE_RTE"]),this.meshHiddenMaterial.visible=!1}async createLineDefaultMaterials(){this.lineGhostMaterial=new Pt({color:16777215,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.lineGhostMaterial.color=new l(16777215),this.lineGhostMaterial.linewidth=1,this.lineGhostMaterial.worldUnits=!0,this.lineGhostMaterial.vertexColors=!0,this.lineGhostMaterial.pixelThreshold=.5,this.lineGhostMaterial.resolution=new T,this.lineColoredMaterial=new Pt({color:16777215,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.lineColoredMaterial.color=new l(16777215),this.lineColoredMaterial.linewidth=1,this.lineColoredMaterial.worldUnits=!1,this.lineColoredMaterial.vertexColors=!0,this.lineColoredMaterial.pixelThreshold=.5,this.lineColoredMaterial.resolution=new T,this.lineHiddenMaterial=new Pt({color:16777215,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.lineHiddenMaterial.color=new l(16711680),this.lineHiddenMaterial.linewidth=1,this.lineHiddenMaterial.worldUnits=!1,this.lineHiddenMaterial.vertexColors=!0,this.lineHiddenMaterial.pixelThreshold=.5,this.lineHiddenMaterial.resolution=new T,this.lineHiddenMaterial.visible=!1}async createDefaultPointMaterials(){this.pointGhostMaterial=new Vt({color:16777215,vertexColors:!1,size:2,opacity:.01,sizeAttenuation:!1},["USE_RTE"]),this.pointCloudColouredMaterial=new Ht({color:16777215,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE","USE_GRADIENT_RAMP"]),this.pointCloudColouredMaterial.toneMapped=!1,this.pointCloudGradientMaterial=new Ht({color:16777215,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE","USE_GRADIENT_RAMP"]),this.pointCloudGradientMaterial.setGradientTexture(await At.getTexture(Kt)),this.pointGhostMaterial.toneMapped=!1}async createDefaultTextMaterials(){this.textGhostMaterial=new Wt({color:16777215,opacity:.1,side:R},["USE_RTE"]),this.textGhostMaterial.transparent=this.textGhostMaterial.opacity<1,this.textGhostMaterial.depthWrite=!this.textGhostMaterial.transparent,this.textGhostMaterial.toneMapped=!1,this.textGhostMaterial.color.convertSRGBToLinear(),this.textGhostMaterial=this.textGhostMaterial.getDerivedMaterial(),this.textColoredMaterial=new Wt({color:16777215,opacity:1,side:R},["USE_RTE"]),this.textColoredMaterial.transparent=this.textColoredMaterial.opacity<1,this.textColoredMaterial.depthWrite=!this.textColoredMaterial.transparent,this.textColoredMaterial.toneMapped=!1,this.textColoredMaterial.color.convertSRGBToLinear(),this.textColoredMaterial=this.textColoredMaterial.getDerivedMaterial(),this.textHiddenMaterial=new Wt({color:16777215,opacity:1,side:R},["USE_RTE"]),this.textHiddenMaterial.visible=!1,this.textHiddenMaterial.toneMapped=!1,this.textHiddenMaterial.color.convertSRGBToLinear(),this.textHiddenMaterial=this.textHiddenMaterial.getDerivedMaterial()}async createDefaultNullMaterials(){this.materialMap[Xt.NullRenderMaterialHash]=new zt({color:8355711,emissive:0,roughness:1,metalness:0,side:R},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialHash].color.convertSRGBToLinear(),this.materialMap[Xt.NullRenderMaterialVertexColorsHash]=new zt({color:16777215,emissive:0,roughness:1,metalness:0,side:R,vertexColors:!0},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialVertexColorsHash].color.convertSRGBToLinear();const e=Xt.NullDisplayStyleHash;this.materialMap[e]=new Pt({color:8355711,linewidth:1,worldUnits:!1,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]),this.materialMap[e].color=new l(8355711),this.materialMap[e].color.convertSRGBToLinear(),this.materialMap[e].linewidth=1,this.materialMap[e].worldUnits=!1,this.materialMap[e].vertexColors=!0,this.materialMap[e].pixelThreshold=.5,this.materialMap[e].resolution=new T,this.materialMap[Xt.NullTextDisplayStyle]=new Wt({color:8355711,opacity:1,side:R},["USE_RTE"]),this.materialMap[Xt.NullTextDisplayStyle].transparent=!1,this.materialMap[Xt.NullTextDisplayStyle].depthWrite=!0,this.materialMap[Xt.NullTextDisplayStyle].toneMapped=!1,this.materialMap[Xt.NullTextDisplayStyle].color.convertSRGBToLinear(),this.materialMap[Xt.NullPointMaterialHash]=new Vt({color:8355711,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE"]),this.materialMap[Xt.NullPointMaterialHash].color.convertSRGBToLinear(),this.materialMap[Xt.NullPointCloudVertexColorsMaterialHash]=new Vt({color:16777215,vertexColors:!0,size:2,sizeAttenuation:!1},["USE_RTE"]),this.materialMap[Xt.NullPointCloudMaterialHash]=new Vt({color:16777215,vertexColors:!1,size:2,sizeAttenuation:!1},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialInstancedHash]=new zt({color:8355711,emissive:0,roughness:1,metalness:0,side:R},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialInstancedHash].color.convertSRGBToLinear(),this.materialMap[Xt.NullRenderMaterialInstancedVertexColorHash]=new zt({color:16777215,emissive:0,roughness:1,metalness:0,side:R,vertexColors:!0},["USE_RTE"]),this.materialMap[Xt.NullRenderMaterialInstancedVertexColorHash].color.convertSRGBToLinear()}async createDefaultMaterials(){await this.createDefaultMeshMaterials(),await this.createLineDefaultMaterials(),await this.createDefaultPointMaterials(),await this.createDefaultTextMaterials(),await this.createDefaultNullMaterials(),this.defaultGradientTextureData=await At.getTextureData(Kt)}makeMeshMaterial(e){const t=new zt({color:e.color,emissive:0,roughness:e.roughness,metalness:e.metalness,opacity:e.opacity,side:R},["USE_RTE"]);return t.vertexColors=e.vertexColors,t.transparent=t.opacity<1,t.depthWrite=!t.transparent,t.clipShadows=!0,t.color.convertSRGBToLinear(),t.updateArtificialRoughness(Xt.DEFAULT_ARTIFICIAL_ROUGHNESS),t}makeLineMaterial(e){const t=new Pt({color:e.color,linewidth:e.lineWeight>0?e.lineWeight:1,worldUnits:e.lineWeight>0,vertexColors:!0,alphaToCoverage:!1,resolution:new T},["USE_RTE"]);return t.color=new l(e.color),t.color.convertSRGBToLinear(),t.opacity=void 0!==e.opacity?e.opacity:1,t.linewidth=e.lineWeight>0?e.lineWeight:1,t.worldUnits=e.lineWeight>0,t.vertexColors=!0,t.pixelThreshold=.5,t.resolution=new T,t}makePointMaterial(e){const t=-16777216===e.color,i=e.vertexColors&&t?16777215:e.color,n=new Vt({color:i,opacity:e.opacity,vertexColors:e.vertexColors,size:2,sizeAttenuation:!1},["USE_RTE"]);return n.transparent=n.opacity<1,n.depthWrite=!n.transparent,n.toneMapped=!1,n.color.convertSRGBToLinear(),n}makeTextMaterial(e){const t=new Wt({color:e.color,opacity:1,side:R},["USE_RTE"]);return t.transparent=t.opacity<1,t.depthWrite=!t.transparent,t.toneMapped=!1,t.color.convertSRGBToLinear(),t}getMaterial(e,t,i){let n;switch(i){case Et.MESH:n=this.getMeshMaterial(e,t);break;case Et.LINE:n=this.getLineMaterial(e,t);break;case Et.POINT:n=this.getPointMaterial(e,t);break;case Et.POINT_CLOUD:n=this.getPointCloudMaterial(e,t);break;case Et.TEXT:n=this.getTextMaterial(e,t)}return n.clippingPlanes=[],n}getMeshMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makeMeshMaterial(t)),this.materialMap[e]}getLineMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makeLineMaterial(t)),this.materialMap[e]}getPointMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makePointMaterial(t)),this.materialMap[e]}getPointCloudMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.getPointMaterial(e,t)),this.materialMap[e]}getTextMaterial(e,t){return this.materialMap[e]||(this.materialMap[e]=this.makeTextMaterial(t)),this.materialMap[e].getDerivedMaterial()}getGhostMaterial(e,t){switch(e.geometryType){case Et.MESH:return this.meshGhostMaterial;case Et.LINE:return this.lineGhostMaterial;case Et.POINT:case Et.POINT_CLOUD:return this.pointGhostMaterial;case Et.TEXT:return this.textGhostMaterial}}getGradientMaterial(e,t){switch(e.geometryType){case Et.MESH:{const i=e.transparent?this.meshTransparentGradientMaterial:this.meshGradientMaterial;return(null==t?void 0:t.rampTexture)&&i.setGradientTexture(t.rampTexture),i}case Et.LINE:return this.lineColoredMaterial;case Et.POINT:{const e=this.pointCloudGradientMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.POINT_CLOUD:{const e=this.pointCloudGradientMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.TEXT:return this.textColoredMaterial}}getColoredMaterial(e,t){switch(e.geometryType){case Et.MESH:{const i=e.transparent?this.meshTransparentColoredMaterial:this.meshColoredMaterial;return(null==t?void 0:t.rampTexture)&&i.setGradientTexture(t.rampTexture),i}case Et.LINE:return this.lineColoredMaterial;case Et.POINT:{const e=this.pointCloudColouredMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.POINT_CLOUD:{const e=this.pointCloudColouredMaterial;return(null==t?void 0:t.rampTexture)&&e.setGradientTexture(t.rampTexture),e}case Et.TEXT:return this.textColoredMaterial}}getHiddenMaterial(e,t){switch(e.geometryType){case Et.MESH:return this.meshHiddenMaterial;case Et.LINE:return this.lineHiddenMaterial;case Et.POINT:case Et.POINT_CLOUD:return this.meshHiddenMaterial;case Et.TEXT:return this.textHiddenMaterial}}getFilterMaterial(e,t){let i=null;switch(t.filterType){case Yt.GHOST:i=this.getGhostMaterial(e,t);break;case Yt.GRADIENT:i=this.getGradientMaterial(e,t);break;case Yt.COLORED:i=this.getColoredMaterial(e,t);break;case Yt.HIDDEN:i=this.getHiddenMaterial(e,t)}return i&&(i.clippingPlanes=[]),i}getDataMaterial(e,t){const i=Xt.getMaterialHash(e,t);return this.getMaterial(i,t,e.geometryType)}getFilterMaterialOptions(e){switch(e.filterType){case Yt.COLORED:return{rampIndex:void 0!==e.rampIndex?e.rampIndex:void 0,rampIndexColor:e.rampIndexColor,rampTexture:e.rampTexture?e.rampTexture:void 0,rampWidth:e.rampTexture?e.rampTexture.image.width:void 0};case Yt.GRADIENT:return{rampIndex:void 0!==e.rampIndex?e.rampIndex:void 0,rampIndexColor:void 0!==e.rampIndexColor?e.rampIndexColor:e.rampIndex?(new l).setRGB(this.defaultGradientTextureData.data[4*Math.floor(e.rampIndex*(this.defaultGradientTextureData.width-1))]/255,this.defaultGradientTextureData.data[4*Math.floor(e.rampIndex*(this.defaultGradientTextureData.width-1))+1]/255,this.defaultGradientTextureData.data[4*Math.floor(e.rampIndex*(this.defaultGradientTextureData.width-1))+2]/255).convertSRGBToLinear():void 0,rampTexture:e.rampTexture?e.rampTexture:this.meshGradientMaterial.userData.gradientRamp.value,rampWidth:e.rampTexture?e.rampTexture.image.width:this.meshGradientMaterial.userData.gradientRamp.value.image.width};default:return null}}purge(){}}Xt=_t,_t.UNIFORM_VECTORS_USED=33,_t.DEFAULT_ARTIFICIAL_ROUGHNESS=.6,_t.NullRenderMaterialHash=Xt.hashCode(Et.MESH.toString()),_t.NullRenderMaterialVertexColorsHash=Xt.hashCode(Et.MESH.toString()+"vertexColors"),_t.NullDisplayStyleHash=Xt.hashCode(Et.LINE.toString()),_t.NullTextDisplayStyle=Xt.hashCode(Et.TEXT.toString()),_t.NullPointMaterialHash=Xt.hashCode(Et.POINT.toString()),_t.NullPointCloudMaterialHash=Xt.hashCode(Et.POINT_CLOUD.toString()),_t.NullPointCloudVertexColorsMaterialHash=Xt.hashCode(Et.POINT_CLOUD.toString()+"vertexColors"),_t.NullRenderMaterialInstancedHash=Xt.hashCode(Et.MESH.toString()+"instanced"),_t.NullRenderMaterialInstancedVertexColorHash=Xt.hashCode(Et.MESH.toString()+"vertexColorsinstanced"),function(e){e.View3D="View3D",e.BlockInstance="BlockInstance",e.Pointcloud="Pointcloud",e.Brep="Brep",e.Mesh="Mesh",e.Point="Point",e.Line="Line",e.Polyline="Polyline",e.Box="Box",e.Polycurve="Polycurve",e.Curve="Curve",e.Circle="Circle",e.Arc="Arc",e.Ellipse="Ellipse",e.RevitInstance="RevitInstance",e.Text="Text",e.Transform="Transform",e.Unknown="Unknown"}(Zt||(Zt={}));const $t=[Zt.Pointcloud,Zt.Brep,Zt.Mesh,Zt.Point,Zt.Line,Zt.Polyline,Zt.Box,Zt.Polycurve,Zt.Curve,Zt.Circle,Zt.Arc,Zt.Ellipse,Zt.Text];class ei{}class ti{get guid(){return this._guid||(this._guid=this._renderData.subtreeId+this._renderData.id),this._guid}get renderData(){return this._renderData}get renderMaterialHash(){return this._materialHash}get hasGeometry(){return this._renderData.geometry&&this._renderData.geometry.attributes}get hasMetadata(){return this._renderData.geometry&&this._renderData.geometry.metaData}get speckleType(){return this._renderData.speckleType}get geometryType(){return this._geometryType}get batchStart(){return this._batchIndexStart}get batchEnd(){return this._batchIndexStart+this._batchIndexCount}get batchCount(){return this._batchIndexCount}get batchId(){return this._batchId}get aabb(){return this._aabb}get transparent(){return this._renderData.renderMaterial&&this._renderData.renderMaterial.opacity<1||!1}get vertStart(){return this._batchVertexStart}get vertEnd(){return this._batchVertexEnd}get needsSegmentConversion(){return this._renderData.speckleType===Zt.Curve||this._renderData.speckleType===Zt.Polyline||this._renderData.speckleType===Zt.Polycurve||this.renderData.speckleType===Zt.Arc||this.renderData.speckleType===Zt.Circle||this.renderData.speckleType===Zt.Ellipse}get validGeometry(){return this._renderData.geometry.attributes&&this._renderData.geometry.attributes.POSITION&&this._renderData.geometry.attributes.POSITION.length>0&&(this._geometryType!==Et.MESH||this._renderData.geometry.attributes.INDEX&&this._renderData.geometry.attributes.INDEX.length>0)||!1}constructor(e){this._guid=null,this._renderData=e,this._geometryType=this.getGeometryType(),this._materialHash=_t.getMaterialHash(this),this._batchId="",this._batchIndexCount=0,this._batchIndexStart=-1,this._batchVertexStart=-1,this._batchVertexEnd=-1}setBatchData(e,t,i,n,r){this._batchId=e,this._batchIndexStart=t,this._batchIndexCount=i,void 0!==n&&(this._batchVertexStart=n),void 0!==r&&(this._batchVertexEnd=r)}computeAABB(){this._aabb=new h,this._renderData.geometry.attributes&&this._aabb.setFromArray(this._renderData.geometry.attributes.POSITION)}getGeometryType(){switch(this._renderData.speckleType){case Zt.Mesh:case Zt.Brep:return Et.MESH;case Zt.Point:return Et.POINT;case Zt.Pointcloud:return Et.POINT_CLOUD;case Zt.Text:return Et.TEXT;default:return Et.LINE}}disposeGeometry(){for(const e in this._renderData.geometry.attributes)this._renderData.geometry.attributes[e]=[]}}var ii;!function(e){e.POSITION="POSITION",e.COLOR="COLOR",e.NORMAL="NORMAL",e.UV="UV",e.TANGENT="TANGENT",e.INDEX="INDEX"}(ii||(ii={}));class ni{static updateRTEGeometry(e,t){if("BufferGeometry"===e.type||"PlaneGeometry"===e.type||"CircleGeometry"===e.type){const i=new Float32Array(t.length),n=e.attributes.position.array;ni.DoubleToHighLowBuffer(t,i,n),e.setAttribute("position_low",new C(i,3))}else if("LineGeometry"===e.type||"LineSegmentsGeometry"===e.type){const i=new Float32Array(t.length),n=e.attributes.instanceStart.array;ni.DoubleToHighLowBuffer(t,i,n);const r=new M(new Float32Array(i),6,1);e.setAttribute("instanceStartLow",new O(r,3,0)),e.setAttribute("instanceEndLow",new O(r,3,3))}}static mergeGeometryAttribute(e,t){let i=0;for(let n=0;n<e.length;n++){const r=e[n];if(!r||!t)throw new Error("Cannot merge geometries. Indices or positions are undefined");t.set(r,i),i+=r.length}return t}static mergeIndexAttribute(e,t){let i=0;const n=[];for(let r=0;r<e.length;++r){const s=e[r];if(!s||!t)throw new Error("Cannot merge geometries. Indices or positions are undefined");for(let e=0;e<s.length;++e)n.push(s[e]+i);i+=t.length}return n}static mergeGeometryData(e){const t=e[0].attributes,i={attributes:{},bakeTransform:null,transform:null};for(let t=0;t<e.length;t++)null!==e[t].bakeTransform&&ni.transformGeometryData(e[t],e[t].bakeTransform);if(t&&t[ii.INDEX]){const t=e.map((e=>{if(e.attributes)return e.attributes[ii.INDEX]})),n=e.map((e=>{if(e.attributes)return e.attributes[ii.POSITION]}));i.attributes&&(i.attributes[ii.INDEX]=ni.mergeIndexAttribute(t,n))}for(const n in t)if(n!==ii.INDEX){const t=e.map((e=>{if(e.attributes)return e.attributes[n]}));i.attributes&&(i.attributes[n]=ni.mergeGeometryAttribute(t,n===ii.POSITION?new Float64Array(t.reduce(((e,t)=>t?e+t.length:0),0)):new Float32Array(t.reduce(((e,t)=>t?e+t.length:0),0))))}return e.forEach((e=>{for(const t in e.attributes)delete e.attributes[t]})),i}static transformGeometryData(e,t){if(!e.attributes)return;if(!e.attributes.POSITION)return;if(!t)return;const i=t.elements;for(let t=0;t<e.attributes.POSITION.length;t+=3){const n=e.attributes.POSITION[t],r=e.attributes.POSITION[t+1],s=e.attributes.POSITION[t+2],a=1/(i[3]*n+i[7]*r+i[11]*s+i[15]);e.attributes.POSITION[t]=(i[0]*n+i[4]*r+i[8]*s+i[12])*a,e.attributes.POSITION[t+1]=(i[1]*n+i[5]*r+i[9]*s+i[13])*a,e.attributes.POSITION[t+2]=(i[2]*n+i[6]*r+i[10]*s+i[14])*a}}static unpackColors(e){const t=new Array(3*e.length);for(let i=0;i<e.length;i++){const n=e[i],r=n>>16&255,s=n>>8&255,a=255&n;t[3*i]=r/255,t[3*i+1]=s/255,t[3*i+2]=a/255}return t}static DoubleToHighLowVector(e,t,i){let n=e.x;if(n>=0){this.floatArrayBuff[0]=n;const e=this.floatArrayBuff[0];i.x=e,t.x=n-e}else{this.floatArrayBuff[0]=-n;const e=this.floatArrayBuff[0];i.x=-e,t.x=n+e}if(n=e.y,n>=0){this.floatArrayBuff[0]=n;const e=this.floatArrayBuff[0];i.y=e,t.y=n-e}else{this.floatArrayBuff[0]=-n;const e=this.floatArrayBuff[0];i.y=-e,t.y=n+e}if(n=e.z,n>=0){this.floatArrayBuff[0]=n;const e=this.floatArrayBuff[0];i.z=e,t.z=n-e}else{this.floatArrayBuff[0]=-n;const e=this.floatArrayBuff[0];i.z=-e,t.z=n+e}}static DoubleToHighLowBuffer(e,t,i){for(let n=0;n<e.length;n++){const r=e[n];if(r>=0){this.floatArrayBuff[0]=r;const e=this.floatArrayBuff[0];i[n]=e,t[n]=r-e}else{this.floatArrayBuff[0]=-r;const e=this.floatArrayBuff[0];i[n]=-e,t[n]=r+e}}}static computeVertexNormals(e,t){const i=e.index,n=e.getAttribute("position");if(void 0!==n){let r=e.getAttribute("normal");if(void 0===r)r=new b(new Float32Array(3*n.count),3),e.setAttribute("normal",r);else for(let e=0,t=r.count;e<t;e++)r.setXYZ(e,0,0,0);const s=new d,a=new d,o=new d,l=new d,c=new d,h=new d,u=new d,p=new d;if(i)for(let e=0,n=i.count;e<n;e+=3){const n=i.getX(e+0),d=i.getX(e+1),m=i.getX(e+2);s.fromArray(t,3*n),a.fromArray(t,3*d),o.fromArray(t,3*m),u.subVectors(o,a),p.subVectors(s,a),u.cross(p),l.fromBufferAttribute(r,n),c.fromBufferAttribute(r,d),h.fromBufferAttribute(r,m),l.add(u),c.add(u),h.add(u),r.setXYZ(n,l.x,l.y,l.z),r.setXYZ(d,c.x,c.y,c.z),r.setXYZ(m,h.x,h.y,h.z)}else for(let e=0,i=n.count;e<i;e+=3)s.fromArray(t,3*e),a.fromArray(t,3*e+1),o.fromArray(t,3*e+2),u.subVectors(o,a),p.subVectors(s,a),u.cross(p),r.setXYZ(e+0,u.x,u.y,u.z),r.setXYZ(e+1,u.x,u.y,u.z),r.setXYZ(e+2,u.x,u.y,u.z);e.normalizeNormals(),r.needsUpdate=!0}}}ni.floatArrayBuff=new Float32Array(1);class ri{get id(){return this.root.model.id}constructor(e,t){this.cancel=!1,this.tree=e,this.root=t}buildRenderTree(e){return this.tree.walkAsync((t=>{const i=this.buildRenderNode(t,e);return t.model.renderView=i?new ti(i):null,this.applyTransforms(t),t.model.instanced||e.disposeNodeGeometryData(t.model),!this.cancel}),this.root)}applyTransforms(e){if(e.model.renderView){const t=this.computeTransform(e);e.model.renderView.hasGeometry?(e.model.renderView.renderData.geometry.bakeTransform&&t.multiply(e.model.renderView.renderData.geometry.bakeTransform),e.model.instanced&&e.model.renderView.speckleType===Zt.Mesh?e.model.renderView.renderData.geometry.transform=t:ni.transformGeometryData(e.model.renderView.renderData.geometry,t),e.model.renderView.computeAABB()):e.model.renderView.hasMetadata&&e.model.renderView.renderData.geometry.bakeTransform.premultiply(t)}}buildRenderNode(e,t){let i=null;const n=t.convertNodeToGeometryData(e.model);if(n){const r=this.getRenderMaterialNode(e),s=this.getDisplayStyleNode(e);i={id:e.model.id,subtreeId:e.model.subtreeId,speckleType:t.getSpeckleType(e.model),geometry:n,renderMaterial:_t.renderMaterialFromNode(r||s,e),displayStyle:_t.displayStyleFromNode(s||r)}}return i}getRenderMaterialNode(e){if(e.model.raw.renderMaterial)return e;const t=this.tree.getAncestors(e);for(let e=0;e<t.length;e++)if(t[e].model.raw.renderMaterial)return t[e];return null}getDisplayStyleNode(e){if(e.model.raw.displayStyle)return e;const t=this.tree.getAncestors(e);for(let e=0;e<t.length;e++)if(t[e].model.raw.displayStyle)return t[e];return null}computeTransform(e){if(e.model.renderView.speckleType===Zt.Transform)return e.model.renderView.renderData.transform;const t=new s,i=this.tree.getAncestors(e);for(let e=0;e<i.length;e++)if(i[e].model.renderView){const n=i[e].model.renderView.renderData;n.speckleType===Zt.Transform&&n.geometry.transform&&t.premultiply(n.geometry.transform)}return t}getInstances(){return this.tree.getInstances(this.root.model.subtreeId)}getRenderableRenderViews(...e){return this.getRenderableNodes(...e).map((e=>e.model.renderView))}getRenderableNodes(...e){return this.root.all((t=>t.model.renderView&&(t.model.renderView.hasGeometry||t.model.renderView.hasMetadata)&&e.includes(t.model.renderView.renderData.speckleType)))}getRenderViewsForNode(e){return this.getRenderViewNodesForNode(e).map((e=>e.model.renderView))}getRenderViewNodesForNode(e){return e.model.atomic&&e.model.renderView?[e]:e.all((e=>e.model.renderView&&(e.model.renderView.hasGeometry||e.model.renderView.hasMetadata)))}getRenderViewsForNodeId(e){const t=this.tree.findId(e);if(!t)return St.warn(`Id ${e} does not exist`),null;const i=[];return t.forEach((e=>{i.push(...this.getRenderViewsForNode(e))})),i}getAtomicParent(e){return e.model.atomic?e:this.tree.getAncestors(e).find((e=>e.model.atomic))}purge(){}cancelBuild(){this.cancel=!0,this.tree.purge(this.id),this.purge()}}class si{get nodeCount(){return Object.keys(this.all).length}constructor(e){this.all={},this.instances={},this.registerNode(e)}addNode(e){if(e.model.id.includes(si.COMPOUND_ID_CHAR))this.registerInstance(e);else{if(this.all[e.model.id])return!1;this.registerNode(e)}return!0}removeNode(e){if(e.model.id.includes(si.COMPOUND_ID_CHAR)){const t=e.model.id.substring(0,e.model.id.indexOf(si.COMPOUND_ID_CHAR));delete this.instances[t][e.model.id]}else delete this.all[e.model.id];return!0}getNodeById(e){if(e.includes(si.COMPOUND_ID_CHAR)){const t=e.substring(0,e.indexOf(si.COMPOUND_ID_CHAR));if(!this.instances[t])return St.warn("Could not find instance with baseID: ",t),null;if(this.instances[t][e])return[this.instances[t][e]]}return this.all[e]?[this.all[e]]:this.instances[e]?Object.values(this.instances[e]):null}getSubtreeById(e){return this.all[e]}hasId(e){if(e.includes(si.COMPOUND_ID_CHAR)){const t=e.substring(0,e.indexOf(si.COMPOUND_ID_CHAR));return!!this.instances[t]}return!!this.all[e]||!!this.instances[e]}registerInstance(e){const t=e.model.id.substring(0,e.model.id.indexOf(si.COMPOUND_ID_CHAR));this.instances[t]||(this.instances[t]={}),this.instances[t][e.model.id]=e}registerNode(e){this.all[e.model.id]=e}purge(){this.all={},this.instances={}}}si.COMPOUND_ID_CHAR="~";class ai{constructor(){this.renderTreeInstances={},this.nodeMaps={},this.supressWarnings=!0,this.subtreeId=0,this.tree=new Ve,this._root=this.parse({id:ai.ROOT_ID,raw:{},atomic:!0,children:[],renderView:null})}getRenderTree(e){if(!this._root)return console.error("WorldTree not initialised"),null;const t=e?this.findSubtree(e):this.root;if(!t)return null;const i=t.model.id;return this.renderTreeInstances[i]||(this.renderTreeInstances[i]=new ri(this,t)),this.renderTreeInstances[i]}get root(){return this._root}get nextSubtreeId(){return++this.subtreeId}get nodeCount(){let e=0;for(const t in this.nodeMaps)e+=this.nodeMaps[t].nodeCount;return e}isRoot(e){return e===this._root}isSubtreeRoot(e){return e.parent===this._root}parse(e){return this.tree.parse(e)}addSubtree(e){if(this.nodeMaps[e.id])return void St.error(`Subtree with id ${e.id} already exists!`);const t=this.nextSubtreeId;e.model.subtreeId=t,this.nodeMaps[t]=new si(e),this._root.addChild(e)}addNode(e,t){var i;null!==t&&void 0!==t.model.subtreeId?(e.model.subtreeId=t.model.subtreeId,(null===(i=this.nodeMaps[t.model.subtreeId])||void 0===i?void 0:i.addNode(e))&&t.addChild(e)):St.error("Invalid parent node!")}removeNode(e){e.drop()}findAll(e,t){return t||this.supressWarnings||St.warn("Root will be used for searching. You might not want that"),(t||this.root).all(e)}findId(e,t){if(!e)return null;let i=null;if(t)i=this.nodeMaps[t].getNodeById(e);else for(const t in this.nodeMaps){const n=this.nodeMaps[t].getNodeById(e);n&&(i=[...n])}return i}findSubtree(e){let t=null;for(const i in this.nodeMaps)if(t=this.nodeMaps[i].getSubtreeById(e))break;return t}getAncestors(e){return e.getPath().reverse().slice(1)}getInstances(e){return this.nodeMaps[e].instances}walk(e,t){t||this.supressWarnings||St.warn("Root will be used for searching. You might not want that"),this._root.walk(e,t)}async walkAsync(e,t){t||this.supressWarnings||St.warn("Root will be used for searching. You might not want that");const i=new yt;let n=!0;return async function e(t,r){let s,a;for(i.tick(100),i.needsWait&&await i.wait(16),n&&(n=t(r)),s=0,a=r.children.length;s<a&&await e(t,r.children[s]);s++);return n}(e,t||this._root)}purge(e){if(e){delete this.renderTreeInstances[e];const t=this.findId(e);t&&(this.nodeMaps[t[0].model.subtreeId].purge(),delete this.nodeMaps[t[0].model.subtreeId],this.removeNode(t[0]))}else Object.keys(this.renderTreeInstances).forEach((e=>delete this.renderTreeInstances[e])),Object.keys(this.nodeMaps).forEach((e=>{this.nodeMaps[e].purge,delete this.nodeMaps[e]})),this._root.drop(),this._root.children.length=0,this.tree=new Ve,this._root=this.tree.parse({id:ai.ROOT_ID,raw:{},atomic:!0,children:[]})}}ai.ROOT_ID="ROOT";class oi{get bounds(){return this.geometry.boundingBox||this.geometry.computeBoundingBox(),this.geometry.boundingBox?this.geometry.boundingBox:new h}get drawCalls(){return 1}get minDrawCalls(){return 1}get triCount(){return 0}get vertCount(){return this.geometry.attributes.position.count*this.geometry.instanceCount}constructor(e,t,i){this.id=e,this.subtreeId=t,this.renderViews=i}get pointCount(){return 0}get lineCount(){return(this.geometry.index?this.geometry.index.count:0)/3*this.geometry._maxInstanceCount}get renderObject(){return this.mesh}get geometryType(){return Et.LINE}get materials(){return this.mesh.material}get groups(){return[]}getCount(){return this.geometry.attributes.position.array.length/6}setBatchMaterial(e){this.batchMaterial=e}onUpdate(e){}onRender(e){e.getDrawingBufferSize(this.batchMaterial.resolution)}setVisibleRange(e){if(1===e.length&&e[0].offset===xt.offset&&e[0].count===xt.count)return void(this.mesh.visible=!1);if(1===e.length&&e[0].offset===Rt.offset&&e[0].count===Rt.count)return void(this.mesh.visible=!0);this.mesh.visible=!0;const t=this.colorBuffer.array;for(let e=0;e<t.length;e+=4)t[e+3]=0;for(let i=0;i<e.length;i++){const n=e[i].offset*this.colorBuffer.stride,r=e[i].offset*this.colorBuffer.stride+e[i].count*this.colorBuffer.stride;for(let e=n;e<r;e+=4)t[e+3]=1}this.colorBuffer.updateRange={offset:0,count:t.length},this.colorBuffer.needsUpdate=!0,this.geometry.attributes.instanceColorStart.needsUpdate=!0,this.geometry.attributes.instanceColorEnd.needsUpdate=!0}getVisibleRange(){return Rt}getOpaque(){return _t.isOpaque(this.batchMaterial)?Rt:xt}getDepth(){return this.getOpaque()}getTransparent(){return _t.isTransparent(this.batchMaterial)?Rt:xt}getStencil(){return!0===this.batchMaterial.stencilWrite?Rt:xt}setBatchBuffers(e){var t;const i=this.colorBuffer.array;for(let i=0;i<e.length;i++){const n=e[i].material,r=e[i].materialOptions,s=r&&r.rampIndexColor?r.rampIndexColor:n.color,a=n.visible?n.opacity:0;(t=this.batchMaterial).transparent||(t.transparent=n.opacity<1);const o=e[i].offset*this.colorBuffer.stride,l=e[i].offset*this.colorBuffer.stride+e[i].count*this.colorBuffer.stride;oi.vector4Buffer.set(s.r,s.g,s.b,a),this.updateColorBuffer(o,e[i].count===1/0?this.colorBuffer.array.length:l,oi.vector4Buffer)}this.colorBuffer.updateRange={offset:0,count:i.length},this.colorBuffer.needsUpdate=!0,this.geometry.attributes.instanceColorStart.needsUpdate=!0,this.geometry.attributes.instanceColorEnd.needsUpdate=!0}setDrawRanges(e){this.setBatchBuffers(e)}resetDrawRanges(){this.setDrawRanges([{offset:0,count:1/0,material:this.batchMaterial}]),this.mesh.material=this.batchMaterial,this.mesh.visible=!0,this.batchMaterial.transparent=!1}buildBatch(){let e=0;this.renderViews.forEach((t=>{if(!t.renderData.geometry.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry`);e+=t.needsSegmentConversion?2*(t.renderData.geometry.attributes.POSITION.length-3):t.renderData.geometry.attributes.POSITION.length}));const t=new Float64Array(e);let i=0;for(let e=0;e<this.renderViews.length;e++){const n=this.renderViews[e].renderData.geometry;if(!n.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry`);let r;if(this.renderViews[e].needsSegmentConversion){const e=n.attributes.POSITION.length-3;r=new Array(2*e);for(let t=0;t<e;t+=3)r[2*t]=n.attributes.POSITION[t],r[2*t+1]=n.attributes.POSITION[t+1],r[2*t+2]=n.attributes.POSITION[t+2],r[2*t+3]=n.attributes.POSITION[t+3],r[2*t+4]=n.attributes.POSITION[t+4],r[2*t+5]=n.attributes.POSITION[t+5]}else r=n.attributes.POSITION;t.set(r,i),this.renderViews[e].setBatchData(this.id,i/6,r.length/6),i+=r.length}return this.makeLineGeometry(t),this.mesh=new je(this.geometry,this.batchMaterial),this.mesh.computeLineDistances(),this.mesh.scale.set(1,1,1),this.mesh.uuid=this.id,this.mesh.layers.set(gt.STREAM_CONTENT_LINE),Promise.resolve()}getRenderView(e){for(let t=0;t<this.renderViews.length;t++)if(e>=this.renderViews[t].batchStart&&e<this.renderViews[t].batchEnd&&0!==this.colorBuffer.array[e*this.colorBuffer.stride+3])return this.renderViews[t];return null}getMaterialAtIndex(e){return this.batchMaterial}getMaterial(e){const t=e.batchStart*this.colorBuffer.stride,i=this.colorBuffer.array,n=this.batchMaterial.clone();return n.color.setRGB(i[t],i[t+1],i[t+2]),n.opacity=i[t+3],n}makeLineGeometry(e){this.geometry=this.makeLineGeometryTriangle(new Float32Array(e)),ni.updateRTEGeometry(this.geometry,e)}makeLineGeometryTriangle(e){const t=new Je;t.setPositions(e);const i=new Float32Array(e.length+e.length/3);return this.colorBuffer=new M(i,8,1),this.colorBuffer.setUsage(N),this.updateColorBuffer(0,i.length,new I(this.batchMaterial.color.r,this.batchMaterial.color.g,this.batchMaterial.color.b,1)),t.setAttribute("instanceColorStart",new O(this.colorBuffer,4,0)),t.setAttribute("instanceColorEnd",new O(this.colorBuffer,4,4)),t.computeBoundingBox(),t}updateColorBuffer(e,t,i){const n=this.colorBuffer.array;for(let r=e;r<t;r+=4)n[r]=i.x,n[r+1]=i.y,n[r+2]=i.z,n[r+3]=i.w}purge(){this.renderViews.length=0,this.geometry.dispose(),this.batchMaterial.dispose(),this.colorBuffer.length=0}}oi.vector4Buffer=new I;const li={backgroundColor:null,backgroundCornerRadius:1,backgroundPixelHeight:50,textColor:new l(16777215),billboard:!1};class ci extends B{static SpeckleTextParamsFromMetadata(e){return{textValue:e.value?e.value:"N/A",height:e.height}}get textMesh(){return this._text}get backgroundMesh(){return this._background}set style(e){Object.assign(this._style,e),this.updateStyle()}constructor(e,t){super(),this._layer=gt.NONE,this._text=null,this._background=null,this._backgroundSize=new d,this._style=Object.assign({},li),this._resolution=new T,this.defaultMaterial=new v({color:16777215,side:R,transparent:!0}),this.getFlatRaycastMesh=()=>{const e=new B(new D(1,1),this.defaultMaterial);return this.getFlatRaycastMesh=()=>e,e},this.getCurvedRaycastMesh=()=>{const e=new B(new D(1,1,32,1),this.defaultMaterial);return this.getCurvedRaycastMesh=()=>e,e},this.uuid=e,this._layer=t,this._text=new qe,this._text.depthOffset=-.1,this._text.raycast=()=>{},this.layers.set(this._layer),this._text.layers.set(this._layer),this.add(this._text),this.onBeforeRender=e=>{e.getDrawingBufferSize(this._resolution)},this.frustumCulled=!1}async update(e,t){return new Promise((i=>{e.textValue&&(this._text.text=e.textValue),e.richTextValue,e.height&&(this._text.fontSize=e.height),this._text.anchorX=e.anchorX,this._text.anchorY=e.anchorY,this._text._needsSync?this._text.sync((()=>{i(),t&&t()})):(i(),t&&t())}))}setTransform(e,t,i){e&&(this._style.billboard&&(this.textMesh.material.userData.billboardPos.value.copy(e),this._background&&this._background.material.userData.billboardPos.value.copy(e)),this.position.copy(e)),t&&this.quaternion.copy(t),i&&this.scale.copy(i)}raycast(e,t){const{textRenderInfo:i,curveRadius:n}=this.textMesh;if(i){const r=i.blockBounds,a=n?this.getCurvedRaycastMesh():this.getFlatRaycastMesh(),o=a.geometry,{position:l,uv:c}=o.attributes;for(let t=0;t<c.count;t++){let i=r[0]+c.getX(t)*(r[2]-r[0]);const a=r[1]+c.getY(t)*(r[3]-r[1]);let o=0;if(n&&(o=n-Math.cos(i/n)*n,i=Math.sin(i/n)*n),this.textMesh.material.defines.BILLBOARD_FIXED){if(0===this._resolution.length())return;const n=(new T).set(this.textMesh.material.billboardPixelHeight/this._resolution.x*2,this.textMesh.material.billboardPixelHeight/this._resolution.y*2),r=(new s).copy(e.camera.projectionMatrix).invert(),o=(new s).copy(e.camera.matrixWorldInverse).invert(),c=new I(this.position.x,this.position.y,this.position.z,1).applyMatrix4(e.camera.matrixWorldInverse).applyMatrix4(e.camera.projectionMatrix),h=c.w;c.multiplyScalar(1/h),c.add(new I(i*n.x,a*n.y,0,0)),c.multiplyScalar(h),c.applyMatrix4(r),c.applyMatrix4(o),l.setXYZ(t,c.x,c.y,c.z)}else l.setXYZ(t,i,a,o)}this.textMesh.material.defines.BILLBOARD_FIXED?(o.computeBoundingBox(),o.computeBoundingSphere(),a.matrixWorld.identity()):(o.boundingSphere=this.textMesh.geometry.boundingSphere,o.boundingBox=this.textMesh.geometry.boundingBox,a.matrixWorld=this.textMesh.matrixWorld),a.material.side=this.textMesh.material.side;const h=[];a.raycast(e,h);for(let e=0;e<h.length;e++)h[e].object=this,t.push(h[e])}}updateStyle(){this.updateBackground()}updateBackground(){var e;if(!this._style.backgroundColor)return this._background&&this.remove(this._background),void(this._background=null);this._text.geometry.computeBoundingBox();const t=this._text.geometry.boundingBox.getSize(new d),i=t.distanceTo(this._backgroundSize);let n=null===(e=this._background)||void 0===e?void 0:e.geometry;if(i>.1&&(n=this.RectangleRounded(1.2*t.x,1.2*t.y,.5,5),n.computeBoundingBox(),this._backgroundSize.copy(t),this._background&&(this._background.geometry=n)),null===this._background){const e=new Jt({},["BILLBOARD_FIXED"]);e.toneMapped=!1,e.side=R,e.depthTest=!1,this._background=new B(n,e),this._background.layers.set(this._layer),this._background.frustumCulled=!1,this._background.renderOrder=1,this.add(this._background)}const r=new l(this._style.backgroundColor).convertSRGBToLinear();this._background.material.color=r,this._background.material.billboardPixelHeight=(void 0!==this._style.backgroundPixelHeight?this._style.backgroundPixelHeight:li.backgroundPixelHeight||0)*window.devicePixelRatio}RectangleRounded(e,t,i,n){const r=2*Math.PI,s=4*(n+1),a=[],o=[],l=[];let c,h,d,u,p;for(let e=1;e<s;e++)a.push(0,e,e+1);a.push(0,s,1),o.push(0,0,0),l.push(.5,.5);for(let e=0;e<s;e++)g(e);const m=new L;return m.setIndex(new b(new Uint32Array(a),1)),m.setAttribute("position",new b(new Float32Array(o),3)),m.setAttribute("uv",new b(new Float32Array(l),2)),m;function g(n){c=Math.trunc(4*n/s)+1,h=1===c||4===c?1:-1,d=c<3?1:-1,u=h*(e/2-i)+i*Math.cos(r*(n-c+1)/(s-4)),p=d*(t/2-i)+i*Math.sin(r*(n-c+1)/(s-4)),o.push(u,p,0),l.push(.5+u/e,.5+p/t)}}}class hi{get bounds(){return(new h).setFromObject(this.mesh)}get drawCalls(){return 1}get minDrawCalls(){return 1}get triCount(){return this.getCount()}get vertCount(){var e;return this.mesh.textMesh.geometry.attributes.position.count+(null===(e=this.mesh.backgroundMesh)||void 0===e?void 0:e.geometry.attributes.position.count)}constructor(e,t,i){this.id=e,this.subtreeId=t,this.renderViews=i}get pointCount(){return 0}get lineCount(){return 0}get geometryType(){return Et.TEXT}get renderObject(){return this.mesh}getCount(){var e,t;return this.mesh.textMesh.geometry.index.count+(null===(t=null===(e=this.mesh.backgroundMesh)||void 0===e?void 0:e.geometry.index)||void 0===t?void 0:t.count)}get materials(){return this.mesh.material}get groups(){return[]}setBatchMaterial(e){this.batchMaterial=e}onUpdate(e){}onRender(e){}setVisibleRange(e){}getVisibleRange(){return Rt}getOpaque(){return _t.isOpaque(this.batchMaterial)?Rt:xt}getDepth(){return this.getOpaque()}getTransparent(){return _t.isTransparent(this.batchMaterial)?Rt:xt}getStencil(){return!0===this.batchMaterial.stencilWrite?Rt:xt}setBatchBuffers(e){throw new Error("Method not implemented.")}setDrawRanges(e){this.mesh.textMesh.material=e[0].material,e[0].materialOptions&&e[0].materialOptions.rampIndexColor&&this.mesh.textMesh.material.color.copy(e[0].materialOptions.rampIndexColor)}resetDrawRanges(){this.mesh.textMesh.material=this.batchMaterial,this.mesh.textMesh.visible=!0}async buildBatch(){if(!this.renderViews[0].renderData.geometry.metaData)throw new Error(`Cannot build batch ${this.id}. Metadata`);this.mesh=new ci(this.id,gt.STREAM_CONTENT_TEXT),this.mesh.matrixAutoUpdate=!1,await this.mesh.update(ci.SpeckleTextParamsFromMetadata(this.renderViews[0].renderData.geometry.metaData)),this.renderViews[0].renderData.geometry.bakeTransform&&this.mesh.matrix.copy(this.renderViews[0].renderData.geometry.bakeTransform),this.renderViews[0].setBatchData(this.id,0,this.mesh.textMesh.geometry.index.count/3),this.mesh.textMesh.material=this.batchMaterial}getRenderView(e){return this.renderViews[0]}getMaterialAtIndex(e){return this.batchMaterial}getMaterial(e){return this.batchMaterial}purge(){this.renderViews.length=0,this.batchMaterial.dispose(),this.mesh.geometry.dispose()}}const di={strategy:Ge,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!1,[Symbol("skip tree generation")]:!1};class ui{get geometry(){return this._bvh.geometry}get bvh(){return this._bvh}static buildBVH(e,t,i=di,n){if(!e||!t)throw new Error("Cannot build BVH with undefined indices or position!");let r=new Float32Array(t);if(n){r=new Float32Array(t.length);const e=new d;for(let i=0;i<t.length;i+=3)e.set(t[i],t[i+1],t[i+2]),e.applyMatrix4(n),r[i]=e.x,r[i+1]=e.y,r[i+2]=e.z}const s=new L;let a=null;t.length>=65535||e.length>=65535?(a=new Uint32Array(e.length),a.set(e,0),s.setIndex(new P(a,1))):(a=new Uint16Array(e.length),a.set(e,0),s.setIndex(new z(a,1))),s.setAttribute("position",new C(r,3)),s.computeBoundingBox();return new We(s,i)}constructor(e){this._bvh=e}raycast(e,t=x){const i=this._bvh.raycast(this.transformInput(e),t);return i.forEach((e=>{e.point=this.transformOutput(e.point)})),i}raycastFirst(e,t=x){const i=this._bvh.raycastFirst(this.transformInput(e),t);return i&&(i.point=this.transformOutput(i.point)),i}shapecast(e){const t=new h,i=new He,n=Object.create(null);return e.intersectsBounds&&(n.intersectsBounds=(i,n,r,s,a)=>(t.copy(i),this.transformOutput(t),e.intersectsBounds(t,n,r,s,a))),e.intersectsTriangle&&(n.intersectsTriangle=(t,n,r,s)=>(i.copy(t),this.transformOutput(i.a),this.transformOutput(i.b),this.transformOutput(i.c),e.intersectsTriangle(i,n,r,s))),n.intersectsRange=e.intersectsRange,n.traverseBoundsOrder=e.traverseBoundsOrder,this._bvh.shapecast(n)}transformInput(e){return ui.MatBuff.copy(this.inputOriginTransform).multiply(this.inputTransform),e.applyMatrix4(ui.MatBuff)}transformOutput(e){return ui.MatBuff.copy(this.outputOriginTransfom).premultiply(this.outputTransform),e.applyMatrix4(ui.MatBuff)}getBoundingBox(e){const t=e||new h;return this._bvh.getBoundingBox(t),this.transformOutput(t)}getVertexAtIndex(e){const t=this._bvh.geometry.attributes.position.array;return this.transformOutput(new d(t[3*e],t[3*e+1],t[3*e+2]))}}ui.MatBuff=new s;class pi{constructor(e){this.batchObjects=[],this.bounds=new h(new d(0,0,0),new d(0,0,0)),this.boxHelpers=[],this.batchObjects=e,this.buildBVH(),this.getBoundingBox(this.bounds)}buildBVH(){const e=[],t=new Array(3*pi.CUBE_VERTS*this.batchObjects.length);let i=0;for(let n=0;n<this.batchObjects.length;n++){const r=this.batchObjects[n].accelerationStructure.getBoundingBox(new h);if(this.updateVertArray(r,i,t),e.push(...pi.cubeIndices.map((e=>e+i/3))),this.batchObjects[n].tasVertIndexStart=i/3,this.batchObjects[n].tasVertIndexEnd=i/3+pi.CUBE_VERTS,i+=3*pi.CUBE_VERTS,pi.debugBoxes){const e=new U(r,new l(16711680));e.layers.set(gt.PROPS),this.boxHelpers.push(e)}}this.accelerationStructure=new ui(ui.buildBVH(e,t)),this.accelerationStructure.inputTransform=new s,this.accelerationStructure.outputTransform=new s,this.accelerationStructure.inputOriginTransform=new s,this.accelerationStructure.outputOriginTransfom=new s}updateVertArray(e,t,i){i[t]=e.min.x,i[t+1]=e.min.y,i[t+2]=e.max.z,i[t+3]=e.max.x,i[t+4]=e.min.y,i[t+5]=e.max.z,i[t+6]=e.max.x,i[t+7]=e.max.y,i[t+8]=e.max.z,i[t+9]=e.min.x,i[t+10]=e.max.y,i[t+11]=e.max.z,i[t+12]=e.min.x,i[t+13]=e.min.y,i[t+14]=e.min.z,i[t+15]=e.max.x,i[t+16]=e.min.y,i[t+17]=e.min.z,i[t+18]=e.max.x,i[t+19]=e.max.y,i[t+20]=e.min.z,i[t+21]=e.min.x,i[t+22]=e.max.y,i[t+23]=e.min.z}refit(){const e=this.accelerationStructure.geometry.attributes.position.array,t=new h;for(let i=0;i<this.batchObjects.length;i++){const n=this.batchObjects[i].tasVertIndexStart,r=this.batchObjects[i].accelerationStructure.getBoundingBox(t);this.updateVertArray(r,3*n,e),pi.debugBoxes&&this.boxHelpers[i].box.copy(r)}this.accelerationStructure.bvh.refit()}raycast(e,t=!1,i=x){const n=[],r=new k;r.copy(e);const s=this.accelerationStructure.raycast(r,i);if(!s.length)return n;const a=this.accelerationStructure.geometry.index;return s.forEach((s=>{const o=a.array[3*s.faceIndex],l=Math.trunc(o/pi.CUBE_VERTS);if(s.batchObject=this.batchObjects[l],!t){r.copy(e);this.batchObjects[l].accelerationStructure.raycast(r,i).forEach((e=>{const t=e;t.batchObject=this.batchObjects[l],n.push(t)}))}})),t?s:n}raycastFirst(e,t=!1,i=x){const n=new k;n.copy(e);let r=null,s=null;return s=t?[this.accelerationStructure.raycastFirst(n,i)]:this.accelerationStructure.raycast(n,i),s&&0!==s.length?(s.some((s=>{const a=this.accelerationStructure.geometry.index.array[3*s.faceIndex],o=Math.trunc(a/pi.CUBE_VERTS);if(s.batchObject=this.batchObjects[o],!t){n.copy(e);const t=this.batchObjects[o].accelerationStructure.raycastFirst(n,i);if(r=t,r)return r.batchObject=this.batchObjects[o],!0}return!1})),t?s[0]:r):null}shapecast(e){let t=!1;return this.accelerationStructure.shapecast({intersectsBounds:(t,i,n,r,s)=>!!e.intersectsTAS&&e.intersectsTAS(t,i,n,r,s),intersectsRange:i=>{const n=this.accelerationStructure.geometry.index.array[3*i],r=Math.trunc(n/pi.CUBE_VERTS);if(e.intersectTASRange){if(!e.intersectTASRange(this.batchObjects[r]))return!1}return t||(t=this.batchObjects[r].accelerationStructure.shapecast((t=>{const i=Object.create(null);return e.intersectsBounds&&(i.intersectsBounds=e.intersectsBounds),e.intersectsTriangle&&(i.intersectsTriangle=(i,n,r,s)=>e.intersectsTriangle(i,n,r,s,t)),i.intersectsRange=e.intersectsRange,i.traverseBoundsOrder=e.traverseBoundsOrder,i})(this.batchObjects[r]))),!1}}),t}closestPointToPoint(e){return this.accelerationStructure.bvh.closestPointToPoint(e)}getBoundingBox(e){return this.accelerationStructure.getBoundingBox(e),e}}pi.debugBoxes=!1,pi.cubeIndices=[0,1,2,2,3,0,1,5,6,6,2,1,7,6,5,5,4,7,4,0,3,3,7,4,4,5,1,1,0,4,3,2,6,6,7,3],pi.CUBE_VERTS=8;const mi=new s,gi=new k,vi=new V,fi=new d,wi=new d,Si=new d,Ai=new d,yi=new d,Ti=new d,Ei=new d,xi=new d,Ri=new d,Ci=new d,Mi=new T,Oi=new T,bi=new T,Ii=new d,Ni=new d,Bi=new k,Di=new s;var Li;!function(e){e[e.VERTEX_TEXTURE=0]="VERTEX_TEXTURE",e[e.UNIFORM_ARRAY=1]="UNIFORM_ARRAY"}(Li||(Li={}));class Pi extends B{get TAS(){return this.tas}get batchObjects(){return this._batchObjects}constructor(e){super(e),this.materialCache={},this.materialStack=[],this.materialCacheLUT={},this.transformsBuffer=void 0,this.transformsArrayUniforms=null,this.debugBatchBox=!1}setBatchMaterial(e){this.batchMaterial=this.getCachedMaterial(e),this.material=[this.batchMaterial]}setBatchObjects(e,t){this._batchObjects=e,this.transformStorage=t,this.transformStorage===Li.VERTEX_TEXTURE?(this.transformsBuffer=new Float32Array(4*this._batchObjects.length*4),this.transformsTextureUniform=new c(this.transformsBuffer,this.transformsBuffer.length/4,1,F,Q)):this.transformStorage===Li.UNIFORM_ARRAY&&(this.transformsArrayUniforms=this._batchObjects.map((()=>new s))),this.updateTransformsUniform()}setOverrideMaterial(e){this.materialStack.push(this.material),this.material=this.getCachedMaterial(e,!0),this.material.needsUpdate=!0}lookupMaterial(e){return this.materialCache[e.id]||this.materialCache[this.materialCacheLUT[e.id]]}getCachedMaterial(e,t=!1){let i=this.lookupMaterial(e);if(i)(t||e.needsCopy||i.needsCopy)&&_t.fastCopy(e,i);else{const t=e.clone();this.materialCache[e.id]=t,this.materialCacheLUT[t.id]=e.id,i=t,this.updateMaterialTransformsUniform(this.materialCache[e.id])}return i}restoreMaterial(){this.materialStack.length>0&&(this.material=this.materialStack.pop())}updateMaterialTransformsUniform(e){e.defines||(e.defines={}),e.defines.TRANSFORM_STORAGE=this.transformStorage,this.transformStorage===Li.VERTEX_TEXTURE?(e.userData.tTransforms.value=this.transformsTextureUniform,e.userData.objCount&&(e.userData.objCount.value=this._batchObjects.length)):this.transformStorage===Li.UNIFORM_ARRAY&&(e.defines.OBJ_COUNT&&e.defines.OBJ_COUNT===this._batchObjects.length||(e.defines.OBJ_COUNT=this._batchObjects.length),e.userData.uTransforms.value=this.transformsArrayUniforms),e.needsUpdate=!0}updateTransformsUniform(){if(!this.transformsBuffer)return;let e=!1;if(this.transformStorage===Li.VERTEX_TEXTURE){for(let t=0;t<this._batchObjects.length;t++){const i=this._batchObjects[t];if(!e&&!(e=i.transformDirty))continue;const n=16*i.batchIndex;this.transformsBuffer[n]=i.quaternion.x,this.transformsBuffer[n+1]=i.quaternion.y,this.transformsBuffer[n+2]=i.quaternion.z,this.transformsBuffer[n+3]=i.quaternion.w,this.transformsBuffer[n+4]=i.pivot_Low.x,this.transformsBuffer[n+5]=i.pivot_Low.y,this.transformsBuffer[n+6]=i.pivot_Low.z,this.transformsBuffer[n+7]=i.scaleValue.x,this.transformsBuffer[n+8]=i.pivot_High.x,this.transformsBuffer[n+9]=i.pivot_High.y,this.transformsBuffer[n+10]=i.pivot_High.z,this.transformsBuffer[n+11]=i.scaleValue.y,this.transformsBuffer[n+12]=i.translation.x,this.transformsBuffer[n+13]=i.translation.y,this.transformsBuffer[n+14]=i.translation.z,this.transformsBuffer[n+15]=i.scaleValue.z,i.transformDirty=!1}this.transformsTextureUniform.needsUpdate=e}else{if(!this.transformsArrayUniforms)return;for(let t=0;t<this._batchObjects.length;t++){const i=this._batchObjects[t];(e||(e=i.transformDirty))&&this.transformsArrayUniforms[t].set(i.quaternion.x,i.pivot_Low.x,i.pivot_High.x,i.translation.x,i.quaternion.y,i.pivot_Low.y,i.pivot_High.y,i.translation.y,i.quaternion.z,i.pivot_Low.z,i.pivot_High.z,i.translation.z,i.quaternion.w,i.scaleValue.x,i.scaleValue.y,i.scaleValue.z)}}this.tas&&e&&(this.tas.refit(),this.tas.getBoundingBox(this.tas.bounds),this.geometry.boundingBox||(this.geometry.boundingBox=new h),this.geometry.boundingBox.copy(this.tas.bounds),this.geometry.boundingSphere||(this.geometry.boundingSphere=new V),this.geometry.boundingBox.getBoundingSphere(this.geometry.boundingSphere),!this.boxHelper&&this.debugBatchBox&&(this.boxHelper=new U(this.tas.bounds,new l(16711680)),this.boxHelper.layers.set(gt.PROPS),this.parent&&this.parent.add(this.boxHelper)))}buildTAS(){this.tas=new pi(this.batchObjects),this.tas.refit()}getBatchObjectMaterial(e){const t=e.renderView,i=this.geometry.groups.find((e=>t.batchStart>=e.start&&t.batchStart+t.batchCount<=e.count+e.start));return Array.isArray(this.material)?i?this.material[i.materialIndex]:(St.warn(`Could not get material for ${e.renderView.renderData.id}`),null):this.material}convertRaycastIntersect(e,t,i){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(i.ray.origin),e.object=t,e.distance<i.near||e.distance>i.far?null:e)}raycast(e,t){if(this.tas){if(void 0===this.batchMaterial)return;if(Di.copy(this.matrixWorld).invert(),Bi.copy(e.ray).applyMatrix4(Di),!0===e.firstHitOnly){const i=this.convertRaycastIntersect(this.tas.raycastFirst(Bi,e.intersectTASOnly,this.batchMaterial),this,e);i&&t.push(i)}else{const i=this.tas.raycast(Bi,e.intersectTASOnly,this.batchMaterial);for(let n=0,r=i.length;n<r;n++){const r=this.convertRaycastIntersect(i[n],this,e);r&&t.push(r)}}}else{const i=this.geometry,n=this.material,r=this.matrixWorld;if(void 0===n)return;if(null===i.boundingSphere&&i.computeBoundingSphere(),vi.copy(i.boundingSphere||new V),vi.applyMatrix4(r),!1===e.ray.intersectsSphere(vi))return;if(mi.copy(r).invert(),gi.copy(e.ray).applyMatrix4(mi),null!==i.boundingBox&&!1===gi.intersectsBox(i.boundingBox))return;let s;const a=i.index,o=i.attributes.position,l=i.attributes.position_low,c=i.morphAttributes.position,h=i.morphTargetsRelative,d=i.attributes.uv,u=i.attributes.uv2,p=i.groups,m=i.drawRange;if(null!==a)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i];if(!r.materialIndex){St.error("Group with no material, skipping!");continue}const g=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(a.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){const n=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=zi(this,g,e,gi,l,o,c,h,d,u,n,p,m),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(a.count,m.start+m.count);i<r;i+=3){const r=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=zi(this,n,e,gi,l,o,c,h,d,u,r,p,m),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}else if(void 0!==o)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i],a=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(o.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){s=zi(this,a,e,gi,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(o.count,m.start+m.count);i<r;i+=3){s=zi(this,n,e,gi,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}}}}function zi(e,t,i,n,r,s,a,o,l,c,h,u,p){wi.fromBufferAttribute(s,h),Si.fromBufferAttribute(s,u),Ai.fromBufferAttribute(s,p),r&&(wi.add(fi.fromBufferAttribute(r,h)),Si.add(fi.fromBufferAttribute(r,u)),Ai.add(fi.fromBufferAttribute(r,p)));const m=e.morphTargetInfluences;if(a&&m){xi.set(0,0,0),Ri.set(0,0,0),Ci.set(0,0,0);for(let e=0,t=a.length;e<t;e++){const t=m[e],i=a[e];0!==t&&(yi.fromBufferAttribute(i,h),Ti.fromBufferAttribute(i,u),Ei.fromBufferAttribute(i,p),o?(xi.addScaledVector(yi,t),Ri.addScaledVector(Ti,t),Ci.addScaledVector(Ei,t)):(xi.addScaledVector(yi.sub(wi),t),Ri.addScaledVector(Ti.sub(Si),t),Ci.addScaledVector(Ei.sub(Ai),t)))}wi.add(xi),Si.add(Ri),Ai.add(Ci)}e.isSkinnedMesh&&(e.boneTransform(h,wi),e.boneTransform(u,Si),e.boneTransform(p,Ai));const g=function(e,t,i,n,r,s,a,o){let l;if(l=t.side===j?n.intersectTriangle(a,s,r,!0,o):n.intersectTriangle(r,s,a,t.side!==R,o),null===l)return null;Ni.copy(o),Ni.applyMatrix4(e.matrixWorld);const c=i.ray.origin.distanceTo(Ni);return c<i.near||c>i.far?null:{distance:c,point:Ni.clone(),object:e,uv:void 0,uv2:void 0,face:void 0}}(e,t,i,n,wi,Si,Ai,Ii);if(g){l&&(Mi.fromBufferAttribute(l,h),Oi.fromBufferAttribute(l,u),bi.fromBufferAttribute(l,p),g.uv=q.getUV(Ii,wi,Si,Ai,Mi,Oi,bi,new T)),c&&(Mi.fromBufferAttribute(c,h),Oi.fromBufferAttribute(c,u),bi.fromBufferAttribute(c,p),g.uv2=q.getUV(Ii,wi,Si,Ai,Mi,Oi,bi,new T));const e={a:h,b:u,c:p,normal:new d,materialIndex:0};q.getNormal(wi,Si,Ai,e.normal),g.face=e}return g}Pi.MeshBatchNumber=0;const Ui=new s,ki=new k,Vi=new V,Fi=new d,Qi=new d,qi=new d,ji=new d,Ji=new d,Gi=new d,Wi=new d,Hi=new d,Xi=new d,Ki=new d,Yi=new T,Zi=new T,_i=new T,$i=new d,en=new d,tn=new k,nn=new s;class rn extends J{get TAS(){return this.tas}get batchObjects(){return this._batchObjects}constructor(e){super(),this.batchMaterial=null,this.materialCache={},this.materialStack=[],this.materialCacheLUT={},this.groups=[],this.materials=[],this.instanceGeometry=void 0,this.instances=[],this.instanceGeometry=e,this.userData.raycastChildren=!1}setBatchMaterial(e){this.batchMaterial=e,this.materialCache[e.id]=e,this.materials.push(this.batchMaterial)}setBatchObjects(e){this._batchObjects=e}setOverrideMaterial(e){const t=[];for(let e=0;e<this.instances.length;e++)t.push(this.instances[e].material);this.materialStack.push(t);const i=this.getCachedMaterial(e,!0);this.instances.forEach((e=>e.material=i))}lookupMaterial(e){return this.materialCache[e.id]||this.materialCache[this.materialCacheLUT[e.id]]}getCachedMaterial(e,t=!1){let i=this.lookupMaterial(e);if(i)(t||e.needsCopy||i.needsCopy)&&_t.fastCopy(e,i);else{const t=e.clone();this.materialCache[e.id]=t,this.materialCacheLUT[t.id]=e.id,i=t,this.updateMaterialTransformsUniform(this.materialCache[e.id])}return i}restoreMaterial(){if(this.materialStack.length>0){const e=this.materialStack.pop();for(let t=0;t<e.length;t++)this.instances[t].material=e[t]}}buildTAS(){this.tas=new pi(this.batchObjects),this.tas.refit()}updateDrawGroups(e,t){this.instances.forEach((e=>{this.remove(e),e.dispose()})),this.instances.length=0;for(let i=0;i<this.groups.length;i++){const n=this.groups[i].materialIndex,r=this.materials[n],s=new G(this.instanceGeometry,r,0);s.instanceMatrix=new W(e.subarray(this.groups[i].start,this.groups[i].start+this.groups[i].count),16),s.geometry.setAttribute("gradientIndex",new W(t.subarray(this.groups[i].start/16,(this.groups[i].start+this.groups[i].count)/16),1)),s.count=this.groups[i].count/16,s.instanceMatrix.needsUpdate=!0,s.layers.set(gt.STREAM_CONTENT_MESH),s.frustumCulled=!1,this.instances.push(s),this.add(s)}this.tas.refit(),this.tas.getBoundingBox(this.tas.bounds)}updateTransformsUniform(){let e=!1;for(let t=0;t<this._batchObjects.length;t++){const i=this._batchObjects[t];if(!e&&!(e=i.transformDirty))continue;const n=i.renderView,r=this.groups.find((e=>n.batchStart>=e.start&&n.batchStart+n.batchCount<=e.count+e.start));if(r){const e=this.instances[this.groups.indexOf(r)];e.setMatrixAt((n.batchStart-r.start)/16,i.transform),e.instanceMatrix.needsUpdate=!0}i.transformDirty=!1}this.tas&&e&&(this.tas.refit(),this.tas.getBoundingBox(this.tas.bounds))}updateMaterialTransformsUniform(e){}getBatchObjectMaterial(e){const t=e.renderView,i=this.groups.find((e=>t.batchStart>=e.start&&t.batchStart+t.batchCount<=e.count+e.start));return i?this.materials[i.materialIndex]:(St.warn(`Could not get material for ${e.renderView.renderData.id}`),null)}convertRaycastIntersect(e,t,i){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(i.ray.origin),e.object=t,e.distance<i.near||e.distance>i.far?null:e)}raycast(e,t){if(this.tas){if(!this.batchMaterial)return;if(nn.copy(this.matrixWorld).invert(),tn.copy(e.ray).applyMatrix4(nn),!0===e.firstHitOnly){const i=this.convertRaycastIntersect(this.tas.raycastFirst(tn,e.intersectTASOnly,this.batchMaterial),this,e);i&&t.push(i)}else{const i=this.tas.raycast(tn,e.intersectTASOnly,this.batchMaterial);for(let n=0,r=i.length;n<r;n++){const r=this.convertRaycastIntersect(i[n],this,e);r&&t.push(r)}}}else{const i=this.instanceGeometry,n=this.materials[0],r=this.matrixWorld;if(void 0===n)return;if(void 0===i)return;if(null===i.boundingSphere&&i.computeBoundingSphere(),Vi.copy(i.boundingSphere||new V),Vi.applyMatrix4(r),!1===e.ray.intersectsSphere(Vi))return;if(Ui.copy(r).invert(),ki.copy(e.ray).applyMatrix4(Ui),null!==i.boundingBox&&!1===ki.intersectsBox(i.boundingBox))return;let s;const a=i.index,o=i.attributes.position,l=i.attributes.position_low,c=i.morphAttributes.position,h=i.morphTargetsRelative,d=i.attributes.uv,u=i.attributes.uv2,p=i.groups,m=i.drawRange;if(null!==a)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i];if(!r.materialIndex){St.error("Group with no material, skipping!");continue}const g=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(a.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){const n=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=sn(this,g,e,ki,l,o,c,h,d,u,n,p,m),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(a.count,m.start+m.count);i<r;i+=3){const r=a.getX(i),p=a.getX(i+1),m=a.getX(i+2);s=sn(this,n,e,ki,l,o,c,h,d,u,r,p,m),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}else if(void 0!==o)if(Array.isArray(n))for(let i=0,r=p.length;i<r;i++){const r=p[i];if(!r.materialIndex){St.error("Group with no material, skipping!");continue}const a=n[r.materialIndex];for(let i=Math.max(r.start,m.start),n=Math.min(o.count,Math.min(r.start+r.count,m.start+m.count));i<n;i+=3){s=sn(this,a,e,ki,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),s.face&&(s.face.materialIndex=r.materialIndex),t.push(s))}}else{for(let i=Math.max(0,m.start),r=Math.min(o.count,m.start+m.count);i<r;i+=3){s=sn(this,n,e,ki,l,o,c,h,d,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}}}}function sn(e,t,i,n,r,s,a,o,l,c,h,u,p){Qi.fromBufferAttribute(s,h),qi.fromBufferAttribute(s,u),ji.fromBufferAttribute(s,p),r&&(Qi.add(Fi.fromBufferAttribute(r,h)),qi.add(Fi.fromBufferAttribute(r,u)),ji.add(Fi.fromBufferAttribute(r,p)));const m=e.morphTargetInfluences;if(a&&m){Hi.set(0,0,0),Xi.set(0,0,0),Ki.set(0,0,0);for(let e=0,t=a.length;e<t;e++){const t=m[e],i=a[e];0!==t&&(Ji.fromBufferAttribute(i,h),Gi.fromBufferAttribute(i,u),Wi.fromBufferAttribute(i,p),o?(Hi.addScaledVector(Ji,t),Xi.addScaledVector(Gi,t),Ki.addScaledVector(Wi,t)):(Hi.addScaledVector(Ji.sub(Qi),t),Xi.addScaledVector(Gi.sub(qi),t),Ki.addScaledVector(Wi.sub(ji),t)))}Qi.add(Hi),qi.add(Xi),ji.add(Ki)}e.isSkinnedMesh&&(e.boneTransform(h,Qi),e.boneTransform(u,qi),e.boneTransform(p,ji));const g=function(e,t,i,n,r,s,a,o){let l;if(l=t.side===j?n.intersectTriangle(a,s,r,!0,o):n.intersectTriangle(r,s,a,t.side!==R,o),null===l)return null;en.copy(o),en.applyMatrix4(e.matrixWorld);const c=i.ray.origin.distanceTo(en);return c<i.near||c>i.far?null:{distance:c,point:en.clone(),object:e,uv:void 0,uv2:void 0,face:void 0,faceIndex:void 0}}(e,t,i,n,Qi,qi,ji,$i);if(g){l&&(Yi.fromBufferAttribute(l,h),Zi.fromBufferAttribute(l,u),_i.fromBufferAttribute(l,p),g.uv=q.getUV($i,Qi,qi,ji,Yi,Zi,_i,new T)),c&&(Yi.fromBufferAttribute(c,h),Zi.fromBufferAttribute(c,u),_i.fromBufferAttribute(c,p),g.uv2=q.getUV($i,Qi,qi,ji,Yi,Zi,_i,new T));const e={a:h,b:u,c:p,normal:new d,materialIndex:0};q.getNormal(Qi,qi,ji,e.normal),g.face=e}return g}rn.MeshBatchNumber=0;class an{get renderView(){return this._renderView}get accelerationStructure(){return this._accelerationStructure}get batchIndex(){return this._batchIndex}get aabb(){if(this.renderView.aabb){const e=(new h).copy(this.renderView.aabb);return e.applyMatrix4(this.transform),e}return new h}get localOrigin(){return this._localOrigin}set position(e){this.transformTRS((new d).subVectors(e,this._localOrigin),this.eulerValue,this.scaleValue,(new d).addVectors(this.pivot_Low,this.pivot_High))}set euler(e){this.transformTRS(this.translation,e,this.scaleValue,(new d).addVectors(this.pivot_Low,this.pivot_High))}set scale(e){this.transformTRS(this.translation,this.eulerValue,e,(new d).addVectors(this.pivot_Low,this.pivot_High))}constructor(e,t){this.quaternion=new H,this.eulerValue=new a,this.pivot_High=new d,this.pivot_Low=new d,this.translation=new d,this.scaleValue=new d(1,1,1),this.transformDirty=!0,this._renderView=e,this._batchIndex=t,this.transform=(new s).identity(),this.transformInv=(new s).identity(),this._localOrigin=this._renderView.aabb.getCenter(new d),ni.DoubleToHighLowVector(new d(this._localOrigin.x,this._localOrigin.y,this._localOrigin.z),this.pivot_Low,this.pivot_High)}buildAccelerationStructure(e){var t,i;const n=(new s).makeTranslation(this._localOrigin.x,this._localOrigin.y,this._localOrigin.z);if(n.invert(),!e){const r=null===(t=this._renderView.renderData.geometry.attributes)||void 0===t?void 0:t.INDEX,s=null===(i=this._renderView.renderData.geometry.attributes)||void 0===i?void 0:i.POSITION;e=ui.buildBVH(r,s,di,n)}this._accelerationStructure=new ui(e),this._accelerationStructure.inputTransform=this.transformInv,this._accelerationStructure.outputTransform=this.transform,this._accelerationStructure.inputOriginTransform=(new s).copy(n),this._accelerationStructure.outputOriginTransfom=(new s).copy(n).invert()}transformTRS(e,t,i,n){let r=an.matBuff0.identity(),s=an.matBuff1.identity(),a=an.matBuff2.identity();an.eulerBuff.set(0,0,0,"XYZ"),an.translationBuff.set(0,0,0),an.scaleBuff.set(1,1,1),an.pivotBuff.copy(this._localOrigin),e&&(r=an.matBuff0.makeTranslation(e.x,e.y,e.z),an.translationBuff.set(e.x,e.y,e.z)),t&&(an.eulerBuff.set(t.x,t.y,t.z,"XYZ"),s=an.matBuff1.makeRotationFromEuler(an.eulerBuff),this.quaternion.setFromEuler(an.eulerBuff),this.eulerValue.copy(an.eulerBuff)),i&&(a=an.matBuff2.makeScale(i.x,i.y,i.z),an.scaleBuff.set(i.x,i.y,i.z)),n&&an.pivotBuff.set(n.x,n.y,n.z),this.transform.identity(),this.transform.multiply(s),this.transform.multiply(a),this.transform.premultiply(r),this.transformInv.copy(this.transform),this.transformInv.invert(),this.translation.copy(an.translationBuff),this.quaternion.setFromEuler(an.eulerBuff),this.scaleValue.copy(an.scaleBuff),ni.DoubleToHighLowVector(an.pivotBuff,this.pivot_Low,this.pivot_High),this.transformDirty=!0}}an.matBuff0=new s,an.matBuff1=new s,an.matBuff2=new s,an.eulerBuff=new a,an.translationBuff=new d,an.scaleBuff=new d,an.pivotBuff=new d;class on extends an{constructor(e,t){super(e,t),this.instanceTransform=new s,e.renderData.geometry.transform&&this.instanceTransform.copy(e.renderData.geometry.transform),this.transform.copy(this.instanceTransform),this.transformInv.copy((new s).copy(this.instanceTransform).invert()),this.transformDirty=!1}transformTRS(e,t,i,n){super.transformTRS(e,t,i,n),this.transform.multiply(this.instanceTransform),this.transformInv.copy(this.transform),this.transformInv.invert()}}class ln{integrateRanges(e,t,i){let n=[];e.sort(((e,t)=>e.start-t.start)),i.sort(((e,t)=>e.offset-t.offset));const r={},s={};for(let t=0,i=e.length-1;t<e.length;t++,i--){const n=e[t],a=e[i];r[n.start]=n.materialIndex,s[a.start+a.count]=a.materialIndex}n=e.map((e=>e.start+e.count)),n.unshift(0);for(let e=0;e<i.length;e++){const a=i[e],o=a.offset,l=n.findIndex((e=>e>o)),c=n[l];n.splice(l,0,o);const h=a.offset+a.count,d=n.findIndex((e=>e>h));n.splice(d,0,h),n=n.filter((e=>!(e>o&&e<h))),n=[...new Set(n)];const u=t.indexOf(a.material);r[o]=u,r[h]=h>=c?r[c]:s[c]}const a=[];let o=-1,l=0;for(let e=0;e<n.length-1;e++){const t=n[e];l+=n[e+1]-t;const i=r[t],s=e===n.length-2;(r[n[e+1]]!==i&&!s||(-1===o&&(o=t),s))&&(a.push({start:-1===o?t:o,count:l,materialIndex:i}),o=-1,l=0)}return a}}class cn{get bounds(){return this.mesh.TAS.getBoundingBox(new h)}get drawCalls(){return this.groups.length}get minDrawCalls(){return[...Array.from(new Set(this.groups.map((e=>e.materialIndex))))].length}get maxDrawCalls(){return 1}get triCount(){return(this.geometry.index?this.geometry.index.count:0)/3*this.renderViews.length}get vertCount(){return this.geometry.attributes.position.count*this.renderViews.length}get pointCount(){return 0}get lineCount(){return 0}get geometryType(){return Et.MESH}get renderObject(){return this.mesh}getCount(){return 16*this.renderViews.length}get materials(){return this.mesh.materials}get groups(){return this.mesh.groups}constructor(e,t,i){this.drawRanges=new ln,this.transformBufferIndex=0,this.needsShuffle=!1,this.id=e,this.subtreeId=t,this.renderViews=i}setBatchMaterial(e){this.batchMaterial=e}onUpdate(e){this.needsShuffle&&(this.shuffleDrawGroups(),this.needsShuffle=!1)}onRender(e){}setVisibleRange(e){1!==e.length||e[0]!==xt?1!==e.length||e[0]!==Rt?(this.mesh.children.forEach((e=>e.visible=!1)),e.forEach((e=>{const t=this.groups.find((t=>e.offset===t.start&&e.offset+e.count===t.start+t.count));if(t){const e=this.groups.indexOf(t);-1!==e&&(this.mesh.children[e].visible=!0)}}))):this.mesh.children.forEach((e=>e.visible=!0)):this.mesh.children.forEach((e=>e.visible=!1))}getVisibleRange(){if(!this.mesh.children[0].visible)return xt;for(let e=0;e<this.mesh.children.length;e++)if(!this.mesh.children[e].visible)return{offset:0,count:16*e};return Rt}getOpaque(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible)));return e?{offset:0,count:e.start}:Rt}getDepth(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible||!1===this.materials[e.materialIndex].colorWrite)));return e?{offset:0,count:e.start}:Rt}getTransparent(){const e=this.groups.find((e=>void 0!==e.materialIndex&&_t.isTransparent(this.materials[e.materialIndex]))),t=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));if(e){const i=e.start,n=void 0!==t?t.start:this.getCount()-e.start;return 0===i&&n===this.getCount()?Rt:{offset:i,count:n}}return xt}getStencil(){if(1===this.groups.length&&!0===this.materials[0].stencilWrite)return Rt;const e=this.groups.find((e=>void 0!==e.materialIndex&&!0===this.materials[e.materialIndex].stencilWrite));return e?{offset:e.start,count:e.count}:xt}setBatchBuffers(e){for(let t=0;t<e.length;t++){const i=e[t];if(i.materialOptions){if(void 0!==i.materialOptions.rampIndex&&void 0!==i.materialOptions.rampWidth){const n=e[t].offset,r=i.materialOptions.rampIndex+.5/i.materialOptions.rampWidth;this.updateGradientIndexBufferData(n/16,r)}void 0!==i.materialOptions.rampTexture&&i.material instanceof Ft&&i.material.setGradientTexture(i.materialOptions.rampTexture)}}}setDrawRanges(e){e.forEach((e=>{e.material&&(e.material=this.mesh.getCachedMaterial(e.material))}));const t=e.map((e=>e.material)),i=[...Array.from(new Set(t.map((e=>e))))];for(let e=0;e<i.length;e++)this.materials.includes(i[e])||this.materials.push(i[e]);this.mesh.groups=this.drawRanges.integrateRanges(this.groups,this.materials,e);let n=0;this.groups.forEach((e=>n+=e.count)),n!==16*this.renderViews.length&&St.error(`Draw groups invalid on ${this.id}`),this.setBatchBuffers(e),this.cleanMaterials(),this.drawCalls>this.maxDrawCalls?this.needsShuffle=!0:this.mesh.updateDrawGroups(this.getCurrentTransformBuffer(),this.getCurrentGradientBuffer())}cleanMaterials(){const e=[...Array.from(new Set(this.groups.map((e=>this.materials[e.materialIndex]))))];let t=0;for(;this.materials.length>e.length;)e.includes(this.materials[t])?t++:(this.materials.splice(t,1),this.groups.forEach((e=>{e.materialIndex>t&&e.materialIndex--})),t=0)}shuffleDrawGroups(){const e=this.groups.sort(((e,t)=>e.start-t.start)).slice();this.groups.sort(((e,t)=>{const i=this.materials[e.materialIndex],n=this.materials[t.materialIndex],r=+n.visible+ +n.colorWrite-(+i.visible+ +i.colorWrite),s=+i.transparent-+n.transparent;return 0!==r?r:s}));const t=[];e.reduce(((e,t)=>(void 0!==t.materialIndex&&-1===e.indexOf(t.materialIndex)&&e.push(t.materialIndex),e)),t);const i=[];for(let n=0;n<t.length;n++)i.push(e.filter((e=>e.materialIndex===t[n])));const n=this.getCurrentTransformBuffer(),r=this.getNextTransformBuffer(),s=this.getCurrentGradientBuffer(),a=new Float32Array(s.length),o=[],l=this.renderViews.slice();l.sort(((e,t)=>e.batchStart-t.batchStart));let c=0;for(let e=0;e<i.length;e++){const t=i[e],h=c;let d=0;for(let e=0;e<t.length;e++){const i=t[e].start,o=t[e].count;let h=n.subarray(i,i+o);r.set(h,c),h=s.subarray(i/16,(i+o)/16),a.set(h,c/16);let u=0;for(let e=0;e<l.length;e++)l[e].batchStart>=i&&l[e].batchEnd<=i+o&&(l[e].setBatchData(this.id,c+u,l[e].batchCount),u+=l[e].batchCount,l.splice(e,1),e--);c+=o,d+=o}o.push({offset:h,count:d,materialIndex:t[0].materialIndex})}this.groups.length=0;for(let e=0;e<o.length;e++)this.groups.push({start:o[e].offset,count:o[e].count,materialIndex:o[e].materialIndex});s.set(a,0),this.mesh.updateDrawGroups(r,s);const h=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));h&&this.setVisibleRange([{offset:0,count:h.start}])}resetDrawRanges(){this.groups.length=0,this.materials.length=0,this.groups.push({start:0,count:16*this.renderViews.length,materialIndex:0}),this.materials.push(this.batchMaterial),this.setVisibleRange([Rt]),this.mesh.updateDrawGroups(this.getCurrentTransformBuffer(),this.getCurrentGradientBuffer())}getCurrentTransformBuffer(){return this.transformBufferIndex%2==0?this.instanceTransformBuffer0:this.instanceTransformBuffer1}getNextTransformBuffer(){return++this.transformBufferIndex%2==0?this.instanceTransformBuffer0:this.instanceTransformBuffer1}getCurrentGradientBuffer(){return this.instanceGradientBuffer}buildBatch(){var e,t,i,n,r;const a=[];let o=null;this.instanceTransformBuffer0=new Float32Array(16*this.renderViews.length),this.instanceTransformBuffer1=new Float32Array(16*this.renderViews.length);const l=this.getCurrentTransformBuffer();for(let i=0;i<this.renderViews.length;i++){const n=this.renderViews[i];if(!n.renderData.geometry.transform)throw new Error(`Instanced Render view with id ${n.renderData.id} has null transform!`);n.renderData.geometry.transform.toArray(l,16*i),this.renderViews[i].setBatchData(this.id,16*i,16);const r=new on(this.renderViews[i],i);if(!o){const n=(new s).makeTranslation(r.localOrigin.x,r.localOrigin.y,r.localOrigin.z);n.invert();const a=null===(e=this.renderViews[i].renderData.geometry.attributes)||void 0===e?void 0:e.INDEX,l=null===(t=this.renderViews[i].renderData.geometry.attributes)||void 0===t?void 0:t.POSITION;o=ui.buildBVH(a,l,di,n),o.refit()}r.buildAccelerationStructure(o),a.push(r)}const c=null===(i=this.renderViews[0].renderData.geometry.attributes)||void 0===i?void 0:i.INDEX,d=null===(n=this.renderViews[0].renderData.geometry.attributes)||void 0===n?void 0:n.POSITION,u=null===(r=this.renderViews[0].renderData.geometry.attributes)||void 0===r?void 0:r.COLOR;if(!c||!d)throw new Error(`Cannot build batch ${this.id}. Undefined indices or positions`);return this.makeInstancedMeshGeometry(d.length>=65535||c.length>=65535?new Uint32Array(c):new Uint16Array(c),new Float64Array(d),u?new Float32Array(u):void 0),this.mesh=new rn(this.geometry),this.mesh.setBatchObjects(a),this.mesh.setBatchMaterial(this.batchMaterial),this.mesh.buildTAS(),this.geometry.boundingBox=this.mesh.TAS.getBoundingBox(new h),this.geometry.boundingSphere=this.geometry.boundingBox.getBoundingSphere(new V),this.mesh.uuid=this.id,this.mesh.layers.set(gt.STREAM_CONTENT_MESH),this.mesh.frustumCulled=!1,this.groups.push({start:0,count:16*this.renderViews.length,materialIndex:0}),this.mesh.updateDrawGroups(this.getCurrentTransformBuffer(),this.getCurrentGradientBuffer()),Promise.resolve()}getRenderView(e){return St.warn("Deprecated! Use InstancedBatchObject"),null}getMaterialAtIndex(e){return St.warn("Deprecated! Use InstancedBatchObject"),null}getMaterial(e){const t=this.groups.find((t=>e.batchStart>=t.start&&e.batchStart+e.batchCount<=t.count+t.start));return t?this.materials[t.materialIndex]:(St.warn(`Could not get material for ${e.renderData.id}`),null)}makeInstancedMeshGeometry(e,t,i){this.geometry=new L,t&&this.geometry.setAttribute("position",new C(t,3)),i&&this.geometry.setAttribute("color",new C(i,3));let n=null;return n=t.length>=65535||e.length>=65535?new P(e,1):new z(e,1),this.geometry.setIndex(n),this.instanceGradientBuffer=new Float32Array(this.renderViews.length),ni.computeVertexNormals(this.geometry,t),ni.updateRTEGeometry(this.geometry,t),this.geometry}updateGradientIndexBufferData(e,t){this.getCurrentGradientBuffer()[e]=t}purge(){this.renderViews.length=0,this.geometry.dispose(),this.batchMaterial.dispose()}}class hn{constructor(){this.needsShuffle=!1}get materials(){return this.primitive.material}get groups(){return this.primitive.geometry.groups}set groups(e){this.primitive.geometry.groups=e}get renderObject(){return this.primitive}get drawCalls(){return this.groups.length}get vertCount(){return this.primitive.geometry.attributes.position.count}getCount(){var e;return(null===(e=this.primitive.geometry.index)||void 0===e?void 0:e.count)||0}setBatchMaterial(e){this.batchMaterial=e}onUpdate(){this.needsShuffle&&(this.shuffleDrawGroups(),this.needsShuffle=!1)}setVisibleRange(e){if(1===e.length&&e[0]===xt)return this.primitive.geometry.setDrawRange(0,0),void(this.primitive.visible=!1);if(1===e.length&&e[0]===Rt)return this.primitive.geometry.setDrawRange(0,this.getCount()),void(this.primitive.visible=!0);let t=1/0,i=0;e.forEach((e=>{t=Math.min(t,e.offset),i=Math.max(i,e.offset)}));const n=e.find((e=>e.offset===i));this.primitive.geometry.setDrawRange(t,i-t+(n?n.count:0)),this.primitive.visible=!0}getVisibleRange(){return 1===this.groups.length&&this.primitive.visible?Rt:this.primitive.visible?{offset:this.primitive.geometry.drawRange.start,count:this.primitive.geometry.drawRange.count}:xt}getOpaque(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible)));return e?{offset:0,count:e.start}:Rt}getDepth(){const e=this.groups.find((e=>void 0!==e.materialIndex&&(_t.isTransparent(this.materials[e.materialIndex])||!1===this.materials[e.materialIndex].visible||!1===this.materials[e.materialIndex].colorWrite)));return e?{offset:0,count:e.start}:Rt}getTransparent(){const e=this.groups.find((e=>void 0!==e.materialIndex&&_t.isTransparent(this.materials[e.materialIndex]))),t=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));return e?{offset:e.start,count:void 0!==t?t.start:this.getCount()-e.start}:xt}getStencil(){if(1===this.groups.length&&!0===this.materials[0].stencilWrite)return Rt;const e=this.groups.find((e=>void 0!==e.materialIndex&&!0===this.materials[e.materialIndex].stencilWrite));return e?{offset:e.start,count:e.count}:xt}setBatchBuffers(e){let t=1/0,i=0;for(let n=0;n<e.length;n++){const r=e[n];if(r.materialOptions){if(void 0!==r.materialOptions.rampIndex&&void 0!==r.materialOptions.rampWidth){const s=e[n].offset,a=e[n].offset+e[n].count,o=r.materialOptions.rampIndex+.5/r.materialOptions.rampWidth,l=this.updateGradientIndexBufferData(s,r.count===1/0?this.primitive.geometry.attributes.gradientIndex.array.length:a,o);t=Math.min(t,l.minIndex),i=Math.max(i,l.maxIndex)}void 0!==r.materialOptions.rampTexture&&(r.material instanceof Ft||r.material instanceof Ht)&&r.material.setGradientTexture(r.materialOptions.rampTexture)}}t<1/0&&i>0&&this.updateGradientIndexBuffer()}cleanMaterials(){const e=[...Array.from(new Set(this.groups.map((e=>{if(void 0!==e.materialIndex)return this.materials[e.materialIndex]}))))];let t=0;for(;this.materials.length>e.length;)e.includes(this.materials[t])?t++:(this.materials.splice(t,1),this.groups.forEach((e=>{void 0!==e.materialIndex&&e.materialIndex>t&&e.materialIndex--})),t=0)}shuffleDrawGroups(){const e=this.groups.slice();e.sort(this.shuffleMaterialOrder.bind(this));const t=[];e.reduce(((e,t)=>(void 0!==t.materialIndex&&-1===e.indexOf(t.materialIndex)&&e.push(t.materialIndex),e)),t);const i=[];for(let n=0;n<t.length;n++)i.push(e.filter((e=>e.materialIndex===t[n])));const n=this.getCurrentIndexBuffer(),r=this.getNextIndexBuffer(),s=n.array,a=r.array,o=[],l=this.renderViews.slice();l.sort(((e,t)=>e.batchStart-t.batchStart));let c=0;for(let e=0;e<i.length;e++){const t=i[e],n=c;let r=0;for(let e=0;e<t.length;e++){const i=t[e].start,n=t[e].count,o=s.subarray(i,i+n);a.set(o,c);let h=0;for(let e=0;e<l.length;e++)l[e].batchStart>=i&&l[e].batchEnd<=i+n&&(l[e].setBatchData(this.id,c+h,l[e].batchCount),h+=l[e].batchCount,l.splice(e,1),e--);c+=n,r+=n}o.push({offset:n,count:r,materialIndex:t[0].materialIndex})}this.groups=[];for(let e=0;e<o.length;e++)this.primitive.geometry.addGroup(o[e].offset,o[e].count,o[e].materialIndex);this.primitive.geometry.setIndex(r),this.primitive.geometry.index&&(this.primitive.geometry.index.needsUpdate=!0);const h=this.groups.find((e=>void 0!==e.materialIndex&&!1===this.materials[e.materialIndex].visible));h&&this.setVisibleRange([{offset:0,count:h.start}])}updateGradientIndexBuffer(e,t){this.gradientIndexBuffer.updateRange={offset:void 0!==e?e:0,count:void 0!==e&&void 0!==t?t-e+1:-1},this.gradientIndexBuffer.needsUpdate=!0,this.primitive.geometry.attributes.gradientIndex.needsUpdate=!0}resetDrawRanges(){this.primitive.visible=!0,this.primitive.geometry.clearGroups(),this.primitive.geometry.addGroup(0,this.getCount(),0),this.primitive.geometry.setDrawRange(0,1/0)}getMaterial(e){for(let t=0;t<this.groups.length;t++){const i=this.groups[t];if(e.batchStart>=i.start&&e.batchEnd<=i.start+i.count)return this.materials[i.materialIndex]}return null}purge(){this.renderViews.length=0,this.primitive.geometry.dispose(),this.batchMaterial.dispose()}}class dn extends hn{get bounds(){return this.primitive.TAS.getBoundingBox(new h)}get minDrawCalls(){return[...Array.from(new Set(this.groups.map((e=>e.materialIndex))))].length}get triCount(){return this.getCount()/3}get pointCount(){return 0}get lineCount(){return 0}get geometryType(){return Et.MESH}get mesh(){return this.primitive}constructor(e,t,i,n){super(),this.indexBufferIndex=0,this.drawRanges=new ln,this.id=e,this.subtreeId=t,this.renderViews=i,this.transformStorage=n}getCurrentIndexBuffer(){return this.indexBufferIndex%2==0?this.indexBuffer0:this.indexBuffer1}getNextIndexBuffer(){return++this.indexBufferIndex%2==0?this.indexBuffer0:this.indexBuffer1}shuffleMaterialOrder(e,t){const i=this.materials[e.materialIndex],n=this.materials[t.materialIndex],r=+n.visible-+i.visible,s=+n.colorWrite-+i.colorWrite,a=+i.transparent-+n.transparent;return 0!==r?r:0!==s?s:a}updateGradientIndexBufferData(e,t,i){if(!this.primitive.geometry.index)throw new Error(`Invalid geometry on batch ${this.id}`);const n=this.primitive.geometry.index.array,r=this.gradientIndexBuffer.array;let s=1/0,a=0;for(let o=e;o<t;o++){const e=n[o];s=Math.min(s,e),a=Math.max(a,e),r[e]=i}return this.gradientIndexBuffer.updateRange={offset:s,count:a-s+1},this.gradientIndexBuffer.needsUpdate=!0,this.primitive.geometry.attributes.gradientIndex.needsUpdate=!0,{minIndex:s,maxIndex:a}}setDrawRanges(e){e.forEach((e=>{e.material&&(e.material=this.primitive.getCachedMaterial(e.material))}));const t=e.map((e=>e.material)),i=[...Array.from(new Set(t.map((e=>e))))];for(let e=0;e<i.length;e++)this.materials.includes(i[e])||this.materials.push(i[e]);this.groups=this.drawRanges.integrateRanges(this.groups,this.materials,e);let n=0;if(this.groups.forEach((e=>n+=e.count)),n!==this.getCount()&&St.error(`Draw groups invalid on ${this.id}, ${this.renderViews[0].renderData.id}, ${this.getCount()}, ${this.getCount()-n}`),this.setBatchBuffers(e),this.cleanMaterials(),this.drawCalls>this.minDrawCalls+2)this.needsShuffle=!0;else{const e=this.groups.find((e=>!0===this.materials[e.materialIndex].transparent||!1===this.materials[e.materialIndex].visible||!1===this.materials[e.materialIndex].colorWrite));if(e)for(let t=this.groups.indexOf(e);t<this.groups.length;t++){const e=this.materials[this.groups[t].materialIndex];if(!0!==e.transparent&&!1!==e.visible){this.needsShuffle=!0;break}}}}resetDrawRanges(){super.resetDrawRanges(),this.primitive.setBatchMaterial(this.batchMaterial)}buildBatch(){var e;let t=0,i=0;for(let e=0;e<this.renderViews.length;e++){const n=this.renderViews[e];if(!n.renderData.geometry.attributes||!n.renderData.geometry.attributes.INDEX)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);t+=n.renderData.geometry.attributes.INDEX.length,i+=n.renderData.geometry.attributes.POSITION.length}const n=void 0!==(null===(e=this.renderViews[0].renderData.geometry.attributes)||void 0===e?void 0:e.COLOR),r=new Uint32Array(t),s=new Float64Array(i),a=new Float32Array(n?i:0);a.fill(1);const o=new Float32Array(i/3);let l=0,c=0;const d=[];for(let e=0;e<this.renderViews.length;e++){const t=this.renderViews[e].renderData.geometry;if(!t.attributes||!t.attributes.INDEX)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);r.set(t.attributes.INDEX.map((e=>e+l/3)),c),s.set(t.attributes.POSITION,l),t.attributes.COLOR&&a.set(t.attributes.COLOR,l),o.fill(e,l/3,l/3+t.attributes.POSITION.length/3),this.renderViews[e].setBatchData(this.id,c,t.attributes.INDEX.length,l/3,l/3+t.attributes.POSITION.length/3);const i=new an(this.renderViews[e],e);i.buildAccelerationStructure(),d.push(i),l+=t.attributes.POSITION.length,c+=t.attributes.INDEX.length}const u=this.makeMeshGeometry(r,s,o,n?a:void 0);return this.primitive=new Pi(u),this.primitive.setBatchObjects(d,this.transformStorage),this.primitive.setBatchMaterial(this.batchMaterial),this.primitive.buildTAS(),this.primitive.geometry.boundingBox=this.primitive.TAS.getBoundingBox(new h),this.primitive.geometry.boundingSphere=this.primitive.geometry.boundingBox.getBoundingSphere(new V),this.primitive.uuid=this.id,this.primitive.layers.set(gt.STREAM_CONTENT_MESH),this.primitive.frustumCulled=!1,this.primitive.geometry.addGroup(0,this.getCount(),0),d.forEach((e=>{e.renderView.disposeGeometry()})),Promise.resolve()}makeMeshGeometry(e,t,i,n){const r=new L;t.length>=65535||e.length>=65535?(this.indexBuffer0=new P(e,1),this.indexBuffer1=new P(new Uint32Array(e.length),1)):(this.indexBuffer0=new z(e,1),this.indexBuffer1=new z(new Uint16Array(e.length),1)),r.setIndex(this.indexBuffer0),t&&r.setAttribute("position",new C(t,3)),i&&r.setAttribute("objIndex",new C(i,1)),n&&r.setAttribute("color",new C(n,3));const s=new Float32Array(t.length/3);return this.gradientIndexBuffer=new C(s,1),this.gradientIndexBuffer.setUsage(N),r.setAttribute("gradientIndex",this.gradientIndexBuffer),ni.computeVertexNormals(r,t),ni.updateRTEGeometry(r,t),r}getRenderView(e){return St.warn("Deprecated! Use BatchObject"),null}getMaterialAtIndex(e){return St.warn("Deprecated! Use BatchObject"),null}}class un extends hn{get geometryType(){return this.renderViews[0].geometryType}get bounds(){return this.primitive.geometry.boundingBox||this.primitive.geometry.computeBoundingBox(),this.primitive.geometry.boundingBox?this.primitive.geometry.boundingBox:new h}get minDrawCalls(){return this.materials.length}get triCount(){return 0}get pointCount(){return this.getCount()}get lineCount(){return 0}constructor(e,t,i){super(),this.drawRanges=new ln,this.id=e,this.subtreeId=t,this.renderViews=i}setDrawRanges(e){const t=e.map((e=>e.material)),i=[...Array.from(new Set(t.map((e=>e))))];for(let e=0;e<i.length;e++)this.materials.includes(i[e])||this.materials.push(i[e]);this.groups=this.drawRanges.integrateRanges(this.groups,this.materials,e);let n=0;if(this.groups.forEach((e=>n+=e.count)),n!==this.getCount()&&St.error(`Draw groups invalid on ${this.id}`),this.setBatchBuffers(e),this.cleanMaterials(),this.drawCalls>this.minDrawCalls+2)this.needsShuffle=!0;else{const e=this.groups.find((e=>!0===this.materials[e.materialIndex].transparent||!1===this.materials[e.materialIndex].visible));if(e)for(let t=this.groups.indexOf(e);t<this.groups.length;t++){const e=this.materials[this.groups[t].materialIndex];if(!0!==e.transparent&&!1!==e.visible){this.needsShuffle=!0;break}}}}resetDrawRanges(){this.primitive.material=[this.batchMaterial]}getCurrentIndexBuffer(){if(!this.primitive.geometry.index)throw new Error(`Invalid index buffer for batch ${this.id}`);return this.primitive.geometry.index}getNextIndexBuffer(){if(!this.primitive.geometry.index)throw new Error(`Invalid index buffer for batch ${this.id}`);return new b(this.primitive.geometry.index.array.slice(),this.primitive.geometry.index.itemSize)}shuffleMaterialOrder(e,t){const i=this.materials[e.materialIndex],n=this.materials[t.materialIndex],r=+n.visible-+i.visible,s=+i.transparent-+n.transparent;return 0!==r?r:s}updateGradientIndexBufferData(e,t,i){return this.gradientIndexBuffer.array.fill(i,e,t),this.gradientIndexBuffer.updateRange={offset:e,count:t-e},this.gradientIndexBuffer.needsUpdate=!0,this.primitive.geometry.attributes.gradientIndex.needsUpdate=!0,{minIndex:e,maxIndex:t}}buildBatch(){let e=0;for(let t=0;t<this.renderViews.length;t++){const i=this.renderViews[t];if(!i.renderData.geometry.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);e+=i.renderData.geometry.attributes.POSITION.length}const t=new Float64Array(e),i=new Float32Array(e).fill(1),n=new Int32Array(e/3);let r=0,s=0;for(let e=0;e<this.renderViews.length;e++){const a=this.renderViews[e].renderData.geometry;if(!a.attributes)throw new Error(`Cannot build batch ${this.id}. Invalid geometry, or indices`);t.set(a.attributes.POSITION,r),a.attributes.COLOR&&i.set(a.attributes.COLOR,r),n.set(new Int32Array(a.attributes.POSITION.length/3).map(((e,t)=>t+s)),s),this.renderViews[e].setBatchData(this.id,r/3,a.attributes.POSITION.length/3),r+=a.attributes.POSITION.length,s+=a.attributes.POSITION.length/3,this.renderViews[e].disposeGeometry()}const a=this.makePointGeometry(n,t,i);return this.primitive=new X(a,this.batchMaterial),this.primitive.material=[this.batchMaterial],this.primitive.geometry.addGroup(0,this.getCount(),0),this.primitive.uuid=this.id,this.primitive.layers.set(this.renderViews[0].geometryType===Et.POINT?gt.STREAM_CONTENT_POINT:gt.STREAM_CONTENT_POINT_CLOUD),Promise.resolve()}makePointGeometry(e,t,i){const n=new L;n.setAttribute("position",new C(t,3)),n.setAttribute("color",new C(i,3)),t.length>=65535||e.length>=65535?n.setIndex(new P(e,1)):n.setIndex(new z(e,1));const r=new Float32Array(t.length/3);return this.gradientIndexBuffer=new C(r,1),this.gradientIndexBuffer.setUsage(N),n.setAttribute("gradientIndex",this.gradientIndexBuffer),n.computeBoundingSphere(),n.computeBoundingBox(),ni.updateRTEGeometry(n,t),n}getRenderView(e){for(let t=0;t<this.renderViews.length;t++)if(e>=this.renderViews[t].batchStart&&e<this.renderViews[t].batchEnd)return this.renderViews[t];return null}getMaterialAtIndex(e){for(let t=0;t<this.renderViews.length;t++)if(e>=this.renderViews[t].batchStart&&e<this.renderViews[t].batchEnd){const e=this.renderViews[t],i=this.groups.find((t=>e.batchStart>=t.start&&e.batchStart+e.batchCount<=t.count+t.start));return i?this.materials[i.materialIndex]:(St.warn("Malformed material index!"),null)}return null}}class pn{constructor(e,t){this.maxHardwareUniformCount=0,this.floatTextures=!1,this.maxBatchObjects=0,this.maxBatchVertices=5e5,this.minInstancedBatchVertices=1e4,this.batches={},this.maxHardwareUniformCount=e,this.maxBatchObjects=Math.floor((this.maxHardwareUniformCount-_t.UNIFORM_VECTORS_USED)/4),this.floatTextures=t,this.materials=new _t,this.materials.createDefaultMaterials()}async*makeBatches(e,t,i,n){let r=Number.MAX_SAFE_INTEGER,s=-1,a=0,o=0;const l=t.getInstances(),c={},h=new yt;for(const t in l){h.tick(100),h.needsWait&&await h.wait(50);let i=e.findId(t);if(!i)continue;if(i=i.filter((e=>e.model.renderView&&e.model.renderView.speckleType===Zt.Mesh)),!i.length)continue;const n=i[0].model.renderView.renderData.geometry.attributes.POSITION.length/3*i.length;c[n]||(c[n]=[]),c[n].push(t)}for(const i in c)for(let n=0;n<c[i].length;n++){const a=e.findId(c[i][n]);if(!a)continue;let l=!0;a.every((e=>l&&(l=e.model.instanced)));const h=a.map((e=>e.model.renderView)).filter((e=>e));if(Number.parseInt(i)<this.minInstancedBatchVertices||!l){h.forEach((e=>{const t=e.renderData.geometry;t.instanced=!1;const i=t.attributes;t.attributes={POSITION:i.POSITION.slice(),INDEX:i.INDEX.slice(),...i.COLOR&&{COLOR:i.COLOR.slice()}},t.transform&&ni.transformGeometryData(t,t.transform),e.computeAABB()}));continue}const d=h[0].renderMaterialHash,u=await this.buildInstancedBatch(t,h,d);u&&(this.batches[u.id]=u,r=Math.min(r,u.renderViews.length),s=Math.max(s,u.renderViews.length),o++,yield this.batches[u.id])}const d=t.getRenderableNodes(...i).flatMap((e=>e.model.renderView?e.model.renderView.renderData.geometry.instanced?e.model.renderView.speckleType!==Zt.Mesh?[e.model.renderView]:[]:[e.model.renderView]:[])).sort(((e,t)=>0===e.renderMaterialHash?-1:0===t.renderMaterialHash?1:e.renderMaterialHash-t.renderMaterialHash)),u=[...Array.from(new Set(d.map((e=>e.renderMaterialHash))))];for(let e=0;e<u.length;e++){let i=d.filter((t=>t.renderMaterialHash===u[e])),l=0;if(i=i.filter((e=>{const t=e.validGeometry;return t&&(l+=e.renderData.geometry.attributes.POSITION.length/3),t||e.hasMetadata})),0===i.length)continue;const c=this.splitBatch(i,l);for(let i=0;i<c.length;i++){h.tick(100),h.needsWait&&await h.wait(50);const l=c[i],d=await this.buildBatch(t,l,u[e],n);d&&(this.batches[d.id]=d,r=Math.min(r,d.renderViews.length),s=Math.max(s,d.renderViews.length),a+=d.renderViews.length,o++,yield this.batches[d.id])}}St.warn(`Batch total: ${o} min: ${r}, max: ${s}, average: ${a/u.length}`)}splitBatch(e,t){const i=[];if(Math.floor(t/this.maxBatchVertices)>0){let t=0,n=0;i.push([]);for(let r=0;r<e.length;r++){const s=e[r],a=e[r+1];if(!s.renderData.geometry.attributes)throw new Error(`Invalid geometry on render view ${e[r].renderData.id}`);i[n].push(e[r]),t+=s.renderData.geometry.attributes.POSITION.length/3;t+(a&&a.renderData.geometry.attributes?a.renderData.geometry.attributes.POSITION.length/3:0)>=this.maxBatchVertices&&e[r+1]&&(i.push([]),n++,t=0)}}else i.push(e);if(e[0].geometryType===Et.MESH){const e=[];for(let t=0;t<i.length;t++){const n=i[t].length,r=Math.floor(n/this.maxBatchObjects),s=n%this.maxBatchObjects;let a=0;for(let n=0;n<r;n++)e.push(i[t].slice(a,a+this.maxBatchObjects)),a+=this.maxBatchObjects;s>0&&e.push(i[t].slice(a,a+s))}return e}return i}async buildInstancedBatch(e,t,i){if(!t.length)return St.warn("All renderviews have invalid geometries. Skipping batch!",t),null;const n=t[0].renderData.renderMaterial,r=this.materials.getMaterial(i,n,Et.MESH),s=K.generateUUID(),a=new cn(s,e.id,t);return a.setBatchMaterial(r),await a.buildBatch(),a}async buildBatch(e,t,i,n){if(!t.length)return St.warn("All renderviews have invalid geometries. Skipping batch!",t),null;const r=void 0!==n?n:t[0].geometryType;let s=t[0].renderData.renderMaterial;r===Et.MESH?s=t[0].renderData.renderMaterial:r===Et.LINE?s=t[0].renderData.displayStyle:r===Et.POINT?s=t[0].renderData.renderMaterial||t[0].renderData.displayStyle:r===Et.POINT_CLOUD?s=t[0].renderData.renderMaterial:r===Et.TEXT&&(s=t[0].renderData.displayStyle);const a=this.materials.getMaterial(i,s,r),o=K.generateUUID();let l=null;switch(r){case Et.MESH:l=new dn(o,e.id,t,this.floatTextures?Li.VERTEX_TEXTURE:Li.UNIFORM_ARRAY);break;case Et.LINE:l=new oi(o,e.id,t);break;case Et.POINT:case Et.POINT_CLOUD:l=new un(o,e.id,t);break;case Et.TEXT:l=new hi(o,e.id,t)}return l.setBatchMaterial(a),await l.buildBatch(),l}update(e){for(const t in this.batches)this.batches[t].onUpdate(e)}render(e){for(const t in this.batches){const i=this.batches[t];i.onRender&&i.onRender(e)}}saveVisiblity(){const e={};for(const t in this.batches){const i=this.batches[t];e[t]=i.getVisibleRange()}return e}applyVisibility(e){for(const t in this.batches){const i=this.batches[t],n=e[t];n?i.setVisibleRange([n]):i.setVisibleRange([xt])}}getTransparent(){const e={};for(const t in this.batches)e[t]=this.batches[t].getTransparent();return e}getStencil(){const e={};for(const t in this.batches)e[t]=this.batches[t].getStencil();return e}getOpaque(){const e={};for(const t in this.batches)e[t]=this.batches[t].getOpaque();return e}getDepth(){const e={};for(const t in this.batches)e[t]=this.batches[t].getDepth();return e}overrideMaterial(e,t){for(const i in e){if(this.batches[i].geometryType!==Et.MESH)continue;this.batches[i].renderObject.setOverrideMaterial(t)}}restoreMaterial(e){for(const t in e){if(this.batches[t].geometryType!==Et.MESH)continue;this.batches[t].renderObject.restoreMaterial()}}purgeBatches(e){for(const t in this.batches)this.batches[t].subtreeId===e&&(this.batches[t].purge(),delete this.batches[t])}getBatches(e,t){return Object.values(this.batches).filter((i=>{const n=void 0===e||i.subtreeId===e,r=void 0===t||this.isBatchType(i,t);return n&&r}))}isBatchType(e,t){if(void 0===t)return!0;switch(t){case Et.MESH:return e instanceof dn||e instanceof cn;case Et.LINE:return e instanceof oi;case Et.POINT:case Et.POINT_CLOUD:return e instanceof un;case Et.TEXT:return e instanceof hi;default:return!1}}getBatch(e){return this.batches[e.batchId]}getRenderView(e,t){return this.batches[e]?this.batches[e].getRenderView(t):(St.error("Invalid batch id!"),null)}getRenderViewMaterial(e,t){return this.batches[e]?this.batches[e].getMaterialAtIndex(t):(St.error("Invalid batch id!"),null)}resetBatchesDrawRanges(){for(const e in this.batches)this.batches[e].resetDrawRanges()}isolateBatch(e){for(const t in this.batches)t!==e&&this.batches[t].setDrawRanges([{offset:0,count:this.batches[t].getCount(),material:this.materials.getFilterMaterial(this.batches[t].renderViews[0],{filterType:Yt.GHOST})}])}}var mn;!function(e){e.PointerDown="pointer-down",e.PointerUp="pointer-up",e.PointerMove="pointer-move",e.PointerCancel="pointer-cancel",e.Wheel="wheel",e.Click="click",e.DoubleClick="double-click",e.KeyUp="key-up"}(mn||(mn={}));class gn extends ht{constructor(e){let t;super(),this.tapTimeout=0,this.lastTap=0,this.lastClick=0,this.container=e,this.container.addEventListener("pointerdown",(e=>{e.preventDefault();const i=this._getNormalisedClickPosition(e);i.event=e,t=(new Date).getTime(),this.emit(mn.PointerDown,i)})),this.container.addEventListener("pointerup",(e=>{e.preventDefault();const i=this._getNormalisedClickPosition(e);i.event=e,this.emit(mn.PointerUp,i);const n=(new Date).getTime(),r=n-t,s=n-this.lastClick;r>250||s<gn.MAX_DOUBLE_CLICK_TIMING||(e.shiftKey&&(i.multiSelect=!0),this.emit(mn.Click,i),this.lastClick=(new Date).getTime())})),this.container.addEventListener("touchstart",(e=>{this.touchLocation=e.targetTouches[0]})),this.container.addEventListener("touchend",(e=>{if(e.targetTouches.length>0)return;const t=(new Date).getTime(),i=t-this.lastTap;if(clearTimeout(this.tapTimeout),i<500&&i>0){if(this.touchLocation){const e=this._getNormalisedClickPosition(this.touchLocation);this.emit(mn.DoubleClick,e)}}else this.tapTimeout=setTimeout((()=>{clearTimeout(this.tapTimeout)}),500);this.lastTap=t})),this.container.addEventListener("dblclick",(e=>{const t=this._getNormalisedClickPosition(e);t.event=e,e.shiftKey&&(t.multiSelect=!0),this.emit(mn.DoubleClick,t)})),this.container.addEventListener("pointermove",(e=>{const t=this._getNormalisedClickPosition(e);t.event=e,this.emit(mn.PointerMove,t)})),document.addEventListener("keyup",(e=>{this.emit(mn.KeyUp,e)})),document.addEventListener("wheel",(e=>{this.emit(mn.Wheel,e)})),document.addEventListener("pointercancel",(e=>{const t=this._getNormalisedClickPosition(e);t.event=e,this.emit(mn.PointerUp,t),this.emit(mn.PointerCancel,t)}))}on(e,t){super.on(e,t)}_getNormalisedClickPosition(e){const t=this.container,i=this.container.getBoundingClientRect(),n=(e.clientX-i.left)*t.width/i.width,r=(e.clientY-i.top)*t.height/i.height;return new T(n/t.width*2-1,r/t.height*-2+1)}dispose(){super.dispose()}}gn.MAX_DOUBLE_CLICK_TIMING=500;class vn extends Y{constructor(e,t,i=0,n=1/0){super(e,t,i,n),this.intersectTASOnly=!1,this.onObjectIntersectionTest=null,this.layers.disableAll(),this.layers.enable(gt.STREAM_CONTENT),this.layers.enable(gt.STREAM_CONTENT_MESH),this.layers.enable(gt.STREAM_CONTENT_LINE),this.layers.enable(gt.STREAM_CONTENT_TEXT),this.layers.enable(gt.STREAM_CONTENT_POINT_CLOUD),this.layers.enable(gt.STREAM_CONTENT_POINT),this.params={Line2:{threshold:0}}}intersectObjects(e,t=!0,i=[]){for(let n=0,r=e.length;n<r;n++){const r=wn(e[n],this,i,t);if(!0===this.firstHitOnly&&!r)break}return i.sort(fn),i}}function fn(e,t){return e.distance-t.distance}function wn(e,t,i,n){const r=i.length;if(e.layers.test(t.layers)&&(t.onObjectIntersectionTest&&t.onObjectIntersectionTest(e),e.raycast(t,i)),!0===t.firstHitOnly&&i.length-r>0)return!0;let s=!1;if(n&&(n=null==e.userData.raycastChildren||e.userData.raycastChildren),!0===n){const n=e.children;for(let e=0,r=n.length;e<r&&(s=wn(n[e],t,i,!0),!0!==t.firstHitOnly||!s);e++);}return s}class Sn{constructor(){this.boxBuffer=new h,this.vec0Buffer=new I,this.vec1Buffer=new I,this.boundsBuffer=new h,this.raycaster=new vn,this.raycaster.params.Line={threshold:.01},this.raycaster.params.Points={threshold:.01},this.raycaster.params.Line2={threshold:1},this.raycaster.onObjectIntersectionTest=this.onObjectIntersection.bind(this)}onObjectIntersection(e){if(e instanceof je){const t=this.boxBuffer.setFromObject(e),i=this.vec0Buffer.set(t.min.x,t.min.y,t.min.z,1),n=this.vec1Buffer.set(t.max.y,t.max.y,t.max.z,1);i.applyMatrix4(this.raycaster.camera.matrixWorldInverse).applyMatrix4(this.raycaster.camera.projectionMatrix),n.applyMatrix4(this.raycaster.camera.matrixWorldInverse).applyMatrix4(this.raycaster.camera.projectionMatrix),i.multiplyScalar(.5).multiplyScalar(1/i.w).addScalar(.5),n.multiplyScalar(.5).multiplyScalar(1/n.w).addScalar(.5);const r=(new T).set(i.x,i.y).distanceTo(new T(n.x,n.y)),s=e.material,a=s.linewidth,o=s.worldUnits;this.raycaster.params.Line2.threshold=o?r<1?2*a:a:r<1?8*a:5*a}}intersect(e,t,i,n,r=!0,s,a=!1,o=!1){this.raycaster.setFromCamera(i,t),this.raycaster.firstHitOnly=a,this.raycaster.intersectTASOnly=o;const l=this.setRaycasterLayers(n);let c;return c=(gt.STREAM_CONTENT_MESH,this.intersectInternal(e,r,s)),this.raycaster.layers.mask=l,c}intersectRay(e,t,i,n,r=!0,s,a=!1,o=!1){this.raycaster.camera=t,this.raycaster.set(i.origin,i.direction),this.raycaster.firstHitOnly=a,this.raycaster.intersectTASOnly=o;const l=this.setRaycasterLayers(n);let c;return c=(gt.STREAM_CONTENT_MESH,this.intersectInternal(e,r,s)),this.raycaster.layers.mask=l,c}setRaycasterLayers(e){const t=this.raycaster.layers.mask;return void 0!==e&&(this.raycaster.layers.disableAll(),Array.isArray(e)?e.forEach((e=>{this.raycaster.layers.enable(e)})):this.raycaster.layers.enable(e)),t}intersectInternal(e,t,i){let n=[];const r=e.getObjectByName("ContentGroup");return r&&(n=this.raycaster.intersectObjects(r.children)),0===n.length?null:(t&&n.sort(((e,t)=>e.distance-t.distance)),i&&(this.boundsBuffer.copy(i),this.boundsBuffer.expandByVector(new d(1e-4*(this.boundsBuffer.max.x-this.boundsBuffer.min.x),1e-4*(this.boundsBuffer.max.y-this.boundsBuffer.min.y),1e-4*(this.boundsBuffer.max.z-this.boundsBuffer.min.z))),n=n.filter((e=>this.boundsBuffer.containsPoint(e.point)||!!e.pointOnLine&&this.boundsBuffer.containsPoint(e.pointOnLine)))),n)}}Sn.aabbPlanePoints=(e,t)=>{const i=new k,n=new Array,r=new d(t.max.x-t.min.x,0,0),s=(new d).copy(t.min);i.set(s,r);let a=i.distanceToPlane(e);return a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.max.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.min.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.max.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),r.set(0,t.max.y-t.min.y,0),s.set(t.min.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.min.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.min.y,t.max.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),r.set(0,0,t.max.z-t.min.z),s.set(t.min.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.min.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.min.x,t.max.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),s.set(t.max.x,t.max.y,t.min.z),i.set(s,r),a=i.distanceToPlane(e),a&&n.push((new d).copy(s).addScaledVector(r,a)),n};class An extends It{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n uniform mat4 rteModelViewMatrix;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#ifdef LINEAR_DEPTH\n varying vec4 vViewPosition;\n#endif\n\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n// This is used for computing an equivalent of gl_FragCoord.z that is: high precision: possible.\n// Some platforms compute gl_FragCoord at a lower precision which makes the manually computed value better for\n// depth-based postprocessing effects. Reproduced on iPad with A10 processor / iPadOS 13.3.1.\nvarying vec2 vHighPrecisionZW;\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t//#include <project_vertex> // EDITED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n #ifdef USE_RTE\n mvPosition = rteModelViewMatrix * mvPosition;\n #else\n mvPosition = modelViewMatrix * mvPosition;\n #endif\n \n #ifdef LINEAR_DEPTH\n vViewPosition = mvPosition;\n #endif \n \n gl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t// #include <clipping_planes_vertex>\n #if NUM_CLIPPING_PLANES > 0\n\t vClipPosition = - mvPosition.xyz;\n #endif\n\tvHighPrecisionZW = gl_Position.zw;\n}\n"}get fragmentProgram(){return"\n#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#ifdef LINEAR_DEPTH\n varying vec4 vViewPosition;\n\tuniform float near;\n\tuniform float far;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\n\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t// #include <alphatest_fragment>\n\t#ifdef USE_ALPHATEST\n\t\tif ( diffuseColor.a < alphaTest ) discard;\n\t\t/** This is a workaround for rejecting shadows for certain materials, since three.js gave me no choice*/\n\t\t#ifdef ALPHATEST_REJECTION\n\t\t\tif (alphaTest > 0. ) discard;\n\t\t#endif\n\t#endif\n\t#include <logdepthbuf_fragment>\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\t#ifdef LINEAR_DEPTH\n\t\t/** View z is negative moving away from the camera */\n\t\tgl_FragColor = packDepthToRGBA((vViewPosition.z + near) / (near - far));\n\t#else\n\t\tfloat fragCoordZ = (0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5);\n\t\t#if DEPTH_PACKING == 3200\n\t\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t\t#elif DEPTH_PACKING == 3201\n\t\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t\t#endif\n\t#endif\n}\n"}get baseUniforms(){return A.depth.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,rteModelViewMatrix:new s,near:0,far:0,uTransforms:[new s],tTransforms:null,objCount:1}}constructor(e,t=[]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}fastCopy(e,t){super.fastCopy(e,t),t.userData.near.value=e.userData.near.value,t.userData.far.value=e.userData.far.value}onBeforeRender(e,t,i,n,r){this.defines&&this.defines.USE_RTE&&(r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.userData.rteModelViewMatrix.value.copy(e.RTEBuffers.rteViewModelMatrix)),this.needsUpdate=!0}}var yn;!function(e){e[e.NORMAL=0]="NORMAL",e[e.ACCUMULATION=1]="ACCUMULATION"}(yn||(yn={}));class Tn extends Ke{get enabledLayers(){return this._enabledLayers}constructor(){super(),this.layers=null,this._enabledLayers=[]}get displayName(){return"BASE"}get outputTexture(){return null}setLayers(e){this.layers=e,this._enabledLayers=e.slice()}enableLayer(e,t){this._enabledLayers.includes(e)?t||this._enabledLayers.splice(this._enabledLayers.indexOf(e),1):t&&this._enabledLayers.push(e)}applyLayers(e){null!==this.layers?(e.layers.disableAll(),this.layers.forEach((t=>{this._enabledLayers.includes(t)&&e.layers.enable(t)}))):e.layers.enableAll()}}class En extends Ke{constructor(){super(),this.frameIndex=0,this.accumulatioFrames=0,this.materialCopy=new i({defines:{ACCUMULATE:0},uniforms:{tDiffuse:{value:null},tDiffuseInterp:{value:null},frameIndex:{value:0}},vertexShader:"\n\t\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",fragmentShader:"\n\t\tuniform float opacity;\n\t\tuniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseInterp;\n\t\tvarying vec2 vUv;\n #if ACCUMULATE == 1\n uniform float frameIndex;\n #endif\n\n\t\tvoid main() {\n vec3 currentSample = texture2D( tDiffuse, vUv ).rgb;\n \n #if ACCUMULATE == 1\n vec3 interpSample = texture2D( tDiffuseInterp, vUv ).rgb;\n\t\t\t gl_FragColor.rgb = mix(interpSample, currentSample, frameIndex/float(NUM_FRAMES));\n #else\n gl_FragColor.rgb = currentSample;\n #endif\n\t\t\tgl_FragColor.a = 1.;\n\t\t}",blending:n}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=Z,this.materialCopy.blendSrc=_,this.materialCopy.blendDst=$,this.materialCopy.blendEquation=ee,this.materialCopy.blendSrcAlpha=te,this.materialCopy.blendDstAlpha=$,this.materialCopy.blendEquationAlpha=ee,this.materialCopy.needsUpdate=!0,this.fsQuad=new Ye(this.materialCopy)}setTexture(e,t){this.materialCopy.uniforms[e].value=t,this.materialCopy.needsUpdate=!0}get displayName(){return"APPLYSAO"}get outputTexture(){return null}setParams(e){}setFrameIndex(e){this.frameIndex=e}setAccumulationFrames(e){this.accumulatioFrames=e}setRenderType(e){e===yn.NORMAL?this.materialCopy.defines.ACCUMULATE=0:(this.materialCopy.defines.ACCUMULATE=1,this.frameIndex=0),this.materialCopy.needsUpdate=!0}update(e,t){this.materialCopy.defines.NUM_FRAMES=this.accumulatioFrames,this.materialCopy.uniforms.frameIndex.value=this.frameIndex,this.materialCopy.needsUpdate=!0}render(e){e.setRenderTarget(null);const t=e.autoClear;e.autoClear=!1,this.fsQuad.render(e),e.autoClear=t}}class xn extends Ke{constructor(){super(),this.materialCopy=new i({defines:{INPUT_TYPE:0},uniforms:m.clone(Ze.uniforms),vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform float opacity;\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n\n const float UnpackDownscale = 255. / 256.;\n const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\n\n float unpackRGBAToDepth( const in vec4 v ) {\n return dot( v, UnpackFactors );\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n void main() {\n vec4 inSample = texture2D( tDiffuse, vUv );\n vec3 outSample = inSample.rgb;\n #if OUTPUT_TYPE == 1\n outSample.rgb = vec3(unpackRGBAToDepth(inSample));\n #endif\n // #if OUTPUT_TYPE == 3\n // outSample.rgb = unpackRGBToNormal(inSample.rgb);\n // #endif\n\n gl_FragColor.rgb = outSample;\n gl_FragColor.a = 1.;\n }",blending:n}),this.materialCopy.needsUpdate=!0,this.fsQuad=new Ye(this.materialCopy)}setOutputType(e){this.materialCopy.defines.OUTPUT_TYPE=e,this.materialCopy.needsUpdate=!0}setTexture(e,t){this.materialCopy.uniforms[e].value=t,this.materialCopy.needsUpdate=!0}get displayName(){return"COPY-OUTPUT"}get outputTexture(){return null}render(e){e.setRenderTarget(null);const t=e.autoClear;e.autoClear=!1,this.fsQuad.render(e),e.autoClear=t}}var Rn,Cn;!function(e){e[e.PERSPECTIVE_DEPTH=0]="PERSPECTIVE_DEPTH",e[e.LINEAR_DEPTH=1]="LINEAR_DEPTH"}(Rn||(Rn={})),function(e){e[e.FULL=0]="FULL",e[e.HALF=1]="HALF"}(Cn||(Cn={}));class Mn extends Tn{get displayName(){return"DEPTH"}get material(){return this.depthMaterial}get outputTexture(){return this.renderTarget.texture}get outputTextureHalf(){return this.renderTargetHalf.texture}get outputRenderTarget(){return this.renderTarget}set depthType(e){e===Rn.LINEAR_DEPTH&&(this.depthMaterial.defines?this.depthMaterial.defines.LINEAR_DEPTH=" ":this.depthMaterial.defines&&delete this.depthMaterial.defines.LINEAR_DEPTH),this.depthMaterial.needsUpdate=!0}set depthSize(e){this.depthBufferSize=e}set depthSide(e){this.depthMaterial.side=e}constructor(){super(),this.depthBufferSize=Cn.FULL,this.colorBuffer=new l,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.renderTarget=new ie(256,256,{minFilter:y,magFilter:y}),this.renderTargetHalf=new ie(256,256,{minFilter:y,magFilter:y}),this.renderTarget.depthBuffer=!0,this.renderTarget.stencilBuffer=!0,this.renderTargetHalf.depthBuffer=!0,this.renderTargetHalf.stencilBuffer=!0,this.depthMaterial=new An({depthPacking:ne},["USE_RTE","ALPHATEST_REJECTION"]),this.depthMaterial.blending=n,this.depthMaterial.side=R}setClippingPlanes(e){this.depthMaterial.clippingPlanes=e}update(e,t){this.camera=t,this.scene=e,this.depthMaterial.userData.near.value=t.near,this.depthMaterial.userData.far.value=t.far,this.depthMaterial.needsUpdate=!0}render(e){if(!this.camera||!this.scene)return;this.onBeforeRender&&this.onBeforeRender(),e.getClearColor(this.colorBuffer);const t=e.getClearAlpha(),i=e.autoClear;e.setRenderTarget(this.depthBufferSize===Cn.FULL?this.renderTarget:this.renderTargetHalf),e.autoClear=!1,e.setClearColor(0),e.setClearAlpha(1),e.clear();const n=e.shadowMap.enabled,r=e.shadowMap.needsUpdate;e.shadowMap.enabled=!1,e.shadowMap.needsUpdate=!1,this.applyLayers(this.camera),e.render(this.scene,this.camera),e.shadowMap.enabled=n,e.shadowMap.needsUpdate=r,this.scene.overrideMaterial=null,e.autoClear=i,e.setClearColor(this.colorBuffer),e.setClearAlpha(t),this.onAfterRender&&this.onAfterRender()}setSize(e,t){this.renderTarget.setSize(e,t),this.renderTargetHalf.setSize(.5*e,.5*t)}}class On extends Nt{get vertexProgram(){return"\n#define NORMAL\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n //#include <project_vertex> // EDITED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n\n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\t vViewPosition = - mvPosition.xyz;\n #endif\n}\n"}get fragmentProgram(){return"\n#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}\n"}get baseUniforms(){return A.normal.uniforms}get uniformsDef(){return{uViewer_high:new d,uViewer_low:new d,uTransforms:[new s],tTransforms:null}}constructor(e,t=["USE_RTE"]){super(e),this.init(t)}customProgramCacheKey(){return this.constructor.name}copy(e){return super.copy(e),this.copyFrom(e),this}onBeforeRender(e,t,i,n,r){r.modelViewMatrix.copy(e.RTEBuffers.rteViewModelMatrix),this.userData.uViewer_low.value.copy(e.RTEBuffers.viewerLow),this.userData.uViewer_high.value.copy(e.RTEBuffers.viewerHigh),this.needsUpdate=!0}}class bn extends Tn{get displayName(){return"GEOMETRY-NORMALS"}get outputTexture(){return this.renderTarget.texture}get material(){return this.normalsMaterial}constructor(){super(),this.colorBuffer=new l,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.renderTarget=new ie(256,256),this.renderTarget.depthBuffer=!0,this.renderTarget.stencilBuffer=!0,this.normalsMaterial=new On({},["USE_RTE"]),this.normalsMaterial.blending=n,this.normalsMaterial.side=R}setClippingPlanes(e){this.normalsMaterial.clippingPlanes=e}update(e,t){this.camera=t,this.scene=e}render(e){this.onBeforeRender&&this.onBeforeRender(),e.getClearColor(this.colorBuffer);const t=e.getClearAlpha(),i=e.autoClear;e.setRenderTarget(this.renderTarget),e.autoClear=!1,e.setClearColor(0),e.setClearAlpha(1),e.clear();const n=e.shadowMap.enabled,r=e.shadowMap.needsUpdate;e.shadowMap.enabled=!1,e.shadowMap.needsUpdate=!1,this.applyLayers(this.camera),e.render(this.scene,this.camera),e.shadowMap.enabled=n,e.shadowMap.needsUpdate=r,this.scene.overrideMaterial=null,e.autoClear=i,e.setClearColor(this.colorBuffer),e.setClearAlpha(t),this.onAfterRender&&this.onAfterRender()}setSize(e,t){this.renderTarget.setSize(e,t)}}var In,Nn;!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.IMPROVED=1]="IMPROVED",e[e.ACCURATE=2]="ACCURATE"}(In||(In={})),function(e){e[e.RECONSTRUCTED_NORMALS=0]="RECONSTRUCTED_NORMALS",e[e.AO=1]="AO",e[e.AO_BLURRED=2]="AO_BLURRED"}(Nn||(Nn={}));const Bn={intensity:1.5,scale:0,kernelRadius:5,bias:.2,normalsType:In.ACCURATE,blurEnabled:!0,blurRadius:2,blurStdDev:4,blurDepthCutoff:.007};class Dn extends Ke{get displayName(){return"SAO"}get outputTexture(){return this.saoRenderTarget.texture}constructor(){super(),this.params=Bn,this.colorBuffer=new l,this._outputType=Nn.AO_BLURRED,this.outputScale=.5,this.prevStdDev=0,this.prevNumSamples=0,this.saoRenderTarget=new ie(256,256),this.blurIntermediateRenderTarget=new ie(256,256),this.saoMaterial=new i({defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},fragmentShader:"\n\t\t#include <common>\n\t\tvarying vec2 vUv;\n\t\t#if DIFFUSE_TEXTURE == 1\n\t\tuniform sampler2D tDiffuse;\n\t\t#endif\n\t\tuniform sampler2D tDepth;\n\t\t#if NORMAL_TEXTURE == 1\n\t\tuniform sampler2D tNormal;\n\t\t#endif\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n\t\tuniform vec2 size;\n\t\tuniform float randomSeed;\n\t\t// RGBA depth\n\t\t#include <packing>\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\t#if DIFFUSE_TEXTURE == 1\n\t\t\treturn texture2D( tDiffuse, vUv );\n\t\t\t#else\n\t\t\treturn vec4( 1.0 );\n\t\t\t#endif\n\t\t}\n\t\tfloat getDepth( const in vec2 screenPosition ) {\n\t\t\t#if DEPTH_PACKING == 1\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t\t#else\n\t\t\treturn texture2D( tDepth, screenPosition ).x;\n\t\t\t#endif\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\t//https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/\n\t\tvec3 viewNormalImproved(in vec2 uv, in vec3 origin)\n\t\t{\t\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// pick horizontal and vertical diff with the smallest z difference\n\t\t\tvec3 hDeriv = abs(l.z) < abs(r.z) ? l : r;\n\t\t\tvec3 vDeriv = abs(d.z) < abs(u.z) ? d : u;\n\n\t\t\t// get view space normal from the cross product of the two smallest offsets\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\t\t}\n\n\t\tvec3 viewNormalAccurate(in vec2 uv, in vec3 origin, in float centerDepth) {\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the horizontal axis\n\t\t\tvec4 H = vec4(\n\t\t\t\tgetDepth(uv - ddx),\n\t\t\t\tgetDepth(uv + ddx),\n\t\t\t\tgetDepth(uv - 2. * ddx),\n\t\t\t\tgetDepth(uv + 2. * ddx)\n\t\t\t);\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the vertical axis\n\t\t\tvec4 V = vec4(\n\t\t\t\tgetDepth(uv - ddy),\n\t\t\t\tgetDepth(uv + ddy),\n\t\t\t\tgetDepth(uv - 2. * ddy),\n\t\t\t\tgetDepth(uv + 2. * ddy)\n\t\t\t);\n\n\t\t\t// current pixel's depth difference from slope of offset depth samples\n\t\t\t// differs from original article because we're using non-linear depth values\n\t\t\t// see article's comments\n\t\t\tvec2 he = abs((2. * H.xy - H.zw) - centerDepth);\n\t\t\tvec2 ve = abs((2. * V.xy - V.zw) - centerDepth);\n\n\t\t\t// pick horizontal and vertical diff with the smallest depth difference from slopes\n\t\t\tvec3 hDeriv = he.x < he.y ? l : r;\n\t\t\tvec3 vDeriv = ve.x < ve.y ? d : u;\n\n\t\t\t// get view space normal from the cross product of the best derivatives\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition, in float centerDepth ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#elif IMPROVED_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalImproved(screenPosition, viewPosition);\n\t\t\t#elif ACCURATE_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalAccurate(screenPosition, viewPosition, centerDepth);\n\t\t\t#else\n\t\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n\t\tfloat getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n\t\t\tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n\t\t\tfloat viewDistance = length( viewDelta );\n\t\t\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n\t\t\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n\t\t}\n\t\t// moving costly divides into consts\n\t\tconst float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition, in float centerDepth ) {\n\t\t\t// precompute some variables require in getOcclusion.\n\t\t\tscaleDividedByCameraFar = scale / cameraFar;\n\t\t\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;\n\t\t\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv, centerDepth );\n\t\t\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/\n\t\t\tfloat angle = rand( vUv + randomSeed ) * PI2;\n\t\t\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;\n\t\t\tvec2 radiusStep = radius;\n\t\t\tfloat occlusionSum = 0.0;\n\t\t\tfloat weightSum = 0.0;\n\t\t\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n\t\t\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;\n\t\t\t\tradius += radiusStep;\n\t\t\t\tangle += ANGLE_STEP;\n\t\t\t\tfloat sampleDepth = getDepth( sampleUv );\n\t\t\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\t\t\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n\t\t\t\tweightSum += 1.0;\n\t\t\t}\n\t\t\tif( weightSum == 0.0 ) discard;\n\t\t\treturn occlusionSum * ( intensity / weightSum );\n\t\t}\n\t\tvoid main() {\n\t\t\tfloat centerDepth = getDepth( vUv );\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\tfloat centerViewZ = getViewZ( centerDepth );\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\n\t\t\t#ifdef OUTPUT_RECONSTRUCTED_NORMALS\n\t\t\t\tvec3 normal;\n\t\t\t\t#if IMPROVED_NORMAL_RECONSTRUCTION == 1\n\t\t\t\t\tnormal = viewNormalImproved(vUv, viewPosition);\n\t\t\t\t#elif ACCURATE_NORMAL_RECONSTRUCTION == 1\n\t\t\t\t\tnormal = viewNormalAccurate(vUv, viewPosition, centerDepth);\n\t\t\t\t#else\n\t\t\t\t\tnormal = normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor.rgb = packNormalToRGB(normal);\n\t\t\t\tgl_FragColor.a = 1.;\n\t\t\t\treturn;\n\t\t\t#endif\n\t\t\t\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition, centerDepth );\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= 1. - ambientOcclusion;\n\t\t}",vertexShader:"\n\t\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",uniforms:m.clone(_e.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=1,this.saoMaterial.uniforms.tDepth.value=null,this.saoMaterial.uniforms.tNormal.value=null,this.saoMaterial.uniforms.size.value.set(256,256),this.saoMaterial.uniforms.minResolution.value=0,this.saoMaterial.blending=n,this.vBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=1,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=null,this.vBlurMaterial.uniforms.size.value.set(256,256),this.vBlurMaterial.blending=n,this.hBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=1,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=null,this.hBlurMaterial.uniforms.size.value.set(256,256),this.hBlurMaterial.blending=n,this.fsQuad=new Ye(this.saoMaterial)}setParams(e){Object.assign(this.params,e)}setOutputType(e){this._outputType=e}setTexture(e,t){"tDepth"===e&&(this.saoMaterial.uniforms.tDepth.value=t,this.vBlurMaterial.uniforms.tDepth.value=t,this.hBlurMaterial.uniforms.tDepth.value=t),"tNormal"===e&&(this.saoMaterial.uniforms.tNormal.value=t),this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.needsUpdate=!0}update(e,t){this._outputType===Nn.RECONSTRUCTED_NORMALS?this.saoMaterial.defines.OUTPUT_RECONSTRUCTED_NORMALS="":delete this.saoMaterial.defines.OUTPUT_RECONSTRUCTED_NORMALS,this.params.scale=t.far,this.saoMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.saoMaterial.defines.NORMAL_TEXTURE=this.params.normalsType===In.DEFAULT?1:0,this.saoMaterial.defines.IMPROVED_NORMAL_RECONSTRUCTION=this.params.normalsType===In.IMPROVED?1:0,this.saoMaterial.defines.ACCURATE_NORMAL_RECONSTRUCTION=this.params.normalsType===In.ACCURATE?1:0,this.saoMaterial.uniforms.cameraNear.value=t.near,this.saoMaterial.uniforms.cameraFar.value=t.far,this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(t.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=t.projectionMatrix,this.saoMaterial.uniforms.intensity.value=this.params.intensity,this.saoMaterial.uniforms.scale.value=this.params.scale,this.saoMaterial.uniforms.kernelRadius.value=this.params.kernelRadius,this.saoMaterial.uniforms.bias.value=this.params.bias,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.cameraNear.value=t.near,this.vBlurMaterial.uniforms.cameraFar.value=t.far,this.hBlurMaterial.uniforms.cameraNear.value=t.near,this.hBlurMaterial.uniforms.cameraFar.value=t.far;const i=this.params.blurDepthCutoff*(t.far-t.near);this.vBlurMaterial.uniforms.depthCutoff.value=i,this.hBlurMaterial.uniforms.depthCutoff.value=i,this.params.blurRadius=Math.floor(this.params.blurRadius),this.prevStdDev===this.params.blurStdDev&&this.prevNumSamples===this.params.blurRadius||(et.configure(this.vBlurMaterial,this.params.blurRadius,this.params.blurStdDev,new T(0,1)),et.configure(this.hBlurMaterial,this.params.blurRadius,this.params.blurStdDev,new T(1,0)),this.prevStdDev=this.params.blurStdDev,this.prevNumSamples=this.params.blurRadius),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.needsUpdate=!0}render(e){e.getClearColor(this.colorBuffer);const t=e.getClearAlpha(),i=e.autoClear;e.setRenderTarget(this.saoRenderTarget),e.autoClear=!1,e.setClearColor(16777215),e.setClearAlpha(1),e.clear(),this.fsQuad.material=this.saoMaterial,this.fsQuad.render(e),this.params.blurEnabled&&this._outputType===Nn.AO_BLURRED&&(e.setRenderTarget(this.blurIntermediateRenderTarget),e.setClearColor(16777215),e.setClearAlpha(1),e.clear(),this.fsQuad.material=this.vBlurMaterial,this.fsQuad.render(e),e.setRenderTarget(this.saoRenderTarget),this.fsQuad.material=this.hBlurMaterial,this.fsQuad.render(e)),e.autoClear=i,e.setClearColor(this.colorBuffer),e.setClearAlpha(t)}setSize(e,t){const i=e*this.outputScale,n=t*this.outputScale;this.saoRenderTarget.setSize(i,n),this.blurIntermediateRenderTarget.setSize(i,n),this.saoMaterial.uniforms.size.value.set(i,n),this.vBlurMaterial.uniforms.size.value.set(i,n),this.hBlurMaterial.uniforms.size.value.set(i,n),this.saoMaterial.needsUpdate=!0}}const Ln={intensity:1,kernelRadius:30,kernelSize:16,bias:.01,minDistance:0,maxDistance:.008};class Pn extends Ke{setTexture(e,t){"tDepth"===e&&(this.aoMaterial.uniforms.tDepth.value=t),"tNormal"===e&&(this.aoMaterial.uniforms.tNormal.value=t),this.aoMaterial.needsUpdate=!0}get outputTexture(){return this._accumulationBuffer.texture}get displayName(){return"STATIC-AO"}constructor(){super(),this.params=Ln,this.frameIndex=0,this.accumulationFrames=0,this.kernels=[],this.noiseTextures=[],this._generationBuffer=new ie(256,256),this._accumulationBuffer=new ie(256,256),this.aoMaterial=new i({fragmentShader:"\n\t\t#include <common>\n\t\tvarying vec2 vUv;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNormal;\n uniform vec2 size;\n\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\n\t\tuniform float scale;\n\t\tuniform float intensity;\n\t\tuniform float bias;\n\t\tuniform float kernelRadius;\n\t\tuniform float minResolution;\n uniform float frameIndex;\n\t\tuniform float tanFov;\n\n\t\t#define AO_ESTIMATOR 1\n\t\t// #define KERNEL_SIZE 16\n\t\tuniform sampler2D tNoise;\n\t\tuniform vec3 kernel[ KERNEL_SIZE ];\n\t\tuniform float minDistance;\n\t\tuniform float maxDistance;\n\n #define NUM_SAMPLES 16\n #define SPIRAL_TURNS 2\n\t\t\n // #define NUM_FRAMES 16\n\n\t\t#define NORMAL_TEXTURE 0\n\t\t#define IMPROVED_NORMAL_RECONSTRUCTION 0\n\t\t#define ACCURATE_NORMAL_RECONSTRUCTION 1\n\t\t\n\t\t// RGBA depth\n\t\t#include <packing>\n\t\tvec4 getDefaultColor( const in vec2 screenPosition ) {\n\t\t\treturn vec4( 1.0 );\n\t\t}\n\n\n\t\tfloat getLinearDepth( const in vec2 screenPosition ) {\n\t\t\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );\n\t\t}\n\n\t\tfloat getPerspectiveDepth(const in vec2 coords) {\n\t\t\tfloat linearDepth = unpackRGBAToDepth( texture2D( tDepth, coords ) );\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\t\tfloat viewZ = orthographicDepthToViewZ(linearDepth, cameraNear, cameraFar);\n\t\t\t\tfloat centerDepth = viewZToPerspectiveDepth(viewZ, cameraNear, cameraFar);\n\t\t\t\treturn centerDepth;\n\t\t\t#else\n\t\t\t\treturn linearDepth;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getViewDepth(const in float linearDepth) {\n\t\t\treturn orthographicDepthToViewZ(linearDepth, cameraNear, cameraFar);\n\t\t}\n\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\n\t\tvec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];\n\t\t\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );\n\t\t\tclipPosition *= clipW; // unprojection.\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;\n\t\t}\n\n\t\t//https://wickedengine.net/2019/09/22/improved-normal-reconstruction-from-depth/\n\t\tvec3 viewNormalImproved(in vec2 uv, in vec3 origin)\n\t\t{\t\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getPerspectiveDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getPerspectiveDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// pick horizontal and vertical diff with the smallest z difference\n\t\t\tvec3 hDeriv = abs(l.z) < abs(r.z) ? l : r;\n\t\t\tvec3 vDeriv = abs(d.z) < abs(u.z) ? d : u;\n\n\t\t\t// get view space normal from the cross product of the two smallest offsets\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\t\t}\n\n\t\tvec3 viewNormalAccurate(in vec2 uv, in vec3 origin, in float centerDepth) {\n\t\t\thighp vec2 dd = abs(vec2(1./size.x, 1./size.y));\n\t\t\thighp vec2 ddx = vec2(dd.x, 0.);\n\t\t\thighp vec2 ddy = vec2(0., dd.y);\n\n\t\t\tfloat sampleDepth = getPerspectiveDepth( uv - ddy );\n\t\t\tfloat sampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 top = getViewPosition( uv - ddy, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddy );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 bottom = getViewPosition( uv + ddy, sampleDepth, sampleViewZ );\n\n\t\t\thighp vec3 center = origin;\n\t\t\t\n\t\t\tsampleDepth = getPerspectiveDepth( uv - ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 left = getViewPosition( uv - ddx, sampleDepth, sampleViewZ );\n\n\t\t\tsampleDepth = getPerspectiveDepth( uv + ddx );\n\t\t\tsampleViewZ = getViewZ( sampleDepth );\n\t\t\thighp vec3 right = getViewPosition( uv + ddx, sampleDepth, sampleViewZ );\n\n\t\t\t // get the difference between the current and each offset position\n\t\t\tvec3 l = center - left;\n\t\t\tvec3 r = right - center;\n\t\t\tvec3 d = center - top;\n\t\t\tvec3 u = bottom - center;\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the horizontal axis\n\t\t\tvec4 H = vec4(\n\t\t\t\tgetLinearDepth(uv - ddx),\n\t\t\t\tgetLinearDepth(uv + ddx),\n\t\t\t\tgetLinearDepth(uv - 2. * ddx),\n\t\t\t\tgetLinearDepth(uv + 2. * ddx)\n\t\t\t);\n\n\t\t\t// get depth values at 1 & 2 pixels offsets from current along the vertical axis\n\t\t\tvec4 V = vec4(\n\t\t\t\tgetLinearDepth(uv - ddy),\n\t\t\t\tgetLinearDepth(uv + ddy),\n\t\t\t\tgetLinearDepth(uv - 2. * ddy),\n\t\t\t\tgetLinearDepth(uv + 2. * ddy)\n\t\t\t);\n\n\t\t\t// current pixel's depth difference from slope of offset depth samples\n\t\t\t// differs from original article because we're using non-linear depth values\n\t\t\t// see article's comments\n\t\t\tvec2 he = abs((2. * H.xy - H.zw) - centerDepth);\n\t\t\tvec2 ve = abs((2. * V.xy - V.zw) - centerDepth);\n\n\t\t\t// pick horizontal and vertical diff with the smallest depth difference from slopes\n\t\t\tvec3 hDeriv = he.x < he.y ? l : r;\n\t\t\tvec3 vDeriv = ve.x < ve.y ? d : u;\n\n\t\t\t// get view space normal from the cross product of the best derivatives\n\t\t\tvec3 viewNormal = normalize(cross(hDeriv, vDeriv));\n\n\t\t\treturn viewNormal;\n\n\t\t}\n\n\t\tvec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition, in float centerDepth ) {\n\t\t\t#if NORMAL_TEXTURE == 1\n\t\t\t\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );\n\t\t\t#elif IMPROVED_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalImproved(screenPosition, viewPosition);\n\t\t\t#elif ACCURATE_NORMAL_RECONSTRUCTION == 1\n\t\t\t\treturn viewNormalAccurate(screenPosition, viewPosition, centerDepth);\n\t\t\t#else\n\t\t\t\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n\t\t\t#endif\n\t\t}\n\n\n\t\tfloat scaleDividedByCameraFar;\n\t\tfloat minResolutionMultipliedByCameraFar;\n // moving costly divides into consts\n\t\tconst float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n const float offset = PI2 / float(NUM_FRAMES);\n\n\t\tfloat computeKernelSize(float d, float r) {\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\t\t\t\t// Apparently this is wrong\n\t\t\t\t// return (r * tan(fov) * d) / (size.y * 0.5);\n\t\t\t\t// And this is correct\n\t\t\t\tfloat rp = r / (size.y * 0.5);\n\t\t\t\treturn sqrt((rp*rp*tanFov*tanFov*d*d)/(1. + rp*rp*tanFov*tanFov));\n\t\t\t#else\n\t\t\t\tfloat twoOrthoSize = size.y / (2./ cameraProjectionMatrix[1][1]);\n\t\t\t\treturn r / twoOrthoSize;\n\t\t\t#endif\n\t\t}\n\n\t\tfloat getAmbientOcclusion( const in vec3 centerViewPosition, in float centerDepth ) {\n #if AO_ESTIMATOR == 0\n // precompute some variables require in getOcclusion.\n scaleDividedByCameraFar = scale / cameraFar;\n minResolutionMultipliedByCameraFar = minResolution * cameraFar;\n vec3 centerViewNormal = getViewNormal( centerViewPosition, vUv, centerDepth );\n // jsfiddle that shows sample pattern: https://jsfiddle.net/TenHands/jun67k9y/7/\n float occlusionSum = 0.0;\n float weightSum = 0.0;\n for( int i = 0; i < NUM_SAMPLES; i ++ ) {\n float alpha = ( float(i) + 1. ) / float(NUM_SAMPLES);\n float angle = float(SPIRAL_TURNS) * alpha;\n vec2 radius = (kernelRadius / size) * pow( alpha, 1.1 );\n vec2 sampleUv = vUv + vec2( cos( angle + frameIndex * offset ), sin( angle + frameIndex * offset ) ) * radius;\n\n float sampleDepth = getPerspectiveDepth( sampleUv );\n if( sampleDepth >= ( 1.0 - EPSILON ) ) {\n continue;\n }\n float sampleViewZ = getViewZ( sampleDepth );\n vec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );\n\n\t\t\t\t\t/** McGuire Estimator*/\n\t\t\t\t\tvec3 v = sampleViewPosition - centerViewPosition;\n\t\t\t\t\tfloat vv = dot(v, v);\n\t\t\t\t\tfloat vn = dot(v, centerViewNormal) - bias;\n\t\t\t\t\t\n\t\t\t\t\t// Note large epsilon to avoid overdarkening within cracks\n\t\t\t\t\tfloat radius2 = 2.;//uSampleRadiusWS * uSampleRadiusWS\n\t\t\t\t\tfloat epsilon = 0.01;\n\t\t\t\t\t\n\t\t\t\t\tfloat f = max(radius2 - vv, 0.0) / radius2;\n\t\t\t\t\tocclusionSum += f * f * f * max(vn / (epsilon + vv), 0.0) / 4.;\n\n\t\t\t\t\t/** Three.js SAO Estimator*/\n // vec3 viewDelta = sampleViewPosition - centerViewPosition;\n // float viewDistance = length( viewDelta );\n // float scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n // occlusionSum += max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );\n weightSum += 1.0;\n }\n if( weightSum == 0.0 ) discard;\n return occlusionSum * ( intensity / weightSum );\n\t\t\t#elif AO_ESTIMATOR == 1\n\t\t\t\tvec3 viewPosition = centerViewPosition;\n\t\t\t\tvec3 viewNormal = getViewNormal( centerViewPosition, vUv, centerDepth );\n\t\t\t\tvec2 noiseScale = vec2( size.x / 4.0, size.y / 4.0 );\n\t\t\t\tvec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );\n\t\t\t\t// compute matrix used to reorient a kernel vector\n\t\t\t\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );\n\t\t\t\tvec3 bitangent = cross( viewNormal, tangent );\n\t\t\t\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );\n\t\t\t\tfloat occlusion = 0.0;\n\t\t\t\tfloat kernelSize_ws = computeKernelSize(-viewPosition.z, kernelRadius);\n\t\t\t\tfloat div = float( KERNEL_SIZE);\n\t\t\t\tfloat maxDist = kernelSize_ws / (cameraFar - cameraNear);\n\t\t\t\tfor ( int i = 0; i < KERNEL_SIZE; i ++ ) {\n\t\t\t\t\tvec3 sampleVector = kernelMatrix * kernel[ i ]; // reorient sample vector in view space\n\t\t\t\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelSize_ws ); // calculate sample point\n\t\t\t\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 ); // project point and calculate NDC\n\t\t\t\t\tsamplePointNDC /= samplePointNDC.w;\n\t\t\t\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5; // compute uv coordinates\n\t\t\t\t\tfloat realDepth = getLinearDepth( samplePointUv ); // get linear depth from depth texture\n\t\t\t\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z + bias, cameraNear, cameraFar ); // compute linear depth of the sample view Z value\n\t\t\t\t\tfloat delta = sampleDepth - realDepth;\n\t\t\t\t\tif ( delta > 0. && delta < maxDist ) { // if fragment is before sample point, increase occlusion\n\t\t\t\t\t\tocclusion += 1.0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn clamp( occlusion * intensity / div, 0.0, 1.0 );\n\t\t\t#endif\n\t\t\t}\n\t\tvoid main() {\n\t\t\tfloat linearDepth = unpackRGBAToDepth( texture2D( tDepth, vUv ) );\n\t\t\tfloat centerDepth = getPerspectiveDepth(vUv);\n\t\t\tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n\t\t\t\tdiscard;\n\t\t\t}\n\t\t\tfloat centerViewZ = getViewDepth(linearDepth);\n\t\t\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );\n\t\t\tvec3 viewNormal = getViewNormal(viewPosition, vUv, linearDepth);\n\t\t\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition, centerDepth );\n\t\t\tgl_FragColor = getDefaultColor( vUv );\n\t\t\tgl_FragColor.xyz *= ambientOcclusion;\n\t\t\tgl_FragColor.a = 1.;\n\t\t}",vertexShader:"\n\t\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}",uniforms:{tDepth:{value:null},tNormal:{value:null},size:{value:new T(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new s},cameraInverseProjectionMatrix:{value:new s},tanFov:{value:0},scale:{value:1},intensity:{value:1},bias:{value:0},minResolution:{value:0},kernelRadius:{value:.5},frameIndex:{value:0},tNoise:{value:null},kernel:{value:null},minDistance:{value:.001},maxDistance:{value:1}}}),this.aoMaterial.extensions.derivatives=!0,this.aoMaterial.uniforms.size.value.set(256,256),this.aoMaterial.blending=n,this.accumulateMaterial=new i({defines:{},fragmentShader:"\n uniform float opacity;\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n // #define NUM_FRAMES 16\n\n void main() {\n vec4 frameSample = texture2D( tDiffuse, vUv );\n gl_FragColor.xyz = frameSample.rgb * 1./float(NUM_FRAMES);\n gl_FragColor.a = 1.;//*= opacity;\n }",vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",uniforms:{tDiffuse:{value:null},opacity:{value:1}}}),this.accumulateMaterial.uniforms.tDiffuse.value=this._generationBuffer.texture,this.accumulateMaterial.blending=Z,this.accumulateMaterial.blendSrc=re,this.accumulateMaterial.blendDst=re,this.accumulateMaterial.blendEquation=se,this.accumulateMaterial.blendSrcAlpha=re,this.accumulateMaterial.blendDstAlpha=re,this.accumulateMaterial.blendEquationAlpha=ee,this.fsQuad=new Ye(this.aoMaterial)}setParams(e){Object.assign(this.params,e),this.kernels=[],this.noiseTextures=[]}setFrameIndex(e){this.frameIndex=e}setAccumulationFrames(e){this.accumulationFrames=e}update(e,t){this.aoMaterial.defines.PERSPECTIVE_CAMERA=t.isPerspectiveCamera?1:0,this.aoMaterial.defines.NUM_FRAMES=this.accumulationFrames,this.aoMaterial.defines.KERNEL_SIZE=this.params.kernelSize,this.accumulateMaterial.defines.NUM_FRAMES=this.accumulationFrames,this.aoMaterial.uniforms.cameraNear.value=t.near,this.aoMaterial.uniforms.cameraFar.value=t.far,this.aoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(t.projectionMatrixInverse),this.aoMaterial.uniforms.cameraProjectionMatrix.value.copy(t.projectionMatrix);const i=t.fov/2*Math.PI/180;this.aoMaterial.uniforms.tanFov.value=Math.tan(i),this.kernels[this.frameIndex]||this.generateSampleKernel(this.frameIndex),this.noiseTextures[this.frameIndex]||this.generateRandomKernelRotations(this.frameIndex),this.aoMaterial.uniforms.kernel.value=this.kernels[this.frameIndex],this.aoMaterial.uniforms.tNoise.value=this.noiseTextures[this.frameIndex],this.aoMaterial.uniforms.intensity.value=this.params.intensity,this.aoMaterial.uniforms.kernelRadius.value=this.params.kernelRadius,this.aoMaterial.uniforms.bias.value=this.params.bias,this.aoMaterial.uniforms.frameIndex.value=this.frameIndex,this.aoMaterial.uniforms.minDistance.value=this.params.minDistance,this.aoMaterial.uniforms.maxDistance.value=this.params.maxDistance,this.aoMaterial.needsUpdate=!0,this.accumulateMaterial.needsUpdate=!0}render(e){const t=new l;e.getClearColor(t);const i=e.getClearAlpha(),n=e.autoClear;this.renderFrame(e),e.autoClear=n,e.setClearColor(t),e.setClearAlpha(i)}renderFrame(e){e.setRenderTarget(this._generationBuffer),e.autoClear=!1,e.setClearColor(0),e.setClearAlpha(1),e.clear(!0),this.fsQuad.material=this.aoMaterial,this.fsQuad.render(e),e.setRenderTarget(this._accumulationBuffer),0===this.frameIndex&&(e.setClearColor(16777215),e.setClearAlpha(1),e.clear(!0)),this.fsQuad.material=this.accumulateMaterial,this.fsQuad.render(e)}setSize(e,t){this._generationBuffer.setSize(e,t),this._accumulationBuffer.setSize(e,t),this.aoMaterial.uniforms.size.value.set(e,t),this.aoMaterial.needsUpdate=!0}generateSampleKernel(e){const t=this.params.kernelSize||0;this.kernels[e]=[];for(let i=0;i<t;i++){const n=new d;n.x=2*Math.random()-1,n.y=2*Math.random()-1,n.z=Math.random(),n.normalize();let r=i/t;r=K.lerp(.1,1,r*r),n.multiplyScalar(r),this.kernels[e].push(n)}}generateRandomKernelRotations(e){void 0===tt&&console.error("THREE.SSAOPass: The pass relies on SimplexNoise.");const t=new tt,i=new Float32Array(16);for(let e=0;e<16;e++){const n=2*Math.random()-1,r=2*Math.random()-1,s=0;i[e]=t.noise3d(n,r,s)}this.noiseTextures[e]=new c(i,4,4,ae,Q),this.noiseTextures[e].wrapS=oe,this.noiseTextures[e].wrapT=oe,this.noiseTextures[e].needsUpdate=!0}}class zn extends Tn{constructor(){super(),this.camera=null,this.scene=null,this._oldClearColor=new l,this.clearAlpha=0,this.clearDepth=!0,this.onBeforeRenderOpauqe=void 0,this.onAfterRenderOpaque=void 0,this.onBeforeRenderTransparent=void 0,this.onAfterRenderTransparent=void 0}get displayName(){return"COLOR"}get outputTexture(){return null}update(e,t){this.camera=t,this.scene=e}render(e,t,i){if(!this.camera||!this.scene)return;const n=e.autoClear;let r,s;e.autoClear=!1,void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.onBeforeRenderOpauqe&&this.onBeforeRenderOpauqe(),e.render(this.scene,this.camera),this.onAfterRenderOpaque&&this.onAfterRenderOpaque(),this.onBeforeRenderTransparent&&this.onBeforeRenderTransparent(),e.render(this.scene,this.camera),this.onAfterRenderTransparent&&this.onAfterRenderTransparent(),this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=n}}class Un extends Jt{get vertexProgram(){return"\n#include <common>\n#ifdef USE_RTE\n // The high component is stored: the default 'position' attribute buffer\n attribute vec3 position_low;\n uniform vec3 uViewer_high;\n uniform vec3 uViewer_low;\n#endif\nuniform vec2 size;\nuniform float displacement;\n\n#ifdef TRANSFORM_STORAGE\n attribute float objIndex;\n\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n #define TRANSFORM_STRIDE 4\n #else\n #define TRANSFORM_STRIDE 4.\n #endif\n uniform sampler2D tTransforms;\n uniform float objCount;\n #elif TRANSFORM_STORAGE == 1\n uniform mat4 uTransforms[OBJ_COUNT];\n #endif\n#endif\n\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\n#ifdef TRANSFORM_STORAGE\n void objectTransform(out vec4 quaternion, out vec4 pivotLow, out vec4 pivotHigh, out vec4 translation, out vec4 scale){\n #if TRANSFORM_STORAGE == 0\n #if __VERSION__ == 300\n ivec2 uv = ivec2(int(objIndex) * TRANSFORM_STRIDE, 0); \n vec4 v0 = texelFetch( tTransforms, uv, 0 );\n vec4 v1 = texelFetch( tTransforms, uv + ivec2(1, 0), 0);\n vec4 v2 = texelFetch( tTransforms, uv + ivec2(2, 0), 0);\n vec4 v3 = texelFetch( tTransforms, uv + ivec2(3, 0), 0);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #elif\n float size = objCount * TRANSFORM_STRIDE;\n vec2 cUv = vec2(0.5/size, 0.5);\n vec2 dUv = vec2(1./size, 0.);\n \n vec2 uv = vec2((objIndex * TRANSFORM_STRIDE)/size + cUv.x, cUv.y);\n vec4 v0 = texture2D( tTransforms, uv);\n vec4 v1 = texture2D( tTransforms, uv + dUv);\n vec4 v2 = texture2D( tTransforms, uv + 2. * dUv);\n vec4 v3 = texture2D( tTransforms, uv + 3. * dUv);\n quaternion = v0;\n pivotLow = vec4(v1.xyz, 1.);\n pivotHigh = vec4(v2.xyz, 1.);\n translation = vec4(v3.xyz, 1.);\n scale = vec4(v1.w, v2.w, v3.w, 1.);\n #endif\n #elif TRANSFORM_STORAGE == 1\n mat4 tMatrix = uTransforms[int(objIndex)];\n quaternion = tMatrix[0];\n pivotLow = vec4(tMatrix[1].xyz, 1.);\n pivotHigh = vec4(tMatrix[2].xyz, 1.);\n translation = vec4(tMatrix[3].xyz, 1.);\n scale = vec4(tMatrix[1][3], tMatrix[2][3], tMatrix[3][3], 1.);\n #endif\n }\n\n vec3 rotate_vertex_position(vec3 position, vec4 quat)\n { \n return position + 2.0 * cross(quat.xyz, cross(quat.xyz, position) + quat.w * position);\n }\n#endif\n\n#ifdef USE_RTE\n vec4 computeRelativePositionSeparate(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Vector calculation for the high and low differences works on everything \n *BESIDES* Apple Silicon (or whatever they call it) GPUs\n\n It would seem that when this code gets compiled, vector types get a lower precision(?)\n which completely brakes the 2 float -> double reconstructio. Doing it separately for each \n vector component using floats works fine.\n */\n vec3 highDifference;\n vec3 lowDifference;\n float t1 = position_low.x - relativeTo_low.x;\n float e = t1 - position_low.x;\n float t2 = ((-relativeTo_low.x - e) + (position_low.x - (t1 - e))) + position_high.x - relativeTo_high.x;\n highDifference.x = t1 + t2;\n lowDifference.x = t2 - (highDifference.x - t1);\n\n t1 = position_low.y - relativeTo_low.y;\n e = t1 - position_low.y;\n t2 = ((-relativeTo_low.y - e) + (position_low.y - (t1 - e))) + position_high.y - relativeTo_high.y;\n highDifference.y = t1 + t2;\n lowDifference.y = t2 - (highDifference.y - t1);\n\n t1 = position_low.z - relativeTo_low.z;\n e = t1 - position_low.z;\n t2 = ((-relativeTo_low.z - e) + (position_low.z - (t1 - e))) + position_high.z - relativeTo_high.z;\n highDifference.z = t1 + t2;\n lowDifference.z = t2 - (highDifference.z - t1);\n\n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n\n vec4 computeRelativePosition(in vec3 position_low, in vec3 position_high, in vec3 relativeTo_low, in vec3 relativeTo_high){\n /* \n Source https://github.com/virtualglobebook/OpenGlobe/blob/master/Source/Examples/Chapter05/Jitter/GPURelativeToEyeDSFUN90/Shaders/VS.glsl \n Note here, we're storing the high part of the position encoding inside three's default 'position' attribute buffer so we avoid redundancy \n */\n vec3 t1 = position_low.xyz - relativeTo_low;\n vec3 e = t1 - position_low.xyz;\n vec3 t2 = ((-relativeTo_low - e) + (position_low.xyz - (t1 - e))) + position_high.xyz - relativeTo_high;\n vec3 highDifference = t1 + t2;\n vec3 lowDifference = t2 - (highDifference - t1);\n \n vec3 position = highDifference.xyz + lowDifference.xyz;\n return vec4(position, 1.);\n }\n#endif\n\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t// #include <project_vertex> COMMENTED CHUNK\n #ifdef TRANSFORM_STORAGE\n vec4 tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale;\n objectTransform(tQuaternion, tPivotLow, tPivotHigh, tTranslation, tScale);\n #endif\n #ifdef USE_RTE\n vec4 position_lowT = vec4(position_low, 1.);\n vec4 position_highT = vec4(position, 1.);\n const vec3 ZERO3 = vec3(0., 0., 0.);\n\n vec4 rteLocalPosition = computeRelativePositionSeparate(position_lowT.xyz, position_highT.xyz, uViewer_low, uViewer_high);\n #ifdef TRANSFORM_STORAGE\n vec4 rtePivot = computeRelativePositionSeparate(tPivotLow.xyz, tPivotHigh.xyz, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = rotate_vertex_position((rteLocalPosition - rtePivot).xyz, tQuaternion) * tScale.xyz + rtePivot.xyz + tTranslation.xyz;\n #endif\n #ifdef USE_INSTANCING\n vec4 instancePivot = computeRelativePositionSeparate(ZERO3, ZERO3, uViewer_low, uViewer_high);\n rteLocalPosition.xyz = (mat3(instanceMatrix) * (rteLocalPosition - instancePivot).xyz) + instancePivot.xyz + instanceMatrix[3].xyz;\n #endif\n #endif\n\n #ifdef USE_RTE\n vec4 mvPosition = rteLocalPosition;\n #else\n vec4 mvPosition = vec4( transformed, 1.0 );\n #ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n #endif\n #endif\n \n mvPosition = modelViewMatrix * mvPosition;\n\n gl_Position = projectionMatrix * mvPosition;\n \n // Transform normal vector from object space to clip space.\n vec3 normalHCS = mat3(projectionMatrix) * normalMatrix * normal;\n\n // Move vertex along normal vector in clip space.\n gl_Position.xy += normalize(normalHCS.xy) / size * gl_Position.w * displacement * 2.;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n"}get fragmentProgram(){return"\nuniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t// accumulation (baked indirect lighting only)\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t// modulation\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n"}get uniformsDef(){return{...super.uniformsDef,size:new T,displacement:0}}constructor(e,t=[]){super(e,t)}fastCopy(e,t){super.fastCopy(e,t),t.userData.displacement.value=e.userData.displacement.value}}class kn extends Tn{constructor(){super(),this._oldClearColor=new l,this.clearAlpha=0,this.clearDepth=!0,this.drawBufferSize=new T,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.overrideMaterial=new Un({color:16711680},["USE_RTE"]),this.overrideMaterial.userData.displacement.value=2,this.overrideMaterial.colorWrite=!1,this.overrideMaterial.depthWrite=!1,this.overrideMaterial.stencilWrite=!0,this.overrideMaterial.stencilFunc=u,this.overrideMaterial.stencilWriteMask=255,this.overrideMaterial.stencilRef=255,this.overrideMaterial.stencilZFail=p,this.overrideMaterial.stencilZPass=p,this.overrideMaterial.stencilFail=p,this.overrideMaterial.side=R}get displayName(){return"STENCIL"}get outputTexture(){return null}get material(){return this.overrideMaterial}update(e,t){this.camera=t,this.scene=e}setClippingPlanes(e){this.overrideMaterial.clippingPlanes=e}render(e,t,i){this.onBeforeRender&&this.onBeforeRender();const n=e.autoClear;e.autoClear=!1;let r,s=null;void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.getDrawingBufferSize(this.drawBufferSize),this.overrideMaterial.userData.size.value.copy(this.drawBufferSize),e.clear(!1,!1,!0);const a=e.shadowMap.enabled;e.shadowMap.enabled=!1,e.render(this.scene,this.camera),e.shadowMap.enabled=a,this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=n,this.onAfterRender&&this.onAfterRender()}}class Vn extends Tn{constructor(){super(),this._oldClearColor=new l,this.clearAlpha=0,this.clearDepth=!0,this.drawBufferSize=new T,this.onBeforeRender=void 0,this.onAfterRender=void 0,this.overrideMaterial=new Un({color:304635},["USE_RTE"]),this.overrideMaterial.userData.displacement.value=2,this.overrideMaterial.colorWrite=!0,this.overrideMaterial.depthWrite=!1,this.overrideMaterial.stencilWrite=!0,this.overrideMaterial.stencilFunc=le,this.overrideMaterial.stencilRef=255,this.overrideMaterial.side=R}get displayName(){return"STENCIL"}get outputTexture(){return null}get material(){return this.overrideMaterial}update(e,t){this.camera=t,this.scene=e}setClippingPlanes(e){this.overrideMaterial.clippingPlanes=e}render(e,t,i){this.onBeforeRender&&this.onBeforeRender();const n=e.autoClear;e.autoClear=!1;let r,s=null;void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.getDrawingBufferSize(this.drawBufferSize),this.overrideMaterial.userData.size.value.copy(this.drawBufferSize);const a=e.shadowMap.enabled;e.shadowMap.enabled=!1,e.render(this.scene,this.camera),e.shadowMap.enabled=a,this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=n,this.onAfterRender&&this.onAfterRender()}}class Fn extends Tn{constructor(){super(),this.onBeforeRender=void 0,this.onAfterRender=void 0}get displayName(){return"OVERLAY"}get outputTexture(){return null}update(e,t){this.camera=t,this.scene=e}render(e,t,i){const n=e.autoClear;e.autoClear=!1,this.applyLayers(this.camera),e.setRenderTarget(this.renderToScreen?null:i),this.onBeforeRender&&this.onBeforeRender(),e.render(this.scene,this.camera),this.onAfterRender&&this.onAfterRender(),e.autoClear=n}}var Qn;!function(e){e[e.DEPTH_RGBA=0]="DEPTH_RGBA",e[e.DEPTH=1]="DEPTH",e[e.COLOR=2]="COLOR",e[e.GEOMETRY_NORMALS=3]="GEOMETRY_NORMALS",e[e.RECONSTRUCTED_NORMALS=4]="RECONSTRUCTED_NORMALS",e[e.DYNAMIC_AO=5]="DYNAMIC_AO",e[e.DYNAMIC_AO_BLURED=6]="DYNAMIC_AO_BLURED",e[e.PROGRESSIVE_AO=7]="PROGRESSIVE_AO",e[e.FINAL=8]="FINAL"}(Qn||(Qn={}));const qn={pipelineOutput:Qn.FINAL,accumulationFrames:16,dynamicAoEnabled:!0,dynamicAoParams:Bn,staticAoEnabled:!0,staticAoParams:Ln,depthSide:R};class jn{set pipelineOptions(e){Object.assign(this._pipelineOptions,e),this.dynamicAoPass.setParams(e.dynamicAoParams),this.staticAoPass.setParams(e.staticAoParams),this.accumulationFrame=0,e.depthSide&&(this.depthPass.depthSide=e.depthSide),e.accumulationFrames&&(this.applySaoPass.setAccumulationFrames(e.accumulationFrames),this.staticAoPass.setAccumulationFrames(e.accumulationFrames)),e.pipelineOutput&&(this.pipelineOutput=e.pipelineOutput)}get pipelineOptions(){return JSON.parse(JSON.stringify(this._pipelineOptions))}set pipelineOutput(e){let t=[];switch(this.clearPipeline(),e){case Qn.FINAL:t=this.getDefaultPipeline(),this.depthPass.depthSize=Cn.FULL,this.applySaoPass.setTexture("tDiffuse",this.staticAoPass.outputTexture),this.applySaoPass.setTexture("tDiffuseInterp",this.dynamicAoPass.outputTexture),this.needsProgressive=!0;break;case Qn.DEPTH_RGBA:t.push(this.depthPass),t.push(this.copyOutputPass),this.depthPass.depthSize=Cn.FULL,this.copyOutputPass.setTexture("tDiffuse",this.depthPass.outputTexture),this.copyOutputPass.setOutputType(Qn.DEPTH_RGBA),this.needsProgressive=!1;break;case Qn.DEPTH:t.push(this.depthPass),t.push(this.copyOutputPass),this.depthPass.depthSize=Cn.FULL,this.copyOutputPass.setTexture("tDiffuse",this.depthPass.outputTexture),this.copyOutputPass.setOutputType(Qn.DEPTH),this.needsProgressive=!1;break;case Qn.COLOR:t.push(this.renderPass);break;case Qn.GEOMETRY_NORMALS:t.push(this.normalsPass),t.push(this.copyOutputPass),this.normalsPass.enabled=!0,this.copyOutputPass.setTexture("tDiffuse",this.normalsPass.outputTexture),this.copyOutputPass.setOutputType(Qn.GEOMETRY_NORMALS),this.needsProgressive=!1;break;case Qn.RECONSTRUCTED_NORMALS:t.push(this.depthPass),t.push(this.dynamicAoPass),t.push(this.copyOutputPass),this.dynamicAoPass.enabled=!0,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.depthPass.depthSize=Cn.HALF,this.dynamicAoPass.setOutputType(Nn.RECONSTRUCTED_NORMALS),this.copyOutputPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.GEOMETRY_NORMALS),this.needsProgressive=!1;break;case Qn.DYNAMIC_AO:t.push(this.depthPass),t.push(this.normalsPass),t.push(this.dynamicAoPass),t.push(this.copyOutputPass),this.normalsPass.enabled=this._pipelineOptions.dynamicAoParams.normalsType===In.DEFAULT,this.dynamicAoPass.enabled=!0,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.copyOutputPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.COLOR),this.dynamicAoPass.setOutputType(Nn.AO),this.needsProgressive=!1;break;case Qn.DYNAMIC_AO_BLURED:t.push(this.depthPass),t.push(this.normalsPass),t.push(this.dynamicAoPass),t.push(this.copyOutputPass),this.normalsPass.enabled=this._pipelineOptions.dynamicAoParams.normalsType===In.DEFAULT,this.dynamicAoPass.enabled=!0,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.depthPass.depthSize=Cn.HALF,this.copyOutputPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.COLOR),this.dynamicAoPass.setOutputType(Nn.AO_BLURRED),this.needsProgressive=!1;break;case Qn.PROGRESSIVE_AO:t.push(this.depthPass),t.push(this.dynamicAoPass),t.push(this.staticAoPass),t.push(this.copyOutputPass),this.depthPass.depthType=Rn.LINEAR_DEPTH,this.depthPass.depthSize=Cn.FULL,this.copyOutputPass.setTexture("tDiffuse",this.staticAoPass.outputTexture),this.copyOutputPass.setOutputType(Qn.COLOR),this.needsProgressive=!0}this.setPipeline(t)}set needsProgressive(e){this._needsProgressive=e,this.accumulationFrame=0}get needsAccumulation(){return this._renderType===yn.ACCUMULATION&&this.accumulationFrame<this._pipelineOptions.accumulationFrames}get renderType(){return this._renderType}get composer(){return this._composer}constructor(e,t){this._pipelineOptions=Object.assign({},qn),this._needsProgressive=!1,this._resetFrame=!1,this.drawingSize=new T,this._renderType=yn.NORMAL,this.accumulationFrame=0,this.onBeforePipelineRender=null,this.onAfterPipelineRender=null,this._renderer=e,this._batcher=t,this._composer=new Xe(e),this._composer.readBuffer=null,this._composer.writeBuffer=null}configure(){let e,t,i,n;this.depthPass=new Mn,this.normalsPass=new bn,this.dynamicAoPass=new Dn,this.stencilPass=new kn,this.renderPass=new zn,this.stencilMaskPass=new Vn,this.applySaoPass=new En,this.staticAoPass=new Pn,this.overlayPass=new Fn,this.copyOutputPass=new xn,this.copyOutputPass.renderToScreen=!0,this.depthPass.setLayers([gt.STREAM_CONTENT_MESH]),this.normalsPass.setLayers([gt.STREAM_CONTENT_MESH]),this.stencilPass.setLayers([gt.STREAM_CONTENT_MESH]),this.renderPass.setLayers([gt.PROPS,gt.STREAM_CONTENT,gt.STREAM_CONTENT_MESH,gt.STREAM_CONTENT_LINE,gt.STREAM_CONTENT_POINT,gt.STREAM_CONTENT_POINT_CLOUD,gt.STREAM_CONTENT_TEXT,gt.SHADOWCATCHER]),this.stencilMaskPass.setLayers([gt.STREAM_CONTENT_MESH]),this.overlayPass.setLayers([gt.OVERLAY,gt.MEASUREMENTS]),this.onBeforePipelineRender=()=>{e=this._batcher.saveVisiblity(),t=this._batcher.getOpaque(),i=this._batcher.getStencil(),n=this._batcher.getDepth()},this.onAfterPipelineRender=()=>{this._batcher.applyVisibility(e)},this.depthPass.onBeforeRender=()=>{this._batcher.applyVisibility(n),this._batcher.overrideMaterial(n,this.depthPass.material)},this.depthPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(n)},this.normalsPass.onBeforeRender=()=>{this._batcher.applyVisibility(t),this._batcher.overrideMaterial(t,this.normalsPass.material)},this.normalsPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(e)},this.stencilPass.onBeforeRender=()=>{this._batcher.applyVisibility(i),this._batcher.overrideMaterial(i,this.stencilPass.material)},this.stencilPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(i)},this.stencilMaskPass.onBeforeRender=()=>{this._batcher.applyVisibility(i),this._batcher.overrideMaterial(i,this.stencilMaskPass.material)},this.stencilMaskPass.onAfterRender=()=>{this._batcher.applyVisibility(e),this._batcher.restoreMaterial(i)},this.renderPass.onBeforeRenderOpauqe=()=>{e=this._batcher.saveVisiblity();const t=this._batcher.getOpaque();this._batcher.applyVisibility(t)},this.renderPass.onBeforeRenderTransparent=()=>{const e=this._batcher.getTransparent();this._batcher.applyVisibility(e)},this.renderPass.onAfterRenderTransparent=()=>{this._batcher.applyVisibility(e)},this.setPipeline(this.getDefaultPipeline())}getDefaultPipeline(){this.renderPass.renderToScreen=!0,this.normalsPass.enabled=this._pipelineOptions.dynamicAoParams.normalsType===In.DEFAULT,this.dynamicAoPass.setOutputType(this._pipelineOptions.dynamicAoParams.blurEnabled?Nn.AO_BLURRED:Nn.AO),this.applySaoPass.renderToScreen=!0,this.dynamicAoPass.setTexture("tDepth",this.depthPass.outputTextureHalf),this.dynamicAoPass.setTexture("tNormal",this.normalsPass.outputTexture),this.applySaoPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.applySaoPass.setTexture("tDiffuseInterp",this.dynamicAoPass.outputTexture),this.staticAoPass.setTexture("tDepth",this.depthPass.outputTexture),this.staticAoPass.setTexture("tNormal",this.normalsPass.outputTexture);const e=[];return e.push(this.depthPass),e.push(this.normalsPass),e.push(this.dynamicAoPass),e.push(this.staticAoPass),e.push(this.stencilPass),e.push(this.renderPass),e.push(this.stencilMaskPass),e.push(this.applySaoPass),e.push(this.overlayPass),e}clearPipeline(){for(;this._composer.passes.length>0;)this._composer.removePass(this._composer.passes[0])}setPipeline(e){for(let t=0;t<e.length;t++)this._composer.addPass(e[t])}updateClippingPlanes(e){this.depthPass.setClippingPlanes(e),this.stencilPass.setClippingPlanes(e),this.stencilMaskPass.setClippingPlanes(e)}reset(){this._resetFrame=!0,this.onStationaryEnd()}update(e){e.scene&&e.renderingCamera&&(this.stencilPass.update(e.scene,e.renderingCamera),this.renderPass.update(e.scene,e.renderingCamera),this.stencilMaskPass.update(e.scene,e.renderingCamera),this.depthPass.update(e.scene,e.renderingCamera),this.dynamicAoPass.update(e.scene,e.renderingCamera),this.normalsPass.update(e.scene,e.renderingCamera),this.staticAoPass.update(e.scene,e.renderingCamera),this.applySaoPass.update(e.scene,e.renderingCamera),this.overlayPass.update(e.scene,e.renderingCamera),this.staticAoPass.setFrameIndex(this.accumulationFrame),this.applySaoPass.setFrameIndex(this.accumulationFrame))}render(){if(this._renderer.getDrawingBufferSize(this.drawingSize),0===this.drawingSize.length())return!1;this.onBeforePipelineRender&&this.onBeforePipelineRender();let e=!1;if(this._renderer.clear(!0),this._renderType===yn.NORMAL){this._composer.render();const t=this._resetFrame;this._resetFrame&&(this._resetFrame=!1,this.onStationaryBegin()),e=t}else this._composer.render(),this.accumulationFrame++,e=this.needsAccumulation;return this.onAfterPipelineRender&&this.onAfterPipelineRender(),e}resize(e,t){this._composer.setSize(e,t),this.accumulationFrame=0}onStationaryBegin(){this._needsProgressive&&(this._renderType!==yn.ACCUMULATION?(this._renderType=yn.ACCUMULATION,this.accumulationFrame=0,this.depthPass.enabled=!0,this.depthPass.depthType=Rn.LINEAR_DEPTH,this.depthPass.depthSize=Cn.FULL,this.normalsPass.enabled=!1,this.dynamicAoPass.enabled=!1,this.renderPass.enabled=!0,this.applySaoPass.enabled=!0,this.staticAoPass.enabled=!0,this.applySaoPass.setTexture("tDiffuse",this.staticAoPass.outputTexture),this.applySaoPass.setTexture("tDiffuseInterp",this.dynamicAoPass.outputTexture),this.applySaoPass.setRenderType(this._renderType)):this.accumulationFrame=0)}onStationaryEnd(){this._needsProgressive&&this._renderType!==yn.NORMAL&&(this.accumulationFrame=0,this._renderType=yn.NORMAL,this.depthPass.depthType=Rn.PERSPECTIVE_DEPTH,this.depthPass.depthSize=Cn.HALF,this.staticAoPass.enabled=!1,this.applySaoPass.enabled=!0,this.dynamicAoPass.enabled=!0,this.applySaoPass.setTexture("tDiffuse",this.dynamicAoPass.outputTexture),this.applySaoPass.setRenderType(this._renderType))}}class Jn extends Jt{get vertexProgram(){return"\n\tvarying vec2 vUv;\n\t\tvoid main() {\n\t\t\tvUv = vec2(1. - uv.x, uv.y);\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t}\n"}get fragmentProgram(){return"\nvarying vec2 vUv;\n\nuniform sampler2D tex0;\nuniform sampler2D tex1;\nuniform sampler2D tex2;\nuniform sampler2D tex3;\nuniform vec4 weights;\nuniform float sigmoidRange;\nuniform float sigmoidStrength;\n\nvoid main() {\n\tfloat color0 = texture2D(tex0, vUv).r * weights.x;\n\tfloat color1 = texture2D(tex1, vUv).r * weights.y;\n\tfloat color2 = texture2D(tex2, vUv).r * weights.z;\n\tfloat color3 = texture2D(tex3, vUv).r * weights.w;\n\n\t// float c0 = mix(color0, 0., color1);\n\t// float c1 = mix(color1, 0., color0);\n\t// float c2 = mix(color3, 0., color0 * 0.5 + color1 * 0.5);\n\t// float sum = c0 + c1 + c2;\n\n\tfloat sum = color0 + color1 + color3 + color2;\n\n\tfloat a = sigmoidRange;//2.;\n\tfloat b = 0.03;\n\tfloat c = sigmoidStrength;//2.43;\n\tfloat d = 0.59;\n\tfloat e = 0.14;\n\tsum = clamp((sum*(a*sum+b))/(sum*(c*sum+d)+e), 0., 1.);\n\n\tvec2 sUv = vUv * 2. - 1.;\n\tsum *= 1. - pow(abs(sUv.x), 6.);\n\tsum *= 1. - pow(abs(sUv.y), 6.);\n\n\tgl_FragColor = vec4( vec3(sum), sum );\n}\n"}get uniformsDef(){return{...super.uniformsDef,tex0:null,tex1:null,tex2:null,tex3:null,weights:new I,sigmoidRange:0,sigmoidStrength:0}}constructor(e,t=[]){super(e,t)}}const Gn={textureSize:512,weights:{x:1,y:1,z:0,w:1},blurRadius:16,stdDeviation:4,sigmoidRange:1.1,sigmoidStrength:2};class Wn extends Tn{get displayName(){return"Shadowcatcher"}get outputTexture(){return this.outputTarget.texture}set needsUpdate(e){this._needsUpdate=e}get drawDepthMaterial(){return this.depthMaterial}constructor(){super(),this.levels=4,this.debugCamera=!1,this.renderTargets=[],this.tempTargets=[],this._needsUpdate=!1,this.blurStdDev=Gn.stdDeviation,this.blurRadius=Gn.blurRadius,this.prevBlurStdDev=0,this.prevBlurRadius=0,this.onBeforeRender=void 0,this.onAfterRender=void 0;for(let e=0;e<this.levels;e++){const e=new ie(256,256,{minFilter:ce,magFilter:ce});this.renderTargets.push(e),this.tempTargets.push(e.clone())}this.outputTarget=new ie(256,256,{minFilter:ce,magFilter:ce}),this.outputTarget.texture.wrapS=oe,this.outputTarget.texture.wrapT=oe,this.camera=new he(-128,128,128,-128,0,10),this.vBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=1,this.vBlurMaterial.blending=n,this.hBlurMaterial=new i({uniforms:m.clone($e.uniforms),defines:Object.assign({},$e.defines),vertexShader:$e.vertexShader,fragmentShader:$e.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=1,this.hBlurMaterial.blending=n,this.depthMaterial=new An({depthPacking:de},["USE_RTE"]),this.depthMaterial.blending=n,this.depthMaterial.side=R,this.blendMaterial=new Jn({}),this.fsQuad=new Ye(this.vBlurMaterial)}update(e){if(this.scene=e,this._needsUpdate){!this.cameraHelper&&this.debugCamera&&(this.cameraHelper=new ue(this.camera),this.cameraHelper.layers.set(gt.PROPS),this.scene.add(this.cameraHelper)),this.cameraHelper&&this.cameraHelper.update(),this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=0,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=0,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far;const e=0;this.vBlurMaterial.uniforms.depthCutoff.value=e,this.hBlurMaterial.uniforms.depthCutoff.value=e,this.prevBlurStdDev===this.blurStdDev&&this.prevBlurRadius===this.blurRadius||(et.configure(this.vBlurMaterial,this.blurRadius,this.blurStdDev,new T(0,1)),et.configure(this.hBlurMaterial,this.blurRadius,this.blurStdDev,new T(1,0)),this.prevBlurStdDev=this.blurStdDev,this.prevBlurRadius=this.blurRadius),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.needsUpdate=!0}}render(e){if(this._needsUpdate){e.RTEBuffers.push(),e.updateRTEViewModel(this.camera);const t=new l;e.getClearColor(t);const i=e.getClearAlpha(),n=e.autoClear;this.onBeforeRender&&this.onBeforeRender(),this.applyLayers(this.camera);const r=this.camera.far;for(let t=0;t<this.renderTargets.length;t++)this.camera.far=r,t<2&&(this.camera.far=r/100),2===t&&(this.camera.far=r/4),this.camera.updateProjectionMatrix(),e.setRenderTarget(this.renderTargets[t]),e.setClearColor(0),e.setClearAlpha(1),e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.setRenderTarget(this.tempTargets[t]),e.setClearColor(16777215),e.setClearAlpha(1),e.clear(),this.vBlurMaterial.uniforms.tDiffuse.value=this.renderTargets[t].texture,this.vBlurMaterial.uniforms.size.value.set(this.renderTargets[t].width,this.renderTargets[t].height),this.vBlurMaterial.needsUpdate=!0,this.fsQuad.material=this.vBlurMaterial,this.fsQuad.render(e),e.setRenderTarget(this.renderTargets[t]),this.hBlurMaterial.uniforms.tDiffuse.value=this.tempTargets[t].texture,this.hBlurMaterial.uniforms.size.value.set(this.tempTargets[t].width,this.tempTargets[t].height),this.hBlurMaterial.needsUpdate,this.fsQuad.material=this.hBlurMaterial,this.fsQuad.render(e);e.setRenderTarget(this.outputTarget),e.setClearColor(0),e.setClearAlpha(1),this.blendMaterial.userData.tex0.value=this.renderTargets[0].texture,this.blendMaterial.userData.tex1.value=this.renderTargets[1].texture,this.blendMaterial.userData.tex2.value=this.renderTargets[2].texture,this.blendMaterial.userData.tex3.value=this.renderTargets[3].texture,this.fsQuad.material=this.blendMaterial,this.fsQuad.render(e),e.setRenderTarget(null),e.autoClear=n,e.setClearColor(t),e.setClearAlpha(i),e.RTEBuffers.pop(),this.onAfterRender&&this.onAfterRender(),this._needsUpdate=!1}}updateClippingPlanes(e){this.depthMaterial.clippingPlanes=e,this.depthMaterial.needsUpdate=!0}setOutputSize(e,t){if(this.renderTargets[0].width!==e||this.renderTargets[0].height!==t){this.outputTarget.setSize(e,t),this.blendMaterial.needsUpdate=!0;let i=1;for(let n=0;n<this.renderTargets.length;n++){const r=Math.trunc(e*i),s=Math.trunc(t*i);this.renderTargets[n].setSize(r,s),this.tempTargets[n].setSize(r,s),i*=.5}}}setWeights(e){this.blendMaterial.userData.weights.value=new I(e.x,e.y,e.z,e.w),this.blendMaterial.needsUpdate=!0}updateCamera(e,t,i){const n=e.getSize(new d),r=e.getCenter(new d);this.camera.position.copy((new d).copy(r).add(new d(0,0,-.001))),this.camera.lookAt(r),this.camera.left=n.x/-2,this.camera.right=n.x/2,this.camera.top=n.y/2,this.camera.bottom=n.y/-2,this.camera.near=t,this.camera.far=i,this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(!0)}updateConfig(e){this.blurRadius=e.blurRadius,this.blurStdDev=e.stdDeviation,this.blendMaterial.userData.sigmoidRange.value=e.sigmoidRange,this.blendMaterial.userData.sigmoidStrength.value=e.sigmoidStrength,this.blendMaterial.needsUpdate=!0}setSize(e,t){}}class Hn{get shadowcatcherMesh(){return this.planeMesh}set configuration(e){this._config=JSON.parse(JSON.stringify(e))}constructor(e,t){this.planeSize=new T,this._config=Gn,this.shadowcatcherPass=new Wn,this.shadowcatcherPass.setLayers(t),this.displayMaterial=new Jt({color:16777215},["USE_RTE"]),this.displayMaterial.toneMapped=!1,this.displayMaterial.map=this.shadowcatcherPass.outputTexture,this.displayMaterial.map.needsUpdate=!0,this.displayMaterial.toneMapped=!1,this.displayMaterial.transparent=!0,this.displayMaterial.blending=Z,this.displayMaterial.blendEquation=ee,this.displayMaterial.blendEquationAlpha=pe,this.displayMaterial.blendSrc=$,this.displayMaterial.blendSrcAlpha=re,this.displayMaterial.blendDst=te,this.displayMaterial.blendDstAlpha=re,this.displayMaterial.alphaTest=.001,this.planeMesh=new B,this.planeMesh.material=this.displayMaterial,this.planeMesh.layers.set(e),this.planeMesh.name=Hn.MESH_NAME,this.planeMesh.frustumCulled=!1}update(e){this.shadowcatcherPass.updateConfig(this._config),this.shadowcatcherPass.update(e)}render(e){this.shadowcatcherPass.render(e)}bake(e,t,i){this.updatePlaneMesh(e,i);const n=this.getTextureSize(t),r=(new h).setFromObject(this.planeMesh),s=e.getSize(new d).z;this.shadowcatcherPass.updateCamera(r,.001,s),this.shadowcatcherPass.setOutputSize(n.x,n.y),this.shadowcatcherPass.setWeights(this._config.weights),this.shadowcatcherPass.needsUpdate=!0}updateClippingPlanes(e){this.displayMaterial.clippingPlanes=e,this.displayMaterial.needsUpdate=!0,this.shadowcatcherPass.updateClippingPlanes(e)}getTextureSize(e){const t=this.planeSize.x/this.planeSize.y,i=new T;return i.x=Math.trunc(this._config.textureSize),i.y=Math.trunc(this._config.textureSize/t),i.y>e*Hn.MAX_TEXTURE_SIZE_SCALE&&(i.y=e*Hn.MAX_TEXTURE_SIZE_SCALE,i.x=t*i.y),i}updatePlaneMesh(e,t){const i=e.getSize(new d),n=e.getCenter(new d);(new T(i.x,i.y).distanceTo(this.planeSize)>.001||t)&&this.updatePlaneMeshGeometry(new T(2*i.x,2*i.y),new d(n.x,n.y,n.z-.5*i.z-.001)),this.planeSize.set(i.x,i.y)}updatePlaneMeshGeometry(e,t){this.planeMesh.geometry&&this.planeMesh.geometry.dispose();const i=new D(e.x,e.y,Hn.PLANE_SUBD,Hn.PLANE_SUBD),n=(new s).makeTranslation(t.x,t.y,t.z);i.applyMatrix4(n);const r=new Float64Array(i.attributes.position.array);ni.updateRTEGeometry(i,r),this.planeMesh.geometry=i,this.planeMesh.geometry.computeBoundingBox()}}var Xn,Kn;Hn.MESH_NAME="Shadowcatcher",Hn.PLANE_SUBD=2,Hn.MAX_TEXTURE_SIZE_SCALE=.5,function(e){e.Stationary="stationary",e.Dynamic="dynamic",e.FrameUpdate="frame-update",e.LateFrameUpdate="late-frame-update",e.ProjectionChanged="projection-changed",e.InteractionStarted="interaction-started",e.InteractionEnded="interaction-ended"}(Xn||(Xn={})),function(e){e[e.PERSPECTIVE=0]="PERSPECTIVE",e[e.ORTHOGRAPHIC=1]="ORTHOGRAPHIC"}(Kn||(Kn={}));class Yn{constructor(){this.viewer=new d,this.viewerLow=new d,this.viewerHigh=new d,this.rteViewModelMatrix=new s,this.shadowViewer=new d,this.shadowViewerLow=new d,this.shadowViewerHigh=new d,this.rteShadowViewModelMatrix=new s,this.rteShadowMatrix=new s}copy(e,t){t.viewer.copy(e.viewer),t.viewerLow.copy(e.viewerLow),t.viewerHigh.copy(e.viewerHigh),t.rteViewModelMatrix.copy(e.rteViewModelMatrix),t.shadowViewer.copy(e.shadowViewer),t.shadowViewerLow.copy(e.shadowViewerLow),t.shadowViewerHigh.copy(e.shadowViewerHigh),t.rteShadowViewModelMatrix.copy(e.rteShadowViewModelMatrix),t.rteShadowMatrix.copy(e.rteShadowMatrix)}push(){this._cache||(this._cache=new Yn),this.copy(this,this._cache)}pop(){this._cache||(this._cache=new Yn),this.copy(this._cache,this)}}class Zn extends me{constructor(){super(...arguments),this.RTEBuffers=new Yn}updateRTEViewModel(e){this.RTEBuffers.rteViewModelMatrix.copy(e.matrixWorldInverse),this.RTEBuffers.rteViewModelMatrix.elements[12]=0,this.RTEBuffers.rteViewModelMatrix.elements[13]=0,this.RTEBuffers.rteViewModelMatrix.elements[14]=0,this.RTEBuffers.viewer.set(e.matrixWorld.elements[12],e.matrixWorld.elements[13],e.matrixWorld.elements[14]),ni.DoubleToHighLowVector(this.RTEBuffers.viewer,this.RTEBuffers.viewerLow,this.RTEBuffers.viewerHigh)}}class _n{constructor(){this.renderTimeAcc=0,this.renderTimeSamples=0,this.renderTimeMaxSamples=500,this.renderTimeStart=0,this.renderTime=0,this.objects=0,this.batchCount=0,this.drawCalls=0,this.trisCount=0,this.vertCount=0}frameStart(){this.renderTimeStart=performance.now()}frameEnd(){this.renderTimeAcc+=performance.now()-this.renderTimeStart,this.renderTimeSamples++,this.renderTimeSamples%this.renderTimeMaxSamples==0&&(this.renderTime=this.renderTimeAcc/this.renderTimeSamples,this.renderTimeSamples=0,this.renderTimeAcc=0)}}class $n{get renderer(){return this._renderer}set needsRender(e){this._needsRender||(this._needsRender=e)}set shadowMapNeedsUpdate(e){this._renderer.shadowMap.needsUpdate=e}get sceneBox(){const e=new h,t=this.batcher.getBatches();for(let i=0;i<t.length;i++)e.union(t[i].bounds);return e}get sceneSphere(){return this.sceneBox.getBoundingSphere(new V)}get sceneCenter(){return this.sceneBox.getCenter(new d)}get clippingVolume(){return!this._clippingVolume.isEmpty()&&this._renderer.localClippingEnabled?(new h).copy(this._clippingVolume):this.sceneBox}set clippingVolume(e){this._clippingVolume=this.sceneBox.intersect(e)}get clippingPlanes(){return this._clippingPlanes}set clippingPlanes(e){this._clippingPlanes=e.map((e=>(new ge).copy(e))),this.updateClippingPlanes()}get allObjects(){return this._scene.getObjectByName("ContentGroup")}get scene(){return this._scene}get sunLight(){return this.sun}set indirectIBL(e){this._scene.environment=e}set indirectIBLIntensity(e){const t=this.batcher.getBatches(void 0,Et.MESH);for(let i=0;i<t.length;i++){const n=t[i].materials;for(let t=0;t<n.length;t++)n[t].envMapIntensity=e}}get speckleCamera(){return this._speckleCamera}set speckleCamera(e){this._speckleCamera=e,this._speckleCamera.on(Xn.Dynamic,(()=>{this._needsRender=!0,this.pipeline.onStationaryEnd()})),this._speckleCamera.on(Xn.Stationary,(()=>{this._needsRender=!0,this.pipeline.onStationaryBegin()})),this._speckleCamera.on(Xn.FrameUpdate,(e=>{this.needsRender=e,this.pipeline.needsAccumulation&&e&&this.pipeline.reset()}))}get renderingCamera(){return this._speckleCamera?this._speckleCamera.renderingCamera:null}set pipelineOptions(e){this.pipeline.pipelineOptions=e}get pipelineOptions(){return this.pipeline.pipelineOptions}get shadowcatcher(){return this._shadowcatcher}get intersections(){return this._intersections}get renderingStats(){const e=Object.values(this.batcher.batches);return this._renderinStats.objects=e.reduce(((e,t)=>e+t.renderViews.length),0),this._renderinStats.batchCount=e.length,this._renderinStats.drawCalls=e.reduce(((e,t)=>e+t.drawCalls),0),this._renderinStats.trisCount=e.reduce(((e,t)=>e+t.triCount),0),this._renderinStats.vertCount=e.reduce(((e,t)=>e+t.vertCount),0),this._renderinStats.batchDetails=e.map((e=>({type:e.constructor.name,objCount:e.renderViews.length,drawCalls:e.drawCalls,minDrawCalls:e.minDrawCalls,tris:e.triCount,verts:e.vertCount}))),this._renderinStats}constructor(e,t){this.SHOW_HELPERS=!1,this.IGNORE_ZERO_OPACITY_OBJECTS=!0,this.SHOW_BVH=!1,this._speckleCamera=null,this.sunConfiguration=mt,this.cancel={},this._clippingPlanes=[],this._clippingVolume=new h,this._renderOverride=null,this.tree=e,this._renderinStats=new _n,this._scene=new ve,this.rootGroup=new J,this.rootGroup.name="ContentGroup",this.rootGroup.layers.set(gt.STREAM_CONTENT),this._scene.add(this.rootGroup),this._intersections=new Sn,this.viewer=t}create(e){if(this._renderer=new Zn({antialias:!0,alpha:!0,preserveDrawingBuffer:!0,stencil:!0}),this._renderer.setClearColor(16777215,0),this._renderer.setPixelRatio(window.devicePixelRatio),this._renderer.outputEncoding=fe,this._renderer.toneMapping=we,this._renderer.toneMappingExposure=.5,this._renderer.shadowMap.enabled=!0,this._renderer.shadowMap.type=Se,this._renderer.shadowMap.autoUpdate=!1,this._renderer.shadowMap.needsUpdate=!0,this._renderer.physicallyCorrectLights=!0,this._renderer.autoClearStencil=!1,this.container=e,this._renderer.setSize(e.offsetWidth,e.offsetHeight),e.appendChild(this._renderer.domElement),this.batcher=new pn(this.renderer.capabilities.maxVertexUniforms,this.renderer.capabilities.floatVertexTextures),this.pipeline=new jn(this._renderer,this.batcher),this.pipeline.configure(),this.pipeline.pipelineOptions=qn,this.input=new gn(this._renderer.domElement),this.input.on(mn.Click,this.onClick.bind(this)),this.input.on(mn.DoubleClick,this.onDoubleClick.bind(this)),this.addDirectLights(),this.SHOW_HELPERS){const e=new J;e.name="Helpers",this._scene.add(e);const t=new U(this.clippingVolume,new l(16711935));t.name="SceneBoxHelper",t.layers.set(gt.PROPS),e.add(t);const i=new Ae(this.sun,50,16711680);i.name="DirLightHelper",i.layers.set(gt.PROPS),e.add(i);const n=new ue(this.sun.shadow.camera);n.name="CamHelper",n.layers.set(gt.PROPS),e.add(n)}let t,i;this._shadowcatcher=new Hn(gt.SHADOWCATCHER,[gt.STREAM_CONTENT_MESH]),this._shadowcatcher.shadowcatcherPass.onBeforeRender=()=>{t=this.batcher.saveVisiblity(),i=this.batcher.getOpaque(),this.batcher.applyVisibility(i),this.batcher.overrideMaterial(i,this._shadowcatcher.shadowcatcherPass.drawDepthMaterial)},this._shadowcatcher.shadowcatcherPass.onAfterRender=()=>{this.batcher.applyVisibility(t),this.batcher.restoreMaterial(i)},this._scene.add(this._shadowcatcher.shadowcatcherMesh)}update(e){this.renderingCamera&&(this.batcher.update(e),this.renderingCamera.updateMatrixWorld(!0),this._renderer.updateRTEViewModel(this.renderingCamera),this.updateRTEShadows(),this.updateTransforms(),this.updateFrustum(this.renderingCamera),this.pipeline.update(this),this.sunConfiguration.shadowcatcher&&this._shadowcatcher&&this._shadowcatcher.update(this._scene))}updateRTEShadowBuffers(){return!!this._renderer.shadowMap.needsUpdate&&(this._renderer.RTEBuffers.shadowViewer.set(this.sun.shadow.camera.matrixWorld.elements[12],this.sun.shadow.camera.matrixWorld.elements[13],this.sun.shadow.camera.matrixWorld.elements[14]),ni.DoubleToHighLowVector(this._renderer.RTEBuffers.shadowViewer,this._renderer.RTEBuffers.shadowViewerLow,this._renderer.RTEBuffers.shadowViewerHigh),this._renderer.RTEBuffers.rteShadowViewModelMatrix.copy(this.sun.shadow.camera.matrixWorldInverse),this._renderer.RTEBuffers.rteShadowViewModelMatrix.elements[12]=0,this._renderer.RTEBuffers.rteShadowViewModelMatrix.elements[13]=0,this._renderer.RTEBuffers.rteShadowViewModelMatrix.elements[14]=0,this._renderer.RTEBuffers.rteShadowMatrix.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),this._renderer.RTEBuffers.rteShadowMatrix.multiply(this.sun.shadow.camera.projectionMatrix),this._renderer.RTEBuffers.rteShadowMatrix.multiply(this._renderer.RTEBuffers.rteShadowViewModelMatrix),!0)}updateRTEShadows(){if(!this.updateRTEShadowBuffers())return;const e=this.batcher.getBatches(void 0,Et.MESH);for(let t=0;t<e.length;t++){e[t].mesh.traverse((e=>{const t=e.customDepthMaterial;t&&(t.userData.uViewer_low.value.copy(this._renderer.RTEBuffers.shadowViewerLow),t.userData.uViewer_high.value.copy(this._renderer.RTEBuffers.shadowViewerHigh),t.userData.rteModelViewMatrix.value.copy(this._renderer.RTEBuffers.rteShadowViewModelMatrix),t.needsUpdate=!0)}))}}updateTransforms(){const e=this.batcher.getBatches(void 0,Et.MESH);for(let t=0;t<e.length;t++){const i=e[t].mesh;i.updateTransformsUniform(),i.traverse((e=>{const t=e.customDepthMaterial;t&&i.updateMaterialTransformsUniform(t)}))}}updateFrustum(e){const t=new d,i=this.sceneBox,n=(new d).copy(e.position);let r=0;t.set(i.min.x,i.min.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.min.x,i.min.y,i.max.z),r=Math.max(n.distanceTo(t),r),t.set(i.min.x,i.max.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.min.x,i.max.y,i.max.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.min.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.min.y,i.max.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.max.y,i.min.z),r=Math.max(n.distanceTo(t),r),t.set(i.max.x,i.max.y,i.max.z),r=Math.max(n.distanceTo(t),r),e.far=2*r,e.updateProjectionMatrix()}resetPipeline(){this._needsRender=!0,this.pipeline.reset()}render(){this._renderOverride?this._renderOverride():this._speckleCamera&&(this._needsRender||this.pipeline.needsAccumulation)&&(this._renderinStats.frameStart(),this.batcher.render(this.renderer),this._needsRender=this.pipeline.render(),this._renderinStats.frameEnd(),this.sunConfiguration.shadowcatcher&&this._shadowcatcher&&this._shadowcatcher.render(this._renderer))}resize(e,t){this.renderer.setSize(e,t),this.pipeline.resize(e,t),this._needsRender=!0}async*addRenderTree(e){this.cancel[e.id]=!1;const t=new J;t.name=e.id,t.layers.set(gt.STREAM_CONTENT),this.rootGroup.add(t);const i=this.batcher.makeBatches(this.tree,e,$t);let n=0,r=-1;this._renderOverride=()=>{n>r&&(this.pipeline.render(),r=n)};for await(const r of i)if(r){if(this.addBatch(r,t),r.geometryType===Et.MESH&&this.updateDirectLights(),this.cancel[e.id]){i.return(),this.removeRenderTree(e.id),delete this.cancel[e.id];break}n++,yield}this._renderOverride=null,this.updateHelpers(),this.updateShadowCatcher(),this.updateClippingPlanes(),this._speckleCamera&&this._speckleCamera.setCameraPlanes(this.sceneBox),delete this.cancel[e.id]}addBatch(e,t){const i=e.renderObject;if(t.add(e.renderObject),e.geometryType===Et.MESH){i.traverse((e=>{if(e instanceof B){const t=Array.isArray(e.material)?e.material[0]:e.material;e.castShadow=!t.transparent,e.receiveShadow=!t.transparent,e.customDepthMaterial=new An({depthPacking:ne},["USE_RTE","ALPHATEST_REJECTION"])}}));i.TAS.boxHelpers.forEach((e=>{this.scene.add(e)}))}this.viewer.World.expandWorld(e.bounds)}removeRenderTree(e){this.rootGroup.remove(this.rootGroup.getObjectByName(e)),this.updateShadowCatcher();this.batcher.getBatches(e).forEach((e=>{this.viewer.World.reduceWorld(e.bounds)})),this.batcher.purgeBatches(e),this.updateDirectLights(),this.updateHelpers()}cancelRenderTree(e){void 0!==this.cancel[e]&&(this.cancel[e]=!0)}setMaterial(e,t){if(!t)return;const i={};for(let t=0;t<e.length;t++)e[t].batchId&&(i[e[t].batchId]||(i[e[t].batchId]=[]),i[e[t].batchId].includes(e[t])||i[e[t].batchId].push(e[t]));_t.isMaterialInstance(t)?this.setMaterialInstance(i,t):_t.isFilterMaterial(t)?this.setFilterMaterial(i,t):(_t.isRendeMaterial(t)||_t.isDisplayStyle(t))&&this.setDataMaterial(i,t)}setMaterialInstance(e,t){for(const i in e){const n=e[i].map((e=>({offset:e.batchStart,count:e.batchCount,material:t})));this.batcher.batches[i]&&this.batcher.batches[i].setDrawRanges(this.flattenDrawRanges(n))}}setFilterMaterial(e,t){for(const i in e){const n=e[i].map((e=>({offset:e.batchStart,count:e.batchCount,material:this.batcher.materials.getFilterMaterial(e,t),materialOptions:this.batcher.materials.getFilterMaterialOptions(t)})));this.batcher.batches[i]&&this.batcher.batches[i].setDrawRanges(this.flattenDrawRanges(n))}}setDataMaterial(e,t){for(const i in e){const n=e[i].map((e=>{const i=this.batcher.materials.getDataMaterial(e,t);return i.setMaterialOptions(t),{offset:e.batchStart,count:e.batchCount,material:i}}));this.batcher.batches[i]&&this.batcher.batches[i].setDrawRanges(this.flattenDrawRanges(n))}}flattenDrawRanges(e){if(e.length<3)return e;const t=[];let i=(e=e.sort(((e,t)=>e.offset-t.offset)))[0].offset,n=0;for(let r=0;r<e.length-1;r++)n+=e[r].count,i+n!==e[r+1].offset?(t.push({offset:i,count:n,material:e[r].material,...e[r].materialOptions&&{materialOptions:e[r].materialOptions}}),i=e[r+1].offset,n=0,r===e.length-2&&t.push({offset:e[r+1].offset,count:e[r+1].count,material:e[r+1].material,...e[r].materialOptions&&{materialOptions:e[r].materialOptions}})):r===e.length-2&&t.push({offset:i,count:n+e[r+1].count,material:e[r].material,...e[r].materialOptions&&{materialOptions:e[r].materialOptions}});return t}getMaterial(e){return e&&e.batchId?this.batcher.getBatch(e).getMaterial(e):null}getBatchMaterial(e){return e&&e.batchId?this.batcher.getBatch(e).batchMaterial:null}resetMaterials(){this.batcher.resetBatchesDrawRanges()}getBatch(e){return this.batcher.batches[e]}updateClippingPlanes(){var e;if(!this.allObjects)return;const t=this._clippingPlanes;this.allObjects.traverse((e=>{const i=e.material;if(i)if(Array.isArray(i))for(let e=0;e<i.length;e++)i[e].clippingPlanes=t;else i.clippingPlanes=t})),this.pipeline.updateClippingPlanes(t),null===(e=this._shadowcatcher)||void 0===e||e.updateClippingPlanes(t),this.renderer.shadowMap.needsUpdate=!0,this.resetPipeline()}updateShadowCatcher(){void 0!==this.sunConfiguration.shadowcatcher&&(this._shadowcatcher.shadowcatcherMesh.visible=this.sunConfiguration.shadowcatcher),this.sunConfiguration.shadowcatcher&&(this._shadowcatcher.bake(this.clippingVolume,this._renderer.capabilities.maxTextureSize),this.resetPipeline())}addDirectLights(){this.sun=new ye(16777215,5),this.sun.name="sun",this.sun.layers.set(gt.STREAM_CONTENT),this._scene.add(this.sun),this.sun.castShadow=!0,this.sun.shadow.mapSize.width=2048,this.sun.shadow.mapSize.height=2048;this.sun.shadow.camera.left=-50,this.sun.shadow.camera.right=50,this.sun.shadow.camera.top=50,this.sun.shadow.camera.bottom=-50,this.sun.shadow.camera.near=5,this.sun.shadow.camera.far=350,this.sun.shadow.bias=-.001,this.sun.shadow.radius=2,this.sunTarget=new Te,this._scene.add(this.sunTarget),this.sunTarget.position.copy(this.sceneCenter),this.sun.target=this.sunTarget}updateDirectLights(){const e=this.sunConfiguration.elevation,t=this.sunConfiguration.azimuth,i=this.sunConfiguration.radius||0;void 0!==this.sunConfiguration.castShadow&&(this.sun.castShadow=this.sunConfiguration.castShadow),void 0!==this.sunConfiguration.intensity&&(this.sun.intensity=this.sunConfiguration.intensity),this.sun.color=new l(this.sunConfiguration.color),void 0!==this.sunConfiguration.enabled&&(this.sun.visible=this.sunConfiguration.enabled),this.sunTarget.position.copy(this.sceneCenter);const n=new Ee(this.sceneSphere.radius+i,e,t);this.sun.position.setFromSpherical(n),this.sun.position.add(this.sunTarget.position),this.sun.updateWorldMatrix(!0,!0),this.sunTarget.updateMatrixWorld(),this.sun.shadow.updateMatrices(this.sun);const r=this.sceneBox,s=r.min,a=r.max,o=new d(s.x,s.y,s.z),c=new d(a.x,s.y,s.z),u=new d(s.x,a.y,s.z),p=new d(s.x,s.y,a.z),m=new d(a.x,a.y,s.z),g=new d(a.x,s.y,a.z),v=new d(s.x,a.y,a.z),f=new d(a.x,a.y,a.z);o.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),c.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),u.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),p.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),m.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),g.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),v.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse),f.applyMatrix4(this.sun.shadow.camera.matrixWorldInverse);const w=(new h).setFromPoints([o,c,u,p,m,g,v,f]);this.sun.shadow.camera.left=w.min.x,this.sun.shadow.camera.right=w.max.x,this.sun.shadow.camera.top=w.min.y,this.sun.shadow.camera.bottom=w.max.y,this.sun.shadow.camera.near=Math.abs(w.max.z),this.sun.shadow.camera.far=Math.abs(w.min.z),this.sun.shadow.camera.updateProjectionMatrix(),this.renderer.shadowMap.needsUpdate=!0,this.updateHelpers()}setSunLightConfiguration(e){Object.assign(this.sunConfiguration,e),void 0!==e.indirectLightIntensity&&(this.indirectIBLIntensity=e.indirectLightIntensity),this.updateDirectLights(),this.updateShadowCatcher(),this.viewer.emit(pt.LightConfigUpdated,{...e})}updateHelpers(){this.SHOW_HELPERS&&(this._scene.getObjectByName("CamHelper").update(),this._scene.getObjectByName("SceneBoxHelper").box.copy(this.clippingVolume),this._scene.getObjectByName("DirLightHelper").update())}queryHits(e){const t=[],i=[];for(let n=0;n<e.length;n++){const r=this.renderViewFromIntersection(e[n]);r&&(t.push(r),i.push(e[n].point))}if(0===t.length)return null;const n=[];for(let e=0;e<t.length;e++){const r=t[e].renderData.id,s=t[e].renderData.subtreeId,a=this.tree.findId(r,s);if(!a)continue;let o=a[0];for(;!o.model.atomic&&o.parent;)o=o.parent;n.push({node:o,point:i[e]})}return n}queryHitIds(e){var t;const i=[];for(let n=0;n<e.length;n++){let r=null===(t=e[n].batchObject)||void 0===t?void 0:t.renderView;if(!r){const t=void 0!==e[n].faceIndex?e[n].faceIndex:e[n].index;t&&(r=this.batcher.getRenderView(e[n].object.uuid,t))}r&&i.push({nodeId:r.renderData.id,point:e[n].point})}return 0===i.length?null:i}renderViewFromIntersection(e){let t=null;if(e.batchObject){t=e.batchObject.renderView;const i=e.object.getBatchObjectMaterial(e.batchObject);if(i&&0===i.opacity&&this.IGNORE_ZERO_OPACITY_OBJECTS)return null}else{const i=void 0!==e.faceIndex&&null!==e.faceIndex?e.faceIndex:void 0!==e.index&&null!==e.index?e.index:void 0;if(void 0!==i&&(t=this.batcher.getRenderView(e.object.uuid,i),t)){const t=this.batcher.getRenderViewMaterial(e.object.uuid,i);if(t&&0===t.opacity&&this.IGNORE_ZERO_OPACITY_OBJECTS)return null}}return t}onClick(e){if(!this.renderingCamera)return;const t=this._intersections.intersect(this._scene,this.renderingCamera,e,void 0,!0,this.clippingVolume);if(!t)return void this.viewer.emit(pt.ObjectClicked,null);let i=!1;e.multiSelect&&(i=!0);const n=this.queryHits(t);if(!n)return void this.viewer.emit(pt.ObjectClicked,i?{multiple:!0,event:e.event}:null);const r={multiple:i,event:e.event,hits:n.map((e=>({node:e.node,point:e.point})))};this.viewer.emit(pt.ObjectClicked,r)}onDoubleClick(e){if(!this.renderingCamera)return;const t=this._intersections.intersect(this._scene,this.renderingCamera,e,void 0,!0,this.clippingVolume);if(!t)return void this.viewer.emit(pt.ObjectDoubleClicked,null);let i=!1;e.multiSelect&&(i=!0);const n=this.queryHits(t);if(!n)return void this.viewer.emit(pt.ObjectDoubleClicked,null);const r={multiple:i,hits:n.map((e=>({node:e.node,point:e.point})))};this.viewer.emit(pt.ObjectDoubleClicked,r)}boxFromObjects(e){let t=new h;const i=[];if(e.length>0)for(let t=0;t<e.length;t++){const n=this.tree.findId(e[t]);n&&n.forEach((e=>{i.push(...this.tree.getRenderTree().getRenderViewsForNode(e))}))}else t=this.sceneBox;for(let e=0;e<i.length;e++){const n=this.getObject(i[e]),r=n?n.aabb:i[e].aabb;r&&t.union(r)}return 0===t.getSize(new d).length()&&console.error("object selection resulted in empty box"),t}screenToNDC(e,t,i,n){const r=this._renderer.domElement,s=this.container.getBoundingClientRect(),a=void 0===i?(e-s.left)*r.width/s.width:e,o=void 0===n?(t-s.top)*r.height/s.height:t;return{x:a/(void 0===i?r.width:i)*2-1,y:o/(void 0===n?r.height:n)*-2+1}}NDCToScreen(e,t,i,n){const r=this._renderer.domElement;return{x:(.5*e+.5)*(i=void 0!==i?i:r.width),y:(-.5*t+.5)*(n=void 0!==n?n:r.height)}}debugShowBatches(){for(const e in this.batcher.batches){const t={id:"string",color:Math.floor(16777215*Math.random()),opacity:1,roughness:1,metalness:0,vertexColors:!1,lineWeight:1};this.setMaterial(this.batcher.batches[e].renderViews,t)}}getBatchIds(){const e=Object.values(this.batcher.batches);e.sort(((e,t)=>e.renderViews.length-t.renderViews.length));const t=[];for(let i=0;i<e.length;i++)t.push(e[i].id);return t.reverse()}getBatchSize(e){return this.batcher.batches[e].renderViews.length}isolateBatch(e){this.batcher.resetBatchesDrawRanges(),this.batcher.isolateBatch(e)}getObjects(){return this.batcher.getBatches(void 0,Et.MESH).map((e=>e.mesh)).flatMap((e=>e.batchObjects))}getObject(e){const t=this.batcher.getBatch(e);return t.geometryType!==Et.MESH?null:t.mesh.batchObjects.find((t=>t.renderView.guid===e.guid))}enableLayers(e,t){this.pipeline.composer.passes.forEach((i=>{i instanceof Tn&&e.forEach((e=>{i.enableLayer(e,t)}))}))}}const er=function(e){const t={};for(const i in e){if("id"===i||"__closure"===i||"__parents"===i||"bbox"===i||"totalChildrenCount"===i)continue;const n=e[i];if(null==n||Array.isArray(n))continue;if(n.constructor===Object){const e=er(n);for(const n in e)t[i+"."+n]=e[n];continue}const r=typeof n;"string"!==r&&"number"!==r&&"boolean"!==r||(t[i]=n)}return e.id&&(t.id=e.id),t};class tr{constructor(){this.propCache={}}async getProperties(e,t=null,i=!1){let n=e.root;if(!i&&this.propCache[t||n.model.id])return this.propCache[t||n.model.id];if(t){const e=n.children.find((e=>e.model.id===t));if(!e)throw new Error(`Could not find root node for ${t} - is it loaded?`);n=e}const r={};await e.walkAsync((e=>{if(!e.model.atomic)return!0;const t=er(e.model.raw);for(const e in t)Array.isArray(t[e])||(r[e]||(r[e]=[]),r[e].push({value:t[e],id:t.id}));return!0}),n);const s=[];for(const e in r){const t=r[e],i={};if(i.key=e,i.type="string"==typeof t[0].value?"string":"number",i.objectCount=t.length,"string"===i.type){const e=i,n={};for(const{value:e,id:i}of t)n[e]||(n[e]=[]),n[e].push(i);e.valueGroups=[];for(const t in n)e.valueGroups.push({value:t,ids:n[t]});e.valueGroups=e.valueGroups.sort(((e,t)=>e.value.localeCompare(t.value)))}if("number"===i.type){const e=i;e.min=Number.MAX_VALUE,e.max=Number.MIN_VALUE;for(const{value:i}of t)i<e.min&&(e.min=i),i>e.max&&(e.max=i);e.valueGroups=t.sort(((e,t)=>e.value-t.value))}s.push(i)}return this.propCache[n.model.id]=s,s}}class ir{static isPointQuery(e){return"Project"===e.operation||"Unproject"===e.operation}static isIntersectionQuery(e){return"Occlusion"===e.operation||"Pick"===e.operation}}ir.DefaultPointQuerySolver=new class{setContext(e){this.renderer=e}solve(e){switch(e.operation){case"Project":return this.solveProjection(e);case"Unproject":return this.solveUnprojection(e);default:return St.error("Malformed query"),null}}solveProjection(e){const t=new d(e.point.x,e.point.y,e.point.z);return this.renderer.renderingCamera?t.project(this.renderer.renderingCamera):St.error("Could not run query. Camera is null"),{x:t.x,y:t.y,z:t.z}}solveUnprojection(e){const t=new d(e.point.x,e.point.y,e.point.z);return this.renderer.renderingCamera?t.unproject(this.renderer.renderingCamera):St.error("Could not run query. Camera is null"),{x:t.x,y:t.y,z:t.z}}},ir.DefaultIntersectionQuerySolver=new class{constructor(){this.vecBuff0=new d,this.vecBuff1=new d}setContext(e){this.renderer=e}solve(e){switch(e.operation){case"Occlusion":return this.solveOcclusion(e);case"Pick":return this.solvePick(e);default:return St.error("Malformed query"),null}}solveOcclusion(e){if(!this.renderer.renderingCamera)return{objects:null};const t=this.vecBuff0.set(e.point.x,e.point.y,e.point.z||0),i=this.vecBuff1.copy(t).sub(this.renderer.renderingCamera.position);i.normalize();const n=new k(this.renderer.renderingCamera.position,i),r=this.renderer.intersections.intersectRay(this.renderer.scene,this.renderer.renderingCamera,n,gt.STREAM_CONTENT_MESH,!0,this.renderer.clippingVolume);if(!r||0===r.length)return{objects:null};const s=this.renderer.queryHitIds(r);if(!s)return{objects:null};let a=this.renderer.renderingCamera.position.distanceTo(t);return a-=void 0!==e.tolerance?e.tolerance:0,a<r[0].distance?{objects:null}:{objects:[{guid:s[0].nodeId,point:s[0].point}]}}solvePick(e){if(!this.renderer.renderingCamera)return null;const t=this.renderer.intersections.intersect(this.renderer.scene,this.renderer.renderingCamera,new T(e.point.x,e.point.y),void 0,!0,this.renderer.clippingVolume);if(!t)return null;const i=this.renderer.queryHits(t);return i?{objects:i.map((e=>({guid:e.node.model.id,object:e.node.model.raw,point:e.point})))}:null}};class nr extends ht{get inject(){return[]}get enabled(){return this._enabled}set enabled(e){this._enabled=e}constructor(e,...t){super(),this._enabled=!1,this.viewer=e}onEarlyUpdate(e){}onLateUpdate(e){}onRender(){}onResize(){}} = pkg;
at ModuleJob._instantiate (node:internal/modules/esm/module_job:124:21)
at async ModuleJob.run (node:internal/modules/esm/module_job:190:5)
Node.js v18.16.0