@shopware-ag/dive 2.3.8 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/build/chunks/Animator-DHnpWRt_.mjs +16 -0
  2. package/build/chunks/Animator-YDE8aFEd.cjs +1 -0
  3. package/build/chunks/AssetCache-Bk3ov4KH.cjs +1 -0
  4. package/build/chunks/{AssetCache-CJPVU7kz.mjs → AssetCache-DNcSNSJk.mjs} +6 -5
  5. package/build/chunks/AssetExporter-Cdxb04b3.cjs +1 -0
  6. package/build/chunks/AssetExporter-DLL_vJae.mjs +67 -0
  7. package/build/chunks/AssetLoader-D6ScugS-.cjs +3 -0
  8. package/build/chunks/AssetLoader-Dvq0Wk28.mjs +499 -0
  9. package/build/chunks/{ClipAnimator-keFLDMNZ.mjs → ClipAnimator-D8Gho4Ec.mjs} +2 -2
  10. package/build/chunks/ClipAnimator-SdDq2wk1.cjs +1 -0
  11. package/build/chunks/FileTypes-CGEeONh9.cjs +29 -0
  12. package/build/chunks/FileTypes-DU8bBa_V.mjs +1976 -0
  13. package/build/chunks/GridNode-0R5ZnzR6.mjs +30 -0
  14. package/build/chunks/GridNode-iqnu86_v.cjs +1 -0
  15. package/build/chunks/{PerspectiveCamera-BFzE2TQU.mjs → PerspectiveCamera-B5TvUzTa.mjs} +1 -1
  16. package/build/chunks/PerspectiveCamera-DwQUmkDv.cjs +1 -0
  17. package/build/chunks/{TargetAnimator-DuqPk2eq.cjs → TargetAnimator-D37bWNKD.cjs} +1 -1
  18. package/build/chunks/{TargetAnimator-DUqkkdVb.mjs → TargetAnimator-DL_9b921.mjs} +1 -1
  19. package/build/chunks/{isFileTypeSupported-CqzOKCiV.mjs → isFileTypeSupported-DY4QOFj7.mjs} +1 -1
  20. package/build/chunks/{isFileTypeSupported-D97zmt1P.cjs → isFileTypeSupported-DrMUwnQx.cjs} +1 -1
  21. package/build/components/boundingbox/BoundingBox.d.ts +1 -1
  22. package/build/components/floor/Floor.d.ts +1 -1
  23. package/build/components/gizmo/Gizmo.d.ts +1 -1
  24. package/build/components/gizmo/handles/AxisHandle.d.ts +1 -1
  25. package/build/components/gizmo/handles/RadialHandle.d.ts +1 -1
  26. package/build/components/gizmo/handles/ScaleHandle.d.ts +1 -1
  27. package/build/components/gizmo/plane/GizmoPlane.d.ts +1 -1
  28. package/build/components/gizmo/rotate/RotateGizmo.d.ts +1 -1
  29. package/build/components/gizmo/scale/ScaleGizmo.d.ts +1 -1
  30. package/build/components/gizmo/translate/TranslateGizmo.d.ts +1 -1
  31. package/build/components/grid/Grid.d.ts +2 -1
  32. package/build/components/group/Group.d.ts +1 -1
  33. package/build/components/light/AmbientLight.d.ts +1 -1
  34. package/build/components/light/PointLight.d.ts +1 -1
  35. package/build/components/light/SceneLight.d.ts +1 -1
  36. package/build/components/model/Model.d.ts +1 -1
  37. package/build/components/node/Node.d.ts +1 -1
  38. package/build/components/primitive/Primitive.d.ts +1 -1
  39. package/build/components/root/Root.d.ts +1 -1
  40. package/build/dive.cjs +1 -1
  41. package/build/dive.mjs +58 -60
  42. package/build/engine/Dive.d.ts +4 -31
  43. package/build/engine/camera/PerspectiveCamera.d.ts +1 -1
  44. package/build/engine/environment/Environment.d.ts +12 -27
  45. package/build/engine/renderer/Renderer.d.ts +7 -8
  46. package/build/engine/scene/Scene.d.ts +1 -1
  47. package/build/engine/scene/xrroot/XRRoot.d.ts +2 -3
  48. package/build/engine/scene/xrroot/xrlightroot/XRLightRoot.d.ts +3 -3
  49. package/build/helpers/findInterface/findInterface.d.ts +1 -1
  50. package/build/helpers/findSceneRecursive/findSceneRecursive.d.ts +1 -1
  51. package/build/helpers/implementsInterface/implementsInterface.d.ts +1 -1
  52. package/build/helpers/math/signedAngleTo/signedAngleTo.d.ts +1 -1
  53. package/build/interfaces/Hoverable.d.ts +1 -1
  54. package/build/plugins/animation/index.cjs +1 -1
  55. package/build/plugins/animation/index.mjs +12 -20
  56. package/build/plugins/animation/src/animator/Animator.d.ts +1 -1
  57. package/build/plugins/animation/src/animator/ClipAnimator.d.ts +1 -1
  58. package/build/plugins/animation/src/system/AnimationSystem.d.ts +1 -6
  59. package/build/plugins/animation/src/types/AnimatorTypes.d.ts +1 -1
  60. package/build/plugins/ar/index.cjs +1 -1
  61. package/build/plugins/ar/index.mjs +5 -4
  62. package/build/plugins/ar/src/webxr/controller/WebXRController.d.ts +1 -1
  63. package/build/plugins/ar/src/webxr/crosshair/WebXRCrosshair.d.ts +1 -1
  64. package/build/plugins/ar/src/webxr/origin/WebXROrigin.d.ts +1 -1
  65. package/build/plugins/ar/src/webxr/raycaster/WebXRRaycaster.d.ts +1 -1
  66. package/build/plugins/ar/src/webxr/touchscreencontrols/WebXRTouchscreenControls.d.ts +1 -1
  67. package/build/plugins/assetcache/index.cjs +1 -1
  68. package/build/plugins/assetcache/index.mjs +1 -1
  69. package/build/plugins/assetexporter/index.cjs +1 -1
  70. package/build/plugins/assetexporter/index.mjs +1 -1
  71. package/build/plugins/assetexporter/src/AssetExporter.d.ts +1 -1
  72. package/build/plugins/assetloader/index.cjs +1 -1
  73. package/build/plugins/assetloader/index.mjs +2 -2
  74. package/build/plugins/assetloader/src/loader/AssetLoader.d.ts +2 -2
  75. package/build/plugins/assetloader/src/step/STEPLoader.d.ts +1 -1
  76. package/build/plugins/mediacreator/index.cjs +1 -1
  77. package/build/plugins/mediacreator/index.mjs +52 -24
  78. package/build/plugins/mediacreator/src/MediaCreator.d.ts +4 -3
  79. package/build/plugins/mediacreator/types/MediaGenerationByPosition.d.ts +1 -1
  80. package/build/plugins/orbitcontroller/index.cjs +1 -1
  81. package/build/plugins/orbitcontroller/index.mjs +1 -1
  82. package/build/plugins/orbitcontroller/src/OrbitController.d.ts +1 -1
  83. package/build/plugins/orbitcontroller/types/OrbitControllerState.types.d.ts +1 -1
  84. package/build/plugins/orientationdisplay/index.cjs +1 -1
  85. package/build/plugins/orientationdisplay/index.mjs +17 -16
  86. package/build/plugins/orientationdisplay/src/axes/Axes.d.ts +1 -1
  87. package/build/plugins/quickview/index.cjs +1 -1
  88. package/build/plugins/quickview/index.mjs +9 -8
  89. package/build/plugins/shader/index.cjs +1 -1
  90. package/build/plugins/shader/index.mjs +2 -3
  91. package/build/plugins/shader/src/index.d.ts +1 -3
  92. package/build/plugins/shader/src/shaders/GridNode.d.ts +16 -0
  93. package/build/plugins/state/index.cjs +9 -9
  94. package/build/plugins/state/index.mjs +939 -936
  95. package/build/plugins/state/src/actions/camera/computeencompassingview.d.ts +1 -1
  96. package/build/plugins/state/src/actions/camera/getcameratransform.d.ts +1 -1
  97. package/build/plugins/state/src/actions/camera/movecamera.d.ts +1 -1
  98. package/build/plugins/state/src/actions/camera/setcameratransform.d.ts +1 -1
  99. package/build/plugins/state/types/StateSceneData.d.ts +1 -1
  100. package/build/plugins/toolbox/index.cjs +1 -1
  101. package/build/plugins/toolbox/index.d.ts +0 -1
  102. package/build/plugins/toolbox/index.mjs +224 -853
  103. package/build/plugins/toolbox/src/PointerContext.d.ts +1 -1
  104. package/build/plugins/toolbox/src/SelectionState.d.ts +1 -1
  105. package/build/plugins/toolbox/src/Toolbox.d.ts +0 -10
  106. package/build/plugins/toolbox/src/drag/DragTool.d.ts +1 -1
  107. package/build/plugins/toolbox/src/drag/DraggableEvent.d.ts +1 -1
  108. package/build/plugins/toolbox/src/hover/HoverTool.d.ts +1 -1
  109. package/build/plugins/toolbox/src/select/SelectTool.d.ts +1 -1
  110. package/build/plugins/toolbox/src/transform/TransformTool.d.ts +2 -1
  111. package/build/types/schema/GroupSchema.d.ts +1 -1
  112. package/build/types/schema/LightSchema.d.ts +1 -1
  113. package/build/types/schema/MaterialSchema.d.ts +1 -1
  114. package/build/types/schema/ModelSchema.d.ts +1 -1
  115. package/build/types/schema/PovSchema.d.ts +1 -1
  116. package/build/types/schema/PrimitiveSchema.d.ts +1 -1
  117. package/package.json +5 -4
  118. package/build/chunks/Animator-BGFdF70Z.mjs +0 -47
  119. package/build/chunks/Animator-Cu7NIkVg.cjs +0 -1
  120. package/build/chunks/AssetCache-B74AQgyY.cjs +0 -1
  121. package/build/chunks/AssetExporter-PFiNYi50.mjs +0 -1628
  122. package/build/chunks/AssetExporter-yVhYmVXW.cjs +0 -164
  123. package/build/chunks/AssetLoader-BCI944C9.mjs +0 -2590
  124. package/build/chunks/AssetLoader-BIU78Bv9.cjs +0 -5
  125. package/build/chunks/ClipAnimator-tjhLo851.cjs +0 -1
  126. package/build/chunks/DIVEShaderMaterial-Bt0d8oJB.mjs +0 -3468
  127. package/build/chunks/DIVEShaderMaterial-DE8YRWj9.cjs +0 -1554
  128. package/build/chunks/FileTypes-B0qjl7u2.cjs +0 -33
  129. package/build/chunks/FileTypes-DJxyD4wK.mjs +0 -2155
  130. package/build/chunks/PerspectiveCamera-iAsZqrnY.cjs +0 -1
  131. package/build/chunks/draco_decoder-Bh9flJPu.cjs +0 -1
  132. package/build/chunks/draco_decoder-CEzwqP9o.mjs +0 -38
  133. package/build/chunks/draco_decoder-DtHHc5d0.mjs +0 -4
  134. package/build/chunks/draco_decoder-DvYjcLz_.cjs +0 -35
  135. package/build/chunks/draco_wasm_wrapper-FoEVV9af.cjs +0 -118
  136. package/build/chunks/draco_wasm_wrapper-yQy2VLhb.mjs +0 -121
  137. package/build/chunks/fflate.module-DHdJvhNh.cjs +0 -6
  138. package/build/chunks/fflate.module-xyO_T3Zm.mjs +0 -602
  139. package/build/plugins/shader/src/material/DIVEShaderMaterial.d.ts +0 -5
  140. package/build/plugins/shader/src/shaders/DIVEShaderLib.d.ts +0 -2
  141. package/build/plugins/shader/src/shaders/grid/index.d.ts +0 -40
  142. package/build/plugins/toolbox/src/BaseTool.d.ts +0 -59
@@ -1,2155 +0,0 @@
1
- var YA = Object.defineProperty;
2
- var bA = (h, g, A) => g in h ? YA(h, g, { enumerable: !0, configurable: !0, writable: !0, value: A }) : h[g] = A;
3
- var e = (h, g, A) => bA(h, typeof g != "symbol" ? g + "" : g, A);
4
- import { DataTextureLoader as yA, HalfFloatType as Z, FloatType as R, DataUtils as x, LinearSRGBColorSpace as wA, LinearFilter as hA, PMREMGenerator as aA, Scene as uA, SphereGeometry as J, MeshBasicMaterial as iA, BackSide as OA, Mesh as M, NoToneMapping as MA, WebGLCubeRenderTarget as LA, CubeCamera as FA, EquirectangularReflectionMapping as XA, WebGLRenderer as jA, PCFSoftShadowMap as EA, PCFShadowMap as ZA, BasicShadowMap as QA, SRGBColorSpace as WA, LinearToneMapping as NA, MathUtils as eA, Object3D as L, AmbientLight as kA, PointLight as xA, FrontSide as GA, HemisphereLight as TA, DirectionalLight as JA, Vector3 as u, Box3 as y, Box3Helper as SA, Sphere as _A, MeshStandardMaterial as gA, Raycaster as VA, CylinderGeometry as RA, BufferGeometry as DA, BufferAttribute as rA, BoxGeometry as U, ConeGeometry as UA, LineDashedMaterial as $A, Line as Ai, PlaneGeometry as mA, Color as O, DoubleSide as ii, TOUCH as l, MOUSE as K, EventDispatcher as ei, Spherical as BA, Vector2 as G, Quaternion as cA } from "three";
5
- import { P as v, U as gi, H as ti, a as oi, D as PA } from "./PerspectiveCamera-BFzE2TQU.mjs";
6
- import { a as si, D as ni } from "./DIVEShaderMaterial-Bt0d8oJB.mjs";
7
- class fi {
8
- constructor() {
9
- e(this, "isDIVEClock", !0);
10
- e(this, "_lastTime", 0);
11
- e(this, "_isRunning", !1);
12
- e(this, "_tickers", []);
13
- }
14
- start() {
15
- this._isRunning || (this._isRunning = !0, this._lastTime = performance.now(), requestAnimationFrame(this._tick.bind(this)));
16
- }
17
- stop() {
18
- this._isRunning = !1;
19
- }
20
- addTicker(g) {
21
- this._tickers.find((A) => A.uuid === g.uuid) || this._tickers.push(g);
22
- }
23
- hasTicker(g) {
24
- return this._tickers.find((A) => A.uuid === g.uuid) !== void 0;
25
- }
26
- removeTicker(g) {
27
- const A = this._tickers.findIndex((i) => i.uuid === g.uuid);
28
- A !== -1 && this._tickers.splice(A, 1);
29
- }
30
- dispose() {
31
- this.stop(), this._tickers = [], this._isRunning = !1, this._lastTime = 0;
32
- }
33
- _tick(g) {
34
- if (!this._isRunning) return;
35
- const A = (g - this._lastTime) / 1e3;
36
- this._lastTime = g, this._tickers.forEach((i) => i.tick(A)), requestAnimationFrame(this._tick.bind(this));
37
- }
38
- }
39
- class hi extends yA {
40
- constructor(g) {
41
- super(g), this.type = Z;
42
- }
43
- // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html
44
- parse(g) {
45
- const s = function(n, r) {
46
- switch (n) {
47
- case 1:
48
- throw new Error("THREE.RGBELoader: Read Error: " + (r || ""));
49
- case 2:
50
- throw new Error("THREE.RGBELoader: Write Error: " + (r || ""));
51
- case 3:
52
- throw new Error("THREE.RGBELoader: Bad File Format: " + (r || ""));
53
- default:
54
- case 4:
55
- throw new Error("THREE.RGBELoader: Memory Error: " + (r || ""));
56
- }
57
- }, W = `
58
- `, d = function(n, r, c) {
59
- r = r || 1024;
60
- let I = n.pos, z = -1, f = 0, C = "", B = String.fromCharCode.apply(null, new Uint16Array(n.subarray(I, I + 128)));
61
- for (; 0 > (z = B.indexOf(W)) && f < r && I < n.byteLength; )
62
- C += B, f += B.length, I += 128, B += String.fromCharCode.apply(null, new Uint16Array(n.subarray(I, I + 128)));
63
- return -1 < z ? (n.pos += f + z + 1, C + B.slice(0, z)) : !1;
64
- }, F = function(n) {
65
- const r = /^#\?(\S+)/, c = /^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/, P = /^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/, I = /^\s*FORMAT=(\S+)\s*$/, z = /^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/, f = {
66
- valid: 0,
67
- /* indicate which fields are valid */
68
- string: "",
69
- /* the actual header string */
70
- comments: "",
71
- /* comments found in header */
72
- programtype: "RGBE",
73
- /* listed at beginning of file to identify it after "#?". defaults to "RGBE" */
74
- format: "",
75
- /* RGBE format, default 32-bit_rle_rgbe */
76
- gamma: 1,
77
- /* image has already been gamma corrected with given gamma. defaults to 1.0 (no correction) */
78
- exposure: 1,
79
- /* a value of 1.0 in an image corresponds to <exposure> watts/steradian/m^2. defaults to 1.0 */
80
- width: 0,
81
- height: 0
82
- /* image dimensions, width/height */
83
- };
84
- let C, B;
85
- for ((n.pos >= n.byteLength || !(C = d(n))) && s(1, "no header found"), (B = C.match(r)) || s(3, "bad initial token"), f.valid |= 1, f.programtype = B[1], f.string += C + `
86
- `; C = d(n), C !== !1; ) {
87
- if (f.string += C + `
88
- `, C.charAt(0) === "#") {
89
- f.comments += C + `
90
- `;
91
- continue;
92
- }
93
- if ((B = C.match(c)) && (f.gamma = parseFloat(B[1])), (B = C.match(P)) && (f.exposure = parseFloat(B[1])), (B = C.match(I)) && (f.valid |= 2, f.format = B[1]), (B = C.match(z)) && (f.valid |= 4, f.height = parseInt(B[1], 10), f.width = parseInt(B[2], 10)), f.valid & 2 && f.valid & 4) break;
94
- }
95
- return f.valid & 2 || s(3, "missing format specifier"), f.valid & 4 || s(3, "missing image size specifier"), f;
96
- }, q = function(n, r, c) {
97
- const P = r;
98
- if (
99
- // run length encoding is not allowed so read flat
100
- P < 8 || P > 32767 || // this file is not run length encoded
101
- n[0] !== 2 || n[1] !== 2 || n[2] & 128
102
- )
103
- return new Uint8Array(n);
104
- P !== (n[2] << 8 | n[3]) && s(3, "wrong scanline width");
105
- const I = new Uint8Array(4 * r * c);
106
- I.length || s(4, "unable to allocate buffer space");
107
- let z = 0, f = 0;
108
- const C = 4 * P, B = new Uint8Array(4), b = new Uint8Array(C);
109
- let nA = c;
110
- for (; nA > 0 && f < n.byteLength; ) {
111
- f + 4 > n.byteLength && s(1), B[0] = n[f++], B[1] = n[f++], B[2] = n[f++], B[3] = n[f++], (B[0] != 2 || B[1] != 2 || (B[2] << 8 | B[3]) != P) && s(3, "bad rgbe scanline format");
112
- let E = 0, D;
113
- for (; E < C && f < n.byteLength; ) {
114
- D = n[f++];
115
- const m = D > 128;
116
- if (m && (D -= 128), (D === 0 || E + D > C) && s(3, "bad scanline data"), m) {
117
- const p = n[f++];
118
- for (let fA = 0; fA < D; fA++)
119
- b[E++] = p;
120
- } else
121
- b.set(n.subarray(f, f + D), E), E += D, f += D;
122
- }
123
- const qA = P;
124
- for (let m = 0; m < qA; m++) {
125
- let p = 0;
126
- I[z] = b[m + p], p += P, I[z + 1] = b[m + p], p += P, I[z + 2] = b[m + p], p += P, I[z + 3] = b[m + p], z += 4;
127
- }
128
- nA--;
129
- }
130
- return I;
131
- }, N = function(n, r, c, P) {
132
- const I = n[r + 3], z = Math.pow(2, I - 128) / 255;
133
- c[P + 0] = n[r + 0] * z, c[P + 1] = n[r + 1] * z, c[P + 2] = n[r + 2] * z, c[P + 3] = 1;
134
- }, S = function(n, r, c, P) {
135
- const I = n[r + 3], z = Math.pow(2, I - 128) / 255;
136
- c[P + 0] = x.toHalfFloat(Math.min(n[r + 0] * z, 65504)), c[P + 1] = x.toHalfFloat(Math.min(n[r + 1] * z, 65504)), c[P + 2] = x.toHalfFloat(Math.min(n[r + 2] * z, 65504)), c[P + 3] = x.toHalfFloat(1);
137
- }, X = new Uint8Array(g);
138
- X.pos = 0;
139
- const j = F(X), oA = j.width, sA = j.height, k = q(X.subarray(X.pos), oA, sA);
140
- let _, V, Y;
141
- switch (this.type) {
142
- case R:
143
- Y = k.length / 4;
144
- const n = new Float32Array(Y * 4);
145
- for (let c = 0; c < Y; c++)
146
- N(k, c * 4, n, c * 4);
147
- _ = n, V = R;
148
- break;
149
- case Z:
150
- Y = k.length / 4;
151
- const r = new Uint16Array(Y * 4);
152
- for (let c = 0; c < Y; c++)
153
- S(k, c * 4, r, c * 4);
154
- _ = r, V = Z;
155
- break;
156
- default:
157
- throw new Error("THREE.RGBELoader: Unsupported type: " + this.type);
158
- }
159
- return {
160
- width: oA,
161
- height: sA,
162
- data: _,
163
- header: j.string,
164
- gamma: j.gamma,
165
- exposure: j.exposure,
166
- type: V
167
- };
168
- }
169
- setDataType(g) {
170
- return this.type = g, this;
171
- }
172
- load(g, A, i, t) {
173
- function o(s, a) {
174
- switch (s.type) {
175
- case R:
176
- case Z:
177
- s.colorSpace = wA, s.minFilter = hA, s.magFilter = hA, s.generateMipmaps = !1, s.flipY = !0;
178
- break;
179
- }
180
- A && A(s, a);
181
- }
182
- return super.load(g, o, i, t);
183
- }
184
- }
185
- const pA = "data:application/octet-stream;base64,Iz9SQURJQU5DRQojIE1hZGUgd2l0aCBBZG9iZSBQaG90b3Nob3AKRk9STUFUPTMyLWJpdF9ybGVfcmdiZQoKLVkgNTEyICtYIDEwMjQKAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/3P/c/9z/3P/c/9z/3P/ciNz/gf+B/4H/gf+B/4H/gf+BiIECAgQA/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/9z/3P/c/9z/3P/c/9z/3Ijc/4H/gf+B/4H/gf+B/4H/gYiBAgIEAP/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P/c/9z/3P/c/9z/3P/c/9yI3P+B/4H/gf+B/4H/gf+B/4GIgQICBAD/3P/c/9z/3P/c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0AfX/ZOnuMrZodwH0sKyoI7y0v/Q/9AI0NDQ75Ksx9vk3OCAs4H/gNCAtYH/gNOAq4H/gP+AhoDogQICBAAIzs/Oz8/Ozs6GzwvOz8/Oz8/Pzs/OzobPBs7Pzs/OzobPEM7Pzs7Pzs/Oz8/Ozs/Pz86EzwXOz8/PzobPhM4Iz87Pzs/Ozs6JzwzOzs/PztT7kqS0xNSc3BTazL2unYntz8/Oz8/Oz8/Pzs7PzoTPC87Pz87Pzs7Pzs/Ohs8BzoTPBc7Pz8/OhM8Dzs/Oh88BzojPAc6FzwTOz87OhM8Ezs/PzorPB87Pz8/Ozs6IzwXOz87PzoTPhM6EzwbOz87Pz86Ezw7Oz87Pz8/Oz87Pzs/OzofPAc6EzxHOz87Oz87Ozs/Pz87Pz87PzoXPB87Ozs/Pzs6NzwfOzs/Oz8/PhM4Uz8/U6YGMlpyjqrG3vsXMzNHU1NmG3BLZ1NTQzMrEvLWtpZ6WjoTz2c6FzwHOhM8Fzs/Pz86FzyTOzs/Oz8/Oz87Ozs/Oz8/Pzs/Pzs/Oz8/Pzs/Pzs/Pz87Pzs6IzwXOzs/OzobPCM7Pz8/Ozs/Ohc8Ezs/PzpTPBM7Pz86EzwbOz87Pzs+EzoXPCc7Pz87Pz8/OzoTPHM7Pz8/Ozs/Oz8/Ozs/Pzs/Pzs/Pz87Oz8/Ozs6EzwXOzs7PzoTPhM4Dz8/Ohc8BzoXPG87Pz87Pz8/Oz8/PztDmgo6Yoaqzu8XMztTU24XcDtTUz8zFvrSropmRhvLXhM8Gzs7Pzs/OiM8BzoTPC87Oz8/Pzs7Pzs7Oh88Jzs7Pz87Pzs/Ohs8Nzs/Pzs/Pzs7Oz8/PzoXPEs7Pzs/Pzs/Pzs7Oz8/Ozs/OzobPB87Ozs/Pz86EzwTOz87PhM4az87Pzs/Oz8/Ozs/Pz87Pzs/Oz8/Oz87Pz86GzxDOz8/Oz87Oz87Oz87Pzs/OhM8Gzs/Oz8/OhM8Lzs/Pz87Pz87Pzs6EzybOz8/Ozs7Pz8/Ozs/Ozs7Pz87Pz87Ozs/Pzs/Oz87Oz87Pzs7PzoTPAc6Ez4XOhc8BzoTPAc6FzwvOz8/Oz8/ahqG71eDcAc+HzgXPzs/PzoTPFM7Oz87Oz8/Oz8/Pzs/Ozs7Pz8/Ohs8Hzs7Pz8/OzobPBM7Pz86EzxHOz87Pz87Pzs7Pz87Pz87PzoXPBc7Pzs7PhM4Mz8/Pzs/U+5KktMTUnNwQ2sy9rp2J7c/Ozs/Oz8/PzoXPB87Pz8/Ozs6Fzx7Oz87Oz87Pzs7Oz87Pz87Pzs/Pz87Pz8/Ozs/Ozs6GzxDOzs/Pz87Oz87Pzs/Pzs/OhM8BzoTPC87Pzs/Oz8/Oz87Ohs+FzgPPzs+FzgnPz87Pz8/Ozs+EzhfPzs/Oz87Pzs/Pzs/Ozs/Oz87Ozs/PzoTPDs7Pzs7Pzs7Oz87Pz8/OhM8Mzs/Oz8/Pzs7Oz8/OhM8Gzs7Pz87PhM4Ez8/PzofPGM7Pz87Pz9TpgYyWnKOqsbe+xczM0dTU2YbcF9nU1NDMysS8ta2lnpaOhPPZzs/Ozs7Phc4Sz8/Ozs/Oz87Ozs/Oz8/Pzs7Phs4Mz87Pzs/Pz87Pzs7Phc4Lz87Pzs7Oz8/Oz8+FzoLPh84Kz8/Pzs/Oz87OzoXPHs7Pz87Pzs/Ozs7Pz87Pzs/Ozs7Pzs/Pz87Ozs/PzoTPgs6EzxrOz8/Pzs7Oz87Ozs/Pzs/Pz87Oz87Oz8/OzoTPEc7Oz87Ozs/Pz87Pz8/Oz87PhM6Ezw3Ozs/Ozs/Pzs7Pz87Phc4ez87Oz87Oz8/Oz87Oz87P0OaCjpihqrO7xczO1NTbhdwb1NTPzMW+tKuimZGG8tfPzs7Pz8/Ozs/Ozs/PhM41z8/Oz87Pzs7Pzs/Pzs/Pzs/Pzs/Oz87Pz87Pz87Pz87Pzs/Pzs/Oz8/Ozs/Ozs7Pzs/Pzs+EzoLPhc6Cz4XOBs/Pzs7Pz4TOCM/Ozs/Ozs/Ohc+EzoPPhM4Hz8/Oz87OzoXPBc7Ozs/PhM4dz87Pz8/Oz8/Pzs/Oz87Ozs/Oz87Ozs/Oz87Pzs+FzgfPzs/Oz8/OhM8hzs7Pzs7Oz8/Oz87Oz87Oz87Ozs/Ozs/Ozs/Ozs7Pz87OiM+CzobPB87Pzs/Pz86EzxnOz87Ozs/Pz87Ozs/Pzs/Ozs/Oz9qGobvV4NwEz8/PzojPA87PzofPAc6IzwHOhc8Ezs/OzoTPBM7Pz86KzwHOhM+CzojPBc7Pzs/Ohc+DzoTPEM7Pzs/Pzs/Pz9T7kqS0xNSc3AnazL2unYntz86GzwbOzs/Pzs6Nz4LOhc+EzgrPz87Pzs7Pz87Ohc8Rzs/Pz87Oz87Pz87Pz8/Oz86EzwHOhM+DzoXPAc6EzwXOz8/PzoXPFs7Oz87Pz87Pzs7Oz87Pz8/Oz8/Oz86GzwjOz8/Pzs/PzonPBM7Pzs6GzwHOhs8BzoXPBM7Pz86SzwHOk88Yzs/Pz87P1OmBjJaco6qxt77FzMzR1NTZhtwc2dTU0MzKxLy1raWelo6E89nOz8/Oz87Pz87PzoXPgs6GzxPOz8/Pzs/Pz87Pz8/Ozs/Ozs/OhM8Hzs7Pz87PzofPhM4Hz8/Oz8/PzojPCc7Oz8/Oz87PzoXPBc7Pz8/OhM+CzoTPgs6FzwbOz87Pzs6FzwXOz87PzofPgs6Hz4POhc8Gzs7Pz87OhM8Rzs/Oz87Pzs/Oz87Oz87Pz86EzxXOz87Pz8/Oz8/Pzs/Oz8/Oz8/Pzs6Mzw/Q5oKOmKGqs7vFzM7U1NuF3BPU1M/Mxb60q6KZkYby18/Pz87OlM8Wzs7Pz87Oz8/Pzs7Pzs/Pzs/Oz8/PzoXPAc6Fzw3Oz8/Ozs7Pzs/Oz8/Ojc8Dzs/Oh8+CzoXPAc6FzwHOh88Izs/Pzs7Pz86EzwTOz87Oh88BzoTPB87Pzs/Pz86EzwHOjs8Bzo/PAc6EzwHOjs8Ezs/OzoTPA87Pz4TOBs/Oz87PzoXPB87Ozs/Pz86IzwLOz4XOCc/Oz8/Ozs7PzoXPBs7ahqG71eDc5oCngf+A3oClgf+A4YCegf+A/4CRgOSBAgIEAOvNHd7/i5ehq7fByc3U1tzc3NbU0MzKwrmvpZuRhevR/83/zf/N/83/zf/Nnc0Fz/aVsMvc3OvNHd7/i5ehq7fByc3U1tzc3NbU0MzKwrmvpZuRhevR/83/zf/N/83/zf/Nnc0Fz/aVsMvc3OvNHd7/i5ehq7fByc3U1tzc3NbU0MzKwrmvpZuRhevR/83/zf/N/83/zf/Nnc0Fz/aVsMvc3O2AmYH/gP+A/4D/gP+A/4ChgN+BAgIEAP/M/8z/zP/M/8z/zP/Mq8wF34miu9TX3P/M/8z/zP/M/8z/zP/Mq8wF34miu9TX3P/M/8z/zP/M/8z/zP/Mq8wF34miu9TX3P+A/4D/gP+A/4D/gP+ArIDbgQICBAD/y//L/8v/y//L/8v/y7DLBe2QqcHY0tz/y//L/8v/y//L/8v/y7DLBe2QqcHY0tz/y//L/8v/y//L/8v/y7DLBe2QqcHY0tz/gP+A/4D/gP+A/4D/gLGA1oECAgQA/8n/yf/J/8n/yf/J/8m0yQbO+ZOpv9XN3P/J/8n/yf/J/8n/yf/JtMkGzvmTqb/Vzdz/yf/J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AgQA/5n/mf+Z/5mlmQKRxIe+AoCG/4qpigL2pYe+Afa7mQHwhb4Bsf+KtYoBxYW+Acelmf+Z/5n/mf+ZpZkCkcSHvgKAhv+KqYoC9qWHvgH2u5kB8IW+AbH/irWKAcWFvgHHpZn/mf+Z/5n/maWZApHEh74CgIb/iqmKAvalh74B9ruZAfCFvgGx/4q1igHFhb4Bx6WZ/4D/gP+A/4CmgIh/AYH/gqqCAoGAiH+7gIZ/AYH/grWCAYGGf6WAAgIEAP+Y/5j/mP+YpZgB0oa8AsCp/4qsigKCyoe8Af26mAHdhbwB0v+KtYoCh/2FvAGJpJj/mP+Y/5j/mKWYAdKGvALAqf+KrIoCgsqHvAH9upgB3YW8AdL/irWKAof9hbwBiaSY/5j/mP+Y/5ilmAHShrwCwKn/iqyKAoLKh7wB/bqYAd2FvAHS/4q1igKH/YW8AYmkmP+A/4D/gP+ApYCIfwGB/4KtggGAiH+6gIZ/AYH/graChn+lgAICBAD/l/+X/5f/l6SXAeKGuwLGvP+KrooChtGHuwGCuZcB0YW7Aej/iraKAYmFuwHtpJf/l/+X/5f/l6SXAeKGuwLGvP+KrooChtGHuwGCuZcB0YW7Aej/iraKAYmFuwHtpJf/l/+X/5f/l6SXAeKGuwLGvP+KrooChtGHuwGCuZcB0YW7Aej/iraKAYmFuwHtpJf/gP+A/4D/gKSAiH8Bgf+Cr4IBgId/uoCGfwGB/4K2ggGBhn+kgAICBAD/lf+V/5X/laOVAfeGuQLExf+KsIoChcWGuQK/jriVAcSFuQH9/4q2igHOhbkB0aSV/5X/lf+V/5WjlQH3hrkCxMX/irCKAoXFhrkCv464lQHEhbkB/f+KtooBzoW5AdGklf+V/5X/lf+Vo5UB94a5AsTF/4qwigKFxYa5Ar+OuJUBxIW5Af3/iraKAc6FuQHRpJX/gP+A/4D/gKOAiH8Bgf+CsYIBgId/uYCGfwGB/4K2ggGBhn+kgAICBAD/lP+U/5T/lKKUAYCHuAG2/4qyigKDrYa4AeK4lAG7hbgBhv+KtooChtWFuAGSo5T/lP+U/5T/lKKUAYCHuAG2/4qyigKDrYa4AeK4lAG7hbgBhv+KtooChtWFuAGSo5T/lP+U/5T/lKKUAYCHuAG2/4qyigKDrYa4AeK4lAG7hbgBhv+KtooChtWFuAGSo5T/gP+A/4D/gKOAh38Bgf+Cs4IBgId/uICGf/+CuIKGf6SAAgIEAP+T/5P/k/+ToZMCjL2GtgGa/4q0igL7hoa2Afy3k4a2/4q4igHLhbYBhaOT/5P/k/+T/5OhkwKMvYa2AZr/irSKAvuGhrYB/LeThrb/iriKAcuFtgGFo5P/k/+T/5P/k6GTAoy9hrYBmv+KtIoC+4aGtgH8t5OGtv+KuIoBy4W2AYWjk/+A/4D/gP+AooCHfwGB/4K0ggKBgId/t4CGf/+CuIIBgIV/pIACAgQA/5L/kv+S/5KhkgHphrUB6v+KtooC3cOFtQK4ibWSAZCFtQHL/4q4igGchbUB7qOS/5L/kv+S/5KhkgHphrUB6v+KtooC3cOFtQK4ibWSAZCFtQHL/4q4igGchbUB7qOS/5L/kv+S/5KhkgHphrUB6v+KtooC3cOFtQK4ibWSAZCFtQHL/4q4igGchbUB7qOS/4D/gP+A/4ChgId/AYD/graCAYGHf7eAhn//griCAYGGf6OAAgIEAP+R/5H/kf+RoJEBhYazAoyB/4q3igGjhrMB3rWRAY2FswHq/4q4igHOhbMB1aOR/5H/kf+R/5GgkQGFhrMCjIH/ireKAaOGswHetZEBjYWzAer/iriKAc6FswHVo5H/kf+R/5H/kaCRAYWGswKMgf+Kt4oBo4azAd61kQGNhbMB6v+KuIoBzoWzAdWjkf+A/4D/gP+AoYCGfwGA/4K4ggGBh3+2gIZ//4K4ggGBhn+jgAICBAD/kP+Q/5D/kKCQAdeFsgK22/+KuIoCiLuGsgGCtJABj4ay/4q4igH3hbIBwKOQ/5D/kP+Q/5CgkAHXhbICttv/iriKAoi7hrIBgrSQAY+Gsv+KuIoB94WyAcCjkP+Q/5D/kP+QoJAB14WyArbb/4q4igKIu4ayAYK0kAGPhrL/iriKAfeFsgHAo5D/gP+A/4D/gKCAh38Bgf+CuYIBgIZ/toCGf/+CuIIBgYZ/o4ACAgQA/47/jv+O/46fjgGBhrEBhP+KuooC79GFsQHMtY6Gsf+KuYoB4IWxAYuijv+O/47/jv+On44BgYaxAYT/irqKAu/RhbEBzLWOhrH/irmKAeCFsQGLoo7/jv+O/47/jp+OAYGGsQGE/4q6igLv0YWxAcy1joax/4q5igHghbEBi6KO/4D/gP+A/4CggIZ/AYH/grqCAYGHf7WAhn//grmChn+jgAICBAD/jf+N/43/jZ+NAdaFrwLqgf+Ku4oBoIavAfy0jQG0ha8Bhf+KuIoBqoWvAYSijf+N/43/jf+Nn40B1oWvAuqB/4q7igGghq8B/LSNAbSFrwGF/4q4igGqha8BhKKN/43/jf+N/42fjQHWha8C6oH/iruKAaCGrwH8tI0BtIWvAYX/iriKAaqFrwGEoo3/gP+A/4D/gJ+Ah3//gryCAYGHf7SAhn//grmCAYCFf6OAAgIEAP+M/4z/jP+MnowBgIauAav/iryKAoaIha4BybSMAbqFrgH4/4q4igHgha4B+aKM/4z/jP+M/4yejAGAhq4Bq/+KvIoChoiFrgHJtIwBuoWuAfj/iriKAeCFrgH5ooz/jP+M/4z/jJ6MAYCGrgGr/4q8igKGiIWuAcm0jAG6ha4B+P+KuIoB4IWuAfmijP+A/4D/gP+An4CGfwGB/4K9ggGAhn+0gIZ/AYH/griCAYCGf6KAAgIEAP+L/4v/i/+LnosB24WsAvaF/4q9igG+hqwB+bOLAcCFrAHo/4q4igGIhawB66KL/4v/i/+L/4ueiwHbhawC9oX/ir2KAb6GrAH5s4sBwIWsAej/iriKAYiFrAHroov/i/+L/4v/i56LAduFrAL2hf+KvYoBvoasAfmziwHAhawB6P+KuIoBiIWsAeyii/+A/4D/gP+AnoCHf/+CvoIBgYd/s4CGfwGB/4K4ggGBhn+igAICBAD/iv+K/4r/ip6KAbqFqwGk/4q/igGihasBzbOKAceFqwHU/4q4igGbhasB4aKK/4r/iv+K/4qeigG6hasBpP+Kv4oBooWrAc2zigHHhasB1P+KuIoBm4WrAeGiiv+K/4r/iv+KnooBuoWrAaT/ir+KAaKFqwHNs4oBx4WrAdT/iriKAZuFqwHhoor/gP+A/4D/gJ6Ahn8Bgf+Cv4IBgIZ/s4CGfwGB/4K4ggGBhn+igAICBAD/if+J/4n/iZ2JCPWpqqqqqcOC/4q/igi+qqqpqqqq+7KJB9Gqqampqrv/iriKB6yqqaqpqdiiif+J/4n/if+JnYkI9aqpqaqqw4L/ir+KCL6qqqqpqan7sokH0amqqamqu/+KuIoHrKmqqqmp2KKJ/4n/if+J/4mdiQj1qqmqqqnDgv+Kv4oIvqqpqqqqqfuyiQfRqqmpqqm7/4q4igesqqmpqqrYoon/gP+A/4D/gJ2Ah3//gsCCAYGHf7KAhn8Bgf+CuIIBgYZ/ooACAgQA/4j/iP+I/4idiAHShagB7/+KwIoCiIuFqAHWsogB2oWoAaL/iriKAbSFqAHSooj/iP+I/4j/iJ2IAdKFqAHv/4rAigKIi4WoAdayiAHahagBov+KuIoBtIWoAdKiiP+I/4j/iP+InYgB0oWoAe//isCKAoiLhagB1rKIAduFqAGi/4q4igG0hagB0qKI/4D/gP+A/4CdgIZ/AYD/gsGCAYCGf7KAhn8Bgf+CuIIBgYZ/ooACAgQA/4b/hv+G/4adhgGzhacBz/+KwYoBrIWnAbWyhgHmhacBhP+KuIoBwoWnAcuihv+G/4b/hv+GnYYBs4WnAc//isGKAayFpwG1soYB5oWnAYT/iriKAcKFpwHLoob/hv+G/4b/hp2GAbOFpwHP/4rBigGshacBtbKGAeaFpwGE/4q4igHChacBy6KG/4D/gP+A/4CdgIZ/AYH/gsGCAYGGf7KAhn8Bgf+CuIIBgYZ/ooACAgQA/4X/hf+F/4WchQH6haUC6Ij/isGKAoG8haUB77GFAfKFpQHD/4q4igHChaUByaKF/4X/hf+F/4WchQH6haUC6Ij/isGKAoG8haUB77GFAfKFpQHD/4q4igHChaUByaKF/4X/hf+F/4WchQH6haUC6Ij/isGKAoG8haUB77GFAfKFpQHD/4q4igHChaUByaKF/4D/gP+A/4CcgId//4LDgod/sYCGfwGA/4K4ggGBhn+igAICBAD/hP+E/4T/hJyEAeGFpAH4/4rDigHthaQBzLGEAf6FpAGE/4q4igHBhaQBx6KE/4T/hP+E/4SchAHhhaQB+P+Kw4oB7YWkAcyxhAH+haQBhP+KuIoBwYWkAceihP+E/4T/hP+EnIQB4YWkAfj/isOKAe2FpAHMsYQB/oWkAYT/iriKAcGFpAHHooT/gP+A/4D/gJyAhn8BgP+Cw4IBgIZ/sYCGfwGA/4K4ggGBhn+igAICBAC+gwWArreExrgABcalt6+AkIMFiuymydj/3NPcBdXEpuqKj4MFgK63hMa4AAXGpbevgNuDAceFowG8/4rDigHPhaMBrbKDAaiFowGD/4q3igG+haMBx6KDvoMFgK63hMa4AAXGpbevgJCDBYrspsnY/9zT3AXVxKbqio+D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zADW1wGOhYUB+v+Kx4oB/YWFAY2z1wHNhYUB0f+Kr4oB9IWFAc2l17nXzACG1//c59yF18wA1tcBjoWFAfr/iseKAf2FhQGNs9cBzYWFAdH/iq+KAfSFhQHNpde5f8wAhn//geeBhX/MANx/AYH/gseCAYHAf/+Cr4KsfwICBAC51cwAhtX/3OfchdXMANbVAZyFhAHN/4rHigGDhYQBiLTVAZCFhAHs/4qtigH6hYQBjabVudXMAIbV/9zn3IXVzADW1QGchYQBzf+Kx4oBg4WEAYi01QGQhYQB7P+KrYoB+oWEAY2m1bnVzACG1f/c59yF1cwA1tUBnIWEAc3/iseKAYOFhAGItNUBkIWEAez/iq2KAfqFhAGNptW5f8wAhn//geeBhX/MANx/AYH/gsiCwH8Bgf+CrYIBgax/AgIEALnUzACG1P/c59yF1MwA1tQBqoWDAZ7/iseKhoMBh7TUAaOFgwGw/4qtigHDhYMBnabUudTMAIbU/9zn3IXUzADW1AGqhYMBnv+Kx4qGgwGHtNQBo4WDAbD/iq2KAcOFgwGdptS51MwAhtT/3OfchdTMANbUAaqFgwGe/4rHioaDAYe01AGjhYMBsP+KrYoBw4WDAZ2m1Ll/zACGf/+B54GFf8wA3H8Bgf+CyILAfwGB/4KtggGBrH8CAgQAudLMAIbS/9zn3IXSzADW0gG4hYIB3P+Kx4oBh4WCAYS00gG1hYIB6v+KrYoBiIWCAa+m0rnSzACG0v/c59yF0swA1tIBuIWCAdz/iseKAYeFggGEtNIBtYWCAer/iq2KAYiFggGvptK50swAhtL/3OfchdLMANbSAbiFggHc/4rHigGHhYIBhLTSAbWFggHq/4qtigGIhYIBr6bSuX/MAIZ//4HngYV/zADcfwGA/4LIgsB/AYD/gq2CAYGsfwICBAC50MwAhtD/3OfchdDMANbQAciFgQHl/4rIioaBtNABxoWBAeX/iq2KAZeFgQHBptC50MwAhtD/3OfchdDMANbQAciFgQHl/4rIioaBtNABxoWBAeX/iq2KAZeFgQHBptC50MwAhtD/3OfchdDMANbQAciFgQHl/4rIioaBtNABxoWBAeX/iq2KAZeFgQHBptC5f8wAhn//geeBhX/MAN1//4LIgsF//4KtggGArH8CAgQAuc/MAIbP/9zn3IXPzADXzwGI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hcAB0debAobGicACjcPpigOFqtuJwAHuwpu5m8wAhpv/3OfchZvMAOObAcqFwAHt/4qyigGrhcAB0debAobGicACjcPpigOFqtuJwAHuwpu5m8wAhpv/3OfchZvMAOObAcqFwAHt/4qyigGrhcAB0debAobGicACjcPpigOFqtuJwAHuwpu5f8wAhn//geeBhX/MAON/hn4Bgf+CsoIBgYZ+2H+KfgKAgeqCAoF/in7CfwICBAC5m8wAhpv/3OfchZvMAOObAemFwAGj/4qyigGThcAB9NibApPuisADh62E5IoD95azisABgMObuZvMAIab/9zn3IWbzADjmwHphcABo/+KsooBk4XAAfTYmwKT7orAA4ethOSKA/eWs4rAAYDDm7mbzACGm//c59yFm8wA45sB6YXAAaP/irKKAZOFwAH02JsCk+6KwAOHrYTkigP3lrOKwAGAw5u5f8wAhn//geeBhX/MAON/hn4Bgf+CsoIBgIZ+2X+LfgKAgeWCA4GBf4p+xH8CAgQAuZvMAIab/9zn3IWbzADjmwGFhcABsf+KsYoB3obAAY3amwKEworAA5eB4d+KBIW9v9CKwALHhsSbuZvMAIab/9zn3IWbzADjmwGFhcABsf+KsYoB3obAAY3amwKEworAA5eB4d+KBIW9v9CKwALHhsSbuZvMAIab/9zn3IWbzADjmwGFhcABsf+KsYoB3obAAY3amwKEworAA5eB4d+KBIW9v9CKwALHhsSbuX/MAIZ//4HngYV/zADkf4V+AYD/grGCAYGGftx/i34Df4GB4IICgYCMfsV/AgIEALmazACGmv/c59yFmswA45oBkoXAAueD/4qwigHqhcAB4NyaApHsjMAD447i2YoE9rHOh4zAAveTxZq5mswAhpr/3OfchZrMAOOaAZKFwALng/+KsIoB6oXAAeDcmgKR7IzAA+OO4tmKBPaxzoeMwAL3k8WauZrMAIaa/9zn3IWazADjmgGShcAC54P/irCKAeqFwAHg3JoCkeyMwAPjjuLZigT2sc6HjMAC95PFmrl/zACGf/+B54GFf8wA5H+Gfv+CsYIBgIZ+3X+NfgN/gYHZggSBgYB/jX7GfwICBAC5mswAhpr/3OfchZrMAOSaAdmFvwG9/4qvigL874W/AYjemgKL2I6/A+S3/NGKBO64/PKOvwLljseauZrM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xf/c59yFxcwA/8X/xf/F/8XCxbl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC5x8wAhsf/3OfchcfMAP/H/8f/x//Hwse5x8wAhsf/3OfchcfMAP/H/8f/x//Hwse5x8wAhsf/3OfchcfMAP/H/8f/x//Hwse5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAucjMAIbI/9zn3IXIzAD/yP/I/8j/yMLIucjMAIbI/9zn3IXIzAD/yP/I/8j/yMLIucjMAIbI/9zn3IXIzAD/yP/I/8j/yMLIuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnKzACGyv/c59yFyswA/8r/yv/K/8rCyrnKzACGyv/c59yFyswA/8r/yv/K/8rCyrnKzACGyv/c59yFyswA/8r/yv/K/8rCyrl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC5y8wAhsv/3OfchcvMAP/L/8v/y//Lwsu5y8wAhsv/3OfchcvMAP/L/8v/y//Lwsu5y8wAhsv/3OfchcvMAP/L/8v/y//Lwsu5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAuc3MAIbN/9zn3IXNzAD/zf/N/83/zcLNuc3MAIbN/9zn3IXNzAD/zf/N/83/zcLNuc3MAIbN/9zn3IXNzAD/zf/N/83/zcLNuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnPzACGz//c59yFz8wA/8//z//P/8/Cz7nPzACGz//c59yFz8wA/8//z//P/8/Cz7nPzACGz//c59yFz8wA/8//z//P/8/Cz7l/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC50MwAhtD/3OfchdDMAP/Q/9D/0P/QwtC50MwAhtD/3OfchdDMAP/Q/9D/0P/QwtC50MwAhtD/3OfchdDMAP/Q/9D/0P/QwtC5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAudLMAIbS/9zn3IXSzAD/0v/S/9L/0sLSudLMAIbS/9zn3IXSzAD/0v/S/9L/0sLSudLMAIbS/9zn3IXSzAD/0v/S/9L/0sLSuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnUzACG1P/c59yF1MwA/9T/1P/U/9TC1LnUzACG1P/c59yF1MwA/9T/1P/U/9TC1LnUzACG1P/c59yF1MwA/9T/1P/U/9TC1Ll/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC51cwAhtX/3OfchdXMAP/V/9X/1f/VwtW51cwAhtX/3OfchdXMAP/V/9X/1f/VwtW51cwAhtX/3OfchdXMAP/V/9X/1f/VwtW5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAudfMAIbX/9zn3IXXzAD/1//X/9f/18LXudfMAIbX/9zn3IXXzAD/1//X/9f/18LXudfMAIbX/9zn3IXXzAD/1//X/9f/18LXuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnZzACG2f/c59yF2cwA/9n/2f/Z/9nC2bnZzACG2f/c59yF2cwA/9n/2f/Z/9nC2bnZzACG2f/c59yF2cwA/9n/2f/Z/9nC2bl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC528wAhtv/3OfchdvMAP/b/9v/2//bwtu528wAhtv/3OfchdvMAP/b/9v/2//bwtu528wAhtv/3OfchdvMAP/b/9v/2//bwtu5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAud3MAIbd/9zn3IXdzAD/3f/d/93/3cLdud3MAIbd/9zn3IXdzAD/3f/d/93/3cLdud3MAIbd/9zn3IXdzAD/3f/d/93/3cLduX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnezACG3v/c59yF3swA/97/3v/e/97C3rnezACG3v/c59yF3swA/97/3v/e/97C3rnezACG3v/c59yF3swA/97/3v/e/97C3rl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC54MwAhuD/3OfcheDMAP/g/+D/4P/gwuC54MwAhuD/3OfcheDMAP/g/+D/4P/gwuC54MwAhuD/3OfcheDMAP/g/+D/4P/gwuC5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAueLMAIbi/9zn3IXizAD/4v/i/+L/4sLiueLMAIbi/9zn3IXizAD/4v/i/+L/4sLiueLMAIbi/9zn3IXizAD/4v/i/+L/4sLiuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnkzACG5P/c59yF5MwA/+T/5P/k/+TC5LnkzACG5P/c59yF5MwA/+T/5P/k/+TC5LnkzACG5P/c59yF5MwA/+T/5P/k/+TC5Ll/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC55swAhub/3OfchebMAP/m/+b/5v/mwua55swAhub/3OfchebMAP/m/+b/5v/mwua55swAhub/3OfchebMAP/m/+b/5v/mwua5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAuejMAIbo/9zn3IXozAD/6P/o/+j/6MLouejMAIbo/9zn3IXozAD/6P/o/+j/6MLouejMAIbo/9zn3IXozAD/6P/o/+j/6MLouX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnqzACG6v/c59yF6swA/+r/6v/q/+rC6rnqzACG6v/c59yF6swA/+r/6v/q/+rC6rnqzACG6v/c59yF6swA/+r/6v/q/+rC6rl/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC57MwAhuz/3OfchezMAP/s/+z/7P/swuy57MwAhuz/3OfchezMAP/s/+z/7P/swuy57MwAhuz/3OfchezMAP/s/+z/7P/swuy5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAue7MAIbu/9zn3IXuzAD/7v/u/+7/7sLuue7MAIbu/9zn3IXuzAD/7v/u/+7/7sLuue7MAIbu/9zn3IXuzAD/7v/u/+7/7sLuuX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALnwzACG8P/c59yF8MwA//D/8P/w//DC8LnwzACG8P/c59yF8MwA//D/8P/w//DC8LnwzACG8P/c59yF8MwA//D/8P/w//DC8Ll/zACGf/+B54GFf8wA/3//f/9//3/CfwICBAC58swAhvL/3OfchfLMAP/y//L/8v/ywvK58swAhvL/3OfchfLMAP/y//L/8v/ywvK58swAhvL/3OfchfLMAP/y//L/8v/ywvK5f8wAhn//geeBhX/MAP9//3//f/9/wn8CAgQAufTMAIb0/9zn3IX0zAD/9P/0//T/9ML0ufTMAIb0/9zn3IX0zAD/9P/0//T/9ML0ufTMAIb0/9zn3IX0zAD/9P/0//T/9ML0uX/MAIZ//4HngYV/zAD/f/9//3//f8J/AgIEALn2zACG9v/c59yF9swA//b/9v/2//bC9rn2zACG9v/c59yF9swA//b/9v/2//bC9rn2zACG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p8en/6f/p/+n/6f/p5ynAaKJAAG+/5qOmgGGiQABrf+nx6f/gP+A/4D/gP+AnIABf4kAAYH/go6CAYGJAAF//4DHgAICBAD/qP+o/6j/qP+om6gCmL6IAALyl/+ajpoCioiIAALTmP+oxqj/qP+o/6j/qP+om6gCmL6IAALyl/+ajpoCioiIAALTmP+oxqj/qP+o/6j/qP+om6gCmL6IAALyl/+ajpoCioiIAALTmP+oxqj/gP+A/4D/gP+AnIABe4gAAX7/gpCCAX2IAAF7/4DHgAICBAD/qv+q/6r/qv+qm6oBqIkAAaf/mpCaAf+JAAGh/6rGqv+q/6r/qv+q/6qbqgGoiQABp/+akJoB/4kAAaH/qsaq/6r/qv+q/6r/qpuqAaiJAAGn/5qQmgH/iQABof+qxqr/gP+A/4D/gP+Am4ABf4kAAYH/gpCCAYCJAAF//4DGgAICBAD/q/+r/6v/q/+rmqsCmqyIAAKbkf+akJoCh+mIAAKBlf+rxav/q/+r/6v/q/+rmqsCmqyIAAKbkf+akJoCh+mIAAKBlf+rxav/q/+r/6v/q/+rmqsCmqyIAAKbkf+akJoCh+mIAAKBlf+rxav/gP+A/4D/gP+Am4ABe4gAAX7/gpKCAXyIAAF6/4DGgAICBAD/rP+s/6z/rP+smqwBp4kAAYz/mpKaAYOJAAGD/6zFrP+s/6z/rP+s/6yarAGniQABjP+akpoBg4kAAYP/rMWs/6z/rP+s/6z/rJqsAaeJAAGM/5qSmgGDiQABg/+sxaz/gP+A/4D/gP+AmoABf4kAAYH/gpKCAYGJAAF//4DFgAICBAD/rv+u/67/rv+uma4CnJiIAAKujP+akpoCi8KJAAGL/67Erv+u/67/rv+u/66ZrgKcmIgAAq6M/5qSmgKLwokAAYv/rsSu/67/rv+u/67/rpmuApyYiAACroz/mpKaAovCiQABi/+uxK7/gP+A/4D/gP+AmoABe4gAAX3/gpSCAX2JAP+AxYACAgQA/6//r/+v/6//r5mvAaeJAAGK/5qUmgGQiQABu/+vxK//r/+v/6//r/+vma8Bp4kAAYr/mpSaAZCJAAG7/6/Er/+v/6//r/+v/6+ZrwGniQABiv+alJoBkIkAAbv/r8Sv/4D/gP+A/4D/gJmAAX+JAAGB/4KUggGBiQABfv+AxIACAgQA/7D/sP+w/7D/sJiwAp2FiAACwoz/mpSaAo+uiQAB+v+ww7D/sP+w/7D/sP+wmLACnYWIAALCjP+alJoCj66JAAH6/7DDsP+w/7D/sP+w/7CYsAKdhYgAAsKM/5qUmgKProkAAfr/sMOw/4D/gP+A/4D/gJmAAXuIAAF9/4KWggF+iQABf/+Aw4ACAgQA/7H/sf+x/7H/sZixAaSJAAGM/5qWmgGtiQACp6b/scKx/7H/sf+x/7H/sZixAaSJAAGM/5qWmgGtiQACp6b/scKx/7H/sf+x/7H/sZixAaSJAAGM/5qWmgGtiQACp6b/scKx/4D/gP+A/4D/gJiAAX+JAAGB/4KWggGBiQABff+Aw4ACAgQA/7P/s/+z/7P/s5ezAZyJAALVjf+alpoCl66JAAHU/7PCs/+z/7P/s/+z/7OXswGciQAC1Y3/mpaaApeuiQAB1P+zwrP/s/+z/7P/s/+zl7MBnIkAAtWN/5qWmgKXrokAAdT/s8Kz/4D/gP+A/4D/gJiAiQABff+CmIIBf4kAAX//gMKAAgIEAP+0/7T/tP+0/7SXtAGQiQABj/+amJoB0IkAArWk/7TBtP+0/7T/tP+0/7SXtAGQiQABj/+amJoB0IkAArWk/7TBtP+0/7T/tP+0/7SXtAGQiQABj/+amJoB0IkAArWk/7TBtP+A/4D/gP+A/4CXgAF/iQABgf+CmIIBgYkAAXz/gMKAAgIEAP+1/7X/tf+1/7WWtQGXiQAC6Y7/mpmaAY+JAAGu/7XBtf+1/7X/tf+1/7WWtQGXiQAC6Y7/mpmaAY+JAAGu/7XBtf+1/7X/tf+1/7WWtQGXiQAC6Y7/mpmaAY+JAAGu/7XBtf+A/4D/gP+A/4CXgIkAAX3/gpqCAYCJAAF//4DBgAICBAD/t/+3/7f/t/+3lrcB8YkAAZT/mpqaAvSbiQABnf+3wLf/t/+3/7f/t/+3lrcB8YkAAZT/mpqaAvSbiQABnf+3wLf/t/+3/7f/t/+3lrcB8YkAAZT/mpqaAvSbiQABnf+3wLf/gP+A/4D/gP+AloABfokAAYH/gpqCAoF6iQD/gMGAAgIEAP+4/7j/uP+4/7iVuAGQiQACrpH/mpuaAdiJAAH2/7jAuP+4/7j/uP+4/7iVuAGQiQACrpH/mpuaAdiJAAH2/7jAuP+4/7j/uP+4/7iVuAGQiQACrpH/mpuaAdiJAAH2/7jAuP+A/4D/gP+A/4CWgIkAAX7/gpyCAYCJAAF+/4DAgAICBAD/uv+6/7r/uv+6lboByYkAAaf/mpyaAoibiQABhP+6v7r/uv+6/7r/uv+6lboByYkAAaf/mpyaAoibiQABhP+6v7r/uv+6/7r/uv+6lboByYkAAaf/mpyaAoibiQABhP+6v7r/gP+A/4D/gP+AlYABfokAAYH/gp2CAX2JAP+AwIACAgQA/7v/u/+7/7v/u5S7AYiJAAKIlf+anZoBj4kAArCv/7u+u/+7/7v/u/+7/7uUuwGIiQACiJX/mp2aAY+JAAKwr/+7vrv/u/+7/7v/u/+7lLsBiIkAAoiV/5qdmgGPiQACsK//u767/4D/gP+A/4D/gJWAiQABf/+CnoIBgYkAAX3/gL+AAgIEAP+8/7z/vP+8/7yUvAGOiQABvf+anpoCkcyJAAHd/7y+vP+8/7z/vP+8/7yUvAGOiQABvf+anpoCkcyJAAHd/7y+vP+8/7z/vP+8/7yUvAGOiQABvf+anpoCkcyJAAHd/7y+vP+A/4D/gP+A/4CUgAF+iQABgf+Cn4IBfokAAX//gL6AAgIEAP+9/73/vf+9/72TvQHviQACwpj/mp+aAbyJAAKOqf+9vb3/vf+9/73/vf+9k70B74kAAsKY/5qfmgG8iQACjqn/vb29/73/vf+9/73/vZO9Ae+JAALCmP+an5oBvIkAAo+p/729vf+A/4D/gP+A/4CTgAF/iQABf/+CoIIBgYkAAXz/gL6AAgIEAP+//7//v/+//7+SvwKwj4kAAc//mqCaApnpiQABoP+/vb//v/+//7//v/+/kr8CsI+JAAHP/5qgmgKZ6YkAAaD/v72//7//v/+//7//v5K/ArCPiQABz/+aoJoCmemJAAGg/7+9v/+A/4D/gP+A/4CTgAF9iQABgf+CoYIBf4kAAX//gL2AAgIEAP/A/8D/wP/A/8CSwAHHiQABg/+aopoC65uJAAGZ/8C8wP/A/8D/wP/A/8CSwAHHiQABg/+aopoC65uJAAGZ/8C8wP/A/8D/wP/A/8CSwAHHiQABg/+aopoC65uJAAGZ/8C8wP+A/4D/gP+A/4CSgAF/iQABgP+CooICgXqJAP+AvYACAgQA/8H/wf/B/8H/wZHBAquRiQAB6f+ao5oB2okAAbb/wbzB/8H/wf/B/8H/wZHBAquRiQAB6f+ao5oB2okAAbb/wbzB/8H/wf/B/8H/wZHBAquRiQAB6f+ao5oB2okAAbb/wbzB/4D/gP+A/4D/gJKAAXuJAAGB/4KjggGAiQABfv+AvIACAgQA/8P/w//D/8P/w5HDAZ+JAAG//5qkmgKK6YkAAfb/w7vD/8P/w//D/8P/w5HDAZ+JAAG//5qkmgKK6YkAAfb/w7vD/8P/w//D/8P/w5HDAZ+JAAG//5qkmgKK6YkAAfb/w7vD/4D/gP+A/4D/gJGAAX+JAAGA/4KlggF9iQABf/+Au4ACAgQA/8T/xP/E/8T/xJDEAaCJAAKbg/+apZoBoYkAAt2y/8S6xP/E/8T/xP/E/8SQxAGgiQACm4P/mqWaAaGJAALdsv/EusT/xP/E/8T/xP/EkMQBoIkAApuD/5qlmgGhiQAC3bL/xLrE/4D/gP+A/4D/gJGAiQABfP+CpoIBgYkAAXz/gLuAAgIEAP/F/8X/xf/F/8WQxQHliQABg/+appoClrOJAAGq/8W6xf/F/8X/xf/F/8WQxQHliQABg/+appoClrOJAAGq/8W6xf/F/8X/xf/F/8WQxQHliQABg/+appoClrOJAAGq/8W6xf+A/4D/gP+A/4CQgAF+iQABgf+Cp4IBf4kAAX//gLqAAgIEAP/H/8f/x//H/8ePxwGMiQACkY7/mqeaAdqKAAGg/8e5xwTHx8fGlMcBxo7HAcaUxwHGlccBxoXHAcanxwHGkMcBxoTHAcaMxwXGx8fHxoTHAcaJxwHGnccBxqzHAcaPxwHGh8cBxqTHAcaNx4LGjccBxo/HAcaExwHGhscBxofHBMbGx8aPxwHGlscBxrbHAcbIxwHGk8cBxpfHAcaMxwHGl8cBxo7HAsaMiQACkY7/mqeaAdqKAAGghccBxobHBcbHx8fGnMcBxonHAcaSxwHGtMcBxoTHgsaJxwHGpccDxsfH/8f/x//H/8f/x4/HAYyJAAKRjv+ap5oB2ooAAaD/x7nH/4D/gP+A/4D/gJCAiQABfv+CqIIBgYoA/4C6gAICBAD/yP/I/8j/yP/IjsgCuraJAAGl/5qpmgG/iQABvP/Iucj/yP/I/8j/yP/IjsgCuraJAAGl/5qpmgG/iQABvP/Iucj/yP/I/8j/yP/IjsgCuraJAAGl/5qpmgG/iQABvP/Iucj/gP+A/4D/gP+Aj4ABfYkAAYH/gqmCAYCJAAF+/4C5gAICBAD/yf/J/8n/yf/JjskB44kAgpb/mqmaAoabiQAB/v/JuMn/yf/J/8n/yf/JjskB44kAgpb/mqmaAoabiQAB/v/JuMn/yf/J/8n/yf/JjskB44kAgpb/mqmaAoabiQAB/v/JuMn/gP+A/4D/gP+AjoABf4kAAX//gquCAX2JAAF//4C4gAICBAD/yv/K/8r/yv/KjcoCs+WJAAHJ/5qrmgGdiQACpbT/yrfK/8r/yv/K/8r/yo3KArPliQAByf+aq5oBnYkAAqW0/8q3yv/K/8r/yv/K/8qNygKz5YkAAcn/mquaAZ2JAAKltP/Kt8r/gP+A/4D/gP+AjoABe4kAAYH/gquCAYGJAAF8/4C4gAICBAD/zP/M/8z/zP/MjcwBqIkAAYz/mqyaApaliQABlv/Mt8z/zP/M/8z/zP/MjcwBqIkAAYz/mqyaApaliQABlv/Mt8z/zP/M/8z/zP/MjcwBqIkAAYz/mqyaApaliQABlv/Mt8z/gP+A/4D/gP+AjYABf4kAAYD/gq2CAX+JAAF//4C3gAICBAD/zf/N/83/zf/NjM0BpIkAApv2/5qtmgHaigABj//Nts3/zf/N/83/zf/NjM0BpIkAApv2/5qtmgHaigABj//Nts3/zf/N/83/zf/NjM0BpIkAApv2/5qtmgHaigABj//Nts3/gP+A/4D/gP+AjYCJAAJ7gf+CrYIBgYoA/4C3gAICBAD/zv/O/87/zv/OjM4BzIkAAen/mq+aAb+JAAKuv//Otc7/zv/O/87/zv/OjM4BzIkAAen/mq+aAb+JAAKuv//Otc7/zv/O/87/zv/OjM4BzIkAAen/mq+aAb+JAAKuv//Otc7/gP+A/4D/gP+AjIABfokAAYD/gq+CAYCJAAF9/4C2gAICBAD/z//P/8//z//Pi88BhokAAoiM/5qvmgKJ/IkAAcb/z7XP/8//z//P/8//z4vPAYaJAAKIjP+ar5oCifyJAAHG/8+1z//P/8//z//P/8+LzwGGiQACiIz/mq+aAon8iQABxv/Ptc//gP+A/4D/gP+AjICJAAF+/4KxggF9iQABf/+AtYACAgQA/9D/0P/Q/9D/0IrQAr75iQABo/+asZoBsYoAAZT/0LTQ/9D/0P/Q/9D/0IrQAr75iQABo/+asZoBsYoAAZT/0LTQ/9D/0P/Q/9D/0IrQAr75iQABo/+asZoBsYoAAZT/0LTQ/4D/gP+A/4D/gIuAAXyJAAGB/4KxggGBigD/gLWAAgIEAP/S/9L/0v/S/9KK0gG7iQACrpb/mrGaApmDiQCCxf/Ss9L/0v/S/9L/0v/SitIBu4kAAq6W/5qxmgKZg4kAgsX/0rPS/9L/0v/S/9L/0orSAbuJAAKulv+asZoCmYOJAILF/9Kz0v+A/4D/gP+A/4CKgAF/iQABf/+Cs4IBgIkAAX3/gLSAAgIEAP/T/9P/0//T/9OJ0wGrigAB1/+as5oC/JuJAAHF/9Oz0//T/9P/0//T/9OJ0wGrigAB1/+as5oC/JuJAAHF/9Oz0//T/9P/0//T/9OJ0wGrigAB1/+as5oC/JuJAAHF/9Oz0/+A/4D/gP+A/4CKgIoAAYH/grOCAoF8iQABf/+As4ACAgQA/9T/1P/U/9T/1InUAcuJAAG2/5q1mgGPigABlP/UstT/1P/U/9T/1P/UidQBy4kAAbb/mrWaAY+KAAGU/9Sy1P/U/9T/1P/U/9SJ1AHLiQABtv+atZoBj4oAAZT/1LLU/4D/gP+A/4D/gImAAX6JAAGA/4K1ggGBigD/gLOAAgIEAP/V/9X/1f/V/9WI1QGCiQACm4b/mrWaApSliQACtcX/1bHV/9X/1f/V/9X/1YjVAYKJAAKbhv+atZoClKWJAAK1xf/VsdX/1f/V/9X/1f/ViNUBgokAApuG/5q1mgKUpYkAArXF/9Wx1f+A/4D/gP+A/4CJgIkAAX3/greCAX+JAAF9/4CygAICBAD/1v/W/9b/1v/Wh9YCt7yJAAGZ/5q3mgLjm4kAAcD/1rHW/9b/1v/W/9b/1ofWAre8iQABmf+at5oC45uJAAHA/9ax1v/W/9b/1v/W/9aH1gK3vIkAAZn/mreaAuObiQABwP/Wsdb/gP+A/4D/gP+AiIABe4kAAYH/greCAoF6iQABf/+AsYACAgQA/9j/2P/Y/9j/2IfYAeaJAAKglv+auJoBhIoAAZL/2LDY/9j/2P/Y/9j/2IfYAeaJAAKglv+auJoBhIoAAZL/2LDY/9j/2P/Y/9j/2IfYAeaJAAKglv+auJoBhIoAAZL/2LDY/4D/gP+A/4D/gIeAAX6JAAF//4K5ggGBigD/gLGAAgIEAP/Z/9n/2f/Z/9mG2QGtigAB2f+auZoClL2JAAKVxP/Zr9n/2f/Z/9n/2f/ZhtkBrYoAAdn/mrmaApS9iQAClcT/2a/Z/9n/2f/Z/9n/2YbZAa2KAAHZ/5q5mgKUvYkAApXE/9mv2f+A/4D/gP+A/4CGgAF/igABgf+CuoIBf4kAAX3/gLCAAgIEAP/a/9r/2v/a/9qF2gHIigABzP+au5oC9JuJAAGY/9qv2v/a/9r/2v/a/9qF2gHIigABzP+au5oC9JuJAAGY/9qv2v/a/9r/2v/a/9qF2gHIigABzP+au5oC9JuJAAGY/9qv2v+A/4D/gP+A/4CFgAF/igABgP+Cu4ICgXyJAAF//4CvgAICBAD/2//b/9v/2//bhNsB0ooAAtWN/5q8mgGXigAByf/brtv/2//b/9v/2//bhNsB0ooAAtWN/5q8mgGXigAByf/brtv/2//b/9v/2//bhNsB0ooAAtWN/5q8mgGXigAByf/brtv/gP+A/4D/gP+AhIABf4oAAX7/gr2CAYGKAAF//4CugAICBAD/3P/c/9z/3P/cBNzc3JyLAAHQ/5q9mgKX94oAAZj/3K3c/9z/3P/c/9z/3ATc3NyciwAB0P+avZoCl/eKAAGY/9yt3P/c/9z/3P/c/9wE3NzcnIsAAdD/mr2aApf3igABmP/crdz/gP+A/4D/gP+AhICLAAGB/4K+ggF/igD/gK6AAgIEAP/d/93/3f/d/90E3d3G+ooAAYH/mr+aAoGuiQACrcv/3azd/93/3f/d/93/3QTd3cb6igABgf+av5oCga6JAAKty//drN3/3f/d/93/3f/dBN3dxvqKAAGB/5q/mgKBrokAAq3L/92s3f+A/4D/gP+A/4AEgICAfIoAAYH/gsCCAX2JAAF9/4CtgAICBAD/3v/e/97/3v/eA97N7YoAAvyX/5rAmgG3igAB///erN7/3v/e/97/3v/eA97N7YoAAvyX/5rAmgG3igAB///erN7/3v/e/97/3v/eA97N7YoAAvyX/5rAmgG3igAB///erN7/gP+A/4D/gP+AA4CAfYoAAX//gsGCAYGKAAF+/4CsgAICBAAD4ODfh+AM3+Df4ODf4ODg3+DfhuBe3+Df4ODf4ODf4ODf4N/f3+Df4N/f4ODf3+Dg4N/g39/g4N/f4N/f4ODf4ODg3+Df4ODg39/f4ODf4N/g3+Df3+Df4ODf3+Df4N/g4ODf3+Df3+Dg4N/g4ODf3+Dg34XgAd+H4AHfh+AB34TgIN/f3+Df4ODg39/g3+Dg3+Df4ODf3+Dg39/g4ODf4N/fhuAX3+Df4N/g3+Dg39/g4N/f4N/g4ODf39+E4ATf4ODfheAN3+Df3+Df3+Df4ODf34TgGt/g39/g4N/g4N/g3+Df4ODg3+Df4ODf4N/fhOAG39/f4ODfhOAB34ngBd/f4ODfi+AF39/f4N+F4ILfheAY3+Dg4N/g4N/g4ODf4N/f3+Dg39/f4ODfhOCE34Tggt+E4ATf4ODfhOAF39/f4N+I4AHfhOAH3+Dg4N/g34bgiN8l4ODf4N/g3+Dg4N/f4ODg3+Df3+Dg39/g4N/g4N/g4N/g3+Dg34Tght+D4IXfCODg3+Dg4N/fhOAF39/g39+F4Arf4ODf3+Df4ODghN8b4N/f4ODf4ODf3+Dg39/f4N/g4ODf4ODg3+DfhuAE39/g34bgBd/f4ODfhOAN3+Df4ODf39/g3+Df4ITfEeDg3+Dg39/g4N/g4ODf4N/fheAm39/g3+Df3+Df3+Dg4N/g39/g39/f4ODf3+Dg4N/g4ODf3+Dg4N+E4ALPqIoAAsyH/5rCmgHMigAGs9/f4ODfhOAW3+Dg3+Df4N/f4N/f3+Dg4N/g39/g34XgB9/f3+Dg39+F4APf4N+F4Aff3+Df4N/ghN+C4ITfBODf39+E4B7f3+Dg39/f4N/f4N/g4ODf4N/g4ODf39/g4ODf39+E4ILfhOAF3+Dg4N+E4Cjf39/g3+Dg3+Df39/g3+Dg4N/g4N/g3+Dg4N/g4N/g4ODf4N/f4ODfC9/g4N/f4N/f3+Dght8j4N/f4ODg3+Dg3+Df4ODf4N/f4ODf3+Dg39/f4ODg3+Df4OCK3wjg39/f4N/f4ITfA+Df4ITfEODg39/f4N/g39/g39/f4N+E4Ajf39/g3+Dg4IXfJODf3+Df39/g39/g39/g4N/g39/g4N/g39/g39/g4N/f4N/g34TgBd/f3+Dghd+D4ITfN+Dg4N/g39/g3+Df4N/f3+Df4N/f3+Df4N/f3+Df39/g4N/g3+Dg4N/f4N/f4N/g4ODf4N/f3+CE3xDg39/f4ODf3+Df3+Df39/gid8N4N/g39/g3+Df39/g4IffCeDf4ODg39/g4I7fBeDf4N/fhOAI3+Df4ODf4OCI3xbg3+Dg4N/g3+Df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z//PiM//z//P/8//z//P/8//z//PiM//gP+A/4D/gP+A/4D/gP+AiIACAgQA/83/zf/N/83/zf/N/83/zYjN/83/zf/N/83/zf/N/83/zYjN/83/zf/N/83/zf/N/83/zYjN/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP/L/8v/y//L/8v/y//L/8uIy//L/8v/y//L/8v/y//L/8uIy//L/8v/y//L/8v/y//L/8uIy/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/yf/J/8n/yf/J/8n/yf/JiMn/yf/J/8n/yf/J/8n/yf/JiMn/yf/J/8n/yf/J/8n/yf/JiMn/gP+A/4D/gP+A/4D/gP+AiIACAgQA/8f/x//H/8f/x//H/8f/x4jH/8f/x//H/8f/x//H/8f/x4jH/8f/x//H/8f/x//H/8f/x4jH/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP/F/8X/xf/F/8X/xf/F/8WIxf/F/8X/xf/F/8X/xf/F/8WIxf/F/8X/xf/F/8X/xf/F/8WIxf+A/4D/gP+A/4D/gP+A/4CIgAICBAD/w//D/8P/w//D/8P/w//DiMP/w//D/8P/w//D/8P/w//DiMP/w//D/8P/w//D/8P/w//DiMP/gP+A/4D/gP+A/4D/gP+AiIACAgQA/8H/wf/B/8H/wf/B/8H/wYjB/8H/wf/B/8H/wf/B/8H/wYjB/8H/wf/B/8H/wf/B/8H/wYjB/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+//7//v/+//7//v/+//7+Iv/+//7//v/+//7//v/+//7+Iv/+//7//v/+//7//v/+//7+Iv/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/vf+9/73/vf+9/73/vf+9iL3/vf+9/73/vf+9/73/vf+9iL3/vf+9/73/vf+9/73/vf+9iL3/gP+A/4D/gP+A/4D/gP+AiIACAgQA/7v/u/+7/7v/u/+7/7v/u4i7/7v/u/+7/7v/u/+7/7v/u4i7/7v/u/+7/7v/u/+7/7v/u4i7/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+6/7r/uv+6/7r/uv+6/7qIuv+6/7r/uv+6/7r/uv+6/7qIuv+6/7r/uv+6/7r/uv+6/7qIuv+A/4D/gP+A/4D/gP+A/4CIgAICBAD/uP+4/7j/uP+4/7j/uP+4iLj/uP+4/7j/uP+4/7j/uP+4iLj/uP+4/7j/uP+4/7j/uP+4iLj/gP+A/4D/gP+A/4D/gP+AiIACAgQA/7b/tv+2/7b/tv+2/7b/toi2/7b/tv+2/7b/tv+2/7b/toi2/7b/tv+2/7b/tv+2/7b/toi2/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+0/7T/tP+0/7T/tP+0/7SItP+0/7T/tP+0/7T/tP+0/7SItP+0/7T/tP+0/7T/tP+0/7SItP+A/4D/gP+A/4D/gP+A/4CIgAICBAD/s/+z/7P/s/+z/7P/s/+ziLP/s/+z/7P/s/+z/7P/s/+ziLP/s/+z/7P/s/+z/7P/s/+ziLP/gP+A/4D/gP+A/4D/gP+AiIACAgQA/7H/sf+x/7H/sf+x/7H/sYix/7H/sf+x/7H/sf+x/7H/sYix/7H/sf+x/7H/sf+x/7H/sYix/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+v/6//r/+v/6//r/+v/6+Ir/+v/6//r/+v/6//r/+v/6+Ir/+v/6//r/+v/6//r/+v/6+Ir/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/rv+u/67/rv+u/67/rv+uiK7/rv+u/67/rv+u/67/rv+uiK7/rv+u/67/rv+u/67/rv+uiK7/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6z/rP+s/6z/rP+s/6z/rIis/6z/rP+s/6z/rP+s/6z/rIis/6z/rP+s/6z/rP+s/6z/rIis/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+q/6r/qv+q/6r/qv+q/6qIqv+q/6r/qv+q/6r/qv+q/6qIqv+q/6r/qv+q/6r/qv+q/6qIqv+A/4D/gP+A/4D/gP+A/4CIgAICBAD/qf+p/6n/qf+p/6n/qf+piKn/qf+p/6n/qf+p/6n/qf+piKn/qf+p/6n/qf+p/6n/qf+piKn/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6f/p/+n/6f/p/+n/6f/p4in/6f/p/+n/6f/p/+n/6f/p4in/6f/p/+n/6f/p/+n/6f/p4in/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+m/6b/pv+m/6b/pv+m/6aIpv+m/6b/pv+m/6b/pv+m/6aIpv+m/6b/pv+m/6b/pv+m/6aIpv+A/4D/gP+A/4D/gP+A/4CIgAICBAD/pf+l/6X/pf+l/6X/pf+liKX/pf+l/6X/pf+l/6X/pf+liKX/pf+l/6X/pf+l/6X/pf+liKX/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6P/o/+j/6P/o/+j/6P/o4ij/6P/o/+j/6P/o/+j/6P/o4ij/6P/o/+j/6P/o/+j/6P/o4ij/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+i/6L/ov+i/6L/ov+i/6KIov+i/6L/ov+i/6L/ov+i/6KIov+i/6L/ov+i/6L/ov+i/6KIov+A/4D/gP+A/4D/gP+A/4CIgAICBAD/of+h/6H/of+h/6H/of+hiKH/of+h/6H/of+h/6H/of+hiKH/of+h/6H/of+h/6H/of+hiKH/gP+A/4D/gP+A/4D/gP+AiIACAgQA/6D/oP+g/6D/oP+g/6D/oIig/6D/oP+g/6D/oP+g/6D/oIig/6D/oP+g/6D/oP+g/6D/oIig/4D/gP+A/4D/gP+A/4D/gIiAAgIEAAKfnoefBJ6fn56EnwGeiZ8Nnp+fnp+fnp+en56fnoafBJ6fn56EnwGehp8Enp+enoefB56enp+fn56HnwSen5+eiJ+CnoufAZ6OnwGehJ8BnoWfAZ6Hnwien5+fnp+fnpGfAZ6PnwWenp+enoafAZ6MnwGehJ8BnoafAZ6In4KekJ+CnpafAZ6MnwWen5+fnoSfAZ6UnwGeip8BnoSfg56UnwGejJ8BnoafB56en56fn56GnwGehZ8Hnp+fnp+fno+fAZ6KnwGehJ8BnomfAZ6FnwOen56HnwGekZ8BnoefBp6fnp+fnoafg56HnwGeip8BnoyfAZ6GnwWen5+fnoifCZ6fn5+enp+fnomfAZ6NnwGehp8Bnoyfgp6GnwGehJ8BnoafAZ6PnwGehJ8BnoqfAZ6Jnweenp+fnp+eiZ8Enp+fnoSfBJ6fn56GnwGehZ+CnoafAZ6Inwaen56en56Hn4KejZ8Jnp+fnp+fnp6ehJ8BnpGfAZ6EnwGeiZ8Fnp+fn56GnxSen5+fnp+fn56enp+fn56en5+fnoafgp6EnwGehZ+CnoifBZ6fn5+eip8BnpGfAZ6TnwGeip8BnqyfAZ6NnwSen5+ehJ8Mnp+fnp+fn56fn5+ehJ8BnomfAZ6Mn4Wfg56EnwWen5+fnoSfA56fnoefg56Jn4KehZ8Fnp+fn56FnwGelp8Gnp+enp+eh58Gnp+fn56ehJ8BnoWfCp6en56fnp+fn56FnwOen56Gnwmen56fn56fnp6GnwGehZ+CnoSfBp6fn56fnoifAZ6KnwGehZ8Bnomfgp6EnxSenp+fnp+fnp+fnp6fn56fnp+fnoqfE56enp+fnp6en5+fnp6fnp+fn56Gn4KehJ8BnoSfCp6fn5+en56fn56Enweenp+fnp+ehJ8Gnp+fn56ehZ8Gnp+en5+ehJ8Jnp6fn5+enp+ehp8Snp+fn56fnp6fn5+en5+en56fhJ4Ln5+fnp+fnp+en56Fnwyenp6fn5+en56fn5+EngOfn56En4KehZ8Fnp+en56FnwGeip8Nnp6fn56fn5+en56enoSfAZ6Enwqenp+fnp+en5+eiZ8BnoSfCZ6fn56fn56fnoifAZ6HnwGehJ8BnoWfCJ6enp+fnp+ekJ8Knp+fnp+fnp+fn4SeEZ+fn56fnp+enp6fn56fn5+ei58anp6fnp6fn5+en5+enp+fnp+en5+enp+fn56JnwSen56eh58BnoSfBZ6fn5+emZ8fnp+fn56fn56fn56fn56en56fnp+en5+fnp6en5+fnoafDp6fnp6fn5+en56fnp+ehJ8BnoSfBp6fnp+enoWfCZ6enp+en5+fnoWfEZ6fn56fn5+en56fnp6en5+ei5+CnoefCJ6fnp+fnp+ehJ8BnomfAZ6JnwGehp8Knp6fn56enp+fnoefBJ6fn56Fn4Keh58Fnp+fnp6Fnween5+en56fhJ4Cn56JnwGeiZ8Gnp+fnp+ehZ8Fnp6fnp6Gn4KehJ8BnoWfg56Gn4KehZ8BnoefAZ6EnwSen5+ehp8Hnp+fn56enoSfAZ6FnwWenp6fnoSfA56fnoWfCJ6enp+fnp+ejJ8Enp6fn4ifBZ6fn5+ek58BnoSfAZ6PnwGekp8BnpafAZ6MnwWen5+fnoSfAZ6fnwGehZ+CnqGfAZ6GnwGehZ8BnoafAZ6InwGesp8Dnp+emZ8BnoefBp6fnp+fnoafgp6WnwGejZ8BnpefAZ6OnwGehJ8BnoafAZ6Lnwaen5+fnp6HnwGehp8BnoyfBZ6en5+ehZ8Fnp6fn56ZnwGehJ8BnpCfAZ6LnwGeiJ8BnpSfBZ6en5+ejp8Fnp6fn56Onw6en56fnp+en5+fnp+fnp6fAZ6TnwGenJ8BnoqfAZ6qnwOen56On4KejJ8Enp+fnpGfAZ6TnwGehJ8BnpGfBp6fn5+enpOfAZ6OnwGehJ8BnoefAZ6GnwGeip8BnpGfAZ6Vn4KelJ8Bno2fA56fnqaf/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+d/53/nf+d/53/nf+d/52Inf+d/53/nf+d/53/nf+d/52Inf+d/53/nf+d/53/nf+d/52Inf+A/4D/gP+A/4D/gP+A/4CIgAICBAD/nP+c/5z/nP+c/5z/nP+ciJz/nP+c/5z/nP+c/5z/nP+ciJz/nP+c/5z/nP+c/5z/nP+ciJz/gP+A/4D/gP+A/4D/gP+AiIACAgQA/5z/nP+c/5z/nP+c/5z/nIic/5z/nP+c/5z/nP+c/5z/nIic/5z/nP+c/5z/nP+c/5z/nIic/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+b/5v/m/+b/5v/m/+b/5uIm/+b/5v/m/+b/5v/m/+b/5uIm/+b/5v/m/+b/5v/m/+b/5uIm/+A/4D/gP+A/4D/gP+A/4CIgAICBAD/mv+a/5r/mv+a/5r/mv+aiJr/mv+a/5r/mv+a/5r/mv+aiJr/mv+a/5r/mv+a/5r/mv+aiJr/gP+A/4D/gP+A/4D/gP+AiIACAgQA/5n/mf+Z/5n/mf+Z/5n/mYiZ/5n/mf+Z/5n/mf+Z/5n/mYiZ/5n/mf+Z/5n/mf+Z/5n/mYiZ/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+Y/5j/mP+Y/5j/mP+Y/5iImP+Y/5j/mP+Y/5j/mP+Y/5iImP+Y/5j/mP+Y/5j/mP+Y/5iImP+A/4D/gP+A/4D/gP+A/4CIgAICBAD/mP+Y/5j/mP+Y/5j/mP+YiJj/mP+Y/5j/mP+Y/5j/mP+YiJj/mP+Y/5j/mP+Y/5j/mP+YiJj/gP+A/4D/gP+A/4D/gP+AiIACAgQA/5f/l/+X/5f/l/+X/5f/l4iX/5f/l/+X/5f/l/+X/5f/l4iX/5f/l/+X/5f/l/+X/5f/l4iX/4D/gP+A/4D/gP+A/4D/gIiAAgIEAP+X/5f/l/+X/5f/l/+X/5eIl/+X/5f/l/+X/5f/l/+X/5eIl/+X/5f/l/+X/5f/l/+X/5eIl/+A/4D/gP+A/4D/gP+A/4CIgA==", ai = {
186
- enabled: !0,
187
- imageUrl: pA,
188
- useAsBackground: !1,
189
- rotateY: 0,
190
- globalEnvIntensity: 1,
191
- // deprecated
192
- exposure: 1,
193
- // deprecated
194
- replaceLights: !1
195
- // deprecated
196
- };
197
- class ri {
198
- constructor(g, A, i = {}) {
199
- e(this, "originalBackground");
200
- e(this, "renderer");
201
- e(this, "scene");
202
- e(this, "pmrem");
203
- e(this, "currentEnvRT", null);
204
- e(this, "currentBackgroundCube", null);
205
- e(this, "sourceImage", null);
206
- e(this, "options");
207
- this.renderer = g, this.scene = A, this.originalBackground = this.scene.background, this.pmrem = new aA(g), this.options = {
208
- ...ai,
209
- ...i
210
- }, this.loadHDRImage(this.options.imageUrl).then((t) => {
211
- this.sourceImage = t, this.update();
212
- });
213
- }
214
- /**
215
- * Disposes the environment.
216
- */
217
- dispose() {
218
- var g;
219
- this.pmrem.dispose(), (g = this.sourceImage) == null || g.dispose(), this.sourceImage = null, this.clearEnvironment();
220
- }
221
- clearEnvironment() {
222
- this.scene.environment = null, this.scene.background = this.originalBackground, this.currentEnvRT && (this.currentEnvRT.texture.dispose(), this.currentEnvRT.dispose(), this.currentEnvRT = null), this.currentBackgroundCube && (this.currentBackgroundCube.texture.dispose(), this.currentBackgroundCube.dispose(), this.currentBackgroundCube = null);
223
- }
224
- /**
225
- * Updates the environment.
226
- *
227
- * - Creates a sky scene with a large inward-facing sphere with equirectangular mapping for correct UVs.
228
- * - Renders the equirect HDR to a cubemap with CubeCamera.
229
- * - Generates a PMREM from the cubemap.
230
- * - Updates the scene environment with the PMREM.
231
- * - Handles background image replacement logic.
232
- * - Early-returns if the source image is not loaded.
233
- */
234
- update() {
235
- if (!this.sourceImage) {
236
- this.clearEnvironment();
237
- return;
238
- }
239
- const g = new uA(), A = new J(10, 60, 40), i = new iA({
240
- map: this.sourceImage,
241
- side: OA
242
- }), t = new M(A, i);
243
- t.scale.set(1, 1, -1), t.rotation.y = this.options.rotateY ?? 0, g.add(t);
244
- const o = this.renderer.toneMapping, s = this.renderer.outputColorSpace;
245
- this.renderer.toneMapping = MA, this.renderer.outputColorSpace = wA;
246
- const a = new LA(1024, {
247
- type: Z
248
- });
249
- new FA(0.1, 1e3, a).update(this.renderer, g), this.renderer.toneMapping = o, this.renderer.outputColorSpace = s;
250
- const H = this.pmrem.fromCubemap(a.texture);
251
- this.currentEnvRT && (this.currentEnvRT.texture.dispose(), this.currentEnvRT.dispose(), this.currentEnvRT = null), this.currentBackgroundCube && (this.currentBackgroundCube.texture.dispose(), this.currentBackgroundCube.dispose(), this.currentBackgroundCube = null), this.currentEnvRT = H, this.scene.environment = H.texture, this.options.useAsBackground ? (this.scene.background = a.texture, this.currentBackgroundCube = a) : (this.scene.background = this.originalBackground, a.texture.dispose(), a.dispose());
252
- }
253
- /**
254
- * Sets the renderer and updates the environment. Use this only when rebuilding the webgl renderer.
255
- *
256
- * @param renderer - The webglrenderer.
257
- */
258
- setRenderer(g) {
259
- this.renderer = g, this.pmrem.dispose(), this.pmrem = new aA(g), this.update();
260
- }
261
- /**
262
- * Sets the URL of the HDR image.
263
- *
264
- * @param url - The URL of the HDR image. If null, the default environment image will be used.
265
- */
266
- async setImageUrl(g) {
267
- var A;
268
- this.options.imageUrl = g ?? pA, (A = this.sourceImage) == null || A.dispose(), this.sourceImage = null, this.sourceImage = await this.loadHDRImage(this.options.imageUrl), this.update();
269
- }
270
- /**
271
- * Sets the rotation of the HDR image in radians.
272
- *
273
- * @param radians - The rotation of the HDR image in radians.
274
- */
275
- setRotationY(g) {
276
- this.options.rotateY = g, this.update();
277
- }
278
- /**
279
- * Sets whether to use the HDR image as a background.
280
- * @param useAsBackground - Whether to use the HDR image as a background.
281
- */
282
- setUseAsBackground(g) {
283
- this.options.useAsBackground = g, this.update();
284
- }
285
- /**
286
- * Loads equirectangular HDR image from URL.
287
- * Sets the mapping to EquirectangularReflectionMapping.
288
- *
289
- * @param url - The URL of the HDR image.
290
- * @returns The loaded equirectangular HDR texture.
291
- */
292
- async loadHDRImage(g) {
293
- const A = await new hi().loadAsync(g);
294
- return A.mapping = XA, A;
295
- }
296
- /**
297
- * @deprecated setGlobalEnvIntensity does nothing.
298
- */
299
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
300
- setGlobalEnvIntensity(g) {
301
- console.warn("setGlobalEnvIntensity is deprecated and does nothing.");
302
- }
303
- /**
304
- * @deprecated setExposure does nothing.
305
- */
306
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
307
- setExposure(g) {
308
- console.warn("setExposure is deprecated and does nothing.");
309
- }
310
- /**
311
- * @deprecated disable does nothing. Environment is enabled by default.
312
- */
313
- disable() {
314
- console.warn(
315
- "disable is deprecated and does nothing. Environment is enabled by default."
316
- );
317
- }
318
- /**
319
- * @deprecated Use update() instead.
320
- */
321
- async enable() {
322
- this.update();
323
- }
324
- }
325
- const KA = {
326
- canvas: void 0,
327
- antialias: !0,
328
- alpha: !0,
329
- powerPreference: "high-performance",
330
- precision: "highp",
331
- stencil: !1,
332
- depth: !0,
333
- logarithmicDepthBuffer: !0,
334
- shadows: !0,
335
- shadowQuality: "high"
336
- };
337
- class lA {
338
- constructor(g, A, i) {
339
- e(this, "isDIVERenderer", !0);
340
- e(this, "_webglrenderer");
341
- e(this, "_environment");
342
- e(this, "_settings");
343
- this._scene = g, this._camera = A, this._settings = {
344
- ...KA,
345
- ...i ?? {}
346
- }, this._webglrenderer = this._createWebGLRenderer(), this._environment = new ri(
347
- this._webglrenderer,
348
- this._scene
349
- );
350
- }
351
- get webglrenderer() {
352
- return this._webglrenderer;
353
- }
354
- get environment() {
355
- return this._environment;
356
- }
357
- get canvas() {
358
- return this._webglrenderer.domElement;
359
- }
360
- render() {
361
- this._webglrenderer.render(this._scene, this._camera);
362
- }
363
- onResize(g, A) {
364
- this._webglrenderer.setSize(g, A);
365
- }
366
- dispose() {
367
- this._environment.dispose(), this._webglrenderer.dispose();
368
- }
369
- setCanvas(g) {
370
- this._webglrenderer.dispose(), this._settings.canvas = g, this._webglrenderer = this._createWebGLRenderer(), this._environment.setRenderer(this._webglrenderer);
371
- }
372
- _createWebGLRenderer() {
373
- var i;
374
- const g = (i = this._settings.canvas) == null ? void 0 : i.getContext("webgl2");
375
- g == null || g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL, !1), g == null || g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1);
376
- const A = new jA(this._settings);
377
- return A.shadowMap.enabled = this._settings.shadows, A.shadowMap.type = this._settings.shadowQuality === "high" ? EA : this._settings.shadowQuality === "medium" ? ZA : QA, A.setPixelRatio(window.devicePixelRatio), A.outputColorSpace = WA, A.toneMapping = NA, A.toneMappingExposure = 1, A;
378
- }
379
- }
380
- const Oi = lA;
381
- class Bi {
382
- constructor(g, A) {
383
- e(this, "isDIVEResizeManager", !0);
384
- e(this, "_resizeObserver");
385
- e(this, "_width", 0);
386
- e(this, "_height", 0);
387
- this._renderer = g, this._camera = A, this._resizeObserver = new ResizeObserver((i) => {
388
- const t = i[0], { width: o, height: s } = t.contentRect;
389
- o === this._width && s === this._height || (this._camera.onResize(o, s), this._renderer.onResize(o, s), this._width = o, this._height = s, this._renderer.render());
390
- }), this._observeCanvas(this._renderer.canvas);
391
- }
392
- setCanvas(g) {
393
- this._resizeObserver.disconnect(), this._observeCanvas(g);
394
- const { width: A, height: i } = g.getBoundingClientRect();
395
- this._camera.onResize(A, i), this._renderer.onResize(A, i), this._width = A, this._height = i, this._renderer.render();
396
- }
397
- dispose() {
398
- this._resizeObserver.disconnect();
399
- }
400
- _observeCanvas(g) {
401
- if (g.parentElement)
402
- this._resizeObserver.observe(g.parentElement);
403
- else {
404
- const A = setInterval(() => {
405
- g.parentElement && (this._resizeObserver.observe(g.parentElement), clearInterval(A));
406
- }, 16);
407
- }
408
- }
409
- }
410
- class zA {
411
- constructor(g, A, i) {
412
- e(this, "isDIVEView", !0);
413
- e(this, "uuid", eA.generateUUID());
414
- e(this, "_paused", !1);
415
- e(this, "_renderer");
416
- e(this, "_resizeManager");
417
- this._scene = g, this._camera = A, this._settings = i, this._renderer = new lA(
418
- this._scene,
419
- this._camera,
420
- this._settings
421
- ), this._resizeManager = new Bi(
422
- this._renderer,
423
- this._camera
424
- );
425
- }
426
- get renderer() {
427
- return this._renderer;
428
- }
429
- get camera() {
430
- return this._camera;
431
- }
432
- get canvas() {
433
- return this._renderer.canvas;
434
- }
435
- tick() {
436
- this._paused || this._renderer.render();
437
- }
438
- dispose() {
439
- this._resizeManager.dispose(), this._renderer.dispose();
440
- }
441
- onResize(g, A) {
442
- this._renderer.onResize(g, A), this._camera.onResize(g, A);
443
- }
444
- setCanvas(g) {
445
- this._renderer.setCanvas(g), this._resizeManager.setCanvas(g), this.onResize(
446
- this._renderer.canvas.clientWidth,
447
- this._renderer.canvas.clientHeight
448
- );
449
- }
450
- // TODO: add methods to individually pause and resume the view
451
- pause() {
452
- this._paused = !0;
453
- }
454
- resume() {
455
- this._paused = !1;
456
- }
457
- }
458
- class ci extends L {
459
- constructor() {
460
- super();
461
- e(this, "isDIVELight", !0);
462
- e(this, "isDIVEAmbientLight", !0);
463
- e(this, "isSelectable", !0);
464
- e(this, "_light");
465
- this.name = "DIVEAmbientLight", this._light = new kA(16777215, 1), this._light.layers.mask = v, this.add(this._light);
466
- }
467
- setColor(A) {
468
- this._light.color = A;
469
- }
470
- setIntensity(A) {
471
- this._light.intensity = A;
472
- }
473
- setEnabled(A) {
474
- this._light.visible = A;
475
- }
476
- }
477
- class Pi extends L {
478
- constructor() {
479
- super();
480
- e(this, "isDIVELight", !0);
481
- e(this, "isDIVEPointLight", !0);
482
- e(this, "isMovable", !0);
483
- e(this, "isSelectable", !0);
484
- e(this, "gizmo", null);
485
- e(this, "light");
486
- e(this, "mesh");
487
- this.name = "DIVEPointLight", this.light = new xA(16777215, 1), this.light.layers.mask = v, this.light.castShadow = !0, this.light.shadow.mapSize.width = 512, this.light.shadow.mapSize.height = 512, this.add(this.light);
488
- const A = 0.1, i = new J(
489
- A,
490
- A * 320,
491
- A * 320
492
- ), t = new iA({
493
- color: this.light.color,
494
- transparent: !0,
495
- opacity: 0.8,
496
- side: GA
497
- });
498
- this.mesh = new M(i, t), this.mesh.layers.mask = gi, this.add(this.mesh);
499
- }
500
- setColor(A) {
501
- this.light.color = A, this.mesh.material.color = A;
502
- }
503
- setIntensity(A) {
504
- this.light.intensity = A, this.mesh.material.opacity = A > 0.8 ? 0.8 : A * 0.8;
505
- }
506
- setEnabled(A) {
507
- this.light.visible = A;
508
- }
509
- onMove() {
510
- import("../plugins/state/index.mjs").then(({ State: A }) => {
511
- var i;
512
- (i = A.get(this.userData.id)) == null || i.performAction("UPDATE_OBJECT", {
513
- id: this.userData.id,
514
- position: this.position
515
- });
516
- });
517
- }
518
- onSelect() {
519
- import("../plugins/state/index.mjs").then(({ State: A }) => {
520
- var i;
521
- (i = A.get(this.userData.id)) == null || i.performAction("SELECT_OBJECT", {
522
- id: this.userData.id
523
- });
524
- });
525
- }
526
- onDeselect() {
527
- import("../plugins/state/index.mjs").then(({ State: A }) => {
528
- var i;
529
- (i = A.get(this.userData.id)) == null || i.performAction("DESELECT_OBJECT", {
530
- id: this.userData.id
531
- });
532
- });
533
- }
534
- }
535
- class zi extends L {
536
- constructor() {
537
- super();
538
- e(this, "isDIVELight", !0);
539
- e(this, "isDIVESceneLight", !0);
540
- e(this, "isSelectable", !0);
541
- e(this, "_hemiLight");
542
- e(this, "_dirLight");
543
- this.name = "DIVESceneLight", this._hemiLight = new TA(16777215, 16777215, 2), this._hemiLight.layers.mask = v, this._hemiLight.position.set(0, 50, 0), this._hemiLight.visible = !0, this.add(this._hemiLight), this._dirLight = new JA(16777215, 3), this._dirLight.layers.mask = v, this._dirLight.position.set(1, 1.75, 1), this._dirLight.position.multiplyScalar(30), this._dirLight.castShadow = !0, this._dirLight.visible = !0, this._dirLight.shadow.mapSize.width = 2048, this._dirLight.shadow.mapSize.height = 2048;
544
- const A = 5;
545
- this._dirLight.shadow.camera.left = -A, this._dirLight.shadow.camera.right = A, this._dirLight.shadow.camera.top = A, this._dirLight.shadow.camera.bottom = -A, this._dirLight.shadow.camera.far = 3500, this.add(this._dirLight);
546
- }
547
- setColor(A) {
548
- this._hemiLight.color = A, this._dirLight.color = A;
549
- }
550
- setIntensity(A) {
551
- this._hemiLight.intensity = A * 2, this._dirLight.intensity = A * 3;
552
- }
553
- setEnabled(A) {
554
- this._hemiLight.visible = A, this._dirLight.visible = A;
555
- }
556
- }
557
- const vA = (h) => h.parent ? vA(h.parent) : h;
558
- class tA extends L {
559
- constructor() {
560
- super();
561
- e(this, "isSelectable", !0);
562
- e(this, "isMovable", !0);
563
- e(this, "isDIVENode", !0);
564
- e(this, "gizmo", null);
565
- e(this, "_positionWorldBuffer");
566
- e(this, "_boundingBox");
567
- this.layers.mask = v, this._positionWorldBuffer = new u(), this._boundingBox = new y();
568
- }
569
- setPosition(A) {
570
- if (!this.parent) {
571
- this.position.set(A.x, A.y, A.z);
572
- return;
573
- }
574
- const i = new u(A.x, A.y, A.z);
575
- this.position.copy(this.parent.worldToLocal(i)), "isDIVEGroup" in this.parent && this.parent.updateLineTo(this);
576
- }
577
- setRotation(A) {
578
- this.rotation.set(A.x, A.y, A.z);
579
- }
580
- setScale(A) {
581
- this.scale.set(A.x, A.y, A.z);
582
- }
583
- setVisibility(A) {
584
- this.visible = A;
585
- }
586
- setToWorldOrigin() {
587
- this.position.set(0, 0, 0), import("../plugins/state/index.mjs").then(({ State: A }) => {
588
- var i;
589
- (i = A.get(this.userData.id)) == null || i.performAction("UPDATE_OBJECT", {
590
- id: this.userData.id,
591
- position: this.getWorldPosition(this._positionWorldBuffer),
592
- rotation: this.rotation,
593
- scale: this.scale
594
- });
595
- });
596
- }
597
- /**
598
- * Can be called when the object is moved from a foreign object (gizmo, parent, etc.) to update the object's position.
599
- */
600
- onMove() {
601
- import("../plugins/state/index.mjs").then(({ State: A }) => {
602
- var i;
603
- (i = A.get(this.userData.id)) == null || i.performAction("UPDATE_OBJECT", {
604
- id: this.userData.id,
605
- position: this.getWorldPosition(this._positionWorldBuffer),
606
- rotation: this.rotation,
607
- scale: this.scale
608
- });
609
- });
610
- }
611
- onSelect() {
612
- import("../plugins/state/index.mjs").then(({ State: A }) => {
613
- var i;
614
- (i = A.get(this.userData.id)) == null || i.performAction("SELECT_OBJECT", {
615
- id: this.userData.id
616
- });
617
- });
618
- }
619
- onDeselect() {
620
- import("../plugins/state/index.mjs").then(({ State: A }) => {
621
- var i;
622
- (i = A.get(this.userData.id)) == null || i.performAction("DESELECT_OBJECT", {
623
- id: this.userData.id
624
- });
625
- });
626
- }
627
- }
628
- class AA extends tA {
629
- /**
630
- * Creates a new BoundingBox instance for the specified 3D object.
631
- *
632
- * The constructor computes both a bounding box and bounding sphere for the given object.
633
- * It handles complex objects with multiple meshes and nested transformations.
634
- *
635
- * @param object - The 3D object to compute bounding volumes for
636
- * @param axisAligned - Whether to create an axis-aligned bounding box (true) or oriented bounding box (false). Defaults to false.
637
- * @param wireframeColor - The color for the wireframe helpers. Can be a hex number or ColorRepresentation. Defaults to green (0x00ff00).
638
- *
639
- * @example
640
- * ```typescript
641
- * // Create an oriented bounding box (aligned with object's rotation)
642
- * const obb = new BoundingBox(mesh, false, 0x00ff00);
643
- *
644
- * // Create an axis-aligned bounding box (aligned with world coordinates)
645
- * const aabb = new BoundingBox(mesh, true, 0xff0000);
646
- *
647
- * // Use default green color
648
- * const defaultBox = new BoundingBox(mesh);
649
- * ```
650
- */
651
- constructor(A, i = !1, t = 65280) {
652
- super();
653
- /** The computed bounding box (Box3) */
654
- e(this, "_box");
655
- /** The computed bounding sphere (Sphere) */
656
- e(this, "_sphere");
657
- /** The center point of the bounding box */
658
- e(this, "_center");
659
- /** The radius of the bounding sphere */
660
- e(this, "_radius");
661
- /** Visual helper for the bounding box wireframe */
662
- e(this, "_boxHelper");
663
- /** Visual helper for the bounding sphere wireframe */
664
- e(this, "_sphereHelper");
665
- /** The dimensions (width, height, depth) of the bounding box */
666
- e(this, "_size");
667
- const o = new y();
668
- i ? o.setFromObject(A) : (A.updateWorldMatrix(!0, !0), A.traverse((a) => {
669
- if (!("isMesh" in a) || !a.isMesh) return;
670
- const w = a;
671
- w.geometry.computeBoundingBox(), w.geometry.boundingBox && o.union(
672
- w.geometry.boundingBox.clone().applyMatrix4(w.matrixWorld)
673
- );
674
- })), this.rotation.copy(A.rotation), this._box = o, this._size = o.getSize(new u()), this._center = o.getCenter(new u()), this._boxHelper = new SA(this._box, t), this._boxHelper.visible = !1, this.add(this._boxHelper), this._sphere = o.getBoundingSphere(new _A()), this._radius = this._sphere.radius;
675
- const s = new J(this._radius, 32, 32);
676
- s.translate(this._center.x, this._center.y, this._center.z), this._sphereHelper = new M(
677
- s,
678
- new iA({ color: t, wireframe: !0 })
679
- ), this._sphereHelper.visible = !1, this.add(this._sphereHelper);
680
- }
681
- /**
682
- * Gets the computed bounding box.
683
- * @returns The Box3 instance representing the bounding box
684
- */
685
- get box() {
686
- return this._box;
687
- }
688
- /**
689
- * Gets the computed bounding sphere.
690
- * @returns The Sphere instance representing the bounding sphere
691
- */
692
- get sphere() {
693
- return this._sphere;
694
- }
695
- /**
696
- * Gets the center point of the bounding box.
697
- * @returns A Vector3 representing the center coordinates
698
- */
699
- get center() {
700
- return this._center;
701
- }
702
- /**
703
- * Gets the radius of the bounding sphere.
704
- * @returns The radius as a number
705
- */
706
- get radius() {
707
- return this._radius;
708
- }
709
- /**
710
- * Gets the dimensions of the bounding box.
711
- * @returns A Vector3 representing width, height, and depth
712
- */
713
- get size() {
714
- return this._size;
715
- }
716
- /**
717
- * Sets the visibility of the bounding box wireframe helper.
718
- *
719
- * @param visible - Whether the box helper should be visible
720
- *
721
- * @example
722
- * ```typescript
723
- * const boundingBox = new BoundingBox(mesh);
724
- *
725
- * // Show the bounding box wireframe
726
- * boundingBox.setBoxHelperVisible(true);
727
- *
728
- * // Hide the bounding box wireframe
729
- * boundingBox.setBoxHelperVisible(false);
730
- * ```
731
- */
732
- setBoxHelperVisible(A) {
733
- this._boxHelper.visible = A;
734
- }
735
- /**
736
- * Sets the visibility of the bounding sphere wireframe helper.
737
- *
738
- * @param visible - Whether the sphere helper should be visible
739
- *
740
- * @example
741
- * ```typescript
742
- * const boundingBox = new BoundingBox(mesh);
743
- *
744
- * // Show the bounding sphere wireframe
745
- * boundingBox.setSphereHelperVisible(true);
746
- *
747
- * // Hide the bounding sphere wireframe
748
- * boundingBox.setSphereHelperVisible(false);
749
- * ```
750
- */
751
- setSphereHelperVisible(A) {
752
- this._sphereHelper.visible = A;
753
- }
754
- }
755
- class HA extends tA {
756
- constructor() {
757
- super();
758
- e(this, "isDIVEModel", !0);
759
- e(this, "_gltf", null);
760
- e(this, "_mesh", null);
761
- e(this, "_material", null);
762
- e(this, "_assetLoader", null);
763
- this.name = "DIVEModel", this.userData.isDIVEModel = !0;
764
- }
765
- async _getAssetLoader() {
766
- return this._assetLoader || (this._assetLoader = new (await import("../plugins/assetloader/index.mjs")).AssetLoader()), this._assetLoader;
767
- }
768
- async setFromURL(A) {
769
- const t = await (await this._getAssetLoader()).load(A);
770
- return this.setFromGLTF(t), import("../plugins/state/index.mjs").then(({ State: o }) => {
771
- var s;
772
- (s = o.get(this.userData.id)) == null || s.performAction("MODEL_LOADED", {
773
- id: this.userData.id
774
- });
775
- }), this;
776
- }
777
- setFromGLTF(A) {
778
- this.clear(), this._boundingBox.makeEmpty();
779
- let i = null;
780
- return A.traverse((t) => {
781
- !i && t.userData.isDIVEModel && (i = t), t.castShadow = !0, t.receiveShadow = !0, t.layers.mask = this.layers.mask, this._boundingBox.expandByObject(t), !this._mesh && "isMesh" in t && (this._mesh = t, this._material ? this._mesh.material = this._material : this._material = t.material);
782
- }), i || (i = A), this.position.copy(i.position), this.quaternion.copy(i.quaternion), this.scale.copy(i.scale), this.add(...i.children), this.animations = A.animations, this;
783
- }
784
- setMaterial(A) {
785
- this._material || (this._material = new gA()), A.vertexColors !== void 0 && (this._material.vertexColors = A.vertexColors), A.color !== void 0 && this._material.color.set(A.color), A.map !== void 0 && (this._material.map = A.map), A.normalMap !== void 0 && (this._material.normalMap = A.normalMap), A.roughness !== void 0 && (this._material.roughness = A.roughness), A.roughnessMap !== void 0 && (this._material.roughnessMap = A.roughnessMap, this._material.roughnessMap && (this._material.roughness = 1)), A.metalness !== void 0 && (this._material.metalness = A.metalness), A.metalnessMap !== void 0 && (this._material.metalnessMap = A.metalnessMap, this._material.metalnessMap && (this._material.metalness = 1)), this._mesh && (this._mesh.material = this._material);
786
- }
787
- placeOnFloor() {
788
- this.updateWorldMatrix(!0, !0);
789
- const A = this.getWorldPosition(this._positionWorldBuffer), i = A.clone(), t = new y();
790
- this.children.forEach((s) => {
791
- s instanceof AA || t.expandByObject(s, !0);
792
- });
793
- const o = -t.min.y;
794
- Math.abs(o) < 1e-9 || (A.y += o, A.y !== i.y && (this.setPosition(A), import("../plugins/state/index.mjs").then(({ State: s }) => {
795
- var a;
796
- (a = s.get(this.userData.id)) == null || a.performAction("UPDATE_OBJECT", {
797
- id: this.userData.id,
798
- position: A,
799
- rotation: this.rotation,
800
- scale: this.scale
801
- });
802
- }), this.onMove()));
803
- }
804
- dropIt() {
805
- if (!this.parent) {
806
- console.warn(
807
- "DIVEModel: dropIt() called on a model that is not in the scene.",
808
- this
809
- );
810
- return;
811
- }
812
- const A = this.getWorldPosition(this._positionWorldBuffer), i = A.clone(), t = new y();
813
- this.children.forEach((w) => {
814
- w instanceof AA || t.expandByObject(w, !0);
815
- });
816
- const o = t.getCenter(new u());
817
- o.y = t.min.y;
818
- const s = new VA(o, new u(0, -1, 0));
819
- s.layers.mask = v;
820
- const a = s.intersectObjects(
821
- vA(this).root.children,
822
- !0
823
- );
824
- if (a.length > 0) {
825
- const w = a[0].object, d = new y().setFromObject(w).max.y - t.min.y;
826
- if (Math.abs(d) < 1e-9 || (A.y += d, A.y === i.y)) return;
827
- this.setPosition(A), import("../plugins/state/index.mjs").then(({ State: F }) => {
828
- var q;
829
- (q = F.get(this.userData.id)) == null || q.performAction("UPDATE_OBJECT", {
830
- id: this.userData.id,
831
- position: A,
832
- rotation: this.rotation,
833
- scale: this.scale
834
- });
835
- }), this.onMove();
836
- } else
837
- this.placeOnFloor();
838
- }
839
- }
840
- class Ii extends HA {
841
- constructor() {
842
- super();
843
- e(this, "isDIVEPrimitive", !0);
844
- e(this, "_mesh");
845
- e(this, "_material");
846
- this._mesh = new M(), this._mesh.name = "PrimitiveMesh", this._mesh.layers.mask = v, this._mesh.castShadow = !0, this._mesh.receiveShadow = !0, this.add(this._mesh), this._material = new gA(), this._mesh.material = this._material;
847
- }
848
- setGeometry(A) {
849
- const i = this.assembleGeometry(A);
850
- i && (i.computeVertexNormals(), i.computeBoundingBox(), i.computeBoundingSphere(), this._mesh.geometry = i, this._boundingBox.setFromObject(this._mesh));
851
- }
852
- assembleGeometry(A) {
853
- switch (this._material.flatShading = !1, A.name.toLowerCase()) {
854
- case "cylinder":
855
- return this.createCylinderGeometry(A);
856
- case "sphere":
857
- return this.createSphereGeometry(A);
858
- case "pyramid":
859
- return this._material.flatShading = !0, this.createPyramidGeometry(A);
860
- case "cube":
861
- case "box":
862
- return this.createBoxGeometry(A);
863
- case "cone":
864
- return this.createConeGeometry(A);
865
- case "wall":
866
- return this.createWallGeometry(A);
867
- case "plane":
868
- return this.createPlaneGeometry(A);
869
- default:
870
- return console.warn(
871
- "DIVEPrimitive.assembleGeometry: Invalid geometry type:",
872
- A.name.toLowerCase()
873
- ), null;
874
- }
875
- }
876
- createCylinderGeometry(A) {
877
- const i = new RA(
878
- A.width / 2,
879
- A.width / 2,
880
- A.height,
881
- 64
882
- );
883
- return i.translate(0, A.height / 2, 0), i;
884
- }
885
- createSphereGeometry(A) {
886
- return new J(A.width / 2, 256, 256);
887
- }
888
- createPyramidGeometry(A) {
889
- const i = new Float32Array([
890
- -A.width / 2,
891
- 0,
892
- -A.depth / 2,
893
- // 0
894
- A.width / 2,
895
- 0,
896
- -A.depth / 2,
897
- // 1
898
- A.width / 2,
899
- 0,
900
- A.depth / 2,
901
- // 2
902
- -A.width / 2,
903
- 0,
904
- A.depth / 2,
905
- // 3
906
- 0,
907
- A.height,
908
- 0
909
- ]), t = new Uint16Array([
910
- 0,
911
- 1,
912
- 2,
913
- 0,
914
- 2,
915
- 3,
916
- 0,
917
- 4,
918
- 1,
919
- 1,
920
- 4,
921
- 2,
922
- 2,
923
- 4,
924
- 3,
925
- 3,
926
- 4,
927
- 0
928
- ]), o = new DA();
929
- return o.setAttribute(
930
- "position",
931
- new rA(i, 3)
932
- ), o.setIndex(new rA(t, 1)), o;
933
- }
934
- createBoxGeometry(A) {
935
- const i = new U(
936
- A.width,
937
- A.height,
938
- A.depth
939
- );
940
- return i.translate(0, A.height / 2, 0), i;
941
- }
942
- createConeGeometry(A) {
943
- const i = new UA(A.width / 2, A.height, 256);
944
- return i.translate(0, A.height / 2, 0), i;
945
- }
946
- createWallGeometry(A) {
947
- const i = new U(
948
- A.width,
949
- A.height,
950
- A.depth || 0.05,
951
- 16
952
- );
953
- return i.translate(0, A.height / 2, 0), i;
954
- }
955
- createPlaneGeometry(A) {
956
- const i = new U(
957
- A.width,
958
- A.height,
959
- A.depth
960
- );
961
- return i.translate(0, A.height / 2, 0), i;
962
- }
963
- }
964
- class Ci extends tA {
965
- // lines to children
966
- constructor() {
967
- super();
968
- e(this, "isDIVEGroup", !0);
969
- e(this, "_members");
970
- e(this, "_lines");
971
- this.name = "DIVEGroup", this._members = [], this._lines = [];
972
- }
973
- // children objects
974
- get members() {
975
- return this._members;
976
- }
977
- setPosition(A) {
978
- super.setPosition(A), this._members.forEach((i) => {
979
- "isDIVENode" in i && i.onMove();
980
- });
981
- }
982
- setLinesVisibility(A, i) {
983
- if (!i) {
984
- this._lines.forEach((o) => {
985
- o.visible = A;
986
- });
987
- return;
988
- }
989
- const t = this._members.indexOf(i);
990
- t !== -1 && (this._lines[t].visible = A);
991
- }
992
- attach(A) {
993
- if (this._members.includes(A))
994
- return this;
995
- const i = this.createLine();
996
- return this.add(i), this._lines.push(i), super.attach(A), this._members.push(A), this._updateLineTo(i, A), this.setLinesVisibility(!0, A), this;
997
- }
998
- /**
999
- * Removes an object from the group.
1000
- * @param object - The object to remove.
1001
- * @returns The group instance.
1002
- */
1003
- remove(A) {
1004
- const i = this._members.indexOf(A);
1005
- if (i === -1)
1006
- return this;
1007
- const t = this._lines[i];
1008
- return super.remove(t), this._lines.splice(i, 1), super.remove(A), this._members.splice(i, 1), this;
1009
- }
1010
- updateLineTo(A) {
1011
- const i = this._members.indexOf(A);
1012
- i !== -1 && this._updateLineTo(this._lines[i], A);
1013
- }
1014
- /**
1015
- * Creates a line for visualization.
1016
- */
1017
- createLine() {
1018
- const A = new DA(), i = new $A({
1019
- color: 6710886,
1020
- dashSize: 0.05,
1021
- gapSize: 0.025
1022
- }), t = new Ai(A, i);
1023
- return t.visible = !1, t;
1024
- }
1025
- /**
1026
- * Updates a line to the object.
1027
- */
1028
- _updateLineTo(A, i) {
1029
- const t = [
1030
- new u(0, 0, 0),
1031
- i.position.clone()
1032
- ];
1033
- A.geometry.setFromPoints(t), A.computeLineDistances();
1034
- }
1035
- // public setBoundingBoxVisibility(visible: boolean): void {
1036
- // this._boxMesh.visible = visible;
1037
- // }
1038
- // /**
1039
- // * Recalculates the position of the group based on it's bounding box.
1040
- // * Children's world positions are kept.
1041
- // */
1042
- // private recalculatePosition(): void {
1043
- // // store all children's world positions
1044
- // const childrensWorldPositions: Vector3[] = this.children.map((child) => child.getWorldPosition(new Vector3()));
1045
- // // calculate new center and set it as the group's position
1046
- // const bbcenter = this.updateBB();
1047
- // this.position.copy(bbcenter);
1048
- // // set childrens's positions so their world positions are kept
1049
- // this.children.forEach((child, i) => {
1050
- // if (child.uuid === this._boxMesh.uuid) return;
1051
- // child.position.copy(this.worldToLocal(childrensWorldPositions[i]));
1052
- // });
1053
- // DIVECommunication.get(this.userData.id)?.performAction('UPDATE_OBJECT', { id: this.userData.id, position: this.position });
1054
- // }
1055
- // /**
1056
- // * Updates the bounding box of the group.
1057
- // * @returns {Vector3} The new center of the bounding box.
1058
- // */
1059
- // private updateBB(): Vector3 {
1060
- // this._boundingBox.makeEmpty();
1061
- // if (this.children.length === 1) {
1062
- // // because we always have the box mesh as 1 child
1063
- // return this.position.clone();
1064
- // }
1065
- // this.children.forEach((child) => {
1066
- // if (child.uuid === this._boxMesh.uuid) return;
1067
- // this._boundingBox.expandByObject(child);
1068
- // });
1069
- // return this._boundingBox.getCenter(new Vector3());
1070
- // }
1071
- // private updateBoxMesh(): void {
1072
- // if (this.children.length === 1) {
1073
- // // because we always have the box mesh as 1 child
1074
- // this._boxMesh.visible = false;
1075
- // return;
1076
- // }
1077
- // this._boxMesh.quaternion.copy(this.quaternion.clone().invert());
1078
- // this._boxMesh.scale.set(1 / this.scale.x, 1 / this.scale.y, 1 / this.scale.z);
1079
- // this._boxMesh.geometry = new BoxGeometry(this._boundingBox.max.x - this._boundingBox.min.x, this._boundingBox.max.y - this._boundingBox.min.y, this._boundingBox.max.z - this._boundingBox.min.z);
1080
- // this._boxMesh.visible = true;
1081
- // }
1082
- }
1083
- class wi extends M {
1084
- constructor() {
1085
- const A = new mA(1, 1);
1086
- A.scale(1e3, 1e3, 1), A.rotateX(-Math.PI / 2);
1087
- const i = new gA({
1088
- color: new O(16777215),
1089
- side: GA
1090
- });
1091
- super(A, i);
1092
- e(this, "isDIVEFloor", !0);
1093
- this.name = "Floor", this.layers.mask = v, this.receiveShadow = !0;
1094
- }
1095
- setVisibility(A) {
1096
- this.visible = A;
1097
- }
1098
- setColor(A) {
1099
- this.material.color = new O(A);
1100
- }
1101
- }
1102
- class ui extends L {
1103
- constructor() {
1104
- super();
1105
- e(this, "isDIVERoot", !0);
1106
- e(this, "_floor");
1107
- this.name = "Root", this._floor = new wi(), this.add(this._floor);
1108
- }
1109
- get floor() {
1110
- return this._floor;
1111
- }
1112
- computeSceneBB() {
1113
- const A = new y();
1114
- return this.children.forEach((i) => {
1115
- "isDIVEFloor" in i || i.traverse((t) => {
1116
- "isObject3D" in t && A.expandByObject(t);
1117
- });
1118
- }), A;
1119
- }
1120
- getSceneObject(A) {
1121
- let i;
1122
- return this.traverse((t) => {
1123
- i || t.userData.id === A.id && (i = t);
1124
- }), i;
1125
- }
1126
- addSceneObject(A) {
1127
- let i = this.getSceneObject(A);
1128
- if (i)
1129
- return console.warn(
1130
- `DIVERoot.addSceneObject: Scene object with id ${A.id} already exists`
1131
- ), i;
1132
- switch (A.entityType) {
1133
- case "pov":
1134
- break;
1135
- case "light": {
1136
- switch (A.type) {
1137
- case "scene": {
1138
- i = new zi();
1139
- break;
1140
- }
1141
- case "ambient": {
1142
- i = new ci();
1143
- break;
1144
- }
1145
- case "point": {
1146
- i = new Pi();
1147
- break;
1148
- }
1149
- default:
1150
- throw new Error(
1151
- `DIVERoot.addSceneObject: Unknown light type: ${A.type}`
1152
- );
1153
- }
1154
- i.name = A.name, i.userData.id = A.id, this.add(i), this._updateLight(i, A);
1155
- break;
1156
- }
1157
- case "model": {
1158
- i = new HA(), i.name = A.name, i.userData.id = A.id, i.userData.uri = A.uri, this.add(i), this._updateModel(i, A);
1159
- break;
1160
- }
1161
- case "primitive": {
1162
- i = new Ii(), i.name = A.name, i.userData.id = A.id, this.add(i), this._updatePrimitive(i, A);
1163
- break;
1164
- }
1165
- case "group": {
1166
- i = new Ci(), i.name = A.name, i.userData.id = A.id, this.add(i), this._updateGroup(i, A);
1167
- break;
1168
- }
1169
- default:
1170
- throw new Error(
1171
- `DIVERoot.addSceneObject: Unknown entity type: ${A.entityType}`
1172
- );
1173
- }
1174
- return i;
1175
- }
1176
- updateSceneObject(A) {
1177
- const i = this.getSceneObject(A);
1178
- if (!i) {
1179
- console.warn(
1180
- `DIVERoot.updateSceneObject: Scene object with id ${A.id} does not exist`
1181
- );
1182
- return;
1183
- }
1184
- switch (A.entityType) {
1185
- case "pov":
1186
- break;
1187
- case "light": {
1188
- this._updateLight(i, A);
1189
- break;
1190
- }
1191
- case "model": {
1192
- this._updateModel(i, A);
1193
- break;
1194
- }
1195
- case "primitive": {
1196
- this._updatePrimitive(i, A);
1197
- break;
1198
- }
1199
- case "group": {
1200
- this._updateGroup(i, A);
1201
- break;
1202
- }
1203
- default:
1204
- throw new Error(
1205
- `DIVERoot.updateSceneObject: Unknown entity type: ${A.entityType}`
1206
- );
1207
- }
1208
- }
1209
- deleteSceneObject(A) {
1210
- const i = this.getSceneObject(A);
1211
- if (!i) {
1212
- console.warn(
1213
- `DIVERoot.deleteSceneObject: Object with id ${A.id} not found`
1214
- );
1215
- return;
1216
- }
1217
- switch (A.entityType) {
1218
- case "pov":
1219
- break;
1220
- case "light": {
1221
- this._deleteLight(i);
1222
- break;
1223
- }
1224
- case "model": {
1225
- this._deleteModel(i);
1226
- break;
1227
- }
1228
- case "primitive": {
1229
- this._deletePrimitive(i);
1230
- break;
1231
- }
1232
- case "group": {
1233
- this._deleteGroup(i);
1234
- break;
1235
- }
1236
- default:
1237
- throw new Error(
1238
- `DIVERoot.deleteSceneObject: Unknown entity type: ${A.entityType}`
1239
- );
1240
- }
1241
- }
1242
- _updateLight(A, i) {
1243
- i.name !== void 0 && i.name !== null && (A.name = i.name), i.position !== void 0 && i.position !== null && A.position.set(
1244
- i.position.x,
1245
- i.position.y,
1246
- i.position.z
1247
- ), i.intensity !== void 0 && i.intensity !== null && A.setIntensity(i.intensity), i.enabled !== void 0 && i.enabled !== null && A.setEnabled(i.enabled), i.color !== void 0 && i.color !== null && A.setColor(new O(i.color)), i.visible !== void 0 && i.visible !== null && (A.visible = i.visible), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1248
- }
1249
- _updateModel(A, i) {
1250
- i.uri !== void 0 && A.setFromURL(i.uri), i.name !== void 0 && (A.name = i.name), i.position !== void 0 && A.setPosition(i.position), i.rotation !== void 0 && A.setRotation(i.rotation), i.scale !== void 0 && A.setScale(i.scale), i.visible !== void 0 && A.setVisibility(i.visible), i.material !== void 0 && A.setMaterial(i.material), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1251
- }
1252
- _updatePrimitive(A, i) {
1253
- i.name !== void 0 && (A.name = i.name), i.geometry !== void 0 && A.setGeometry(i.geometry), i.position !== void 0 && A.setPosition(i.position), i.rotation !== void 0 && A.setRotation(i.rotation), i.scale !== void 0 && A.setScale(i.scale), i.visible !== void 0 && A.setVisibility(i.visible), i.material !== void 0 && A.setMaterial(i.material), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1254
- }
1255
- _updateGroup(A, i) {
1256
- i.name !== void 0 && (A.name = i.name), i.position !== void 0 && A.setPosition(i.position), i.rotation !== void 0 && A.setRotation(i.rotation), i.scale !== void 0 && A.setScale(i.scale), i.visible !== void 0 && A.setVisibility(i.visible), i.bbVisible !== void 0 && A.setLinesVisibility(i.bbVisible), i.parentId !== void 0 && this._setParent({ ...i, parentId: i.parentId });
1257
- }
1258
- _deleteLight(A) {
1259
- this._detachTransformControls(A), A.parent.remove(A);
1260
- }
1261
- _deleteModel(A) {
1262
- this._detachTransformControls(A), A.parent.remove(A);
1263
- }
1264
- _deletePrimitive(A) {
1265
- this._detachTransformControls(A), A.parent.remove(A);
1266
- }
1267
- _deleteGroup(A) {
1268
- this._detachTransformControls(A);
1269
- for (let i = A.members.length - 1; i >= 0; i--)
1270
- this.attach(A.members[i]);
1271
- A.parent.remove(A);
1272
- }
1273
- _setParent(A) {
1274
- const i = this.getSceneObject(A);
1275
- if (A.parentId !== null) {
1276
- const t = this.getSceneObject({
1277
- id: A.parentId,
1278
- entityType: A.entityType
1279
- });
1280
- if (!t) return;
1281
- t.attach(i);
1282
- } else
1283
- this.attach(i);
1284
- }
1285
- _detachTransformControls(A) {
1286
- this._findScene(A).children.find((i) => {
1287
- "isTransformControls" in i && i.detach();
1288
- });
1289
- }
1290
- _findScene(A) {
1291
- return A.parent !== null ? this._findScene(A.parent) : A;
1292
- }
1293
- }
1294
- const Gi = "#dddddd", Di = "#888888", $ = 50, mi = 1, pi = 10;
1295
- class IA extends L {
1296
- constructor(A) {
1297
- super();
1298
- e(this, "_mesh");
1299
- e(this, "_material");
1300
- e(this, "_gridSize");
1301
- this.name = "Grid", this._gridSize = (A == null ? void 0 : A.gridSize) ?? mi;
1302
- const i = (A == null ? void 0 : A.majorLineEvery) ?? pi, t = new mA($, $);
1303
- t.rotateX(-Math.PI / 2), this._material = new si({
1304
- ...ni.grid,
1305
- uniforms: {
1306
- uGridSize: { value: this._gridSize },
1307
- uMajorLineEvery: { value: i },
1308
- uMinorLineColor: { value: new O(Gi) },
1309
- uMajorLineColor: { value: new O(Di) },
1310
- uFadeDistance: { value: $ / 2 }
1311
- },
1312
- transparent: !0,
1313
- depthWrite: !1,
1314
- side: ii
1315
- }), this._mesh = new M(t, this._material), this._mesh.layers.mask = ti, this._mesh.frustumCulled = !1, this._mesh.renderOrder = -1, this._mesh.onBeforeRender = (o, s, a) => {
1316
- const w = this._gridSize;
1317
- this._mesh.position.x = Math.round(a.position.x / w) * w, this._mesh.position.z = Math.round(a.position.z / w) * w, this._mesh.updateMatrixWorld(!0);
1318
- }, this.add(this._mesh);
1319
- }
1320
- setVisibility(A) {
1321
- this.visible = A;
1322
- }
1323
- setGridSize(A) {
1324
- this._gridSize = A, this._material.uniforms.uGridSize.value = A;
1325
- }
1326
- setMajorLineEvery(A) {
1327
- this._material.uniforms.uMajorLineEvery.value = A;
1328
- }
1329
- dispose() {
1330
- this._mesh.geometry.dispose(), this._material.dispose();
1331
- }
1332
- }
1333
- const dA = {
1334
- displayFloor: !1,
1335
- displayGrid: !1,
1336
- gridSize: 1,
1337
- gridMajorLineEvery: 5,
1338
- backgroundColor: "transparent"
1339
- };
1340
- class Ki extends uA {
1341
- constructor(A) {
1342
- super();
1343
- e(this, "isDIVEScene", !0);
1344
- e(this, "_settings");
1345
- e(this, "_root");
1346
- e(this, "_grid", null);
1347
- this._settings = { ...dA, ...A ?? {} }, this.setBackground(this._settings.backgroundColor), this._root = new ui(), this._root.floor.setVisibility(this._settings.displayFloor), this.add(this._root), this._settings.displayGrid && (this._grid = new IA({
1348
- gridSize: this._settings.gridSize,
1349
- majorLineEvery: this._settings.gridMajorLineEvery
1350
- }), this._grid.setVisibility(this._settings.displayGrid), this.add(this._grid));
1351
- }
1352
- get root() {
1353
- return this._root;
1354
- }
1355
- get grid() {
1356
- return this._grid || (this._grid = new IA({
1357
- gridSize: this._settings.gridSize,
1358
- majorLineEvery: this._settings.gridMajorLineEvery
1359
- }), this._grid.setVisibility(this._settings.displayGrid), this.add(this._grid)), this._grid;
1360
- }
1361
- setBackground(A) {
1362
- A === "transparent" ? this.background = null : typeof A == "string" || typeof A == "number" ? this.background = new O(A) : this.background = A;
1363
- }
1364
- computeSceneBB() {
1365
- return this._root.computeSceneBB();
1366
- }
1367
- dispose() {
1368
- this.remove(this._root), this._grid && this.remove(this._grid);
1369
- }
1370
- }
1371
- const li = {
1372
- enableDamping: !0,
1373
- dampingFactor: 0.05,
1374
- enabled: !0,
1375
- target: new u(),
1376
- minDistance: 0,
1377
- maxDistance: 1 / 0,
1378
- minZoom: 0,
1379
- maxZoom: 1 / 0,
1380
- minPolarAngle: 0,
1381
- maxPolarAngle: Math.PI,
1382
- minAzimuthAngle: -1 / 0,
1383
- maxAzimuthAngle: 1 / 0,
1384
- enableZoom: !0,
1385
- zoomSpeed: 1,
1386
- enableRotate: !0,
1387
- rotateSpeed: 1,
1388
- enablePan: !0,
1389
- panSpeed: 1,
1390
- screenSpacePanning: !0,
1391
- keyPanSpeed: 7,
1392
- autoRotate: !1,
1393
- autoRotateSpeed: 2,
1394
- keys: {
1395
- LEFT: "ArrowLeft",
1396
- UP: "ArrowUp",
1397
- RIGHT: "ArrowRight",
1398
- BOTTOM: "ArrowDown"
1399
- },
1400
- mouseButtons: {
1401
- LEFT: K.ROTATE,
1402
- MIDDLE: K.DOLLY,
1403
- RIGHT: K.PAN
1404
- },
1405
- touches: {
1406
- ONE: l.ROTATE,
1407
- TWO: l.DOLLY_PAN
1408
- }
1409
- }, Q = class Q extends ei {
1410
- constructor(A, i, t) {
1411
- super();
1412
- // public API
1413
- e(this, "object");
1414
- e(this, "domElements");
1415
- e(this, "enabled", !0);
1416
- e(this, "target", new u());
1417
- e(this, "minDistance", 0);
1418
- e(this, "maxDistance", 1 / 0);
1419
- e(this, "minZoom", 0);
1420
- e(this, "maxZoom", 1 / 0);
1421
- e(this, "minPolarAngle", 0);
1422
- // radians
1423
- e(this, "maxPolarAngle", Math.PI);
1424
- // radians
1425
- e(this, "minAzimuthAngle", -1 / 0);
1426
- // radians
1427
- e(this, "maxAzimuthAngle", 1 / 0);
1428
- // radians
1429
- e(this, "enableDamping", !0);
1430
- e(this, "dampingFactor", 0.05);
1431
- e(this, "enableZoom", !0);
1432
- e(this, "zoomSpeed", 1);
1433
- e(this, "enableRotate", !0);
1434
- e(this, "rotateSpeed", 1);
1435
- e(this, "enablePan", !0);
1436
- e(this, "panSpeed", 1);
1437
- e(this, "screenSpacePanning", !0);
1438
- e(this, "keyPanSpeed", 7);
1439
- e(this, "autoRotate", !1);
1440
- e(this, "autoRotateSpeed", 2);
1441
- e(this, "keys", {
1442
- LEFT: "ArrowLeft",
1443
- UP: "ArrowUp",
1444
- RIGHT: "ArrowRight",
1445
- BOTTOM: "ArrowDown"
1446
- });
1447
- e(this, "mouseButtons", {
1448
- LEFT: K.ROTATE,
1449
- MIDDLE: K.DOLLY,
1450
- RIGHT: K.PAN
1451
- });
1452
- e(this, "touches", { ONE: l.ROTATE, TWO: l.DOLLY_PAN });
1453
- e(this, "target0");
1454
- e(this, "position0");
1455
- e(this, "zoom0");
1456
- e(this, "uuid", eA.generateUUID());
1457
- // private state
1458
- e(this, "state", -1);
1459
- e(this, "EPS", 1e-6);
1460
- e(this, "spherical", new BA());
1461
- e(this, "sphericalDelta", new BA());
1462
- e(this, "scale", 1);
1463
- e(this, "panOffset", new u());
1464
- e(this, "zoomChanged", !1);
1465
- e(this, "rotateStart", new G());
1466
- e(this, "rotateEnd", new G());
1467
- e(this, "rotateDelta", new G());
1468
- e(this, "panStart", new G());
1469
- e(this, "panEnd", new G());
1470
- e(this, "panDelta", new G());
1471
- e(this, "dollyStart", new G());
1472
- e(this, "dollyEnd", new G());
1473
- e(this, "dollyDelta", new G());
1474
- e(this, "pointers", []);
1475
- e(this, "pointerPositions", {});
1476
- // for update() function
1477
- e(this, "offset", new u());
1478
- e(this, "quat");
1479
- e(this, "quatInverse");
1480
- e(this, "lastPosition", new u());
1481
- e(this, "lastQuaternion", new cA());
1482
- e(this, "lastTarget", new u());
1483
- e(this, "panLeft", (() => {
1484
- const A = new u();
1485
- return (i, t) => {
1486
- A.setFromMatrixColumn(t, 0), A.multiplyScalar(-i), this.panOffset.add(A);
1487
- };
1488
- })());
1489
- e(this, "panUp", (() => {
1490
- const A = new u();
1491
- return (i, t) => {
1492
- this.screenSpacePanning === !0 ? A.setFromMatrixColumn(t, 1) : (A.setFromMatrixColumn(t, 0), A.crossVectors(this.object.up, A)), A.multiplyScalar(i), this.panOffset.add(A);
1493
- };
1494
- })());
1495
- e(this, "onMouseDown", (A) => {
1496
- let i;
1497
- switch (A.button) {
1498
- case 0:
1499
- i = this.mouseButtons.LEFT;
1500
- break;
1501
- case 1:
1502
- i = this.mouseButtons.MIDDLE;
1503
- break;
1504
- case 2:
1505
- i = this.mouseButtons.RIGHT;
1506
- break;
1507
- default:
1508
- i = -1;
1509
- }
1510
- switch (i) {
1511
- case K.DOLLY:
1512
- if (this.enableZoom === !1) return;
1513
- this.handleMouseDownDolly(A), this.state = 1;
1514
- break;
1515
- case K.ROTATE:
1516
- if (A.ctrlKey || A.metaKey || A.shiftKey) {
1517
- if (this.enablePan === !1) return;
1518
- this.handleMouseDownPan(A), this.state = 2;
1519
- } else {
1520
- if (this.enableRotate === !1) return;
1521
- this.handleMouseDownRotate(A), this.state = 0;
1522
- }
1523
- break;
1524
- case K.PAN:
1525
- if (A.ctrlKey || A.metaKey || A.shiftKey) {
1526
- if (this.enableRotate === !1) return;
1527
- this.handleMouseDownRotate(A), this.state = 0;
1528
- } else {
1529
- if (this.enablePan === !1) return;
1530
- this.handleMouseDownPan(A), this.state = 2;
1531
- }
1532
- break;
1533
- default:
1534
- this.state = -1;
1535
- }
1536
- this.state !== -1 && this.dispatchEvent({ type: "start" });
1537
- });
1538
- e(this, "onMouseMove", (A) => {
1539
- if (this.enabled !== !1)
1540
- switch (this.state) {
1541
- case 0:
1542
- if (this.enableRotate === !1) return;
1543
- this.handleMouseMoveRotate(A);
1544
- break;
1545
- case 1:
1546
- if (this.enableZoom === !1) return;
1547
- this.handleMouseMoveDolly(A);
1548
- break;
1549
- case 2:
1550
- if (this.enablePan === !1) return;
1551
- this.handleMouseMovePan(A);
1552
- break;
1553
- }
1554
- });
1555
- e(this, "onMouseWheel", (A) => {
1556
- this.enabled === !1 || this.enableZoom === !1 || this.state !== -1 || (A.preventDefault(), this.dispatchEvent({ type: "start" }), this.handleMouseWheel(A), this.dispatchEvent({ type: "end" }));
1557
- });
1558
- e(this, "onKeyDown", (A) => {
1559
- this.enabled === !1 || this.enablePan === !1 || this.handleKeyDown(A);
1560
- });
1561
- e(this, "onTouchStart", (A) => {
1562
- switch (this.trackPointer(A), this.pointers.length) {
1563
- case 1:
1564
- switch (this.touches.ONE) {
1565
- case l.ROTATE:
1566
- if (this.enableRotate === !1) return;
1567
- this.handleTouchStartRotate(A), this.state = 3;
1568
- break;
1569
- case l.PAN:
1570
- if (this.enablePan === !1) return;
1571
- this.handleTouchStartPan(A), this.state = 4;
1572
- break;
1573
- default:
1574
- this.state = -1;
1575
- }
1576
- break;
1577
- case 2:
1578
- switch (this.touches.TWO) {
1579
- case l.DOLLY_PAN:
1580
- if (this.enableZoom === !1 && this.enablePan === !1)
1581
- return;
1582
- this.handleTouchStartDollyPan(A), this.state = 5;
1583
- break;
1584
- case l.DOLLY_ROTATE:
1585
- if (this.enableZoom === !1 && this.enableRotate === !1)
1586
- return;
1587
- this.handleTouchStartDollyRotate(A), this.state = 6;
1588
- break;
1589
- default:
1590
- this.state = -1;
1591
- }
1592
- break;
1593
- default:
1594
- this.state = -1;
1595
- }
1596
- this.state !== -1 && this.dispatchEvent({ type: "start" });
1597
- });
1598
- e(this, "onTouchMove", (A) => {
1599
- switch (this.trackPointer(A), this.state) {
1600
- case 3:
1601
- if (this.enableRotate === !1) return;
1602
- this.handleTouchMoveRotate(A), this.update();
1603
- break;
1604
- case 4:
1605
- if (this.enablePan === !1) return;
1606
- this.handleTouchMovePan(A), this.update();
1607
- break;
1608
- case 5:
1609
- if (this.enableZoom === !1 && this.enablePan === !1)
1610
- return;
1611
- this.handleTouchMoveDollyPan(A), this.update();
1612
- break;
1613
- case 6:
1614
- if (this.enableZoom === !1 && this.enableRotate === !1)
1615
- return;
1616
- this.handleTouchMoveDollyRotate(A), this.update();
1617
- break;
1618
- default:
1619
- this.state = -1;
1620
- }
1621
- });
1622
- e(this, "onPointerDown", (A) => {
1623
- if (this.enabled !== !1) {
1624
- if (this.pointers.length === 0) {
1625
- const i = A.currentTarget;
1626
- i.setPointerCapture(A.pointerId), i.addEventListener("pointermove", this.onPointerMove), i.addEventListener("pointerup", this.onPointerUp);
1627
- }
1628
- this.isTrackingPointer(A) || (this.addPointer(A), A.pointerType === "touch" ? this.onTouchStart(A) : this.onMouseDown(A));
1629
- }
1630
- });
1631
- e(this, "onPointerMove", (A) => {
1632
- this.enabled !== !1 && (A.pointerType === "touch" ? this.onTouchMove(A) : this.onMouseMove(A));
1633
- });
1634
- e(this, "onPointerUp", (A) => {
1635
- if (this.removePointer(A), this.pointers.length === 0) {
1636
- const i = A.currentTarget;
1637
- i.releasePointerCapture(A.pointerId), i.removeEventListener("pointermove", this.onPointerMove), i.removeEventListener("pointerup", this.onPointerUp), this.dispatchEvent({ type: "end" }), this.state = -1;
1638
- }
1639
- });
1640
- e(this, "onPointerCancel", (A) => {
1641
- this.removePointer(A);
1642
- });
1643
- e(this, "onContextMenu", (A) => {
1644
- this.enabled !== !1 && A.preventDefault();
1645
- });
1646
- this.object = A, this.domElements = Array.isArray(i) ? i : [i], Object.assign(this, t), this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this.quat = new cA().setFromUnitVectors(
1647
- A.up,
1648
- new u(0, 1, 0)
1649
- ), this.quatInverse = this.quat.clone().invert(), this.domElements.forEach((o) => this.addEventListeners(o)), this.update();
1650
- }
1651
- get domElement() {
1652
- return this.domElements[0];
1653
- }
1654
- tick() {
1655
- this.enabled && this.update();
1656
- }
1657
- getPolarAngle() {
1658
- return this.spherical.phi;
1659
- }
1660
- getAzimuthalAngle() {
1661
- return this.spherical.theta;
1662
- }
1663
- getDistance() {
1664
- return this.object.position.distanceTo(this.target);
1665
- }
1666
- saveState() {
1667
- this.target0.copy(this.target), this.position0.copy(this.object.position), this.zoom0 = this.object.zoom;
1668
- }
1669
- reset() {
1670
- this.target.copy(this.target0), this.object.position.copy(this.position0), this.object.zoom = this.zoom0, this.object.updateProjectionMatrix(), this.dispatchEvent({ type: "change" }), this.update(), this.state = -1;
1671
- }
1672
- update() {
1673
- return this.offset.copy(this.object.position).sub(this.target), this.offset.applyQuaternion(this.quat), this.spherical.setFromVector3(this.offset), this.autoRotate && this.state === -1 && this.rotateLeft(this.getAutoRotationAngle()), this.enableDamping ? (this.spherical.theta += this.sphericalDelta.theta * this.dampingFactor, this.spherical.phi += this.sphericalDelta.phi * this.dampingFactor) : (this.spherical.theta += this.sphericalDelta.theta, this.spherical.phi += this.sphericalDelta.phi), this.spherical.theta = Math.max(
1674
- this.minAzimuthAngle,
1675
- Math.min(this.maxAzimuthAngle, this.spherical.theta)
1676
- ), this.spherical.phi = Math.max(
1677
- this.minPolarAngle,
1678
- Math.min(this.maxPolarAngle, this.spherical.phi)
1679
- ), this.spherical.makeSafe(), this.spherical.radius *= this.scale, this.spherical.radius = Math.max(
1680
- this.minDistance,
1681
- Math.min(this.maxDistance, this.spherical.radius)
1682
- ), this.enableDamping === !0 ? this.target.addScaledVector(this.panOffset, this.dampingFactor) : this.target.add(this.panOffset), this.offset.setFromSpherical(this.spherical), this.offset.applyQuaternion(this.quatInverse), this.object.position.copy(this.target).add(this.offset), this.object.lookAt(this.target), this.enableDamping === !0 ? (this.sphericalDelta.theta *= 1 - this.dampingFactor, this.sphericalDelta.phi *= 1 - this.dampingFactor, this.panOffset.multiplyScalar(1 - this.dampingFactor)) : (this.sphericalDelta.set(0, 0, 0), this.panOffset.set(0, 0, 0)), this.scale = 1, this.zoomChanged || this.lastPosition.distanceToSquared(this.object.position) > this.EPS || 8 * (1 - this.lastQuaternion.dot(this.object.quaternion)) > this.EPS || this.lastTarget.distanceToSquared(this.target) > this.EPS ? (this.dispatchEvent({ type: "change" }), this.lastPosition.copy(this.object.position), this.lastQuaternion.copy(this.object.quaternion), this.lastTarget.copy(this.target), this.zoomChanged = !1, !0) : !1;
1683
- }
1684
- dispose() {
1685
- this.domElements.forEach(
1686
- (A) => this.removeEventListeners(A)
1687
- ), this.dispatchEvent({ type: "dispose" });
1688
- }
1689
- addDomElements(...A) {
1690
- A.forEach((i) => {
1691
- this.domElements.includes(i) || (this.domElements.push(i), this.addEventListeners(i));
1692
- });
1693
- }
1694
- removeDomElements(...A) {
1695
- A.forEach((i) => {
1696
- const t = this.domElements.indexOf(i);
1697
- t > -1 && (this.removeEventListeners(i), this.domElements.splice(t, 1));
1698
- });
1699
- }
1700
- setDomElements(...A) {
1701
- this.removeDomElements(...this.domElements), this.domElements = [], this.addDomElements(...A);
1702
- }
1703
- computeEncompassingView(A, i = 0) {
1704
- const t = A.center, s = A.sphere.radius, a = this.object.fov * (Math.PI / 180), w = this.object.aspect, H = a / 2, W = Math.atan(Math.tan(H) * w), d = s / Math.sin(H), F = s / Math.sin(W), q = Math.max(d, F) * (1 + i), N = this.object.position.clone().sub(this.target).normalize(), S = N.length() > 1e-3 ? N : new u(0, 0, 1);
1705
- return {
1706
- position: t.clone().add(S.multiplyScalar(q)),
1707
- target: t
1708
- };
1709
- }
1710
- focusObject(A, i = 0) {
1711
- const t = new AA(A), o = this.computeEncompassingView(t, i);
1712
- this.object.position.copy(o.position), this.target.copy(o.target), this.update();
1713
- }
1714
- zoomIn(A) {
1715
- this.dollyIn(Math.pow(0.95, A ?? Q.DEFAULT_ZOOM_FACTOR)), this.update();
1716
- }
1717
- zoomOut(A) {
1718
- this.dollyOut(
1719
- Math.pow(0.95, A ?? Q.DEFAULT_ZOOM_FACTOR)
1720
- ), this.update();
1721
- }
1722
- getState() {
1723
- return {
1724
- target: this.target.clone(),
1725
- azimuthalAngle: this.getAzimuthalAngle(),
1726
- polarAngle: this.getPolarAngle(),
1727
- distance: this.getDistance(),
1728
- position: this.object.position.clone(),
1729
- quaternion: this.object.quaternion.clone()
1730
- };
1731
- }
1732
- setState(A) {
1733
- this.target.copy(A.target), this.object.position.copy(A.position), this.object.quaternion.copy(A.quaternion), this.update();
1734
- }
1735
- //
1736
- // Private methods
1737
- //
1738
- addEventListeners(A) {
1739
- A.style.touchAction = "none", A.addEventListener("contextmenu", this.onContextMenu), A.addEventListener("pointerdown", this.onPointerDown), A.addEventListener("pointercancel", this.onPointerCancel), A.addEventListener("wheel", this.onMouseWheel, {
1740
- passive: !1
1741
- }), A.addEventListener("keydown", this.onKeyDown);
1742
- }
1743
- removeEventListeners(A) {
1744
- A.removeEventListener("contextmenu", this.onContextMenu), A.removeEventListener("pointerdown", this.onPointerDown), A.removeEventListener("pointercancel", this.onPointerCancel), A.removeEventListener("wheel", this.onMouseWheel), A.removeEventListener("keydown", this.onKeyDown), A.removeEventListener("pointermove", this.onPointerMove), A.removeEventListener("pointerup", this.onPointerUp);
1745
- }
1746
- getAutoRotationAngle() {
1747
- return 2 * Math.PI / 60 / 60 * this.autoRotateSpeed;
1748
- }
1749
- getZoomScale() {
1750
- return Math.pow(0.95, this.zoomSpeed);
1751
- }
1752
- rotateLeft(A) {
1753
- this.sphericalDelta.theta -= A;
1754
- }
1755
- rotateUp(A) {
1756
- this.sphericalDelta.phi -= A;
1757
- }
1758
- pan(A, i, t) {
1759
- const o = new u();
1760
- if ("isPerspectiveCamera" in this.object) {
1761
- const s = this.object.position;
1762
- o.copy(s).sub(this.target);
1763
- let a = o.length();
1764
- a *= Math.tan(
1765
- this.object.fov / 2 * Math.PI / 180
1766
- ), this.panLeft(
1767
- 2 * A * a / t.clientHeight,
1768
- this.object.matrix
1769
- ), this.panUp(
1770
- 2 * i * a / t.clientHeight,
1771
- this.object.matrix
1772
- );
1773
- } else "isOrthographicCamera" in this.object ? (this.panLeft(
1774
- A * (this.object.right - this.object.left) / this.object.zoom / t.clientWidth,
1775
- this.object.matrix
1776
- ), this.panUp(
1777
- i * (this.object.top - this.object.bottom) / this.object.zoom / t.clientHeight,
1778
- this.object.matrix
1779
- )) : (console.warn(
1780
- "WARNING: OrbitController encountered an unknown camera type - pan disabled."
1781
- ), this.enablePan = !1);
1782
- }
1783
- dollyIn(A) {
1784
- "isPerspectiveCamera" in this.object || "isOrthographicCamera" in this.object ? this.scale *= A : (console.warn(
1785
- "WARNING: OrbitController encountered an unknown camera type - dolly/zoom disabled."
1786
- ), this.enableZoom = !1);
1787
- }
1788
- dollyOut(A) {
1789
- "isPerspectiveCamera" in this.object || "isOrthographicCamera" in this.object ? this.scale /= A : (console.warn(
1790
- "WARNING: OrbitController encountered an unknown camera type - dolly/zoom disabled."
1791
- ), this.enableZoom = !1);
1792
- }
1793
- // event callbacks
1794
- handleMouseDownRotate(A) {
1795
- this.rotateStart.set(A.clientX, A.clientY);
1796
- }
1797
- handleMouseDownDolly(A) {
1798
- this.dollyStart.set(A.clientX, A.clientY);
1799
- }
1800
- handleMouseDownPan(A) {
1801
- this.panStart.set(A.clientX, A.clientY);
1802
- }
1803
- handleMouseMoveRotate(A) {
1804
- this.rotateEnd.set(A.clientX, A.clientY), this.rotateDelta.subVectors(this.rotateEnd, this.rotateStart).multiplyScalar(this.rotateSpeed);
1805
- const i = A.currentTarget;
1806
- this.rotateLeft(
1807
- 2 * Math.PI * this.rotateDelta.x / i.clientHeight
1808
- ), this.rotateUp(
1809
- 2 * Math.PI * this.rotateDelta.y / i.clientHeight
1810
- ), this.rotateStart.copy(this.rotateEnd), this.update();
1811
- }
1812
- handleMouseMoveDolly(A) {
1813
- this.dollyEnd.set(A.clientX, A.clientY), this.dollyDelta.subVectors(this.dollyEnd, this.dollyStart), this.dollyDelta.y > 0 ? this.dollyIn(this.getZoomScale()) : this.dollyDelta.y < 0 && this.dollyOut(this.getZoomScale()), this.dollyStart.copy(this.dollyEnd), this.update();
1814
- }
1815
- handleMouseMovePan(A) {
1816
- const i = A.currentTarget;
1817
- this.panEnd.set(A.clientX, A.clientY), this.panDelta.subVectors(this.panEnd, this.panStart).multiplyScalar(this.panSpeed), this.pan(this.panDelta.x, this.panDelta.y, i), this.panStart.copy(this.panEnd), this.update();
1818
- }
1819
- handleMouseWheel(A) {
1820
- A.deltaY < 0 ? this.dollyIn(this.getZoomScale()) : A.deltaY > 0 && this.dollyOut(this.getZoomScale()), this.update();
1821
- }
1822
- handleKeyDown(A) {
1823
- let i = !1;
1824
- const t = A.currentTarget;
1825
- switch (A.code) {
1826
- case this.keys.UP:
1827
- this.pan(0, this.keyPanSpeed, t), i = !0;
1828
- break;
1829
- case this.keys.BOTTOM:
1830
- this.pan(0, -this.keyPanSpeed, t), i = !0;
1831
- break;
1832
- case this.keys.LEFT:
1833
- this.pan(this.keyPanSpeed, 0, t), i = !0;
1834
- break;
1835
- case this.keys.RIGHT:
1836
- this.pan(-this.keyPanSpeed, 0, t), i = !0;
1837
- break;
1838
- }
1839
- i && (A.preventDefault(), this.update());
1840
- }
1841
- handleTouchStartRotate(A) {
1842
- if (this.pointers.length === 1)
1843
- this.rotateStart.set(A.pageX, A.pageY);
1844
- else {
1845
- const i = this.getSecondPointer(A), t = 0.5 * (A.pageX + i.pageX), o = 0.5 * (A.pageY + i.pageY);
1846
- this.rotateStart.set(t, o);
1847
- }
1848
- }
1849
- handleTouchStartPan(A) {
1850
- if (this.pointers.length === 1)
1851
- this.panStart.set(A.pageX, A.pageY);
1852
- else {
1853
- const i = this.getSecondPointer(A), t = 0.5 * (A.pageX + i.pageX), o = 0.5 * (A.pageY + i.pageY);
1854
- this.panStart.set(t, o);
1855
- }
1856
- }
1857
- handleTouchStartDolly(A) {
1858
- const i = this.getSecondPointer(A), t = A.pageX - i.pageX, o = A.pageY - i.pageY, s = Math.sqrt(t * t + o * o);
1859
- this.dollyStart.set(0, s);
1860
- }
1861
- handleTouchStartDollyPan(A) {
1862
- this.enableZoom && this.handleTouchStartDolly(A), this.enablePan && this.handleTouchStartPan(A);
1863
- }
1864
- handleTouchStartDollyRotate(A) {
1865
- this.enableZoom && this.handleTouchStartDolly(A), this.enableRotate && this.handleTouchStartRotate(A);
1866
- }
1867
- handleTouchMoveRotate(A) {
1868
- if (this.pointers.length === 1)
1869
- this.rotateEnd.set(A.pageX, A.pageY);
1870
- else {
1871
- const t = this.getSecondPointer(A), o = 0.5 * (A.pageX + t.pageX), s = 0.5 * (A.pageY + t.pageY);
1872
- this.rotateEnd.set(o, s);
1873
- }
1874
- const i = A.currentTarget;
1875
- this.rotateDelta.subVectors(this.rotateEnd, this.rotateStart).multiplyScalar(this.rotateSpeed), this.rotateLeft(
1876
- 2 * Math.PI * this.rotateDelta.x / i.clientHeight
1877
- ), this.rotateUp(
1878
- 2 * Math.PI * this.rotateDelta.y / i.clientHeight
1879
- ), this.rotateStart.copy(this.rotateEnd);
1880
- }
1881
- handleTouchMovePan(A) {
1882
- if (this.pointers.length === 1)
1883
- this.panEnd.set(A.pageX, A.pageY);
1884
- else {
1885
- const t = this.getSecondPointer(A), o = 0.5 * (A.pageX + t.pageX), s = 0.5 * (A.pageY + t.pageY);
1886
- this.panEnd.set(o, s);
1887
- }
1888
- const i = A.currentTarget;
1889
- this.panDelta.subVectors(this.panEnd, this.panStart).multiplyScalar(this.panSpeed), this.pan(this.panDelta.x, this.panDelta.y, i), this.panStart.copy(this.panEnd);
1890
- }
1891
- handleTouchMoveDolly(A) {
1892
- const i = this.getSecondPointer(A), t = A.pageX - i.pageX, o = A.pageY - i.pageY, s = Math.sqrt(t * t + o * o);
1893
- this.dollyEnd.set(0, s), this.dollyDelta.set(
1894
- 0,
1895
- Math.pow(this.dollyEnd.y / this.dollyStart.y, this.zoomSpeed)
1896
- ), this.dollyOut(this.dollyDelta.y), this.dollyStart.copy(this.dollyEnd);
1897
- }
1898
- handleTouchMoveDollyPan(A) {
1899
- this.enableZoom && this.handleTouchMoveDolly(A), this.enablePan && this.handleTouchMovePan(A);
1900
- }
1901
- handleTouchMoveDollyRotate(A) {
1902
- this.enableZoom && this.handleTouchMoveDolly(A), this.enableRotate && this.handleTouchMoveRotate(A);
1903
- }
1904
- addPointer(A) {
1905
- this.pointers.push(A);
1906
- }
1907
- removePointer(A) {
1908
- delete this.pointerPositions[A.pointerId];
1909
- for (let i = 0; i < this.pointers.length; i++)
1910
- if (this.pointers[i].pointerId == A.pointerId) {
1911
- this.pointers.splice(i, 1);
1912
- return;
1913
- }
1914
- }
1915
- trackPointer(A) {
1916
- let i = this.pointerPositions[A.pointerId];
1917
- i === void 0 && (i = new G(), this.pointerPositions[A.pointerId] = i), i.set(A.pageX, A.pageY);
1918
- }
1919
- getSecondPointer(A) {
1920
- return this.pointers[0].pointerId === A.pointerId ? this.pointers[1] : this.pointers[0];
1921
- }
1922
- isTrackingPointer(A) {
1923
- return this.pointers.some(
1924
- (i) => i.pointerId === A.pointerId
1925
- );
1926
- }
1927
- };
1928
- e(Q, "DEFAULT_ZOOM_FACTOR", 1);
1929
- let CA = Q;
1930
- const vi = `
1931
- @@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@
1932
- @@@@+-:::::::---------------------==------------------------------=#@@@@
1933
- @@%=::::.......::---------------------------------------------------------+@@
1934
- @@+:::...........::-----------------------------------------------------------#@@
1935
- @@=:::.........::::::-------------------------------------------------------------%@
1936
- @%:::.......:::::::-----------------------------------------------------------------#@
1937
- @*:::.....:::::-----------------------------------------------------------------------*@
1938
- @%::::::.::::---------------------------------------------------------------------------@@
1939
- @@-:::::::::-----------------------------------------------------------------------------=@
1940
- @%::::::::--------------------------------------------------------------------------------%@
1941
- @+::::::::--------------------------------=@@@@@%-----------------------------------------%@
1942
- @=:::::::--------------------------------*@@ @@+---------------------------------------#@
1943
- @+:::::::-------------------------------*@ @*--------------------------------------%@
1944
- @#::::::::-----------------------------=@@ @@=-------------------------------------%@
1945
- @@-::::::::----------------------------@@ @@------------------------------------=@
1946
- @%:::::::::--------------------------*@ @*-----------------------------------@@
1947
- @*:::::::::-------------------------@@ @@----------------------------------%@
1948
- @#::::::::::----------------------%@ @%--------------------------------%@
1949
- @#:::::::::::-------------------=@@ @@=------------------------------%@
1950
- @@-::::::::::::----------------%@ @%----------------------------=@@
1951
- @@#::::::::::::::------------*@ @*--------------------------#@@
1952
- @@+::::::::::::::::--------@@ @@------------------------+@@
1953
- @@*:::::::::::::::::----@@ @@---------------------+@@
1954
- @@@-:::::::::::::::--#@ @#-----------------=%@@
1955
- @@%-::::::::::::-%@ @%-------------=%@@
1956
- @@@@+:::::::#@@ @@*-------*@@@@
1957
- @@@@@@@ @@@@@@
1958
- `;
1959
- window.DIVE = {
1960
- instances: [],
1961
- get instance() {
1962
- return window.DIVE.instances[0];
1963
- }
1964
- };
1965
- const T = {
1966
- autoStart: !0,
1967
- displayAxes: !1,
1968
- ...dA,
1969
- ...oi,
1970
- ...KA,
1971
- ...li
1972
- };
1973
- class Hi {
1974
- constructor(g) {
1975
- // descriptive members
1976
- e(this, "_instanceId", eA.generateUUID());
1977
- e(this, "_settings");
1978
- e(this, "_views");
1979
- e(this, "_mainView");
1980
- e(this, "_scene");
1981
- e(this, "_clock");
1982
- e(this, "_orientationDisplay", null);
1983
- this._settings = {
1984
- ...T,
1985
- ...g ?? {}
1986
- }, this._clock = new fi(), this._scene = new Ki({
1987
- backgroundColor: (g == null ? void 0 : g.backgroundColor) ?? T.backgroundColor,
1988
- displayGrid: (g == null ? void 0 : g.displayGrid) ?? T.displayGrid,
1989
- displayFloor: (g == null ? void 0 : g.displayFloor) ?? T.displayFloor
1990
- });
1991
- const A = new zA(
1992
- this._scene,
1993
- new PA(),
1994
- this._settings
1995
- );
1996
- this._clock.addTicker(A), this._views = [A], this._mainView = A, this._settings.displayAxes && import("../plugins/orientationdisplay/index.mjs").then(
1997
- ({ OrientationDisplay: i }) => {
1998
- this._orientationDisplay = new i(
1999
- this.mainView.renderer,
2000
- this.scene,
2001
- this.mainView.camera
2002
- ), this._clock.addTicker(this._orientationDisplay);
2003
- }
2004
- ), this._settings.autoStart && this.start(), console.log(
2005
- "DIVE 2.3.8 initialized successfully!"
2006
- ), console.log(vi), window.DIVE.instances.push(this);
2007
- }
2008
- /**
2009
- * @deprecated This static method will be removed in a future version. Please use `import { QuickView, QuickViewSettings, QuickViewDefaultSettings } from '@shopware-ag/dive/quickview'` instead.
2010
- */
2011
- static async QuickView(g, A) {
2012
- return import("../plugins/quickview/index.mjs").then(
2013
- ({ QuickView: i }) => i(g, A)
2014
- );
2015
- }
2016
- /**
2017
- * @deprecated This property will be removed in a future version. Please use properties on the DIVE instance and mainView directly.
2018
- */
2019
- get engine() {
2020
- return {
2021
- scene: this.scene,
2022
- camera: this.mainView.camera,
2023
- renderer: this.mainView.renderer,
2024
- setCanvas: (g) => {
2025
- this.mainView.setCanvas(g);
2026
- },
2027
- clock: this.clock,
2028
- start: () => {
2029
- this.start();
2030
- },
2031
- stop: () => {
2032
- this.stop();
2033
- },
2034
- dispose: () => {
2035
- this.dispose();
2036
- }
2037
- };
2038
- }
2039
- get views() {
2040
- return this._views;
2041
- }
2042
- get mainView() {
2043
- return this._mainView;
2044
- }
2045
- get canvas() {
2046
- return this.mainView.canvas;
2047
- }
2048
- get scene() {
2049
- return this._scene;
2050
- }
2051
- get clock() {
2052
- return this._clock;
2053
- }
2054
- start() {
2055
- this._clock.start();
2056
- }
2057
- stop() {
2058
- this._clock.stop();
2059
- }
2060
- async dispose() {
2061
- return new Promise((g) => {
2062
- this._views.forEach((A) => {
2063
- A.dispose();
2064
- }), this._views = [], this._orientationDisplay && (this._clock.removeTicker(this._orientationDisplay), this._orientationDisplay.dispose()), this.scene.dispose(), window.DIVE.instances = window.DIVE.instances.filter(
2065
- (A) => A._instanceId !== this._instanceId
2066
- ), g();
2067
- });
2068
- }
2069
- /**
2070
- * @deprecated This method will be removed in a future version. To create a new view, use `QuickView` instead.
2071
- */
2072
- createView(g) {
2073
- const A = new zA(
2074
- this._scene,
2075
- g ?? new PA(),
2076
- {
2077
- ...this._settings,
2078
- canvas: void 0
2079
- // instantiate new canvas for created view
2080
- }
2081
- );
2082
- return this._views.push(A), this._clock.addTicker(A), this._views.length === 1 && (this._mainView = A), A;
2083
- }
2084
- /**
2085
- * @deprecated This method will be removed in a future version.
2086
- */
2087
- disposeView(g) {
2088
- this._views = this._views.filter((A) => A !== g), this._clock.removeTicker(g), this._mainView === g && (this._mainView = this._views[0]), g.dispose();
2089
- }
2090
- }
2091
- const Mi = Hi, di = {
2092
- glb: {
2093
- key: "glb",
2094
- extension: "glb"
2095
- },
2096
- gltf: {
2097
- key: "gltf",
2098
- extension: "gltf"
2099
- },
2100
- usdz: {
2101
- key: "usdz",
2102
- extension: "usdz"
2103
- },
2104
- step: {
2105
- key: "step",
2106
- extension: "step"
2107
- },
2108
- stp: {
2109
- key: "stp",
2110
- extension: "stp"
2111
- },
2112
- iges: {
2113
- key: "iges",
2114
- extension: "iges"
2115
- },
2116
- igs: {
2117
- key: "igs",
2118
- extension: "igs"
2119
- }
2120
- }, Li = Object.values(di).map(
2121
- (h) => h.extension
2122
- );
2123
- export {
2124
- AA as B,
2125
- T as D,
2126
- di as F,
2127
- Di as G,
2128
- CA as O,
2129
- Li as S,
2130
- li as a,
2131
- Hi as b,
2132
- HA as c,
2133
- ci as d,
2134
- fi as e,
2135
- Mi as f,
2136
- ri as g,
2137
- ai as h,
2138
- wi as i,
2139
- IA as j,
2140
- Ci as k,
2141
- tA as l,
2142
- Pi as m,
2143
- Ii as n,
2144
- Oi as o,
2145
- lA as p,
2146
- KA as q,
2147
- Bi as r,
2148
- ui as s,
2149
- Ki as t,
2150
- dA as u,
2151
- zi as v,
2152
- zA as w,
2153
- Gi as x,
2154
- vA as y
2155
- };