@ifc-lite/renderer 1.17.0 → 1.20.0
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.
- package/dist/deviation/deviation-pipeline.d.ts +48 -0
- package/dist/deviation/deviation-pipeline.d.ts.map +1 -0
- package/dist/deviation/deviation-pipeline.js +163 -0
- package/dist/deviation/deviation-pipeline.js.map +1 -0
- package/dist/deviation/deviation-shader.wgsl.d.ts +23 -0
- package/dist/deviation/deviation-shader.wgsl.d.ts.map +1 -0
- package/dist/deviation/deviation-shader.wgsl.js +237 -0
- package/dist/deviation/deviation-shader.wgsl.js.map +1 -0
- package/dist/deviation/triangle-bvh.d.ts +58 -0
- package/dist/deviation/triangle-bvh.d.ts.map +1 -0
- package/dist/deviation/triangle-bvh.js +255 -0
- package/dist/deviation/triangle-bvh.js.map +1 -0
- package/dist/device.d.ts +3 -0
- package/dist/device.d.ts.map +1 -1
- package/dist/device.js +10 -0
- package/dist/device.js.map +1 -1
- package/dist/edl-pass.d.ts +52 -0
- package/dist/edl-pass.d.ts.map +1 -0
- package/dist/edl-pass.js +204 -0
- package/dist/edl-pass.js.map +1 -0
- package/dist/index.d.ts +175 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +676 -110
- package/dist/index.js.map +1 -1
- package/dist/picker.d.ts +40 -3
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +211 -59
- package/dist/picker.js.map +1 -1
- package/dist/picking-manager.d.ts +32 -1
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +53 -1
- package/dist/picking-manager.js.map +1 -1
- package/dist/point-picker.d.ts +61 -0
- package/dist/point-picker.d.ts.map +1 -0
- package/dist/point-picker.js +223 -0
- package/dist/point-picker.js.map +1 -0
- package/dist/pointcloud/point-cloud-node.d.ts +63 -0
- package/dist/pointcloud/point-cloud-node.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-node.js +149 -0
- package/dist/pointcloud/point-cloud-node.js.map +1 -0
- package/dist/pointcloud/point-cloud-renderer.d.ts +166 -0
- package/dist/pointcloud/point-cloud-renderer.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-renderer.js +293 -0
- package/dist/pointcloud/point-cloud-renderer.js.map +1 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts +36 -0
- package/dist/pointcloud/point-cloud-uniforms.d.ts.map +1 -0
- package/dist/pointcloud/point-cloud-uniforms.js +89 -0
- package/dist/pointcloud/point-cloud-uniforms.js.map +1 -0
- package/dist/pointcloud/point-pipeline.d.ts +27 -0
- package/dist/pointcloud/point-pipeline.d.ts.map +1 -0
- package/dist/pointcloud/point-pipeline.js +126 -0
- package/dist/pointcloud/point-pipeline.js.map +1 -0
- package/dist/pointcloud/point-shader.wgsl.d.ts +22 -0
- package/dist/pointcloud/point-shader.wgsl.d.ts.map +1 -0
- package/dist/pointcloud/point-shader.wgsl.js +288 -0
- package/dist/pointcloud/point-shader.wgsl.js.map +1 -0
- package/dist/scene.d.ts +11 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +21 -0
- package/dist/scene.js.map +1 -1
- package/dist/section-2d-overlay.d.ts +24 -5
- package/dist/section-2d-overlay.d.ts.map +1 -1
- package/dist/section-2d-overlay.js +42 -13
- package/dist/section-2d-overlay.js.map +1 -1
- package/dist/section-plane-basis.d.ts +64 -0
- package/dist/section-plane-basis.d.ts.map +1 -0
- package/dist/section-plane-basis.js +86 -0
- package/dist/section-plane-basis.js.map +1 -0
- package/dist/section-plane.d.ts +18 -0
- package/dist/section-plane.d.ts.map +1 -1
- package/dist/section-plane.js +89 -6
- package/dist/section-plane.js.map +1 -1
- package/dist/types.d.ts +35 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export { SectionPlaneRenderer } from './section-plane.js';
|
|
|
12
12
|
export { Section2DOverlayRenderer } from './section-2d-overlay.js';
|
|
13
13
|
export { DEFAULT_CAP_STYLE, HATCH_PATTERN_IDS } from './section-cap-style.js';
|
|
14
14
|
export type { SectionCapStyle, HatchPatternId } from './section-cap-style.js';
|
|
15
|
+
export { planeBasis, nearestCardinalAxis } from './section-plane-basis.js';
|
|
16
|
+
export type { PlaneBasis, Vec3Tuple } from './section-plane-basis.js';
|
|
15
17
|
export type { Section2DOverlayOptions, Section2DOverlayCapStyle, CutPolygon2D, DrawingLine2D } from './section-2d-overlay.js';
|
|
16
18
|
export { Raycaster } from './raycaster.js';
|
|
17
19
|
export { SnapDetector, SnapType } from './snap-detector.js';
|
|
@@ -23,7 +25,15 @@ export type { Ray, Vec3, Intersection } from './raycaster.js';
|
|
|
23
25
|
export type { SnapTarget, SnapOptions, EdgeLockInput, MagneticSnapResult } from './snap-detector.js';
|
|
24
26
|
export { ZeroCopyGpuUploader, createZeroCopyUploader, type WasmMemoryHandle, type GpuGeometryData, type GpuInstancedGeometryData, type ZeroCopyMeshMetadata, type ZeroCopyUploadResult, type ZeroCopyInstancedUploadResult, } from './zero-copy-uploader.js';
|
|
25
27
|
export { PickingManager } from './picking-manager.js';
|
|
28
|
+
export type { PointPickProvider } from './picking-manager.js';
|
|
26
29
|
export { RaycastEngine } from './raycast-engine.js';
|
|
30
|
+
export { PointPicker, decodePickSample } from './point-picker.js';
|
|
31
|
+
export type { PointPickNode, DecodedPickSample } from './point-picker.js';
|
|
32
|
+
export type { PointPickSizing } from './picker.js';
|
|
33
|
+
export { PointCloudRenderer } from './pointcloud/point-cloud-renderer.js';
|
|
34
|
+
export type { PointCloudAssetHandle, PointCloudRenderOptions, PointColorMode, PointSizeMode, ResolvedSectionPlane as PointResolvedSectionPlane, } from './pointcloud/point-cloud-renderer.js';
|
|
35
|
+
export { PointRenderPipeline } from './pointcloud/point-pipeline.js';
|
|
36
|
+
export type { PointCloudChunkInput, PointCloudNode, PointCloudNodeMeta, } from './pointcloud/point-cloud-node.js';
|
|
27
37
|
import { RenderPipeline } from './pipeline.js';
|
|
28
38
|
import { Camera } from './camera.js';
|
|
29
39
|
import { Scene } from './scene.js';
|
|
@@ -33,6 +43,7 @@ import { type CutPolygon2D, type DrawingLine2D } from './section-2d-overlay.js';
|
|
|
33
43
|
import type { InstancedGeometry } from '@ifc-lite/wasm';
|
|
34
44
|
import { Raycaster, type Intersection } from './raycaster.js';
|
|
35
45
|
import { SnapDetector, type SnapTarget, type SnapOptions, type EdgeLockInput, type MagneticSnapResult } from './snap-detector.js';
|
|
46
|
+
import type { PointCloudAsset } from '@ifc-lite/geometry';
|
|
36
47
|
/**
|
|
37
48
|
* Main renderer class
|
|
38
49
|
*/
|
|
@@ -47,12 +58,28 @@ export declare class Renderer {
|
|
|
47
58
|
private sectionPlaneRenderer;
|
|
48
59
|
private section2DOverlayRenderer;
|
|
49
60
|
private postProcessor;
|
|
61
|
+
private edlPass;
|
|
62
|
+
private edlOptions;
|
|
63
|
+
private pointCloudRenderer;
|
|
64
|
+
private deviationPipeline;
|
|
65
|
+
/**
|
|
66
|
+
* Cache of which mesh-set the BVH was built from. We rebuild on
|
|
67
|
+
* `computeDeviations` only when the cached "fingerprint" misses,
|
|
68
|
+
* so re-running deviation against the same model is a fast
|
|
69
|
+
* dispatch — the BVH is multi-second on big BIMs and we don't
|
|
70
|
+
* want to pay that on every slider drag.
|
|
71
|
+
*/
|
|
72
|
+
private deviationBvhFingerprint;
|
|
50
73
|
private visualEnhancementState;
|
|
51
74
|
private modelBounds;
|
|
52
75
|
private pickingManager;
|
|
53
76
|
private raycastEngine;
|
|
54
77
|
private lastRenderErrorTime;
|
|
55
78
|
private readonly RENDER_ERROR_THROTTLE_MS;
|
|
79
|
+
private _renderCallCount;
|
|
80
|
+
private _renderSkipCount;
|
|
81
|
+
private _renderErrorCount;
|
|
82
|
+
private _lastRenderError;
|
|
56
83
|
private _renderRequested;
|
|
57
84
|
private _loggedSectionBounds;
|
|
58
85
|
private readonly uniformScratch;
|
|
@@ -62,6 +89,111 @@ export declare class Renderer {
|
|
|
62
89
|
* Initialize renderer
|
|
63
90
|
*/
|
|
64
91
|
init(): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Replace all loaded point clouds with `assets`.
|
|
94
|
+
*
|
|
95
|
+
* Phase 0 entry point — single-chunk inline assets from IFCx
|
|
96
|
+
* (`pcd::base64`, `points::array`, `points::base64`). Future phases
|
|
97
|
+
* accept streaming sources via a different overload.
|
|
98
|
+
*/
|
|
99
|
+
setPointClouds(assets: ReadonlyArray<PointCloudAsset>): void;
|
|
100
|
+
/** Append additional point clouds without clearing existing ones. */
|
|
101
|
+
addPointClouds(assets: ReadonlyArray<PointCloudAsset>): void;
|
|
102
|
+
/** Total number of point cloud assets currently uploaded. */
|
|
103
|
+
getPointCloudAssetCount(): number;
|
|
104
|
+
/** Total number of points across all point cloud assets. */
|
|
105
|
+
getPointCloudPointCount(): number;
|
|
106
|
+
/** Drop all point cloud GPU resources. */
|
|
107
|
+
clearPointClouds(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Streaming entry: open an empty asset that will receive chunks via
|
|
110
|
+
* `appendPointCloudChunk`. Call `endPointCloudStream` when no more
|
|
111
|
+
* chunks will arrive (currently a no-op but kept for symmetry).
|
|
112
|
+
*/
|
|
113
|
+
beginPointCloudStream(meta: {
|
|
114
|
+
expressId: number;
|
|
115
|
+
ifcType?: string;
|
|
116
|
+
modelIndex?: number;
|
|
117
|
+
}): import('./pointcloud/point-cloud-renderer.js').PointCloudAssetHandle;
|
|
118
|
+
appendPointCloudChunk(handle: import('./pointcloud/point-cloud-renderer.js').PointCloudAssetHandle, chunk: import('./pointcloud/point-cloud-node.js').PointCloudChunkInput): void;
|
|
119
|
+
endPointCloudStream(handle: import('./pointcloud/point-cloud-renderer.js').PointCloudAssetHandle): void;
|
|
120
|
+
removePointCloudAsset(handle: import('./pointcloud/point-cloud-renderer.js').PointCloudAssetHandle): void;
|
|
121
|
+
/**
|
|
122
|
+
* Reassign a streamed point-cloud's expressId after upload. Use
|
|
123
|
+
* this when the federation registry assigns a new model offset and
|
|
124
|
+
* the renderer needs to emit the post-offset globalId in picking
|
|
125
|
+
* outputs. The change takes effect on the next render — no GPU
|
|
126
|
+
* buffer rewrite needed.
|
|
127
|
+
*/
|
|
128
|
+
relabelPointCloudAsset(handle: import('./pointcloud/point-cloud-renderer.js').PointCloudAssetHandle, newExpressId: number): void;
|
|
129
|
+
/**
|
|
130
|
+
* Compute model bounds from triangle meshes + remaining point clouds.
|
|
131
|
+
* Called from removeAsset / clear paths so bounds shrink correctly.
|
|
132
|
+
* Triangle meshes still drive the bounds when present (existing
|
|
133
|
+
* Scene-driven path), so this only re-folds in the point cloud
|
|
134
|
+
* extents over whatever the mesh path left.
|
|
135
|
+
*/
|
|
136
|
+
private recomputeModelBounds;
|
|
137
|
+
/** Aggregate bounds across all batched + individual meshes. Returns
|
|
138
|
+
* null if the scene has no mesh geometry. */
|
|
139
|
+
private computeMeshBounds;
|
|
140
|
+
/** Apply rendering options (color mode, fixed override, point size). */
|
|
141
|
+
setPointCloudOptions(opts: import('./pointcloud/point-cloud-renderer.js').PointCloudRenderOptions): void;
|
|
142
|
+
/**
|
|
143
|
+
* Compute BIM ↔ scan deviation for every loaded point cloud asset.
|
|
144
|
+
*
|
|
145
|
+
* Walks every triangle in the scene (individual + batched meshes,
|
|
146
|
+
* regardless of which IFC ingest path produced them — STEP, IFCx,
|
|
147
|
+
* GLB, or federated combinations), builds a per-triangle BVH on
|
|
148
|
+
* the GPU, then runs a closest-point compute pass per chunk that
|
|
149
|
+
* writes signed distance into each chunk's deviation buffer.
|
|
150
|
+
*
|
|
151
|
+
* Returns metadata so the UI can populate a histogram + auto-range:
|
|
152
|
+
* the per-asset point count, the suggested ±range from the 95th
|
|
153
|
+
* percentile, and the bbox the BVH was built from.
|
|
154
|
+
*
|
|
155
|
+
* Idempotent: re-running with the same mesh set reuses the GPU
|
|
156
|
+
* BVH (the BVH build dominates wall time on big BIMs). Pass
|
|
157
|
+
* `forceRebuild: true` to invalidate.
|
|
158
|
+
*/
|
|
159
|
+
computeDeviations(opts?: {
|
|
160
|
+
/** Clip range applied during compute. 0 → no clip. Default 1m. */
|
|
161
|
+
maxRange?: number;
|
|
162
|
+
forceRebuild?: boolean;
|
|
163
|
+
}): Promise<{
|
|
164
|
+
bvhTriangles: number;
|
|
165
|
+
bvhNodes: number;
|
|
166
|
+
chunksProcessed: number;
|
|
167
|
+
pointsProcessed: number;
|
|
168
|
+
bounds: {
|
|
169
|
+
min: [number, number, number];
|
|
170
|
+
max: [number, number, number];
|
|
171
|
+
} | null;
|
|
172
|
+
suggestedHalfRange: number;
|
|
173
|
+
}>;
|
|
174
|
+
/**
|
|
175
|
+
* Aggregate every triangle source the scene exposes — individual
|
|
176
|
+
* meshes (created on demand by picking / highlights) AND batched
|
|
177
|
+
* meshes (the streaming geometry path's compact GPU buffers).
|
|
178
|
+
* Both formats arrive as `MeshData`; the BVH builder doesn't care
|
|
179
|
+
* which source they came from.
|
|
180
|
+
*/
|
|
181
|
+
private collectAllSceneMeshes;
|
|
182
|
+
/**
|
|
183
|
+
* Toggle Eye-Dome Lighting and tune its strength.
|
|
184
|
+
*
|
|
185
|
+
* EDL adds depth perception to point clouds (and meshes) via screen-
|
|
186
|
+
* space depth gradient — silhouette pixels get a soft black halo.
|
|
187
|
+
* Cheap: ~9 texture taps per pixel. Only runs when point clouds are
|
|
188
|
+
* loaded.
|
|
189
|
+
*/
|
|
190
|
+
setEdlOptions(opts: {
|
|
191
|
+
enabled?: boolean;
|
|
192
|
+
strength?: number;
|
|
193
|
+
radiusPx?: number;
|
|
194
|
+
highQuality?: boolean;
|
|
195
|
+
}): void;
|
|
196
|
+
private expandModelBoundsForPointClouds;
|
|
65
197
|
/**
|
|
66
198
|
* Load geometry from GeometryResult or MeshData array
|
|
67
199
|
* This is the main entry point for loading IFC geometry into the renderer
|
|
@@ -142,6 +274,21 @@ export declare class Renderer {
|
|
|
142
274
|
/**
|
|
143
275
|
* Render frame
|
|
144
276
|
*/
|
|
277
|
+
/** Get diagnostic info for mobile debugging */
|
|
278
|
+
getDiagnostics(): {
|
|
279
|
+
calls: number;
|
|
280
|
+
skips: number;
|
|
281
|
+
errors: number;
|
|
282
|
+
lastError: string;
|
|
283
|
+
batches: number;
|
|
284
|
+
meshes: number;
|
|
285
|
+
contextOk: boolean;
|
|
286
|
+
gpuErrors: number;
|
|
287
|
+
lastGpuError: string;
|
|
288
|
+
camPos: string;
|
|
289
|
+
camTgt: string;
|
|
290
|
+
bounds: string;
|
|
291
|
+
};
|
|
145
292
|
render(options?: RenderOptions): void;
|
|
146
293
|
/**
|
|
147
294
|
* Pick object at screen coordinates
|
|
@@ -152,6 +299,16 @@ export declare class Renderer {
|
|
|
152
299
|
* These are scaled internally to match the actual canvas pixel dimensions.
|
|
153
300
|
*/
|
|
154
301
|
pick(x: number, y: number, options?: PickOptions): Promise<PickResult | null>;
|
|
302
|
+
/**
|
|
303
|
+
* GPU-based rectangle pick. Drag-select returns the set of
|
|
304
|
+
* `expressId`s touched by any pixel inside `[x0,y0]..[x1,y1]`
|
|
305
|
+
* (CSS pixels, canvas-relative). Both meshes and point clouds
|
|
306
|
+
* participate.
|
|
307
|
+
*
|
|
308
|
+
* See `PickingManager.pickRect` for the visibility-filter +
|
|
309
|
+
* limitation notes.
|
|
310
|
+
*/
|
|
311
|
+
pickRect(x0: number, y0: number, x1: number, y1: number, options?: PickOptions): Promise<Set<number>>;
|
|
155
312
|
/**
|
|
156
313
|
* Raycast into the scene to get precise 3D intersection point
|
|
157
314
|
* This is more accurate than pick() as it returns the exact surface point
|
|
@@ -217,16 +374,30 @@ export declare class Renderer {
|
|
|
217
374
|
getCamera(): Camera;
|
|
218
375
|
getScene(): Scene;
|
|
219
376
|
/**
|
|
220
|
-
* Upload 2D section drawing data for 3D overlay rendering
|
|
221
|
-
*
|
|
222
|
-
*
|
|
377
|
+
* Upload 2D section drawing data for 3D overlay rendering.
|
|
378
|
+
*
|
|
379
|
+
* Cardinal-axis call site: pass `axis` + `position` percentage and the
|
|
380
|
+
* upload computes the plane offset along the cardinal axis using the
|
|
381
|
+
* model bounds (or `sectionRange` override). 2D points are then lifted
|
|
382
|
+
* to 3D via the cardinal-axis swap.
|
|
383
|
+
*
|
|
384
|
+
* Custom-plane call site (issue #243): pass `customPlane = { origin,
|
|
385
|
+
* tangent, bitangent }`. The 2D points are lifted via the explicit
|
|
386
|
+
* basis, exactly inverting the projection `SectionCutter` applied when
|
|
387
|
+
* generating the polygons. Without this the cap silhouette lands off
|
|
388
|
+
* the actual cutting plane (the bug PR #581 hid by suppressing the
|
|
389
|
+
* cap entirely for non-cardinal planes).
|
|
223
390
|
*/
|
|
224
391
|
uploadSection2DOverlay(polygons: CutPolygon2D[], lines: DrawingLine2D[], axis: 'down' | 'front' | 'side', position: number, // 0-100 percentage
|
|
225
392
|
sectionRange?: {
|
|
226
393
|
min?: number;
|
|
227
394
|
max?: number;
|
|
228
395
|
}, // Same storey-based range as section plane
|
|
229
|
-
flipped?: boolean
|
|
396
|
+
flipped?: boolean, customPlane?: {
|
|
397
|
+
origin: [number, number, number];
|
|
398
|
+
tangent: [number, number, number];
|
|
399
|
+
bitangent: [number, number, number];
|
|
400
|
+
}): void;
|
|
230
401
|
/**
|
|
231
402
|
* Clear the 2D section overlay
|
|
232
403
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAInE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9H,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAClF,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC3E,cAAc,YAAY,CAAC;AAC3B,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGrG,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,6BAA6B,GACrC,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|