angular-three-soba 2.1.0 → 2.2.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.
- package/abstractions/lib/catmull-rom-line.d.ts +139 -139
- package/abstractions/lib/edges.d.ts +164 -164
- package/abstractions/lib/grid.d.ts +39 -39
- package/abstractions/lib/line.d.ts +8 -7
- package/abstractions/lib/prism-geometry.d.ts +4 -4
- package/abstractions/lib/rounded-box.d.ts +3 -3
- package/abstractions/lib/text-3d.d.ts +46 -46
- package/abstractions/lib/text.d.ts +1 -2
- package/cameras/lib/cube-camera.d.ts +1 -1
- package/cameras/lib/orthographic-camera.d.ts +7 -8
- package/cameras/lib/perspective-camera.d.ts +2 -3
- package/controls/index.d.ts +9 -1
- package/controls/lib/camera-controls.d.ts +1 -1
- package/controls/lib/orbit-controls.d.ts +1 -1
- package/esm2022/abstractions/lib/billboard.mjs +3 -3
- package/esm2022/abstractions/lib/catmull-rom-line.mjs +3 -3
- package/esm2022/abstractions/lib/cubic-bezier-line.mjs +3 -3
- package/esm2022/abstractions/lib/edges.mjs +30 -34
- package/esm2022/abstractions/lib/gradient-texture.mjs +3 -3
- package/esm2022/abstractions/lib/grid.mjs +3 -3
- package/esm2022/abstractions/lib/helper.mjs +18 -20
- package/esm2022/abstractions/lib/line.mjs +25 -28
- package/esm2022/abstractions/lib/prism-geometry.mjs +3 -3
- package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +3 -3
- package/esm2022/abstractions/lib/rounded-box.mjs +11 -17
- package/esm2022/abstractions/lib/text-3d.mjs +14 -17
- package/esm2022/abstractions/lib/text.mjs +11 -16
- package/esm2022/cameras/lib/camera-content.mjs +3 -3
- package/esm2022/cameras/lib/cube-camera.mjs +18 -27
- package/esm2022/cameras/lib/orthographic-camera.mjs +20 -20
- package/esm2022/cameras/lib/perspective-camera.mjs +21 -21
- package/esm2022/controls/index.mjs +6 -2
- package/esm2022/controls/lib/camera-controls.mjs +3 -3
- package/esm2022/controls/lib/orbit-controls.mjs +3 -3
- package/esm2022/controls/lib/scroll-controls.mjs +124 -130
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
- package/esm2022/gizmos/index.mjs +6 -0
- package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +187 -0
- package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +304 -0
- package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +332 -0
- package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +265 -0
- package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +264 -0
- package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +337 -0
- package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +266 -0
- package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +232 -0
- package/esm2022/gizmos/lib/transform-controls.mjs +177 -0
- package/esm2022/loaders/lib/loader.mjs +3 -3
- package/esm2022/materials/lib/custom-shader-material.mjs +8 -12
- package/esm2022/materials/lib/mesh-distort-material.mjs +3 -3
- package/esm2022/materials/lib/mesh-reflector-material.mjs +11 -15
- package/esm2022/materials/lib/mesh-refraction-material.mjs +26 -30
- package/esm2022/materials/lib/mesh-transmission-material.mjs +3 -3
- package/esm2022/materials/lib/mesh-wobble-material.mjs +3 -3
- package/esm2022/materials/lib/point-material.mjs +3 -3
- package/esm2022/misc/lib/bake-shadows.mjs +8 -10
- package/esm2022/misc/lib/computed-attribute.mjs +15 -19
- package/esm2022/misc/lib/decal.mjs +56 -53
- package/esm2022/misc/lib/fbo.mjs +10 -10
- package/esm2022/misc/lib/html/html-content.mjs +62 -67
- package/esm2022/misc/lib/html/html.mjs +3 -3
- package/esm2022/misc/lib/intersect.mjs +6 -9
- package/esm2022/misc/lib/sampler.mjs +48 -42
- package/esm2022/performances/lib/adaptive-dpr.mjs +29 -35
- package/esm2022/performances/lib/adaptive-events.mjs +12 -16
- package/esm2022/performances/lib/detailed.mjs +14 -18
- package/esm2022/performances/lib/instances/instances.mjs +16 -22
- package/esm2022/performances/lib/points/points.mjs +19 -25
- package/esm2022/performances/lib/segments/segments.mjs +11 -14
- package/esm2022/shaders/lib/mesh-refraction-material.mjs +1 -1
- package/esm2022/staging/index.mjs +3 -2
- package/esm2022/staging/lib/accumulative-shadows.mjs +19 -21
- package/esm2022/staging/lib/backdrop.mjs +19 -23
- package/esm2022/staging/lib/bb-anchor.mjs +3 -3
- package/esm2022/staging/lib/bounds.mjs +39 -43
- package/esm2022/staging/lib/camera-shake.mjs +14 -18
- package/esm2022/staging/lib/caustics.mjs +24 -28
- package/esm2022/staging/lib/center.mjs +28 -32
- package/esm2022/staging/lib/contact-shadows.mjs +3 -3
- package/esm2022/staging/lib/environment/environment.mjs +338 -0
- package/esm2022/staging/lib/environment/inject-environment.mjs +184 -0
- package/esm2022/staging/lib/float.mjs +3 -3
- package/esm2022/staging/lib/lightformer.mjs +18 -22
- package/esm2022/staging/lib/mask.mjs +8 -12
- package/esm2022/staging/lib/matcap-texture.mjs +9 -11
- package/esm2022/staging/lib/normal-texture.mjs +9 -11
- package/esm2022/staging/lib/randomized-lights.mjs +9 -13
- package/esm2022/staging/lib/render-texture.mjs +19 -20
- package/esm2022/staging/lib/sky.mjs +3 -3
- package/esm2022/staging/lib/spot-light.mjs +32 -40
- package/esm2022/staging/lib/stage.mjs +13 -17
- package/esm2022/stats/lib/stats.mjs +21 -27
- package/fesm2022/angular-three-soba-abstractions.mjs +119 -138
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +57 -64
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +141 -1470
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +2318 -0
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
- package/fesm2022/angular-three-soba-loaders.mjs +3 -3
- package/fesm2022/angular-three-soba-materials.mjs +52 -62
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +194 -195
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-performances.mjs +90 -114
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +427 -430
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-stats.mjs +20 -26
- package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
- package/gizmos/README.md +3 -0
- package/gizmos/index.d.ts +5 -0
- package/gizmos/lib/gizmo-helper/gizmo-helper.d.ts +45 -0
- package/gizmos/lib/gizmo-helper/gizmo-viewcube.d.ts +74 -0
- package/gizmos/lib/gizmo-helper/gizmo-viewport.d.ts +64 -0
- package/{controls → gizmos}/lib/pivot-controls/pivot-controls.d.ts +1 -1
- package/gizmos/lib/transform-controls.d.ts +50 -0
- package/materials/lib/mesh-transmission-material.d.ts +1 -1
- package/misc/lib/computed-attribute.d.ts +2 -2
- package/misc/lib/decal.d.ts +4 -4
- package/misc/lib/html/html-content.d.ts +6 -6
- package/misc/lib/html/html.d.ts +1 -1
- package/misc/lib/sampler.d.ts +1 -3
- package/package.json +14 -8
- package/performances/lib/instances/instances.d.ts +3 -3
- package/shaders/lib/mesh-refraction-material.d.ts +2 -5
- package/staging/index.d.ts +2 -1
- package/staging/lib/camera-shake.d.ts +0 -1
- package/staging/lib/caustics.d.ts +1 -1
- package/staging/lib/center.d.ts +2 -2
- package/staging/lib/contact-shadows.d.ts +1 -1
- package/staging/lib/{environment.d.ts → environment/environment.d.ts} +20 -49
- package/staging/lib/environment/inject-environment.d.ts +33 -0
- package/staging/lib/lightformer.d.ts +1 -1
- package/staging/lib/mask.d.ts +1 -1
- package/staging/lib/matcap-texture.d.ts +0 -1
- package/staging/lib/normal-texture.d.ts +0 -1
- package/staging/lib/render-texture.d.ts +1 -1
- package/staging/lib/sky.d.ts +1 -1
- package/staging/lib/stage.d.ts +3 -2
- package/esm2022/controls/lib/pivot-controls/axis-arrow.mjs +0 -263
- package/esm2022/controls/lib/pivot-controls/axis-rotator.mjs +0 -264
- package/esm2022/controls/lib/pivot-controls/pivot-controls.mjs +0 -340
- package/esm2022/controls/lib/pivot-controls/plane-slider.mjs +0 -266
- package/esm2022/controls/lib/pivot-controls/scaling-sphere.mjs +0 -232
- package/esm2022/staging/lib/environment.mjs +0 -481
- /package/{controls → gizmos}/lib/pivot-controls/axis-arrow.d.ts +0 -0
- /package/{controls → gizmos}/lib/pivot-controls/axis-rotator.d.ts +0 -0
- /package/{controls → gizmos}/lib/pivot-controls/plane-slider.d.ts +0 -0
- /package/{controls → gizmos}/lib/pivot-controls/scaling-sphere.d.ts +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, viewChild, } from '@angular/core';
|
|
2
2
|
import { checkUpdate, extend, injectBeforeRender, omit, pick, resolveRef } from 'angular-three';
|
|
3
|
-
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
3
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
5
4
|
import { BufferAttribute, BufferGeometry, DynamicDrawUsage, Matrix4, Points, Vector3 } from 'three';
|
|
6
5
|
import { PositionPoint } from './position-point';
|
|
@@ -11,21 +10,19 @@ export class NgtsPoint {
|
|
|
11
10
|
this.positionPointRef = viewChild.required('positionPoint');
|
|
12
11
|
this.points = inject(NgtsPointsInstances);
|
|
13
12
|
extend({ PositionPoint });
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return this.points.subscribe(this.positionPointRef().nativeElement);
|
|
18
|
-
});
|
|
13
|
+
effect((onCleanup) => {
|
|
14
|
+
const cleanUp = this.points.subscribe(this.positionPointRef().nativeElement);
|
|
15
|
+
onCleanup(() => cleanUp());
|
|
19
16
|
});
|
|
20
17
|
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPoint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsPoint, isStandalone: true, selector: "ngts-point", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "positionPointRef", first: true, predicate: ["positionPoint"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
23
20
|
<ngt-position-point #positionPoint [parameters]="options()" [instance]="points.pointsRef()">
|
|
24
21
|
<ng-content />
|
|
25
22
|
</ngt-position-point>
|
|
26
23
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
24
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPoint, decorators: [{
|
|
29
26
|
type: Component,
|
|
30
27
|
args: [{
|
|
31
28
|
selector: 'ngts-point',
|
|
@@ -61,8 +58,8 @@ export class NgtsPointsBuffer {
|
|
|
61
58
|
checkUpdate(attributes['size']);
|
|
62
59
|
});
|
|
63
60
|
}
|
|
64
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsBuffer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: NgtsPointsBuffer, isStandalone: true, selector: "ngts-points-buffer", inputs: { positions: { classPropertyName: "positions", publicName: "positions", isSignal: true, isRequired: true, transformFunction: null }, colors: { classPropertyName: "colors", publicName: "colors", isSignal: true, isRequired: false, transformFunction: null }, sizes: { classPropertyName: "sizes", publicName: "sizes", isSignal: true, isRequired: false, transformFunction: null }, stride: { classPropertyName: "stride", publicName: "stride", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
66
63
|
<ngt-points #points [parameters]="options()">
|
|
67
64
|
<ngt-buffer-geometry>
|
|
68
65
|
<ngt-buffer-attribute
|
|
@@ -95,7 +92,7 @@ export class NgtsPointsBuffer {
|
|
|
95
92
|
</ngt-points>
|
|
96
93
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
97
94
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsBuffer, decorators: [{
|
|
99
96
|
type: Component,
|
|
100
97
|
args: [{
|
|
101
98
|
selector: 'ngts-points-buffer',
|
|
@@ -156,14 +153,11 @@ export class NgtsPointsInstances {
|
|
|
156
153
|
this.positionPoints = [];
|
|
157
154
|
this.DynamicDrawUsage = DynamicDrawUsage;
|
|
158
155
|
extend({ Points, BufferAttribute, BufferGeometry });
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
return;
|
|
165
|
-
checkUpdate(points.geometry.attributes['position']);
|
|
166
|
-
});
|
|
156
|
+
effect(() => {
|
|
157
|
+
const points = this.pointsRef()?.nativeElement;
|
|
158
|
+
if (!points)
|
|
159
|
+
return;
|
|
160
|
+
checkUpdate(points.geometry.attributes['position']);
|
|
167
161
|
});
|
|
168
162
|
injectBeforeRender(() => {
|
|
169
163
|
const points = this.pointsRef()?.nativeElement;
|
|
@@ -196,8 +190,8 @@ export class NgtsPointsInstances {
|
|
|
196
190
|
this.positionPoints = this.positionPoints.filter((p) => p !== ref);
|
|
197
191
|
};
|
|
198
192
|
}
|
|
199
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
200
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsInstances, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
194
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsPointsInstances, isStandalone: true, selector: "ngts-points-instances", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "pointsRef", first: true, predicate: ["points"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
201
195
|
<ngt-points
|
|
202
196
|
#points
|
|
203
197
|
[userData]="{ instances: positionPoints }"
|
|
@@ -232,7 +226,7 @@ export class NgtsPointsInstances {
|
|
|
232
226
|
</ngt-points>
|
|
233
227
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
234
228
|
}
|
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsPointsInstances, decorators: [{
|
|
236
230
|
type: Component,
|
|
237
231
|
args: [{
|
|
238
232
|
selector: 'ngts-points-instances',
|
|
@@ -275,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
275
269
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
276
270
|
}]
|
|
277
271
|
}], ctorParameters: () => [] });
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlcy9zcmMvbGliL3BvaW50cy9wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFFdEIsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQWEsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BHLE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYW5FLE1BQU0sT0FBTyxTQUFTO0lBT3JCO1FBTkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQixDQUFDLENBQUM7UUFFakQscUJBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBNEIsZUFBZSxDQUFDLENBQUM7UUFFbEYsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBR3BDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFMUIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0QyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJ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QUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMzQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFFakQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDbkMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQThDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQztJQUNILENBQUM7OEdBeEVXLG1CQUFtQjtrR0FBbkIsbUJBQW1CLGdWQXJDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWlDVDs7MkZBSVcsbUJBQW1CO2tCQXhDL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQ1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSwgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIE5ndFBvaW50cywgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQnVmZmVyQXR0cmlidXRlLCBCdWZmZXJHZW9tZXRyeSwgRHluYW1pY0RyYXdVc2FnZSwgTWF0cml4NCwgUG9pbnRzLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0UG9zaXRpb25Qb2ludCwgUG9zaXRpb25Qb2ludCB9IGZyb20gJy4vcG9zaXRpb24tcG9pbnQnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXBvaW50Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXBvc2l0aW9uLXBvaW50ICNwb3NpdGlvblBvaW50IFtwYXJhbWV0ZXJzXT1cIm9wdGlvbnMoKVwiIFtpbnN0YW5jZV09XCJwb2ludHMucG9pbnRzUmVmKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcG9zaXRpb24tcG9pbnQ+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNQb2ludCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBQYXJ0aWFsPE5ndFBvc2l0aW9uUG9pbnQ+KTtcblxuXHRwb3NpdGlvblBvaW50UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8UG9zaXRpb25Qb2ludD4+KCdwb3NpdGlvblBvaW50Jyk7XG5cblx0cG9pbnRzID0gaW5qZWN0KE5ndHNQb2ludHNJbnN0YW5jZXMpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFBvc2l0aW9uUG9pbnQgfSk7XG5cblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5wb2ludHMuc3Vic2NyaWJlKHRoaXMucG9zaXRpb25Qb2ludFJlZigpLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1wb2ludHMtYnVmZmVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXBvaW50cyAjcG9pbnRzIFtwYXJhbWV0ZXJzXT1cIm9wdGlvbnMoKVwiPlxuXHRcdFx0PG5ndC1idWZmZXItZ2VvbWV0cnk+XG5cdFx0XHRcdDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZVxuXHRcdFx0XHRcdGF0dGFjaD1cImF0dHJpYnV0ZXMucG9zaXRpb25cIlxuXHRcdFx0XHRcdFtjb3VudF09XCJwb3NpdGlvbnMoKS5sZW5ndGggLyBzdHJpZGUoKVwiXG5cdFx0XHRcdFx0W2FycmF5XT1cInBvc2l0aW9ucygpXCJcblx0XHRcdFx0XHRbaXRlbVNpemVdPVwic3RyaWRlKClcIlxuXHRcdFx0XHRcdFt1c2FnZV09XCJEeW5hbWljRHJhd1VzYWdlXCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0QGlmIChjb2xvcnMoKTsgYXMgY29sb3JzKSB7XG5cdFx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlXG5cdFx0XHRcdFx0XHRhdHRhY2g9XCJhdHRyaWJ1dGVzLmNvbG9yXCJcblx0XHRcdFx0XHRcdFtjb3VudF09XCJjb2xvcnMubGVuZ3RoIC8gc3RyaWRlKClcIlxuXHRcdFx0XHRcdFx0W2FycmF5XT1cImNvbG9yc1wiXG5cdFx0XHRcdFx0XHRbaXRlbVNpemVdPVwiM1wiXG5cdFx0XHRcdFx0XHRbdXNhZ2VdPVwiRHluYW1pY0RyYXdVc2FnZVwiXG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0fVxuXHRcdFx0XHRAaWYgKHNpemVzKCk7IGFzIHNpemVzKSB7XG5cdFx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlXG5cdFx0XHRcdFx0XHRhdHRhY2g9XCJhdHRyaWJ1dGVzLnNpemVcIlxuXHRcdFx0XHRcdFx0W2NvdW50XT1cInNpemVzLmxlbmd0aCAvIHN0cmlkZSgpXCJcblx0XHRcdFx0XHRcdFthcnJheV09XCJzaXplc1wiXG5cdFx0XHRcdFx0XHRbaXRlbVNpemVdPVwiMVwiXG5cdFx0XHRcdFx0XHRbdXNhZ2VdPVwiRHluYW1pY0RyYXdVc2FnZVwiXG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0fVxuXHRcdFx0PC9uZ3QtYnVmZmVyLWdlb21ldHJ5PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1wb2ludHM+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNQb2ludHNCdWZmZXIge1xuXHRwb3NpdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxGbG9hdDMyQXJyYXk+KCk7XG5cdGNvbG9ycyA9IGlucHV0PEZsb2F0MzJBcnJheT4oKTtcblx0c2l6ZXMgPSBpbnB1dDxGbG9hdDMyQXJyYXk+KCk7XG5cdHN0cmlkZSA9IGlucHV0PDIgfCAzPigzKTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIFBhcnRpYWw8Tmd0UG9zaXRpb25Qb2ludD4pO1xuXG5cdHBvaW50c1JlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPFBvaW50cz4+KCdwb2ludHMnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBQb2ludHMsIEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnkgfSk7XG5cblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgcG9pbnRzID0gdGhpcy5wb2ludHNSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghcG9pbnRzKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IGF0dHJpYnV0ZXMgPSBwb2ludHMuZ2VvbWV0cnkuYXR0cmlidXRlcztcblx0XHRcdGNoZWNrVXBkYXRlKGF0dHJpYnV0ZXNbJ3Bvc2l0aW9uJ10pO1xuXHRcdFx0aWYgKHRoaXMuY29sb3JzKCkpIGNoZWNrVXBkYXRlKGF0dHJpYnV0ZXNbJ2NvbG9yJ10pO1xuXHRcdFx0aWYgKHRoaXMuc2l6ZXMoKSkgY2hlY2tVcGRhdGUoYXR0cmlidXRlc1snc2l6ZSddKTtcblx0XHR9KTtcblx0fVxuXG5cdHByb3RlY3RlZCByZWFkb25seSBEeW5hbWljRHJhd1VzYWdlID0gRHluYW1pY0RyYXdVc2FnZTtcbn1cblxuY29uc3QgcGFyZW50TWF0cml4ID0gbmV3IE1hdHJpeDQoKTtcbmNvbnN0IHBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzUG9pbnRzSW5zdGFuY2VzT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0UG9pbnRzPiB7XG5cdHJhbmdlPzogbnVtYmVyO1xuXHRsaW1pdDogbnVtYmVyO1xufVxuXG5jb25zdCBkZWZhdWx0SW5zdGFuY2VzT3B0aW9uczogTmd0c1BvaW50c0luc3RhbmNlc09wdGlvbnMgPSB7IGxpbWl0OiAxMDAwIH07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtcG9pbnRzLWluc3RhbmNlcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb2ludHNcblx0XHRcdCNwb2ludHNcblx0XHRcdFt1c2VyRGF0YV09XCJ7IGluc3RhbmNlczogcG9zaXRpb25Qb2ludHMgfVwiXG5cdFx0XHRbbWF0cml4QXV0b1VwZGF0ZV09XCJmYWxzZVwiXG5cdFx0XHRbcmF5Y2FzdF09XCJudWxsXCJcblx0XHRcdFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiXG5cdFx0PlxuXHRcdFx0PG5ndC1idWZmZXItZ2VvbWV0cnk+XG5cdFx0XHRcdDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZVxuXHRcdFx0XHRcdGF0dGFjaD1cImF0dHJpYnV0ZXMucG9zaXRpb25cIlxuXHRcdFx0XHRcdFtjb3VudF09XCJidWZmZXJzKCkucG9zaXRpb25zLmxlbmd0aCAvIDNcIlxuXHRcdFx0XHRcdFthcnJheV09XCJidWZmZXJzKCkucG9zaXRpb25zXCJcblx0XHRcdFx0XHRbaXRlbVNpemVdPVwiM1wiXG5cdFx0XHRcdFx0W3VzYWdlXT1cIkR5bmFtaWNEcmF3VXNhZ2VcIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGVcblx0XHRcdFx0XHRhdHRhY2g9XCJhdHRyaWJ1dGVzLmNvbG9yXCJcblx0XHRcdFx0XHRbY291bnRdPVwiYnVmZmVycygpLmNvbG9ycy5sZW5ndGggLyAzXCJcblx0XHRcdFx0XHRbYXJyYXldPVwiYnVmZmVycygpLmNvbG9yc1wiXG5cdFx0XHRcdFx0W2l0ZW1TaXplXT1cIjNcIlxuXHRcdFx0XHRcdFt1c2FnZV09XCJEeW5hbWljRHJhd1VzYWdlXCJcblx0XHRcdFx0Lz5cblx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlXG5cdFx0XHRcdFx0YXR0YWNoPVwiYXR0cmlidXRlcy5zaXplXCJcblx0XHRcdFx0XHRbY291bnRdPVwiYnVmZmVycygpLnNpemVzLmxlbmd0aFwiXG5cdFx0XHRcdFx0W2FycmF5XT1cImJ1ZmZlcnMoKS5zaXplc1wiXG5cdFx0XHRcdFx0W2l0ZW1TaXplXT1cIjFcIlxuXHRcdFx0XHRcdFt1c2FnZV09XCJEeW5hbWljRHJhd1VzYWdlXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvbmd0LWJ1ZmZlci1nZW9tZXRyeT5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcG9pbnRzPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUG9pbnRzSW5zdGFuY2VzIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRJbnN0YW5jZXNPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdEluc3RhbmNlc09wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnbGltaXQnLCAncmFuZ2UnXSk7XG5cblx0cG9pbnRzUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8UG9pbnRzPj4oJ3BvaW50cycpO1xuXG5cdHByaXZhdGUgbGltaXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xpbWl0Jyk7XG5cblx0YnVmZmVycyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBsaW1pdCA9IHRoaXMubGltaXQoKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkobGltaXQgKiAzKSxcblx0XHRcdGNvbG9yczogRmxvYXQzMkFycmF5LmZyb20oeyBsZW5ndGg6IGxpbWl0ICogMyB9LCAoKSA9PiAxKSxcblx0XHRcdHNpemVzOiBGbG9hdDMyQXJyYXkuZnJvbSh7IGxlbmd0aDogbGltaXQgfSwgKCkgPT4gMSksXG5cdFx0fTtcblx0fSk7XG5cblx0cG9zaXRpb25Qb2ludHM6IEFycmF5PEVsZW1lbnRSZWY8UG9zaXRpb25Qb2ludD4gfCBQb3NpdGlvblBvaW50PiA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFBvaW50cywgQnVmZmVyQXR0cmlidXRlLCBCdWZmZXJHZW9tZXRyeSB9KTtcblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwb2ludHMgPSB0aGlzLnBvaW50c1JlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoIXBvaW50cykgcmV0dXJuO1xuXHRcdFx0XHRjaGVja1VwZGF0ZShwb2ludHMuZ2VvbWV0cnkuYXR0cmlidXRlc1sncG9zaXRpb24nXSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBwb2ludHMgPSB0aGlzLnBvaW50c1JlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFwb2ludHMpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgeyBsaW1pdCwgcmFuZ2UgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdFx0Y29uc3QgeyBwb3NpdGlvbnMsIHNpemVzLCBjb2xvcnMgfSA9IHRoaXMuYnVmZmVycygpO1xuXG5cdFx0XHRwb2ludHMudXBkYXRlTWF0cml4KCk7XG5cdFx0XHRwb2ludHMudXBkYXRlTWF0cml4V29ybGQoKTtcblx0XHRcdHBhcmVudE1hdHJpeC5jb3B5KHBvaW50cy5tYXRyaXhXb3JsZCkuaW52ZXJ0KCk7XG5cblx0XHRcdHBvaW50cy5nZW9tZXRyeS5kcmF3UmFuZ2UuY291bnQgPSBNYXRoLm1pbihcblx0XHRcdFx0bGltaXQsXG5cdFx0XHRcdHJhbmdlICE9PSB1bmRlZmluZWQgPyByYW5nZSA6IGxpbWl0LFxuXHRcdFx0XHR0aGlzLnBvc2l0aW9uUG9pbnRzLmxlbmd0aCxcblx0XHRcdCk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wb3NpdGlvblBvaW50cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBwb3NpdGlvblBvaW50ID0gcmVzb2x2ZVJlZih0aGlzLnBvc2l0aW9uUG9pbnRzW2ldKTtcblx0XHRcdFx0aWYgKHBvc2l0aW9uUG9pbnQpIHtcblx0XHRcdFx0XHRwb3NpdGlvblBvaW50LmdldFdvcmxkUG9zaXRpb24ocG9zaXRpb24pLmFwcGx5TWF0cml4NChwYXJlbnRNYXRyaXgpO1xuXHRcdFx0XHRcdHBvc2l0aW9uLnRvQXJyYXkocG9zaXRpb25zLCBpICogMyk7XG5cdFx0XHRcdFx0Y2hlY2tVcGRhdGUocG9pbnRzLmdlb21ldHJ5LmF0dHJpYnV0ZXNbJ3Bvc2l0aW9uJ10pO1xuXG5cdFx0XHRcdFx0cG9zaXRpb25Qb2ludC5tYXRyaXhXb3JsZE5lZWRzVXBkYXRlID0gdHJ1ZTtcblx0XHRcdFx0XHRwb3NpdGlvblBvaW50LmNvbG9yLnRvQXJyYXkoY29sb3JzLCBpICogMyk7XG5cdFx0XHRcdFx0Y2hlY2tVcGRhdGUocG9pbnRzLmdlb21ldHJ5LmF0dHJpYnV0ZXNbJ2NvbG9yJ10pO1xuXG5cdFx0XHRcdFx0c2l6ZXMuc2V0KFtwb3NpdGlvblBvaW50LnNpemVdLCBpKTtcblx0XHRcdFx0XHRjaGVja1VwZGF0ZShwb2ludHMuZ2VvbWV0cnkuYXR0cmlidXRlc1snc2l6ZSddKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0c3Vic2NyaWJlKHJlZjogRWxlbWVudFJlZjxQb3NpdGlvblBvaW50PiB8IFBvc2l0aW9uUG9pbnQpIHtcblx0XHR0aGlzLnBvc2l0aW9uUG9pbnRzLnB1c2gocmVmKTtcblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0dGhpcy5wb3NpdGlvblBvaW50cyA9IHRoaXMucG9zaXRpb25Qb2ludHMuZmlsdGVyKChwKSA9PiBwICE9PSByZWYpO1xuXHRcdH07XG5cdH1cblxuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgRHluYW1pY0RyYXdVc2FnZSA9IER5bmFtaWNEcmF3VXNhZ2U7XG59XG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlcy9zcmMvbGliL3BvaW50cy9wb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQWEsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BHLE9BQU8sRUFBb0IsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYW5FLE1BQU0sT0FBTyxTQUFTO0lBT3JCO1FBTkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQixDQUFDLENBQUM7UUFFakQscUJBQWdCLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBNEIsZUFBZSxDQUFDLENBQUM7UUFFbEYsV0FBTSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBR3BDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFFMUIsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0UsU0FBUyxDQUFDLEdBQUcs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LENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUE4QztRQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixPQUFPLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUM7SUFDSCxDQUFDOzhHQXJFVyxtQkFBbUI7a0dBQW5CLG1CQUFtQixnVkFyQ3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQ1Q7OzJGQUlXLG1CQUFtQjtrQkF4Qy9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUNUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2hlY2tVcGRhdGUsIGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBOZ3RQb2ludHMsIG9taXQsIHBpY2ssIHJlc29sdmVSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIER5bmFtaWNEcmF3VXNhZ2UsIE1hdHJpeDQsIFBvaW50cywgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndFBvc2l0aW9uUG9pbnQsIFBvc2l0aW9uUG9pbnQgfSBmcm9tICcuL3Bvc2l0aW9uLXBvaW50JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1wb2ludCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb3NpdGlvbi1wb2ludCAjcG9zaXRpb25Qb2ludCBbcGFyYW1ldGVyc109XCJvcHRpb25zKClcIiBbaW5zdGFuY2VdPVwicG9pbnRzLnBvaW50c1JlZigpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXBvc2l0aW9uLXBvaW50PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUG9pbnQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgUGFydGlhbDxOZ3RQb3NpdGlvblBvaW50Pik7XG5cblx0cG9zaXRpb25Qb2ludFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPFBvc2l0aW9uUG9pbnQ+PigncG9zaXRpb25Qb2ludCcpO1xuXG5cdHBvaW50cyA9IGluamVjdChOZ3RzUG9pbnRzSW5zdGFuY2VzKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBQb3NpdGlvblBvaW50IH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGNsZWFuVXAgPSB0aGlzLnBvaW50cy5zdWJzY3JpYmUodGhpcy5wb3NpdGlvblBvaW50UmVmKCkubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW5VcCgpKTtcblx0XHR9KTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXBvaW50cy1idWZmZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcG9pbnRzICNwb2ludHMgW3BhcmFtZXRlcnNdPVwib3B0aW9ucygpXCI+XG5cdFx0XHQ8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cblx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlXG5cdFx0XHRcdFx0YXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiXG5cdFx0XHRcdFx0W2NvdW50XT1cInBvc2l0aW9ucygpLmxlbmd0aCAvIHN0cmlkZSgpXCJcblx0XHRcdFx0XHRbYXJyYXldPVwicG9zaXRpb25zKClcIlxuXHRcdFx0XHRcdFtpdGVtU2l6ZV09XCJzdHJpZGUoKVwiXG5cdFx0XHRcdFx0W3VzYWdlXT1cIkR5bmFtaWNEcmF3VXNhZ2VcIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHRAaWYgKGNvbG9ycygpOyBhcyBjb2xvcnMpIHtcblx0XHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGVcblx0XHRcdFx0XHRcdGF0dGFjaD1cImF0dHJpYnV0ZXMuY29sb3JcIlxuXHRcdFx0XHRcdFx0W2NvdW50XT1cImNvbG9ycy5sZW5ndGggLyBzdHJpZGUoKVwiXG5cdFx0XHRcdFx0XHRbYXJyYXldPVwiY29sb3JzXCJcblx0XHRcdFx0XHRcdFtpdGVtU2l6ZV09XCIzXCJcblx0XHRcdFx0XHRcdFt1c2FnZV09XCJEeW5hbWljRHJhd1VzYWdlXCJcblx0XHRcdFx0XHQvPlxuXHRcdFx0XHR9XG5cdFx0XHRcdEBpZiAoc2l6ZXMoKTsgYXMgc2l6ZXMpIHtcblx0XHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGVcblx0XHRcdFx0XHRcdGF0dGFjaD1cImF0dHJpYnV0ZXMuc2l6ZVwiXG5cdFx0XHRcdFx0XHRbY291bnRdPVwic2l6ZXMubGVuZ3RoIC8gc3RyaWRlKClcIlxuXHRcdFx0XHRcdFx0W2FycmF5XT1cInNpemVzXCJcblx0XHRcdFx0XHRcdFtpdGVtU2l6ZV09XCIxXCJcblx0XHRcdFx0XHRcdFt1c2FnZV09XCJEeW5hbWljRHJhd1VzYWdlXCJcblx0XHRcdFx0XHQvPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L25ndC1idWZmZXItZ2VvbWV0cnk+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXBvaW50cz5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1BvaW50c0J1ZmZlciB7XG5cdHBvc2l0aW9ucyA9IGlucHV0LnJlcXVpcmVkPEZsb2F0MzJBcnJheT4oKTtcblx0Y29sb3JzID0gaW5wdXQ8RmxvYXQzMkFycmF5PigpO1xuXHRzaXplcyA9IGlucHV0PEZsb2F0MzJBcnJheT4oKTtcblx0c3RyaWRlID0gaW5wdXQ8MiB8IDM+KDMpO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgUGFydGlhbDxOZ3RQb3NpdGlvblBvaW50Pik7XG5cblx0cG9pbnRzUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8UG9pbnRzPj4oJ3BvaW50cycpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFBvaW50cywgQnVmZmVyQXR0cmlidXRlLCBCdWZmZXJHZW9tZXRyeSB9KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBwb2ludHMgPSB0aGlzLnBvaW50c1JlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFwb2ludHMpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgYXR0cmlidXRlcyA9IHBvaW50cy5nZW9tZXRyeS5hdHRyaWJ1dGVzO1xuXHRcdFx0Y2hlY2tVcGRhdGUoYXR0cmlidXRlc1sncG9zaXRpb24nXSk7XG5cdFx0XHRpZiAodGhpcy5jb2xvcnMoKSkgY2hlY2tVcGRhdGUoYXR0cmlidXRlc1snY29sb3InXSk7XG5cdFx0XHRpZiAodGhpcy5zaXplcygpKSBjaGVja1VwZGF0ZShhdHRyaWJ1dGVzWydzaXplJ10pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IER5bmFtaWNEcmF3VXNhZ2UgPSBEeW5hbWljRHJhd1VzYWdlO1xufVxuXG5jb25zdCBwYXJlbnRNYXRyaXggPSBuZXcgTWF0cml4NCgpO1xuY29uc3QgcG9zaXRpb24gPSBuZXcgVmVjdG9yMygpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNQb2ludHNJbnN0YW5jZXNPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RQb2ludHM+IHtcblx0cmFuZ2U/OiBudW1iZXI7XG5cdGxpbWl0OiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRJbnN0YW5jZXNPcHRpb25zOiBOZ3RzUG9pbnRzSW5zdGFuY2VzT3B0aW9ucyA9IHsgbGltaXQ6IDEwMDAgfTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1wb2ludHMtaW5zdGFuY2VzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXBvaW50c1xuXHRcdFx0I3BvaW50c1xuXHRcdFx0W3VzZXJEYXRhXT1cInsgaW5zdGFuY2VzOiBwb3NpdGlvblBvaW50cyB9XCJcblx0XHRcdFttYXRyaXhBdXRvVXBkYXRlXT1cImZhbHNlXCJcblx0XHRcdFtyYXljYXN0XT1cIm51bGxcIlxuXHRcdFx0W3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCJcblx0XHQ+XG5cdFx0XHQ8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cblx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlXG5cdFx0XHRcdFx0YXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiXG5cdFx0XHRcdFx0W2NvdW50XT1cImJ1ZmZlcnMoKS5wb3NpdGlvbnMubGVuZ3RoIC8gM1wiXG5cdFx0XHRcdFx0W2FycmF5XT1cImJ1ZmZlcnMoKS5wb3NpdGlvbnNcIlxuXHRcdFx0XHRcdFtpdGVtU2l6ZV09XCIzXCJcblx0XHRcdFx0XHRbdXNhZ2VdPVwiRHluYW1pY0RyYXdVc2FnZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHRcdDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZVxuXHRcdFx0XHRcdGF0dGFjaD1cImF0dHJpYnV0ZXMuY29sb3JcIlxuXHRcdFx0XHRcdFtjb3VudF09XCJidWZmZXJzKCkuY29sb3JzLmxlbmd0aCAvIDNcIlxuXHRcdFx0XHRcdFthcnJheV09XCJidWZmZXJzKCkuY29sb3JzXCJcblx0XHRcdFx0XHRbaXRlbVNpemVdPVwiM1wiXG5cdFx0XHRcdFx0W3VzYWdlXT1cIkR5bmFtaWNEcmF3VXNhZ2VcIlxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGVcblx0XHRcdFx0XHRhdHRhY2g9XCJhdHRyaWJ1dGVzLnNpemVcIlxuXHRcdFx0XHRcdFtjb3VudF09XCJidWZmZXJzKCkuc2l6ZXMubGVuZ3RoXCJcblx0XHRcdFx0XHRbYXJyYXldPVwiYnVmZmVycygpLnNpemVzXCJcblx0XHRcdFx0XHRbaXRlbVNpemVdPVwiMVwiXG5cdFx0XHRcdFx0W3VzYWdlXT1cIkR5bmFtaWNEcmF3VXNhZ2VcIlxuXHRcdFx0XHQvPlxuXHRcdFx0PC9uZ3QtYnVmZmVyLWdlb21ldHJ5PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1wb2ludHM+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNQb2ludHNJbnN0YW5jZXMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdEluc3RhbmNlc09wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0SW5zdGFuY2VzT3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydsaW1pdCcsICdyYW5nZSddKTtcblxuXHRwb2ludHNSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxQb2ludHM+PigncG9pbnRzJyk7XG5cblx0cHJpdmF0ZSBsaW1pdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGltaXQnKTtcblxuXHRidWZmZXJzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGxpbWl0ID0gdGhpcy5saW1pdCgpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHBvc2l0aW9uczogbmV3IEZsb2F0MzJBcnJheShsaW1pdCAqIDMpLFxuXHRcdFx0Y29sb3JzOiBGbG9hdDMyQXJyYXkuZnJvbSh7IGxlbmd0aDogbGltaXQgKiAzIH0sICgpID0+IDEpLFxuXHRcdFx0c2l6ZXM6IEZsb2F0MzJBcnJheS5mcm9tKHsgbGVuZ3RoOiBsaW1pdCB9LCAoKSA9PiAxKSxcblx0XHR9O1xuXHR9KTtcblxuXHRwb3NpdGlvblBvaW50czogQXJyYXk8RWxlbWVudFJlZjxQb3NpdGlvblBvaW50PiB8IFBvc2l0aW9uUG9pbnQ+ID0gW107XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgUG9pbnRzLCBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5IH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHBvaW50cyA9IHRoaXMucG9pbnRzUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIXBvaW50cykgcmV0dXJuO1xuXHRcdFx0Y2hlY2tVcGRhdGUocG9pbnRzLmdlb21ldHJ5LmF0dHJpYnV0ZXNbJ3Bvc2l0aW9uJ10pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IHBvaW50cyA9IHRoaXMucG9pbnRzUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIXBvaW50cykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCB7IGxpbWl0LCByYW5nZSB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0XHRjb25zdCB7IHBvc2l0aW9ucywgc2l6ZXMsIGNvbG9ycyB9ID0gdGhpcy5idWZmZXJzKCk7XG5cblx0XHRcdHBvaW50cy51cGRhdGVNYXRyaXgoKTtcblx0XHRcdHBvaW50cy51cGRhdGVNYXRyaXhXb3JsZCgpO1xuXHRcdFx0cGFyZW50TWF0cml4LmNvcHkocG9pbnRzLm1hdHJpeFdvcmxkKS5pbnZlcnQoKTtcblxuXHRcdFx0cG9pbnRzLmdlb21ldHJ5LmRyYXdSYW5nZS5jb3VudCA9IE1hdGgubWluKFxuXHRcdFx0XHRsaW1pdCxcblx0XHRcdFx0cmFuZ2UgIT09IHVuZGVmaW5lZCA/IHJhbmdlIDogbGltaXQsXG5cdFx0XHRcdHRoaXMucG9zaXRpb25Qb2ludHMubGVuZ3RoLFxuXHRcdFx0KTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBvc2l0aW9uUG9pbnRzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IHBvc2l0aW9uUG9pbnQgPSByZXNvbHZlUmVmKHRoaXMucG9zaXRpb25Qb2ludHNbaV0pO1xuXHRcdFx0XHRpZiAocG9zaXRpb25Qb2ludCkge1xuXHRcdFx0XHRcdHBvc2l0aW9uUG9pbnQuZ2V0V29ybGRQb3NpdGlvbihwb3NpdGlvbikuYXBwbHlNYXRyaXg0KHBhcmVudE1hdHJpeCk7XG5cdFx0XHRcdFx0cG9zaXRpb24udG9BcnJheShwb3NpdGlvbnMsIGkgKiAzKTtcblx0XHRcdFx0XHRjaGVja1VwZGF0ZShwb2ludHMuZ2VvbWV0cnkuYXR0cmlidXRlc1sncG9zaXRpb24nXSk7XG5cblx0XHRcdFx0XHRwb3NpdGlvblBvaW50Lm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdFx0XHRcdHBvc2l0aW9uUG9pbnQuY29sb3IudG9BcnJheShjb2xvcnMsIGkgKiAzKTtcblx0XHRcdFx0XHRjaGVja1VwZGF0ZShwb2ludHMuZ2VvbWV0cnkuYXR0cmlidXRlc1snY29sb3InXSk7XG5cblx0XHRcdFx0XHRzaXplcy5zZXQoW3Bvc2l0aW9uUG9pbnQuc2l6ZV0sIGkpO1xuXHRcdFx0XHRcdGNoZWNrVXBkYXRlKHBvaW50cy5nZW9tZXRyeS5hdHRyaWJ1dGVzWydzaXplJ10pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRzdWJzY3JpYmUocmVmOiBFbGVtZW50UmVmPFBvc2l0aW9uUG9pbnQ+IHwgUG9zaXRpb25Qb2ludCkge1xuXHRcdHRoaXMucG9zaXRpb25Qb2ludHMucHVzaChyZWYpO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHR0aGlzLnBvc2l0aW9uUG9pbnRzID0gdGhpcy5wb3NpdGlvblBvaW50cy5maWx0ZXIoKHApID0+IHAgIT09IHJlZik7XG5cdFx0fTtcblx0fVxuXG5cdHByb3RlY3RlZCByZWFkb25seSBEeW5hbWljRHJhd1VzYWdlID0gRHluYW1pY0RyYXdVc2FnZTtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, viewChild, } from '@angular/core';
|
|
2
2
|
import { extend, injectBeforeRender, NgtArgs, omit, pick, resolveRef, vector3 } from 'angular-three';
|
|
3
|
-
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
4
3
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
5
4
|
import { Vector2 } from 'three';
|
|
6
5
|
import { Line2, LineMaterial, LineSegmentsGeometry } from 'three-stdlib';
|
|
@@ -16,19 +15,17 @@ export class NgtsSegment {
|
|
|
16
15
|
this.segmentRef = viewChild.required('segment');
|
|
17
16
|
this.segments = inject(NgtsSegments);
|
|
18
17
|
extend({ SegmentObject });
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return this.segments.subscribe(this.segmentRef());
|
|
23
|
-
});
|
|
18
|
+
effect((onCleanup) => {
|
|
19
|
+
const cleanUp = this.segments.subscribe(this.segmentRef());
|
|
20
|
+
onCleanup(() => cleanUp());
|
|
24
21
|
});
|
|
25
22
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegment, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsSegment, isStandalone: true, selector: "ngts-segment", inputs: { start: { classPropertyName: "start", publicName: "start", isSignal: true, isRequired: true, transformFunction: null }, end: { classPropertyName: "end", publicName: "end", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "segmentRef", first: true, predicate: ["segment"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
28
25
|
<ngt-segment-object #segment [color]="color()" [start]="normalizedStart()" [end]="normalizedEnd()" />
|
|
29
26
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
27
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegment, decorators: [{
|
|
32
29
|
type: Component,
|
|
33
30
|
args: [{
|
|
34
31
|
selector: 'ngts-segment',
|
|
@@ -100,8 +97,8 @@ export class NgtsSegments {
|
|
|
100
97
|
this.segments = this.segments.filter((i) => i !== ref);
|
|
101
98
|
};
|
|
102
99
|
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegments, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
101
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsSegments, isStandalone: true, selector: "ngts-segments", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lineRef", first: true, predicate: ["line"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
105
102
|
<ngt-primitive #line *args="[line]">
|
|
106
103
|
<ngt-primitive *args="[geometry]" attach="geometry" />
|
|
107
104
|
<ngt-primitive *args="[material]" attach="material" [parameters]="materialParameters()" />
|
|
@@ -109,7 +106,7 @@ export class NgtsSegments {
|
|
|
109
106
|
</ngt-primitive>
|
|
110
107
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
111
108
|
}
|
|
112
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsSegments, decorators: [{
|
|
113
110
|
type: Component,
|
|
114
111
|
args: [{
|
|
115
112
|
selector: 'ngts-segments',
|
|
@@ -126,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
126
123
|
imports: [NgtArgs],
|
|
127
124
|
}]
|
|
128
125
|
}], ctorParameters: () => [] });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvcGVyZm9ybWFuY2VzL3NyYy9saWIvc2VnbWVudHMvc2VnbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFFdEIsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQWMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQXVCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBMEIsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVdqRCxNQUFNLE9BQU8sV0FBVztJQVl2QjtRQVhBLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFjLENBQUM7UUFDckMsUUFBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWMsQ0FBQztRQUNuQyxVQUFLLEdBQUcsS0FBSyxFQUF1QixDQUFDO1FBRXJDLG9CQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEMsZUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQTRCLFNB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QUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7OztFQU1UO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgTmd0QXJncywgTmd0VmVjdG9yMywgb21pdCwgcGljaywgcmVzb2x2ZVJlZiwgdmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQ29sb3JSZXByZXNlbnRhdGlvbiwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IExpbmUyLCBMaW5lTWF0ZXJpYWwsIExpbmVNYXRlcmlhbFBhcmFtZXRlcnMsIExpbmVTZWdtZW50c0dlb21ldHJ5IH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IFNlZ21lbnRPYmplY3QgfSBmcm9tICcuL3NlZ21lbnQtb2JqZWN0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zZWdtZW50Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXNlZ21lbnQtb2JqZWN0ICNzZWdtZW50IFtjb2xvcl09XCJjb2xvcigpXCIgW3N0YXJ0XT1cIm5vcm1hbGl6ZWRTdGFydCgpXCIgW2VuZF09XCJub3JtYWxpemVkRW5kKClcIiAvPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU2VnbWVudCB7XG5cdHN0YXJ0ID0gaW5wdXQucmVxdWlyZWQ8Tmd0VmVjdG9yMz4oKTtcblx0ZW5kID0gaW5wdXQucmVxdWlyZWQ8Tmd0VmVjdG9yMz4oKTtcblx0Y29sb3IgPSBpbnB1dDxDb2xvclJlcHJlc2VudGF0aW9uPigpO1xuXG5cdG5vcm1hbGl6ZWRTdGFydCA9IHZlY3RvcjModGhpcy5zdGFydCk7XG5cdG5vcm1hbGl6ZWRFbmQgPSB2ZWN0b3IzKHRoaXMuZW5kKTtcblxuXHRzZWdtZW50UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8U2VnbWVudE9iamVjdD4+KCdzZWdtZW50Jyk7XG5cblx0c2VnbWVudHMgPSBpbmplY3QoTmd0c1NlZ21lbnRzKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTZWdtZW50T2JqZWN0IH0pO1xuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnNlZ21lbnRzLnN1YnNjcmliZSh0aGlzLnNlZ21lbnRSZWYoKSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNTZWdtZW50c09wdGlvbnMgZXh0ZW5kcyBMaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzIHtcblx0bGltaXQ6IG51bWJlcjtcblx0bGluZVdpZHRoOiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRTZWdtZW50c09wdGlvbnM6IE5ndHNTZWdtZW50c09wdGlvbnMgPSB7XG5cdGxpbWl0OiAxMDAwLFxuXHRsaW5lV2lkdGg6IDEuMCxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtc2VnbWVudHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICNsaW5lICphcmdzPVwiW2xpbmVdXCI+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltnZW9tZXRyeV1cIiBhdHRhY2g9XCJnZW9tZXRyeVwiIC8+XG5cdFx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIlttYXRlcmlhbF1cIiBhdHRhY2g9XCJtYXRlcmlhbFwiIFtwYXJhbWV0ZXJzXT1cIm1hdGVyaWFsUGFyYW1ldGVycygpXCIgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTZWdtZW50cyB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0U2VnbWVudHNPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdFNlZ21lbnRzT3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydsaW1pdCcsICdsaW5lV2lkdGgnXSk7XG5cblx0cHJpdmF0ZSBsaW5lV2lkdGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xpbmVXaWR0aCcpO1xuXHRwcml2YXRlIGxpbWl0ID0gcGljayh0aGlzLm9wdGlvbnMsICdsaW1pdCcpO1xuXG5cdGxpbmVSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxMaW5lMj4+KCdsaW5lJyk7XG5cblx0c2VnbWVudHM6IEFycmF5PEVsZW1lbnRSZWY8U2VnbWVudE9iamVjdD4gfCBTZWdtZW50T2JqZWN0PiA9IFtdO1xuXG5cdGxpbmUgPSBuZXcgTGluZTIoKTtcblx0bWF0ZXJpYWwgPSBuZXcgTGluZU1hdGVyaWFsKCk7XG5cdGdlb21ldHJ5ID0gbmV3IExpbmVTZWdtZW50c0dlb21ldHJ5KCk7XG5cdHJlc29sdXRpb24gPSBuZXcgVmVjdG9yMig1MTIsIDUxMik7XG5cblx0bWF0ZXJpYWxQYXJhbWV0ZXJzID0gY29tcHV0ZWQoKCkgPT4gKHtcblx0XHR2ZXJ0ZXhDb2xvcnM6IHRydWUsXG5cdFx0cmVzb2x1dGlvbjogdGhpcy5yZXNvbHV0aW9uLFxuXHRcdGxpbmV3aWR0aDogdGhpcy5saW5lV2lkdGgoKSxcblx0XHQuLi50aGlzLnBhcmFtZXRlcnMoKSxcblx0fSkpO1xuXG5cdHBvc2l0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBsaW1pdCA9IHRoaXMubGltaXQoKTtcblx0XHRyZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbGltaXQgKiA2IH0sICgpID0+IDApO1xuXHR9KTtcblx0Y29sb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGxpbWl0ID0gdGhpcy5saW1pdCgpO1xuXHRcdHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBsaW1pdCAqIDYgfSwgKCkgPT4gMCk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBbbGltaXQsIHBvc2l0aW9ucywgY29sb3JzXSA9IFt0aGlzLmxpbWl0KCksIHRoaXMucG9zaXRpb25zKCksIHRoaXMuY29sb3JzKCldO1xuXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgc2VnbWVudCA9IHJlc29sdmVSZWYodGhpcy5zZWdtZW50c1tpXSk7XG5cdFx0XHRcdGlmIChzZWdtZW50KSB7XG5cdFx0XHRcdFx0cG9zaXRpb25zW2kgKiA2ICsgMF0gPSBzZWdtZW50LnN0YXJ0Lng7XG5cdFx0XHRcdFx0cG9zaXRpb25zW2kgKiA2ICsgMV0gPSBzZWdtZW50LnN0YXJ0Lnk7XG5cdFx0XHRcdFx0cG9zaXRpb25zW2kgKiA2ICsgMl0gPSBzZWdtZW50LnN0YXJ0Lno7XG5cblx0XHRcdFx0XHRwb3NpdGlvbnNbaSAqIDYgKyAzXSA9IHNlZ21lbnQuZW5kLng7XG5cdFx0XHRcdFx0cG9zaXRpb25zW2kgKiA2ICsgNF0gPSBzZWdtZW50LmVuZC55O1xuXHRcdFx0XHRcdHBvc2l0aW9uc1tpICogNiArIDVdID0gc2VnbWVudC5lbmQuejtcblxuXHRcdFx0XHRcdGNvbG9yc1tpICogNiArIDBdID0gc2VnbWVudC5jb2xvci5yO1xuXHRcdFx0XHRcdGNvbG9yc1tpICogNiArIDFdID0gc2VnbWVudC5jb2xvci5nO1xuXHRcdFx0XHRcdGNvbG9yc1tpICogNiArIDJdID0gc2VnbWVudC5jb2xvci5iO1xuXG5cdFx0XHRcdFx0Y29sb3JzW2kgKiA2ICsgM10gPSBzZWdtZW50LmNvbG9yLnI7XG5cdFx0XHRcdFx0Y29sb3JzW2kgKiA2ICsgNF0gPSBzZWdtZW50LmNvbG9yLmc7XG5cdFx0XHRcdFx0Y29sb3JzW2kgKiA2ICsgNV0gPSBzZWdtZW50LmNvbG9yLmI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5nZW9tZXRyeS5zZXRDb2xvcnMoY29sb3JzKTtcblx0XHRcdHRoaXMuZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBvc2l0aW9ucyk7XG5cdFx0XHR0aGlzLmxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcblx0XHR9KTtcblx0fVxuXG5cdHN1YnNjcmliZShyZWY6IEVsZW1lbnRSZWY8U2VnbWVudE9iamVjdD4gfCBTZWdtZW50T2JqZWN0KSB7XG5cdFx0dGhpcy5zZWdtZW50cy5wdXNoKHJlZik7XG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdHRoaXMuc2VnbWVudHMgPSB0aGlzLnNlZ21lbnRzLmZpbHRlcigoaSkgPT4gaSAhPT0gcmVmKTtcblx0XHR9O1xuXHR9XG59XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvcGVyZm9ybWFuY2VzL3NyYy9saWIvc2VnbWVudHMvc2VnbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQWMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQXVCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBMEIsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVdqRCxNQUFNLE9BQU8sV0FBVztJQVl2QjtRQVhBLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFjLENBQUM7UUFDckMsUUFBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWMsQ0FBQztRQUNuQyxVQUFLLEdBQUcsS0FBSyxFQUF1QixDQUFDO1FBRXJDLG9CQUFlLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEMsZUFBVSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQTRCLFNBQVMsQ0FBQyxDQUFDO1FBRXRFLGFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxD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LENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBOZ3RBcmdzLCBOZ3RWZWN0b3IzLCBvbWl0LCBwaWNrLCByZXNvbHZlUmVmLCB2ZWN0b3IzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBDb2xvclJlcHJlc2VudGF0aW9uLCBWZWN0b3IyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTGluZTIsIExpbmVNYXRlcmlhbCwgTGluZU1hdGVyaWFsUGFyYW1ldGVycywgTGluZVNlZ21lbnRzR2VvbWV0cnkgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuaW1wb3J0IHsgU2VnbWVudE9iamVjdCB9IGZyb20gJy4vc2VnbWVudC1vYmplY3QnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXNlZ21lbnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc2VnbWVudC1vYmplY3QgI3NlZ21lbnQgW2NvbG9yXT1cImNvbG9yKClcIiBbc3RhcnRdPVwibm9ybWFsaXplZFN0YXJ0KClcIiBbZW5kXT1cIm5vcm1hbGl6ZWRFbmQoKVwiIC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTZWdtZW50IHtcblx0c3RhcnQgPSBpbnB1dC5yZXF1aXJlZDxOZ3RWZWN0b3IzPigpO1xuXHRlbmQgPSBpbnB1dC5yZXF1aXJlZDxOZ3RWZWN0b3IzPigpO1xuXHRjb2xvciA9IGlucHV0PENvbG9yUmVwcmVzZW50YXRpb24+KCk7XG5cblx0bm9ybWFsaXplZFN0YXJ0ID0gdmVjdG9yMyh0aGlzLnN0YXJ0KTtcblx0bm9ybWFsaXplZEVuZCA9IHZlY3RvcjModGhpcy5lbmQpO1xuXG5cdHNlZ21lbnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxTZWdtZW50T2JqZWN0Pj4oJ3NlZ21lbnQnKTtcblxuXHRzZWdtZW50cyA9IGluamVjdChOZ3RzU2VnbWVudHMpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFNlZ21lbnRPYmplY3QgfSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgY2xlYW5VcCA9IHRoaXMuc2VnbWVudHMuc3Vic2NyaWJlKHRoaXMuc2VnbWVudFJlZigpKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBjbGVhblVwKCkpO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c1NlZ21lbnRzT3B0aW9ucyBleHRlbmRzIExpbmVNYXRlcmlhbFBhcmFtZXRlcnMge1xuXHRsaW1pdDogbnVtYmVyO1xuXHRsaW5lV2lkdGg6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdFNlZ21lbnRzT3B0aW9uczogTmd0c1NlZ21lbnRzT3B0aW9ucyA9IHtcblx0bGltaXQ6IDEwMDAsXG5cdGxpbmVXaWR0aDogMS4wLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zZWdtZW50cycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgI2xpbmUgKmFyZ3M9XCJbbGluZV1cIj5cblx0XHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2dlb21ldHJ5XVwiIGF0dGFjaD1cImdlb21ldHJ5XCIgLz5cblx0XHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW21hdGVyaWFsXVwiIGF0dGFjaD1cIm1hdGVyaWFsXCIgW3BhcmFtZXRlcnNdPVwibWF0ZXJpYWxQYXJhbWV0ZXJzKClcIiAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1wcmltaXRpdmU+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1NlZ21lbnRzIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRTZWdtZW50c09wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0U2VnbWVudHNPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ2xpbWl0JywgJ2xpbmVXaWR0aCddKTtcblxuXHRwcml2YXRlIGxpbmVXaWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGluZVdpZHRoJyk7XG5cdHByaXZhdGUgbGltaXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xpbWl0Jyk7XG5cblx0bGluZVJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPExpbmUyPj4oJ2xpbmUnKTtcblxuXHRzZWdtZW50czogQXJyYXk8RWxlbWVudFJlZjxTZWdtZW50T2JqZWN0PiB8IFNlZ21lbnRPYmplY3Q+ID0gW107XG5cblx0bGluZSA9IG5ldyBMaW5lMigpO1xuXHRtYXRlcmlhbCA9IG5ldyBMaW5lTWF0ZXJpYWwoKTtcblx0Z2VvbWV0cnkgPSBuZXcgTGluZVNlZ21lbnRzR2VvbWV0cnkoKTtcblx0cmVzb2x1dGlvbiA9IG5ldyBWZWN0b3IyKDUxMiwgNTEyKTtcblxuXHRtYXRlcmlhbFBhcmFtZXRlcnMgPSBjb21wdXRlZCgoKSA9PiAoe1xuXHRcdHZlcnRleENvbG9yczogdHJ1ZSxcblx0XHRyZXNvbHV0aW9uOiB0aGlzLnJlc29sdXRpb24sXG5cdFx0bGluZXdpZHRoOiB0aGlzLmxpbmVXaWR0aCgpLFxuXHRcdC4uLnRoaXMucGFyYW1ldGVycygpLFxuXHR9KSk7XG5cblx0cG9zaXRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGxpbWl0ID0gdGhpcy5saW1pdCgpO1xuXHRcdHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBsaW1pdCAqIDYgfSwgKCkgPT4gMCk7XG5cdH0pO1xuXHRjb2xvcnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgbGltaXQgPSB0aGlzLmxpbWl0KCk7XG5cdFx0cmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGxpbWl0ICogNiB9LCAoKSA9PiAwKTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IFtsaW1pdCwgcG9zaXRpb25zLCBjb2xvcnNdID0gW3RoaXMubGltaXQoKSwgdGhpcy5wb3NpdGlvbnMoKSwgdGhpcy5jb2xvcnMoKV07XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgbGltaXQ7IGkrKykge1xuXHRcdFx0XHRjb25zdCBzZWdtZW50ID0gcmVzb2x2ZVJlZih0aGlzLnNlZ21lbnRzW2ldKTtcblx0XHRcdFx0aWYgKHNlZ21lbnQpIHtcblx0XHRcdFx0XHRwb3NpdGlvbnNbaSAqIDYgKyAwXSA9IHNlZ21lbnQuc3RhcnQueDtcblx0XHRcdFx0XHRwb3NpdGlvbnNbaSAqIDYgKyAxXSA9IHNlZ21lbnQuc3RhcnQueTtcblx0XHRcdFx0XHRwb3NpdGlvbnNbaSAqIDYgKyAyXSA9IHNlZ21lbnQuc3RhcnQuejtcblxuXHRcdFx0XHRcdHBvc2l0aW9uc1tpICogNiArIDNdID0gc2VnbWVudC5lbmQueDtcblx0XHRcdFx0XHRwb3NpdGlvbnNbaSAqIDYgKyA0XSA9IHNlZ21lbnQuZW5kLnk7XG5cdFx0XHRcdFx0cG9zaXRpb25zW2kgKiA2ICsgNV0gPSBzZWdtZW50LmVuZC56O1xuXG5cdFx0XHRcdFx0Y29sb3JzW2kgKiA2ICsgMF0gPSBzZWdtZW50LmNvbG9yLnI7XG5cdFx0XHRcdFx0Y29sb3JzW2kgKiA2ICsgMV0gPSBzZWdtZW50LmNvbG9yLmc7XG5cdFx0XHRcdFx0Y29sb3JzW2kgKiA2ICsgMl0gPSBzZWdtZW50LmNvbG9yLmI7XG5cblx0XHRcdFx0XHRjb2xvcnNbaSAqIDYgKyAzXSA9IHNlZ21lbnQuY29sb3Iucjtcblx0XHRcdFx0XHRjb2xvcnNbaSAqIDYgKyA0XSA9IHNlZ21lbnQuY29sb3IuZztcblx0XHRcdFx0XHRjb2xvcnNbaSAqIDYgKyA1XSA9IHNlZ21lbnQuY29sb3IuYjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmdlb21ldHJ5LnNldENvbG9ycyhjb2xvcnMpO1xuXHRcdFx0dGhpcy5nZW9tZXRyeS5zZXRQb3NpdGlvbnMocG9zaXRpb25zKTtcblx0XHRcdHRoaXMubGluZS5jb21wdXRlTGluZURpc3RhbmNlcygpO1xuXHRcdH0pO1xuXHR9XG5cblx0c3Vic2NyaWJlKHJlZjogRWxlbWVudFJlZjxTZWdtZW50T2JqZWN0PiB8IFNlZ21lbnRPYmplY3QpIHtcblx0XHR0aGlzLnNlZ21lbnRzLnB1c2gocmVmKTtcblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0dGhpcy5zZWdtZW50cyA9IHRoaXMuc2VnbWVudHMuZmlsdGVyKChpKSA9PiBpICE9PSByZWYpO1xuXHRcdH07XG5cdH1cbn1cbiJdfQ==
|
|
@@ -160,4 +160,4 @@ export const MeshRefractionMaterial = shaderMaterial({
|
|
|
160
160
|
#include <tonemapping_fragment>
|
|
161
161
|
#include <${getVersion() >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
|
|
162
162
|
}`);
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3NoYWRlcnMvc3JjL2xpYi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNOUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUNuRDtJQUNDLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLENBQUM7SUFDVixHQUFHLEVBQUUsR0FBRztJQUNSLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDViw0RkFBNEY7SUFDNUYsR0FBRyxFQUFFLElBQUksb0JBQW9CLEVBQUU7SUFDL0IsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDL0IsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQy9CLGlCQUFpQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUN0Qyx1QkFBdUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Q0FDNUM7QUFDRCx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTRCdEI7QUFDSCx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpQnRCLGFBQWE7SUFDYix1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBOEZYLFVBQVUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtJQUM5RSxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRWZXJzaW9uIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgc2hhZGVyTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvdmFuaWxsYS1leHBvcnRzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2hCVkhVbmlmb3JtU3RydWN0LCBzaGFkZXJJbnRlcnNlY3RGdW5jdGlvbiwgc2hhZGVyU3RydWN0cyB9IGZyb20gJ3RocmVlLW1lc2gtYnZoJztcblxuZGVjbGFyZSBtb2R1bGUgJ3RocmVlLW1lc2gtYnZoJyB7XG5cdGNvbnN0IHNoYWRlckludGVyc2VjdEZ1bmN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBNZXNoUmVmcmFjdGlvbk1hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG5cdHtcblx0XHRlbnZNYXA6IG51bGwsXG5cdFx0Ym91bmNlczogMyxcblx0XHRpb3I6IDIuNCxcblx0XHRjb3JyZWN0TWlwczogdHJ1ZSxcblx0XHRhYmVycmF0aW9uU3RyZW5ndGg6IDAuMDEsXG5cdFx0ZnJlc25lbDogMCxcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gVW5pZm9ybVZhbHVlIGZyb20gcG1uZHJzL3ZhbmlsbGEgZG9lcyBub3QgaW5jbHVkZSBNZXNoQlZIVW5pZm9ybVN0cnVjdFxuXHRcdGJ2aDogbmV3IE1lc2hCVkhVbmlmb3JtU3RydWN0KCksXG5cdFx0Y29sb3I6IG5ldyBUSFJFRS5Db2xvcignd2hpdGUnKSxcblx0XHRvcGFjaXR5OiAxLFxuXHRcdHJlc29sdXRpb246IG5ldyBUSFJFRS5WZWN0b3IyKCksXG5cdFx0dmlld01hdHJpeEludmVyc2U6IG5ldyBUSFJFRS5NYXRyaXg0KCksXG5cdFx0cHJvamVjdGlvbk1hdHJpeEludmVyc2U6IG5ldyBUSFJFRS5NYXRyaXg0KCksXG5cdH0sXG5cdC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG4gIHVuaWZvcm0gbWF0NCB2aWV3TWF0cml4SW52ZXJzZTtcblxuICB2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4gIHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuICB2YXJ5aW5nIG1hdDQgdk1vZGVsTWF0cml4SW52ZXJzZTtcblxuICAjaW5jbHVkZSA8Y29sb3JfcGFyc192ZXJ0ZXg+XG5cbiAgdm9pZCBtYWluKCkge1xuICAgICNpbmNsdWRlIDxjb2xvcl92ZXJ0ZXg+XG5cbiAgICB2ZWM0IHRyYW5zZm9ybWVkTm9ybWFsID0gdmVjNChub3JtYWwsIDAuMCk7XG4gICAgdmVjNCB0cmFuc2Zvcm1lZFBvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAjaWZkZWYgVVNFX0lOU1RBTkNJTkdcbiAgICAgIHRyYW5zZm9ybWVkTm9ybWFsID0gaW5zdGFuY2VNYXRyaXggKiB0cmFuc2Zvcm1lZE5vcm1hbDtcbiAgICAgIHRyYW5zZm9ybWVkUG9zaXRpb24gPSBpbnN0YW5jZU1hdHJpeCAqIHRyYW5zZm9ybWVkUG9zaXRpb247XG4gICAgI2VuZGlmXG5cbiAgICAjaWZkZWYgVVNFX0lOU1RBTkNJTkdcbiAgICAgIHZNb2RlbE1hdHJpeEludmVyc2UgPSBpbnZlcnNlKG1vZGVsTWF0cml4ICogaW5zdGFuY2VNYXRyaXgpO1xuICAgICNlbHNlXG4gICAgICB2TW9kZWxNYXRyaXhJbnZlcnNlID0gaW52ZXJzZShtb2RlbE1hdHJpeCk7XG4gICAgI2VuZGlmXG5cbiAgICB2V29ybGRQb3NpdGlvbiA9IChtb2RlbE1hdHJpeCAqIHRyYW5zZm9ybWVkUG9zaXRpb24pLnh5ejtcbiAgICB2Tm9ybWFsID0gbm9ybWFsaXplKCh2aWV3TWF0cml4SW52ZXJzZSAqIHZlYzQobm9ybWFsTWF0cml4ICogdHJhbnNmb3JtZWROb3JtYWwueHl6LCAwLjApKS54eXopO1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZpZXdNYXRyaXggKiBtb2RlbE1hdHJpeCAqIHRyYW5zZm9ybWVkUG9zaXRpb247XG4gIH1gLFxuXHQvKiBsYW5ndWFnZT1nbHNsIGdsc2wgKi8gYFxuICAjZGVmaW5lIEVOVk1BUF9UWVBFX0NVQkVfVVZcbiAgcHJlY2lzaW9uIGhpZ2hwIGlzYW1wbGVyMkQ7XG4gIHByZWNpc2lvbiBoaWdocCB1c2FtcGxlcjJEO1xuICB2YXJ5aW5nIHZlYzMgdldvcmxkUG9zaXRpb247XG4gIHZhcnlpbmcgdmVjMyB2Tm9ybWFsO1xuICB2YXJ5aW5nIG1hdDQgdk1vZGVsTWF0cml4SW52ZXJzZTtcblxuICAjaW5jbHVkZSA8Y29sb3JfcGFyc19mcmFnbWVudD5cblxuICAjaWZkZWYgRU5WTUFQX1RZUEVfQ1VCRU1cbiAgICB1bmlmb3JtIHNhbXBsZXJDdWJlIGVudk1hcDtcbiAgI2Vsc2VcbiAgICB1bmlmb3JtIHNhbXBsZXIyRCBlbnZNYXA7XG4gICNlbmRpZlxuXG4gIHVuaWZvcm0gZmxvYXQgYm91bmNlcztcbiAgJHtzaGFkZXJTdHJ1Y3RzfVxuICAke3NoYWRlckludGVyc2VjdEZ1bmN0aW9ufVxuICB1bmlmb3JtIEJWSCBidmg7XG4gIHVuaWZvcm0gZmxvYXQgaW9yO1xuICB1bmlmb3JtIGJvb2wgY29ycmVjdE1pcHM7XG4gIHVuaWZvcm0gdmVjMiByZXNvbHV0aW9uO1xuICB1bmlmb3JtIGZsb2F0IGZyZXNuZWw7XG4gIHVuaWZvcm0gbWF0NCBtb2RlbE1hdHJpeDtcbiAgdW5pZm9ybSBtYXQ0IHByb2plY3Rpb25NYXRyaXhJbnZlcnNlO1xuICB1bmlmb3JtIG1hdDQgdmlld01hdHJpeEludmVyc2U7XG4gIHVuaWZvcm0gZmxvYXQgYWJlcnJhdGlvblN0cmVuZ3RoO1xuICB1bmlmb3JtIHZlYzMgY29sb3I7XG4gIHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxuICBmbG9hdCBmcmVzbmVsRnVuYyh2ZWMzIHZpZXdEaXJlY3Rpb24sIHZlYzMgd29ybGROb3JtYWwpIHtcbiAgICByZXR1cm4gcG93KCAxLjAgKyBkb3QoIHZpZXdEaXJlY3Rpb24sIHdvcmxkTm9ybWFsKSwgMTAuMCApO1xuICB9XG5cbiAgdmVjMyB0b3RhbEludGVybmFsUmVmbGVjdGlvbih2ZWMzIHJvLCB2ZWMzIHJkLCB2ZWMzIG5vcm1hbCwgZmxvYXQgaW9yLCBtYXQ0IG1vZGVsTWF0cml4SW52ZXJzZSkge1xuICAgIHZlYzMgcmF5T3JpZ2luID0gcm87XG4gICAgdmVjMyByYXlEaXJlY3Rpb24gPSByZDtcbiAgICByYXlEaXJlY3Rpb24gPSByZWZyYWN0KHJheURpcmVjdGlvbiwgbm9ybWFsLCAxLjAgLyBpb3IpO1xuICAgIHJheU9yaWdpbiA9IHZXb3JsZFBvc2l0aW9uICsgcmF5RGlyZWN0aW9uICogMC4wMDE7XG4gICAgcmF5T3JpZ2luID0gKG1vZGVsTWF0cml4SW52ZXJzZSAqIHZlYzQocmF5T3JpZ2luLCAxLjApKS54eXo7XG4gICAgcmF5RGlyZWN0aW9uID0gbm9ybWFsaXplKChtb2RlbE1hdHJpeEludmVyc2UgKiB2ZWM0KHJheURpcmVjdGlvbiwgMC4wKSkueHl6KTtcbiAgICBmb3IoZmxvYXQgaSA9IDAuMDsgaSA8IGJvdW5jZXM7IGkrKykge1xuICAgICAgdXZlYzQgZmFjZUluZGljZXMgPSB1dmVjNCggMHUgKTtcbiAgICAgIHZlYzMgZmFjZU5vcm1hbCA9IHZlYzMoIDAuMCwgMC4wLCAxLjAgKTtcbiAgICAgIHZlYzMgYmFyeWNvb3JkID0gdmVjMyggMC4wICk7XG4gICAgICBmbG9hdCBzaWRlID0gMS4wO1xuICAgICAgZmxvYXQgZGlzdCA9IDAuMDtcbiAgICAgIGJ2aEludGVyc2VjdEZpcnN0SGl0KCBidmgsIHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBmYWNlSW5kaWNlcywgZmFjZU5vcm1hbCwgYmFyeWNvb3JkLCBzaWRlLCBkaXN0ICk7XG4gICAgICB2ZWMzIGhpdFBvcyA9IHJheU9yaWdpbiArIHJheURpcmVjdGlvbiAqIG1heChkaXN0IC0gMC4wMDEsIDAuMCk7XG4gICAgICB2ZWMzIHRlbXBEaXIgPSByZWZyYWN0KHJheURpcmVjdGlvbiwgZmFjZU5vcm1hbCwgaW9yKTtcbiAgICAgIGlmIChsZW5ndGgodGVtcERpcikgIT0gMC4wKSB7XG4gICAgICAgIHJheURpcmVjdGlvbiA9IHRlbXBEaXI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmF5RGlyZWN0aW9uID0gcmVmbGVjdChyYXlEaXJlY3Rpb24sIGZhY2VOb3JtYWwpO1xuICAgICAgcmF5T3JpZ2luID0gaGl0UG9zICsgcmF5RGlyZWN0aW9uICogMC4wMTtcbiAgICB9XG4gICAgcmF5RGlyZWN0aW9uID0gbm9ybWFsaXplKChtb2RlbE1hdHJpeCAqIHZlYzQocmF5RGlyZWN0aW9uLCAwLjApKS54eXopO1xuICAgIHJldHVybiByYXlEaXJlY3Rpb247XG4gIH1cblxuICAjaW5jbHVkZSA8Y29tbW9uPlxuICAjaW5jbHVkZSA8Y3ViZV91dl9yZWZsZWN0aW9uX2ZyYWdtZW50PlxuXG4gICNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFTVxuICAgIHZlYzQgdGV4dHVyZUdyYWRpZW50KHNhbXBsZXJDdWJlIGVudk1hcCwgdmVjMyByYXlEaXJlY3Rpb24sIHZlYzMgZGlyZWN0aW9uQ2FtUGVyZmVjdCkge1xuICAgICAgcmV0dXJuIHRleHR1cmVHcmFkKGVudk1hcCwgcmF5RGlyZWN0aW9uLCBkRmR4KGNvcnJlY3RNaXBzID8gZGlyZWN0aW9uQ2FtUGVyZmVjdDogcmF5RGlyZWN0aW9uKSwgZEZkeShjb3JyZWN0TWlwcyA/IGRpcmVjdGlvbkNhbVBlcmZlY3Q6IHJheURpcmVjdGlvbikpO1xuICAgIH1cbiAgI2Vsc2VcbiAgICB2ZWM0IHRleHR1cmVHcmFkaWVudChzYW1wbGVyMkQgZW52TWFwLCB2ZWMzIHJheURpcmVjdGlvbiwgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0KSB7XG4gICAgICB2ZWMyIHV2diA9IGVxdWlyZWN0VXYoIHJheURpcmVjdGlvbiApO1xuICAgICAgdmVjMiBzbW9vdGhVdiA9IGVxdWlyZWN0VXYoIGRpcmVjdGlvbkNhbVBlcmZlY3QgKTtcbiAgICAgIHJldHVybiB0ZXh0dXJlR3JhZChlbnZNYXAsIHV2diwgZEZkeChjb3JyZWN0TWlwcyA/IHNtb290aFV2IDogdXZ2KSwgZEZkeShjb3JyZWN0TWlwcyA/IHNtb290aFV2IDogdXZ2KSk7XG4gICAgfVxuICAjZW5kaWZcblxuICB2b2lkIG1haW4oKSB7XG4gICAgdmVjMiB1diA9IGdsX0ZyYWdDb29yZC54eSAvIHJlc29sdXRpb247XG4gICAgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0ID0gKHByb2plY3Rpb25NYXRyaXhJbnZlcnNlICogdmVjNCh1diAqIDIuMCAtIDEuMCwgMC4wLCAxLjApKS54eXo7XG4gICAgZGlyZWN0aW9uQ2FtUGVyZmVjdCA9ICh2aWV3TWF0cml4SW52ZXJzZSAqIHZlYzQoZGlyZWN0aW9uQ2FtUGVyZmVjdCwgMC4wKSkueHl6O1xuICAgIGRpcmVjdGlvbkNhbVBlcmZlY3QgPSBub3JtYWxpemUoZGlyZWN0aW9uQ2FtUGVyZmVjdCk7XG4gICAgdmVjMyBub3JtYWwgPSB2Tm9ybWFsO1xuICAgIHZlYzMgcmF5T3JpZ2luID0gY2FtZXJhUG9zaXRpb247XG4gICAgdmVjMyByYXlEaXJlY3Rpb24gPSBub3JtYWxpemUodldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbik7XG5cbiAgICB2ZWM0IGRpZmZ1c2VDb2xvciA9IHZlYzQoY29sb3IsIG9wYWNpdHkpO1xuICAgICNpbmNsdWRlIDxjb2xvcl9mcmFnbWVudD5cblxuICAgICNpZmRlZiBDSFJPTUFUSUNfQUJFUlJBVElPTlNcbiAgICAgIHZlYzMgcmF5RGlyZWN0aW9uRyA9IHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBub3JtYWwsIG1heChpb3IsIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgI2lmZGVmIEZBU1RfQ0hST01BXG4gICAgICAgIHZlYzMgcmF5RGlyZWN0aW9uUiA9IG5vcm1hbGl6ZShyYXlEaXJlY3Rpb25HICsgMS4wICogdmVjMyhhYmVycmF0aW9uU3RyZW5ndGggLyAyLjApKTtcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25CID0gbm9ybWFsaXplKHJheURpcmVjdGlvbkcgLSAxLjAgKiB2ZWMzKGFiZXJyYXRpb25TdHJlbmd0aCAvIDIuMCkpO1xuICAgICAgI2Vsc2VcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25SID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciAqICgxLjAgLSBhYmVycmF0aW9uU3RyZW5ndGgpLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25CID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciAqICgxLjAgKyBhYmVycmF0aW9uU3RyZW5ndGgpLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgICNlbmRpZlxuICAgICAgZmxvYXQgZmluYWxDb2xvclIgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25SLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5yO1xuICAgICAgZmxvYXQgZmluYWxDb2xvckcgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25HLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5nO1xuICAgICAgZmxvYXQgZmluYWxDb2xvckIgPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb25CLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5iO1xuICAgICAgZGlmZnVzZUNvbG9yLnJnYiAqPSB2ZWMzKGZpbmFsQ29sb3JSLCBmaW5hbENvbG9yRywgZmluYWxDb2xvckIpO1xuICAgICNlbHNlXG4gICAgICByYXlEaXJlY3Rpb24gPSB0b3RhbEludGVybmFsUmVmbGVjdGlvbihyYXlPcmlnaW4sIHJheURpcmVjdGlvbiwgbm9ybWFsLCBtYXgoaW9yLCAxLjApLCB2TW9kZWxNYXRyaXhJbnZlcnNlKTtcbiAgICAgIGRpZmZ1c2VDb2xvci5yZ2IgKj0gdGV4dHVyZUdyYWRpZW50KGVudk1hcCwgcmF5RGlyZWN0aW9uLCBkaXJlY3Rpb25DYW1QZXJmZWN0KS5yZ2I7XG4gICAgI2VuZGlmXG5cbiAgICB2ZWMzIHZpZXdEaXJlY3Rpb24gPSBub3JtYWxpemUodldvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbik7XG4gICAgZmxvYXQgbkZyZXNuZWwgPSBmcmVzbmVsRnVuYyh2aWV3RGlyZWN0aW9uLCBub3JtYWwpICogZnJlc25lbDtcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KG1peChkaWZmdXNlQ29sb3IucmdiLCB2ZWMzKDEuMCksIG5GcmVzbmVsKSwgZGlmZnVzZUNvbG9yLmEpO1xuXG4gICAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuICAgICNpbmNsdWRlIDwke2dldFZlcnNpb24oKSA+PSAxNTQgPyAnY29sb3JzcGFjZV9mcmFnbWVudCcgOiAnZW5jb2RpbmdzX2ZyYWdtZW50J30+XG4gIH1gLFxuKTtcbiJdfQ==
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3NoYWRlcnMvc3JjL2xpYi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxDQUNuRDtJQUNDLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLENBQUM7SUFDVixHQUFHLEVBQUUsR0FBRztJQUNSLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDViw0RkFBNEY7SUFDNUYsR0FBRyxFQUFFLElBQUksb0JBQW9CLEVBQUU7SUFDL0IsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDL0IsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQy9CLGlCQUFpQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtJQUN0Qyx1QkFBdUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Q0FDNUM7QUFDRCx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTRCdEI7QUFDSCx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpQnRCLGFBQWE7SUFDYix1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBOEZYLFVBQVUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtJQUM5RSxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRWZXJzaW9uIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgc2hhZGVyTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvdmFuaWxsYS1leHBvcnRzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2hCVkhVbmlmb3JtU3RydWN0LCBzaGFkZXJJbnRlcnNlY3RGdW5jdGlvbiwgc2hhZGVyU3RydWN0cyB9IGZyb20gJ3RocmVlLW1lc2gtYnZoJztcblxuZXhwb3J0IGNvbnN0IE1lc2hSZWZyYWN0aW9uTWF0ZXJpYWwgPSBzaGFkZXJNYXRlcmlhbChcblx0e1xuXHRcdGVudk1hcDogbnVsbCxcblx0XHRib3VuY2VzOiAzLFxuXHRcdGlvcjogMi40LFxuXHRcdGNvcnJlY3RNaXBzOiB0cnVlLFxuXHRcdGFiZXJyYXRpb25TdHJlbmd0aDogMC4wMSxcblx0XHRmcmVzbmVsOiAwLFxuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBVbmlmb3JtVmFsdWUgZnJvbSBwbW5kcnMvdmFuaWxsYSBkb2VzIG5vdCBpbmNsdWRlIE1lc2hCVkhVbmlmb3JtU3RydWN0XG5cdFx0YnZoOiBuZXcgTWVzaEJWSFVuaWZvcm1TdHJ1Y3QoKSxcblx0XHRjb2xvcjogbmV3IFRIUkVFLkNvbG9yKCd3aGl0ZScpLFxuXHRcdG9wYWNpdHk6IDEsXG5cdFx0cmVzb2x1dGlvbjogbmV3IFRIUkVFLlZlY3RvcjIoKSxcblx0XHR2aWV3TWF0cml4SW52ZXJzZTogbmV3IFRIUkVFLk1hdHJpeDQoKSxcblx0XHRwcm9qZWN0aW9uTWF0cml4SW52ZXJzZTogbmV3IFRIUkVFLk1hdHJpeDQoKSxcblx0fSxcblx0LyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcbiAgdW5pZm9ybSBtYXQ0IHZpZXdNYXRyaXhJbnZlcnNlO1xuXG4gIHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiAgdmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4gIHZhcnlpbmcgbWF0NCB2TW9kZWxNYXRyaXhJbnZlcnNlO1xuXG4gICNpbmNsdWRlIDxjb2xvcl9wYXJzX3ZlcnRleD5cblxuICB2b2lkIG1haW4oKSB7XG4gICAgI2luY2x1ZGUgPGNvbG9yX3ZlcnRleD5cblxuICAgIHZlYzQgdHJhbnNmb3JtZWROb3JtYWwgPSB2ZWM0KG5vcm1hbCwgMC4wKTtcbiAgICB2ZWM0IHRyYW5zZm9ybWVkUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICAgICNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuICAgICAgdHJhbnNmb3JtZWROb3JtYWwgPSBpbnN0YW5jZU1hdHJpeCAqIHRyYW5zZm9ybWVkTm9ybWFsO1xuICAgICAgdHJhbnNmb3JtZWRQb3NpdGlvbiA9IGluc3RhbmNlTWF0cml4ICogdHJhbnNmb3JtZWRQb3NpdGlvbjtcbiAgICAjZW5kaWZcblxuICAgICNpZmRlZiBVU0VfSU5TVEFOQ0lOR1xuICAgICAgdk1vZGVsTWF0cml4SW52ZXJzZSA9IGludmVyc2UobW9kZWxNYXRyaXggKiBpbnN0YW5jZU1hdHJpeCk7XG4gICAgI2Vsc2VcbiAgICAgIHZNb2RlbE1hdHJpeEludmVyc2UgPSBpbnZlcnNlKG1vZGVsTWF0cml4KTtcbiAgICAjZW5kaWZcblxuICAgIHZXb3JsZFBvc2l0aW9uID0gKG1vZGVsTWF0cml4ICogdHJhbnNmb3JtZWRQb3NpdGlvbikueHl6O1xuICAgIHZOb3JtYWwgPSBub3JtYWxpemUoKHZpZXdNYXRyaXhJbnZlcnNlICogdmVjNChub3JtYWxNYXRyaXggKiB0cmFuc2Zvcm1lZE5vcm1hbC54eXosIDAuMCkpLnh5eik7XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmlld01hdHJpeCAqIG1vZGVsTWF0cml4ICogdHJhbnNmb3JtZWRQb3NpdGlvbjtcbiAgfWAsXG5cdC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG4gICNkZWZpbmUgRU5WTUFQX1RZUEVfQ1VCRV9VVlxuICBwcmVjaXNpb24gaGlnaHAgaXNhbXBsZXIyRDtcbiAgcHJlY2lzaW9uIGhpZ2hwIHVzYW1wbGVyMkQ7XG4gIHZhcnlpbmcgdmVjMyB2V29ybGRQb3NpdGlvbjtcbiAgdmFyeWluZyB2ZWMzIHZOb3JtYWw7XG4gIHZhcnlpbmcgbWF0NCB2TW9kZWxNYXRyaXhJbnZlcnNlO1xuXG4gICNpbmNsdWRlIDxjb2xvcl9wYXJzX2ZyYWdtZW50PlxuXG4gICNpZmRlZiBFTlZNQVBfVFlQRV9DVUJFTVxuICAgIHVuaWZvcm0gc2FtcGxlckN1YmUgZW52TWFwO1xuICAjZWxzZVxuICAgIHVuaWZvcm0gc2FtcGxlcjJEIGVudk1hcDtcbiAgI2VuZGlmXG5cbiAgdW5pZm9ybSBmbG9hdCBib3VuY2VzO1xuICAke3NoYWRlclN0cnVjdHN9XG4gICR7c2hhZGVySW50ZXJzZWN0RnVuY3Rpb259XG4gIHVuaWZvcm0gQlZIIGJ2aDtcbiAgdW5pZm9ybSBmbG9hdCBpb3I7XG4gIHVuaWZvcm0gYm9vbCBjb3JyZWN0TWlwcztcbiAgdW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG4gIHVuaWZvcm0gZmxvYXQgZnJlc25lbDtcbiAgdW5pZm9ybSBtYXQ0IG1vZGVsTWF0cml4O1xuICB1bmlmb3JtIG1hdDQgcHJvamVjdGlvbk1hdHJpeEludmVyc2U7XG4gIHVuaWZvcm0gbWF0NCB2aWV3TWF0cml4SW52ZXJzZTtcbiAgdW5pZm9ybSBmbG9hdCBhYmVycmF0aW9uU3RyZW5ndGg7XG4gIHVuaWZvcm0gdmVjMyBjb2xvcjtcbiAgdW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG4gIGZsb2F0IGZyZXNuZWxGdW5jKHZlYzMgdmlld0RpcmVjdGlvbiwgdmVjMyB3b3JsZE5vcm1hbCkge1xuICAgIHJldHVybiBwb3coIDEuMCArIGRvdCggdmlld0RpcmVjdGlvbiwgd29ybGROb3JtYWwpLCAxMC4wICk7XG4gIH1cblxuICB2ZWMzIHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHZlYzMgcm8sIHZlYzMgcmQsIHZlYzMgbm9ybWFsLCBmbG9hdCBpb3IsIG1hdDQgbW9kZWxNYXRyaXhJbnZlcnNlKSB7XG4gICAgdmVjMyByYXlPcmlnaW4gPSBybztcbiAgICB2ZWMzIHJheURpcmVjdGlvbiA9IHJkO1xuICAgIHJheURpcmVjdGlvbiA9IHJlZnJhY3QocmF5RGlyZWN0aW9uLCBub3JtYWwsIDEuMCAvIGlvcik7XG4gICAgcmF5T3JpZ2luID0gdldvcmxkUG9zaXRpb24gKyByYXlEaXJlY3Rpb24gKiAwLjAwMTtcbiAgICByYXlPcmlnaW4gPSAobW9kZWxNYXRyaXhJbnZlcnNlICogdmVjNChyYXlPcmlnaW4sIDEuMCkpLnh5ejtcbiAgICByYXlEaXJlY3Rpb24gPSBub3JtYWxpemUoKG1vZGVsTWF0cml4SW52ZXJzZSAqIHZlYzQocmF5RGlyZWN0aW9uLCAwLjApKS54eXopO1xuICAgIGZvcihmbG9hdCBpID0gMC4wOyBpIDwgYm91bmNlczsgaSsrKSB7XG4gICAgICB1dmVjNCBmYWNlSW5kaWNlcyA9IHV2ZWM0KCAwdSApO1xuICAgICAgdmVjMyBmYWNlTm9ybWFsID0gdmVjMyggMC4wLCAwLjAsIDEuMCApO1xuICAgICAgdmVjMyBiYXJ5Y29vcmQgPSB2ZWMzKCAwLjAgKTtcbiAgICAgIGZsb2F0IHNpZGUgPSAxLjA7XG4gICAgICBmbG9hdCBkaXN0ID0gMC4wO1xuICAgICAgYnZoSW50ZXJzZWN0Rmlyc3RIaXQoIGJ2aCwgcmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIGZhY2VJbmRpY2VzLCBmYWNlTm9ybWFsLCBiYXJ5Y29vcmQsIHNpZGUsIGRpc3QgKTtcbiAgICAgIHZlYzMgaGl0UG9zID0gcmF5T3JpZ2luICsgcmF5RGlyZWN0aW9uICogbWF4KGRpc3QgLSAwLjAwMSwgMC4wKTtcbiAgICAgIHZlYzMgdGVtcERpciA9IHJlZnJhY3QocmF5RGlyZWN0aW9uLCBmYWNlTm9ybWFsLCBpb3IpO1xuICAgICAgaWYgKGxlbmd0aCh0ZW1wRGlyKSAhPSAwLjApIHtcbiAgICAgICAgcmF5RGlyZWN0aW9uID0gdGVtcERpcjtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByYXlEaXJlY3Rpb24gPSByZWZsZWN0KHJheURpcmVjdGlvbiwgZmFjZU5vcm1hbCk7XG4gICAgICByYXlPcmlnaW4gPSBoaXRQb3MgKyByYXlEaXJlY3Rpb24gKiAwLjAxO1xuICAgIH1cbiAgICByYXlEaXJlY3Rpb24gPSBub3JtYWxpemUoKG1vZGVsTWF0cml4ICogdmVjNChyYXlEaXJlY3Rpb24sIDAuMCkpLnh5eik7XG4gICAgcmV0dXJuIHJheURpcmVjdGlvbjtcbiAgfVxuXG4gICNpbmNsdWRlIDxjb21tb24+XG4gICNpbmNsdWRlIDxjdWJlX3V2X3JlZmxlY3Rpb25fZnJhZ21lbnQ+XG5cbiAgI2lmZGVmIEVOVk1BUF9UWVBFX0NVQkVNXG4gICAgdmVjNCB0ZXh0dXJlR3JhZGllbnQoc2FtcGxlckN1YmUgZW52TWFwLCB2ZWMzIHJheURpcmVjdGlvbiwgdmVjMyBkaXJlY3Rpb25DYW1QZXJmZWN0KSB7XG4gICAgICByZXR1cm4gdGV4dHVyZUdyYWQoZW52TWFwLCByYXlEaXJlY3Rpb24sIGRGZHgoY29ycmVjdE1pcHMgPyBkaXJlY3Rpb25DYW1QZXJmZWN0OiByYXlEaXJlY3Rpb24pLCBkRmR5KGNvcnJlY3RNaXBzID8gZGlyZWN0aW9uQ2FtUGVyZmVjdDogcmF5RGlyZWN0aW9uKSk7XG4gICAgfVxuICAjZWxzZVxuICAgIHZlYzQgdGV4dHVyZUdyYWRpZW50KHNhbXBsZXIyRCBlbnZNYXAsIHZlYzMgcmF5RGlyZWN0aW9uLCB2ZWMzIGRpcmVjdGlvbkNhbVBlcmZlY3QpIHtcbiAgICAgIHZlYzIgdXZ2ID0gZXF1aXJlY3RVdiggcmF5RGlyZWN0aW9uICk7XG4gICAgICB2ZWMyIHNtb290aFV2ID0gZXF1aXJlY3RVdiggZGlyZWN0aW9uQ2FtUGVyZmVjdCApO1xuICAgICAgcmV0dXJuIHRleHR1cmVHcmFkKGVudk1hcCwgdXZ2LCBkRmR4KGNvcnJlY3RNaXBzID8gc21vb3RoVXYgOiB1dnYpLCBkRmR5KGNvcnJlY3RNaXBzID8gc21vb3RoVXYgOiB1dnYpKTtcbiAgICB9XG4gICNlbmRpZlxuXG4gIHZvaWQgbWFpbigpIHtcbiAgICB2ZWMyIHV2ID0gZ2xfRnJhZ0Nvb3JkLnh5IC8gcmVzb2x1dGlvbjtcbiAgICB2ZWMzIGRpcmVjdGlvbkNhbVBlcmZlY3QgPSAocHJvamVjdGlvbk1hdHJpeEludmVyc2UgKiB2ZWM0KHV2ICogMi4wIC0gMS4wLCAwLjAsIDEuMCkpLnh5ejtcbiAgICBkaXJlY3Rpb25DYW1QZXJmZWN0ID0gKHZpZXdNYXRyaXhJbnZlcnNlICogdmVjNChkaXJlY3Rpb25DYW1QZXJmZWN0LCAwLjApKS54eXo7XG4gICAgZGlyZWN0aW9uQ2FtUGVyZmVjdCA9IG5vcm1hbGl6ZShkaXJlY3Rpb25DYW1QZXJmZWN0KTtcbiAgICB2ZWMzIG5vcm1hbCA9IHZOb3JtYWw7XG4gICAgdmVjMyByYXlPcmlnaW4gPSBjYW1lcmFQb3NpdGlvbjtcbiAgICB2ZWMzIHJheURpcmVjdGlvbiA9IG5vcm1hbGl6ZSh2V29ybGRQb3NpdGlvbiAtIGNhbWVyYVBvc2l0aW9uKTtcblxuICAgIHZlYzQgZGlmZnVzZUNvbG9yID0gdmVjNChjb2xvciwgb3BhY2l0eSk7XG4gICAgI2luY2x1ZGUgPGNvbG9yX2ZyYWdtZW50PlxuXG4gICAgI2lmZGVmIENIUk9NQVRJQ19BQkVSUkFUSU9OU1xuICAgICAgdmVjMyByYXlEaXJlY3Rpb25HID0gdG90YWxJbnRlcm5hbFJlZmxlY3Rpb24ocmF5T3JpZ2luLCByYXlEaXJlY3Rpb24sIG5vcm1hbCwgbWF4KGlvciwgMS4wKSwgdk1vZGVsTWF0cml4SW52ZXJzZSk7XG4gICAgICAjaWZkZWYgRkFTVF9DSFJPTUFcbiAgICAgICAgdmVjMyByYXlEaXJlY3Rpb25SID0gbm9ybWFsaXplKHJheURpcmVjdGlvbkcgKyAxLjAgKiB2ZWMzKGFiZXJyYXRpb25TdHJlbmd0aCAvIDIuMCkpO1xuICAgICAgICB2ZWMzIHJheURpcmVjdGlvbkIgPSBub3JtYWxpemUocmF5RGlyZWN0aW9uRyAtIDEuMCAqIHZlYzMoYWJlcnJhdGlvblN0cmVuZ3RoIC8gMi4wKSk7XG4gICAgICAjZWxzZVxuICAgICAgICB2ZWMzIHJheURpcmVjdGlvblIgPSB0b3RhbEludGVybmFsUmVmbGVjdGlvbihyYXlPcmlnaW4sIHJheURpcmVjdGlvbiwgbm9ybWFsLCBtYXgoaW9yICogKDEuMCAtIGFiZXJyYXRpb25TdHJlbmd0aCksIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgICB2ZWMzIHJheURpcmVjdGlvbkIgPSB0b3RhbEludGVybmFsUmVmbGVjdGlvbihyYXlPcmlnaW4sIHJheURpcmVjdGlvbiwgbm9ybWFsLCBtYXgoaW9yICogKDEuMCArIGFiZXJyYXRpb25TdHJlbmd0aCksIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgI2VuZGlmXG4gICAgICBmbG9hdCBmaW5hbENvbG9yUiA9IHRleHR1cmVHcmFkaWVudChlbnZNYXAsIHJheURpcmVjdGlvblIsIGRpcmVjdGlvbkNhbVBlcmZlY3QpLnI7XG4gICAgICBmbG9hdCBmaW5hbENvbG9yRyA9IHRleHR1cmVHcmFkaWVudChlbnZNYXAsIHJheURpcmVjdGlvbkcsIGRpcmVjdGlvbkNhbVBlcmZlY3QpLmc7XG4gICAgICBmbG9hdCBmaW5hbENvbG9yQiA9IHRleHR1cmVHcmFkaWVudChlbnZNYXAsIHJheURpcmVjdGlvbkIsIGRpcmVjdGlvbkNhbVBlcmZlY3QpLmI7XG4gICAgICBkaWZmdXNlQ29sb3IucmdiICo9IHZlYzMoZmluYWxDb2xvclIsIGZpbmFsQ29sb3JHLCBmaW5hbENvbG9yQik7XG4gICAgI2Vsc2VcbiAgICAgIHJheURpcmVjdGlvbiA9IHRvdGFsSW50ZXJuYWxSZWZsZWN0aW9uKHJheU9yaWdpbiwgcmF5RGlyZWN0aW9uLCBub3JtYWwsIG1heChpb3IsIDEuMCksIHZNb2RlbE1hdHJpeEludmVyc2UpO1xuICAgICAgZGlmZnVzZUNvbG9yLnJnYiAqPSB0ZXh0dXJlR3JhZGllbnQoZW52TWFwLCByYXlEaXJlY3Rpb24sIGRpcmVjdGlvbkNhbVBlcmZlY3QpLnJnYjtcbiAgICAjZW5kaWZcblxuICAgIHZlYzMgdmlld0RpcmVjdGlvbiA9IG5vcm1hbGl6ZSh2V29ybGRQb3NpdGlvbiAtIGNhbWVyYVBvc2l0aW9uKTtcbiAgICBmbG9hdCBuRnJlc25lbCA9IGZyZXNuZWxGdW5jKHZpZXdEaXJlY3Rpb24sIG5vcm1hbCkgKiBmcmVzbmVsO1xuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQobWl4KGRpZmZ1c2VDb2xvci5yZ2IsIHZlYzMoMS4wKSwgbkZyZXNuZWwpLCBkaWZmdXNlQ29sb3IuYSk7XG5cbiAgICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG4gICAgI2luY2x1ZGUgPCR7Z2V0VmVyc2lvbigpID49IDE1NCA/ICdjb2xvcnNwYWNlX2ZyYWdtZW50JyA6ICdlbmNvZGluZ3NfZnJhZ21lbnQnfT5cbiAgfWAsXG4pO1xuIl19
|
|
@@ -6,7 +6,8 @@ export * from './lib/camera-shake';
|
|
|
6
6
|
export * from './lib/caustics';
|
|
7
7
|
export * from './lib/center';
|
|
8
8
|
export * from './lib/contact-shadows';
|
|
9
|
-
export * from './lib/environment';
|
|
9
|
+
export * from './lib/environment/environment';
|
|
10
|
+
export * from './lib/environment/inject-environment';
|
|
10
11
|
export * from './lib/float';
|
|
11
12
|
export * from './lib/lightformer';
|
|
12
13
|
export * from './lib/mask';
|
|
@@ -17,4 +18,4 @@ export * from './lib/render-texture';
|
|
|
17
18
|
export * from './lib/sky';
|
|
18
19
|
export { NgtsSpotLight, NgtsSpotLightShadow } from './lib/spot-light';
|
|
19
20
|
export * from './lib/stage';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixPQUFPLEVBQUUsYUFBYSxFQUF3QixtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFja2Ryb3AnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmItYW5jaG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2JvdW5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYW1lcmEtc2hha2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2F1c3RpY3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2VudGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRhY3Qtc2hhZG93cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnZpcm9ubWVudC9pbmplY3QtZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmxvYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGlnaHRmb3JtZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFzayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjYXAtdGV4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ub3JtYWwtdGV4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yYW5kb21pemVkLWxpZ2h0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZW5kZXItdGV4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9za3knO1xuZXhwb3J0IHsgTmd0c1Nwb3RMaWdodCwgTmd0c1Nwb3RMaWdodE9wdGlvbnMsIE5ndHNTcG90TGlnaHRTaGFkb3cgfSBmcm9tICcuL2xpYi9zcG90LWxpZ2h0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0YWdlJztcbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, DestroyRef, afterNextRender, computed, inject, input, untracked, viewChild, } from '@angular/core';
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, DestroyRef, afterNextRender, computed, effect, inject, input, untracked, viewChild, } from '@angular/core';
|
|
2
2
|
import { extend, getLocalState, injectBeforeRender, injectStore, omit, pick } from 'angular-three';
|
|
3
3
|
import { ProgressiveLightMap, SoftShadowMaterial } from 'angular-three-soba/vanilla-exports';
|
|
4
|
-
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
5
4
|
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
6
5
|
import { Group, Mesh, PlaneGeometry } from 'three';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
@@ -64,23 +63,22 @@ export class NgtsAccumulativeShadows {
|
|
|
64
63
|
this.blend = computed(() => Math.max(2, this.options().frames === Infinity ? this.options().blend : this.options().frames));
|
|
65
64
|
this.count = 0;
|
|
66
65
|
extend({ Group, SoftShadowMaterial, Mesh, PlaneGeometry });
|
|
67
|
-
const autoEffect = injectAutoEffect();
|
|
68
66
|
afterNextRender(() => {
|
|
69
67
|
this.pLM().configure(this.planeRef().nativeElement);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
68
|
+
});
|
|
69
|
+
effect(() => {
|
|
70
|
+
const sceneLS = getLocalState(this.scene());
|
|
71
|
+
if (!sceneLS)
|
|
72
|
+
return;
|
|
73
|
+
// track deps
|
|
74
|
+
this.planeRef();
|
|
75
|
+
this.options();
|
|
76
|
+
sceneLS.objects();
|
|
77
|
+
// Reset internals, buffers, ...
|
|
78
|
+
this.reset();
|
|
79
|
+
// Update lightmap
|
|
80
|
+
if (!this.temporal() && this.frames() !== Infinity)
|
|
81
|
+
this.update(this.blend());
|
|
84
82
|
});
|
|
85
83
|
injectBeforeRender(() => {
|
|
86
84
|
const [frames, temporal, invalidate, limit] = [this.frames(), !!this.temporal(), this.invalidate(), this.limit()];
|
|
@@ -130,8 +128,8 @@ export class NgtsAccumulativeShadows {
|
|
|
130
128
|
// Restore lights and meshes
|
|
131
129
|
this.pLM().finish();
|
|
132
130
|
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAccumulativeShadows, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.4", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lightsRef", first: true, predicate: ["lights"], descendants: true, isSignal: true }, { propertyName: "planeRef", first: true, predicate: ["plane"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
135
133
|
<ngt-group [parameters]="parameters()">
|
|
136
134
|
<ngt-group #lights [traverse]="nullTraversal">
|
|
137
135
|
<ng-content />
|
|
@@ -151,7 +149,7 @@ export class NgtsAccumulativeShadows {
|
|
|
151
149
|
</ngt-group>
|
|
152
150
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
153
151
|
}
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
|
|
155
153
|
type: Component,
|
|
156
154
|
args: [{
|
|
157
155
|
selector: 'ngts-accumulative-shadows',
|
|
@@ -179,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
179
177
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
180
178
|
}]
|
|
181
179
|
}], ctorParameters: () => [] });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0aXZlLXNoYWRvd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2FjY3VtdWxhdGl2ZS1zaGFkb3dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBRVYsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFZLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUEyQm5ELE1BQU0sY0FBYyxHQUFtQztJQUN0RCxRQUFRLEVBQUUsS0FBSztJQUNmLE1BQU0sRUFBRSxFQUFFO0lBQ1YsS0FBSyxFQUFFLFFBQVE7SUFDZixLQUFLLEVBQUUsRUFBRTtJQUNULEtBQUssRUFBRSxFQUFFO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRUFBRSxPQUFPO0lBQ2QsVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtDQUNoQixDQUFDO0FBMkJGLE1BQU0sT0FBTyx1QkFBdUI7SUF1RG5DO1FBdERBLGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFFWixZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMvQixVQUFVO1lBQ1YsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLFNBQVM7WUFDVCxXQUFXO1lBQ1gsT0FBTztZQUNQLFlBQVk7WUFDWixZQUFZO1lBQ1osWUFBWTtTQUNaLENBQUMsQ0FBQztRQUVILGNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFvQixRQUFRLENBQUMsQ0FBQztRQUM1RCxhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBMkUsT0FBTyxDQUFDLENBQUM7UUFFekcsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLE9BQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixXQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsVUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU3QyxZQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsY0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLFVBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNwQyxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFHOUMsUUFBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pHLENBQUMsQ0FBQyxDQUFDO1FBRUgsVUFBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5QyxVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlDLFFBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztRQUMxQyxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM1RCxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUM5RixDQUFDO1FBQ0YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUdULE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUUzRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFcEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxPQUFPO29CQUFFLE9BQU87Z0JBQ3JCLGFBQWE7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUVsQixnQ0FBZ0M7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixrQkFBa0I7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLFFBQVE7b0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvRSxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNsSCxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUNwRixVQUFVLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLO1FBQ0osdURBQXVEO1FBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7UUFDaEIsd0RBQXdEO1FBQ3hELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN0QixRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNQLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDOUYsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUM5QyxrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXJCLGtEQUFrRDtRQUNsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELG9CQUFvQjtRQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDL0MsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDOzhHQWxJVyx1QkFBdUI7a0dBQXZCLHVCQUF1Qix3YkF0QnpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQlQ7OzJGQUlXLHVCQUF1QjtrQkF6Qm5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RHcm91cCwgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBvbWl0LCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBQcm9ncmVzc2l2ZUxpZ2h0TWFwLCBTb2Z0U2hhZG93TWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvdmFuaWxsYS1leHBvcnRzJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdyb3VwLCBNZXNoLCBQbGFuZUdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0R3JvdXA+IHtcblx0LyoqIEhvdyBtYW55IGZyYW1lcyBpdCBjYW4gcmVuZGVyLCBtb3JlIHlpZWxkcyBjbGVhbmVyIHJlc3VsdHMgYnV0IHRha2VzIG1vcmUgdGltZSwgNDAgKi9cblx0ZnJhbWVzOiBudW1iZXI7XG5cdC8qKiBJZiBmcmFtZXMgPT09IEluZmluaXR5IGJsZW5kIGNvbnRyb2xzIHRoZSByZWZyZXNoIHJhdGlvLCAxMDAgKi9cblx0YmxlbmQ6IG51bWJlcjtcblx0LyoqIENhbiBsaW1pdCB0aGUgYW1vdW50IG9mIGZyYW1lcyByZW5kZXJlZCBpZiBmcmFtZXMgPT09IEluZmluaXR5LCB1c3VhbGx5IHRvIGdldCBzb21lIHBlcmZvcm1hbmNlIGJhY2sgb25jZSBhIG1vdmFibGUgc2NlbmUgaGFzIHNldHRsZWQsIEluZmluaXR5ICovXG5cdGxpbWl0OiBudW1iZXI7XG5cdC8qKiBTY2FsZSBvZiB0aGUgcGxhbmUsICAqL1xuXHRzY2FsZTogbnVtYmVyO1xuXHQvKiogVGVtcG9yYWwgYWNjdW11bGF0ZXMgc2hhZG93cyBvdmVyIHRpbWUgd2hpY2ggaXMgbW9yZSBwZXJmb3JtYW50IGJ1dCBoYXMgYSB2aXN1YWwgcmVncmVzc2lvbiBvdmVyIGluc3RhbnQgcmVzdWx0cywgZmFsc2UgICovXG5cdHRlbXBvcmFsPzogYm9vbGVhbjtcblx0LyoqIE9wYWNpdHkgb2YgdGhlIHBsYW5lLCAxICovXG5cdG9wYWNpdHk6IG51bWJlcjtcblx0LyoqIERpc2NhcmRzIGFscGhhIHBpeGVscywgMC42NSAqL1xuXHRhbHBoYVRlc3Q6IG51bWJlcjtcblx0LyoqIFNoYWRvdyBjb2xvciwgYmxhY2sgKi9cblx0Y29sb3I6IHN0cmluZztcblx0LyoqIENvbG9yYmxlbmQsIGhvdyBtdWNoIGNvbG9ycyB0dXJuIHRvIGJsYWNrLCAwIGlzIGJsYWNrLCAyICovXG5cdGNvbG9yQmxlbmQ6IG51bWJlcjtcblx0LyoqIEJ1ZmZlciByZXNvbHV0aW9uLCAxMDI0ICovXG5cdHJlc29sdXRpb246IG51bWJlcjtcblx0LyoqIFRleHR1cmUgdG9uZW1hcHBpbmcgKi9cblx0dG9uZU1hcHBlZDogYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzT3B0aW9ucyA9IHtcblx0dGVtcG9yYWw6IGZhbHNlLFxuXHRmcmFtZXM6IDQwLFxuXHRsaW1pdDogSW5maW5pdHksXG5cdGJsZW5kOiAyMCxcblx0c2NhbGU6IDEwLFxuXHRvcGFjaXR5OiAxLFxuXHRhbHBoYVRlc3Q6IDAuNzUsXG5cdGNvbG9yOiAnYmxhY2snLFxuXHRjb2xvckJsZW5kOiAyLFxuXHRyZXNvbHV0aW9uOiAxMDI0LFxuXHR0b25lTWFwcGVkOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZ3QtZ3JvdXAgI2xpZ2h0cyBbdHJhdmVyc2VdPVwibnVsbFRyYXZlcnNhbFwiPlxuXHRcdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdFx0PC9uZ3QtZ3JvdXA+XG5cblx0XHRcdDxuZ3QtbWVzaCAjcGxhbmUgW3NjYWxlXT1cInNjYWxlKClcIiBbcm90YXRpb25dPVwiWy1NYXRoLlBJIC8gMiwgMCwgMF1cIiBbcmVjZWl2ZVNoYWRvd109XCJ0cnVlXCI+XG5cdFx0XHRcdDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cblx0XHRcdFx0PG5ndC1zb2Z0LXNoYWRvdy1tYXRlcmlhbFxuXHRcdFx0XHRcdFtkZXB0aFdyaXRlXT1cImZhbHNlXCJcblx0XHRcdFx0XHRbdG9uZU1hcHBlZF09XCJ0b25lTWFwcGVkKClcIlxuXHRcdFx0XHRcdFtjb2xvcl09XCJjb2xvcigpXCJcblx0XHRcdFx0XHRbYmxlbmRdPVwiY29sb3JCbGVuZCgpXCJcblx0XHRcdFx0XHRbbWFwXT1cIm1hcCgpXCJcblx0XHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L25ndC1tZXNoPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyB7XG5cdG51bGxUcmF2ZXJzYWwgPSAoKSA9PiBudWxsO1xuXHRNYXRoID0gTWF0aDtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd0ZW1wb3JhbCcsXG5cdFx0J2ZyYW1lcycsXG5cdFx0J2xpbWl0Jyxcblx0XHQnYmxlbmQnLFxuXHRcdCdzY2FsZScsXG5cdFx0J29wYWNpdHknLFxuXHRcdCdhbHBoYVRlc3QnLFxuXHRcdCdjb2xvcicsXG5cdFx0J2NvbG9yQmxlbmQnLFxuXHRcdCdyZXNvbHV0aW9uJyxcblx0XHQndG9uZU1hcHBlZCcsXG5cdF0pO1xuXG5cdGxpZ2h0c1JlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2xpZ2h0cycpO1xuXHRwbGFuZVJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE1lc2g8UGxhbmVHZW9tZXRyeSwgSW5zdGFuY2VUeXBlPHR5cGVvZiBTb2Z0U2hhZG93TWF0ZXJpYWw+Pj4+KCdwbGFuZScpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cblx0cHJpdmF0ZSBvcGFjaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdvcGFjaXR5Jyk7XG5cdHByaXZhdGUgYWxwaGFUZXN0ID0gcGljayh0aGlzLm9wdGlvbnMsICdhbHBoYVRlc3QnKTtcblx0cHJpdmF0ZSBsaW1pdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGltaXQnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uJyk7XG5cblx0cHJpdmF0ZSBwcmV2aW91c1BMTTogUHJvZ3Jlc3NpdmVMaWdodE1hcCB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBwTE0gPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0aWYgKHRoaXMucHJldmlvdXNQTE0pIHtcblx0XHRcdHRoaXMucHJldmlvdXNQTE0uY2xlYXIoKTtcblx0XHR9XG5cdFx0cmV0dXJuICh0aGlzLnByZXZpb3VzUExNID0gbmV3IFByb2dyZXNzaXZlTGlnaHRNYXAodGhpcy5nbCgpLCB0aGlzLnNjZW5lKCksIHRoaXMucmVzb2x1dGlvbigpKSk7XG5cdH0pO1xuXG5cdHNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdzY2FsZScpO1xuXHR0b25lTWFwcGVkID0gcGljayh0aGlzLm9wdGlvbnMsICd0b25lTWFwcGVkJyk7XG5cdGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRjb2xvckJsZW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvckJsZW5kJyk7XG5cdG1hcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucExNKCkucHJvZ3Jlc3NpdmVMaWdodE1hcDIudGV4dHVyZSk7XG5cblx0bGlnaHRzTWFwID0gbmV3IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+KCk7XG5cdHRlbXBvcmFsID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm9wdGlvbnMoKS50ZW1wb3JhbCk7XG5cdGZyYW1lcyA9IGNvbXB1dGVkKCgpID0+IE1hdGgubWF4KDIsIHRoaXMub3B0aW9ucygpLmZyYW1lcykpO1xuXHRibGVuZCA9IGNvbXB1dGVkKCgpID0+XG5cdFx0TWF0aC5tYXgoMiwgdGhpcy5vcHRpb25zKCkuZnJhbWVzID09PSBJbmZpbml0eSA/IHRoaXMub3B0aW9ucygpLmJsZW5kIDogdGhpcy5vcHRpb25zKCkuZnJhbWVzKSxcblx0KTtcblx0Y291bnQgPSAwO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwLCBTb2Z0U2hhZG93TWF0ZXJpYWwsIE1lc2gsIFBsYW5lR2VvbWV0cnkgfSk7XG5cblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMucExNKCkuY29uZmlndXJlKHRoaXMucGxhbmVSZWYoKS5uYXRpdmVFbGVtZW50KTtcblxuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNjZW5lTFMgPSBnZXRMb2NhbFN0YXRlKHRoaXMuc2NlbmUoKSk7XG5cdFx0XHRcdGlmICghc2NlbmVMUykgcmV0dXJuO1xuXHRcdFx0XHQvLyB0cmFjayBkZXBzXG5cdFx0XHRcdHRoaXMucGxhbmVSZWYoKTtcblx0XHRcdFx0dGhpcy5vcHRpb25zKCk7XG5cdFx0XHRcdHNjZW5lTFMub2JqZWN0cygpO1xuXG5cdFx0XHRcdC8vIFJlc2V0IGludGVybmFscywgYnVmZmVycywgLi4uXG5cdFx0XHRcdHRoaXMucmVzZXQoKTtcblx0XHRcdFx0Ly8gVXBkYXRlIGxpZ2h0bWFwXG5cdFx0XHRcdGlmICghdGhpcy50ZW1wb3JhbCgpICYmIHRoaXMuZnJhbWVzKCkgIT09IEluZmluaXR5KSB0aGlzLnVwZGF0ZSh0aGlzLmJsZW5kKCkpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2ZyYW1lcywgdGVtcG9yYWwsIGludmFsaWRhdGUsIGxpbWl0XSA9IFt0aGlzLmZyYW1lcygpLCAhIXRoaXMudGVtcG9yYWwoKSwgdGhpcy5pbnZhbGlkYXRlKCksIHRoaXMubGltaXQoKV07XG5cdFx0XHRpZiAoKHRlbXBvcmFsIHx8IGZyYW1lcyA9PT0gSW5maW5pdHkpICYmIHRoaXMuY291bnQgPCBmcmFtZXMgJiYgdGhpcy5jb3VudCA8IGxpbWl0KSB7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdFx0dGhpcy51cGRhdGUoKTtcblx0XHRcdFx0dGhpcy5jb3VudCsrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLnByZXZpb3VzUExNPy5jbGVhcigpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0TWVzaCgpIHtcblx0XHRyZXR1cm4gdGhpcy5wbGFuZVJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdH1cblxuXHRyZXNldCgpIHtcblx0XHQvLyBDbGVhciBidWZmZXJzLCByZXNldCBvcGFjaXRpZXMsIHNldCBmcmFtZSBjb3VudCB0byAwXG5cdFx0dW50cmFja2VkKHRoaXMucExNKS5jbGVhcigpO1xuXHRcdGNvbnN0IG1hdGVyaWFsID0gdW50cmFja2VkKHRoaXMucGxhbmVSZWYpLm5hdGl2ZUVsZW1lbnQubWF0ZXJpYWw7XG5cdFx0bWF0ZXJpYWwub3BhY2l0eSA9IDA7XG5cdFx0bWF0ZXJpYWwuYWxwaGFUZXN0ID0gMDtcblx0XHR0aGlzLmNvdW50ID0gMDtcblx0fVxuXG5cdHVwZGF0ZShmcmFtZXMgPSAxKSB7XG5cdFx0Ly8gQWRhcHQgdGhlIG9wYWNpdHktYmxlbmQgcmF0aW8gdG8gdGhlIG51bWJlciBvZiBmcmFtZXNcblx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMucGxhbmVSZWYoKS5uYXRpdmVFbGVtZW50Lm1hdGVyaWFsO1xuXHRcdGlmICghdGhpcy50ZW1wb3JhbCgpKSB7XG5cdFx0XHRtYXRlcmlhbC5vcGFjaXR5ID0gdGhpcy5vcGFjaXR5KCk7XG5cdFx0XHRtYXRlcmlhbC5hbHBoYVRlc3QgPSB0aGlzLmFscGhhVGVzdCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRlcmlhbC5vcGFjaXR5ID0gTWF0aC5taW4odGhpcy5vcGFjaXR5KCksIG1hdGVyaWFsLm9wYWNpdHkgKyB0aGlzLm9wYWNpdHkoKSAvIHRoaXMuYmxlbmQoKSk7XG5cdFx0XHRtYXRlcmlhbC5hbHBoYVRlc3QgPSBNYXRoLm1pbih0aGlzLmFscGhhVGVzdCgpLCBtYXRlcmlhbC5hbHBoYVRlc3QgKyB0aGlzLmFscGhhVGVzdCgpIC8gdGhpcy5ibGVuZCgpKTtcblx0XHR9XG5cblx0XHQvLyBTd2l0Y2ggYWNjdW11bGF0aXZlIGxpZ2h0cyBvblxuXHRcdHRoaXMubGlnaHRzUmVmKCkubmF0aXZlRWxlbWVudC52aXNpYmxlID0gdHJ1ZTtcblx0XHQvLyBDb2xsZWN0IHNjZW5lIGxpZ2h0cyBhbmQgbWVzaGVzXG5cdFx0dGhpcy5wTE0oKS5wcmVwYXJlKCk7XG5cblx0XHQvLyBVcGRhdGUgdGhlIGxpZ2h0bWFwIGFuZCB0aGUgYWNjdW11bGF0aXZlIGxpZ2h0c1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZnJhbWVzOyBpKyspIHtcblx0XHRcdHRoaXMubGlnaHRzTWFwLmZvckVhY2goKGxpZ2h0VXBkYXRlKSA9PiBsaWdodFVwZGF0ZSgpKTtcblx0XHRcdHRoaXMucExNKCkudXBkYXRlKHRoaXMuY2FtZXJhKCksIHRoaXMuYmxlbmQoKSk7XG5cdFx0fVxuXHRcdC8vIFN3aXRjaCBsaWdodHMgb2ZmXG5cdFx0dGhpcy5saWdodHNSZWYoKS5uYXRpdmVFbGVtZW50LnZpc2libGUgPSBmYWxzZTtcblx0XHQvLyBSZXN0b3JlIGxpZ2h0cyBhbmQgbWVzaGVzXG5cdFx0dGhpcy5wTE0oKS5maW5pc2goKTtcblx0fVxufVxuIl19
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0aXZlLXNoYWRvd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2FjY3VtdWxhdGl2ZS1zaGFkb3dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBRVYsZUFBZSxFQUNmLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBWSxNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBMkJuRCxNQUFNLGNBQWMsR0FBbUM7SUFDdEQsUUFBUSxFQUFFLEtBQUs7SUFDZixNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLEVBQUU7SUFDVCxLQUFLLEVBQUUsRUFBRTtJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQTJCRixNQUFNLE9BQU8sdUJBQXVCO0lBdURuQztRQXREQSxrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUMz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QyxDQUFDO1FBQ2hELENBQUM7UUFDRCxvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQy9DLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0FqSVcsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd2JBdEJ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBa0JUOzsyRkFJVyx1QkFBdUI7a0JBekJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RHcm91cCwgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBvbWl0LCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBQcm9ncmVzc2l2ZUxpZ2h0TWFwLCBTb2Z0U2hhZG93TWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvdmFuaWxsYS1leHBvcnRzJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdyb3VwLCBNZXNoLCBQbGFuZUdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0R3JvdXA+IHtcblx0LyoqIEhvdyBtYW55IGZyYW1lcyBpdCBjYW4gcmVuZGVyLCBtb3JlIHlpZWxkcyBjbGVhbmVyIHJlc3VsdHMgYnV0IHRha2VzIG1vcmUgdGltZSwgNDAgKi9cblx0ZnJhbWVzOiBudW1iZXI7XG5cdC8qKiBJZiBmcmFtZXMgPT09IEluZmluaXR5IGJsZW5kIGNvbnRyb2xzIHRoZSByZWZyZXNoIHJhdGlvLCAxMDAgKi9cblx0YmxlbmQ6IG51bWJlcjtcblx0LyoqIENhbiBsaW1pdCB0aGUgYW1vdW50IG9mIGZyYW1lcyByZW5kZXJlZCBpZiBmcmFtZXMgPT09IEluZmluaXR5LCB1c3VhbGx5IHRvIGdldCBzb21lIHBlcmZvcm1hbmNlIGJhY2sgb25jZSBhIG1vdmFibGUgc2NlbmUgaGFzIHNldHRsZWQsIEluZmluaXR5ICovXG5cdGxpbWl0OiBudW1iZXI7XG5cdC8qKiBTY2FsZSBvZiB0aGUgcGxhbmUsICAqL1xuXHRzY2FsZTogbnVtYmVyO1xuXHQvKiogVGVtcG9yYWwgYWNjdW11bGF0ZXMgc2hhZG93cyBvdmVyIHRpbWUgd2hpY2ggaXMgbW9yZSBwZXJmb3JtYW50IGJ1dCBoYXMgYSB2aXN1YWwgcmVncmVzc2lvbiBvdmVyIGluc3RhbnQgcmVzdWx0cywgZmFsc2UgICovXG5cdHRlbXBvcmFsPzogYm9vbGVhbjtcblx0LyoqIE9wYWNpdHkgb2YgdGhlIHBsYW5lLCAxICovXG5cdG9wYWNpdHk6IG51bWJlcjtcblx0LyoqIERpc2NhcmRzIGFscGhhIHBpeGVscywgMC42NSAqL1xuXHRhbHBoYVRlc3Q6IG51bWJlcjtcblx0LyoqIFNoYWRvdyBjb2xvciwgYmxhY2sgKi9cblx0Y29sb3I6IHN0cmluZztcblx0LyoqIENvbG9yYmxlbmQsIGhvdyBtdWNoIGNvbG9ycyB0dXJuIHRvIGJsYWNrLCAwIGlzIGJsYWNrLCAyICovXG5cdGNvbG9yQmxlbmQ6IG51bWJlcjtcblx0LyoqIEJ1ZmZlciByZXNvbHV0aW9uLCAxMDI0ICovXG5cdHJlc29sdXRpb246IG51bWJlcjtcblx0LyoqIFRleHR1cmUgdG9uZW1hcHBpbmcgKi9cblx0dG9uZU1hcHBlZDogYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzT3B0aW9ucyA9IHtcblx0dGVtcG9yYWw6IGZhbHNlLFxuXHRmcmFtZXM6IDQwLFxuXHRsaW1pdDogSW5maW5pdHksXG5cdGJsZW5kOiAyMCxcblx0c2NhbGU6IDEwLFxuXHRvcGFjaXR5OiAxLFxuXHRhbHBoYVRlc3Q6IDAuNzUsXG5cdGNvbG9yOiAnYmxhY2snLFxuXHRjb2xvckJsZW5kOiAyLFxuXHRyZXNvbHV0aW9uOiAxMDI0LFxuXHR0b25lTWFwcGVkOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZ3QtZ3JvdXAgI2xpZ2h0cyBbdHJhdmVyc2VdPVwibnVsbFRyYXZlcnNhbFwiPlxuXHRcdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdFx0PC9uZ3QtZ3JvdXA+XG5cblx0XHRcdDxuZ3QtbWVzaCAjcGxhbmUgW3NjYWxlXT1cInNjYWxlKClcIiBbcm90YXRpb25dPVwiWy1NYXRoLlBJIC8gMiwgMCwgMF1cIiBbcmVjZWl2ZVNoYWRvd109XCJ0cnVlXCI+XG5cdFx0XHRcdDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cblx0XHRcdFx0PG5ndC1zb2Z0LXNoYWRvdy1tYXRlcmlhbFxuXHRcdFx0XHRcdFtkZXB0aFdyaXRlXT1cImZhbHNlXCJcblx0XHRcdFx0XHRbdG9uZU1hcHBlZF09XCJ0b25lTWFwcGVkKClcIlxuXHRcdFx0XHRcdFtjb2xvcl09XCJjb2xvcigpXCJcblx0XHRcdFx0XHRbYmxlbmRdPVwiY29sb3JCbGVuZCgpXCJcblx0XHRcdFx0XHRbbWFwXT1cIm1hcCgpXCJcblx0XHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L25ndC1tZXNoPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyB7XG5cdG51bGxUcmF2ZXJzYWwgPSAoKSA9PiBudWxsO1xuXHRNYXRoID0gTWF0aDtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd0ZW1wb3JhbCcsXG5cdFx0J2ZyYW1lcycsXG5cdFx0J2xpbWl0Jyxcblx0XHQnYmxlbmQnLFxuXHRcdCdzY2FsZScsXG5cdFx0J29wYWNpdHknLFxuXHRcdCdhbHBoYVRlc3QnLFxuXHRcdCdjb2xvcicsXG5cdFx0J2NvbG9yQmxlbmQnLFxuXHRcdCdyZXNvbHV0aW9uJyxcblx0XHQndG9uZU1hcHBlZCcsXG5cdF0pO1xuXG5cdGxpZ2h0c1JlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2xpZ2h0cycpO1xuXHRwbGFuZVJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE1lc2g8UGxhbmVHZW9tZXRyeSwgSW5zdGFuY2VUeXBlPHR5cGVvZiBTb2Z0U2hhZG93TWF0ZXJpYWw+Pj4+KCdwbGFuZScpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cblx0cHJpdmF0ZSBvcGFjaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdvcGFjaXR5Jyk7XG5cdHByaXZhdGUgYWxwaGFUZXN0ID0gcGljayh0aGlzLm9wdGlvbnMsICdhbHBoYVRlc3QnKTtcblx0cHJpdmF0ZSBsaW1pdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbGltaXQnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uJyk7XG5cblx0cHJpdmF0ZSBwcmV2aW91c1BMTTogUHJvZ3Jlc3NpdmVMaWdodE1hcCB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBwTE0gPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0aWYgKHRoaXMucHJldmlvdXNQTE0pIHtcblx0XHRcdHRoaXMucHJldmlvdXNQTE0uY2xlYXIoKTtcblx0XHR9XG5cdFx0cmV0dXJuICh0aGlzLnByZXZpb3VzUExNID0gbmV3IFByb2dyZXNzaXZlTGlnaHRNYXAodGhpcy5nbCgpLCB0aGlzLnNjZW5lKCksIHRoaXMucmVzb2x1dGlvbigpKSk7XG5cdH0pO1xuXG5cdHNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdzY2FsZScpO1xuXHR0b25lTWFwcGVkID0gcGljayh0aGlzLm9wdGlvbnMsICd0b25lTWFwcGVkJyk7XG5cdGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRjb2xvckJsZW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvckJsZW5kJyk7XG5cdG1hcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucExNKCkucHJvZ3Jlc3NpdmVMaWdodE1hcDIudGV4dHVyZSk7XG5cblx0bGlnaHRzTWFwID0gbmV3IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+KCk7XG5cdHRlbXBvcmFsID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLm9wdGlvbnMoKS50ZW1wb3JhbCk7XG5cdGZyYW1lcyA9IGNvbXB1dGVkKCgpID0+IE1hdGgubWF4KDIsIHRoaXMub3B0aW9ucygpLmZyYW1lcykpO1xuXHRibGVuZCA9IGNvbXB1dGVkKCgpID0+XG5cdFx0TWF0aC5tYXgoMiwgdGhpcy5vcHRpb25zKCkuZnJhbWVzID09PSBJbmZpbml0eSA/IHRoaXMub3B0aW9ucygpLmJsZW5kIDogdGhpcy5vcHRpb25zKCkuZnJhbWVzKSxcblx0KTtcblx0Y291bnQgPSAwO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwLCBTb2Z0U2hhZG93TWF0ZXJpYWwsIE1lc2gsIFBsYW5lR2VvbWV0cnkgfSk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5wTE0oKS5jb25maWd1cmUodGhpcy5wbGFuZVJlZigpLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHNjZW5lTFMgPSBnZXRMb2NhbFN0YXRlKHRoaXMuc2NlbmUoKSk7XG5cdFx0XHRpZiAoIXNjZW5lTFMpIHJldHVybjtcblxuXHRcdFx0Ly8gdHJhY2sgZGVwc1xuXHRcdFx0dGhpcy5wbGFuZVJlZigpO1xuXHRcdFx0dGhpcy5vcHRpb25zKCk7XG5cdFx0XHRzY2VuZUxTLm9iamVjdHMoKTtcblxuXHRcdFx0Ly8gUmVzZXQgaW50ZXJuYWxzLCBidWZmZXJzLCAuLi5cblx0XHRcdHRoaXMucmVzZXQoKTtcblx0XHRcdC8vIFVwZGF0ZSBsaWdodG1hcFxuXHRcdFx0aWYgKCF0aGlzLnRlbXBvcmFsKCkgJiYgdGhpcy5mcmFtZXMoKSAhPT0gSW5maW5pdHkpIHRoaXMudXBkYXRlKHRoaXMuYmxlbmQoKSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2ZyYW1lcywgdGVtcG9yYWwsIGludmFsaWRhdGUsIGxpbWl0XSA9IFt0aGlzLmZyYW1lcygpLCAhIXRoaXMudGVtcG9yYWwoKSwgdGhpcy5pbnZhbGlkYXRlKCksIHRoaXMubGltaXQoKV07XG5cdFx0XHRpZiAoKHRlbXBvcmFsIHx8IGZyYW1lcyA9PT0gSW5maW5pdHkpICYmIHRoaXMuY291bnQgPCBmcmFtZXMgJiYgdGhpcy5jb3VudCA8IGxpbWl0KSB7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdFx0dGhpcy51cGRhdGUoKTtcblx0XHRcdFx0dGhpcy5jb3VudCsrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLnByZXZpb3VzUExNPy5jbGVhcigpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0TWVzaCgpIHtcblx0XHRyZXR1cm4gdGhpcy5wbGFuZVJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdH1cblxuXHRyZXNldCgpIHtcblx0XHQvLyBDbGVhciBidWZmZXJzLCByZXNldCBvcGFjaXRpZXMsIHNldCBmcmFtZSBjb3VudCB0byAwXG5cdFx0dW50cmFja2VkKHRoaXMucExNKS5jbGVhcigpO1xuXHRcdGNvbnN0IG1hdGVyaWFsID0gdW50cmFja2VkKHRoaXMucGxhbmVSZWYpLm5hdGl2ZUVsZW1lbnQubWF0ZXJpYWw7XG5cdFx0bWF0ZXJpYWwub3BhY2l0eSA9IDA7XG5cdFx0bWF0ZXJpYWwuYWxwaGFUZXN0ID0gMDtcblx0XHR0aGlzLmNvdW50ID0gMDtcblx0fVxuXG5cdHVwZGF0ZShmcmFtZXMgPSAxKSB7XG5cdFx0Ly8gQWRhcHQgdGhlIG9wYWNpdHktYmxlbmQgcmF0aW8gdG8gdGhlIG51bWJlciBvZiBmcmFtZXNcblx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMucGxhbmVSZWYoKS5uYXRpdmVFbGVtZW50Lm1hdGVyaWFsO1xuXHRcdGlmICghdGhpcy50ZW1wb3JhbCgpKSB7XG5cdFx0XHRtYXRlcmlhbC5vcGFjaXR5ID0gdGhpcy5vcGFjaXR5KCk7XG5cdFx0XHRtYXRlcmlhbC5hbHBoYVRlc3QgPSB0aGlzLmFscGhhVGVzdCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRlcmlhbC5vcGFjaXR5ID0gTWF0aC5taW4odGhpcy5vcGFjaXR5KCksIG1hdGVyaWFsLm9wYWNpdHkgKyB0aGlzLm9wYWNpdHkoKSAvIHRoaXMuYmxlbmQoKSk7XG5cdFx0XHRtYXRlcmlhbC5hbHBoYVRlc3QgPSBNYXRoLm1pbih0aGlzLmFscGhhVGVzdCgpLCBtYXRlcmlhbC5hbHBoYVRlc3QgKyB0aGlzLmFscGhhVGVzdCgpIC8gdGhpcy5ibGVuZCgpKTtcblx0XHR9XG5cblx0XHQvLyBTd2l0Y2ggYWNjdW11bGF0aXZlIGxpZ2h0cyBvblxuXHRcdHRoaXMubGlnaHRzUmVmKCkubmF0aXZlRWxlbWVudC52aXNpYmxlID0gdHJ1ZTtcblx0XHQvLyBDb2xsZWN0IHNjZW5lIGxpZ2h0cyBhbmQgbWVzaGVzXG5cdFx0dGhpcy5wTE0oKS5wcmVwYXJlKCk7XG5cblx0XHQvLyBVcGRhdGUgdGhlIGxpZ2h0bWFwIGFuZCB0aGUgYWNjdW11bGF0aXZlIGxpZ2h0c1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgZnJhbWVzOyBpKyspIHtcblx0XHRcdHRoaXMubGlnaHRzTWFwLmZvckVhY2goKGxpZ2h0VXBkYXRlKSA9PiBsaWdodFVwZGF0ZSgpKTtcblx0XHRcdHRoaXMucExNKCkudXBkYXRlKHRoaXMuY2FtZXJhKCksIHRoaXMuYmxlbmQoKSk7XG5cdFx0fVxuXHRcdC8vIFN3aXRjaCBsaWdodHMgb2ZmXG5cdFx0dGhpcy5saWdodHNSZWYoKS5uYXRpdmVFbGVtZW50LnZpc2libGUgPSBmYWxzZTtcblx0XHQvLyBSZXN0b3JlIGxpZ2h0cyBhbmQgbWVzaGVzXG5cdFx0dGhpcy5wTE0oKS5maW5pc2goKTtcblx0fVxufVxuIl19
|