bruce-cesium 7.7.3 → 7.7.5

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.
@@ -11,10 +11,13 @@ const tileset_render_engine_1 = require("./tileset-render-engine");
11
11
  */
12
12
  var XGridsRenderEngine;
13
13
  (function (XGridsRenderEngine) {
14
+ /*
15
+ * Loads a scan with optional SDK tuning and per-viewer budget control.
16
+ */
14
17
  function Render(params) {
15
- var _a, _b, _c;
18
+ var _a, _b, _c, _d;
16
19
  const { api, viewer, tileset } = params;
17
- if (!LCCRender) {
20
+ if (typeof LCCRender === "undefined" || typeof (LCCRender === null || LCCRender === void 0 ? void 0 : LCCRender.load) !== "function") {
18
21
  console.warn("[XGridsRenderEngine] Render() LCCRender library not available.");
19
22
  return null;
20
23
  }
@@ -57,6 +60,46 @@ var XGridsRenderEngine;
57
60
  if (loadUrl.indexOf("?") !== -1) {
58
61
  loadUrl = loadUrl.split("?")[0];
59
62
  }
63
+ let maxSplats = 6000000;
64
+ /*
65
+ * Configures optional LOD capabilities once metadata or initial geometry is ready.
66
+ */
67
+ const configure = (object, ready) => {
68
+ var _a, _b, _c;
69
+ if (!object || object["_nextspaceLodRemoved"] || object["_nextspaceLodConfigured"] || ((_a = viewer.isDestroyed) === null || _a === void 0 ? void 0 : _a.call(viewer))) {
70
+ return;
71
+ }
72
+ try {
73
+ if (typeof object.setMaxSplats !== "function") {
74
+ return;
75
+ }
76
+ const lods = typeof object.getLodInfos === "function" ? object.getLodInfos() : undefined;
77
+ const adaptive = (LCCRender.nextspaceAdaptiveLod === 1 &&
78
+ typeof object.setNextspaceMetadataCallback === "function" &&
79
+ Array.isArray(lods) &&
80
+ typeof object.setVisible === "function" &&
81
+ typeof object.setLodAutoLevelUp === "function");
82
+ // Unpatched SDKs still need the legacy clamp to avoid their fixed LOD shortcut.
83
+ const budget = !adaptive && (lods === null || lods === void 0 ? void 0 : lods[0]) > maxSplats && (lods === null || lods === void 0 ? void 0 : lods[1]) > 0
84
+ ? Math.min(maxSplats, lods[1]) : maxSplats;
85
+ object.setMaxSplats(budget);
86
+ // A requested fly-to needs its initial data before off-screen culling can take over.
87
+ if (adaptive &&
88
+ (!params.flyTo || ready) &&
89
+ ((_b = viewer.scene.preUpdate) === null || _b === void 0 ? void 0 : _b.addEventListener) &&
90
+ ((_c = viewer.scene.postRender) === null || _c === void 0 ? void 0 : _c.addEventListener)) {
91
+ const controller = viewer["_nextspaceXGridsLod"] ||
92
+ (viewer["_nextspaceXGridsLod"] = new AdaptiveLod(viewer));
93
+ controller.Add(object, maxSplats);
94
+ controller.Update();
95
+ }
96
+ object["_nextspaceLodConfigured"] = !params.flyTo || ready;
97
+ }
98
+ catch (error) {
99
+ // Optional SDK tuning must not abort its metadata parsing or the Cesium render loop.
100
+ console.warn("[XGridsRenderEngine] Optional LOD setup unavailable.", error);
101
+ }
102
+ };
60
103
  const obj = LCCRender.load({
61
104
  camera: viewer.camera,
62
105
  scene: viewer.scene,
@@ -70,24 +113,19 @@ var XGridsRenderEngine;
70
113
  // When true it makes the new pieces fade-in.
71
114
  // The look is similar to sectioning in cesium. Might be a nice setting.
72
115
  useLoadingEffect: false
73
- }, async () => {
74
- var _a, _b;
75
- // Array index is the LOD level, ie: index 0 = LOD 0.
76
- const lods = obj.getLodInfos();
77
- //console.log("xgrids-getLodInfos()", lods);
78
- const HARD_MIN = 1000000;
79
- const HARD_MAX = 20000000;
80
- const maxSplats = Math.max(lods ? lods[0] || 0 : 0, HARD_MIN);
81
- obj.setMaxSplats(Math.min(HARD_MAX, maxSplats));
82
- if (maxSplats >= HARD_MAX) {
83
- console.warn("Reduced splat quality due to the number of splats being too large. Was: \"" + maxSplats + "\", now is: \"" + HARD_MAX + "\".");
116
+ }, async (loaded) => {
117
+ var _a, _b, _c;
118
+ const object = loaded || obj;
119
+ if (!object || object["_nextspaceLodRemoved"] || ((_a = viewer.isDestroyed) === null || _a === void 0 ? void 0 : _a.call(viewer))) {
120
+ return;
84
121
  }
122
+ configure(object, true);
85
123
  // Auto fly to.
86
124
  if (params.flyTo) {
87
- const pos3d = (_b = (_a = obj === null || obj === void 0 ? void 0 : obj.getBounds) === null || _a === void 0 ? void 0 : _a.call(obj)) === null || _b === void 0 ? void 0 : _b.origin;
125
+ const pos3d = typeof object.getBounds === "function" ? (_b = object.getBounds()) === null || _b === void 0 ? void 0 : _b.origin : undefined;
88
126
  if (pos3d && bruce_models_1.Cartes.ValidateCartes3(pos3d)) {
89
127
  const altered = await drawing_utils_1.DrawingUtils.RaisePos3d(viewer, pos3d, 300);
90
- if (altered && bruce_models_1.Cartes.ValidateCartes3(altered)) {
128
+ if (!object["_nextspaceLodRemoved"] && !((_c = viewer.isDestroyed) === null || _c === void 0 ? void 0 : _c.call(viewer)) && altered && bruce_models_1.Cartes.ValidateCartes3(altered)) {
91
129
  viewer.scene.camera.flyTo({
92
130
  destination: altered,
93
131
  orientation: {
@@ -102,14 +140,46 @@ var XGridsRenderEngine;
102
140
  }
103
141
  }
104
142
  });
143
+ if (!obj) {
144
+ return null;
145
+ }
146
+ try {
147
+ const sdkBudget = typeof obj.getCurrentConfig === "function" ? (_d = obj.getCurrentConfig()) === null || _d === void 0 ? void 0 : _d.maxLoadSplatCount : undefined;
148
+ // Preserve the SDK's mobile and weak-GPU limits before applying any temporary startup cap.
149
+ maxSplats = Number.isFinite(sdkBudget) && sdkBudget > 0 && sdkBudget <= 2000000 ? sdkBudget : 6000000;
150
+ if (LCCRender.nextspaceMetadataReady === 1 &&
151
+ typeof obj.setNextspaceMetadataCallback === "function" &&
152
+ typeof obj.setMaxSplats === "function") {
153
+ obj.setNextspaceMetadataCallback((object) => configure(object, false));
154
+ obj.setMaxSplats(Math.min(maxSplats, 1000000));
155
+ }
156
+ }
157
+ catch (error) {
158
+ console.warn("[XGridsRenderEngine] Optional startup LOD setup unavailable.", error);
159
+ }
160
+ if (typeof (obj === null || obj === void 0 ? void 0 : obj.setRenderState) === "function") {
161
+ // Splats must respect nearer meshes already drawn in the same Cesium pass.
162
+ obj.setRenderState({
163
+ depthTest: {
164
+ enabled: true,
165
+ func: Cesium.WebGLConstants.LEQUAL
166
+ },
167
+ // Transparent Gaussian edges must not occlude the splats blended behind them.
168
+ depthMask: false
169
+ });
170
+ }
105
171
  if (typeof (obj === null || obj === void 0 ? void 0 : obj.setVisible) === "function") {
106
172
  obj.setVisible(true);
107
173
  }
108
174
  tileset_render_engine_1.TilesetRenderEngine.WatchDateRange(viewer, obj, tileset);
109
175
  // Highest LOD.
110
- obj.setStartLod(0);
176
+ if (typeof obj.setStartLod === "function") {
177
+ obj.setStartLod(0);
178
+ }
111
179
  // Max distance for rendering.
112
- obj.setMaxDistance(800);
180
+ if (typeof obj.setMaxDistance === "function") {
181
+ obj.setMaxDistance(800);
182
+ }
113
183
  // Adjust LODs based on camera distance.
114
184
  if (typeof obj.setLodAutoLevelUp === "function") {
115
185
  obj.setLodAutoLevelUp(true);
@@ -117,18 +187,299 @@ var XGridsRenderEngine;
117
187
  return obj;
118
188
  }
119
189
  XGridsRenderEngine.Render = Render;
190
+ /*
191
+ * Detaches optional tuning before unloading the scan.
192
+ */
120
193
  function Remove(viewer, renderObject) {
194
+ var _a;
121
195
  if (!renderObject) {
122
196
  return;
123
197
  }
124
- if (!LCCRender) {
198
+ renderObject["_nextspaceLodRemoved"] = true;
199
+ delete renderObject.nextspaceOnMetadata;
200
+ (_a = viewer === null || viewer === void 0 ? void 0 : viewer["_nextspaceXGridsLod"]) === null || _a === void 0 ? void 0 : _a.Remove(renderObject);
201
+ tileset_render_engine_1.TilesetRenderEngine.UnwatchDateRange(viewer, renderObject);
202
+ if (typeof LCCRender === "undefined" || typeof (LCCRender === null || LCCRender === void 0 ? void 0 : LCCRender.unload) !== "function") {
125
203
  console.warn("[XGridsRenderEngine] Remove() LCCRender library not available.");
126
204
  return;
127
205
  }
128
- tileset_render_engine_1.TilesetRenderEngine.UnwatchDateRange(viewer, renderObject);
129
206
  LCCRender.unload(renderObject);
130
207
  }
131
208
  XGridsRenderEngine.Remove = Remove;
209
+ /*
210
+ * Shares a bounded splat budget across visible scans without overriding layer or timeline visibility.
211
+ */
212
+ class AdaptiveLod {
213
+ /*
214
+ * Observes scene updates and rendered frames for this viewer only.
215
+ */
216
+ constructor(viewer) {
217
+ this.viewer = viewer;
218
+ this.entries = [];
219
+ this.removals = [];
220
+ this.lastUpdate = -Infinity;
221
+ this.lastAllocation = -Infinity;
222
+ this.lastFrame = 0;
223
+ this.lastMove = 0;
224
+ this.slowSince = 0;
225
+ this.fastSince = 0;
226
+ this.lastChange = -Infinity;
227
+ this.scale = 1;
228
+ this.position = new Cesium.Cartesian3();
229
+ this.direction = new Cesium.Cartesian3();
230
+ this.havePose = false;
231
+ this.removals.push(viewer.scene.preUpdate.addEventListener(() => {
232
+ try {
233
+ this.Update();
234
+ }
235
+ catch (error) {
236
+ console.warn("[XGridsRenderEngine] Optional LOD controller disabled.", error);
237
+ this.Dispose();
238
+ }
239
+ }));
240
+ this.removals.push(viewer.scene.postRender.addEventListener(() => {
241
+ const camera = viewer.scene.camera;
242
+ const moving = this.havePose && (Cesium.Cartesian3.distanceSquared(camera.positionWC, this.position) > 0.000001 ||
243
+ Cesium.Cartesian3.distanceSquared(camera.directionWC, this.direction) > 0.00000001);
244
+ Cesium.Cartesian3.clone(camera.positionWC, this.position);
245
+ Cesium.Cartesian3.clone(camera.directionWC, this.direction);
246
+ this.havePose = true;
247
+ this.ObserveFrame(performance.now(), moving);
248
+ }));
249
+ }
250
+ /*
251
+ * Registers a scan while preserving the caller's visibility intent.
252
+ */
253
+ Add(object, maxBudget) {
254
+ var _a, _b, _c, _d;
255
+ if (this.entries.some(entry => entry.object === object)) {
256
+ return;
257
+ }
258
+ if (typeof object.setMaxSplats !== "function") {
259
+ return;
260
+ }
261
+ const lods = typeof object.getLodInfos === "function" ? object.getLodInfos() : undefined;
262
+ const finest = lods === null || lods === void 0 ? void 0 : lods[0];
263
+ const coarsest = (lods === null || lods === void 0 ? void 0 : lods.length) > 1 ? lods[lods.length - 1] : 0;
264
+ const entry = {
265
+ object, maxBudget,
266
+ capacity: Number.isFinite(finest) && finest > 0 ? Math.min(maxBudget, finest) : maxBudget,
267
+ minimum: Number.isFinite(coarsest) && coarsest > 0 ? Math.min(maxBudget, coarsest) : 0,
268
+ wantedVisible: ((_b = (_a = object.getCurrentConfig) === null || _a === void 0 ? void 0 : _a.call(object)) === null || _b === void 0 ? void 0 : _b.visible) !== false,
269
+ visible: ((_d = (_c = object.getCurrentConfig) === null || _c === void 0 ? void 0 : _c.call(object)) === null || _d === void 0 ? void 0 : _d.visible) !== false,
270
+ culled: false, setVisible: object.setVisible, budget: -1, nodeBudget: -1,
271
+ radiusPixels: Infinity, surfaceDistance: Infinity, weight: 1, near: false
272
+ };
273
+ if (typeof entry.setVisible === "function") {
274
+ object.setVisible = (visible) => {
275
+ entry.wantedVisible = !!visible;
276
+ this.applyVisibility(entry);
277
+ this.lastUpdate = -Infinity;
278
+ this.lastAllocation = -Infinity;
279
+ };
280
+ }
281
+ this.entries.push(entry);
282
+ this.lastMove = performance.now();
283
+ this.lastUpdate = -Infinity;
284
+ this.lastAllocation = -Infinity;
285
+ }
286
+ /*
287
+ * Combines explicit visibility with temporary camera culling.
288
+ */
289
+ applyVisibility(entry) {
290
+ const visible = entry.wantedVisible && !entry.culled;
291
+ if (entry.visible !== visible && typeof entry.setVisible === "function") {
292
+ entry.visible = visible;
293
+ entry.setVisible.call(entry.object, visible);
294
+ this.viewer.scene.requestRender();
295
+ }
296
+ }
297
+ /*
298
+ * Render pressure uses elapsed wall time because a paused timeline must still adapt.
299
+ */
300
+ ObserveFrame(now, moving) {
301
+ const gap = now - this.lastFrame;
302
+ this.lastFrame = now;
303
+ if (moving) {
304
+ this.lastMove = now;
305
+ }
306
+ if (!moving || gap <= 0 || gap > 1000) {
307
+ this.slowSince = this.fastSince = 0;
308
+ return;
309
+ }
310
+ this.slowSince = gap > 40 ? this.slowSince || now : 0;
311
+ this.fastSince = gap < 22 ? this.fastSince || now : 0;
312
+ if (now - this.lastChange < 4000) {
313
+ return;
314
+ }
315
+ if (this.slowSince && now - this.slowSince >= 1500 && this.scale > 0.25) {
316
+ this.scale = Math.max(0.25, this.scale * 0.75);
317
+ this.lastChange = now;
318
+ this.slowSince = this.fastSince = 0;
319
+ this.lastUpdate = -Infinity;
320
+ }
321
+ else if (this.fastSince && now - this.fastSince >= 6000 && this.scale < 1) {
322
+ this.scale = Math.min(1, this.scale + 0.125);
323
+ this.lastChange = now;
324
+ this.slowSince = this.fastSince = 0;
325
+ this.lastUpdate = -Infinity;
326
+ }
327
+ }
328
+ /*
329
+ * Estimates visible screen coverage and distance, failing open for unknown bounds.
330
+ */
331
+ measure(entry) {
332
+ var _a;
333
+ entry.weight = 1;
334
+ entry.radiusPixels = entry.surfaceDistance = Infinity;
335
+ try {
336
+ const object = entry.object;
337
+ const bounds = (_a = object.getBounds) === null || _a === void 0 ? void 0 : _a.call(object);
338
+ const matrix = object.modelMatrix;
339
+ const camera = this.viewer.scene.camera;
340
+ const width = this.viewer.scene.drawingBufferWidth;
341
+ const height = this.viewer.scene.drawingBufferHeight;
342
+ if (!(bounds === null || bounds === void 0 ? void 0 : bounds.min) || !(bounds === null || bounds === void 0 ? void 0 : bounds.max) || !matrix || !(width > 0 && height > 0)) {
343
+ entry.culled = false;
344
+ return;
345
+ }
346
+ const center = Cesium.Cartesian3.midpoint(bounds.min, bounds.max, new Cesium.Cartesian3());
347
+ Cesium.Matrix4.multiplyByPoint(matrix, center, center);
348
+ const scale = Cesium.Matrix4.getMaximumScale(matrix);
349
+ const radius = Cesium.Cartesian3.distance(bounds.min, bounds.max) * scale * 0.55 + 1;
350
+ const distance = Cesium.Cartesian3.distance(camera.positionWC, center);
351
+ const pixel = camera.frustum.getPixelDimensions(width, height, Math.max(1, distance), 1, new Cesium.Cartesian2());
352
+ const pixels = radius / Math.max(pixel.x, pixel.y);
353
+ if (!Number.isFinite(pixels) || !(radius > 0)) {
354
+ entry.culled = false;
355
+ return;
356
+ }
357
+ const sphere = new Cesium.BoundingSphere(center, radius);
358
+ const frustum = camera.frustum.computeCullingVolume(camera.positionWC, camera.directionWC, camera.upWC);
359
+ const outside = frustum.computeVisibility(sphere) === Cesium.Intersect.OUTSIDE;
360
+ entry.culled = outside || pixels < (entry.culled ? 1.5 : 0.75);
361
+ entry.radiusPixels = pixels;
362
+ entry.weight = Math.pow(Math.min(1, Math.max(0.05, pixels / height)), 2);
363
+ const local = Cesium.Matrix4.multiplyByPoint(Cesium.Matrix4.inverse(matrix, new Cesium.Matrix4()), camera.positionWC, new Cesium.Cartesian3());
364
+ const nearest = new Cesium.Cartesian3(Cesium.Math.clamp(local.x, bounds.min.x, bounds.max.x), Cesium.Math.clamp(local.y, bounds.min.y, bounds.max.y), Cesium.Math.clamp(local.z, bounds.min.z, bounds.max.z));
365
+ entry.surfaceDistance = Cesium.Cartesian3.distance(local, nearest) * scale;
366
+ }
367
+ catch {
368
+ // Unknown bounds or a changed optional SDK must fail open instead of hiding the scan.
369
+ entry.culled = false;
370
+ }
371
+ }
372
+ /*
373
+ * Allocates the shared hardware budget across visible scans with hysteresis.
374
+ */
375
+ Update(now = performance.now()) {
376
+ var _a, _b;
377
+ if ((_b = (_a = this.viewer).isDestroyed) === null || _b === void 0 ? void 0 : _b.call(_a)) {
378
+ this.Dispose();
379
+ return;
380
+ }
381
+ if (now - this.lastUpdate < 250) {
382
+ return;
383
+ }
384
+ this.lastUpdate = now;
385
+ // A still view can recover detail gradually without treating missing frames as a slow GPU.
386
+ if (now - this.lastMove > 3000 && now - this.lastChange > 6000 && this.scale < 1) {
387
+ this.scale = Math.min(1, this.scale + 0.125);
388
+ this.lastChange = now;
389
+ }
390
+ for (const entry of this.entries) {
391
+ this.measure(entry);
392
+ this.applyVisibility(entry);
393
+ }
394
+ const visible = this.entries.filter(entry => entry.wantedVisible && !entry.culled);
395
+ if (!visible.length || now - this.lastAllocation < 2000) {
396
+ return;
397
+ }
398
+ this.lastAllocation = now;
399
+ const maximum = Math.max(...visible.map(entry => entry.maxBudget));
400
+ const minimum = visible.reduce((sum, entry) => sum + Math.min(entry.capacity, entry.minimum), 0);
401
+ // Preserve authored coarse coverage when it fits; dropping below a whole tile can erase a scan.
402
+ const reserve = minimum <= maximum;
403
+ let remaining = Math.max(maximum * this.scale, reserve ? minimum : 0);
404
+ const allocations = new Map();
405
+ visible.forEach(entry => {
406
+ const floor = reserve ? Math.min(entry.capacity, entry.minimum) : 0;
407
+ allocations.set(entry, floor);
408
+ remaining -= floor;
409
+ });
410
+ let pending = visible.filter(entry => allocations.get(entry) < entry.capacity);
411
+ while (pending.length) {
412
+ const totalWeight = pending.reduce((sum, entry) => sum + entry.weight, 0);
413
+ const capped = pending.filter(entry => remaining * entry.weight / totalWeight >= entry.capacity - allocations.get(entry));
414
+ if (!capped.length) {
415
+ pending.forEach(entry => allocations.set(entry, allocations.get(entry) + remaining * entry.weight / totalWeight));
416
+ break;
417
+ }
418
+ capped.forEach(entry => {
419
+ remaining -= entry.capacity - allocations.get(entry);
420
+ allocations.set(entry, entry.capacity);
421
+ });
422
+ pending = pending.filter(entry => allocations.get(entry) < entry.capacity);
423
+ }
424
+ for (const entry of visible) {
425
+ const allocation = allocations.get(entry);
426
+ const step = allocation < 250000 ? 10000 : 250000;
427
+ const budget = allocation >= entry.capacity ? entry.capacity : Math.max(1, reserve ? entry.minimum : 0, Math.floor(allocation / step) * step);
428
+ const near = entry.surfaceDistance < (entry.near ? 20 : 12) && entry.radiusPixels > (entry.near ? 80 : 120);
429
+ entry.near = near;
430
+ const ceiling = entry.maxBudget <= 2000000 ? entry.maxBudget / 2 : near ? 4000000 : 2000000;
431
+ const nodeBudget = Math.max(1, Math.min(ceiling, entry.capacity <= ceiling ? budget : budget * (near ? 2 / 3 : 1 / 3)));
432
+ if (entry.budget !== budget) {
433
+ entry.object.setMaxSplats(budget);
434
+ entry.budget = budget;
435
+ this.viewer.scene.requestRender();
436
+ }
437
+ if (entry.nodeBudget !== nodeBudget && typeof entry.object.setMaxNodeSplats === "function") {
438
+ entry.object.setMaxNodeSplats(nodeBudget);
439
+ entry.nodeBudget = nodeBudget;
440
+ this.viewer.scene.requestRender();
441
+ }
442
+ }
443
+ }
444
+ /*
445
+ * Restores the scan's visibility method and releases unused listeners.
446
+ */
447
+ Remove(object) {
448
+ const entry = this.entries.find(entry => entry.object === object);
449
+ if (entry) {
450
+ object.setVisible = entry.setVisible;
451
+ this.entries = this.entries.filter(other => other !== entry);
452
+ this.lastUpdate = -Infinity;
453
+ this.lastAllocation = -Infinity;
454
+ }
455
+ if (!this.entries.length) {
456
+ this.Dispose();
457
+ }
458
+ }
459
+ /*
460
+ * Restores visibility intent and releases all controller listeners.
461
+ */
462
+ Dispose() {
463
+ this.removals.forEach(remove => remove());
464
+ this.removals = [];
465
+ this.entries.forEach(entry => {
466
+ entry.object.setVisible = entry.setVisible;
467
+ try {
468
+ if (entry.visible !== entry.wantedVisible && typeof entry.setVisible === "function") {
469
+ entry.setVisible.call(entry.object, entry.wantedVisible);
470
+ }
471
+ }
472
+ catch {
473
+ // A disposed or replaced optional SDK must not break viewer cleanup.
474
+ }
475
+ });
476
+ this.entries = [];
477
+ if (this.viewer["_nextspaceXGridsLod"] === this) {
478
+ delete this.viewer["_nextspaceXGridsLod"];
479
+ }
480
+ }
481
+ }
482
+ XGridsRenderEngine.AdaptiveLod = AdaptiveLod;
132
483
  /**
133
484
  * Applies position, rotation, and scale to a live XGrids render object.
134
485
  */
@@ -1 +1 @@
1
- {"version":3,"file":"xgrids-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/xgrids-render-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xgrids-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/xgrids-render-engine.ts"],"names":[],"mappings":";;;AAAA,+CAAyD;AACzD,iCAAiC;AACjC,mDAAoD;AACpD,0DAAsD;AACtD,mEAA8D;AAK9D;;GAEG;AACH,IAAiB,kBAAkB,CAgkBlC;AAhkBD,WAAiB,kBAAkB;IAG/B;;OAEG;IACH,SAAgB,MAAM,CAAC,MAKtB;;QACG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QACxC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,CAAA,KAAK,UAAU,EAAE;YAC3E,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;SACf;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAoC,CAAC;QAC9D,IAAI,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAC;QAChC,IAAI,QAAQ,CAAC,aAAa,EAAE;YACxB,QAAQ,GAAG,IAAI,CAAC;SACnB;QAED,IAAI,EAAE,GAA+B,SAAS,CAAC;QAE/C,mBAAmB;QACnB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAA,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,EAAE;YACjE,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CACxE,IAAA,uBAAY,EAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EACnC,IAAA,uBAAY,EAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EAClC,IAAA,uBAAY,EAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CACpC,CAAC,CAAC,CAAC;SACP;aACI;YACD,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAC1F;QAED,qBAAqB;QACrB,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YACjD,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/G,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAC3C,IAAA,uBAAY,EAAC,MAAA,QAAQ,CAAC,QAAQ,0CAAE,CAAC,CAAC,EAClC,IAAA,uBAAY,EAAC,MAAA,QAAQ,CAAC,QAAQ,0CAAE,CAAC,CAAC,EAClC,IAAA,uBAAY,EAAC,MAAA,QAAQ,CAAC,QAAQ,0CAAE,CAAC,CAAC,EAClC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAChC,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAA,uBAAY,EAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,KAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACjH,IAAI,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1F,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACzH,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5F,EAAE,GAAG,cAAc,CAAC;SACvB;QAED,IAAI,OAAO,GAAG,sBAAO,CAAC,UAAU,CAAC;YAC7B,IAAI,EAAE,OAAO,CAAC,YAAY,IAAI,UAAU;YACxC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,qDAAqD;YACrD,oDAAoD;YACpD,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,OAAO,CAAC,eAAe;YACnC,GAAG,EAAE,GAAG;SACX,CAAC,CAAC;QAEH,2BAA2B;QAC3B,oCAAoC;QACpC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACnC;QAED,IAAI,SAAS,GAAG,OAAS,CAAC;QAC1B;;WAEG;QACH,MAAM,SAAS,GAAG,CAAC,MAAW,EAAE,KAAc,EAAQ,EAAE;;YACpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,yBAAyB,CAAC,KAAI,MAAA,MAAM,CAAC,WAAW,sDAAI,CAAA,EAAE;gBAC1G,OAAO;aACV;YACD,IAAI;gBACA,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE;oBAC3C,OAAO;iBACV;gBACD,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzF,MAAM,QAAQ,GAAG,CACb,SAAS,CAAC,oBAAoB,KAAK,CAAC;oBACpC,OAAO,MAAM,CAAC,4BAA4B,KAAK,UAAU;oBACzD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACnB,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;oBACvC,OAAO,MAAM,CAAC,iBAAiB,KAAK,UAAU,CACjD,CAAC;gBACF,gFAAgF;gBAChF,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,IAAG,SAAS,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,IAAG,CAAC;oBAC9D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC5B,qFAAqF;gBACrF,IACI,QAAQ;oBACR,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;qBACxB,MAAA,MAAM,CAAC,KAAK,CAAC,SAAS,0CAAE,gBAAgB,CAAA;qBACxC,MAAA,MAAM,CAAC,KAAK,CAAC,UAAU,0CAAE,gBAAgB,CAAA,EAC3C;oBACE,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC;wBAC5C,CAAC,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC9D,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;oBAClC,UAAU,CAAC,MAAM,EAAE,CAAC;iBACvB;gBACD,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;aAC9D;YACD,OAAO,KAAK,EAAE;gBACV,qFAAqF;gBACrF,OAAO,CAAC,IAAI,CAAC,sDAAsD,EAAE,KAAK,CAAC,CAAC;aAC/E;QACL,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,IAAI;YACZ,6CAA6C;YAC7C,wEAAwE;YACxE,gBAAgB,EAAE,KAAK;SAC1B,EAAE,KAAK,EAAE,MAAY,EAAE,EAAE;;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC;YAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,sBAAsB,CAAC,KAAI,MAAA,MAAM,CAAC,WAAW,sDAAI,CAAA,EAAE;gBACrE,OAAO;aACV;YACD,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAExB,eAAe;YACf,IAAI,MAAM,CAAC,KAAK,EAAE;gBACd,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,SAAS,EAAE,0CAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9F,IAAI,KAAK,IAAI,qBAAM,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;oBACxC,MAAM,OAAO,GAAG,MAAM,4BAAY,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBAClE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,WAAW,sDAAI,CAAA,IAAI,OAAO,IAAI,qBAAM,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;wBAC1G,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;4BACtB,WAAW,EAAE,OAAO;4BACpB,WAAW,EAAE;gCACT,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gCACnC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;gCACnC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;6BACnC;4BACD,QAAQ,EAAE,CAAC;yBACd,CAAC,CAAC;wBACH,OAAO;qBACV;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,EAAE;YACN,OAAO,IAAI,CAAC;SACf;QACD,IAAI;YACA,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,gBAAgB,EAAE,0CAAE,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YACrH,2FAA2F;YAC3F,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,OAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAS,CAAC;YAC1G,IACI,SAAS,CAAC,sBAAsB,KAAK,CAAC;gBACtC,OAAO,GAAG,CAAC,4BAA4B,KAAK,UAAU;gBACtD,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,EACxC;gBACE,GAAG,CAAC,4BAA4B,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC5E,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAS,CAAC,CAAC,CAAC;aACpD;SACJ;QACD,OAAO,KAAK,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC;SACvF;QAED,IAAI,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,cAAc,CAAA,KAAK,UAAU,EAAE;YAC3C,2EAA2E;YAC3E,GAAG,CAAC,cAAc,CAAC;gBACf,SAAS,EAAE;oBACP,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM;iBACrC;gBACD,8EAA8E;gBAC9E,SAAS,EAAE,KAAK;aACnB,CAAC,CAAC;SACN;QAED,IAAI,OAAO,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,CAAA,KAAK,UAAU,EAAE;YACvC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,2CAAmB,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAEzD,eAAe;QACf,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE;YACvC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACtB;QAED,8BAA8B;QAC9B,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU,EAAE;YAC1C,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;SAC3B;QAED,wCAAwC;QACxC,IAAI,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,EAAE;YAC7C,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SAC/B;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IA5Me,yBAAM,SA4MrB,CAAA;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,MAAqB,EAAE,YAA2B;;QACrE,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QACD,YAAY,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;QAC5C,OAAO,YAAY,CAAC,mBAAmB,CAAC;QACxC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,qBAAqB,CAAC,0CAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QACtD,2CAAmB,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,KAAK,UAAU,EAAE;YAC7E,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;YAC/E,OAAO;SACV;QACD,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAbe,yBAAM,SAarB,CAAA;IAmBD;;OAEG;IACH,MAAa,WAAW;QAepB;;WAEG;QACH,YAAoB,MAAqB;YAArB,WAAM,GAAN,MAAM,CAAe;YAjBjC,YAAO,GAAgB,EAAE,CAAC;YAC1B,aAAQ,GAAmB,EAAE,CAAC;YAC9B,eAAU,GAAG,CAAC,QAAQ,CAAC;YACvB,mBAAc,GAAG,CAAC,QAAQ,CAAC;YAC3B,cAAS,GAAG,CAAC,CAAC;YACd,aAAQ,GAAG,CAAC,CAAC;YACb,cAAS,GAAG,CAAC,CAAC;YACd,cAAS,GAAG,CAAC,CAAC;YACd,eAAU,GAAG,CAAC,QAAQ,CAAC;YACvB,UAAK,GAAG,CAAC,CAAC;YACV,aAAQ,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACnC,cAAS,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,aAAQ,GAAG,KAAK,CAAC;YAMrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBAC5D,IAAI;oBACA,IAAI,CAAC,MAAM,EAAE,CAAC;iBACjB;gBACD,OAAO,KAAK,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;oBAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;iBAClB;YACL,CAAC,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,CAC5B,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ;oBAC9E,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU,CACrF,CAAC;gBACF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED;;WAEG;QACI,GAAG,CAAC,MAAW,EAAE,SAAiB;;YACrC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;gBACrD,OAAO;aACV;YACD,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,UAAU,EAAE;gBAC3C,OAAO;aACV;YACD,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACzF,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAc;gBACrB,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;gBACzF,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtF,aAAa,EAAE,CAAA,MAAA,MAAA,MAAM,CAAC,gBAAgB,sDAAI,0CAAE,OAAO,MAAK,KAAK;gBAC7D,OAAO,EAAE,CAAA,MAAA,MAAA,MAAM,CAAC,gBAAgB,sDAAI,0CAAE,OAAO,MAAK,KAAK;gBACvD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;gBACxE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK;aAC5E,CAAC;YACF,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE;gBACxC,MAAM,CAAC,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;oBACrC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC;oBAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC;gBACpC,CAAC,CAAC;aACL;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC;QACpC,CAAC;QAED;;WAEG;QACK,eAAe,CAAC,KAAgB;YACpC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACrD,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE;gBACrE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBACxB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;aACrC;QACL,CAAC;QAED;;WAEG;QACI,YAAY,CAAC,GAAW,EAAE,MAAe;YAC5C,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;YACrB,IAAI,MAAM,EAAE;gBACR,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;aACvB;YACD,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE;gBACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpC,OAAO;aACV;YACD,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE;gBAC9B,OAAO;aACV;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE;gBACrE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC;aAC/B;iBACI,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBACvE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;gBACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC;aAC/B;QACL,CAAC;QAED;;WAEG;QACK,OAAO,CAAC,KAAgB;;YAC5B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;YACtD,IAAI;gBACA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAA,MAAM,CAAC,SAAS,sDAAI,CAAC;gBACpC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC;gBACrD,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAA,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAA,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE;oBACvE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;oBACrB,OAAO;iBACV;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC3F,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBACvD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC;gBACrF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAClH,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;oBAC3C,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;oBACrB,OAAO;iBACV;gBACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxG,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC/E,KAAK,CAAC,MAAM,GAAG,OAAO,IAAI,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/D,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;gBAC5B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CACxC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,CACnG,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,UAAU,CACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EACtD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EACtD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACzD,CAAC;gBACF,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;aAC9E;YACD,MAAM;gBACF,sFAAsF;gBACtF,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;aACxB;QACL,CAAC;QAED;;WAEG;QACI,MAAM,CAAC,MAAc,WAAW,CAAC,GAAG,EAAE;;YACzC,IAAI,MAAA,MAAA,IAAI,CAAC,MAAM,EAAC,WAAW,kDAAI,EAAE;gBAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,OAAO;aACV;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE;gBAC7B,OAAO;aACV;YACD,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,2FAA2F;YAC3F,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;gBAC9E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;YACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aAC/B;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE;gBACrD,OAAO;aACV;YACD,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACjG,gGAAgG;YAChG,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC;YACnC,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;YACjD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACpB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC9B,SAAS,IAAI,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/E,OAAO,OAAO,CAAC,MAAM,EAAE;gBACnB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,IAAI,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1H,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBAChB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;oBAClH,MAAM;iBACT;gBACD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACnB,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACrD,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC9E;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBAClD,MAAM,MAAM,GAAG,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC9I,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC5G,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;gBAClB,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxH,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;oBACzB,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAClC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;oBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBACrC;gBACD,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;oBACxF,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;oBAC1C,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;iBACrC;aACJ;QACL,CAAC;QAED;;WAEG;QACI,MAAM,CAAC,MAAW;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YAClE,IAAI,KAAK,EAAE;gBACP,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC;gBAC5B,IAAI,CAAC,cAAc,GAAG,CAAC,QAAQ,CAAC;aACnC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;aAClB;QACL,CAAC;QAED;;WAEG;QACI,OAAO;YACV,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC3C,IAAI;oBACA,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,aAAa,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE;wBACjF,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;qBAC5D;iBACJ;gBACD,MAAM;oBACF,qEAAqE;iBACxE;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,KAAK,IAAI,EAAE;gBAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;aAC7C;QACL,CAAC;KACJ;IAzRY,8BAAW,cAyRvB,CAAA;IAED;;OAEG;IACH,SAAgB,aAAa,CAAC,MAM7B;QACG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE;YACf,OAAO;SACV;QAED,MAAM,GAAG,GAAG,IAAA,uBAAY,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAA,uBAAY,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAA,uBAAY,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAA,uBAAY,EAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,KAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,aAAa,EAAE;YAChB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU,EAAE;gBACnD,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;QAED,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE;YAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAC3C,IAAA,uBAAY,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,CAAC,CAAC,EACzB,IAAA,uBAAY,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,CAAC,CAAC,EACzB,IAAA,uBAAY,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,CAAC,CAAC,EACzB,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAChC,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,OAAO,YAAY,CAAC,WAAW,KAAK,UAAU,EAAE;gBAChD,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACvC;YACD,IAAI,OAAO,YAAY,CAAC,QAAQ,KAAK,UAAU,EAAE;gBAC7C,YAAY,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;aACrE;SACJ;IACL,CAAC;IAvCe,gCAAa,gBAuC5B,CAAA;AACL,CAAC,EAhkBgB,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAgkBlC"}
@@ -72,7 +72,7 @@ export * from "./widgets/widget-info-view";
72
72
  export * from "./widgets/widget-left-panel";
73
73
  export * from "./widgets/widget-nav-compass";
74
74
  export * from "./widgets/widget-view-bar";
75
- export declare const VERSION = "7.7.3";
75
+ export declare const VERSION = "7.7.5";
76
76
  /**
77
77
  * Updates the environment instance used by bruce-cesium to one specified.
78
78
  * This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
@@ -12,6 +12,30 @@ export declare namespace XGridsRenderEngine {
12
12
  flyTo?: boolean;
13
13
  }): TRenderObject | null;
14
14
  function Remove(viewer: Cesium.Viewer, renderObject: TRenderObject): void;
15
+ class AdaptiveLod {
16
+ private viewer;
17
+ private entries;
18
+ private removals;
19
+ private lastUpdate;
20
+ private lastAllocation;
21
+ private lastFrame;
22
+ private lastMove;
23
+ private slowSince;
24
+ private fastSince;
25
+ private lastChange;
26
+ private scale;
27
+ private position;
28
+ private direction;
29
+ private havePose;
30
+ constructor(viewer: Cesium.Viewer);
31
+ Add(object: any, maxBudget: number): void;
32
+ private applyVisibility;
33
+ ObserveFrame(now: number, moving: boolean): void;
34
+ private measure;
35
+ Update(now?: number): void;
36
+ Remove(object: any): void;
37
+ Dispose(): void;
38
+ }
15
39
  /**
16
40
  * Applies position, rotation, and scale to a live XGrids render object.
17
41
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-cesium",
3
- "version": "7.7.3",
3
+ "version": "7.7.5",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-cesium.umd.js",
@@ -84,7 +84,7 @@
84
84
  "typescript": "^5.0.4"
85
85
  },
86
86
  "dependencies": {
87
- "bruce-models": "^7.1.134",
87
+ "bruce-models": "^7.1.135",
88
88
  "tslib": "^2.4.1"
89
89
  }
90
90
  }