angular-three-soba 1.4.0 → 1.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abstractions/index.d.ts +4 -0
- package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +15 -0
- package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +15 -0
- package/abstractions/lib/line/line-input.d.ts +19 -0
- package/abstractions/lib/line/line.d.ts +21 -0
- package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +19 -0
- package/abstractions/lib/text/text.d.ts +1 -1
- package/esm2020/abstractions/index.mjs +5 -1
- package/esm2020/abstractions/lib/billboard/billboard.mjs +6 -5
- package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +119 -0
- package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +98 -0
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +6 -6
- package/esm2020/abstractions/lib/line/line-input.mjs +75 -0
- package/esm2020/abstractions/lib/line/line.mjs +136 -0
- package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +127 -0
- package/esm2020/abstractions/lib/text/text.mjs +28 -26
- package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +6 -6
- package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +6 -6
- package/esm2020/performance/lib/detailed/detailed.mjs +6 -5
- package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +8 -8
- package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +6 -6
- package/esm2020/staging/lib/bounds/bounds.mjs +6 -5
- package/esm2020/staging/lib/center/center.mjs +10 -9
- package/esm2020/staging/lib/cloud/cloud.mjs +6 -6
- package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +14 -10
- package/esm2020/staging/lib/environment/environment-portal.mjs +10 -6
- package/esm2020/staging/lib/float/float.mjs +6 -5
- package/esm2020/staging/lib/sky/sky.mjs +23 -22
- package/esm2020/staging/lib/sparkles/sparkles.mjs +8 -8
- package/esm2020/staging/lib/stage/stage.mjs +2 -5
- package/esm2020/staging/lib/stars/stars.mjs +6 -6
- package/fesm2015/angular-three-soba-abstractions.mjs +564 -38
- package/fesm2015/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2015/angular-three-soba-cameras.mjs +9 -9
- package/fesm2015/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2015/angular-three-soba-performance.mjs +5 -4
- package/fesm2015/angular-three-soba-performance.mjs.map +1 -1
- package/fesm2015/angular-three-soba-staging.mjs +83 -74
- package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2020/angular-three-soba-abstractions.mjs +564 -38
- package/fesm2020/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2020/angular-three-soba-cameras.mjs +9 -9
- package/fesm2020/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2020/angular-three-soba-performance.mjs +5 -4
- package/fesm2020/angular-three-soba-performance.mjs.map +1 -1
- package/fesm2020/angular-three-soba-staging.mjs +83 -74
- package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
- package/package.json +3 -3
- package/plugin/package.json +1 -1
- package/staging/lib/sky/sky.d.ts +2 -3
- package/staging/lib/stage/stage.d.ts +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
-
import { injectNgtRef, NgtArgs, NgtRxStore } from 'angular-three';
|
|
2
|
+
import { injectNgtRef, NgtArgs, NgtRef, NgtRxStore } from 'angular-three';
|
|
3
3
|
import { Vector3 } from 'three';
|
|
4
4
|
import { Sky } from 'three-stdlib';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -15,6 +15,7 @@ export class NgtsSky extends NgtRxStore {
|
|
|
15
15
|
constructor() {
|
|
16
16
|
super(...arguments);
|
|
17
17
|
this.skyRef = injectNgtRef();
|
|
18
|
+
this.sky = new Sky();
|
|
18
19
|
}
|
|
19
20
|
set distance(distance) {
|
|
20
21
|
this.set({ distance });
|
|
@@ -57,36 +58,36 @@ export class NgtsSky extends NgtRxStore {
|
|
|
57
58
|
this.connect('sunPosition', this.select(['inclination', 'azimuth'], ({ inclination, azimuth }) => calcPosFromAngles(inclination, azimuth)));
|
|
58
59
|
this.connect('scale', this.select(['distance'], ({ distance }) => new Vector3().setScalar(distance)));
|
|
59
60
|
}
|
|
60
|
-
ngOnInit() {
|
|
61
|
-
if (!this.skyRef.nativeElement)
|
|
62
|
-
this.skyRef.nativeElement = new Sky();
|
|
63
|
-
}
|
|
64
61
|
}
|
|
65
62
|
NgtsSky.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSky, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
66
63
|
NgtsSky.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { skyRef: "skyRef", distance: "distance", sunPosition: "sunPosition", inclination: "inclination", azimuth: "azimuth", mieCoefficient: "mieCoefficient", mieDirectionalG: "mieDirectionalG", rayleigh: "rayleigh", turbidity: "turbidity" }, usesInheritance: true, ngImport: i0, template: `
|
|
67
|
-
<
|
|
68
|
-
<ngt-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
<ng-container *args="[sky]">
|
|
65
|
+
<ngt-primitive ngtCompound *ref="skyRef" [scale]="get('scale')">
|
|
66
|
+
<ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
|
|
67
|
+
<ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
|
|
68
|
+
<ngt-value [rawValue]="get('rayleigh')" attach="material.uniforms.rayleigh.value" />
|
|
69
|
+
<ngt-value [rawValue]="get('sunPosition')" attach="material.uniforms.sunPosition.value" />
|
|
70
|
+
<ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
|
|
71
|
+
</ngt-primitive>
|
|
72
|
+
</ng-container>
|
|
73
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
|
|
75
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSky, decorators: [{
|
|
76
75
|
type: Component,
|
|
77
76
|
args: [{
|
|
78
77
|
selector: 'ngts-sky',
|
|
79
78
|
standalone: true,
|
|
80
79
|
template: `
|
|
81
|
-
<
|
|
82
|
-
<ngt-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
<ng-container *args="[sky]">
|
|
81
|
+
<ngt-primitive ngtCompound *ref="skyRef" [scale]="get('scale')">
|
|
82
|
+
<ngt-value [rawValue]="get('mieCoefficient')" attach="material.uniforms.mieCoefficient.value" />
|
|
83
|
+
<ngt-value [rawValue]="get('mieDirectionalG')" attach="material.uniforms.mieDirectionalG.value" />
|
|
84
|
+
<ngt-value [rawValue]="get('rayleigh')" attach="material.uniforms.rayleigh.value" />
|
|
85
|
+
<ngt-value [rawValue]="get('sunPosition')" attach="material.uniforms.sunPosition.value" />
|
|
86
|
+
<ngt-value [rawValue]="get('turbidity')" attach="material.uniforms.turbidity.value" />
|
|
87
|
+
</ngt-primitive>
|
|
88
|
+
</ng-container>
|
|
88
89
|
`,
|
|
89
|
-
imports: [NgtArgs],
|
|
90
|
+
imports: [NgtArgs, NgtRef],
|
|
90
91
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
91
92
|
}]
|
|
92
93
|
}], propDecorators: { skyRef: [{
|
|
@@ -108,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
108
109
|
}], turbidity: [{
|
|
109
110
|
type: Input
|
|
110
111
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL3NreS9za3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRW5DLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUFtQixFQUFFLE9BQWUsRUFBRSxTQUFrQixJQUFJLE9BQU8sRUFBRTtJQUNuRyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFtQkQsTUFBTSxPQUFPLE9BQVEsU0FBUSxVQUFVO0lBakJ2Qzs7UUFrQmEsV0FBTSxHQUFHLFlBQVksRUFBTyxDQUFDO1FBa0M3QixRQUFHLEdBQUcsSUFBSSxH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LEtBQUs7Z0JBSU8sUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0UmVmLCBOZ3RBcmdzLCBOZ3RSZWYsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBTa3kgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY1Bvc0Zyb21BbmdsZXMoaW5jbGluYXRpb246IG51bWJlciwgYXppbXV0aDogbnVtYmVyLCB2ZWN0b3I6IFZlY3RvcjMgPSBuZXcgVmVjdG9yMygpKSB7XG4gICAgY29uc3QgdGhldGEgPSBNYXRoLlBJICogKGluY2xpbmF0aW9uIC0gMC41KTtcbiAgICBjb25zdCBwaGkgPSAyICogTWF0aC5QSSAqIChhemltdXRoIC0gMC41KTtcblxuICAgIHZlY3Rvci54ID0gTWF0aC5jb3MocGhpKTtcbiAgICB2ZWN0b3IueSA9IE1hdGguc2luKHRoZXRhKTtcbiAgICB2ZWN0b3IueiA9IE1hdGguc2luKHBoaSk7XG5cbiAgICByZXR1cm4gdmVjdG9yO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc2t5JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXIgKmFyZ3M9XCJbc2t5XVwiPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmUgbmd0Q29tcG91bmQgKnJlZj1cInNreVJlZlwiIFtzY2FsZV09XCJnZXQoJ3NjYWxlJylcIj5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ21pZUNvZWZmaWNpZW50JylcIiBhdHRhY2g9XCJtYXRlcmlhbC51bmlmb3Jtcy5taWVDb2VmZmljaWVudC52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZ2V0KCdtaWVEaXJlY3Rpb25hbEcnKVwiIGF0dGFjaD1cIm1hdGVyaWFsLnVuaWZvcm1zLm1pZURpcmVjdGlvbmFsRy52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZ2V0KCdyYXlsZWlnaCcpXCIgYXR0YWNoPVwibWF0ZXJpYWwudW5pZm9ybXMucmF5bGVpZ2gudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdldCgnc3VuUG9zaXRpb24nKVwiIGF0dGFjaD1cIm1hdGVyaWFsLnVuaWZvcm1zLnN1blBvc2l0aW9uLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ3R1cmJpZGl0eScpXCIgYXR0YWNoPVwibWF0ZXJpYWwudW5pZm9ybXMudHVyYmlkaXR5LnZhbHVlXCIgLz5cbiAgICAgICAgICAgIDwvbmd0LXByaW1pdGl2ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UmVmXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTa3kgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICBASW5wdXQoKSBza3lSZWYgPSBpbmplY3ROZ3RSZWY8U2t5PigpO1xuXG4gICAgQElucHV0KCkgc2V0IGRpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkaXN0YW5jZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc3VuUG9zaXRpb24oc3VuUG9zaXRpb246IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPikge1xuICAgICAgICB0aGlzLnNldCh7IHN1blBvc2l0aW9uIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBpbmNsaW5hdGlvbihpbmNsaW5hdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW5jbGluYXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF6aW11dGgoYXppbXV0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYXppbXV0aCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWllQ29lZmZpY2llbnQobWllQ29lZmZpY2llbnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG1pZUNvZWZmaWNpZW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtaWVEaXJlY3Rpb25hbEcobWllRGlyZWN0aW9uYWxHOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtaWVEaXJlY3Rpb25hbEcgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJheWxlaWdoKHJheWxlaWdoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYXlsZWlnaCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdHVyYmlkaXR5KHR1cmJpZGl0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdHVyYmlkaXR5IH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IHNreSA9IG5ldyBTa3koKTtcblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgY29uc3QgaW5jbGluYXRpb24gPSAwLjY7XG4gICAgICAgIGNvbnN0IGF6aW11dGggPSAwLjE7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGluY2xpbmF0aW9uLFxuICAgICAgICAgICAgYXppbXV0aCxcbiAgICAgICAgICAgIGRpc3RhbmNlOiAxMDAwLFxuICAgICAgICAgICAgbWllQ29lZmZpY2llbnQ6IDAuMDA1LFxuICAgICAgICAgICAgbWllRGlyZWN0aW9uYWxHOiAwLjgsXG4gICAgICAgICAgICByYXlsZWlnaDogMC41LFxuICAgICAgICAgICAgdHVyYmlkaXR5OiAxMCxcbiAgICAgICAgICAgIHN1blBvc2l0aW9uOiBjYWxjUG9zRnJvbUFuZ2xlcyhpbmNsaW5hdGlvbiwgYXppbXV0aCksXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnc3VuUG9zaXRpb24nLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoWydpbmNsaW5hdGlvbicsICdhemltdXRoJ10sICh7IGluY2xpbmF0aW9uLCBhemltdXRoIH0pID0+XG4gICAgICAgICAgICAgICAgY2FsY1Bvc0Zyb21BbmdsZXMoaW5jbGluYXRpb24sIGF6aW11dGgpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdzY2FsZScsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ2Rpc3RhbmNlJ10sICh7IGRpc3RhbmNlIH0pID0+IG5ldyBWZWN0b3IzKCkuc2V0U2NhbGFyKGRpc3RhbmNlKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input } from '@angular/core';
|
|
2
|
-
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRxStore, NgtStore } from 'angular-three';
|
|
2
|
+
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRef, NgtRxStore, NgtStore, } from 'angular-three';
|
|
3
3
|
import { shaderMaterial } from 'angular-three-soba/shaders';
|
|
4
4
|
import { map, startWith, withLatestFrom } from 'rxjs';
|
|
5
5
|
import { BufferAttribute, BufferGeometry, Color, MathUtils, Points, Vector2, Vector3, Vector4 } from 'three';
|
|
@@ -156,7 +156,7 @@ export class NgtsSparkles extends NgtRxStore {
|
|
|
156
156
|
}
|
|
157
157
|
NgtsSparkles.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSparkles, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
158
158
|
NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsSparkles, isStandalone: true, selector: "ngts-sparkles", inputs: { pointsRef: "pointsRef", count: "count", speed: "speed", opacity: "opacity", color: "color", size: "size", scale: "scale", noise: "noise" }, usesInheritance: true, ngImport: i0, template: `
|
|
159
|
-
<ngt-points ngtCompount
|
|
159
|
+
<ngt-points ngtCompount *ref="pointsRef">
|
|
160
160
|
<ngt-buffer-geometry>
|
|
161
161
|
<ngt-buffer-attribute *args="[get('positions'), 3]" attach="attributes.position" />
|
|
162
162
|
<ngt-buffer-attribute *args="[get('sizes'), 1]" attach="attributes.size" />
|
|
@@ -165,16 +165,16 @@ NgtsSparkles.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
165
165
|
<ngt-buffer-attribute *args="[get('colors'), 3]" attach="attributes.color" />
|
|
166
166
|
<ngt-buffer-attribute *args="[get('noises'), 3]" attach="attributes.noise" />
|
|
167
167
|
</ngt-buffer-geometry>
|
|
168
|
-
<ngt-sparkles-material
|
|
168
|
+
<ngt-sparkles-material *ref="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
|
|
169
169
|
</ngt-points>
|
|
170
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
|
|
170
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
|
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsSparkles, decorators: [{
|
|
172
172
|
type: Component,
|
|
173
173
|
args: [{
|
|
174
174
|
selector: 'ngts-sparkles',
|
|
175
175
|
standalone: true,
|
|
176
176
|
template: `
|
|
177
|
-
<ngt-points ngtCompount
|
|
177
|
+
<ngt-points ngtCompount *ref="pointsRef">
|
|
178
178
|
<ngt-buffer-geometry>
|
|
179
179
|
<ngt-buffer-attribute *args="[get('positions'), 3]" attach="attributes.position" />
|
|
180
180
|
<ngt-buffer-attribute *args="[get('sizes'), 1]" attach="attributes.size" />
|
|
@@ -183,10 +183,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
183
183
|
<ngt-buffer-attribute *args="[get('colors'), 3]" attach="attributes.color" />
|
|
184
184
|
<ngt-buffer-attribute *args="[get('noises'), 3]" attach="attributes.noise" />
|
|
185
185
|
</ngt-buffer-geometry>
|
|
186
|
-
<ngt-sparkles-material
|
|
186
|
+
<ngt-sparkles-material *ref="materialRef" [transparent]="true" [depthWrite]="false" [pixelRatio]="dpr" />
|
|
187
187
|
</ngt-points>
|
|
188
188
|
`,
|
|
189
|
-
imports: [NgtArgs],
|
|
189
|
+
imports: [NgtArgs, NgtRef],
|
|
190
190
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
191
191
|
}]
|
|
192
192
|
}], ctorParameters: function () { return []; }, propDecorators: { pointsRef: [{
|
|
@@ -206,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
206
206
|
}], noise: [{
|
|
207
207
|
type: Input
|
|
208
208
|
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcmtsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3BhcmtsZXMvc3BhcmtsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBa0IsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUU3RyxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FDbkMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUU7QUFDMUIsZ0JBQWdCO0FBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QkQ7QUFDQyxnQkFBZ0I7QUFDaEI7Ozs7Ozs7Ozs7R0FVRCxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFdEUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFRLEVBQXVCLEVBQUUsQ0FBQyxHQUFHLElBQUssR0FBb0IsQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDO0FBRXBILE1BQU0sV0FB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QUdSLFlBQVk7a0JBbkJ4QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7S0FZVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFNWSxTQUFTO3NCQUFqQixLQUFLO2dCQUdPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFLTyxPQUFPO3NCQUFuQixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS08sSUFBSTtzQkFBaEIsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJlbmRlclN0YXRlLCBOZ3RSeFN0b3JlLCBOZ3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgc2hhZGVyTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIENvbG9yLCBNYXRoVXRpbHMsIFBvaW50cywgVmVjdG9yMiwgVmVjdG9yMywgVmVjdG9yNCB9IGZyb20gJ3RocmVlJztcblxuY29uc3QgU3BhcmtsZXNNYXRlcmlhbCA9IHNoYWRlck1hdGVyaWFsKFxuICAgIHsgdGltZTogMCwgcGl4ZWxSYXRpbzogMSB9LFxuICAgIC8vIGxhbmd1YWdlPUdMU0xcbiAgICBgXG51bmlmb3JtIGZsb2F0IHBpeGVsUmF0aW87XG51bmlmb3JtIGZsb2F0IHRpbWU7XG5cbmF0dHJpYnV0ZSBmbG9hdCBzaXplO1xuYXR0cmlidXRlIGZsb2F0IHNwZWVkO1xuYXR0cmlidXRlIGZsb2F0IG9wYWNpdHk7XG5hdHRyaWJ1dGUgdmVjMyBub2lzZTtcbmF0dHJpYnV0ZSB2ZWMzIGNvbG9yO1xuXG52YXJ5aW5nIHZlYzMgdkNvbG9yO1xudmFyeWluZyBmbG9hdCB2T3BhY2l0eTtcblxudm9pZCBtYWluKCkge1xuICB2ZWM0IG1vZGVsUG9zaXRpb24gPSBtb2RlbE1hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG5cbiAgbW9kZWxQb3NpdGlvbi55ICs9IHNpbih0aW1lICogc3BlZWQgKyBtb2RlbFBvc2l0aW9uLnggKiBub2lzZS54ICogMTAwLjApICogMC4yO1xuICBtb2RlbFBvc2l0aW9uLnogKz0gY29zKHRpbWUgKiBzcGVlZCArIG1vZGVsUG9zaXRpb24ueCAqIG5vaXNlLnkgKiAxMDAuMCkgKiAwLjI7XG4gIG1vZGVsUG9zaXRpb24ueCArPSBjb3ModGltZSAqIHNwZWVkICsgbW9kZWxQb3NpdGlvbi54ICogbm9pc2UueiAqIDEwMC4wKSAqIDAuMjtcblxuICB2ZWM0IHZpZXdQb3NpdGlvbiA9IHZpZXdNYXRyaXggKiBtb2RlbFBvc2l0aW9uO1xuICB2ZWM0IHByb2plY3Rpb25Qb3N0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZpZXdQb3NpdGlvbjtcblxuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25Qb3N0aW9uO1xuICBnbF9Qb2ludFNpemUgPSBzaXplICogMjUuICogcGl4ZWxSYXRpbztcbiAgZ2xfUG9pbnRTaXplICo9ICgxLjAgLyAtIHZpZXdQb3NpdGlvbi56KTtcblxuICB2Q29sb3IgPSBjb2xvcjtcbiAgdk9wYWNpdHkgPSBvcGFjaXR5O1xufVxuICBgLFxuICAgIC8vIGxhbmd1YWdlPUdMU0xcbiAgICBgXG52YXJ5aW5nIHZlYzMgdkNvbG9yO1xudmFyeWluZyBmbG9hdCB2T3BhY2l0eTtcblxudm9pZCBtYWluKCkge1xuICBmbG9hdCBkaXN0YW5jZVRvQ2VudGVyID0gZGlzdGFuY2UoZ2xfUG9pbnRDb29yZCwgdmVjMigwLjUpKTtcbiAgZmxvYXQgc3RyZW5ndGggPSAwLjA1IC8gZGlzdGFuY2VUb0NlbnRlciAtIDAuMTtcblxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHZDb2xvciwgc3RyZW5ndGggKiB2T3BhY2l0eSk7XG59XG4gIGBcbik7XG5cbmV4dGVuZCh7IFNwYXJrbGVzTWF0ZXJpYWwsIFBvaW50cywgQnVmZmVyR2VvbWV0cnksIEJ1ZmZlckF0dHJpYnV0ZSB9KTtcblxuY29uc3QgaXNGbG9hdDMyQXJyYXkgPSAoZGVmOiBhbnkpOiBkZWYgaXMgRmxvYXQzMkFycmF5ID0+IGRlZiAmJiAoZGVmIGFzIEZsb2F0MzJBcnJheSkuY29uc3RydWN0b3IgPT09IEZsb2F0MzJBcnJheTtcblxuY29uc3QgZXhwYW5kQ29sb3IgPSAodjogVEhSRUUuQ29sb3IpID0+IFt2LnIsIHYuZywgdi5iXTtcbmNvbnN0IGlzVmVjdG9yID0gKHY6IGFueSk6IHYgaXMgVEhSRUUuVmVjdG9yMiB8IFRIUkVFLlZlY3RvcjMgfCBUSFJFRS5WZWN0b3I0ID0+XG4gICAgdiBpbnN0YW5jZW9mIFZlY3RvcjIgfHwgdiBpbnN0YW5jZW9mIFZlY3RvcjMgfHwgdiBpbnN0YW5jZW9mIFZlY3RvcjQ7XG5cbmNvbnN0IG5vcm1hbGl6ZVZlY3RvciA9ICh2OiBhbnkpOiBudW1iZXJbXSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHJldHVybiB2O1xuICAgIGVsc2UgaWYgKGlzVmVjdG9yKHYpKSByZXR1cm4gdi50b0FycmF5KCk7XG4gICAgcmV0dXJuIFt2LCB2LCB2XSBhcyBudW1iZXJbXTtcbn07XG5cbmZ1bmN0aW9uIHVzZVByb3BBc0lzT3JBc0F0dHJpYnV0ZTxUID0gYW55Pihjb3VudDogbnVtYmVyLCBwcm9wPzogVCB8IEZsb2F0MzJBcnJheSwgc2V0RGVmYXVsdD86ICh2OiBUKSA9PiBudW1iZXIpIHtcbiAgICBpZiAocHJvcCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChpc0Zsb2F0MzJBcnJheShwcm9wKSkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3AgYXMgRmxvYXQzMkFycmF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb3AgaW5zdGFuY2VvZiBDb2xvcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCAqIDMgfSwgKCkgPT4gZXhwYW5kQ29sb3IocHJvcCkpLmZsYXQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5LmZyb20oYSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzVmVjdG9yKHByb3ApIHx8IEFycmF5LmlzQXJyYXkocHJvcCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgKiAzIH0sICgpID0+IG5vcm1hbGl6ZVZlY3Rvcihwcm9wKSkuZmxhdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBGbG9hdDMyQXJyYXkuZnJvbShhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBGbG9hdDMyQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKCkgPT4gcHJvcCBhcyB1bmtub3duIGFzIG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIEZsb2F0MzJBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCBzZXREZWZhdWx0ISk7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zcGFya2xlcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBvaW50cyBuZ3RDb21wb3VudCBbcmVmXT1cInBvaW50c1JlZlwiPlxuICAgICAgICAgICAgPG5ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgncG9zaXRpb25zJyksIDNdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnc2l6ZXMnKSwgMV1cIiBhdHRhY2g9XCJhdHRyaWJ1dGVzLnNpemVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSAqYXJncz1cIltnZXQoJ29wYWNpdGllcycpLCAxXVwiIGF0dGFjaD1cImF0dHJpYnV0ZXMub3BhY2l0eVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnc3BlZWRzJyksIDFdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5zcGVlZFwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnY29sb3JzJyksIDNdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5jb2xvclwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnbm9pc2VzJyksIDNdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5ub2lzZVwiIC8+XG4gICAgICAgICAgICA8L25ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICA8bmd0LXNwYXJrbGVzLW1hdGVyaWFsIFtyZWZdPVwibWF0ZXJpYWxSZWZcIiBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiIFtkZXB0aFdyaXRlXT1cImZhbHNlXCIgW3BpeGVsUmF0aW9dPVwiZHByXCIgLz5cbiAgICAgICAgPC9uZ3QtcG9pbnRzPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1NwYXJrbGVzIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG4gICAgcmVhZG9ubHkgZHByID0gdGhpcy5zdG9yZS5nZXQoJ3ZpZXdwb3J0JywgJ2RwcicpO1xuICAgIHJlYWRvbmx5IG1hdGVyaWFsUmVmID0gaW5qZWN0Tmd0UmVmPHR5cGVvZiBTcGFya2xlc01hdGVyaWFsLnByb3RvdHlwZT4oKTtcblxuICAgIEBJbnB1dCgpIHBvaW50c1JlZiA9IGluamVjdE5ndFJlZjxQb2ludHM+KCk7XG5cbiAgICAvKiogTnVtYmVyIG9mIHBhcnRpY2xlcyAoZGVmYXVsdDogMTAwKSAqL1xuICAgIEBJbnB1dCgpIHNldCBjb3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY291bnQgfSk7XG4gICAgfVxuXG4gICAgLyoqIFNwZWVkIG9mIHBhcnRpY2xlcyAoZGVmYXVsdDogMSkgKi9cbiAgICBASW5wdXQoKSBzZXQgc3BlZWQoc3BlZWQ6IG51bWJlciB8IEZsb2F0MzJBcnJheSkge1xuICAgICAgICB0aGlzLnNldCh7IHNwZWVkIH0pO1xuICAgIH1cblxuICAgIC8qKiBPcGFjaXR5IG9mIHBhcnRpY2xlcyAoZGVmYXVsdDogMSkgKi9cbiAgICBASW5wdXQoKSBzZXQgb3BhY2l0eShvcGFjaXR5OiBudW1iZXIgfCBGbG9hdDMyQXJyYXkpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBvcGFjaXR5IH0pO1xuICAgIH1cblxuICAgIC8qKiBDb2xvciBvZiBwYXJ0aWNsZXMgKGRlZmF1bHQ6IDEwMCkgKi9cbiAgICBASW5wdXQoKSBzZXQgY29sb3IoY29sb3I6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24gfCBGbG9hdDMyQXJyYXkpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjb2xvciB9KTtcbiAgICB9XG5cbiAgICAvKiogU2l6ZSBvZiBwYXJ0aWNsZXMgKGRlZmF1bHQ6IHJhbmRvbWl6ZWQgYmV0d2VlbiAwIGFuZCAxKSAqL1xuICAgIEBJbnB1dCgpIHNldCBzaXplKHNpemU6IG51bWJlciB8IEZsb2F0MzJBcnJheSkge1xuICAgICAgICB0aGlzLnNldCh7IHNpemUgfSk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBzcGFjZSB0aGUgcGFydGljbGVzIG9jY3VweSAoZGVmYXVsdDogMSkgKi9cbiAgICBASW5wdXQoKSBzZXQgc2NhbGUoc2NhbGU6IG51bWJlciB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IFRIUkVFLlZlY3RvcjMpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzY2FsZSB9KTtcbiAgICB9XG5cbiAgICAvKiogTW92ZW1lbnQgZmFjdG9yIChkZWZhdWx0OiAxKSAqL1xuICAgIEBJbnB1dCgpIHNldCBub2lzZShub2lzZTogbnVtYmVyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgVEhSRUUuVmVjdG9yMyB8IEZsb2F0MzJBcnJheSkge1xuICAgICAgICB0aGlzLnNldCh7IG5vaXNlIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgbm9pc2U6IDEsXG4gICAgICAgICAgICBjb3VudDogMTAwLFxuICAgICAgICAgICAgc3BlZWQ6IDEsXG4gICAgICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICAgICAgc2NhbGU6IDEsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAncG9zaXRpb25zJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KFsnY291bnQnLCAnc2NhbGUnXSwgKHsgY291bnQsIHNjYWxlIH0pID0+XG4gICAgICAgICAgICAgICAgRmxvYXQzMkFycmF5LmZyb20oXG4gICAgICAgICAgICAgICAgICAgIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sICgpID0+IG5vcm1hbGl6ZVZlY3RvcihzY2FsZSkubWFwKE1hdGhVdGlscy5yYW5kRmxvYXRTcHJlYWQpKS5mbGF0KClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25uZWN0KCdzaXplcycsIHRoaXMuZ2V0QXR0cmlidXRlJDxudW1iZXI+KCdzaXplJywgeyBzZXREZWZhdWx0OiBNYXRoLnJhbmRvbSB9KSk7XG4gICAgICAgIHRoaXMuY29ubmVjdCgnb3BhY2l0aWVzJywgdGhpcy5nZXRBdHRyaWJ1dGUkPG51bWJlcj4oJ29wYWNpdHknKSk7XG4gICAgICAgIHRoaXMuY29ubmVjdCgnc3BlZWRzJywgdGhpcy5nZXRBdHRyaWJ1dGUkPG51bWJlcj4oJ3NwZWVkJykpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnbm9pc2VzJyxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXR0cmlidXRlJDxudW1iZXIgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBUSFJFRS5WZWN0b3IzIHwgRmxvYXQzMkFycmF5Pignbm9pc2UnLCB7XG4gICAgICAgICAgICAgICAgY291bnRWYWx1ZTogKF8sIGNvdW50KSA9PiBjb3VudCAqIDMsXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnY29sb3JzJyxcbiAgICAgICAgICAgIHRoaXMuZ2V0QXR0cmlidXRlJDxUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uPignY29sb3InLCB7XG4gICAgICAgICAgICAgICAga2V5VmFsdWU6IChjb2xvcikgPT4gKCFpc0Zsb2F0MzJBcnJheShjb2xvcikgPyBuZXcgQ29sb3IoY29sb3IpIDogY29sb3IpLFxuICAgICAgICAgICAgICAgIGNvdW50VmFsdWU6IChjb2xvciwgY291bnQpID0+IChjb2xvciA9PT0gdW5kZWZpbmVkID8gY291bnQgKiAzIDogY291bnQpLFxuICAgICAgICAgICAgICAgIHNldERlZmF1bHQ6ICgpID0+IDEsXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIodGhpcy5vbkJlZm9yZVJlbmRlci5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQmVmb3JlUmVuZGVyKHsgY2xvY2sgfTogTmd0UmVuZGVyU3RhdGUpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1hdGVyaWFsUmVmLm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICAgICAgdGhpcy5tYXRlcmlhbFJlZi5uYXRpdmVFbGVtZW50LnVuaWZvcm1zWyd0aW1lJ10udmFsdWUgPSBjbG9jay5lbGFwc2VkVGltZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEF0dHJpYnV0ZSQ8VFZhbHVlPihcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiB7XG4gICAgICAgICAgICBrZXlWYWx1ZT86ICh2YWx1ZTogVFZhbHVlLCBjb3VudDogbnVtYmVyKSA9PiBUVmFsdWU7XG4gICAgICAgICAgICBjb3VudFZhbHVlPzogKHZhbHVlOiBUVmFsdWUsIGNvdW50OiBudW1iZXIpID0+IG51bWJlcjtcbiAgICAgICAgICAgIHNldERlZmF1bHQ/OiAodmFsdWU6IFRWYWx1ZSkgPT4gbnVtYmVyO1xuICAgICAgICB9XG4gICAgKTogT2JzZXJ2YWJsZTxGbG9hdDMyQXJyYXk+IHtcbiAgICAgICAgb3B0aW9ucyA/Pz0ge307XG4gICAgICAgIGlmICghb3B0aW9ucy5rZXlWYWx1ZSkge1xuICAgICAgICAgICAgb3B0aW9ucy5rZXlWYWx1ZSA9ICh2YWx1ZSkgPT4gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9wdGlvbnMuY291bnRWYWx1ZSkge1xuICAgICAgICAgICAgb3B0aW9ucy5jb3VudFZhbHVlID0gKF8sIGNvdW50KSA9PiBjb3VudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3Qoa2V5KS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuZ2V0KGtleSkgfHwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc2VsZWN0KCdjb3VudCcpKSxcbiAgICAgICAgICAgIG1hcCgoW3ZhbHVlLCBjb3VudF0pID0+XG4gICAgICAgICAgICAgICAgdXNlUHJvcEFzSXNPckFzQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zIS5jb3VudFZhbHVlISh2YWx1ZSwgY291bnQpLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zIS5rZXlWYWx1ZSEodmFsdWUsIGNvdW50KSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz8uc2V0RGVmYXVsdFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcmtsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3BhcmtsZXMvc3BhcmtsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFDSCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixPQUFPLEVBQ1AsTUFBTSxFQUVOLFVBQVUsRUFDVixRQUFRLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFN0csTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQ25DLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFO0FBQzFCLGdCQUFnQjtBQUNoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJEO0FBQ0MsZ0JBQWdCO0FBQ2hCOzs7Ozs7Ozs7O0dBVUQsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBRXRFLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBUSxFQUF1QixFQUFFLENBQUMsR0FBRyxJQUFLLEdBQW9CLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQztBQUVw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Q1MsT0FBTyxxRUFBRSxNQUFNOzJGQUdoQixZQUFZO2tCQW5CeEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7O0tBWVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQU1ZLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR08sS0FBSztzQkFBakIsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLO2dCQUtPLE9BQU87c0JBQW5CLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFLTyxJQUFJO3NCQUFoQixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBleHRlbmQsXG4gICAgaW5qZWN0QmVmb3JlUmVuZGVyLFxuICAgIGluamVjdE5ndFJlZixcbiAgICBOZ3RBcmdzLFxuICAgIE5ndFJlZixcbiAgICBOZ3RSZW5kZXJTdGF0ZSxcbiAgICBOZ3RSeFN0b3JlLFxuICAgIE5ndFN0b3JlLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IHNoYWRlck1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5LCBDb2xvciwgTWF0aFV0aWxzLCBQb2ludHMsIFZlY3RvcjIsIFZlY3RvcjMsIFZlY3RvcjQgfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IFNwYXJrbGVzTWF0ZXJpYWwgPSBzaGFkZXJNYXRlcmlhbChcbiAgICB7IHRpbWU6IDAsIHBpeGVsUmF0aW86IDEgfSxcbiAgICAvLyBsYW5ndWFnZT1HTFNMXG4gICAgYFxudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvO1xudW5pZm9ybSBmbG9hdCB0aW1lO1xuXG5hdHRyaWJ1dGUgZmxvYXQgc2l6ZTtcbmF0dHJpYnV0ZSBmbG9hdCBzcGVlZDtcbmF0dHJpYnV0ZSBmbG9hdCBvcGFjaXR5O1xuYXR0cmlidXRlIHZlYzMgbm9pc2U7XG5hdHRyaWJ1dGUgdmVjMyBjb2xvcjtcblxudmFyeWluZyB2ZWMzIHZDb2xvcjtcbnZhcnlpbmcgZmxvYXQgdk9wYWNpdHk7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBtb2RlbFBvc2l0aW9uID0gbW9kZWxNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuXG4gIG1vZGVsUG9zaXRpb24ueSArPSBzaW4odGltZSAqIHNwZWVkICsgbW9kZWxQb3NpdGlvbi54ICogbm9pc2UueCAqIDEwMC4wKSAqIDAuMjtcbiAgbW9kZWxQb3NpdGlvbi56ICs9IGNvcyh0aW1lICogc3BlZWQgKyBtb2RlbFBvc2l0aW9uLnggKiBub2lzZS55ICogMTAwLjApICogMC4yO1xuICBtb2RlbFBvc2l0aW9uLnggKz0gY29zKHRpbWUgKiBzcGVlZCArIG1vZGVsUG9zaXRpb24ueCAqIG5vaXNlLnogKiAxMDAuMCkgKiAwLjI7XG5cbiAgdmVjNCB2aWV3UG9zaXRpb24gPSB2aWV3TWF0cml4ICogbW9kZWxQb3NpdGlvbjtcbiAgdmVjNCBwcm9qZWN0aW9uUG9zdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiB2aWV3UG9zaXRpb247XG5cbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uUG9zdGlvbjtcbiAgZ2xfUG9pbnRTaXplID0gc2l6ZSAqIDI1LiAqIHBpeGVsUmF0aW87XG4gIGdsX1BvaW50U2l6ZSAqPSAoMS4wIC8gLSB2aWV3UG9zaXRpb24ueik7XG5cbiAgdkNvbG9yID0gY29sb3I7XG4gIHZPcGFjaXR5ID0gb3BhY2l0eTtcbn1cbiAgYCxcbiAgICAvLyBsYW5ndWFnZT1HTFNMXG4gICAgYFxudmFyeWluZyB2ZWMzIHZDb2xvcjtcbnZhcnlpbmcgZmxvYXQgdk9wYWNpdHk7XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgZGlzdGFuY2VUb0NlbnRlciA9IGRpc3RhbmNlKGdsX1BvaW50Q29vcmQsIHZlYzIoMC41KSk7XG4gIGZsb2F0IHN0cmVuZ3RoID0gMC4wNSAvIGRpc3RhbmNlVG9DZW50ZXIgLSAwLjE7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh2Q29sb3IsIHN0cmVuZ3RoICogdk9wYWNpdHkpO1xufVxuICBgXG4pO1xuXG5leHRlbmQoeyBTcGFya2xlc01hdGVyaWFsLCBQb2ludHMsIEJ1ZmZlckdlb21ldHJ5LCBCdWZmZXJBdHRyaWJ1dGUgfSk7XG5cbmNvbnN0IGlzRmxvYXQzMkFycmF5ID0gKGRlZjogYW55KTogZGVmIGlzIEZsb2F0MzJBcnJheSA9PiBkZWYgJiYgKGRlZiBhcyBGbG9hdDMyQXJyYXkpLmNvbnN0cnVjdG9yID09PSBGbG9hdDMyQXJyYXk7XG5cbmNvbnN0IGV4cGFuZENvbG9yID0gKHY6IFRIUkVFLkNvbG9yKSA9PiBbdi5yLCB2LmcsIHYuYl07XG5jb25zdCBpc1ZlY3RvciA9ICh2OiBhbnkpOiB2IGlzIFRIUkVFLlZlY3RvcjIgfCBUSFJFRS5WZWN0b3IzIHwgVEhSRUUuVmVjdG9yNCA9PlxuICAgIHYgaW5zdGFuY2VvZiBWZWN0b3IyIHx8IHYgaW5zdGFuY2VvZiBWZWN0b3IzIHx8IHYgaW5zdGFuY2VvZiBWZWN0b3I0O1xuXG5jb25zdCBub3JtYWxpemVWZWN0b3IgPSAodjogYW55KTogbnVtYmVyW10gPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHYpKSByZXR1cm4gdjtcbiAgICBlbHNlIGlmIChpc1ZlY3Rvcih2KSkgcmV0dXJuIHYudG9BcnJheSgpO1xuICAgIHJldHVybiBbdiwgdiwgdl0gYXMgbnVtYmVyW107XG59O1xuXG5mdW5jdGlvbiB1c2VQcm9wQXNJc09yQXNBdHRyaWJ1dGU8VCA9IGFueT4oY291bnQ6IG51bWJlciwgcHJvcD86IFQgfCBGbG9hdDMyQXJyYXksIHNldERlZmF1bHQ/OiAodjogVCkgPT4gbnVtYmVyKSB7XG4gICAgaWYgKHByb3AgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaXNGbG9hdDMyQXJyYXkocHJvcCkpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wIGFzIEZsb2F0MzJBcnJheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9wIGluc3RhbmNlb2YgQ29sb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgKiAzIH0sICgpID0+IGV4cGFuZENvbG9yKHByb3ApKS5mbGF0KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEZsb2F0MzJBcnJheS5mcm9tKGEpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc1ZlY3Rvcihwcm9wKSB8fCBBcnJheS5pc0FycmF5KHByb3ApKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50ICogMyB9LCAoKSA9PiBub3JtYWxpemVWZWN0b3IocHJvcCkpLmZsYXQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5LmZyb20oYSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gRmxvYXQzMkFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sICgpID0+IHByb3AgYXMgdW5rbm93biBhcyBudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBGbG9hdDMyQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgc2V0RGVmYXVsdCEpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc3BhcmtsZXMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wb2ludHMgbmd0Q29tcG91bnQgKnJlZj1cInBvaW50c1JlZlwiPlxuICAgICAgICAgICAgPG5ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgncG9zaXRpb25zJyksIDNdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnc2l6ZXMnKSwgMV1cIiBhdHRhY2g9XCJhdHRyaWJ1dGVzLnNpemVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSAqYXJncz1cIltnZXQoJ29wYWNpdGllcycpLCAxXVwiIGF0dGFjaD1cImF0dHJpYnV0ZXMub3BhY2l0eVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnc3BlZWRzJyksIDFdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5zcGVlZFwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnY29sb3JzJyksIDNdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5jb2xvclwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlICphcmdzPVwiW2dldCgnbm9pc2VzJyksIDNdXCIgYXR0YWNoPVwiYXR0cmlidXRlcy5ub2lzZVwiIC8+XG4gICAgICAgICAgICA8L25ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICA8bmd0LXNwYXJrbGVzLW1hdGVyaWFsICpyZWY9XCJtYXRlcmlhbFJlZlwiIFt0cmFuc3BhcmVudF09XCJ0cnVlXCIgW2RlcHRoV3JpdGVdPVwiZmFsc2VcIiBbcGl4ZWxSYXRpb109XCJkcHJcIiAvPlxuICAgICAgICA8L25ndC1wb2ludHM+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UmVmXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcGFya2xlcyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5IGRwciA9IHRoaXMuc3RvcmUuZ2V0KCd2aWV3cG9ydCcsICdkcHInKTtcbiAgICByZWFkb25seSBtYXRlcmlhbFJlZiA9IGluamVjdE5ndFJlZjx0eXBlb2YgU3BhcmtsZXNNYXRlcmlhbC5wcm90b3R5cGU+KCk7XG5cbiAgICBASW5wdXQoKSBwb2ludHNSZWYgPSBpbmplY3ROZ3RSZWY8UG9pbnRzPigpO1xuXG4gICAgLyoqIE51bWJlciBvZiBwYXJ0aWNsZXMgKGRlZmF1bHQ6IDEwMCkgKi9cbiAgICBASW5wdXQoKSBzZXQgY291bnQoY291bnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGNvdW50IH0pO1xuICAgIH1cblxuICAgIC8qKiBTcGVlZCBvZiBwYXJ0aWNsZXMgKGRlZmF1bHQ6IDEpICovXG4gICAgQElucHV0KCkgc2V0IHNwZWVkKHNwZWVkOiBudW1iZXIgfCBGbG9hdDMyQXJyYXkpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZCB9KTtcbiAgICB9XG5cbiAgICAvKiogT3BhY2l0eSBvZiBwYXJ0aWNsZXMgKGRlZmF1bHQ6IDEpICovXG4gICAgQElucHV0KCkgc2V0IG9wYWNpdHkob3BhY2l0eTogbnVtYmVyIHwgRmxvYXQzMkFycmF5KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgb3BhY2l0eSB9KTtcbiAgICB9XG5cbiAgICAvKiogQ29sb3Igb2YgcGFydGljbGVzIChkZWZhdWx0OiAxMDApICovXG4gICAgQElucHV0KCkgc2V0IGNvbG9yKGNvbG9yOiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uIHwgRmxvYXQzMkFycmF5KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuXG4gICAgLyoqIFNpemUgb2YgcGFydGljbGVzIChkZWZhdWx0OiByYW5kb21pemVkIGJldHdlZW4gMCBhbmQgMSkgKi9cbiAgICBASW5wdXQoKSBzZXQgc2l6ZShzaXplOiBudW1iZXIgfCBGbG9hdDMyQXJyYXkpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzaXplIH0pO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc3BhY2UgdGhlIHBhcnRpY2xlcyBvY2N1cHkgKGRlZmF1bHQ6IDEpICovXG4gICAgQElucHV0KCkgc2V0IHNjYWxlKHNjYWxlOiBudW1iZXIgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBUSFJFRS5WZWN0b3IzKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGUgfSk7XG4gICAgfVxuXG4gICAgLyoqIE1vdmVtZW50IGZhY3RvciAoZGVmYXVsdDogMSkgKi9cbiAgICBASW5wdXQoKSBzZXQgbm9pc2Uobm9pc2U6IG51bWJlciB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IFRIUkVFLlZlY3RvcjMgfCBGbG9hdDMyQXJyYXkpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBub2lzZSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCkge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIG5vaXNlOiAxLFxuICAgICAgICAgICAgY291bnQ6IDEwMCxcbiAgICAgICAgICAgIHNwZWVkOiAxLFxuICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgIHNjYWxlOiAxLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ3Bvc2l0aW9ucycsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ2NvdW50JywgJ3NjYWxlJ10sICh7IGNvdW50LCBzY2FsZSB9KSA9PlxuICAgICAgICAgICAgICAgIEZsb2F0MzJBcnJheS5mcm9tKFxuICAgICAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoKSA9PiBub3JtYWxpemVWZWN0b3Ioc2NhbGUpLm1hcChNYXRoVXRpbHMucmFuZEZsb2F0U3ByZWFkKSkuZmxhdCgpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdCgnc2l6ZXMnLCB0aGlzLmdldEF0dHJpYnV0ZSQ8bnVtYmVyPignc2l6ZScsIHsgc2V0RGVmYXVsdDogTWF0aC5yYW5kb20gfSkpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoJ29wYWNpdGllcycsIHRoaXMuZ2V0QXR0cmlidXRlJDxudW1iZXI+KCdvcGFjaXR5JykpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoJ3NwZWVkcycsIHRoaXMuZ2V0QXR0cmlidXRlJDxudW1iZXI+KCdzcGVlZCcpKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ25vaXNlcycsXG4gICAgICAgICAgICB0aGlzLmdldEF0dHJpYnV0ZSQ8bnVtYmVyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgVEhSRUUuVmVjdG9yMyB8IEZsb2F0MzJBcnJheT4oJ25vaXNlJywge1xuICAgICAgICAgICAgICAgIGNvdW50VmFsdWU6IChfLCBjb3VudCkgPT4gY291bnQgKiAzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2NvbG9ycycsXG4gICAgICAgICAgICB0aGlzLmdldEF0dHJpYnV0ZSQ8VEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbj4oJ2NvbG9yJywge1xuICAgICAgICAgICAgICAgIGtleVZhbHVlOiAoY29sb3IpID0+ICghaXNGbG9hdDMyQXJyYXkoY29sb3IpID8gbmV3IENvbG9yKGNvbG9yKSA6IGNvbG9yKSxcbiAgICAgICAgICAgICAgICBjb3VudFZhbHVlOiAoY29sb3IsIGNvdW50KSA9PiAoY29sb3IgPT09IHVuZGVmaW5lZCA/IGNvdW50ICogMyA6IGNvdW50KSxcbiAgICAgICAgICAgICAgICBzZXREZWZhdWx0OiAoKSA9PiAxLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKHRoaXMub25CZWZvcmVSZW5kZXIuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJlZm9yZVJlbmRlcih7IGNsb2NrIH06IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIGlmICghdGhpcy5tYXRlcmlhbFJlZi5uYXRpdmVFbGVtZW50KSByZXR1cm47XG4gICAgICAgIHRoaXMubWF0ZXJpYWxSZWYubmF0aXZlRWxlbWVudC51bmlmb3Jtc1sndGltZSddLnZhbHVlID0gY2xvY2suZWxhcHNlZFRpbWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGUkPFRWYWx1ZT4oXG4gICAgICAgIGtleTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzoge1xuICAgICAgICAgICAga2V5VmFsdWU/OiAodmFsdWU6IFRWYWx1ZSwgY291bnQ6IG51bWJlcikgPT4gVFZhbHVlO1xuICAgICAgICAgICAgY291bnRWYWx1ZT86ICh2YWx1ZTogVFZhbHVlLCBjb3VudDogbnVtYmVyKSA9PiBudW1iZXI7XG4gICAgICAgICAgICBzZXREZWZhdWx0PzogKHZhbHVlOiBUVmFsdWUpID0+IG51bWJlcjtcbiAgICAgICAgfVxuICAgICk6IE9ic2VydmFibGU8RmxvYXQzMkFycmF5PiB7XG4gICAgICAgIG9wdGlvbnMgPz89IHt9O1xuICAgICAgICBpZiAoIW9wdGlvbnMua2V5VmFsdWUpIHtcbiAgICAgICAgICAgIG9wdGlvbnMua2V5VmFsdWUgPSAodmFsdWUpID0+IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLmNvdW50VmFsdWUpIHtcbiAgICAgICAgICAgIG9wdGlvbnMuY291bnRWYWx1ZSA9IChfLCBjb3VudCkgPT4gY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0KGtleSkucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmdldChrZXkpIHx8IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnNlbGVjdCgnY291bnQnKSksXG4gICAgICAgICAgICBtYXAoKFt2YWx1ZSwgY291bnRdKSA9PlxuICAgICAgICAgICAgICAgIHVzZVByb3BBc0lzT3JBc0F0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyEuY291bnRWYWx1ZSEodmFsdWUsIGNvdW50KSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyEua2V5VmFsdWUhKHZhbHVlLCBjb3VudCksXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM/LnNldERlZmF1bHRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -44,10 +44,7 @@ NgtsStageRefit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
44
44
|
NgtsStageRefit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 });
|
|
45
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStageRefit, decorators: [{
|
|
46
46
|
type: Directive,
|
|
47
|
-
args: [{
|
|
48
|
-
selector: 'ngts-stage-refit',
|
|
49
|
-
standalone: true,
|
|
50
|
-
}]
|
|
47
|
+
args: [{ selector: 'ngts-stage-refit', standalone: true }]
|
|
51
48
|
}], propDecorators: { radius: [{
|
|
52
49
|
type: Input
|
|
53
50
|
}], adjustCamera: [{
|
|
@@ -366,4 +363,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
366
363
|
}], centered: [{
|
|
367
364
|
type: Output
|
|
368
365
|
}] } });
|
|
369
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3RhZ2Uvc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLEdBQUc7SUFDWixTQUFTLEVBQUU7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENB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O2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBOZ3RBcmdzLCBOZ3RSeFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFtYmllbnRMaWdodCwgR3JvdXAsIFBvaW50TGlnaHQsIFNwb3RMaWdodCwgVmVjdG9yMiB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzIH0gZnJvbSAnLi4vYWNjdW11bGF0aXZlLXNoYWRvd3MvYWNjdW11bGF0aXZlLXNoYWRvd3MnO1xuaW1wb3J0IHsgTmd0c1JhbmRvbWl6ZWRMaWdodHMgfSBmcm9tICcuLi9hY2N1bXVsYXRpdmUtc2hhZG93cy9yYW5kb21pemVkLWxpZ2h0cyc7XG5pbXBvcnQgeyBOZ3RzQm91bmRzLCBOR1RTX0JPVU5EU19BUEkgfSBmcm9tICcuLi9ib3VuZHMvYm91bmRzJztcbmltcG9ydCB7IE5ndHNDZW50ZXIgfSBmcm9tICcuLi9jZW50ZXIvY2VudGVyJztcbmltcG9ydCB7IE5ndHNDb250YWN0U2hhZG93cyB9IGZyb20gJy4uL2NvbnRhY3Qtc2hhZG93cy9jb250YWN0LXNoYWRvd3MnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50UHJlc2V0c1R5cGUgfSBmcm9tICcuLi9lbnZpcm9ubWVudC9hc3NldHMnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50SW5wdXRzIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQvZW52aXJvbm1lbnQtaW5wdXRzJztcblxuY29uc3QgcHJlc2V0cyA9IHtcbiAgICByZW1icmFuZHQ6IHtcbiAgICAgICAgbWFpbjogWzEsIDIsIDFdLFxuICAgICAgICBmaWxsOiBbLTIsIC0wLjUsIC0yXSxcbiAgICB9LFxuICAgIHBvcnRyYWl0OiB7XG4gICAgICAgIG1haW46IFstMSwgMiwgMC41XSxcbiAgICAgICAgZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuICAgIH0sXG4gICAgdXBmcm9udDoge1xuICAgICAgICBtYWluOiBbMCwgMiwgMV0sXG4gICAgICAgIGZpbGw6IFstMSwgMC41LCAtMS41XSxcbiAgICB9LFxuICAgIHNvZnQ6IHtcbiAgICAgICAgbWFpbjogWy0yLCA0LCA0XSxcbiAgICAgICAgZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuICAgIH0sXG59O1xuXG50eXBlIE5ndHNTdGFnZVNoYWRvd3MgPSBQYXJ0aWFsPE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzPiAmXG4gICAgUGFydGlhbDxOZ3RzUmFuZG9taXplZExpZ2h0cz4gJlxuICAgIFBhcnRpYWw8Tmd0c0NvbnRhY3RTaGFkb3dzPiAmIHtcbiAgICAgICAgdHlwZTogJ2NvbnRhY3QnIHwgJ2FjY3VtdWxhdGl2ZSc7XG4gICAgICAgIC8qKiBTaGFkb3cgcGxhbmUgb2Zmc2V0LCBkZWZhdWx0OiAwICovXG4gICAgICAgIG9mZnNldD86IG51bWJlcjtcbiAgICAgICAgLyoqIFNoYWRvdyBiaWFzLCBkZWZhdWx0OiAtMC4wMDAxICovXG4gICAgICAgIGJpYXM/OiBudW1iZXI7XG4gICAgICAgIC8qKiBTaGFkb3cgbm9ybWFsIGJpYXMsIGRlZmF1bHQ6IDAgKi9cbiAgICAgICAgbm9ybWFsQmlhcz86IG51bWJlcjtcbiAgICAgICAgLyoqIFNoYWRvdyBtYXAgc2l6ZSwgZGVmYXVsdDogMTAyNCAqL1xuICAgICAgICBzaXplPzogbnVtYmVyO1xuICAgIH07XG5cbnR5cGUgTmd0c1N0YWdlUHJvcHMgPSB7XG4gICAgLyoqIExpZ2h0aW5nIHNldHVwLCBkZWZhdWx0OiBcInJlbWJyYW5kdFwiICovXG4gICAgcHJlc2V0PzpcbiAgICAgICAgfCAncmVtYnJhbmR0J1xuICAgICAgICB8ICdwb3J0cmFpdCdcbiAgICAgICAgfCAndXBmcm9udCdcbiAgICAgICAgfCAnc29mdCdcbiAgICAgICAgfCB7IG1haW46IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXTsgZmlsbDogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdIH07XG4gICAgLyoqIENvbnRyb2xzIHRoZSBncm91bmQgc2hhZG93cywgZGVmYXVsdDogXCJjb250YWN0XCIgKi9cbiAgICBzaGFkb3dzPzogYm9vbGVhbiB8ICdjb250YWN0JyB8ICdhY2N1bXVsYXRpdmUnIHwgTmd0c1N0YWdlU2hhZG93cztcbiAgICAvKiogT3B0aW9uYWxseSB3cmFwcyBhbmQgdGhlcmVieSBjZW50ZXJzIHRoZSBtb2RlbHMgdXNpbmcgPEJvdW5kcz4sIGNhbiBhbHNvIGJlIGEgbWFyZ2luLCBkZWZhdWx0OiB0cnVlICovXG4gICAgYWRqdXN0Q2FtZXJhPzogYm9vbGVhbiB8IG51bWJlcjtcbiAgICAvKiogVGhlIGRlZmF1bHQgZW52aXJvbm1lbnQsIGRlZmF1bHQ6IFwiY2l0eVwiICovXG4gICAgZW52aXJvbm1lbnQ/OiBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzVHlwZSB8IFBhcnRpYWw8Tmd0c0Vudmlyb25tZW50SW5wdXRzPjtcbiAgICAvKiogVGhlIGxpZ2h0aW5nIGludGVuc2l0eSwgZGVmYXVsdDogMC41ICovXG4gICAgaW50ZW5zaXR5PzogbnVtYmVyO1xuICAgIC8qKiBUbyBhZGp1c3QgY2VudGVyaW5nLCBkZWZhdWx0OiB1bmRlZmluZWQgKi9cbiAgICBjZW50ZXI/OiBQYXJ0aWFsPE5ndHNDZW50ZXI+O1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXN0YWdlLXJlZml0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhZ2VSZWZpdCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBib3VuZHNBcGkgPSBpbmplY3QoTkdUU19CT1VORFNfQVBJKTtcblxuICAgIEBJbnB1dCgpIHJhZGl1cyA9IDA7XG4gICAgQElucHV0KCkgYWRqdXN0Q2FtZXJhID0gdHJ1ZTtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5hZGp1c3RDYW1lcmEpIHtcbiAgICAgICAgICAgIHRoaXMuYm91bmRzQXBpLnJlZnJlc2goKS5jbGlwKCkuZml0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4dGVuZCh7IEFtYmllbnRMaWdodCwgU3BvdExpZ2h0LCBWZWN0b3IyLCBQb2ludExpZ2h0LCBHcm91cCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXN0YWdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtYW1iaWVudC1saWdodCBbaW50ZW5zaXR5XT1cImdldCgnaW50ZW5zaXR5JykhIC8gM1wiIC8+XG4gICAgICAgIDxuZ3Qtc3BvdC1saWdodFxuICAgICAgICAgICAgW3BlbnVtYnJhXT1cIjFcIlxuICAgICAgICAgICAgW3Bvc2l0aW9uXT1cImdldCgnc3BvdExpZ2h0UG9zaXRpb24nKVwiXG4gICAgICAgICAgICBbaW50ZW5zaXR5XT1cImdldCgnaW50ZW5zaXR5JykhICogMlwiXG4gICAgICAgICAgICBbY2FzdFNoYWRvd109XCIhIWdldCgnc2hhZG93cycpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLnNoYWRvd0JpYXNcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiIC8+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ3NoYWRvd3NJbmZvJykubm9ybWFsQmlhc1wiIGF0dGFjaD1cInNoYWRvdy5ub3JtYWxCaWFzXCIgLz5cbiAgICAgICAgICAgIDxuZ3QtdmVjdG9yMlxuICAgICAgICAgICAgICAgICphcmdzPVwiW2dldCgnc2hhZG93c0luZm8nKS5zaGFkb3dTaXplLCBnZXQoJ3NoYWRvd3NJbmZvJykuc2hhZG93U2l6ZV1cIlxuICAgICAgICAgICAgICAgIGF0dGFjaD1cInNoYWRvdy5tYXBTaXplXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmd0LXNwb3QtbGlnaHQ+XG4gICAgICAgIDxuZ3QtcG9pbnQtbGlnaHQgW3Bvc2l0aW9uXT1cImdldCgncG9pbnRMaWdodFBvc2l0aW9uJylcIiBbaW50ZW5zaXR5XT1cImdldCgnaW50ZW5zaXR5JylcIiAvPlxuXG4gICAgICAgIDxuZ3RzLWJvdW5kc1xuICAgICAgICAgICAgW2ZpdF09XCIhIWdldCgnYWRqdXN0Q2FtZXJhJylcIlxuICAgICAgICAgICAgW2NsaXBdPVwiISFnZXQoJ2FkanVzdENhbWVyYScpXCJcbiAgICAgICAgICAgIFttYXJnaW5dPVwiTnVtYmVyKGdldCgnYWRqdXN0Q2FtZXJhJykpXCJcbiAgICAgICAgICAgIFtvYnNlcnZlXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmd0cy1zdGFnZS1yZWZpdCBbcmFkaXVzXT1cImdldCgncmFkaXVzJylcIiBbYWRqdXN0Q2FtZXJhXT1cIiEhZ2V0KCdhZGp1c3RDYW1lcmEnKVwiIC8+XG4gICAgICAgICAgICA8bmd0cy1jZW50ZXJcbiAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiWzAsIGdldCgnc2hhZG93c0luZm8nKS5zaGFkb3dPZmZzZXQgLyAyLCAwXVwiXG4gICAgICAgICAgICAgICAgW3RvcF09XCIhIWdldCgnY2VudGVyJyk/LnRvcFwiXG4gICAgICAgICAgICAgICAgW3JpZ2h0XT1cIiEhZ2V0KCdjZW50ZXInKT8ucmlnaHRcIlxuICAgICAgICAgICAgICAgIFtib3R0b21dPVwiISFnZXQoJ2NlbnRlcicpPy5ib3R0b21cIlxuICAgICAgICAgICAgICAgIFtsZWZ0XT1cIiEhZ2V0KCdjZW50ZXInKT8ubGVmdFwiXG4gICAgICAgICAgICAgICAgW2Zyb250XT1cIiEhZ2V0KCdjZW50ZXInKT8uZnJvbnRcIlxuICAgICAgICAgICAgICAgIFtiYWNrXT1cIiEhZ2V0KCdjZW50ZXInKT8uYmFja1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVYXT1cIiEhZ2V0KCdjZW50ZXInKT8uZGlzYWJsZVhcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlWV09XCIhIWdldCgnY2VudGVyJyk/LmRpc2FibGVZXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZVpdPVwiISFnZXQoJ2NlbnRlcicpPy5kaXNhYmxlWlwiXG4gICAgICAgICAgICAgICAgW3ByZWNpc2VdPVwiISFnZXQoJ2NlbnRlcicpPy5wcmVjaXNlXCJcbiAgICAgICAgICAgICAgICAoY2VudGVyZWQpPVwib25DZW50ZXJlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPC9uZ3RzLWNlbnRlcj5cbiAgICAgICAgPC9uZ3RzLWJvdW5kcz5cbiAgICAgICAgPG5ndC1ncm91cCBbcG9zaXRpb25dPVwiWzAsIC1nZXQoJ2hlaWdodCcpIC8gMiAtIGdldCgnc2hhZG93c0luZm8nKS5zaGFkb3dPZmZzZXQgLyAyLCAwXVwiPlxuICAgICAgICAgICAgPG5ndHMtY29udGFjdC1zaGFkb3dzXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJnZXQoJ3NoYWRvd3NJbmZvJykuY29udGFjdFNoYWRvd1wiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cImdldCgncmFkaXVzJykgKiA0XCJcbiAgICAgICAgICAgICAgICBbZmFyXT1cImdldCgncmFkaXVzJylcIlxuICAgICAgICAgICAgICAgIFtibHVyXT1cIjJcIlxuICAgICAgICAgICAgICAgIFtvcGFjaXR5XT1cImdldCgnc2hhZG93c0luZm8nKS5vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLndpZHRoXCJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImdldCgnc2hhZG93c0luZm8nKS5oZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtzbW9vdGhdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLnNtb290aFwiXG4gICAgICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdzaGFkb3dzSW5mbycpLnJlc29sdXRpb25cIlxuICAgICAgICAgICAgICAgIFtmcmFtZXNdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmZyYW1lc1wiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cImdldCgnc2hhZG93c0luZm8nKS5zY2FsZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnc2hhZG93c0luZm8nKS5jb2xvclwiXG4gICAgICAgICAgICAgICAgW2RlcHRoV3JpdGVdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmRlcHRoV3JpdGVcIlxuICAgICAgICAgICAgICAgIFtyZW5kZXJPcmRlcl09XCJnZXQoJ3NoYWRvd3NJbmZvJykucmVuZGVyT3JkZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJnZXQoJ3NoYWRvd3NJbmZvJykuYWNjdW11bGF0aXZlU2hhZG93XCJcbiAgICAgICAgICAgICAgICBbdGVtcG9yYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2ZyYW1lc109XCIxMDBcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRlc3RdPVwiMC45XCJcbiAgICAgICAgICAgICAgICBbdG9uZU1hcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwiZ2V0KCdyYWRpdXMnKSAqIDRcIlxuICAgICAgICAgICAgICAgIFtvcGFjaXR5XT1cImdldCgnc2hhZG93c0luZm8nKS5vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUZXN0XT1cImdldCgnc2hhZG93c0luZm8nKS5hbHBoYVRlc3RcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ3NoYWRvd3NJbmZvJykuY29sb3JcIlxuICAgICAgICAgICAgICAgIFtjb2xvckJsZW5kXT1cImdldCgnc2hhZG93c0luZm8nKS5jb2xvckJsZW5kXCJcbiAgICAgICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ3NoYWRvd3NJbmZvJykucmVzb2x1dGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndHMtcmFuZG9taXplZC1saWdodHNcbiAgICAgICAgICAgICAgICAgICAgW2Ftb3VudF09XCJnZXQoJ3NoYWRvd3NJbmZvJykuYW1vdW50ID8/IDhcIlxuICAgICAgICAgICAgICAgICAgICBbcmFkaXVzXT1cImdldCgnc2hhZG93c0luZm8nKS5yYWRpdXMgPz8gZ2V0KCdyYWRpdXMnKVwiXG4gICAgICAgICAgICAgICAgICAgIFthbWJpZW50XT1cImdldCgnc2hhZG93c0luZm8nKS5hbWJpZW50ID8/IDAuNVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnRlbnNpdHldPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmludGVuc2l0eSA/PyAxXCJcbiAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cImdldCgnc3BvdExpZ2h0UG9zaXRpb24nKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImdldCgncmFkaXVzJykgKiA0XCJcbiAgICAgICAgICAgICAgICAgICAgW2JpYXNdPVwiLWdldCgnc2hhZG93c0luZm8nKS5zaGFkb3dCaWFzXCJcbiAgICAgICAgICAgICAgICAgICAgW21hcFNpemVdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLnNoYWRvd1NpemVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25ndHMtYWNjdW11bGF0aXZlLXNoYWRvd3M+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgICAgICA8bmd0cy1lbnZpcm9ubWVudFxuICAgICAgICAgICAgKm5nSWY9XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpXCJcbiAgICAgICAgICAgIFtmcmFtZXNdPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5mcmFtZXNcIlxuICAgICAgICAgICAgW25lYXJdPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5uZWFyXCJcbiAgICAgICAgICAgIFtmYXJdPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5mYXJcIlxuICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5yZXNvbHV0aW9uXCJcbiAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykuYmFja2dyb3VuZFwiXG4gICAgICAgICAgICBbYmx1cl09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmJsdXJcIlxuICAgICAgICAgICAgW21hcF09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLm1hcFwiXG4gICAgICAgICAgICBbZmlsZXNdPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5maWxlc1wiXG4gICAgICAgICAgICBbcGF0aF09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLnBhdGhcIlxuICAgICAgICAgICAgW3ByZXNldF09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLnByZXNldFwiXG4gICAgICAgICAgICBbc2NlbmVdPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5zY2VuZVwiXG4gICAgICAgICAgICBbZXh0ZW5zaW9uc109XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmV4dGVuc2lvbnNcIlxuICAgICAgICAgICAgW2dyb3VuZF09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmdyb3VuZFwiXG4gICAgICAgICAgICBbZW5jb2RpbmddPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5lbmNvZGluZ1wiXG4gICAgICAgIC8+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5ndEFyZ3MsXG4gICAgICAgIE5ndHNCb3VuZHMsXG4gICAgICAgIE5ndHNTdGFnZVJlZml0LFxuICAgICAgICBOZ3RzQ2VudGVyLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ3RzQ29udGFjdFNoYWRvd3MsXG4gICAgICAgIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzLFxuICAgICAgICBOZ3RzUmFuZG9taXplZExpZ2h0cyxcbiAgICAgICAgTmd0c0Vudmlyb25tZW50LFxuICAgIF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhZ2UgZXh0ZW5kcyBOZ3RSeFN0b3JlPE5ndHNTdGFnZVByb3BzPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHJlYWRvbmx5IE51bWJlciA9IE51bWJlcjtcblxuICAgIEBJbnB1dCgpIHNldCBwcmVzZXQocHJlc2V0OiBOZ3RzU3RhZ2VQcm9wc1sncHJlc2V0J10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBwcmVzZXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNoYWRvd3Moc2hhZG93czogTmd0c1N0YWdlUHJvcHNbJ3NoYWRvd3MnXSkge1xuICAgICAgICB0aGlzLnNldCh7IHNoYWRvd3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFkanVzdENhbWVyYShhZGp1c3RDYW1lcmE6IE5ndHNTdGFnZVByb3BzWydhZGp1c3RDYW1lcmEnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGFkanVzdENhbWVyYSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW52aXJvbm1lbnQoZW52aXJvbm1lbnQ6IE5ndHNTdGFnZVByb3BzWydlbnZpcm9ubWVudCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZW52aXJvbm1lbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGludGVuc2l0eShpbnRlbnNpdHk6IE5ndHNTdGFnZVByb3BzWydpbnRlbnNpdHknXSkge1xuICAgICAgICB0aGlzLnNldCh7IGludGVuc2l0eSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY2VudGVyKGNlbnRlcjogTmd0c1N0YWdlUHJvcHNbJ2NlbnRlciddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2VudGVyIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBjZW50ZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKSBhcyBOZ3RzQ2VudGVyWydjZW50ZXJlZCddO1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBhZGp1c3RDYW1lcmE6IHRydWUsXG4gICAgICAgICAgICBpbnRlbnNpdHk6IDAuNSxcbiAgICAgICAgICAgIHNoYWRvd3M6ICdjb250YWN0JyxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiAnY2l0eScsXG4gICAgICAgICAgICBwcmVzZXQ6ICdyZW1icmFuZHQnLFxuXG4gICAgICAgICAgICByYWRpdXM6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnY29uZmlnJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdwcmVzZXQnKS5waXBlKG1hcCgocHJlc2V0KSA9PiAodHlwZW9mIHByZXNldCA9PT0gJ3N0cmluZycgPyBwcmVzZXRzW3ByZXNldF0gOiBwcmVzZXQpKSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnc2hhZG93c0luZm8nLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NoYWRvd3MnKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoc2hhZG93cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFjdFNoYWRvdzogc2hhZG93cyA9PT0gJ2NvbnRhY3QnIHx8IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy50eXBlID09PSAnY29udGFjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3c6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93cyA9PT0gJ2FjY3VtdWxhdGl2ZScgfHwgKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/LnR5cGUgPT09ICdhY2N1bXVsYXRpdmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93QmlhczogKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/LmJpYXMgPz8gLTAuMDAwMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbEJpYXM6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy5ub3JtYWxCaWFzID8/IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dTaXplOiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8uc2l6ZSA/PyAxMDI0LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93T2Zmc2V0OiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8ub2Zmc2V0ID8/IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4odHlwZW9mIHNoYWRvd3MgPT09ICdzdHJpbmcnID8ge30gOiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKSB8fCB7fSksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnc3BvdExpZ2h0UG9zaXRpb24nLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoWydjb25maWcnLCAncmFkaXVzJ10sICh7IGNvbmZpZywgcmFkaXVzIH0pID0+IFtcbiAgICAgICAgICAgICAgICBjb25maWcubWFpblswXSAqIHJhZGl1cyxcbiAgICAgICAgICAgICAgICBjb25maWcubWFpblsxXSAqIHJhZGl1cyxcbiAgICAgICAgICAgICAgICBjb25maWcubWFpblsyXSAqIHJhZGl1cyxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ3BvaW50TGlnaHRQb3NpdGlvbicsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ2NvbmZpZycsICdyYWRpdXMnXSwgKHsgY29uZmlnLCByYWRpdXMgfSkgPT4gW1xuICAgICAgICAgICAgICAgIGNvbmZpZy5maWxsWzBdICogcmFkaXVzLFxuICAgICAgICAgICAgICAgIGNvbmZpZy5maWxsWzFdICogcmFkaXVzLFxuICAgICAgICAgICAgICAgIGNvbmZpZy5maWxsWzJdICogcmFkaXVzLFxuICAgICAgICAgICAgXSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnZW52aXJvbm1lbnRJbmZvJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdlbnZpcm9ubWVudCcpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChlbnZpcm9ubWVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWVudmlyb25tZW50KSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBlbnZpcm9ubWVudCA9PT0gJ3N0cmluZycpIHJldHVybiB7IHByZXNldDogZW52aXJvbm1lbnQgfTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudmlyb25tZW50O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25DZW50ZXJlZChwcm9wczoge1xuICAgICAgICAvKiogVGhlIG5leHQgcGFyZW50IGFib3ZlIDxDZW50ZXI+ICovXG4gICAgICAgIHBhcmVudDogVEhSRUUuT2JqZWN0M0Q7XG4gICAgICAgIC8qKiBUaGUgb3V0bW9zdCBjb250YWluZXIgZ3JvdXAgb2YgdGhlIDxDZW50ZXI+IGNvbXBvbmVudCAqL1xuICAgICAgICBjb250YWluZXI6IFRIUkVFLk9iamVjdDNEO1xuICAgICAgICB3aWR0aDogbnVtYmVyO1xuICAgICAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgZGVwdGg6IG51bWJlcjtcbiAgICAgICAgYm91bmRpbmdCb3g6IFRIUkVFLkJveDM7XG4gICAgICAgIGJvdW5kaW5nU3BoZXJlOiBUSFJFRS5TcGhlcmU7XG4gICAgICAgIGNlbnRlcjogVEhSRUUuVmVjdG9yMztcbiAgICAgICAgdmVydGljYWxBbGlnbm1lbnQ6IG51bWJlcjtcbiAgICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogbnVtYmVyO1xuICAgICAgICBkZXB0aEFsaWdubWVudDogbnVtYmVyO1xuICAgIH0pIHtcbiAgICAgICAgY29uc3QgeyBib3VuZGluZ1NwaGVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGggfSA9IHByb3BzO1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1czogYm91bmRpbmdTcGhlcmUucmFkaXVzLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCB9KTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy5jZW50ZXJlZC5vYnNlcnZlZCkgdGhpcy5jZW50ZXJlZC5lbWl0KHByb3BzKTtcbiAgICB9XG59XG4iXX0=
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3RhZ2Uvc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLEdBQUc7SUFDWixTQUFTLEVBQUU7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENB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SU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxZQUFZO3NCQUF4QixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW1iaWVudExpZ2h0LCBHcm91cCwgUG9pbnRMaWdodCwgU3BvdExpZ2h0LCBWZWN0b3IyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3MgfSBmcm9tICcuLi9hY2N1bXVsYXRpdmUtc2hhZG93cy9hY2N1bXVsYXRpdmUtc2hhZG93cyc7XG5pbXBvcnQgeyBOZ3RzUmFuZG9taXplZExpZ2h0cyB9IGZyb20gJy4uL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL3JhbmRvbWl6ZWQtbGlnaHRzJztcbmltcG9ydCB7IE5ndHNCb3VuZHMsIE5HVFNfQk9VTkRTX0FQSSB9IGZyb20gJy4uL2JvdW5kcy9ib3VuZHMnO1xuaW1wb3J0IHsgTmd0c0NlbnRlciB9IGZyb20gJy4uL2NlbnRlci9jZW50ZXInO1xuaW1wb3J0IHsgTmd0c0NvbnRhY3RTaGFkb3dzIH0gZnJvbSAnLi4vY29udGFjdC1zaGFkb3dzL2NvbnRhY3Qtc2hhZG93cyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzVHlwZSB9IGZyb20gJy4uL2Vudmlyb25tZW50L2Fzc2V0cyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRJbnB1dHMgfSBmcm9tICcuLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudC1pbnB1dHMnO1xuXG5jb25zdCBwcmVzZXRzID0ge1xuICAgIHJlbWJyYW5kdDoge1xuICAgICAgICBtYWluOiBbMSwgMiwgMV0sXG4gICAgICAgIGZpbGw6IFstMiwgLTAuNSwgLTJdLFxuICAgIH0sXG4gICAgcG9ydHJhaXQ6IHtcbiAgICAgICAgbWFpbjogWy0xLCAyLCAwLjVdLFxuICAgICAgICBmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG4gICAgfSxcbiAgICB1cGZyb250OiB7XG4gICAgICAgIG1haW46IFswLCAyLCAxXSxcbiAgICAgICAgZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuICAgIH0sXG4gICAgc29mdDoge1xuICAgICAgICBtYWluOiBbLTIsIDQsIDRdLFxuICAgICAgICBmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG4gICAgfSxcbn07XG5cbnR5cGUgTmd0c1N0YWdlU2hhZG93cyA9IFBhcnRpYWw8Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3M+ICZcbiAgICBQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzPiAmXG4gICAgUGFydGlhbDxOZ3RzQ29udGFjdFNoYWRvd3M+ICYge1xuICAgICAgICB0eXBlOiAnY29udGFjdCcgfCAnYWNjdW11bGF0aXZlJztcbiAgICAgICAgLyoqIFNoYWRvdyBwbGFuZSBvZmZzZXQsIGRlZmF1bHQ6IDAgKi9cbiAgICAgICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgICAgICAvKiogU2hhZG93IGJpYXMsIGRlZmF1bHQ6IC0wLjAwMDEgKi9cbiAgICAgICAgYmlhcz86IG51bWJlcjtcbiAgICAgICAgLyoqIFNoYWRvdyBub3JtYWwgYmlhcywgZGVmYXVsdDogMCAqL1xuICAgICAgICBub3JtYWxCaWFzPzogbnVtYmVyO1xuICAgICAgICAvKiogU2hhZG93IG1hcCBzaXplLCBkZWZhdWx0OiAxMDI0ICovXG4gICAgICAgIHNpemU/OiBudW1iZXI7XG4gICAgfTtcblxudHlwZSBOZ3RzU3RhZ2VQcm9wcyA9IHtcbiAgICAvKiogTGlnaHRpbmcgc2V0dXAsIGRlZmF1bHQ6IFwicmVtYnJhbmR0XCIgKi9cbiAgICBwcmVzZXQ/OlxuICAgICAgICB8ICdyZW1icmFuZHQnXG4gICAgICAgIHwgJ3BvcnRyYWl0J1xuICAgICAgICB8ICd1cGZyb250J1xuICAgICAgICB8ICdzb2Z0J1xuICAgICAgICB8IHsgbWFpbjogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdOyBmaWxsOiBbeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlcl0gfTtcbiAgICAvKiogQ29udHJvbHMgdGhlIGdyb3VuZCBzaGFkb3dzLCBkZWZhdWx0OiBcImNvbnRhY3RcIiAqL1xuICAgIHNoYWRvd3M/OiBib29sZWFuIHwgJ2NvbnRhY3QnIHwgJ2FjY3VtdWxhdGl2ZScgfCBOZ3RzU3RhZ2VTaGFkb3dzO1xuICAgIC8qKiBPcHRpb25hbGx5IHdyYXBzIGFuZCB0aGVyZWJ5IGNlbnRlcnMgdGhlIG1vZGVscyB1c2luZyA8Qm91bmRzPiwgY2FuIGFsc28gYmUgYSBtYXJnaW4sIGRlZmF1bHQ6IHRydWUgKi9cbiAgICBhZGp1c3RDYW1lcmE/OiBib29sZWFuIHwgbnVtYmVyO1xuICAgIC8qKiBUaGUgZGVmYXVsdCBlbnZpcm9ubWVudCwgZGVmYXVsdDogXCJjaXR5XCIgKi9cbiAgICBlbnZpcm9ubWVudD86IE5ndHNFbnZpcm9ubWVudFByZXNldHNUeXBlIHwgUGFydGlhbDxOZ3RzRW52aXJvbm1lbnRJbnB1dHM+O1xuICAgIC8qKiBUaGUgbGlnaHRpbmcgaW50ZW5zaXR5LCBkZWZhdWx0OiAwLjUgKi9cbiAgICBpbnRlbnNpdHk/OiBudW1iZXI7XG4gICAgLyoqIFRvIGFkanVzdCBjZW50ZXJpbmcsIGRlZmF1bHQ6IHVuZGVmaW5lZCAqL1xuICAgIGNlbnRlcj86IFBhcnRpYWw8Tmd0c0NlbnRlcj47XG59O1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZ3RzLXN0YWdlLXJlZml0Jywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFnZVJlZml0IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvdW5kc0FwaSA9IGluamVjdChOR1RTX0JPVU5EU19BUEkpO1xuXG4gICAgQElucHV0KCkgcmFkaXVzID0gMDtcbiAgICBASW5wdXQoKSBhZGp1c3RDYW1lcmEgPSB0cnVlO1xuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmFkanVzdENhbWVyYSkge1xuICAgICAgICAgICAgdGhpcy5ib3VuZHNBcGkucmVmcmVzaCgpLmNsaXAoKS5maXQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXh0ZW5kKHsgQW1iaWVudExpZ2h0LCBTcG90TGlnaHQsIFZlY3RvcjIsIFBvaW50TGlnaHQsIEdyb3VwIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc3RhZ2UnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1hbWJpZW50LWxpZ2h0IFtpbnRlbnNpdHldPVwiZ2V0KCdpbnRlbnNpdHknKSEgLyAzXCIgLz5cbiAgICAgICAgPG5ndC1zcG90LWxpZ2h0XG4gICAgICAgICAgICBbcGVudW1icmFdPVwiMVwiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwiZ2V0KCdzcG90TGlnaHRQb3NpdGlvbicpXCJcbiAgICAgICAgICAgIFtpbnRlbnNpdHldPVwiZ2V0KCdpbnRlbnNpdHknKSEgKiAyXCJcbiAgICAgICAgICAgIFtjYXN0U2hhZG93XT1cIiEhZ2V0KCdzaGFkb3dzJylcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ3NoYWRvd3NJbmZvJykuc2hhZG93Qmlhc1wiIGF0dGFjaD1cInNoYWRvdy5iaWFzXCIgLz5cbiAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdldCgnc2hhZG93c0luZm8nKS5ub3JtYWxCaWFzXCIgYXR0YWNoPVwic2hhZG93Lm5vcm1hbEJpYXNcIiAvPlxuICAgICAgICAgICAgPG5ndC12ZWN0b3IyXG4gICAgICAgICAgICAgICAgKmFyZ3M9XCJbZ2V0KCdzaGFkb3dzSW5mbycpLnNoYWRvd1NpemUsIGdldCgnc2hhZG93c0luZm8nKS5zaGFkb3dTaXplXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwic2hhZG93Lm1hcFNpemVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9uZ3Qtc3BvdC1saWdodD5cbiAgICAgICAgPG5ndC1wb2ludC1saWdodCBbcG9zaXRpb25dPVwiZ2V0KCdwb2ludExpZ2h0UG9zaXRpb24nKVwiIFtpbnRlbnNpdHldPVwiZ2V0KCdpbnRlbnNpdHknKVwiIC8+XG5cbiAgICAgICAgPG5ndHMtYm91bmRzXG4gICAgICAgICAgICBbZml0XT1cIiEhZ2V0KCdhZGp1c3RDYW1lcmEnKVwiXG4gICAgICAgICAgICBbY2xpcF09XCIhIWdldCgnYWRqdXN0Q2FtZXJhJylcIlxuICAgICAgICAgICAgW21hcmdpbl09XCJOdW1iZXIoZ2V0KCdhZGp1c3RDYW1lcmEnKSlcIlxuICAgICAgICAgICAgW29ic2VydmVdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZ3RzLXN0YWdlLXJlZml0IFtyYWRpdXNdPVwiZ2V0KCdyYWRpdXMnKVwiIFthZGp1c3RDYW1lcmFdPVwiISFnZXQoJ2FkanVzdENhbWVyYScpXCIgLz5cbiAgICAgICAgICAgIDxuZ3RzLWNlbnRlclxuICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCwgZ2V0KCdzaGFkb3dzSW5mbycpLnNoYWRvd09mZnNldCAvIDIsIDBdXCJcbiAgICAgICAgICAgICAgICBbdG9wXT1cIiEhZ2V0KCdjZW50ZXInKT8udG9wXCJcbiAgICAgICAgICAgICAgICBbcmlnaHRdPVwiISFnZXQoJ2NlbnRlcicpPy5yaWdodFwiXG4gICAgICAgICAgICAgICAgW2JvdHRvbV09XCIhIWdldCgnY2VudGVyJyk/LmJvdHRvbVwiXG4gICAgICAgICAgICAgICAgW2xlZnRdPVwiISFnZXQoJ2NlbnRlcicpPy5sZWZ0XCJcbiAgICAgICAgICAgICAgICBbZnJvbnRdPVwiISFnZXQoJ2NlbnRlcicpPy5mcm9udFwiXG4gICAgICAgICAgICAgICAgW2JhY2tdPVwiISFnZXQoJ2NlbnRlcicpPy5iYWNrXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZVhdPVwiISFnZXQoJ2NlbnRlcicpPy5kaXNhYmxlWFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVZXT1cIiEhZ2V0KCdjZW50ZXInKT8uZGlzYWJsZVlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlWl09XCIhIWdldCgnY2VudGVyJyk/LmRpc2FibGVaXCJcbiAgICAgICAgICAgICAgICBbcHJlY2lzZV09XCIhIWdldCgnY2VudGVyJyk/LnByZWNpc2VcIlxuICAgICAgICAgICAgICAgIChjZW50ZXJlZCk9XCJvbkNlbnRlcmVkKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25ndHMtY2VudGVyPlxuICAgICAgICA8L25ndHMtYm91bmRzPlxuICAgICAgICA8bmd0LWdyb3VwIFtwb3NpdGlvbl09XCJbMCwgLWdldCgnaGVpZ2h0JykgLyAyIC0gZ2V0KCdzaGFkb3dzSW5mbycpLnNoYWRvd09mZnNldCAvIDIsIDBdXCI+XG4gICAgICAgICAgICA8bmd0cy1jb250YWN0LXNoYWRvd3NcbiAgICAgICAgICAgICAgICAqbmdJZj1cImdldCgnc2hhZG93c0luZm8nKS5jb250YWN0U2hhZG93XCJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwiZ2V0KCdyYWRpdXMnKSAqIDRcIlxuICAgICAgICAgICAgICAgIFtmYXJdPVwiZ2V0KCdyYWRpdXMnKVwiXG4gICAgICAgICAgICAgICAgW2JsdXJdPVwiMlwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwiZ2V0KCdzaGFkb3dzSW5mbycpLm9wYWNpdHlcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJnZXQoJ3NoYWRvd3NJbmZvJykud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmhlaWdodFwiXG4gICAgICAgICAgICAgICAgW3Ntb290aF09XCJnZXQoJ3NoYWRvd3NJbmZvJykuc21vb3RoXCJcbiAgICAgICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ3NoYWRvd3NJbmZvJykucmVzb2x1dGlvblwiXG4gICAgICAgICAgICAgICAgW2ZyYW1lc109XCJnZXQoJ3NoYWRvd3NJbmZvJykuZnJhbWVzXCJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLnNjYWxlXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmNvbG9yXCJcbiAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJnZXQoJ3NoYWRvd3NJbmZvJykuZGVwdGhXcml0ZVwiXG4gICAgICAgICAgICAgICAgW3JlbmRlck9yZGVyXT1cImdldCgnc2hhZG93c0luZm8nKS5yZW5kZXJPcmRlclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5ndHMtYWNjdW11bGF0aXZlLXNoYWRvd3NcbiAgICAgICAgICAgICAgICAqbmdJZj1cImdldCgnc2hhZG93c0luZm8nKS5hY2N1bXVsYXRpdmVTaGFkb3dcIlxuICAgICAgICAgICAgICAgIFt0ZW1wb3JhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZnJhbWVzXT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgW2FscGhhVGVzdF09XCIwLjlcIlxuICAgICAgICAgICAgICAgIFt0b25lTWFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzY2FsZV09XCJnZXQoJ3JhZGl1cycpICogNFwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwiZ2V0KCdzaGFkb3dzSW5mbycpLm9wYWNpdHlcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRlc3RdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmFscGhhVGVzdFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnc2hhZG93c0luZm8nKS5jb2xvclwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQmxlbmRdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmNvbG9yQmxlbmRcIlxuICAgICAgICAgICAgICAgIFtyZXNvbHV0aW9uXT1cImdldCgnc2hhZG93c0luZm8nKS5yZXNvbHV0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmd0cy1yYW5kb21pemVkLWxpZ2h0c1xuICAgICAgICAgICAgICAgICAgICBbYW1vdW50XT1cImdldCgnc2hhZG93c0luZm8nKS5hbW91bnQgPz8gOFwiXG4gICAgICAgICAgICAgICAgICAgIFtyYWRpdXNdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLnJhZGl1cyA/PyBnZXQoJ3JhZGl1cycpXCJcbiAgICAgICAgICAgICAgICAgICAgW2FtYmllbnRdPVwiZ2V0KCdzaGFkb3dzSW5mbycpLmFtYmllbnQgPz8gMC41XCJcbiAgICAgICAgICAgICAgICAgICAgW2ludGVuc2l0eV09XCJnZXQoJ3NoYWRvd3NJbmZvJykuaW50ZW5zaXR5ID8/IDFcIlxuICAgICAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiZ2V0KCdzcG90TGlnaHRQb3NpdGlvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiZ2V0KCdyYWRpdXMnKSAqIDRcIlxuICAgICAgICAgICAgICAgICAgICBbYmlhc109XCItZ2V0KCdzaGFkb3dzSW5mbycpLnNoYWRvd0JpYXNcIlxuICAgICAgICAgICAgICAgICAgICBbbWFwU2l6ZV09XCJnZXQoJ3NoYWRvd3NJbmZvJykuc2hhZG93U2l6ZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cz5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgICAgIDxuZ3RzLWVudmlyb25tZW50XG4gICAgICAgICAgICAqbmdJZj1cImdldCgnZW52aXJvbm1lbnRJbmZvJylcIlxuICAgICAgICAgICAgW2ZyYW1lc109XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmZyYW1lc1wiXG4gICAgICAgICAgICBbbmVhcl09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLm5lYXJcIlxuICAgICAgICAgICAgW2Zhcl09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmZhclwiXG4gICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLnJlc29sdXRpb25cIlxuICAgICAgICAgICAgW2JhY2tncm91bmRdPVwiZ2V0KCdlbnZpcm9ubWVudEluZm8nKS5iYWNrZ3JvdW5kXCJcbiAgICAgICAgICAgIFtibHVyXT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykuYmx1clwiXG4gICAgICAgICAgICBbbWFwXT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykubWFwXCJcbiAgICAgICAgICAgIFtmaWxlc109XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmZpbGVzXCJcbiAgICAgICAgICAgIFtwYXRoXT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykucGF0aFwiXG4gICAgICAgICAgICBbcHJlc2V0XT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykucHJlc2V0XCJcbiAgICAgICAgICAgIFtzY2VuZV09XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLnNjZW5lXCJcbiAgICAgICAgICAgIFtleHRlbnNpb25zXT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykuZXh0ZW5zaW9uc1wiXG4gICAgICAgICAgICBbZ3JvdW5kXT1cImdldCgnZW52aXJvbm1lbnRJbmZvJykuZ3JvdW5kXCJcbiAgICAgICAgICAgIFtlbmNvZGluZ109XCJnZXQoJ2Vudmlyb25tZW50SW5mbycpLmVuY29kaW5nXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmd0QXJncyxcbiAgICAgICAgTmd0c0JvdW5kcyxcbiAgICAgICAgTmd0c1N0YWdlUmVmaXQsXG4gICAgICAgIE5ndHNDZW50ZXIsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5ndHNDb250YWN0U2hhZG93cyxcbiAgICAgICAgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3MsXG4gICAgICAgIE5ndHNSYW5kb21pemVkTGlnaHRzLFxuICAgICAgICBOZ3RzRW52aXJvbm1lbnQsXG4gICAgXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFnZSBleHRlbmRzIE5ndFJ4U3RvcmU8Tmd0c1N0YWdlUHJvcHM+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcmVhZG9ubHkgTnVtYmVyID0gTnVtYmVyO1xuXG4gICAgQElucHV0KCkgc2V0IHByZXNldChwcmVzZXQ6IE5ndHNTdGFnZVByb3BzWydwcmVzZXQnXSkge1xuICAgICAgICB0aGlzLnNldCh7IHByZXNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2hhZG93cyhzaGFkb3dzOiBOZ3RzU3RhZ2VQcm9wc1snc2hhZG93cyddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2hhZG93cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYWRqdXN0Q2FtZXJhKGFkanVzdENhbWVyYTogTmd0c1N0YWdlUHJvcHNbJ2FkanVzdENhbWVyYSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWRqdXN0Q2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBlbnZpcm9ubWVudChlbnZpcm9ubWVudDogTmd0c1N0YWdlUHJvcHNbJ2Vudmlyb25tZW50J10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbnZpcm9ubWVudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgaW50ZW5zaXR5KGludGVuc2l0eTogTmd0c1N0YWdlUHJvcHNbJ2ludGVuc2l0eSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW50ZW5zaXR5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjZW50ZXIoY2VudGVyOiBOZ3RzU3RhZ2VQcm9wc1snY2VudGVyJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjZW50ZXIgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNlbnRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcigpIGFzIE5ndHNDZW50ZXJbJ2NlbnRlcmVkJ107XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCkge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGFkanVzdENhbWVyYTogdHJ1ZSxcbiAgICAgICAgICAgIGludGVuc2l0eTogMC41LFxuICAgICAgICAgICAgc2hhZG93czogJ2NvbnRhY3QnLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6ICdjaXR5JyxcbiAgICAgICAgICAgIHByZXNldDogJ3JlbWJyYW5kdCcsXG5cbiAgICAgICAgICAgIHJhZGl1czogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdjb25maWcnLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3ByZXNldCcpLnBpcGUobWFwKChwcmVzZXQpID0+ICh0eXBlb2YgcHJlc2V0ID09PSAnc3RyaW5nJyA/IHByZXNldHNbcHJlc2V0XSA6IHByZXNldCkpKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdzaGFkb3dzSW5mbycsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdCgnc2hhZG93cycpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChzaGFkb3dzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWN0U2hhZG93OiBzaGFkb3dzID09PSAnY29udGFjdCcgfHwgKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/LnR5cGUgPT09ICdjb250YWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvdzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dzID09PSAnYWNjdW11bGF0aXZlJyB8fCAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8udHlwZSA9PT0gJ2FjY3VtdWxhdGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dCaWFzOiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8uYmlhcyA/PyAtMC4wMDAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsQmlhczogKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/Lm5vcm1hbEJpYXMgPz8gMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1NpemU6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy5zaXplID8/IDEwMjQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dPZmZzZXQ6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy5vZmZzZXQgPz8gMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLih0eXBlb2Ygc2hhZG93cyA9PT0gJ3N0cmluZycgPyB7fSA6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpIHx8IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdzcG90TGlnaHRQb3NpdGlvbicsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ2NvbmZpZycsICdyYWRpdXMnXSwgKHsgY29uZmlnLCByYWRpdXMgfSkgPT4gW1xuICAgICAgICAgICAgICAgIGNvbmZpZy5tYWluWzBdICogcmFkaXVzLFxuICAgICAgICAgICAgICAgIGNvbmZpZy5tYWluWzFdICogcmFkaXVzLFxuICAgICAgICAgICAgICAgIGNvbmZpZy5tYWluWzJdICogcmFkaXVzLFxuICAgICAgICAgICAgXSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAncG9pbnRMaWdodFBvc2l0aW9uJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KFsnY29uZmlnJywgJ3JhZGl1cyddLCAoeyBjb25maWcsIHJhZGl1cyB9KSA9PiBbXG4gICAgICAgICAgICAgICAgY29uZmlnLmZpbGxbMF0gKiByYWRpdXMsXG4gICAgICAgICAgICAgICAgY29uZmlnLmZpbGxbMV0gKiByYWRpdXMsXG4gICAgICAgICAgICAgICAgY29uZmlnLmZpbGxbMl0gKiByYWRpdXMsXG4gICAgICAgICAgICBdKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdlbnZpcm9ubWVudEluZm8nLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2Vudmlyb25tZW50JykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGVudmlyb25tZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZW52aXJvbm1lbnQpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGVudmlyb25tZW50ID09PSAnc3RyaW5nJykgcmV0dXJuIHsgcHJlc2V0OiBlbnZpcm9ubWVudCB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkNlbnRlcmVkKHByb3BzOiB7XG4gICAgICAgIC8qKiBUaGUgbmV4dCBwYXJlbnQgYWJvdmUgPENlbnRlcj4gKi9cbiAgICAgICAgcGFyZW50OiBUSFJFRS5PYmplY3QzRDtcbiAgICAgICAgLyoqIFRoZSBvdXRtb3N0IGNvbnRhaW5lciBncm91cCBvZiB0aGUgPENlbnRlcj4gY29tcG9uZW50ICovXG4gICAgICAgIGNvbnRhaW5lcjogVEhSRUUuT2JqZWN0M0Q7XG4gICAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgICAgIGhlaWdodDogbnVtYmVyO1xuICAgICAgICBkZXB0aDogbnVtYmVyO1xuICAgICAgICBib3VuZGluZ0JveDogVEhSRUUuQm94MztcbiAgICAgICAgYm91bmRpbmdTcGhlcmU6IFRIUkVFLlNwaGVyZTtcbiAgICAgICAgY2VudGVyOiBUSFJFRS5WZWN0b3IzO1xuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogbnVtYmVyO1xuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiBudW1iZXI7XG4gICAgICAgIGRlcHRoQWxpZ25tZW50OiBudW1iZXI7XG4gICAgfSkge1xuICAgICAgICBjb25zdCB7IGJvdW5kaW5nU3BoZXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCB9ID0gcHJvcHM7XG4gICAgICAgIHRoaXMuc2V0KHsgcmFkaXVzOiBib3VuZGluZ1NwaGVyZS5yYWRpdXMsIHdpZHRoLCBoZWlnaHQsIGRlcHRoIH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICh0aGlzLmNlbnRlcmVkLm9ic2VydmVkKSB0aGlzLmNlbnRlcmVkLmVtaXQocHJvcHMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
-
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRxStore } from 'angular-three';
|
|
2
|
+
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRef, NgtRxStore } from 'angular-three';
|
|
3
3
|
import { shaderMaterial } from 'angular-three-soba/shaders';
|
|
4
4
|
import { AdditiveBlending, BufferAttribute, BufferGeometry, Color, Points, Spherical, Vector3 } from 'three';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -106,7 +106,7 @@ export class NgtsStars extends NgtRxStore {
|
|
|
106
106
|
}
|
|
107
107
|
NgtsStars.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
108
108
|
NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", radius: "radius", depth: "depth", count: "count", factor: "factor", saturation: "saturation", fade: "fade", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
|
|
109
|
-
<ngt-points
|
|
109
|
+
<ngt-points *ref="starsRef">
|
|
110
110
|
<ngt-buffer-geometry>
|
|
111
111
|
<ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
|
|
112
112
|
<ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
|
|
@@ -123,14 +123,14 @@ NgtsStars.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
|
|
|
123
123
|
<ngt-value attach="uniforms.fade.value" [rawValue]="get('fade')" />
|
|
124
124
|
</ngt-primitive>
|
|
125
125
|
</ngt-points>
|
|
126
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
|
|
126
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRef, selector: "[ref]", inputs: ["ref"] }] });
|
|
127
127
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsStars, decorators: [{
|
|
128
128
|
type: Component,
|
|
129
129
|
args: [{
|
|
130
130
|
selector: 'ngts-stars',
|
|
131
131
|
standalone: true,
|
|
132
132
|
template: `
|
|
133
|
-
<ngt-points
|
|
133
|
+
<ngt-points *ref="starsRef">
|
|
134
134
|
<ngt-buffer-geometry>
|
|
135
135
|
<ngt-buffer-attribute attach="attributes.position" *args="[get('bufferAttributes').positions, 3]" />
|
|
136
136
|
<ngt-buffer-attribute attach="attributes.color" *args="[get('bufferAttributes').colors, 3]" />
|
|
@@ -148,7 +148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
148
148
|
</ngt-primitive>
|
|
149
149
|
</ngt-points>
|
|
150
150
|
`,
|
|
151
|
-
imports: [NgtArgs],
|
|
151
|
+
imports: [NgtArgs, NgtRef],
|
|
152
152
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
153
153
|
}]
|
|
154
154
|
}], ctorParameters: function () { return []; }, propDecorators: { starsRef: [{
|
|
@@ -168,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
168
168
|
}], speed: [{
|
|
169
169
|
type: Input
|
|
170
170
|
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFrQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFN0csTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQ3BDO0lBQ0ksSUFBSSxFQUFFLEdBQUc7SUFDVCxJQUFJLEVBQUUsR0FBRztDQUNaO0FBQ0QsZ0JBQWdCO0FBQ2hCOzs7Ozs7Ozs7O0dBVUQ7QUFDQyxnQkFBZ0I7QUFDaEI7Ozs7Ozs7Ozs7Ozs7OztHQWVELENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUVwRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO0lBQzFCLE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FDakMsSUFBSSxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDbEYsQ0FBQztBQUNOLENBQUMsQ0FBQztBQTJCRixNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFNckMsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsVUFBa0I7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLElBQWE7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNMLE1BQU0sRUFBRSxHQUFHO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVUsRUFBRSxDQUFDO1lBQ2IsTUFBTSxFQUFFLENBQUM7WUFDVCxJQUFJLEVBQUUsS0FBSztZQUNYLEtBQUssRUFBRSxDQUFDO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FDUixrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FDUCxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFDcEQsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFO1lBQzdDLE1BQU0sU0FBUyxHQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLE1BQU0sR0FBVSxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDeEYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUIsQ0FBQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQy9CLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsT0FBTztnQkFDSCxTQUFTLEVBQUUsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO2dCQUN0QyxNQUFNLEVBQUUsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO2dCQUNoQyxLQUFLLEVBQUUsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDO2FBQ2pDLENBQUM7UUFDTixDQUFDLENBQ0osQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF4RUgscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEMsYUFBUSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUVuQyxhQUFRLEdBQUcsWUFBWSxFQUFVLENBQUM7UUFzRXZDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBa0I7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RGLENBQUM7O3NHQS9FUSxTQUFTOzBGQUFULFNBQVMsMlBBdEJSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQsNERBQ1MsT0FBTzsyRkFHUixTQUFTO2tCQXpCckIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUtZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJlbmRlclN0YXRlLCBOZ3RSeFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBzaGFkZXJNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCB7IEFkZGl0aXZlQmxlbmRpbmcsIEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIENvbG9yLCBQb2ludHMsIFNwaGVyaWNhbCwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcblxuY29uc3QgU3RhckZpZWxkTWF0ZXJpYWwgPSBzaGFkZXJNYXRlcmlhbChcbiAgICB7XG4gICAgICAgIHRpbWU6IDAuMCxcbiAgICAgICAgZmFkZTogMC4wLFxuICAgIH0sXG4gICAgLy8gbGFuZ3VhZ2U9R0xTTFxuICAgIGBcbnVuaWZvcm0gZmxvYXQgdGltZTtcbmF0dHJpYnV0ZSBmbG9hdCBzaXplO1xudmFyeWluZyB2ZWMzIHZDb2xvcjtcbnZvaWQgbWFpbigpIHtcbiAgdkNvbG9yID0gY29sb3I7XG4gIHZlYzQgbXZQb3NpdGlvbiA9IG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDAuNSk7XG4gIGdsX1BvaW50U2l6ZSA9IHNpemUgKiAoMzAuMCAvIC1tdlBvc2l0aW9uLnopICogKDMuMCArIHNpbih0aW1lICsgMTAwLjApKTtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbXZQb3NpdGlvbjtcbn1cbiAgYCxcbiAgICAvLyBsYW5ndWFnZT1HTFNMXG4gICAgYFxudW5pZm9ybSBzYW1wbGVyMkQgcG9pbnRUZXh0dXJlO1xudW5pZm9ybSBmbG9hdCBmYWRlO1xudmFyeWluZyB2ZWMzIHZDb2xvcjtcbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgb3BhY2l0eSA9IDEuMDtcbiAgaWYgKGZhZGUgPT0gMS4wKSB7XG4gICAgZmxvYXQgZCA9IGRpc3RhbmNlKGdsX1BvaW50Q29vcmQsIHZlYzIoMC41LCAwLjUpKTtcbiAgICBvcGFjaXR5ID0gMS4wIC8gKDEuMCArIGV4cCgxNi4wICogKGQgLSAwLjI1KSkpO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQodkNvbG9yLCBvcGFjaXR5KTtcblxuICAjaW5jbHVkZSA8dG9uZW1hcHBpbmdfZnJhZ21lbnQ+XG4gICNpbmNsdWRlIDxlbmNvZGluZ3NfZnJhZ21lbnQ+XG59XG4gIGBcbik7XG5cbmV4dGVuZCh7IFBvaW50cywgQnVmZmVyR2VvbWV0cnksIEJ1ZmZlckF0dHJpYnV0ZSB9KTtcblxuY29uc3QgZ2VuU3RhciA9IChyOiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gbmV3IFZlY3RvcjMoKS5zZXRGcm9tU3BoZXJpY2FsKFxuICAgICAgICBuZXcgU3BoZXJpY2FsKHIsIE1hdGguYWNvcygxIC0gTWF0aC5yYW5kb20oKSAqIDIpLCBNYXRoLnJhbmRvbSgpICogMiAqIE1hdGguUEkpXG4gICAgKTtcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zdGFycycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBvaW50cyBbcmVmXT1cInN0YXJzUmVmXCI+XG4gICAgICAgICAgICA8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiICphcmdzPVwiW2dldCgnYnVmZmVyQXR0cmlidXRlcycpLnBvc2l0aW9ucywgM11cIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSBhdHRhY2g9XCJhdHRyaWJ1dGVzLmNvbG9yXCIgKmFyZ3M9XCJbZ2V0KCdidWZmZXJBdHRyaWJ1dGVzJykuY29sb3JzLCAzXVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlIGF0dGFjaD1cImF0dHJpYnV0ZXMuc2l6ZVwiICphcmdzPVwiW2dldCgnYnVmZmVyQXR0cmlidXRlcycpLnNpemVzLCAxXVwiIC8+XG4gICAgICAgICAgICA8L25ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgICAgICphcmdzPVwiW21hdGVyaWFsXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAgICAgICAgIFtibGVuZGluZ109XCJBZGRpdGl2ZUJsZW5kaW5nXCJcbiAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBhdHRhY2g9XCJ1bmlmb3Jtcy5mYWRlLnZhbHVlXCIgW3Jhd1ZhbHVlXT1cImdldCgnZmFkZScpXCIgLz5cbiAgICAgICAgICAgIDwvbmd0LXByaW1pdGl2ZT5cbiAgICAgICAgPC9uZ3QtcG9pbnRzPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1N0YXJzIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgcmVhZG9ubHkgQWRkaXRpdmVCbGVuZGluZyA9IEFkZGl0aXZlQmxlbmRpbmc7XG4gICAgcmVhZG9ubHkgbWF0ZXJpYWwgPSBuZXcgU3RhckZpZWxkTWF0ZXJpYWwoKTtcblxuICAgIEBJbnB1dCgpIHN0YXJzUmVmID0gaW5qZWN0Tmd0UmVmPFBvaW50cz4oKTtcblxuICAgIEBJbnB1dCgpIHNldCByYWRpdXMocmFkaXVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYWRpdXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRlcHRoKGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkZXB0aCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY291bnQoY291bnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGNvdW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmYWN0b3IoZmFjdG9yOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYWN0b3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNhdHVyYXRpb24oc2F0dXJhdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2F0dXJhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmFkZShmYWRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmFkZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNwZWVkIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgcmFkaXVzOiAxMDAsXG4gICAgICAgICAgICBkZXB0aDogNTAsXG4gICAgICAgICAgICBjb3VudDogNTAwMCxcbiAgICAgICAgICAgIHNhdHVyYXRpb246IDAsXG4gICAgICAgICAgICBmYWN0b3I6IDQsXG4gICAgICAgICAgICBmYWRlOiBmYWxzZSxcbiAgICAgICAgICAgIHNwZWVkOiAxLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2J1ZmZlckF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoXG4gICAgICAgICAgICAgICAgWydjb3VudCcsICdkZXB0aCcsICdmYWN0b3InLCAncmFkaXVzJywgJ3NhdHVyYXRpb24nXSxcbiAgICAgICAgICAgICAgICAoeyBjb3VudCwgZGVwdGgsIGZhY3RvciwgcmFkaXVzLCBzYXR1cmF0aW9uIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb25zOiBhbnlbXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvcnM6IGFueVtdID0gW107XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpemVzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogY291bnQgfSwgKCkgPT4gKDAuNSArIDAuNSAqIE1hdGgucmFuZG9tKCkpICogZmFjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSBuZXcgQ29sb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSByYWRpdXMgKyBkZXB0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5jcmVtZW50ID0gZGVwdGggLyBjb3VudDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByIC09IGluY3JlbWVudCAqIE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbnMucHVzaCguLi5nZW5TdGFyKHIpLnRvQXJyYXkoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5zZXRIU0woaSAvIGNvdW50LCBzYXR1cmF0aW9uLCAwLjkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzLnB1c2goY29sb3IuciwgY29sb3IuZywgY29sb3IuYik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uczogbmV3IEZsb2F0MzJBcnJheShwb3NpdGlvbnMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JzOiBuZXcgRmxvYXQzMkFycmF5KGNvbG9ycyksXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplczogbmV3IEZsb2F0MzJBcnJheShzaXplcyksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIodGhpcy5vbkJlZm9yZVJlbmRlci5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBvbkJlZm9yZVJlbmRlcih7IGNsb2NrIH06IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIHRoaXMubWF0ZXJpYWwudW5pZm9ybXNbJ3RpbWUnXS52YWx1ZSA9IGNsb2NrLmdldEVsYXBzZWRUaW1lKCkgKiB0aGlzLmdldCgnc3BlZWQnKTtcbiAgICB9XG59XG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBa0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBRTdHLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUNwQztJQUNJLElBQUksRUFBRSxHQUFHO0lBQ1QsSUFBSSxFQUFFLEdBQUc7Q0FDWjtBQUNELGdCQUFnQjtBQUNoQjs7Ozs7Ozs7OztHQVVEO0FBQ0MsZ0JBQWdCO0FBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRCxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFcEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRTtJQUMxQixPQUFPLElBQUksT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQ2pDLElBQUksU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJ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S0FBSztzQkFBakIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0UmVmLCBOZ3RSZW5kZXJTdGF0ZSwgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgc2hhZGVyTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBBZGRpdGl2ZUJsZW5kaW5nLCBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5LCBDb2xvciwgUG9pbnRzLCBTcGhlcmljYWwsIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IFN0YXJGaWVsZE1hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG4gICAge1xuICAgICAgICB0aW1lOiAwLjAsXG4gICAgICAgIGZhZGU6IDAuMCxcbiAgICB9LFxuICAgIC8vIGxhbmd1YWdlPUdMU0xcbiAgICBgXG51bmlmb3JtIGZsb2F0IHRpbWU7XG5hdHRyaWJ1dGUgZmxvYXQgc2l6ZTtcbnZhcnlpbmcgdmVjMyB2Q29sb3I7XG52b2lkIG1haW4oKSB7XG4gIHZDb2xvciA9IGNvbG9yO1xuICB2ZWM0IG12UG9zaXRpb24gPSBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAwLjUpO1xuICBnbF9Qb2ludFNpemUgPSBzaXplICogKDMwLjAgLyAtbXZQb3NpdGlvbi56KSAqICgzLjAgKyBzaW4odGltZSArIDEwMC4wKSk7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG12UG9zaXRpb247XG59XG4gIGAsXG4gICAgLy8gbGFuZ3VhZ2U9R0xTTFxuICAgIGBcbnVuaWZvcm0gc2FtcGxlcjJEIHBvaW50VGV4dHVyZTtcbnVuaWZvcm0gZmxvYXQgZmFkZTtcbnZhcnlpbmcgdmVjMyB2Q29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IG9wYWNpdHkgPSAxLjA7XG4gIGlmIChmYWRlID09IDEuMCkge1xuICAgIGZsb2F0IGQgPSBkaXN0YW5jZShnbF9Qb2ludENvb3JkLCB2ZWMyKDAuNSwgMC41KSk7XG4gICAgb3BhY2l0eSA9IDEuMCAvICgxLjAgKyBleHAoMTYuMCAqIChkIC0gMC4yNSkpKTtcbiAgfVxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHZDb2xvciwgb3BhY2l0eSk7XG5cbiAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuICAjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufVxuICBgXG4pO1xuXG5leHRlbmQoeyBQb2ludHMsIEJ1ZmZlckdlb21ldHJ5LCBCdWZmZXJBdHRyaWJ1dGUgfSk7XG5cbmNvbnN0IGdlblN0YXIgPSAocjogbnVtYmVyKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBWZWN0b3IzKCkuc2V0RnJvbVNwaGVyaWNhbChcbiAgICAgICAgbmV3IFNwaGVyaWNhbChyLCBNYXRoLmFjb3MoMSAtIE1hdGgucmFuZG9tKCkgKiAyKSwgTWF0aC5yYW5kb20oKSAqIDIgKiBNYXRoLlBJKVxuICAgICk7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc3RhcnMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wb2ludHMgKnJlZj1cInN0YXJzUmVmXCI+XG4gICAgICAgICAgICA8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiICphcmdzPVwiW2dldCgnYnVmZmVyQXR0cmlidXRlcycpLnBvc2l0aW9ucywgM11cIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSBhdHRhY2g9XCJhdHRyaWJ1dGVzLmNvbG9yXCIgKmFyZ3M9XCJbZ2V0KCdidWZmZXJBdHRyaWJ1dGVzJykuY29sb3JzLCAzXVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1idWZmZXItYXR0cmlidXRlIGF0dGFjaD1cImF0dHJpYnV0ZXMuc2l6ZVwiICphcmdzPVwiW2dldCgnYnVmZmVyQXR0cmlidXRlcycpLnNpemVzLCAxXVwiIC8+XG4gICAgICAgICAgICA8L25ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgICAgICphcmdzPVwiW21hdGVyaWFsXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAgICAgICAgIFtibGVuZGluZ109XCJBZGRpdGl2ZUJsZW5kaW5nXCJcbiAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBhdHRhY2g9XCJ1bmlmb3Jtcy5mYWRlLnZhbHVlXCIgW3Jhd1ZhbHVlXT1cImdldCgnZmFkZScpXCIgLz5cbiAgICAgICAgICAgIDwvbmd0LXByaW1pdGl2ZT5cbiAgICAgICAgPC9uZ3QtcG9pbnRzPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3MsIE5ndFJlZl0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhcnMgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICByZWFkb25seSBBZGRpdGl2ZUJsZW5kaW5nID0gQWRkaXRpdmVCbGVuZGluZztcbiAgICByZWFkb25seSBtYXRlcmlhbCA9IG5ldyBTdGFyRmllbGRNYXRlcmlhbCgpO1xuXG4gICAgQElucHV0KCkgc3RhcnNSZWYgPSBpbmplY3ROZ3RSZWY8UG9pbnRzPigpO1xuXG4gICAgQElucHV0KCkgc2V0IHJhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZGVwdGgoZGVwdGg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRlcHRoIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY291bnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGZhY3RvcihmYWN0b3I6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZhY3RvciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2F0dXJhdGlvbihzYXR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzYXR1cmF0aW9uIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmYWRlKGZhZGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYWRlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzcGVlZChzcGVlZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc3BlZWQgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICByYWRpdXM6IDEwMCxcbiAgICAgICAgICAgIGRlcHRoOiA1MCxcbiAgICAgICAgICAgIGNvdW50OiA1MDAwLFxuICAgICAgICAgICAgc2F0dXJhdGlvbjogMCxcbiAgICAgICAgICAgIGZhY3RvcjogNCxcbiAgICAgICAgICAgIGZhZGU6IGZhbHNlLFxuICAgICAgICAgICAgc3BlZWQ6IDEsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnYnVmZmVyQXR0cmlidXRlcycsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChcbiAgICAgICAgICAgICAgICBbJ2NvdW50JywgJ2RlcHRoJywgJ2ZhY3RvcicsICdyYWRpdXMnLCAnc2F0dXJhdGlvbiddLFxuICAgICAgICAgICAgICAgICh7IGNvdW50LCBkZXB0aCwgZmFjdG9yLCByYWRpdXMsIHNhdHVyYXRpb24gfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbnM6IGFueVtdID0gW107XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yczogYW55W10gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l6ZXMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoKSA9PiAoMC41ICsgMC41ICogTWF0aC5yYW5kb20oKSkgKiBmYWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBDb2xvcigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgciA9IHJhZGl1cyArIGRlcHRoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmNyZW1lbnQgPSBkZXB0aCAvIGNvdW50O1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgLT0gaW5jcmVtZW50ICogTWF0aC5yYW5kb20oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9ucy5wdXNoKC4uLmdlblN0YXIocikudG9BcnJheSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yLnNldEhTTChpIC8gY291bnQsIHNhdHVyYXRpb24sIDAuOSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcnMucHVzaChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25zOiBuZXcgRmxvYXQzMkFycmF5KHBvc2l0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcnM6IG5ldyBGbG9hdDMyQXJyYXkoY29sb3JzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemVzOiBuZXcgRmxvYXQzMkFycmF5KHNpemVzKSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcih0aGlzLm9uQmVmb3JlUmVuZGVyLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIG9uQmVmb3JlUmVuZGVyKHsgY2xvY2sgfTogTmd0UmVuZGVyU3RhdGUpIHtcbiAgICAgICAgdGhpcy5tYXRlcmlhbC51bmlmb3Jtc1sndGltZSddLnZhbHVlID0gY2xvY2suZ2V0RWxhcHNlZFRpbWUoKSAqIHRoaXMuZ2V0KCdzcGVlZCcpO1xuICAgIH1cbn1cbiJdfQ==
|