angular-three-soba 1.6.0 → 1.7.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/esm2020/abstractions/lib/billboard/billboard.mjs +8 -9
- package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +3 -3
- package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +3 -3
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +12 -12
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +3 -3
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +6 -6
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +3 -3
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +3 -3
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +6 -6
- package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +3 -3
- package/esm2020/abstractions/lib/line/line-input.mjs +3 -3
- package/esm2020/abstractions/lib/line/line.mjs +53 -57
- package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +3 -3
- package/esm2020/abstractions/lib/text/text.mjs +13 -11
- package/esm2020/abstractions/lib/text-3d/text-3d.mjs +3 -3
- package/esm2020/cameras/lib/camera/camera-content.mjs +3 -3
- package/esm2020/cameras/lib/camera/camera.mjs +3 -3
- package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +9 -9
- package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +9 -9
- package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +3 -3
- package/esm2020/loaders/lib/loader/loader.mjs +3 -3
- package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +3 -3
- package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +3 -3
- package/esm2020/performance/lib/adaptive/adaptive-events.mjs +3 -3
- package/esm2020/performance/lib/detailed/detailed.mjs +8 -9
- package/esm2020/performance/lib/stats/stats.mjs +3 -3
- package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +14 -14
- package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +12 -12
- package/esm2020/staging/lib/bounds/bounds.mjs +8 -9
- package/esm2020/staging/lib/camera-shake/camera-shake.mjs +3 -3
- package/esm2020/staging/lib/center/center.mjs +12 -13
- package/esm2020/staging/lib/cloud/cloud.mjs +9 -9
- package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +11 -15
- package/esm2020/staging/lib/environment/environment-cube.mjs +3 -3
- package/esm2020/staging/lib/environment/environment-ground.mjs +3 -3
- package/esm2020/staging/lib/environment/environment-inputs.mjs +3 -3
- package/esm2020/staging/lib/environment/environment-map.mjs +3 -3
- package/esm2020/staging/lib/environment/environment-portal.mjs +9 -13
- package/esm2020/staging/lib/environment/environment.mjs +6 -6
- package/esm2020/staging/lib/float/float.mjs +8 -9
- package/esm2020/staging/lib/sky/sky.mjs +21 -25
- package/esm2020/staging/lib/sparkles/sparkles.mjs +11 -11
- package/esm2020/staging/lib/stage/stage.mjs +6 -6
- package/esm2020/staging/lib/stars/stars.mjs +9 -9
- package/fesm2015/angular-three-soba-abstractions.mjs +118 -121
- package/fesm2015/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2015/angular-three-soba-cameras.mjs +21 -21
- package/fesm2015/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2015/angular-three-soba-controls.mjs +3 -3
- package/fesm2015/angular-three-soba-loaders.mjs +3 -3
- package/fesm2015/angular-three-soba-misc.mjs +3 -3
- package/fesm2015/angular-three-soba-performance.mjs +16 -17
- package/fesm2015/angular-three-soba-performance.mjs.map +1 -1
- package/fesm2015/angular-three-soba-staging.mjs +130 -145
- package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2020/angular-three-soba-abstractions.mjs +118 -121
- package/fesm2020/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2020/angular-three-soba-cameras.mjs +21 -21
- package/fesm2020/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2020/angular-three-soba-controls.mjs +3 -3
- package/fesm2020/angular-three-soba-loaders.mjs +3 -3
- package/fesm2020/angular-three-soba-misc.mjs +3 -3
- package/fesm2020/angular-three-soba-performance.mjs +16 -17
- package/fesm2020/angular-three-soba-performance.mjs.map +1 -1
- package/fesm2020/angular-three-soba-staging.mjs +130 -145
- package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
- package/package.json +1 -1
- package/plugin/package.json +1 -1
- package/staging/lib/stage/stage.d.ts +1 -1
|
@@ -23,9 +23,9 @@ export class NgtsAdaptiveEvents extends NgtRxStore {
|
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
NgtsAdaptiveEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
27
|
-
NgtsAdaptiveEvents.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
26
|
+
NgtsAdaptiveEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsAdaptiveEvents, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
27
|
+
NgtsAdaptiveEvents.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", providers: [RxActionFactory], usesInheritance: true, ngImport: i0 });
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: 'ngts-adaptive-events',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
-
import { extend, injectNgtRef,
|
|
2
|
+
import { extend, injectNgtRef, NgtRxStore } from 'angular-three';
|
|
3
3
|
import { combineLatest } from 'rxjs';
|
|
4
4
|
import { LOD } from 'three';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -24,23 +24,22 @@ export class NgtsDetailed extends NgtRxStore {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
NgtsDetailed.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
28
|
-
NgtsDetailed.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.
|
|
29
|
-
<ngt-lOD
|
|
27
|
+
NgtsDetailed.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsDetailed, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
28
|
+
NgtsDetailed.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed[distances]", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
|
|
29
|
+
<ngt-lOD [ref]="lodRef" ngtCompound (beforeRender)="$any($event).object.update($any($event).state.camera)">
|
|
30
30
|
<ng-content />
|
|
31
31
|
</ngt-lOD>
|
|
32
|
-
`, isInline: true
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
32
|
+
`, isInline: true });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsDetailed, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{
|
|
36
36
|
selector: 'ngts-detailed[distances]',
|
|
37
37
|
standalone: true,
|
|
38
38
|
template: `
|
|
39
|
-
<ngt-lOD
|
|
39
|
+
<ngt-lOD [ref]="lodRef" ngtCompound (beforeRender)="$any($event).object.update($any($event).state.camera)">
|
|
40
40
|
<ng-content />
|
|
41
41
|
</ngt-lOD>
|
|
42
42
|
`,
|
|
43
|
-
imports: [NgtRef],
|
|
44
43
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
45
44
|
}]
|
|
46
45
|
}], propDecorators: { lodRef: [{
|
|
@@ -48,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
48
47
|
}], distances: [{
|
|
49
48
|
type: Input
|
|
50
49
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9wZXJmb3JtYW5jZS9zcmMvbGliL2RldGFpbGVkL2RldGFpbGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBRTVCLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFZaEIsTUFBTSxPQUFPLFlBQWEsU0FBUSxVQUFVO0lBVjVDOztRQVdhLFdBQU0sR0FBRyxZQUFZLEVBQU8sQ0FBQztLQWtCekM7SUFoQkcsSUFBYSxTQUFTLENBQUMsU0FBbUI7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDcEcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDNUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNoRSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7eUdBbEJRLFlBQVk7NkZBQVosWUFBWSxpS0FQWDs7OztLQUlUOzJGQUdRLFlBQVk7a0JBVnhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFFWSxNQUFNO3NCQUFkLEtBQUs7Z0JBRU8sU0FBUztzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3ROZ3RSZWYsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExPRCB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgTE9EIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZGV0YWlsZWRbZGlzdGFuY2VzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWxPRCBbcmVmXT1cImxvZFJlZlwiIG5ndENvbXBvdW5kIChiZWZvcmVSZW5kZXIpPVwiJGFueSgkZXZlbnQpLm9iamVjdC51cGRhdGUoJGFueSgkZXZlbnQpLnN0YXRlLmNhbWVyYSlcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LWxPRD5cbiAgICBgLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0RldGFpbGVkIGV4dGVuZHMgTmd0UnhTdG9yZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbG9kUmVmID0gaW5qZWN0Tmd0UmVmPExPRD4oKTtcblxuICAgIEBJbnB1dCgpIHNldCBkaXN0YW5jZXMoZGlzdGFuY2VzOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLnNldCh7IGRpc3RhbmNlcyB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVMb2RDaGlsZHJlbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTG9kQ2hpbGRyZW4oKSB7XG4gICAgICAgIHRoaXMuaG9sZChjb21iaW5lTGF0ZXN0KFt0aGlzLmxvZFJlZi5jaGlsZHJlbiQoKSwgdGhpcy5zZWxlY3QoJ2Rpc3RhbmNlcycpXSksIChbY2hpbGRyZW4sIGRpc3RhbmNlc10pID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9kUmVmLm5hdGl2ZUVsZW1lbnQubGV2ZWxzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZFJlZi5uYXRpdmVFbGVtZW50LmFkZExldmVsKGNoaWxkLCBkaXN0YW5jZXNbaW5kZXhdKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -59,9 +59,9 @@ export class NgtsStats extends NgtRxStore {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
NgtsStats.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
63
|
-
NgtsStats.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
62
|
+
NgtsStats.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsStats, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
63
|
+
NgtsStats.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: NgtsStats, isStandalone: true, selector: "ngts-stats", inputs: { showPanel: "showPanel", parent: "parent", classes: "classes", right: "right" }, usesInheritance: true, ngImport: i0 });
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsStats, decorators: [{
|
|
65
65
|
type: Directive,
|
|
66
66
|
args: [{
|
|
67
67
|
selector: 'ngts-stats',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, CUSTOM_ELEMENTS_SCHEMA, Directive, inject, InjectionToken, Input } from '@angular/core';
|
|
2
|
-
import { extend, getLocalState, injectNgtRef,
|
|
2
|
+
import { extend, getLocalState, injectNgtRef, NgtRxStore, NgtStore } from 'angular-three';
|
|
3
3
|
import { shaderMaterial } from 'angular-three-soba/shaders';
|
|
4
4
|
import { combineLatest, Subject } from 'rxjs';
|
|
5
5
|
import * as THREE from 'three';
|
|
@@ -116,9 +116,9 @@ export class AccumulativeShadowsConsumer {
|
|
|
116
116
|
inject(NGTS_ACCUMULATIVE_SHADOWS_API);
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
AccumulativeShadowsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
120
|
-
AccumulativeShadowsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.
|
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
119
|
+
AccumulativeShadowsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AccumulativeShadowsConsumer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
120
|
+
AccumulativeShadowsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: AccumulativeShadowsConsumer, isStandalone: true, selector: "ngts-accumulative-shadows-consumer", ngImport: i0 });
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AccumulativeShadowsConsumer, decorators: [{
|
|
122
122
|
type: Directive,
|
|
123
123
|
args: [{ selector: 'ngts-accumulative-shadows-consumer', standalone: true }]
|
|
124
124
|
}], ctorParameters: function () { return []; } });
|
|
@@ -192,8 +192,8 @@ export class NgtsAccumulativeShadows extends NgtRxStore {
|
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
NgtsAccumulativeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
196
|
-
NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.
|
|
195
|
+
NgtsAccumulativeShadows.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsAccumulativeShadows, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
196
|
+
NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: NgtsAccumulativeShadows, isStandalone: true, selector: "ngts-accumulative-shadows", inputs: { frames: "frames", blend: "blend", limit: "limit", scale: "scale", temporal: "temporal", opacity: "opacity", alphaTest: "alphaTest", color: "color", colorBlend: "colorBlend", resolution: "resolution", toneMapped: "toneMapped" }, providers: [
|
|
197
197
|
{
|
|
198
198
|
provide: NGTS_ACCUMULATIVE_SHADOWS_API,
|
|
199
199
|
useFactory: accumulativeShadowsApiFactory,
|
|
@@ -201,11 +201,11 @@ NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
201
201
|
},
|
|
202
202
|
], usesInheritance: true, ngImport: i0, template: `
|
|
203
203
|
<ngt-group ngtCompound>
|
|
204
|
-
<ngt-group
|
|
204
|
+
<ngt-group [ref]="accumulativeShadowsRef" [traverse]="nullTraverse">
|
|
205
205
|
<ng-content />
|
|
206
206
|
<ngts-accumulative-shadows-consumer />
|
|
207
207
|
</ngt-group>
|
|
208
|
-
<ngt-mesh
|
|
208
|
+
<ngt-mesh [ref]="meshRef" [receiveShadow]="true" [scale]="get('scale')" [rotation]="[-Math.PI / 2, 0, 0]">
|
|
209
209
|
<ngt-plane-geometry />
|
|
210
210
|
<ngt-soft-shadow-material
|
|
211
211
|
[transparent]="true"
|
|
@@ -217,19 +217,19 @@ NgtsAccumulativeShadows.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
217
217
|
/>
|
|
218
218
|
</ngt-mesh>
|
|
219
219
|
</ngt-group>
|
|
220
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: AccumulativeShadowsConsumer, selector: "ngts-accumulative-shadows-consumer" }
|
|
221
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
220
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: AccumulativeShadowsConsumer, selector: "ngts-accumulative-shadows-consumer" }] });
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsAccumulativeShadows, decorators: [{
|
|
222
222
|
type: Component,
|
|
223
223
|
args: [{
|
|
224
224
|
selector: 'ngts-accumulative-shadows',
|
|
225
225
|
standalone: true,
|
|
226
226
|
template: `
|
|
227
227
|
<ngt-group ngtCompound>
|
|
228
|
-
<ngt-group
|
|
228
|
+
<ngt-group [ref]="accumulativeShadowsRef" [traverse]="nullTraverse">
|
|
229
229
|
<ng-content />
|
|
230
230
|
<ngts-accumulative-shadows-consumer />
|
|
231
231
|
</ngt-group>
|
|
232
|
-
<ngt-mesh
|
|
232
|
+
<ngt-mesh [ref]="meshRef" [receiveShadow]="true" [scale]="get('scale')" [rotation]="[-Math.PI / 2, 0, 0]">
|
|
233
233
|
<ngt-plane-geometry />
|
|
234
234
|
<ngt-soft-shadow-material
|
|
235
235
|
[transparent]="true"
|
|
@@ -242,7 +242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
242
242
|
</ngt-mesh>
|
|
243
243
|
</ngt-group>
|
|
244
244
|
`,
|
|
245
|
-
imports: [AccumulativeShadowsConsumer
|
|
245
|
+
imports: [AccumulativeShadowsConsumer],
|
|
246
246
|
providers: [
|
|
247
247
|
{
|
|
248
248
|
provide: NGTS_ACCUMULATIVE_SHADOWS_API,
|
|
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
275
275
|
}], toneMapped: [{
|
|
276
276
|
type: Input
|
|
277
277
|
}] } });
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0aXZlLXNoYWRvd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MvYWNjdW11bGF0aXZlLXNoYWRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlELE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUNyQztJQUNJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7SUFDeEIsS0FBSyxFQUFFLEdBQUc7SUFDVixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxDQUFDO0lBQ1YsR0FBRyxFQUFFLElBQUk7Q0FDWjtBQUNELGdCQUFnQjtBQUNoQjs7Ozs7O0dBTUQ7QUFDQyxnQkFBZ0I7QUFDaEI7Ozs7Ozs7Ozs7Ozs7R0FhRCxDQUNGLENBQUM7QUFTRixNQUFNLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUs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QkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO29CQUM5QyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsVUFBVSxFQUFFLDZCQUE2Qjs0QkFDekMsSUFBSSxFQUFFLHlCQUF5Qjt5QkFDbEM7cUJBQ0o7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQWFnQixNQUFNO3NCQUFsQixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS08sT0FBTztzQkFBbkIsS0FBSztnQkFLTyxTQUFTO3NCQUFyQixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS08sVUFBVTtzQkFBdEIsS0FBSztnQkFLTyxVQUFVO3NCQUF0QixLQUFLO2dCQUtPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgZ2V0TG9jYWxTdGF0ZSwgaW5qZWN0Tmd0UmVmLCBOZ3RSZWYsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBzaGFkZXJNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwLCBNZXNoLCBQbGFuZUdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NpdmVMaWdodE1hcCB9IGZyb20gJy4vcHJvZ3Jlc3NpdmUtbGlnaHQtbWFwJztcblxuY29uc3QgU29mdFNoYWRvd01hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG4gICAge1xuICAgICAgICBjb2xvcjogbmV3IFRIUkVFLkNvbG9yKCksXG4gICAgICAgIGJsZW5kOiAyLjAsXG4gICAgICAgIGFscGhhVGVzdDogMC43NSxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgbWFwOiBudWxsLFxuICAgIH0sXG4gICAgLy8gbGFuZ3VhZ2U9R0xTTFxuICAgIGBcbnZhcnlpbmcgdmVjMiB2VXY7XG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZpZXdNYXRyaXggKiBtb2RlbE1hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcbiAgdlV2ID0gdXY7XG59XG4gIGAsXG4gICAgLy8gbGFuZ3VhZ2U9R0xTTFxuICAgIGBcbnZhcnlpbmcgdmVjMiB2VXY7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG51bmlmb3JtIHZlYzMgY29sb3I7XG51bmlmb3JtIGZsb2F0IGJsZW5kO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBmbG9hdCBhbHBoYVRlc3Q7XG52b2lkIG1haW4oKSB7XG4gIHZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IgKiBzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKiBibGVuZCwgbWF4KDAuMCwgKDEuMCAtIChzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmcgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmIpIC8gYWxwaGFUZXN0KSkgKiBvcGFjaXR5KTtcbiAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuICAjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufVxuICBgXG4pO1xuXG50eXBlIFNvZnRTaGFkb3dNYXRlcmlhbElucHV0cyA9IHtcbiAgICBtYXA6IFRIUkVFLlRleHR1cmU7XG4gICAgY29sb3I/OiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uO1xuICAgIGFscGhhVGVzdD86IG51bWJlcjtcbiAgICBibGVuZD86IG51bWJlcjtcbn07XG5cbmV4dGVuZCh7IFNvZnRTaGFkb3dNYXRlcmlhbCwgR3JvdXAsIE1lc2gsIFBsYW5lR2VvbWV0cnkgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzTGlnaHRBcGkgPSB7IHVwZGF0ZTogKCkgPT4gdm9pZCB9O1xuXG5leHBvcnQgdHlwZSBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c0FwaSA9IHtcbiAgICBsaWdodHM6IE1hcDxzdHJpbmcsIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzTGlnaHRBcGk+O1xuICAgIHRlbXBvcmFsOiBib29sZWFuO1xuICAgIGZyYW1lczogbnVtYmVyO1xuICAgIGJsZW5kOiBudW1iZXI7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBnZXRNZXNoOiAoKSA9PiBUSFJFRS5NZXNoPFRIUkVFLlBsYW5lR2VvbWV0cnksIFNvZnRTaGFkb3dNYXRlcmlhbElucHV0cyAmIFRIUkVFLlNoYWRlck1hdGVyaWFsPjtcbiAgICByZXNldDogKCkgPT4gdm9pZDtcbiAgICB1cGRhdGU6IChmcmFtZXM/OiBudW1iZXIpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTkdUU19BQ0NVTVVMQVRJVkVfU0hBRE9XU19BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NBcGk+KFxuICAgICdOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyBBUEknXG4pO1xuXG5mdW5jdGlvbiBhY2N1bXVsYXRpdmVTaGFkb3dzQXBpRmFjdG9yeShhY2N1bXVsYXRpdmVTaGFkb3dzOiBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cykge1xuICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIGNvbnN0IGFwaSA9IHtcbiAgICAgICAgbGlnaHRzOiBuZXcgTWFwKCksXG4gICAgICAgIGNvdW50OiAwLFxuICAgICAgICBnZXRNZXNoOiAoKSA9PlxuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5tZXNoUmVmLm5hdGl2ZUVsZW1lbnQgYXMgVEhSRUUuTWVzaDxcbiAgICAgICAgICAgICAgICBUSFJFRS5QbGFuZUdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIFNvZnRTaGFkb3dNYXRlcmlhbElucHV0cyAmIFRIUkVFLlNoYWRlck1hdGVyaWFsXG4gICAgICAgICAgICA+LFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5wTE0uY2xlYXIoKTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gYXBpLmdldE1lc2goKS5tYXRlcmlhbDtcbiAgICAgICAgICAgIG1hdGVyaWFsLm9wYWNpdHkgPSAwO1xuICAgICAgICAgICAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMDtcbiAgICAgICAgICAgIGFwaS5jb3VudCA9IDA7XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZTogKGZyYW1lcyA9IDEpID0+IHtcbiAgICAgICAgICAgIC8vIGFkYXB0IHRoZSBvcGFjaXR5IGJsZW5kIHJhdGlvIHRvIHRoZSBudW1iZXIgb2YgZnJhbWVzXG4gICAgICAgICAgICBjb25zdCBtYXRlcmlhbCA9IGFwaS5nZXRNZXNoKCkubWF0ZXJpYWw7XG4gICAgICAgICAgICBpZiAoIWFwaS50ZW1wb3JhbCkge1xuICAgICAgICAgICAgICAgIG1hdGVyaWFsLm9wYWNpdHkgPSBhY2N1bXVsYXRpdmVTaGFkb3dzLmdldCgnb3BhY2l0eScpO1xuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmFscGhhVGVzdCA9IGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdhbHBoYVRlc3QnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwub3BhY2l0eSA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3dzLmdldCgnb3BhY2l0eScpLFxuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbC5vcGFjaXR5ICsgYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ29wYWNpdHknKSAvIGFwaS5ibGVuZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdhbHBoYVRlc3QnKSxcbiAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWwuYWxwaGFUZXN0ICsgYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2FscGhhVGVzdCcpIC8gYXBpLmJsZW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gc3dpdGNoIGFjY3VtdWxhdGl2ZSBsaWdodHMgb25cbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuYWNjdW11bGF0aXZlU2hhZG93c1JlZi5uYXRpdmVFbGVtZW50LnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgLy8gY29sbGVjdCBzY2VuZSBsaWdodHMgYW5kIG1lc2hlc1xuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5wTE0ucHJlcGFyZSgpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGxpZ2h0bWFwIGFuZCB0aGUgYWNjdW11bGF0aXZlIGxpZ2h0c1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmFtZXM7IGkrKykge1xuICAgICAgICAgICAgICAgIGFwaS5saWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0LnVwZGF0ZSgpKTtcbiAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3dzLnBMTS51cGRhdGUoc3RvcmUuZ2V0KCdjYW1lcmEnKSwgYXBpLmJsZW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gc3dpdGNoIGxpZ2h0cyBvZmZcbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuYWNjdW11bGF0aXZlU2hhZG93c1JlZi5uYXRpdmVFbGVtZW50LnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIHJlc3RvcmUgbGlnaHRzIGFuZCBtZXNoZXNcbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MucExNLmZpbmlzaCgpO1xuICAgICAgICB9LFxuICAgIH0gYXMgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NBcGk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhhcGksIHtcbiAgICAgICAgdGVtcG9yYWw6IHtcbiAgICAgICAgICAgIGdldDogKCkgPT4gISFhY2N1bXVsYXRpdmVTaGFkb3dzLmdldCgndGVtcG9yYWwnKSxcbiAgICAgICAgfSxcbiAgICAgICAgZnJhbWVzOiB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IE1hdGgubWF4KDIsIGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdmcmFtZXMnKSksXG4gICAgICAgIH0sXG4gICAgICAgIGJsZW5kOiB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdmcmFtZXMnKSA9PT0gSW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2JsZW5kJylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2ZyYW1lcycpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgYWNjdW11bGF0aXZlU2hhZG93cy5ob2xkKGFjY3VtdWxhdGl2ZVNoYWRvd3MubWVzaFJlZi4kLCAobWVzaCkgPT4ge1xuICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3dzLnBMTS5jb25maWd1cmUobWVzaCk7XG5cbiAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5ob2xkKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbYWNjdW11bGF0aXZlU2hhZG93cy5zZWxlY3QoKSwgZ2V0TG9jYWxTdGF0ZShzdG9yZS5nZXQoJ3NjZW5lJykpLm9iamVjdHNdKSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyByZXNldCBpbnRlcm5hbHMsIGJ1ZmZlcnMsIC4uLlxuICAgICAgICAgICAgICAgIGFwaS5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBsaWdodG1hcFxuICAgICAgICAgICAgICAgIGlmICghYXBpLnRlbXBvcmFsICYmIGFwaS5mcmFtZXMgIT09IEluZmluaXR5KSBhcGkudXBkYXRlKGFwaS5ibGVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5lZmZlY3Qoc3ViamVjdCwgKCkgPT5cbiAgICAgICAgICAgIHN0b3JlLmdldCgnaW50ZXJuYWwnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbWl0ID0gYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2xpbWl0Jyk7XG4gICAgICAgICAgICAgICAgaWYgKChhcGkudGVtcG9yYWwgfHwgYXBpLmZyYW1lcyA9PT0gSW5maW5pdHkpICYmIGFwaS5jb3VudCA8IGFwaS5mcmFtZXMgJiYgYXBpLmNvdW50IDwgbGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBpLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBhcGkuY291bnQrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBzdWJqZWN0Lm5leHQoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBhcGk7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25ndHMtYWNjdW11bGF0aXZlLXNoYWRvd3MtY29uc3VtZXInLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgQWNjdW11bGF0aXZlU2hhZG93c0NvbnN1bWVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaW5qZWN0KE5HVFNfQUNDVU1VTEFUSVZFX1NIQURPV1NfQVBJKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWdyb3VwIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC1ncm91cCAqcmVmPVwiYWNjdW11bGF0aXZlU2hhZG93c1JlZlwiIFt0cmF2ZXJzZV09XCJudWxsVHJhdmVyc2VcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgICAgIDxuZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzLWNvbnN1bWVyIC8+XG4gICAgICAgICAgICA8L25ndC1ncm91cD5cbiAgICAgICAgICAgIDxuZ3QtbWVzaCAqcmVmPVwibWVzaFJlZlwiIFtyZWNlaXZlU2hhZG93XT1cInRydWVcIiBbc2NhbGVdPVwiZ2V0KCdzY2FsZScpXCIgW3JvdGF0aW9uXT1cIlstTWF0aC5QSSAvIDIsIDAsIDBdXCI+XG4gICAgICAgICAgICAgICAgPG5ndC1wbGFuZS1nZW9tZXRyeSAvPlxuICAgICAgICAgICAgICAgIDxuZ3Qtc29mdC1zaGFkb3ctbWF0ZXJpYWxcbiAgICAgICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ2NvbG9yJylcIlxuICAgICAgICAgICAgICAgICAgICBbdG9uZU1hcHBlZF09XCJnZXQoJ3RvbmVNYXBwZWQnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtibGVuZF09XCJnZXQoJ2NvbG9yQmxlbmQnKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXBdPVwicExNLnByb2dyZXNzaXZlTGlnaHRNYXAyLnRleHR1cmVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25ndC1tZXNoPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtBY2N1bXVsYXRpdmVTaGFkb3dzQ29uc3VtZXIsIE5ndFJlZl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HVFNfQUNDVU1VTEFUSVZFX1NIQURPV1NfQVBJLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogYWNjdW11bGF0aXZlU2hhZG93c0FwaUZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NdLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHJlYWRvbmx5IG51bGxUcmF2ZXJzZSA9ICgpID0+IG51bGw7XG4gICAgcmVhZG9ubHkgTWF0aCA9IE1hdGg7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJlYWRvbmx5IHBMTSA9IG5ldyBQcm9ncmVzc2l2ZUxpZ2h0TWFwKHRoaXMuc3RvcmUuZ2V0KCdnbCcpLCB0aGlzLnN0b3JlLmdldCgnc2NlbmUnKSwgdGhpcy5nZXQoJ3Jlc29sdXRpb24nKSk7XG5cbiAgICByZWFkb25seSBhY2N1bXVsYXRpdmVTaGFkb3dzUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLkdyb3VwPigpO1xuICAgIHJlYWRvbmx5IG1lc2hSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuTWVzaD4oKTtcblxuICAgIC8qKiBIb3cgbWFueSBmcmFtZXMgaXQgY2FuIHJlbmRlciwgbW9yZSB5aWVsZHMgY2xlYW5lciByZXN1bHRzIGJ1dCB0YWtlcyBtb3JlIHRpbWUsIDQwICovXG4gICAgQElucHV0KCkgc2V0IGZyYW1lcyhmcmFtZXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZyYW1lcyB9KTtcbiAgICB9XG5cbiAgICAvKiogSWYgZnJhbWVzID09PSBJbmZpbml0eSBibGVuZCBjb250cm9scyB0aGUgcmVmcmVzaCByYXRpbywgMTAwICovXG4gICAgQElucHV0KCkgc2V0IGJsZW5kKGJsZW5kOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBibGVuZCB9KTtcbiAgICB9XG5cbiAgICAvKiogQ2FuIGxpbWl0IHRoZSBhbW91bnQgb2YgZnJhbWVzIHJlbmRlcmVkIGlmIGZyYW1lcyA9PT0gSW5maW5pdHksIHVzdWFsbHkgdG8gZ2V0IHNvbWUgcGVyZm9ybWFuY2UgYmFjayBvbmNlIGEgbW92YWJsZSBzY2VuZSBoYXMgc2V0dGxlZCwgSW5maW5pdHkgKi9cbiAgICBASW5wdXQoKSBzZXQgbGltaXQobGltaXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxpbWl0IH0pO1xuICAgIH1cblxuICAgIC8qKiBTY2FsZSBvZiB0aGUgcGxhbmUsICAqL1xuICAgIEBJbnB1dCgpIHNldCBzY2FsZShzY2FsZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGUgfSk7XG4gICAgfVxuXG4gICAgLyoqIFRlbXBvcmFsIGFjY3VtdWxhdGVzIHNoYWRvd3Mgb3ZlciB0aW1lIHdoaWNoIGlzIG1vcmUgcGVyZm9ybWFudCBidXQgaGFzIGEgdmlzdWFsIHJlZ3Jlc3Npb24gb3ZlciBpbnN0YW50IHJlc3VsdHMsIGZhbHNlICAqL1xuICAgIEBJbnB1dCgpIHNldCB0ZW1wb3JhbCh0ZW1wb3JhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHRlbXBvcmFsIH0pO1xuICAgIH1cblxuICAgIC8qKiBPcGFjaXR5IG9mIHRoZSBwbGFuZSwgMSAqL1xuICAgIEBJbnB1dCgpIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG9wYWNpdHkgfSk7XG4gICAgfVxuXG4gICAgLyoqIERpc2NhcmRzIGFscGhhIHBpeGVscywgMC42NSAqL1xuICAgIEBJbnB1dCgpIHNldCBhbHBoYVRlc3QoYWxwaGFUZXN0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbHBoYVRlc3QgfSk7XG4gICAgfVxuXG4gICAgLyoqIFNoYWRvdyBjb2xvciwgYmxhY2sgKi9cbiAgICBASW5wdXQoKSBzZXQgY29sb3IoY29sb3I6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cblxuICAgIC8qKiBDb2xvcmJsZW5kLCBob3cgbXVjaCBjb2xvcnMgdHVybiB0byBibGFjaywgMCBpcyBibGFjaywgMiAqL1xuICAgIEBJbnB1dCgpIHNldCBjb2xvckJsZW5kKGNvbG9yQmxlbmQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yQmxlbmQgfSk7XG4gICAgfVxuXG4gICAgLyoqIEJ1ZmZlciByZXNvbHV0aW9uLCAxMDI0ICovXG4gICAgQElucHV0KCkgc2V0IHJlc29sdXRpb24ocmVzb2x1dGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVzb2x1dGlvbiB9KTtcbiAgICB9XG5cbiAgICAvKiogVGV4dHVyZSB0b25lbWFwcGluZyAqL1xuICAgIEBJbnB1dCgpIHNldCB0b25lTWFwcGVkKHRvbmVNYXBwZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0b25lTWFwcGVkIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgZnJhbWVzOiA0MCxcbiAgICAgICAgICAgIGxpbWl0OiBJbmZpbml0eSxcbiAgICAgICAgICAgIGJsZW5kOiAyMCxcbiAgICAgICAgICAgIHNjYWxlOiAxMCxcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICBhbHBoYVRlc3Q6IDAuNzUsXG4gICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgIGNvbG9yQmxlbmQ6IDIsXG4gICAgICAgICAgICByZXNvbHV0aW9uOiAxMDI0LFxuICAgICAgICAgICAgdG9uZU1hcHBlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
278
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0aXZlLXNoYWRvd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MvYWNjdW11bGF0aXZlLXNoYWRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFOUQsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQ3JDO0lBQ0ksS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtJQUN4QixLQUFLLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLENBQUM7SUFDVixHQUFHLEVBQUUsSUFBSTtDQUNaO0FBQ0QsZ0JBQWdCO0FBQ2hCOzs7Ozs7R0FNRDtBQUNDLGdCQUFnQjtBQUNoQjs7Ozs7Ozs7Ozs7OztHQWFELENBQ0YsQ0FBQztBQVNGLE1BQU0sQ0FBQyxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztBQWUzRCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsNkJBQTZCLENBQ2hDLENBQUM7QUFFRixTQUFTLDZCQUE2QixDQUFDLG1CQUE0QztJQUMvRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0IsTUFBTSxHQUFHLEdBQUc7UUFDUixNQUFNLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDakIsS0FBSyxFQUFFLENBQUM7UUFDUixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1YsbUJBQW1CLENBQUMsT0FBTyxDQUFDLGFBRzNCO1FBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUNSLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ3hDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDbkIsd0RBQXdEO1lBQ3hELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2YsUUFBUSxDQUFDLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3RELFFBQVEsQ0FBQyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzdEO2lCQUFNO2dCQUNILFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDdkIsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUNsQyxRQUFRLENBQUMsT0FBTyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUNwRSxDQUFDO2dCQUNGLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDekIsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUNwQyxRQUFRLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUN4RSxDQUFDO2FBQ0w7WUFFRCxnQ0FBZ0M7WUFDaEMsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDeEUsa0NBQWtDO1lBQ2xDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVsQyxrREFBa0Q7WUFDbEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2xFO1lBRUQsb0JBQW9CO1lBQ3BCLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3pFLDRCQUE0QjtZQUM1QixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckMsQ0FBQztLQUMwQixDQUFDO0lBRWhDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7UUFDekIsUUFBUSxFQUFFO1lBQ04sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxFQUFFO1lBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1RDtRQUNELEtBQUssRUFBRTtZQUNILEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FDTixJQUFJLENBQUMsR0FBRyxDQUNKLENBQUMsRUFDRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssUUFBUTtnQkFDMUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQzFDO1NBQ1I7S0FDSixDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXBDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDN0QsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3BCLGFBQWEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDeEYsR0FBRyxFQUFFO1lBQ0QsZ0NBQWdDO1lBQ2hDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFFBQVE7Z0JBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUNKLENBQUM7UUFFRixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNyQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxLQUFLLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFO2dCQUMxRixHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2Y7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBR0QsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQztRQUNJLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3dIQUhRLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsb0NBQW9DLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7QUF1Qy9FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxVQUFVO0lBaEN2RDs7UUFpQ2EsaUJBQVksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDMUIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUVKLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakMsUUFBRyxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRXJHLDJCQUFzQixHQUFHLFlBQVksRUFBZSxDQUFDO1FBQ3JELFlBQU8sR0FBRyxZQUFZLEVBQWMsQ0FBQztLQXdFakQ7SUF0RUcseUZBQXlGO0lBQ3pGLElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxzSkFBc0o7SUFDdEosSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELCtIQUErSDtJQUMvSCxJQUFhLFFBQVEsQ0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsOEJBQThCO0lBQzlCLElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsMEJBQTBCO0lBQzFCLElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELCtEQUErRDtJQUMvRCxJQUFhLFVBQVUsQ0FBQyxVQUFrQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsOEJBQThCO0lBQzlCLElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFBYSxVQUFVLENBQUMsVUFBbUI7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUNMLE1BQU0sRUFBRSxFQUFFO1lBQ1YsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFO1lBQ1QsT0FBTyxFQUFFLENBQUM7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLENBQUM7WUFDYixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDOztvSEFoRlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsc1RBVHJCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsNkJBQTZCO1lBQ3RDLFVBQVUsRUFBRSw2QkFBNkI7WUFDekMsSUFBSSxFQUFFLENBQUMsdUJBQXVCLENBQUM7U0FDbEM7S0FDSixpREExQlM7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQWtCVCw0REEzQlEsMkJBQTJCOzJGQXNDM0IsdUJBQXVCO2tCQWhDbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3RDLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNkJBQTZCOzRCQUN0QyxVQUFVLEVBQUUsNkJBQTZCOzRCQUN6QyxJQUFJLEVBQUUseUJBQXlCO3lCQUNsQztxQkFDSjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBYWdCLE1BQU07c0JBQWxCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFLTyxLQUFLO3NCQUFqQixLQUFLO2dCQUtPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBS08sUUFBUTtzQkFBcEIsS0FBSztnQkFLTyxPQUFPO3NCQUFuQixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sS0FBSztzQkFBakIsS0FBSztnQkFLTyxVQUFVO3NCQUF0QixLQUFLO2dCQUtPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBS08sVUFBVTtzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3ROZ3RSZWYsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBzaGFkZXJNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwLCBNZXNoLCBQbGFuZUdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgUHJvZ3Jlc3NpdmVMaWdodE1hcCB9IGZyb20gJy4vcHJvZ3Jlc3NpdmUtbGlnaHQtbWFwJztcblxuY29uc3QgU29mdFNoYWRvd01hdGVyaWFsID0gc2hhZGVyTWF0ZXJpYWwoXG4gICAge1xuICAgICAgICBjb2xvcjogbmV3IFRIUkVFLkNvbG9yKCksXG4gICAgICAgIGJsZW5kOiAyLjAsXG4gICAgICAgIGFscGhhVGVzdDogMC43NSxcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgbWFwOiBudWxsLFxuICAgIH0sXG4gICAgLy8gbGFuZ3VhZ2U9R0xTTFxuICAgIGBcbnZhcnlpbmcgdmVjMiB2VXY7XG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIHZpZXdNYXRyaXggKiBtb2RlbE1hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuKTtcbiAgdlV2ID0gdXY7XG59XG4gIGAsXG4gICAgLy8gbGFuZ3VhZ2U9R0xTTFxuICAgIGBcbnZhcnlpbmcgdmVjMiB2VXY7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXA7XG51bmlmb3JtIHZlYzMgY29sb3I7XG51bmlmb3JtIGZsb2F0IGJsZW5kO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBmbG9hdCBhbHBoYVRlc3Q7XG52b2lkIG1haW4oKSB7XG4gIHZlYzQgc2FtcGxlZERpZmZ1c2VDb2xvciA9IHRleHR1cmUyRChtYXAsIHZVdik7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IgKiBzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKiBibGVuZCwgbWF4KDAuMCwgKDEuMCAtIChzYW1wbGVkRGlmZnVzZUNvbG9yLnIgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmcgKyBzYW1wbGVkRGlmZnVzZUNvbG9yLmIpIC8gYWxwaGFUZXN0KSkgKiBvcGFjaXR5KTtcbiAgI2luY2x1ZGUgPHRvbmVtYXBwaW5nX2ZyYWdtZW50PlxuICAjaW5jbHVkZSA8ZW5jb2RpbmdzX2ZyYWdtZW50PlxufVxuICBgXG4pO1xuXG50eXBlIFNvZnRTaGFkb3dNYXRlcmlhbElucHV0cyA9IHtcbiAgICBtYXA6IFRIUkVFLlRleHR1cmU7XG4gICAgY29sb3I/OiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uO1xuICAgIGFscGhhVGVzdD86IG51bWJlcjtcbiAgICBibGVuZD86IG51bWJlcjtcbn07XG5cbmV4dGVuZCh7IFNvZnRTaGFkb3dNYXRlcmlhbCwgR3JvdXAsIE1lc2gsIFBsYW5lR2VvbWV0cnkgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzTGlnaHRBcGkgPSB7IHVwZGF0ZTogKCkgPT4gdm9pZCB9O1xuXG5leHBvcnQgdHlwZSBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c0FwaSA9IHtcbiAgICBsaWdodHM6IE1hcDxzdHJpbmcsIE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzTGlnaHRBcGk+O1xuICAgIHRlbXBvcmFsOiBib29sZWFuO1xuICAgIGZyYW1lczogbnVtYmVyO1xuICAgIGJsZW5kOiBudW1iZXI7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICBnZXRNZXNoOiAoKSA9PiBUSFJFRS5NZXNoPFRIUkVFLlBsYW5lR2VvbWV0cnksIFNvZnRTaGFkb3dNYXRlcmlhbElucHV0cyAmIFRIUkVFLlNoYWRlck1hdGVyaWFsPjtcbiAgICByZXNldDogKCkgPT4gdm9pZDtcbiAgICB1cGRhdGU6IChmcmFtZXM/OiBudW1iZXIpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTkdUU19BQ0NVTVVMQVRJVkVfU0hBRE9XU19BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NBcGk+KFxuICAgICdOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyBBUEknXG4pO1xuXG5mdW5jdGlvbiBhY2N1bXVsYXRpdmVTaGFkb3dzQXBpRmFjdG9yeShhY2N1bXVsYXRpdmVTaGFkb3dzOiBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cykge1xuICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIGNvbnN0IGFwaSA9IHtcbiAgICAgICAgbGlnaHRzOiBuZXcgTWFwKCksXG4gICAgICAgIGNvdW50OiAwLFxuICAgICAgICBnZXRNZXNoOiAoKSA9PlxuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5tZXNoUmVmLm5hdGl2ZUVsZW1lbnQgYXMgVEhSRUUuTWVzaDxcbiAgICAgICAgICAgICAgICBUSFJFRS5QbGFuZUdlb21ldHJ5LFxuICAgICAgICAgICAgICAgIFNvZnRTaGFkb3dNYXRlcmlhbElucHV0cyAmIFRIUkVFLlNoYWRlck1hdGVyaWFsXG4gICAgICAgICAgICA+LFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5wTE0uY2xlYXIoKTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsID0gYXBpLmdldE1lc2goKS5tYXRlcmlhbDtcbiAgICAgICAgICAgIG1hdGVyaWFsLm9wYWNpdHkgPSAwO1xuICAgICAgICAgICAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gMDtcbiAgICAgICAgICAgIGFwaS5jb3VudCA9IDA7XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZTogKGZyYW1lcyA9IDEpID0+IHtcbiAgICAgICAgICAgIC8vIGFkYXB0IHRoZSBvcGFjaXR5IGJsZW5kIHJhdGlvIHRvIHRoZSBudW1iZXIgb2YgZnJhbWVzXG4gICAgICAgICAgICBjb25zdCBtYXRlcmlhbCA9IGFwaS5nZXRNZXNoKCkubWF0ZXJpYWw7XG4gICAgICAgICAgICBpZiAoIWFwaS50ZW1wb3JhbCkge1xuICAgICAgICAgICAgICAgIG1hdGVyaWFsLm9wYWNpdHkgPSBhY2N1bXVsYXRpdmVTaGFkb3dzLmdldCgnb3BhY2l0eScpO1xuICAgICAgICAgICAgICAgIG1hdGVyaWFsLmFscGhhVGVzdCA9IGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdhbHBoYVRlc3QnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwub3BhY2l0eSA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3dzLmdldCgnb3BhY2l0eScpLFxuICAgICAgICAgICAgICAgICAgICBtYXRlcmlhbC5vcGFjaXR5ICsgYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ29wYWNpdHknKSAvIGFwaS5ibGVuZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbWF0ZXJpYWwuYWxwaGFUZXN0ID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdhbHBoYVRlc3QnKSxcbiAgICAgICAgICAgICAgICAgICAgbWF0ZXJpYWwuYWxwaGFUZXN0ICsgYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2FscGhhVGVzdCcpIC8gYXBpLmJsZW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gc3dpdGNoIGFjY3VtdWxhdGl2ZSBsaWdodHMgb25cbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuYWNjdW11bGF0aXZlU2hhZG93c1JlZi5uYXRpdmVFbGVtZW50LnZpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgLy8gY29sbGVjdCBzY2VuZSBsaWdodHMgYW5kIG1lc2hlc1xuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5wTE0ucHJlcGFyZSgpO1xuXG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIGxpZ2h0bWFwIGFuZCB0aGUgYWNjdW11bGF0aXZlIGxpZ2h0c1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmFtZXM7IGkrKykge1xuICAgICAgICAgICAgICAgIGFwaS5saWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0LnVwZGF0ZSgpKTtcbiAgICAgICAgICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3dzLnBMTS51cGRhdGUoc3RvcmUuZ2V0KCdjYW1lcmEnKSwgYXBpLmJsZW5kKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gc3dpdGNoIGxpZ2h0cyBvZmZcbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuYWNjdW11bGF0aXZlU2hhZG93c1JlZi5uYXRpdmVFbGVtZW50LnZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIHJlc3RvcmUgbGlnaHRzIGFuZCBtZXNoZXNcbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MucExNLmZpbmlzaCgpO1xuICAgICAgICB9LFxuICAgIH0gYXMgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NBcGk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhhcGksIHtcbiAgICAgICAgdGVtcG9yYWw6IHtcbiAgICAgICAgICAgIGdldDogKCkgPT4gISFhY2N1bXVsYXRpdmVTaGFkb3dzLmdldCgndGVtcG9yYWwnKSxcbiAgICAgICAgfSxcbiAgICAgICAgZnJhbWVzOiB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+IE1hdGgubWF4KDIsIGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdmcmFtZXMnKSksXG4gICAgICAgIH0sXG4gICAgICAgIGJsZW5kOiB7XG4gICAgICAgICAgICBnZXQ6ICgpID0+XG4gICAgICAgICAgICAgICAgTWF0aC5tYXgoXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvd3MuZ2V0KCdmcmFtZXMnKSA9PT0gSW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2JsZW5kJylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2ZyYW1lcycpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgYWNjdW11bGF0aXZlU2hhZG93cy5ob2xkKGFjY3VtdWxhdGl2ZVNoYWRvd3MubWVzaFJlZi4kLCAobWVzaCkgPT4ge1xuICAgICAgICBhY2N1bXVsYXRpdmVTaGFkb3dzLnBMTS5jb25maWd1cmUobWVzaCk7XG5cbiAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5ob2xkKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbYWNjdW11bGF0aXZlU2hhZG93cy5zZWxlY3QoKSwgZ2V0TG9jYWxTdGF0ZShzdG9yZS5nZXQoJ3NjZW5lJykpLm9iamVjdHNdKSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyByZXNldCBpbnRlcm5hbHMsIGJ1ZmZlcnMsIC4uLlxuICAgICAgICAgICAgICAgIGFwaS5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBsaWdodG1hcFxuICAgICAgICAgICAgICAgIGlmICghYXBpLnRlbXBvcmFsICYmIGFwaS5mcmFtZXMgIT09IEluZmluaXR5KSBhcGkudXBkYXRlKGFwaS5ibGVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93cy5lZmZlY3Qoc3ViamVjdCwgKCkgPT5cbiAgICAgICAgICAgIHN0b3JlLmdldCgnaW50ZXJuYWwnKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbWl0ID0gYWNjdW11bGF0aXZlU2hhZG93cy5nZXQoJ2xpbWl0Jyk7XG4gICAgICAgICAgICAgICAgaWYgKChhcGkudGVtcG9yYWwgfHwgYXBpLmZyYW1lcyA9PT0gSW5maW5pdHkpICYmIGFwaS5jb3VudCA8IGFwaS5mcmFtZXMgJiYgYXBpLmNvdW50IDwgbGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBpLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICBhcGkuY291bnQrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBzdWJqZWN0Lm5leHQoKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBhcGk7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25ndHMtYWNjdW11bGF0aXZlLXNoYWRvd3MtY29uc3VtZXInLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgQWNjdW11bGF0aXZlU2hhZG93c0NvbnN1bWVyIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaW5qZWN0KE5HVFNfQUNDVU1VTEFUSVZFX1NIQURPV1NfQVBJKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWdyb3VwIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC1ncm91cCBbcmVmXT1cImFjY3VtdWxhdGl2ZVNoYWRvd3NSZWZcIiBbdHJhdmVyc2VdPVwibnVsbFRyYXZlcnNlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8bmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cy1jb25zdW1lciAvPlxuICAgICAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgICAgICAgICA8bmd0LW1lc2ggW3JlZl09XCJtZXNoUmVmXCIgW3JlY2VpdmVTaGFkb3ddPVwidHJ1ZVwiIFtzY2FsZV09XCJnZXQoJ3NjYWxlJylcIiBbcm90YXRpb25dPVwiWy1NYXRoLlBJIC8gMiwgMCwgMF1cIj5cbiAgICAgICAgICAgICAgICA8bmd0LXBsYW5lLWdlb21ldHJ5IC8+XG4gICAgICAgICAgICAgICAgPG5ndC1zb2Z0LXNoYWRvdy1tYXRlcmlhbFxuICAgICAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXB0aFdyaXRlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnY29sb3InKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0b25lTWFwcGVkXT1cImdldCgndG9uZU1hcHBlZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW2JsZW5kXT1cImdldCgnY29sb3JCbGVuZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW21hcF09XCJwTE0ucHJvZ3Jlc3NpdmVMaWdodE1hcDIudGV4dHVyZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmd0LW1lc2g+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgIGAsXG4gICAgaW1wb3J0czogW0FjY3VtdWxhdGl2ZVNoYWRvd3NDb25zdW1lcl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HVFNfQUNDVU1VTEFUSVZFX1NIQURPV1NfQVBJLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogYWNjdW11bGF0aXZlU2hhZG93c0FwaUZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NdLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHJlYWRvbmx5IG51bGxUcmF2ZXJzZSA9ICgpID0+IG51bGw7XG4gICAgcmVhZG9ubHkgTWF0aCA9IE1hdGg7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJlYWRvbmx5IHBMTSA9IG5ldyBQcm9ncmVzc2l2ZUxpZ2h0TWFwKHRoaXMuc3RvcmUuZ2V0KCdnbCcpLCB0aGlzLnN0b3JlLmdldCgnc2NlbmUnKSwgdGhpcy5nZXQoJ3Jlc29sdXRpb24nKSk7XG5cbiAgICByZWFkb25seSBhY2N1bXVsYXRpdmVTaGFkb3dzUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLkdyb3VwPigpO1xuICAgIHJlYWRvbmx5IG1lc2hSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuTWVzaD4oKTtcblxuICAgIC8qKiBIb3cgbWFueSBmcmFtZXMgaXQgY2FuIHJlbmRlciwgbW9yZSB5aWVsZHMgY2xlYW5lciByZXN1bHRzIGJ1dCB0YWtlcyBtb3JlIHRpbWUsIDQwICovXG4gICAgQElucHV0KCkgc2V0IGZyYW1lcyhmcmFtZXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZyYW1lcyB9KTtcbiAgICB9XG5cbiAgICAvKiogSWYgZnJhbWVzID09PSBJbmZpbml0eSBibGVuZCBjb250cm9scyB0aGUgcmVmcmVzaCByYXRpbywgMTAwICovXG4gICAgQElucHV0KCkgc2V0IGJsZW5kKGJsZW5kOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBibGVuZCB9KTtcbiAgICB9XG5cbiAgICAvKiogQ2FuIGxpbWl0IHRoZSBhbW91bnQgb2YgZnJhbWVzIHJlbmRlcmVkIGlmIGZyYW1lcyA9PT0gSW5maW5pdHksIHVzdWFsbHkgdG8gZ2V0IHNvbWUgcGVyZm9ybWFuY2UgYmFjayBvbmNlIGEgbW92YWJsZSBzY2VuZSBoYXMgc2V0dGxlZCwgSW5maW5pdHkgKi9cbiAgICBASW5wdXQoKSBzZXQgbGltaXQobGltaXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxpbWl0IH0pO1xuICAgIH1cblxuICAgIC8qKiBTY2FsZSBvZiB0aGUgcGxhbmUsICAqL1xuICAgIEBJbnB1dCgpIHNldCBzY2FsZShzY2FsZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGUgfSk7XG4gICAgfVxuXG4gICAgLyoqIFRlbXBvcmFsIGFjY3VtdWxhdGVzIHNoYWRvd3Mgb3ZlciB0aW1lIHdoaWNoIGlzIG1vcmUgcGVyZm9ybWFudCBidXQgaGFzIGEgdmlzdWFsIHJlZ3Jlc3Npb24gb3ZlciBpbnN0YW50IHJlc3VsdHMsIGZhbHNlICAqL1xuICAgIEBJbnB1dCgpIHNldCB0ZW1wb3JhbCh0ZW1wb3JhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHRlbXBvcmFsIH0pO1xuICAgIH1cblxuICAgIC8qKiBPcGFjaXR5IG9mIHRoZSBwbGFuZSwgMSAqL1xuICAgIEBJbnB1dCgpIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG9wYWNpdHkgfSk7XG4gICAgfVxuXG4gICAgLyoqIERpc2NhcmRzIGFscGhhIHBpeGVscywgMC42NSAqL1xuICAgIEBJbnB1dCgpIHNldCBhbHBoYVRlc3QoYWxwaGFUZXN0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbHBoYVRlc3QgfSk7XG4gICAgfVxuXG4gICAgLyoqIFNoYWRvdyBjb2xvciwgYmxhY2sgKi9cbiAgICBASW5wdXQoKSBzZXQgY29sb3IoY29sb3I6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cblxuICAgIC8qKiBDb2xvcmJsZW5kLCBob3cgbXVjaCBjb2xvcnMgdHVybiB0byBibGFjaywgMCBpcyBibGFjaywgMiAqL1xuICAgIEBJbnB1dCgpIHNldCBjb2xvckJsZW5kKGNvbG9yQmxlbmQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yQmxlbmQgfSk7XG4gICAgfVxuXG4gICAgLyoqIEJ1ZmZlciByZXNvbHV0aW9uLCAxMDI0ICovXG4gICAgQElucHV0KCkgc2V0IHJlc29sdXRpb24ocmVzb2x1dGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVzb2x1dGlvbiB9KTtcbiAgICB9XG5cbiAgICAvKiogVGV4dHVyZSB0b25lbWFwcGluZyAqL1xuICAgIEBJbnB1dCgpIHNldCB0b25lTWFwcGVkKHRvbmVNYXBwZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0b25lTWFwcGVkIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgZnJhbWVzOiA0MCxcbiAgICAgICAgICAgIGxpbWl0OiBJbmZpbml0eSxcbiAgICAgICAgICAgIGJsZW5kOiAyMCxcbiAgICAgICAgICAgIHNjYWxlOiAxMCxcbiAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICBhbHBoYVRlc3Q6IDAuNzUsXG4gICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgIGNvbG9yQmxlbmQ6IDIsXG4gICAgICAgICAgICByZXNvbHV0aW9uOiAxMDI0LFxuICAgICAgICAgICAgdG9uZU1hcHBlZDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, CUSTOM_ELEMENTS_SCHEMA, Directive, inject, InjectionToken, Input } from '@angular/core';
|
|
2
|
-
import { extend, injectNgtRef, NgtArgs,
|
|
2
|
+
import { extend, injectNgtRef, NgtArgs, NgtRepeat, NgtRxStore } from 'angular-three';
|
|
3
3
|
import { combineLatest } from 'rxjs';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { DirectionalLight, Group, OrthographicCamera, Vector2 } from 'three';
|
|
@@ -47,9 +47,9 @@ export class RandomizedLightsConsumer {
|
|
|
47
47
|
inject(NGTS_RANDOMIZED_LIGHTS_API);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
RandomizedLightsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
51
|
-
RandomizedLightsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
50
|
+
RandomizedLightsConsumer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: RandomizedLightsConsumer, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
51
|
+
RandomizedLightsConsumer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.4", type: RandomizedLightsConsumer, isStandalone: true, selector: "ngts-randomized-lights-consumer", ngImport: i0 });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: RandomizedLightsConsumer, decorators: [{
|
|
53
53
|
type: Directive,
|
|
54
54
|
args: [{ selector: 'ngts-randomized-lights-consumer', standalone: true }]
|
|
55
55
|
}], ctorParameters: function () { return []; } });
|
|
@@ -127,11 +127,11 @@ export class NgtsRandomizedLights extends NgtRxStore {
|
|
|
127
127
|
this.connect('length', this.select(['position'], ({ position }) => new THREE.Vector3(...position).length()));
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
-
NgtsRandomizedLights.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.
|
|
131
|
-
NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.
|
|
130
|
+
NgtsRandomizedLights.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsRandomizedLights, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
+
NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: NgtsRandomizedLights, isStandalone: true, selector: "ngts-randomized-lights", inputs: { lightsRef: "lightsRef", frames: "frames", position: "position", radius: "radius", amount: "amount", intensity: "intensity", ambient: "ambient", castShadow: "castShadow", bias: "bias", mapSize: "mapSize", size: "size", near: "near", far: "far" }, providers: [
|
|
132
132
|
{ provide: NGTS_RANDOMIZED_LIGHTS_API, useFactory: randomizedLightsApiFactory, deps: [NgtsRandomizedLights] },
|
|
133
133
|
], usesInheritance: true, ngImport: i0, template: `
|
|
134
|
-
<ngt-group ngtCompound
|
|
134
|
+
<ngt-group ngtCompound [ref]="lightsRef">
|
|
135
135
|
<ngt-directional-light
|
|
136
136
|
*ngFor="let i; repeat: get('amount')"
|
|
137
137
|
[castShadow]="get('castShadow')"
|
|
@@ -143,14 +143,14 @@ NgtsRandomizedLights.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
143
143
|
</ngt-directional-light>
|
|
144
144
|
<ngts-randomized-lights-consumer />
|
|
145
145
|
</ngt-group>
|
|
146
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: RandomizedLightsConsumer, selector: "ngts-randomized-lights-consumer" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }
|
|
147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.
|
|
146
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: RandomizedLightsConsumer, selector: "ngts-randomized-lights-consumer" }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "directive", type: NgtRepeat, selector: "[ngFor][ngForRepeat]", inputs: ["ngForRepeat"] }] });
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: NgtsRandomizedLights, decorators: [{
|
|
148
148
|
type: Component,
|
|
149
149
|
args: [{
|
|
150
150
|
selector: 'ngts-randomized-lights',
|
|
151
151
|
standalone: true,
|
|
152
152
|
template: `
|
|
153
|
-
<ngt-group ngtCompound
|
|
153
|
+
<ngt-group ngtCompound [ref]="lightsRef">
|
|
154
154
|
<ngt-directional-light
|
|
155
155
|
*ngFor="let i; repeat: get('amount')"
|
|
156
156
|
[castShadow]="get('castShadow')"
|
|
@@ -163,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
163
163
|
<ngts-randomized-lights-consumer />
|
|
164
164
|
</ngt-group>
|
|
165
165
|
`,
|
|
166
|
-
imports: [RandomizedLightsConsumer, NgtArgs, NgtRepeat
|
|
166
|
+
imports: [RandomizedLightsConsumer, NgtArgs, NgtRepeat],
|
|
167
167
|
providers: [
|
|
168
168
|
{ provide: NGTS_RANDOMIZED_LIGHTS_API, useFactory: randomizedLightsApiFactory, deps: [NgtsRandomizedLights] },
|
|
169
169
|
],
|
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
|
|
|
196
196
|
}], far: [{
|
|
197
197
|
type: Input
|
|
198
198
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9taXplZC1saWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MvcmFuZG9taXplZC1saWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0UsT0FBTyxFQUFtQyw2QkFBNkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUV4RyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsMEJBQTBCLENBQzdCLENBQUM7QUFFRixTQUFTLDBCQUEwQixDQUFDLGdCQUFzQztJQUN0RSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUU5RCxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUU7UUFDaEIsSUFBSSxLQUF5QyxDQUFDO1FBQzlDLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRTtZQUMx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RVksU0FBUztzQkFBakIsS0FBSztnQkFHTyxNQUFNO3NCQUFsQixLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFLTyxNQUFNO3NCQUFsQixLQUFLO2dCQUtPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sT0FBTztzQkFBbkIsS0FBSztnQkFLTyxVQUFVO3NCQUF0QixLQUFLO2dCQUtPLElBQUk7c0JBQWhCLEtBQUs7Z0JBS08sT0FBTztzQkFBbkIsS0FBSztnQkFLTyxJQUFJO3NCQUFoQixLQUFLO2dCQUtPLElBQUk7c0JBQWhCLEtBQUs7Z0JBS08sR0FBRztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBEaXJlY3RpdmUsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0UmVmLCBOZ3RSZXBlYXQsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IERpcmVjdGlvbmFsTGlnaHQsIEdyb3VwLCBPcnRob2dyYXBoaWNDYW1lcmEsIFZlY3RvcjIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c0xpZ2h0QXBpLCBOR1RTX0FDQ1VNVUxBVElWRV9TSEFET1dTX0FQSSB9IGZyb20gJy4vYWNjdW11bGF0aXZlLXNoYWRvd3MnO1xuXG5leHRlbmQoeyBHcm91cCwgRGlyZWN0aW9uYWxMaWdodCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBWZWN0b3IyIH0pO1xuXG5leHBvcnQgY29uc3QgTkdUU19SQU5ET01JWkVEX0xJR0hUU19BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NMaWdodEFwaT4oXG4gICAgJ05ndHNSYW5kb21pemVkTGlnaHRzIEFQSSdcbik7XG5cbmZ1bmN0aW9uIHJhbmRvbWl6ZWRMaWdodHNBcGlGYWN0b3J5KHJhbmRvbWl6ZWRMaWdodHM6IE5ndHNSYW5kb21pemVkTGlnaHRzKSB7XG4gICAgY29uc3QgYWNjdW11bGF0aXZlQXBpID0gaW5qZWN0KE5HVFNfQUNDVU1VTEFUSVZFX1NIQURPV1NfQVBJKTtcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IGxpZ2h0OiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0IHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmFuZG9taXplZExpZ2h0cy5saWdodHNSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZm9yIChsZXQgbCA9IDA7IGwgPCByYW5kb21pemVkTGlnaHRzLmxpZ2h0c1JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgbCsrKSB7XG4gICAgICAgICAgICAgICAgbGlnaHQgPSByYW5kb21pemVkTGlnaHRzLmxpZ2h0c1JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW2xdIGFzIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQ7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPiByYW5kb21pemVkTGlnaHRzLmdldCgnYW1iaWVudCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gcmFuZG9taXplZExpZ2h0cy5nZXQoJ3Bvc2l0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZGl1cyA9IHJhbmRvbWl6ZWRMaWdodHMuZ2V0KCdyYWRpdXMnKTtcbiAgICAgICAgICAgICAgICAgICAgbGlnaHQucG9zaXRpb24uc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25bMF0gKyBUSFJFRS5NYXRoVXRpbHMucmFuZEZsb2F0U3ByZWFkKHJhZGl1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblsxXSArIFRIUkVFLk1hdGhVdGlscy5yYW5kRmxvYXRTcHJlYWQocmFkaXVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uWzJdICsgVEhSRUUuTWF0aFV0aWxzLnJhbmRGbG9hdFNwcmVhZChyYWRpdXMpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFtYmRhID0gTWF0aC5hY29zKDIgKiBNYXRoLnJhbmRvbSgpIC0gMSkgLSBNYXRoLlBJIC8gMi4wO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwaGkgPSAyICogTWF0aC5QSSAqIE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHJhbmRvbWl6ZWRMaWdodHMuZ2V0KCdsZW5ndGgnKTtcbiAgICAgICAgICAgICAgICAgICAgbGlnaHQucG9zaXRpb24uc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5jb3MobGFtYmRhKSAqIE1hdGguY29zKHBoaSkgKiBsZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhNYXRoLmNvcyhsYW1iZGEpICogTWF0aC5zaW4ocGhpKSAqIGxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbihsYW1iZGEpICogbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGFwaSA9IHsgdXBkYXRlIH0gYXMgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NMaWdodEFwaTtcblxuICAgIHJhbmRvbWl6ZWRMaWdodHMuZWZmZWN0KFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMubGlnaHRzUmVmLiQsXG4gICAgICAgICAgICByYW5kb21pemVkTGlnaHRzLnNlbGVjdCgncG9zaXRpb24nKSxcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMuc2VsZWN0KCdyYWRpdXMnKSxcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMuc2VsZWN0KCdsZW5ndGgnKSxcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMuc2VsZWN0KCdhbWJpZW50JyksXG4gICAgICAgIF0pLFxuICAgICAgICAoW2dyb3VwXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGl2ZUFwaSkgYWNjdW11bGF0aXZlQXBpLmxpZ2h0cy5zZXQoZ3JvdXAudXVpZCwgYXBpKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBhY2N1bXVsYXRpdmVBcGkubGlnaHRzLmRlbGV0ZShncm91cC51dWlkKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gYXBpO1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzLWNvbnN1bWVyJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFJhbmRvbWl6ZWRMaWdodHNDb25zdW1lciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGluamVjdChOR1RTX1JBTkRPTUlaRURfTElHSFRTX0FQSSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtcmFuZG9taXplZC1saWdodHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1ncm91cCBuZ3RDb21wb3VuZCAqcmVmPVwibGlnaHRzUmVmXCI+XG4gICAgICAgICAgICA8bmd0LWRpcmVjdGlvbmFsLWxpZ2h0XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGk7IHJlcGVhdDogZ2V0KCdhbW91bnQnKVwiXG4gICAgICAgICAgICAgICAgW2Nhc3RTaGFkb3ddPVwiZ2V0KCdjYXN0U2hhZG93JylcIlxuICAgICAgICAgICAgICAgIFtpbnRlbnNpdHldPVwiZ2V0KCdpbnRlbnNpdHknKSAvIGdldCgnYW1vdW50JylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdldCgnYmlhcycpXCIgYXR0YWNoPVwic2hhZG93LmJpYXNcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmVjdG9yMiAqYXJncz1cIltnZXQoJ21hcFNpemUnKSwgZ2V0KCdtYXBTaXplJyldXCIgYXR0YWNoPVwic2hhZG93Lm1hcFNpemVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3Qtb3J0aG9ncmFwaGljLWNhbWVyYSAqYXJncz1cImdldCgnY2FtZXJhQXJncycpXCIgYXR0YWNoPVwic2hhZG93LmNhbWVyYVwiIC8+XG4gICAgICAgICAgICA8L25ndC1kaXJlY3Rpb25hbC1saWdodD5cbiAgICAgICAgICAgIDxuZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzLWNvbnN1bWVyIC8+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgIGAsXG4gICAgaW1wb3J0czogW1JhbmRvbWl6ZWRMaWdodHNDb25zdW1lciwgTmd0QXJncywgTmd0UmVwZWF0LCBOZ3RSZWZdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE5HVFNfUkFORE9NSVpFRF9MSUdIVFNfQVBJLCB1c2VGYWN0b3J5OiByYW5kb21pemVkTGlnaHRzQXBpRmFjdG9yeSwgZGVwczogW05ndHNSYW5kb21pemVkTGlnaHRzXSB9LFxuICAgIF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUmFuZG9taXplZExpZ2h0cyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIEBJbnB1dCgpIGxpZ2h0c1JlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5Hcm91cD4oKTtcbiAgICAvKiogSG93IG1hbnkgZnJhbWVzIGl0IHdpbGwgamlnZ2xlIHRoZSBsaWdodHMsIDEuXG4gICAgICogIEZyYW1lcyBpcyBjb250ZXh0IGF3YXJlLCBpZiBhIHByb3ZpZGVyIGxpa2UgQWNjdW11bGF0aXZlU2hhZG93cyBleGlzdHMsIGZyYW1lcyB3aWxsIGJlIHRha2VuIGZyb20gdGhlcmUhICAqL1xuICAgIEBJbnB1dCgpIHNldCBmcmFtZXMoZnJhbWVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmcmFtZXMgfSk7XG4gICAgfVxuXG4gICAgLyoqIExpZ2h0IHBvc2l0aW9uLCBbMCwgMCwgMF0gKi9cbiAgICBASW5wdXQoKSBzZXQgcG9zaXRpb24ocG9zaXRpb246IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IHBvc2l0aW9uIH0pO1xuICAgIH1cblxuICAgIC8qKiBSYWRpdXMgb2YgdGhlIGppZ2dsZSwgaGlnaGVyIHZhbHVlcyBtYWtlIHNvZnRlciBsaWdodCwgNSAqL1xuICAgIEBJbnB1dCgpIHNldCByYWRpdXMocmFkaXVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYWRpdXMgfSk7XG4gICAgfVxuXG4gICAgLyoqIEFtb3VudCBvZiBsaWdodHMsIDggKi9cbiAgICBASW5wdXQoKSBzZXQgYW1vdW50KGFtb3VudDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYW1vdW50IH0pO1xuICAgIH1cblxuICAgIC8qKiBMaWdodCBpbnRlbnNpdHksIDEgKi9cbiAgICBASW5wdXQoKSBzZXQgaW50ZW5zaXR5KGludGVuc2l0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW50ZW5zaXR5IH0pO1xuICAgIH1cblxuICAgIC8qKiBBbWJpZW50IG9jY2x1c2lvbiwgbG93ZXIgdmFsdWVzIG1lYW4gbGVzcyBBTywgaGlnaHQgbW9yZSwgeW91IGNhbiBtaXggQU8gYW5kIGRpcmVjdGlvbmFsIGxpZ2h0LCAwLjUgKi9cbiAgICBASW5wdXQoKSBzZXQgYW1iaWVudChhbWJpZW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbWJpZW50IH0pO1xuICAgIH1cblxuICAgIC8qKiBJZiB0aGUgbGlnaHRzIGNhc3Qgc2hhZG93cywgdGhpcyBpcyB0cnVlIGJ5IGRlZmF1bHQgKi9cbiAgICBASW5wdXQoKSBzZXQgY2FzdFNoYWRvdyhjYXN0U2hhZG93OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FzdFNoYWRvdyB9KTtcbiAgICB9XG5cbiAgICAvKiogRGVmYXVsdCBzaGFkb3cgYmlhcywgMCAqL1xuICAgIEBJbnB1dCgpIHNldCBiaWFzKGJpYXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJpYXMgfSk7XG4gICAgfVxuXG4gICAgLyoqIERlZmF1bHQgbWFwIHNpemUsIDUxMiAqL1xuICAgIEBJbnB1dCgpIHNldCBtYXBTaXplKG1hcFNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG1hcFNpemUgfSk7XG4gICAgfVxuXG4gICAgLyoqIERlZmF1bHQgc2l6ZSBvZiB0aGUgc2hhZG93IGNhbWVyYSwgMTAgKi9cbiAgICBASW5wdXQoKSBzZXQgc2l6ZShzaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzaXplIH0pO1xuICAgIH1cblxuICAgIC8qKiBEZWZhdWx0IHNoYWRvdyBjYW1lcmEgbmVhciwgMC41ICovXG4gICAgQElucHV0KCkgc2V0IG5lYXIobmVhcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbmVhciB9KTtcbiAgICB9XG5cbiAgICAvKiogRGVmYXVsdCBzaGFkb3cgY2FtZXJhIGZhciwgNTAwICovXG4gICAgQElucHV0KCkgc2V0IGZhcihmYXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZhciB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGNhc3RTaGFkb3c6IHRydWUsXG4gICAgICAgICAgICBiaWFzOiAwLjAwMSxcbiAgICAgICAgICAgIG1hcFNpemU6IDUxMixcbiAgICAgICAgICAgIHNpemU6IDUsXG4gICAgICAgICAgICBuZWFyOiAwLjUsXG4gICAgICAgICAgICBmYXI6IDUwMCxcbiAgICAgICAgICAgIGZyYW1lczogMSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBbMCwgMCwgMF0sXG4gICAgICAgICAgICByYWRpdXM6IDEsXG4gICAgICAgICAgICBhbW91bnQ6IDgsXG4gICAgICAgICAgICBpbnRlbnNpdHk6IDEsXG4gICAgICAgICAgICBhbWJpZW50OiAwLjUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnY2FtZXJhQXJncycsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ3NpemUnLCAnbmVhcicsICdmYXInXSwgKHsgc2l6ZSwgbmVhciwgZmFyIH0pID0+IFstc2l6ZSwgc2l6ZSwgc2l6ZSwgLXNpemUsIG5lYXIsIGZhcl0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdsZW5ndGgnLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoWydwb3NpdGlvbiddLCAoeyBwb3NpdGlvbiB9KSA9PiBuZXcgVEhSRUUuVmVjdG9yMyguLi5wb3NpdGlvbikubGVuZ3RoKCkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9taXplZC1saWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvYWNjdW11bGF0aXZlLXNoYWRvd3MvcmFuZG9taXplZC1saWdodHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3RSxPQUFPLEVBQW1DLDZCQUE2QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXhHLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsQ0FDN0IsQ0FBQztBQUVGLFNBQVMsMEJBQTBCLENBQUMsZ0JBQXNDO0lBQ3RFLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBRTlELE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtRQUNoQixJQUFJLEtBQXlDLENBQUM7UUFDOUMsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQzFDLEtBQUssSUFB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c0JBQWxCLEtBQUs7Z0JBS08sUUFBUTtzQkFBcEIsS0FBSztnQkFLTyxNQUFNO3NCQUFsQixLQUFLO2dCQUtPLE1BQU07c0JBQWxCLEtBQUs7Z0JBS08sU0FBUztzQkFBckIsS0FBSztnQkFLTyxPQUFPO3NCQUFuQixLQUFLO2dCQUtPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBS08sSUFBSTtzQkFBaEIsS0FBSztnQkFLTyxPQUFPO3NCQUFuQixLQUFLO2dCQUtPLElBQUk7c0JBQWhCLEtBQUs7Z0JBS08sSUFBSTtzQkFBaEIsS0FBSztnQkFLTyxHQUFHO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBOZ3RBcmdzLCBOZ3RSZXBlYXQsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IERpcmVjdGlvbmFsTGlnaHQsIEdyb3VwLCBPcnRob2dyYXBoaWNDYW1lcmEsIFZlY3RvcjIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c0xpZ2h0QXBpLCBOR1RTX0FDQ1VNVUxBVElWRV9TSEFET1dTX0FQSSB9IGZyb20gJy4vYWNjdW11bGF0aXZlLXNoYWRvd3MnO1xuXG5leHRlbmQoeyBHcm91cCwgRGlyZWN0aW9uYWxMaWdodCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBWZWN0b3IyIH0pO1xuXG5leHBvcnQgY29uc3QgTkdUU19SQU5ET01JWkVEX0xJR0hUU19BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NMaWdodEFwaT4oXG4gICAgJ05ndHNSYW5kb21pemVkTGlnaHRzIEFQSSdcbik7XG5cbmZ1bmN0aW9uIHJhbmRvbWl6ZWRMaWdodHNBcGlGYWN0b3J5KHJhbmRvbWl6ZWRMaWdodHM6IE5ndHNSYW5kb21pemVkTGlnaHRzKSB7XG4gICAgY29uc3QgYWNjdW11bGF0aXZlQXBpID0gaW5qZWN0KE5HVFNfQUNDVU1VTEFUSVZFX1NIQURPV1NfQVBJKTtcblxuICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IGxpZ2h0OiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0IHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAocmFuZG9taXplZExpZ2h0cy5saWdodHNSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgZm9yIChsZXQgbCA9IDA7IGwgPCByYW5kb21pemVkTGlnaHRzLmxpZ2h0c1JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgbCsrKSB7XG4gICAgICAgICAgICAgICAgbGlnaHQgPSByYW5kb21pemVkTGlnaHRzLmxpZ2h0c1JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuW2xdIGFzIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQ7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGgucmFuZG9tKCkgPiByYW5kb21pemVkTGlnaHRzLmdldCgnYW1iaWVudCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gcmFuZG9taXplZExpZ2h0cy5nZXQoJ3Bvc2l0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZGl1cyA9IHJhbmRvbWl6ZWRMaWdodHMuZ2V0KCdyYWRpdXMnKTtcbiAgICAgICAgICAgICAgICAgICAgbGlnaHQucG9zaXRpb24uc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25bMF0gKyBUSFJFRS5NYXRoVXRpbHMucmFuZEZsb2F0U3ByZWFkKHJhZGl1cyksXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblsxXSArIFRIUkVFLk1hdGhVdGlscy5yYW5kRmxvYXRTcHJlYWQocmFkaXVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uWzJdICsgVEhSRUUuTWF0aFV0aWxzLnJhbmRGbG9hdFNwcmVhZChyYWRpdXMpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFtYmRhID0gTWF0aC5hY29zKDIgKiBNYXRoLnJhbmRvbSgpIC0gMSkgLSBNYXRoLlBJIC8gMi4wO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwaGkgPSAyICogTWF0aC5QSSAqIE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHJhbmRvbWl6ZWRMaWdodHMuZ2V0KCdsZW5ndGgnKTtcbiAgICAgICAgICAgICAgICAgICAgbGlnaHQucG9zaXRpb24uc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5jb3MobGFtYmRhKSAqIE1hdGguY29zKHBoaSkgKiBsZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyhNYXRoLmNvcyhsYW1iZGEpICogTWF0aC5zaW4ocGhpKSAqIGxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbihsYW1iZGEpICogbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGFwaSA9IHsgdXBkYXRlIH0gYXMgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NMaWdodEFwaTtcblxuICAgIHJhbmRvbWl6ZWRMaWdodHMuZWZmZWN0KFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMubGlnaHRzUmVmLiQsXG4gICAgICAgICAgICByYW5kb21pemVkTGlnaHRzLnNlbGVjdCgncG9zaXRpb24nKSxcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMuc2VsZWN0KCdyYWRpdXMnKSxcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMuc2VsZWN0KCdsZW5ndGgnKSxcbiAgICAgICAgICAgIHJhbmRvbWl6ZWRMaWdodHMuc2VsZWN0KCdhbWJpZW50JyksXG4gICAgICAgIF0pLFxuICAgICAgICAoW2dyb3VwXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGl2ZUFwaSkgYWNjdW11bGF0aXZlQXBpLmxpZ2h0cy5zZXQoZ3JvdXAudXVpZCwgYXBpKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBhY2N1bXVsYXRpdmVBcGkubGlnaHRzLmRlbGV0ZShncm91cC51dWlkKTtcbiAgICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gYXBpO1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzLWNvbnN1bWVyJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIFJhbmRvbWl6ZWRMaWdodHNDb25zdW1lciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGluamVjdChOR1RTX1JBTkRPTUlaRURfTElHSFRTX0FQSSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtcmFuZG9taXplZC1saWdodHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1ncm91cCBuZ3RDb21wb3VuZCBbcmVmXT1cImxpZ2h0c1JlZlwiPlxuICAgICAgICAgICAgPG5ndC1kaXJlY3Rpb25hbC1saWdodFxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpOyByZXBlYXQ6IGdldCgnYW1vdW50JylcIlxuICAgICAgICAgICAgICAgIFtjYXN0U2hhZG93XT1cImdldCgnY2FzdFNoYWRvdycpXCJcbiAgICAgICAgICAgICAgICBbaW50ZW5zaXR5XT1cImdldCgnaW50ZW5zaXR5JykgLyBnZXQoJ2Ftb3VudCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJnZXQoJ2JpYXMnKVwiIGF0dGFjaD1cInNoYWRvdy5iaWFzXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZlY3RvcjIgKmFyZ3M9XCJbZ2V0KCdtYXBTaXplJyksIGdldCgnbWFwU2l6ZScpXVwiIGF0dGFjaD1cInNoYWRvdy5tYXBTaXplXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEgKmFyZ3M9XCJnZXQoJ2NhbWVyYUFyZ3MnKVwiIGF0dGFjaD1cInNoYWRvdy5jYW1lcmFcIiAvPlxuICAgICAgICAgICAgPC9uZ3QtZGlyZWN0aW9uYWwtbGlnaHQ+XG4gICAgICAgICAgICA8bmd0cy1yYW5kb21pemVkLWxpZ2h0cy1jb25zdW1lciAvPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtSYW5kb21pemVkTGlnaHRzQ29uc3VtZXIsIE5ndEFyZ3MsIE5ndFJlcGVhdF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTkdUU19SQU5ET01JWkVEX0xJR0hUU19BUEksIHVzZUZhY3Rvcnk6IHJhbmRvbWl6ZWRMaWdodHNBcGlGYWN0b3J5LCBkZXBzOiBbTmd0c1JhbmRvbWl6ZWRMaWdodHNdIH0sXG4gICAgXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNSYW5kb21pemVkTGlnaHRzIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgbGlnaHRzUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLkdyb3VwPigpO1xuICAgIC8qKiBIb3cgbWFueSBmcmFtZXMgaXQgd2lsbCBqaWdnbGUgdGhlIGxpZ2h0cywgMS5cbiAgICAgKiAgRnJhbWVzIGlzIGNvbnRleHQgYXdhcmUsIGlmIGEgcHJvdmlkZXIgbGlrZSBBY2N1bXVsYXRpdmVTaGFkb3dzIGV4aXN0cywgZnJhbWVzIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGVyZSEgICovXG4gICAgQElucHV0KCkgc2V0IGZyYW1lcyhmcmFtZXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZyYW1lcyB9KTtcbiAgICB9XG5cbiAgICAvKiogTGlnaHQgcG9zaXRpb24sIFswLCAwLCAwXSAqL1xuICAgIEBJbnB1dCgpIHNldCBwb3NpdGlvbihwb3NpdGlvbjogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcG9zaXRpb24gfSk7XG4gICAgfVxuXG4gICAgLyoqIFJhZGl1cyBvZiB0aGUgamlnZ2xlLCBoaWdoZXIgdmFsdWVzIG1ha2Ugc29mdGVyIGxpZ2h0LCA1ICovXG4gICAgQElucHV0KCkgc2V0IHJhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1cyB9KTtcbiAgICB9XG5cbiAgICAvKiogQW1vdW50IG9mIGxpZ2h0cywgOCAqL1xuICAgIEBJbnB1dCgpIHNldCBhbW91bnQoYW1vdW50OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbW91bnQgfSk7XG4gICAgfVxuXG4gICAgLyoqIExpZ2h0IGludGVuc2l0eSwgMSAqL1xuICAgIEBJbnB1dCgpIHNldCBpbnRlbnNpdHkoaW50ZW5zaXR5OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBpbnRlbnNpdHkgfSk7XG4gICAgfVxuXG4gICAgLyoqIEFtYmllbnQgb2NjbHVzaW9uLCBsb3dlciB2YWx1ZXMgbWVhbiBsZXNzIEFPLCBoaWdodCBtb3JlLCB5b3UgY2FuIG1peCBBTyBhbmQgZGlyZWN0aW9uYWwgbGlnaHQsIDAuNSAqL1xuICAgIEBJbnB1dCgpIHNldCBhbWJpZW50KGFtYmllbnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGFtYmllbnQgfSk7XG4gICAgfVxuXG4gICAgLyoqIElmIHRoZSBsaWdodHMgY2FzdCBzaGFkb3dzLCB0aGlzIGlzIHRydWUgYnkgZGVmYXVsdCAqL1xuICAgIEBJbnB1dCgpIHNldCBjYXN0U2hhZG93KGNhc3RTaGFkb3c6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjYXN0U2hhZG93IH0pO1xuICAgIH1cblxuICAgIC8qKiBEZWZhdWx0IHNoYWRvdyBiaWFzLCAwICovXG4gICAgQElucHV0KCkgc2V0IGJpYXMoYmlhczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmlhcyB9KTtcbiAgICB9XG5cbiAgICAvKiogRGVmYXVsdCBtYXAgc2l6ZSwgNTEyICovXG4gICAgQElucHV0KCkgc2V0IG1hcFNpemUobWFwU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWFwU2l6ZSB9KTtcbiAgICB9XG5cbiAgICAvKiogRGVmYXVsdCBzaXplIG9mIHRoZSBzaGFkb3cgY2FtZXJhLCAxMCAqL1xuICAgIEBJbnB1dCgpIHNldCBzaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNpemUgfSk7XG4gICAgfVxuXG4gICAgLyoqIERlZmF1bHQgc2hhZG93IGNhbWVyYSBuZWFyLCAwLjUgKi9cbiAgICBASW5wdXQoKSBzZXQgbmVhcihuZWFyOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBuZWFyIH0pO1xuICAgIH1cblxuICAgIC8qKiBEZWZhdWx0IHNoYWRvdyBjYW1lcmEgZmFyLCA1MDAgKi9cbiAgICBASW5wdXQoKSBzZXQgZmFyKGZhcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmFyIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgY2FzdFNoYWRvdzogdHJ1ZSxcbiAgICAgICAgICAgIGJpYXM6IDAuMDAxLFxuICAgICAgICAgICAgbWFwU2l6ZTogNTEyLFxuICAgICAgICAgICAgc2l6ZTogNSxcbiAgICAgICAgICAgIG5lYXI6IDAuNSxcbiAgICAgICAgICAgIGZhcjogNTAwLFxuICAgICAgICAgICAgZnJhbWVzOiAxLFxuICAgICAgICAgICAgcG9zaXRpb246IFswLCAwLCAwXSxcbiAgICAgICAgICAgIHJhZGl1czogMSxcbiAgICAgICAgICAgIGFtb3VudDogOCxcbiAgICAgICAgICAgIGludGVuc2l0eTogMSxcbiAgICAgICAgICAgIGFtYmllbnQ6IDAuNSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdjYW1lcmFBcmdzJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KFsnc2l6ZScsICduZWFyJywgJ2ZhciddLCAoeyBzaXplLCBuZWFyLCBmYXIgfSkgPT4gWy1zaXplLCBzaXplLCBzaXplLCAtc2l6ZSwgbmVhciwgZmFyXSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2xlbmd0aCcsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ3Bvc2l0aW9uJ10sICh7IHBvc2l0aW9uIH0pID0+IG5ldyBUSFJFRS5WZWN0b3IzKC4uLnBvc2l0aW9uKS5sZW5ndGgoKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|