angular-three 2.0.0-beta.230 → 2.0.0-beta.232

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.
Files changed (60) hide show
  1. package/esm2022/index.mjs +1 -2
  2. package/esm2022/lib/canvas.mjs +9 -11
  3. package/esm2022/lib/directives/args.mjs +12 -24
  4. package/esm2022/lib/directives/common.mjs +28 -5
  5. package/esm2022/lib/directives/parent.mjs +9 -24
  6. package/esm2022/lib/dom/events.mjs +1 -1
  7. package/esm2022/lib/events.mjs +12 -13
  8. package/esm2022/lib/instance.mjs +1 -1
  9. package/esm2022/lib/loader.mjs +2 -2
  10. package/esm2022/lib/loop.mjs +8 -20
  11. package/esm2022/lib/portal.mjs +22 -25
  12. package/esm2022/lib/ref.mjs +1 -1
  13. package/esm2022/lib/renderer/index.mjs +69 -68
  14. package/esm2022/lib/renderer/store.mjs +98 -104
  15. package/esm2022/lib/renderer/utils.mjs +4 -35
  16. package/esm2022/lib/roots.mjs +20 -21
  17. package/esm2022/lib/routed-scene.mjs +3 -3
  18. package/esm2022/lib/store.mjs +8 -8
  19. package/esm2022/lib/three-types.mjs +1 -1
  20. package/esm2022/lib/utils/apply-props.mjs +13 -13
  21. package/esm2022/lib/utils/attach.mjs +1 -1
  22. package/esm2022/lib/utils/before-render.mjs +2 -2
  23. package/esm2022/lib/utils/create-api-token.mjs +1 -1
  24. package/esm2022/lib/utils/is.mjs +1 -1
  25. package/esm2022/lib/utils/make.mjs +7 -8
  26. package/esm2022/lib/utils/signal-store.mjs +1 -1
  27. package/esm2022/lib/utils/update.mjs +1 -1
  28. package/fesm2022/angular-three.mjs +295 -370
  29. package/fesm2022/angular-three.mjs.map +1 -1
  30. package/index.d.ts +0 -1
  31. package/lib/canvas.d.ts +798 -793
  32. package/lib/directives/args.d.ts +4 -5
  33. package/lib/directives/common.d.ts +8 -3
  34. package/lib/directives/parent.d.ts +5 -7
  35. package/lib/dom/events.d.ts +3 -3
  36. package/lib/events.d.ts +13 -13
  37. package/lib/instance.d.ts +6 -6
  38. package/lib/loader.d.ts +5 -5
  39. package/lib/loop.d.ts +2 -26
  40. package/lib/portal.d.ts +15 -17
  41. package/lib/ref.d.ts +2 -2
  42. package/lib/renderer/index.d.ts +6 -6
  43. package/lib/renderer/store.d.ts +4 -4
  44. package/lib/renderer/utils.d.ts +1 -1
  45. package/lib/roots.d.ts +3 -3
  46. package/lib/store.d.ts +18 -18
  47. package/lib/three-types.d.ts +132 -134
  48. package/lib/utils/apply-props.d.ts +2 -2
  49. package/lib/utils/attach.d.ts +4 -4
  50. package/lib/utils/before-render.d.ts +1 -1
  51. package/lib/utils/create-api-token.d.ts +2 -2
  52. package/lib/utils/is.d.ts +11 -11
  53. package/lib/utils/make.d.ts +10 -10
  54. package/lib/utils/signal-store.d.ts +1 -1
  55. package/lib/utils/update.d.ts +1 -1
  56. package/metadata.json +1 -1
  57. package/package.json +71 -71
  58. package/web-types.json +1 -1
  59. package/esm2022/lib/utils/inputs.mjs +0 -18
  60. package/lib/utils/inputs.d.ts +0 -5
package/esm2022/index.mjs CHANGED
@@ -12,9 +12,8 @@ export * from './lib/utils/apply-props';
12
12
  export { createAttachFunction } from './lib/utils/attach';
13
13
  export * from './lib/utils/before-render';
14
14
  export * from './lib/utils/create-api-token';
15
- export * from './lib/utils/inputs';
16
15
  export * from './lib/utils/is';
17
16
  export * from './lib/utils/make';
18
17
  export * from './lib/utils/signal-store';
19
18
  export * from './lib/utils/update';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FudmFzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXInO1xuZXhwb3J0IHsgYWRkQWZ0ZXJFZmZlY3QsIGFkZEVmZmVjdCwgYWRkVGFpbCB9IGZyb20gJy4vbGliL2xvb3AnO1xuZXhwb3J0IHsgTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50IH0gZnJvbSAnLi9saWIvcG9ydGFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZW5kZXJlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yb3V0ZWQtc2NlbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvYXBwbHktcHJvcHMnO1xuZXhwb3J0IHsgY3JlYXRlQXR0YWNoRnVuY3Rpb24gfSBmcm9tICcuL2xpYi91dGlscy9hdHRhY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvYmVmb3JlLXJlbmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9jcmVhdGUtYXBpLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2lucHV0cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9tYWtlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgdHlwZSB7IE5ndENhbWVyYSwgTmd0VGhyZWVFdmVudCB9IGZyb20gJy4vbGliL2V2ZW50cyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vbGliL3RocmVlLXR5cGVzJztcbmV4cG9ydCB0eXBlICogZnJvbSAnLi9saWIvdHlwZXMnO1xuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NhbnZhcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2FyZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGVyJztcbmV4cG9ydCB7IGFkZEFmdGVyRWZmZWN0LCBhZGRFZmZlY3QsIGFkZFRhaWwgfSBmcm9tICcuL2xpYi9sb29wJztcbmV4cG9ydCB7IE5ndFBvcnRhbCwgTmd0UG9ydGFsQ29udGVudCB9IGZyb20gJy4vbGliL3BvcnRhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcm91dGVkLXNjZW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2FwcGx5LXByb3BzJztcbmV4cG9ydCB7IGNyZWF0ZUF0dGFjaEZ1bmN0aW9uIH0gZnJvbSAnLi9saWIvdXRpbHMvYXR0YWNoJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2JlZm9yZS1yZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY3JlYXRlLWFwaS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9tYWtlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgdHlwZSB7IE5ndENhbWVyYSwgTmd0VGhyZWVFdmVudCB9IGZyb20gJy4vbGliL2V2ZW50cyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vbGliL3RocmVlLXR5cGVzJztcbmV4cG9ydCB0eXBlICogZnJvbSAnLi9saWIvdHlwZXMnO1xuIl19
@@ -2,13 +2,11 @@ import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Environment
2
2
  import { outputFromObservable } from '@angular/core/rxjs-interop';
3
3
  import { injectAutoEffect } from 'ngxtension/auto-effect';
4
4
  import { NgxResize, provideResizeOptions } from 'ngxtension/resize';
5
- import * as THREE from 'three';
6
5
  import { createPointerEvents } from './dom/events';
7
6
  import { provideNgtRenderer } from './renderer';
8
7
  import { injectCanvasRootInitializer } from './roots';
9
- import { injectNgtStore, provideNgtStore, } from './store';
8
+ import { injectNgtStore, provideNgtStore } from './store';
10
9
  import { is } from './utils/is';
11
- import {} from './utils/signal-store';
12
10
  import * as i0 from "@angular/core";
13
11
  export class NgtCanvas {
14
12
  constructor() {
@@ -16,6 +14,7 @@ export class NgtCanvas {
16
14
  this.initRoot = injectCanvasRootInitializer();
17
15
  this.autoEffect = injectAutoEffect();
18
16
  this.host = inject(ElementRef);
17
+ this.viewContainerRef = inject(ViewContainerRef);
19
18
  this.zone = inject(NgZone);
20
19
  this.environmentInjector = inject(EnvironmentInjector);
21
20
  this.injector = inject(Injector);
@@ -26,9 +25,8 @@ export class NgtCanvas {
26
25
  this.size = input();
27
26
  this.shadows = input(false, {
28
27
  transform: (value) => {
29
- if (value === '') {
28
+ if (value === '')
30
29
  return booleanAttribute(value);
31
- }
32
30
  return value;
33
31
  },
34
32
  });
@@ -130,10 +128,10 @@ export class NgtCanvas {
130
128
  // emit created event if observed
131
129
  this.created.emit(this.store.snapshot);
132
130
  if (!this.store.get('events', 'connected')) {
133
- this.store.get('events').connect?.(this.glCanvas().nativeElement);
131
+ this.store.get('events').connect?.(untracked(this.glCanvas).nativeElement);
134
132
  }
135
133
  this.glEnvironmentInjector = createEnvironmentInjector([provideNgtRenderer(this.store, untracked(this.compoundPrefixes))], this.environmentInjector);
136
- this.glRef = untracked(this.glCanvasViewContainerRef).createComponent(untracked(this.sceneGraph), {
134
+ this.glRef = this.viewContainerRef.createComponent(untracked(this.sceneGraph), {
137
135
  environmentInjector: this.glEnvironmentInjector,
138
136
  injector: this.injector,
139
137
  });
@@ -152,8 +150,8 @@ export class NgtCanvas {
152
150
  }
153
151
  }
154
152
  }
155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.0", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, compoundPrefixes: { classPropertyName: "compoundPrefixes", publicName: "compoundPrefixes", isSignal: true, isRequired: false, transformFunction: null }, sceneGraphInputs: { classPropertyName: "sceneGraphInputs", publicName: "sceneGraphInputs", isSignal: true, isRequired: false, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventSource: { classPropertyName: "eventSource", publicName: "eventSource", isSignal: true, isRequired: false, transformFunction: null }, eventPrefix: { classPropertyName: "eventPrefix", publicName: "eventPrefix", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "style.pointerEvents": "hbPointerEvents()" }, styleAttribute: "display: block;position: relative;width: 100%;height: 100%;overflow: hidden;" }, providers: [
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, compoundPrefixes: { classPropertyName: "compoundPrefixes", publicName: "compoundPrefixes", isSignal: true, isRequired: false, transformFunction: null }, sceneGraphInputs: { classPropertyName: "sceneGraphInputs", publicName: "sceneGraphInputs", isSignal: true, isRequired: false, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventSource: { classPropertyName: "eventSource", publicName: "eventSource", isSignal: true, isRequired: false, transformFunction: null }, eventPrefix: { classPropertyName: "eventPrefix", publicName: "eventPrefix", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "style.pointerEvents": "hbPointerEvents()" }, styleAttribute: "display: block;position: relative;width: 100%;height: 100%;overflow: hidden;" }, providers: [
157
155
  provideResizeOptions({ emitInZone: false, emitInitialResult: true, debounce: 250 }),
158
156
  provideNgtStore(),
159
157
  ], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, isSignal: true }, { propertyName: "glCanvasViewContainerRef", first: true, predicate: ["glCanvas"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
@@ -162,7 +160,7 @@ export class NgtCanvas {
162
160
  </div>
163
161
  `, isInline: true, dependencies: [{ kind: "directive", type: NgxResize, selector: "[ngxResize]", inputs: ["ngxResizeOptions"], outputs: ["ngxResize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
164
162
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtCanvas, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCanvas, decorators: [{
166
164
  type: Component,
167
165
  args: [{
168
166
  selector: 'ngt-canvas',
@@ -184,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
184
182
  changeDetection: ChangeDetectionStrategy.OnPush,
185
183
  }]
186
184
  }], ctorParameters: () => [] });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FHVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUF5QyxNQUFNLG1CQUFtQixDQUFDO0FBQzNHLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLDJCQUEyQixFQUFxRCxNQUFNLFNBQVMsQ0FBQztBQUN6RyxPQUFPLEVBQ04sY0FBYyxFQUNkLGVBQWUsR0FNZixNQUFNLFNBQVMsQ0FBQztBQUdqQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQzs7QUF1RjNELE1BQU0sT0FBTyxTQUFTO0lBc0RyQjtRQXJEUSxVQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDekMsZUFBVSxHQUFH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QUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0RW52aXJvbm1lbnRJbmplY3Rvcixcblx0SW5qZWN0b3IsXG5cdE5nWm9uZSxcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0Y3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxuXHR0eXBlIENvbXBvbmVudFJlZixcblx0dHlwZSBUeXBlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgTmd4UmVzaXplLCBwcm92aWRlUmVzaXplT3B0aW9ucywgdHlwZSBSZXNpemVPcHRpb25zLCB0eXBlIFJlc2l6ZVJlc3VsdCB9IGZyb20gJ25neHRlbnNpb24vcmVzaXplJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL2RvbS9ldmVudHMnO1xuaW1wb3J0IHR5cGUgeyBOZ3RDYW1lcmEsIE5ndERvbUV2ZW50LCBOZ3RFdmVudE1hbmFnZXIgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBwcm92aWRlTmd0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyJztcbmltcG9ydCB7IGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplciwgdHlwZSBOZ3RDYW52YXNDb25maWd1cmF0b3IsIHR5cGUgTmd0Q2FudmFzRWxlbWVudCB9IGZyb20gJy4vcm9vdHMnO1xuaW1wb3J0IHtcblx0aW5qZWN0Tmd0U3RvcmUsXG5cdHByb3ZpZGVOZ3RTdG9yZSxcblx0dHlwZSBOZ3REcHIsXG5cdHR5cGUgTmd0UGVyZm9ybWFuY2UsXG5cdHR5cGUgTmd0UmVuZGVyZXJMaWtlLFxuXHR0eXBlIE5ndFNpemUsXG5cdHR5cGUgTmd0U3RhdGUsXG59IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RPYmplY3QzRE5vZGUgfSBmcm9tICcuL3RocmVlLXR5cGVzJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkLCBOZ3RQcm9wZXJ0aWVzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgdHlwZSBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxUSFJFRS5XZWJHTFJlbmRlcmVyPiB8IFRIUkVFLldlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgTmd0Q2FudmFzSW5wdXRzID0ge1xuXHQvKiogQSB0aHJlZWpzIHJlbmRlcmVyIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByZW5kZXJlciAqL1xuXHRnbD86IE5ndEdMT3B0aW9ucztcblx0LyoqIERpbWVuc2lvbnMgdG8gZml0IHRoZSByZW5kZXJlciB0by4gV2lsbCBtZWFzdXJlIGNhbnZhcyBkaW1lbnNpb25zIGlmIG9taXR0ZWQgKi9cblx0c2l6ZT86IE5ndFNpemU7XG5cdC8qKlxuXHQgKiBFbmFibGVzIHNoYWRvd3MgKGJ5IGRlZmF1bHQgUENGc29mdCkuIENhbiBhY2NlcHQgYGdsLnNoYWRvd01hcGAgb3B0aW9ucyBmb3IgZmluZS10dW5pbmcsXG5cdCAqIGJ1dCBhbHNvIHN0cmluZ3M6ICdiYXNpYycgfCAncGVyY2VudGFnZScgfCAnc29mdCcgfCAndmFyaWFuY2UnLlxuXHQgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jYXBpL2VuL3JlbmRlcmVycy9XZWJHTFJlbmRlcmVyLnNoYWRvd01hcFxuXHQgKi9cblx0c2hhZG93cz86IGJvb2xlYW4gfCAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJyB8IFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+O1xuXHQvKipcblx0ICogRGlzYWJsZXMgdGhyZWUgcjEzOSBjb2xvciBtYW5hZ2VtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jbWFudWFsL2VuL2ludHJvZHVjdGlvbi9Db2xvci1tYW5hZ2VtZW50XG5cdCAqL1xuXHRsZWdhY3k/OiBib29sZWFuO1xuXHQvKiogU3dpdGNoIG9mZiBhdXRvbWF0aWMgc1JHQiBjb2xvciBzcGFjZSBhbmQgZ2FtbWEgY29ycmVjdGlvbiAqL1xuXHRsaW5lYXI/OiBib29sZWFuO1xuXHQvKiogVXNlIGBUSFJFRS5Ob1RvbmVNYXBwaW5nYCBpbnN0ZWFkIG9mIGBUSFJFRS5BQ0VTRmlsbWljVG9uZU1hcHBpbmdgICovXG5cdGZsYXQ/OiBib29sZWFuO1xuXHQvKiogQ3JlYXRlcyBhbiBvcnRob2dyYXBoaWMgY2FtZXJhICovXG5cdG9ydGhvZ3JhcGhpYz86IGJvb2xlYW47XG5cdC8qKlxuXHQgKiBSM0YncyByZW5kZXIgbW9kZS4gU2V0IHRvIGBkZW1hbmRgIHRvIG9ubHkgcmVuZGVyIG9uIHN0YXRlIGNoYW5nZSBvciBgbmV2ZXJgIHRvIHRha2UgY29udHJvbC5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI29uLWRlbWFuZC1yZW5kZXJpbmdcblx0ICovXG5cdGZyYW1lbG9vcD86ICdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInO1xuXHQvKipcblx0ICogUjNGIHBlcmZvcm1hbmNlIG9wdGlvbnMgZm9yIGFkYXB0aXZlIHBlcmZvcm1hbmNlLlxuXHQgKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FkdmFuY2VkL3NjYWxpbmctcGVyZm9ybWFuY2UjbW92ZW1lbnQtcmVncmVzc2lvblxuXHQgKi9cblx0cGVyZm9ybWFuY2U/OiBQYXJ0aWFsPE9taXQ8Tmd0UGVyZm9ybWFuY2UsICdyZWdyZXNzJz4+O1xuXHQvKiogVGFyZ2V0IHBpeGVsIHJhdGlvLiBDYW4gY2xhbXAgYmV0d2VlbiBhIHJhbmdlOiBgW21pbiwgbWF4XWAgKi9cblx0ZHByPzogTmd0RHByO1xuXHQvKiogUHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHJheWNhc3RlciAqL1xuXHRyYXljYXN0ZXI/OiBQYXJ0aWFsPFRIUkVFLlJheWNhc3Rlcj47XG5cdC8qKiBBIGBUSFJFRS5TY2VuZWAgaW5zdGFuY2Ugb3IgcHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHNjZW5lICovXG5cdHNjZW5lPzogVEhSRUUuU2NlbmUgfCBQYXJ0aWFsPFRIUkVFLlNjZW5lPjtcblx0LyoqIEEgYENhbWVyYWAgaW5zdGFuY2Ugb3IgcHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IGNhbWVyYSAqL1xuXHRjYW1lcmE/OiAoXG5cdFx0fCBOZ3RDYW1lcmFcblx0XHR8IFBhcnRpYWw8XG5cdFx0XHRcdE5ndE9iamVjdDNETm9kZTxUSFJFRS5DYW1lcmEsIHR5cGVvZiBUSFJFRS5DYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8VEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEsIHR5cGVvZiBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYT4gJlxuXHRcdFx0XHRcdE5ndE9iamVjdDNETm9kZTxUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmE+XG5cdFx0ICA+XG5cdCkgJiB7XG5cdFx0LyoqIEZsYWdzIHRoZSBjYW1lcmEgYXMgbWFudWFsLCBwdXR0aW5nIHByb2plY3Rpb24gaW50byB5b3VyIG93biBoYW5kcyAqL1xuXHRcdG1hbnVhbD86IGJvb2xlYW47XG5cdH07XG5cdC8qKiBBbiBSM0YgZXZlbnQgbWFuYWdlciB0byBtYW5hZ2UgZWxlbWVudHMnIHBvaW50ZXIgZXZlbnRzICovXG5cdGV2ZW50cz86IChzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSA9PiBOZ3RFdmVudE1hbmFnZXI8SFRNTEVsZW1lbnQ+O1xuXHQvKiogVGhlIHRhcmdldCB3aGVyZSBldmVudHMgYXJlIGJlaW5nIHN1YnNjcmliZWQgdG8sIGRlZmF1bHQ6IHRoZSBkaXYgdGhhdCB3cmFwcyBjYW52YXMgKi9cblx0ZXZlbnRTb3VyY2U/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXHQvKiogVGhlIGV2ZW50IHByZWZpeCB0aGF0IGlzIGNhc3QgaW50byBjYW52YXMgcG9pbnRlciB4L3kgZXZlbnRzLCBkZWZhdWx0OiBcIm9mZnNldFwiICovXG5cdGV2ZW50UHJlZml4PzogJ29mZnNldCcgfCAnY2xpZW50JyB8ICdwYWdlJyB8ICdsYXllcicgfCAnc2NyZWVuJztcblx0LyoqIERlZmF1bHQgY29vcmRpbmF0ZSBmb3IgdGhlIGNhbWVyYSB0byBsb29rIGF0ICovXG5cdGxvb2tBdD86IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPjtcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgKG5neFJlc2l6ZSk9XCJyZXNpemVSZXN1bHQuc2V0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7XCI+XG5cdFx0XHQ8Y2FudmFzICNnbENhbnZhcyBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPjwvY2FudmFzPlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd4UmVzaXplXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVJlc2l6ZU9wdGlvbnMoeyBlbWl0SW5ab25lOiBmYWxzZSwgZW1pdEluaXRpYWxSZXN1bHQ6IHRydWUsIGRlYm91bmNlOiAyNTAgfSBhcyBSZXNpemVPcHRpb25zKSxcblx0XHRwcm92aWRlTmd0U3RvcmUoKSxcblx0XSxcblx0aG9zdDoge1xuXHRcdHN0eWxlOiAnZGlzcGxheTogYmxvY2s7cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtvdmVyZmxvdzogaGlkZGVuOycsXG5cdFx0J1tzdHlsZS5wb2ludGVyRXZlbnRzXSc6ICdoYlBvaW50ZXJFdmVudHMoKScsXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RDYW52YXMge1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbml0Um9vdCA9IGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcigpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0cHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgZW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblx0cHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cblx0c2NlbmVHcmFwaCA9IGlucHV0LnJlcXVpcmVkPFR5cGU8YW55Pj4oKTtcblx0Y29tcG91bmRQcmVmaXhlcyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG5cdHNjZW5lR3JhcGhJbnB1dHMgPSBpbnB1dDxOZ3RBbnlSZWNvcmQ+KHt9KTtcblx0Z2wgPSBpbnB1dDxOZ3RHTE9wdGlvbnM+KCk7XG5cdHNpemUgPSBpbnB1dDxOZ3RTaXplPigpO1xuXHRzaGFkb3dzID0gaW5wdXQ8RXhjbHVkZTxOZ3RDYW52YXNJbnB1dHNbJ3NoYWRvd3MnXSwgdW5kZWZpbmVkPiwgdW5rbm93bj4oZmFsc2UsIHtcblx0XHR0cmFuc2Zvcm06ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuXHRcdFx0aWYgKHZhbHVlID09PSAnJykge1xuXHRcdFx0XHRyZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB2YWx1ZSBhcyBFeGNsdWRlPE5ndENhbnZhc0lucHV0c1snc2hhZG93cyddLCB1bmRlZmluZWQ+O1xuXHRcdH0sXG5cdH0pO1xuXHRsZWdhY3kgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGxpbmVhciA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0ZmxhdCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0b3J0aG9ncmFwaGljID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRmcmFtZWxvb3AgPSBpbnB1dDxOZ3RDYW52YXNJbnB1dHNbJ2ZyYW1lbG9vcCddPignYWx3YXlzJyk7XG5cdHBlcmZvcm1hbmNlID0gaW5wdXQ8Tmd0Q2FudmFzSW5wdXRzWydwZXJmb3JtYW5jZSddPigpO1xuXHRkcHIgPSBpbnB1dDxOZ3REcHI+KFsxLCAyXSk7XG5cdHJheWNhc3RlciA9IGlucHV0PE5ndENhbnZhc0lucHV0c1sncmF5Y2FzdGVyJ10+KCk7XG5cdHNjZW5lID0gaW5wdXQ8Tmd0Q2FudmFzSW5wdXRzWydzY2VuZSddPigpO1xuXHRjYW1lcmEgPSBpbnB1dDxOZ3RDYW52YXNJbnB1dHNbJ2NhbWVyYSddPigpO1xuXHRldmVudHMgPSBpbnB1dDxOZ3RDYW52YXNJbnB1dHNbJ2V2ZW50cyddPihjcmVhdGVQb2ludGVyRXZlbnRzKTtcblx0ZXZlbnRTb3VyY2UgPSBpbnB1dDxOZ3RDYW52YXNJbnB1dHNbJ2V2ZW50U291cmNlJ10+KCk7XG5cdGV2ZW50UHJlZml4ID0gaW5wdXQ8Tmd0Q2FudmFzSW5wdXRzWydldmVudFByZWZpeCddPignb2Zmc2V0Jyk7XG5cdGxvb2tBdCA9IGlucHV0PE5ndENhbnZhc0lucHV0c1snbG9va0F0J10+KCk7XG5cblx0Y3JlYXRlZCA9IG91dHB1dDxOZ3RTdGF0ZT4oKTtcblx0cG9pbnRlck1pc3NlZCA9IG91dHB1dEZyb21PYnNlcnZhYmxlKHRoaXMuc3RvcmUuZ2V0KCdwb2ludGVyTWlzc2VkJCcpKTtcblxuXHRnbENhbnZhcyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50Pj4oJ2dsQ2FudmFzJyk7XG5cdGdsQ2FudmFzVmlld0NvbnRhaW5lclJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnZ2xDYW52YXMnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSk7XG5cblx0Ly8gTk9URTogdGhpcyBzaWduYWwgaXMgdXBkYXRlZCBvdXRzaWRlIG9mIFpvbmVcblx0cHJvdGVjdGVkIHJlc2l6ZVJlc3VsdCA9IHNpZ25hbDxSZXNpemVSZXN1bHQ+KHt9IGFzIFJlc2l6ZVJlc3VsdCwgeyBlcXVhbDogT2JqZWN0LmlzIH0pO1xuXG5cdHByb3RlY3RlZCBoYlBvaW50ZXJFdmVudHMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ldmVudFNvdXJjZSgpID8gJ25vbmUnIDogJ2F1dG8nKSk7XG5cblx0cHJpdmF0ZSBjb25maWd1cmF0b3I/OiBOZ3RDYW52YXNDb25maWd1cmF0b3I7XG5cdHByaXZhdGUgZ2xFbnZpcm9ubWVudEluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3Rvcjtcblx0cHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5ub1pvbmVSZXNpemVFZmZlY3QoKTtcblx0XHRcdFx0dGhpcy5ub1pvbmVTY2VuZUdyYXBoSW5wdXRzRWZmZWN0KCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3I/LmRlc3Ryb3koKTtcblx0XHRcdHRoaXMuY29uZmlndXJhdG9yPy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG5vWm9uZVJlc2l6ZUVmZmVjdCgpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzaXplUmVzdWx0ID0gdGhpcy5yZXNpemVSZXN1bHQoKTtcblx0XHRcdGlmIChyZXNpemVSZXN1bHQud2lkdGggPiAwICYmIHJlc2l6ZVJlc3VsdC5oZWlnaHQgPiAwKSB7XG5cdFx0XHRcdGlmICghdGhpcy5jb25maWd1cmF0b3IpIHRoaXMuY29uZmlndXJhdG9yID0gdGhpcy5pbml0Um9vdCh0aGlzLmdsQ2FudmFzKCkubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRcdHRoaXMuY29uZmlndXJhdG9yLmNvbmZpZ3VyZSh7XG5cdFx0XHRcdFx0Z2w6IHRoaXMuZ2woKSxcblx0XHRcdFx0XHRzaGFkb3dzOiB0aGlzLnNoYWRvd3MoKSxcblx0XHRcdFx0XHRsZWdhY3k6IHRoaXMubGVnYWN5KCksXG5cdFx0XHRcdFx0bGluZWFyOiB0aGlzLmxpbmVhcigpLFxuXHRcdFx0XHRcdGZsYXQ6IHRoaXMuZmxhdCgpLFxuXHRcdFx0XHRcdG9ydGhvZ3JhcGhpYzogdGhpcy5vcnRob2dyYXBoaWMoKSxcblx0XHRcdFx0XHRmcmFtZWxvb3A6IHRoaXMuZnJhbWVsb29wKCksXG5cdFx0XHRcdFx0cGVyZm9ybWFuY2U6IHRoaXMucGVyZm9ybWFuY2UoKSxcblx0XHRcdFx0XHRkcHI6IHRoaXMuZHByKCksXG5cdFx0XHRcdFx0cmF5Y2FzdGVyOiB0aGlzLnJheWNhc3RlcigpLFxuXHRcdFx0XHRcdHNjZW5lOiB0aGlzLnNjZW5lKCksXG5cdFx0XHRcdFx0Y2FtZXJhOiB0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XHRcdGV2ZW50czogdGhpcy5ldmVudHMoKSxcblx0XHRcdFx0XHRldmVudFNvdXJjZTogdGhpcy5ldmVudFNvdXJjZSgpLFxuXHRcdFx0XHRcdGV2ZW50UHJlZml4OiB0aGlzLmV2ZW50UHJlZml4KCksXG5cdFx0XHRcdFx0bG9va0F0OiB0aGlzLmxvb2tBdCgpLFxuXHRcdFx0XHRcdHNpemU6IHJlc2l6ZVJlc3VsdCxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5nbFJlZikge1xuXHRcdFx0XHRcdFx0dGhpcy5nbFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMubm9ab25lUmVuZGVyKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lUmVuZGVyKCkge1xuXHRcdC8vIE5PVEU6IGRlc3Ryb3kgcHJldmlvdXMgaW5zdGFuY2VzIGlmIGV4aXN0ZWRcblx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcj8uZGVzdHJveSgpO1xuXHRcdHRoaXMuZ2xSZWY/LmRlc3Ryb3koKTtcblxuXHRcdC8vIE5PVEU6IEZsYWcgdGhlIGNhbnZhcyBhY3RpdmUsIHJlbmRlcmluZyB3aWxsIG5vdyBiZWdpblxuXHRcdHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHsgaW50ZXJuYWw6IHsgLi4uc3RhdGUuaW50ZXJuYWwsIGFjdGl2ZTogdHJ1ZSB9IH0pKTtcblxuXHRcdGNvbnN0IFtzdGF0ZSwgZXZlbnRTb3VyY2UsIGV2ZW50UHJlZml4XSA9IFtcblx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QsXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5ldmVudFNvdXJjZSksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5ldmVudFByZWZpeCksXG5cdFx0XTtcblxuXHRcdC8vIGNvbm5lY3QgdG8gZXZlbnQgc291cmNlXG5cdFx0c3RhdGUuZXZlbnRzLmNvbm5lY3Q/Lihcblx0XHRcdGV2ZW50U291cmNlID8gKGlzLnJlZihldmVudFNvdXJjZSkgPyBldmVudFNvdXJjZS5uYXRpdmVFbGVtZW50IDogZXZlbnRTb3VyY2UpIDogdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsXG5cdFx0KTtcblxuXHRcdC8vIHNldHVwIGNvbXB1dGUgZm9yIGV2ZW50UHJlZml4XG5cdFx0aWYgKGV2ZW50UHJlZml4KSB7XG5cdFx0XHRzdGF0ZS5zZXRFdmVudHMoe1xuXHRcdFx0XHRjb21wdXRlOiAoZXZlbnQsIHN0b3JlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBwb2ludGVyLCByYXljYXN0ZXIsIGNhbWVyYSwgc2l6ZSB9ID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0Y29uc3QgeCA9IGV2ZW50WyhldmVudFByZWZpeCArICdYJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcblx0XHRcdFx0XHRjb25zdCB5ID0gZXZlbnRbKGV2ZW50UHJlZml4ICsgJ1knKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuXHRcdFx0XHRcdHBvaW50ZXIuc2V0KCh4IC8gc2l6ZS53aWR0aCkgKiAyIC0gMSwgLSh5IC8gc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuXHRcdFx0XHRcdHJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHBvaW50ZXIsIGNhbWVyYSk7XG5cdFx0XHRcdH0sXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHQvLyBlbWl0IGNyZWF0ZWQgZXZlbnQgaWYgb2JzZXJ2ZWRcblx0XHR0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLnNuYXBzaG90KTtcblxuXHRcdGlmICghdGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKSkge1xuXHRcdFx0dGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycpLmNvbm5lY3Q/Lih0aGlzLmdsQ2FudmFzKCkubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3IgPSBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yKFxuXHRcdFx0W3Byb3ZpZGVOZ3RSZW5kZXJlcih0aGlzLnN0b3JlLCB1bnRyYWNrZWQodGhpcy5jb21wb3VuZFByZWZpeGVzKSldLFxuXHRcdFx0dGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuXHRcdCk7XG5cdFx0dGhpcy5nbFJlZiA9IHVudHJhY2tlZCh0aGlzLmdsQ2FudmFzVmlld0NvbnRhaW5lclJlZikuY3JlYXRlQ29tcG9uZW50KHVudHJhY2tlZCh0aGlzLnNjZW5lR3JhcGgpLCB7XG5cdFx0XHRlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcixcblx0XHRcdGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuXHRcdH0pO1xuXG5cdFx0dGhpcy5nbFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0dGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKHVudHJhY2tlZCh0aGlzLnNjZW5lR3JhcGhJbnB1dHMpKTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lU2NlbmVHcmFwaElucHV0c0VmZmVjdCgpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKHRoaXMuc2NlbmVHcmFwaElucHV0cygpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0U2NlbmVHcmFwaElucHV0cyhzY2VuZUdyYXBoSW5wdXRzOiBOZ3RBbnlSZWNvcmQpIHtcblx0XHRpZiAodGhpcy5nbFJlZikge1xuXHRcdFx0Zm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc2NlbmVHcmFwaElucHV0cykpIHtcblx0XHRcdFx0dGhpcy5nbFJlZi5zZXRJbnB1dChrZXksIHZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUErQixvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBWWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUEyQywyQkFBMkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvRixPQUFPLEVBQThELGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHdEgsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUF3RmhDLE1BQU0sT0FBTyxTQUFTO0lBa0RyQjtRQWpEUSxVQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDekMsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDbkQscUJB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ZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdENvbXBvbmVudFJlZixcblx0RGVzdHJveVJlZixcblx0RWxlbWVudFJlZixcblx0RW52aXJvbm1lbnRJbmplY3Rvcixcblx0SW5qZWN0b3IsXG5cdE5nWm9uZSxcblx0VHlwZSxcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRib29sZWFuQXR0cmlidXRlLFxuXHRjb21wdXRlZCxcblx0Y3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG91dHB1dEZyb21PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgTmd4UmVzaXplLCBSZXNpemVPcHRpb25zLCBSZXNpemVSZXN1bHQsIHByb3ZpZGVSZXNpemVPcHRpb25zIH0gZnJvbSAnbmd4dGVuc2lvbi9yZXNpemUnO1xuaW1wb3J0IHtcblx0Q2FtZXJhLFxuXHRPcnRob2dyYXBoaWNDYW1lcmEsXG5cdFBlcnNwZWN0aXZlQ2FtZXJhLFxuXHRSYXljYXN0ZXIsXG5cdFNjZW5lLFxuXHRWZWN0b3IzLFxuXHRXZWJHTFJlbmRlcmVyLFxuXHRXZWJHTFJlbmRlcmVyUGFyYW1ldGVycyxcblx0V2ViR0xTaGFkb3dNYXAsXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGNyZWF0ZVBvaW50ZXJFdmVudHMgfSBmcm9tICcuL2RvbS9ldmVudHMnO1xuaW1wb3J0IHsgTmd0Q2FtZXJhLCBOZ3REb21FdmVudCwgTmd0RXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgcHJvdmlkZU5ndFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XG5pbXBvcnQgeyBOZ3RDYW52YXNDb25maWd1cmF0b3IsIE5ndENhbnZhc0VsZW1lbnQsIGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplciB9IGZyb20gJy4vcm9vdHMnO1xuaW1wb3J0IHsgTmd0RHByLCBOZ3RQZXJmb3JtYW5jZSwgTmd0UmVuZGVyZXJMaWtlLCBOZ3RTaXplLCBOZ3RTdGF0ZSwgaW5qZWN0Tmd0U3RvcmUsIHByb3ZpZGVOZ3RTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgTmd0T2JqZWN0M0ROb2RlIH0gZnJvbSAnLi90aHJlZS10eXBlcyc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIE5ndFByb3BlcnRpZXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxXZWJHTFJlbmRlcmVyPiB8IFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RDYW52YXNJbnB1dHMge1xuXHQvKiogQSB0aHJlZWpzIHJlbmRlcmVyIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByZW5kZXJlciAqL1xuXHRnbD86IE5ndEdMT3B0aW9ucztcblx0LyoqIERpbWVuc2lvbnMgdG8gZml0IHRoZSByZW5kZXJlciB0by4gV2lsbCBtZWFzdXJlIGNhbnZhcyBkaW1lbnNpb25zIGlmIG9taXR0ZWQgKi9cblx0c2l6ZT86IE5ndFNpemU7XG5cdC8qKlxuXHQgKiBFbmFibGVzIHNoYWRvd3MgKGJ5IGRlZmF1bHQgUENGc29mdCkuIENhbiBhY2NlcHQgYGdsLnNoYWRvd01hcGAgb3B0aW9ucyBmb3IgZmluZS10dW5pbmcsXG5cdCAqIGJ1dCBhbHNvIHN0cmluZ3M6ICdiYXNpYycgfCAncGVyY2VudGFnZScgfCAnc29mdCcgfCAndmFyaWFuY2UnLlxuXHQgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jYXBpL2VuL3JlbmRlcmVycy9XZWJHTFJlbmRlcmVyLnNoYWRvd01hcFxuXHQgKi9cblx0c2hhZG93cz86IGJvb2xlYW4gfCAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJyB8IFBhcnRpYWw8V2ViR0xTaGFkb3dNYXA+O1xuXHQvKipcblx0ICogRGlzYWJsZXMgdGhyZWUgcjEzOSBjb2xvciBtYW5hZ2VtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jbWFudWFsL2VuL2ludHJvZHVjdGlvbi9Db2xvci1tYW5hZ2VtZW50XG5cdCAqL1xuXHRsZWdhY3k/OiBib29sZWFuO1xuXHQvKiogU3dpdGNoIG9mZiBhdXRvbWF0aWMgc1JHQiBjb2xvciBzcGFjZSBhbmQgZ2FtbWEgY29ycmVjdGlvbiAqL1xuXHRsaW5lYXI/OiBib29sZWFuO1xuXHQvKiogVXNlIGBUSFJFRS5Ob1RvbmVNYXBwaW5nYCBpbnN0ZWFkIG9mIGBUSFJFRS5BQ0VTRmlsbWljVG9uZU1hcHBpbmdgICovXG5cdGZsYXQ/OiBib29sZWFuO1xuXHQvKiogQ3JlYXRlcyBhbiBvcnRob2dyYXBoaWMgY2FtZXJhICovXG5cdG9ydGhvZ3JhcGhpYz86IGJvb2xlYW47XG5cdC8qKlxuXHQgKiBSM0YncyByZW5kZXIgbW9kZS4gU2V0IHRvIGBkZW1hbmRgIHRvIG9ubHkgcmVuZGVyIG9uIHN0YXRlIGNoYW5nZSBvciBgbmV2ZXJgIHRvIHRha2UgY29udHJvbC5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI29uLWRlbWFuZC1yZW5kZXJpbmdcblx0ICovXG5cdGZyYW1lbG9vcD86ICdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInO1xuXHQvKipcblx0ICogUjNGIHBlcmZvcm1hbmNlIG9wdGlvbnMgZm9yIGFkYXB0aXZlIHBlcmZvcm1hbmNlLlxuXHQgKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FkdmFuY2VkL3NjYWxpbmctcGVyZm9ybWFuY2UjbW92ZW1lbnQtcmVncmVzc2lvblxuXHQgKi9cblx0cGVyZm9ybWFuY2U/OiBQYXJ0aWFsPE9taXQ8Tmd0UGVyZm9ybWFuY2UsICdyZWdyZXNzJz4+O1xuXHQvKiogVGFyZ2V0IHBpeGVsIHJhdGlvLiBDYW4gY2xhbXAgYmV0d2VlbiBhIHJhbmdlOiBgW21pbiwgbWF4XWAgKi9cblx0ZHByPzogTmd0RHByO1xuXHQvKiogUHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHJheWNhc3RlciAqL1xuXHRyYXljYXN0ZXI/OiBQYXJ0aWFsPFJheWNhc3Rlcj47XG5cdC8qKiBBIGBTY2VuZWAgaW5zdGFuY2Ugb3IgcHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHNjZW5lICovXG5cdHNjZW5lPzogU2NlbmUgfCBQYXJ0aWFsPFNjZW5lPjtcblx0LyoqIEEgYENhbWVyYWAgaW5zdGFuY2Ugb3IgcHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IGNhbWVyYSAqL1xuXHRjYW1lcmE/OiAoXG5cdFx0fCBOZ3RDYW1lcmFcblx0XHR8IFBhcnRpYWw8XG5cdFx0XHRcdE5ndE9iamVjdDNETm9kZTxDYW1lcmEsIHR5cGVvZiBDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8UGVyc3BlY3RpdmVDYW1lcmEsIHR5cGVvZiBQZXJzcGVjdGl2ZUNhbWVyYT4gJlxuXHRcdFx0XHRcdE5ndE9iamVjdDNETm9kZTxPcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBPcnRob2dyYXBoaWNDYW1lcmE+XG5cdFx0ICA+XG5cdCkgJiB7XG5cdFx0LyoqIEZsYWdzIHRoZSBjYW1lcmEgYXMgbWFudWFsLCBwdXR0aW5nIHByb2plY3Rpb24gaW50byB5b3VyIG93biBoYW5kcyAqL1xuXHRcdG1hbnVhbD86IGJvb2xlYW47XG5cdH07XG5cdC8qKiBBbiBSM0YgZXZlbnQgbWFuYWdlciB0byBtYW5hZ2UgZWxlbWVudHMnIHBvaW50ZXIgZXZlbnRzICovXG5cdGV2ZW50cz86IChzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSA9PiBOZ3RFdmVudE1hbmFnZXI8SFRNTEVsZW1lbnQ+O1xuXHQvKiogVGhlIHRhcmdldCB3aGVyZSBldmVudHMgYXJlIGJlaW5nIHN1YnNjcmliZWQgdG8sIGRlZmF1bHQ6IHRoZSBkaXYgdGhhdCB3cmFwcyBjYW52YXMgKi9cblx0ZXZlbnRTb3VyY2U/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXHQvKiogVGhlIGV2ZW50IHByZWZpeCB0aGF0IGlzIGNhc3QgaW50byBjYW52YXMgcG9pbnRlciB4L3kgZXZlbnRzLCBkZWZhdWx0OiBcIm9mZnNldFwiICovXG5cdGV2ZW50UHJlZml4PzogJ29mZnNldCcgfCAnY2xpZW50JyB8ICdwYWdlJyB8ICdsYXllcicgfCAnc2NyZWVuJztcblx0LyoqIERlZmF1bHQgY29vcmRpbmF0ZSBmb3IgdGhlIGNhbWVyYSB0byBsb29rIGF0ICovXG5cdGxvb2tBdD86IFZlY3RvcjMgfCBQYXJhbWV0ZXJzPFZlY3RvcjNbJ3NldCddPjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0LWNhbnZhcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiAobmd4UmVzaXplKT1cInJlc2l6ZVJlc3VsdC5zZXQoJGV2ZW50KVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIj5cblx0XHRcdDxjYW52YXMgI2dsQ2FudmFzIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+PC9jYW52YXM+XG5cdFx0PC9kaXY+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3hSZXNpemVdLFxuXHRwcm92aWRlcnM6IFtcblx0XHRwcm92aWRlUmVzaXplT3B0aW9ucyh7IGVtaXRJblpvbmU6IGZhbHNlLCBlbWl0SW5pdGlhbFJlc3VsdDogdHJ1ZSwgZGVib3VuY2U6IDI1MCB9IGFzIFJlc2l6ZU9wdGlvbnMpLFxuXHRcdHByb3ZpZGVOZ3RTdG9yZSgpLFxuXHRdLFxuXHRob3N0OiB7XG5cdFx0c3R5bGU6ICdkaXNwbGF5OiBibG9jaztwb3NpdGlvbjogcmVsYXRpdmU7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO292ZXJmbG93OiBoaWRkZW47Jyxcblx0XHQnW3N0eWxlLnBvaW50ZXJFdmVudHNdJzogJ2hiUG9pbnRlckV2ZW50cygpJyxcblx0fSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndENhbnZhcyB7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIGluaXRSb290ID0gaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyKCk7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblxuXHRwcml2YXRlIGhvc3QgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXHRwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cdHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXHRwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cdHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdHNjZW5lR3JhcGggPSBpbnB1dC5yZXF1aXJlZDxUeXBlPGFueT4+KCk7XG5cdGNvbXBvdW5kUHJlZml4ZXMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuXHRzY2VuZUdyYXBoSW5wdXRzID0gaW5wdXQ8Tmd0QW55UmVjb3JkPih7fSk7XG5cdGdsID0gaW5wdXQ8Tmd0R0xPcHRpb25zPigpO1xuXHRzaXplID0gaW5wdXQ8Tmd0U2l6ZT4oKTtcblx0c2hhZG93cyA9IGlucHV0KGZhbHNlLCB7XG5cdFx0dHJhbnNmb3JtOiAodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PT0gJycpIHJldHVybiBib29sZWFuQXR0cmlidXRlKHZhbHVlKTtcblx0XHRcdHJldHVybiB2YWx1ZSBhcyBOb25OdWxsYWJsZTxOZ3RDYW52YXNJbnB1dHNbJ3NoYWRvd3MnXT47XG5cdFx0fSxcblx0fSk7XG5cdGxlZ2FjeSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0bGluZWFyID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRmbGF0ID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRvcnRob2dyYXBoaWMgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGZyYW1lbG9vcCA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc0lucHV0c1snZnJhbWVsb29wJ10+PignYWx3YXlzJyk7XG5cdHBlcmZvcm1hbmNlID0gaW5wdXQ8UGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pj4oKTtcblx0ZHByID0gaW5wdXQ8Tmd0RHByPihbMSwgMl0pO1xuXHRyYXljYXN0ZXIgPSBpbnB1dDxQYXJ0aWFsPFJheWNhc3Rlcj4+KCk7XG5cdHNjZW5lID0gaW5wdXQ8U2NlbmUgfCBQYXJ0aWFsPFNjZW5lPj4oKTtcblx0Y2FtZXJhID0gaW5wdXQ8Tm9uTnVsbGFibGU8Tmd0Q2FudmFzSW5wdXRzWydjYW1lcmEnXT4+KCk7XG5cdGV2ZW50cyA9IGlucHV0KGNyZWF0ZVBvaW50ZXJFdmVudHMpO1xuXHRldmVudFNvdXJjZSA9IGlucHV0PEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCk7XG5cdGV2ZW50UHJlZml4ID0gaW5wdXQ8Tm9uTnVsbGFibGU8Tmd0Q2FudmFzSW5wdXRzWydldmVudFByZWZpeCddPj4oJ29mZnNldCcpO1xuXHRsb29rQXQgPSBpbnB1dDxWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT4+KCk7XG5cdGNyZWF0ZWQgPSBvdXRwdXQ8Tmd0U3RhdGU+KCk7XG5cdHBvaW50ZXJNaXNzZWQgPSBvdXRwdXRGcm9tT2JzZXJ2YWJsZSh0aGlzLnN0b3JlLmdldCgncG9pbnRlck1pc3NlZCQnKSk7XG5cblx0Z2xDYW52YXMgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MQ2FudmFzRWxlbWVudD4+KCdnbENhbnZhcycpO1xuXHRnbENhbnZhc1ZpZXdDb250YWluZXJSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2dsQ2FudmFzJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pO1xuXG5cdC8vIE5PVEU6IHRoaXMgc2lnbmFsIGlzIHVwZGF0ZWQgb3V0c2lkZSBvZiBab25lXG5cdHByb3RlY3RlZCByZXNpemVSZXN1bHQgPSBzaWduYWw8UmVzaXplUmVzdWx0Pih7fSBhcyBSZXNpemVSZXN1bHQsIHsgZXF1YWw6IE9iamVjdC5pcyB9KTtcblx0cHJvdGVjdGVkIGhiUG9pbnRlckV2ZW50cyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmV2ZW50U291cmNlKCkgPyAnbm9uZScgOiAnYXV0bycpKTtcblxuXHRwcml2YXRlIGNvbmZpZ3VyYXRvcj86IE5ndENhbnZhc0NvbmZpZ3VyYXRvcjtcblx0cHJpdmF0ZSBnbEVudmlyb25tZW50SW5qZWN0b3I/OiBFbnZpcm9ubWVudEluamVjdG9yO1xuXHRwcml2YXRlIGdsUmVmPzogQ29tcG9uZW50UmVmPHVua25vd24+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmNvbmZpZ3VyYXRvciA9IHRoaXMuaW5pdFJvb3QodGhpcy5nbENhbnZhcygpLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0XHR0aGlzLm5vWm9uZVJlc2l6ZUVmZmVjdCgpO1xuXHRcdFx0XHR0aGlzLm5vWm9uZVNjZW5lR3JhcGhJbnB1dHNFZmZlY3QoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLmdsUmVmPy5kZXN0cm95KCk7XG5cdFx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5jb25maWd1cmF0b3I/LmRlc3Ryb3koKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lUmVzaXplRWZmZWN0KCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCByZXNpemVSZXN1bHQgPSB0aGlzLnJlc2l6ZVJlc3VsdCgpO1xuXHRcdFx0aWYgKHJlc2l6ZVJlc3VsdC53aWR0aCA+IDAgJiYgcmVzaXplUmVzdWx0LmhlaWdodCA+IDApIHtcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ3VyYXRvcikgdGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IuY29uZmlndXJlKHtcblx0XHRcdFx0XHRnbDogdGhpcy5nbCgpLFxuXHRcdFx0XHRcdHNoYWRvd3M6IHRoaXMuc2hhZG93cygpLFxuXHRcdFx0XHRcdGxlZ2FjeTogdGhpcy5sZWdhY3koKSxcblx0XHRcdFx0XHRsaW5lYXI6IHRoaXMubGluZWFyKCksXG5cdFx0XHRcdFx0ZmxhdDogdGhpcy5mbGF0KCksXG5cdFx0XHRcdFx0b3J0aG9ncmFwaGljOiB0aGlzLm9ydGhvZ3JhcGhpYygpLFxuXHRcdFx0XHRcdGZyYW1lbG9vcDogdGhpcy5mcmFtZWxvb3AoKSxcblx0XHRcdFx0XHRwZXJmb3JtYW5jZTogdGhpcy5wZXJmb3JtYW5jZSgpLFxuXHRcdFx0XHRcdGRwcjogdGhpcy5kcHIoKSxcblx0XHRcdFx0XHRyYXljYXN0ZXI6IHRoaXMucmF5Y2FzdGVyKCksXG5cdFx0XHRcdFx0c2NlbmU6IHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0XHRjYW1lcmE6IHRoaXMuY2FtZXJhKCksXG5cdFx0XHRcdFx0ZXZlbnRzOiB0aGlzLmV2ZW50cygpLFxuXHRcdFx0XHRcdGV2ZW50U291cmNlOiB0aGlzLmV2ZW50U291cmNlKCksXG5cdFx0XHRcdFx0ZXZlbnRQcmVmaXg6IHRoaXMuZXZlbnRQcmVmaXgoKSxcblx0XHRcdFx0XHRsb29rQXQ6IHRoaXMubG9va0F0KCksXG5cdFx0XHRcdFx0c2l6ZTogcmVzaXplUmVzdWx0LFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLmdsUmVmKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5ub1pvbmVSZW5kZXIoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBub1pvbmVSZW5kZXIoKSB7XG5cdFx0Ly8gTk9URTogZGVzdHJveSBwcmV2aW91cyBpbnN0YW5jZXMgaWYgZXhpc3RlZFxuXHRcdHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yPy5kZXN0cm95KCk7XG5cdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXG5cdFx0Ly8gTk9URTogRmxhZyB0aGUgY2FudmFzIGFjdGl2ZSwgcmVuZGVyaW5nIHdpbGwgbm93IGJlZ2luXG5cdFx0dGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiB0cnVlIH0gfSkpO1xuXG5cdFx0Y29uc3QgW3N0YXRlLCBldmVudFNvdXJjZSwgZXZlbnRQcmVmaXhdID0gW1xuXHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdCxcblx0XHRcdHVudHJhY2tlZCh0aGlzLmV2ZW50U291cmNlKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLmV2ZW50UHJlZml4KSxcblx0XHRdO1xuXG5cdFx0Ly8gY29ubmVjdCB0byBldmVudCBzb3VyY2Vcblx0XHRzdGF0ZS5ldmVudHMuY29ubmVjdD8uKFxuXHRcdFx0ZXZlbnRTb3VyY2UgPyAoaXMucmVmKGV2ZW50U291cmNlKSA/IGV2ZW50U291cmNlLm5hdGl2ZUVsZW1lbnQgOiBldmVudFNvdXJjZSkgOiB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCxcblx0XHQpO1xuXG5cdFx0Ly8gc2V0dXAgY29tcHV0ZSBmb3IgZXZlbnRQcmVmaXhcblx0XHRpZiAoZXZlbnRQcmVmaXgpIHtcblx0XHRcdHN0YXRlLnNldEV2ZW50cyh7XG5cdFx0XHRcdGNvbXB1dGU6IChldmVudCwgc3RvcmUpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IHBvaW50ZXIsIHJheWNhc3RlciwgY2FtZXJhLCBzaXplIH0gPSBzdG9yZS5zbmFwc2hvdDtcblx0XHRcdFx0XHRjb25zdCB4ID0gZXZlbnRbKGV2ZW50UHJlZml4ICsgJ1gnKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuXHRcdFx0XHRcdGNvbnN0IHkgPSBldmVudFsoZXZlbnRQcmVmaXggKyAnWScpIGFzIGtleW9mIE5ndERvbUV2ZW50XSBhcyBudW1iZXI7XG5cdFx0XHRcdFx0cG9pbnRlci5zZXQoKHggLyBzaXplLndpZHRoKSAqIDIgLSAxLCAtKHkgLyBzaXplLmhlaWdodCkgKiAyICsgMSk7XG5cdFx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEocG9pbnRlciwgY2FtZXJhKTtcblx0XHRcdFx0fSxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdC8vIGVtaXQgY3JlYXRlZCBldmVudCBpZiBvYnNlcnZlZFxuXHRcdHRoaXMuY3JlYXRlZC5lbWl0KHRoaXMuc3RvcmUuc25hcHNob3QpO1xuXG5cdFx0aWYgKCF0aGlzLnN0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpKSB7XG5cdFx0XHR0aGlzLnN0b3JlLmdldCgnZXZlbnRzJykuY29ubmVjdD8uKHVudHJhY2tlZCh0aGlzLmdsQ2FudmFzKS5uYXRpdmVFbGVtZW50KTtcblx0XHR9XG5cblx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3RvciA9IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoXG5cdFx0XHRbcHJvdmlkZU5ndFJlbmRlcmVyKHRoaXMuc3RvcmUsIHVudHJhY2tlZCh0aGlzLmNvbXBvdW5kUHJlZml4ZXMpKV0sXG5cdFx0XHR0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG5cdFx0KTtcblx0XHR0aGlzLmdsUmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh1bnRyYWNrZWQodGhpcy5zY2VuZUdyYXBoKSwge1xuXHRcdFx0ZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3IsXG5cdFx0XHRpbmplY3RvcjogdGhpcy5pbmplY3Rvcixcblx0XHR9KTtcblxuXHRcdHRoaXMuZ2xSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdHRoaXMuc2V0U2NlbmVHcmFwaElucHV0cyh1bnRyYWNrZWQodGhpcy5zY2VuZUdyYXBoSW5wdXRzKSk7XG5cdH1cblxuXHRwcml2YXRlIG5vWm9uZVNjZW5lR3JhcGhJbnB1dHNFZmZlY3QoKSB7XG5cdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuc2V0U2NlbmVHcmFwaElucHV0cyh0aGlzLnNjZW5lR3JhcGhJbnB1dHMoKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHNldFNjZW5lR3JhcGhJbnB1dHMoc2NlbmVHcmFwaElucHV0czogTmd0QW55UmVjb3JkKSB7XG5cdFx0aWYgKHRoaXMuZ2xSZWYpIHtcblx0XHRcdGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNjZW5lR3JhcGhJbnB1dHMpKSB7XG5cdFx0XHRcdHRoaXMuZ2xSZWYuc2V0SW5wdXQoa2V5LCB2YWx1ZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -1,35 +1,23 @@
1
- import { Directive, effect, input } from '@angular/core';
1
+ import { Directive, input } from '@angular/core';
2
2
  import { NgtCommonDirective, provideNodeType } from './common';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NgtArgs extends NgtCommonDirective {
5
5
  constructor() {
6
- super();
7
- this.args = input(null);
8
- this.injectedArgs = [];
9
- effect(() => {
10
- const args = this.args();
11
- if (args == null || !Array.isArray(args) || (args.length === 1 && args[0] === null))
12
- return;
13
- this.injected = false;
14
- this.injectedArgs = args;
15
- this.createView();
16
- });
6
+ super(...arguments);
7
+ this.args = input.required();
8
+ this.inputValue = this.args;
17
9
  }
18
- get value() {
19
- if (this.validate()) {
20
- this.injected = true;
21
- return this.injectedArgs;
22
- }
23
- return null;
10
+ shouldSkipCreateView(value) {
11
+ return value == null || !Array.isArray(value) || (value.length === 1 && value[0] === null);
24
12
  }
25
13
  validate() {
26
- return !this.injected && !!this.injectedArgs.length;
14
+ return !this.injected && !!this.injectedValue?.length;
27
15
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtArgs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.0", type: NgtArgs, isStandalone: true, selector: "ng-template[args]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideNodeType('args')], usesInheritance: true, ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtArgs, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: NgtArgs, isStandalone: true, selector: "ng-template[args]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, providers: [provideNodeType('args')], usesInheritance: true, ngImport: i0 }); }
30
18
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtArgs, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtArgs, decorators: [{
32
20
  type: Directive,
33
21
  args: [{ selector: 'ng-template[args]', standalone: true, providers: [provideNodeType('args')] }]
34
- }], ctorParameters: () => [] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHL0QsTUFBTSxPQUFPLE9BQXFDLFNBQVEsa0JBQWtCO0lBSzNFO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFMVCxTQUFJLEdBQUcsS0FBSyxDQUFlLElBQUksQ0FBQyxDQUFDO1FBRXpCLGlCQUFZLEdBQVUsRUFBc0IsQ0FBQztRQUlwRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUFFLE9BQU87WUFDNUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksS0FBSztRQUNSLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxRQUFRO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ3JELENBQUM7OEdBMUJXLE9BQU87a0dBQVAsT0FBTyxpTUFEcUQsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7OzJGQUNyRixPQUFPO2tCQURuQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndENvbW1vbkRpcmVjdGl2ZSwgcHJvdmlkZU5vZGVUeXBlIH0gZnJvbSAnLi9jb21tb24nO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthcmdzXScsIHN0YW5kYWxvbmU6IHRydWUsIHByb3ZpZGVyczogW3Byb3ZpZGVOb2RlVHlwZSgnYXJncycpXSB9KVxuZXhwb3J0IGNsYXNzIE5ndEFyZ3M8VEFyZ3MgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPiBleHRlbmRzIE5ndENvbW1vbkRpcmVjdGl2ZSB7XG5cdGFyZ3MgPSBpbnB1dDxUQXJncyB8IG51bGw+KG51bGwpO1xuXG5cdHByaXZhdGUgaW5qZWN0ZWRBcmdzOiBUQXJncyA9IFtdIGFzIHVua25vd24gYXMgVEFyZ3M7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgYXJncyA9IHRoaXMuYXJncygpO1xuXHRcdFx0aWYgKGFyZ3MgPT0gbnVsbCB8fCAhQXJyYXkuaXNBcnJheShhcmdzKSB8fCAoYXJncy5sZW5ndGggPT09IDEgJiYgYXJnc1swXSA9PT0gbnVsbCkpIHJldHVybjtcblx0XHRcdHRoaXMuaW5qZWN0ZWQgPSBmYWxzZTtcblx0XHRcdHRoaXMuaW5qZWN0ZWRBcmdzID0gYXJncztcblx0XHRcdHRoaXMuY3JlYXRlVmlldygpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCkge1xuXHRcdGlmICh0aGlzLnZhbGlkYXRlKCkpIHtcblx0XHRcdHRoaXMuaW5qZWN0ZWQgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHRoaXMuaW5qZWN0ZWRBcmdzO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHZhbGlkYXRlKCkge1xuXHRcdHJldHVybiAhdGhpcy5pbmplY3RlZCAmJiAhIXRoaXMuaW5qZWN0ZWRBcmdzLmxlbmd0aDtcblx0fVxufVxuIl19
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUcvRCxNQUFNLE9BQU8sT0FBcUMsU0FBUSxrQkFBeUI7SUFEbkY7O1FBRUMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7UUFFbkIsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7S0FRMUM7SUFQbUIsb0JBQW9CLENBQUMsS0FBbUI7UUFDMUQsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsUUFBUTtRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN2RCxDQUFDOzhHQVZXLE9BQU87a0dBQVAsT0FBTyxnTUFEcUQsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7OzJGQUNyRixPQUFPO2tCQURuQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RDb21tb25EaXJlY3RpdmUsIHByb3ZpZGVOb2RlVHlwZSB9IGZyb20gJy4vY29tbW9uJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXJnc10nLCBzdGFuZGFsb25lOiB0cnVlLCBwcm92aWRlcnM6IFtwcm92aWRlTm9kZVR5cGUoJ2FyZ3MnKV0gfSlcbmV4cG9ydCBjbGFzcyBOZ3RBcmdzPFRBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXT4gZXh0ZW5kcyBOZ3RDb21tb25EaXJlY3RpdmU8VEFyZ3M+IHtcblx0YXJncyA9IGlucHV0LnJlcXVpcmVkPFRBcmdzIHwgbnVsbD4oKTtcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5wdXRWYWx1ZSA9IHRoaXMuYXJncztcblx0cHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFNraXBDcmVhdGVWaWV3KHZhbHVlOiBUQXJncyB8IG51bGwpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgKHZhbHVlLmxlbmd0aCA9PT0gMSAmJiB2YWx1ZVswXSA9PT0gbnVsbCk7XG5cdH1cblxuXHR2YWxpZGF0ZSgpIHtcblx0XHRyZXR1cm4gIXRoaXMuaW5qZWN0ZWQgJiYgISF0aGlzLmluamVjdGVkVmFsdWU/Lmxlbmd0aDtcblx0fVxufVxuIl19
@@ -1,4 +1,5 @@
1
- import { DestroyRef, Directive, NgZone, TemplateRef, ViewContainerRef, inject, } from '@angular/core';
1
+ import { DestroyRef, Directive, NgZone, TemplateRef, ViewContainerRef, afterNextRender, inject, } from '@angular/core';
2
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
2
3
  import { createInjectionToken } from 'ngxtension/create-injection-token';
3
4
  import { SPECIAL_INTERNAL_ADD_COMMENT } from '../renderer/constants';
4
5
  import * as i0 from "@angular/core";
@@ -11,17 +12,39 @@ export class NgtCommonDirective {
11
12
  this.zone = inject(NgZone);
12
13
  this.template = inject(TemplateRef);
13
14
  this.nodeType = injectNodeType();
15
+ this.autoEffect = injectAutoEffect();
14
16
  this.injected = false;
17
+ this.injectedValue = null;
15
18
  this.shouldCreateView = true;
16
19
  const commentNode = this.vcr.element.nativeElement;
17
20
  if (commentNode[SPECIAL_INTERNAL_ADD_COMMENT]) {
18
21
  commentNode[SPECIAL_INTERNAL_ADD_COMMENT](this.nodeType);
19
22
  delete commentNode[SPECIAL_INTERNAL_ADD_COMMENT];
20
23
  }
24
+ afterNextRender(() => {
25
+ this.autoEffect(() => {
26
+ const value = this.inputValue();
27
+ if (this.shouldSkipCreateView(value))
28
+ return;
29
+ this.injected = false;
30
+ this.injectedValue = value;
31
+ this.createView();
32
+ });
33
+ });
21
34
  inject(DestroyRef).onDestroy(() => {
22
35
  this.view?.destroy();
23
36
  });
24
37
  }
38
+ shouldSkipCreateView(value) {
39
+ return !value;
40
+ }
41
+ get value() {
42
+ if (this.validate()) {
43
+ this.injected = true;
44
+ return this.injectedValue;
45
+ }
46
+ return null;
47
+ }
25
48
  createView() {
26
49
  this.zone.runOutsideAngular(() => {
27
50
  if (this.shouldCreateView) {
@@ -33,10 +56,10 @@ export class NgtCommonDirective {
33
56
  }
34
57
  });
35
58
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtCommonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0", type: NgtCommonDirective, ngImport: i0 }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCommonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
60
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NgtCommonDirective, ngImport: i0 }); }
38
61
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtCommonDirective, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCommonDirective, decorators: [{
40
63
  type: Directive
41
64
  }], ctorParameters: () => [] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUVyRSxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUE0QixFQUFFO0lBQ3pHLE1BQU0sRUFBRSxLQUFLO0NBQ2IsQ0FBQyxDQUFDO0FBR0gsTUFBTSxPQUFnQixrQkFBa0I7SUFVdkM7UUFUUSxRQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0IsU0FBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUUxQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUlqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDbkQsSUFBSSxXQUFXLENBQUMsNEJBQTRCLENBQUMsRUFBRSxDQUFDO1lBQy9DLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxPQUFPLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUlTLFVBQVU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbENvQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0Tmdab25lLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0aW5qZWN0LFxuXHR0eXBlIEVtYmVkZGVkVmlld1JlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UIH0gZnJvbSAnLi4vcmVuZGVyZXIvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFtpbmplY3ROb2RlVHlwZSwgcHJvdmlkZU5vZGVUeXBlXSA9IGNyZWF0ZUluamVjdGlvblRva2VuKCgpID0+ICcnIGFzICdhcmdzJyB8ICdwYXJlbnQnIHwgJycsIHtcblx0aXNSb290OiBmYWxzZSxcbn0pO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RDb21tb25EaXJlY3RpdmUge1xuXHRwcml2YXRlIHZjciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXHRwcml2YXRlIG5vZGVUeXBlID0gaW5qZWN0Tm9kZVR5cGUoKTtcblxuXHRwcm90ZWN0ZWQgaW5qZWN0ZWQgPSBmYWxzZTtcblx0cHJvdGVjdGVkIHNob3VsZENyZWF0ZVZpZXcgPSB0cnVlO1xuXHRwcml2YXRlIHZpZXc/OiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgY29tbWVudE5vZGUgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdKSB7XG5cdFx0XHRjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXSh0aGlzLm5vZGVUeXBlKTtcblx0XHRcdGRlbGV0ZSBjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXTtcblx0XHR9XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMudmlldz8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0YWJzdHJhY3QgdmFsaWRhdGUoKTogYm9vbGVhbjtcblxuXHRwcm90ZWN0ZWQgY3JlYXRlVmlldygpIHtcblx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvdWxkQ3JlYXRlVmlldykge1xuXHRcdFx0XHRpZiAodGhpcy52aWV3ICYmICF0aGlzLnZpZXcuZGVzdHJveWVkKSB7XG5cdFx0XHRcdFx0dGhpcy52aWV3LmRlc3Ryb3koKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnZpZXcgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG5cdFx0XHRcdHRoaXMudmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBRVQsTUFBTSxFQUNOLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFckUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBNEIsRUFBRTtJQUN6RyxNQUFNLEVBQUUsS0FBSztDQUNiLENBQUMsQ0FBQztBQUdILE1BQU0sT0FBZ0Isa0JBQWtCO0lBWXZDO1FBWFEsUUFBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9CLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixhQUFRLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDNUIsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFOUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBSWpDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNuRCxJQUFJLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUM7WUFDL0MsV0FBVyxDQUFDLDRCQUE0QixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sV0FBVyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDO29CQUFFLE9BQU87Z0JBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUtTLG9CQUFvQixDQUFDLEtBQW9CO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVTLFVBQVU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBM0RvQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHROZ1pvbmUsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyBTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UIH0gZnJvbSAnLi4vcmVuZGVyZXIvY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFtpbmplY3ROb2RlVHlwZSwgcHJvdmlkZU5vZGVUeXBlXSA9IGNyZWF0ZUluamVjdGlvblRva2VuKCgpID0+ICcnIGFzICdhcmdzJyB8ICdwYXJlbnQnIHwgJycsIHtcblx0aXNSb290OiBmYWxzZSxcbn0pO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RDb21tb25EaXJlY3RpdmU8VFZhbHVlPiB7XG5cdHByaXZhdGUgdmNyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJpdmF0ZSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG5cdHByaXZhdGUgbm9kZVR5cGUgPSBpbmplY3ROb2RlVHlwZSgpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0cHJvdGVjdGVkIGluamVjdGVkID0gZmFsc2U7XG5cdHByb3RlY3RlZCBpbmplY3RlZFZhbHVlOiBUVmFsdWUgfCBudWxsID0gbnVsbDtcblx0cHJvdGVjdGVkIHNob3VsZENyZWF0ZVZpZXcgPSB0cnVlO1xuXHRwcml2YXRlIHZpZXc/OiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgY29tbWVudE5vZGUgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdKSB7XG5cdFx0XHRjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXSh0aGlzLm5vZGVUeXBlKTtcblx0XHRcdGRlbGV0ZSBjb21tZW50Tm9kZVtTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UXTtcblx0XHR9XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgdmFsdWUgPSB0aGlzLmlucHV0VmFsdWUoKTtcblx0XHRcdFx0aWYgKHRoaXMuc2hvdWxkU2tpcENyZWF0ZVZpZXcodmFsdWUpKSByZXR1cm47XG5cdFx0XHRcdHRoaXMuaW5qZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5pbmplY3RlZFZhbHVlID0gdmFsdWU7XG5cdFx0XHRcdHRoaXMuY3JlYXRlVmlldygpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMudmlldz8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFic3RyYWN0IGlucHV0VmFsdWUoKTogVFZhbHVlIHwgbnVsbDtcblx0YWJzdHJhY3QgdmFsaWRhdGUoKTogYm9vbGVhbjtcblxuXHRwcm90ZWN0ZWQgc2hvdWxkU2tpcENyZWF0ZVZpZXcodmFsdWU6IFRWYWx1ZSB8IG51bGwpIHtcblx0XHRyZXR1cm4gIXZhbHVlO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCkge1xuXHRcdGlmICh0aGlzLnZhbGlkYXRlKCkpIHtcblx0XHRcdHRoaXMuaW5qZWN0ZWQgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHRoaXMuaW5qZWN0ZWRWYWx1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRwcm90ZWN0ZWQgY3JlYXRlVmlldygpIHtcblx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvdWxkQ3JlYXRlVmlldykge1xuXHRcdFx0XHRpZiAodGhpcy52aWV3ICYmICF0aGlzLnZpZXcuZGVzdHJveWVkKSB7XG5cdFx0XHRcdFx0dGhpcy52aWV3LmRlc3Ryb3koKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnZpZXcgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG5cdFx0XHRcdHRoaXMudmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,35 +1,20 @@
1
- import { Directive, effect, input } from '@angular/core';
1
+ import { Directive, input } from '@angular/core';
2
2
  import { NgtCommonDirective, provideNodeType } from './common';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NgtParent extends NgtCommonDirective {
5
5
  constructor() {
6
- super();
6
+ super(...arguments);
7
7
  this.parent = input.required();
8
- this.injectedParent = null;
9
- effect(() => {
10
- const parent = this.parent();
11
- if (!parent)
12
- return;
13
- this.injected = false;
14
- this.injectedParent = parent;
15
- this.createView();
16
- });
17
- }
18
- get value() {
19
- if (this.validate()) {
20
- this.injected = true;
21
- return this.injectedParent;
22
- }
23
- return null;
8
+ this.inputValue = this.parent;
24
9
  }
25
10
  validate() {
26
- return !this.injected && !!this.injectedParent;
11
+ return !this.injected && !!this.injectedValue;
27
12
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtParent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.0", type: NgtParent, isStandalone: true, selector: "ng-template[parent]", inputs: { parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null } }, providers: [provideNodeType('parent')], usesInheritance: true, ngImport: i0 }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtParent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: NgtParent, isStandalone: true, selector: "ng-template[parent]", inputs: { parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null } }, providers: [provideNodeType('parent')], usesInheritance: true, ngImport: i0 }); }
30
15
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtParent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtParent, decorators: [{
32
17
  type: Directive,
33
18
  args: [{ selector: 'ng-template[parent]', standalone: true, providers: [provideNodeType('parent')] }]
34
- }], ctorParameters: () => [] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9wYXJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRy9ELE1BQU0sT0FBTyxTQUFVLFNBQVEsa0JBQWtCO0lBSWhEO1FBQ0MsS0FBSyxFQUFFLENBQUM7UUFKVCxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFvQyxJQUFLLENBQUM7UUFJL0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsUUFBUTtRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ2hELENBQUM7OEdBekJXLFNBQVM7a0dBQVQsU0FBUyx3TUFEcUQsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7OzJGQUN6RixTQUFTO2tCQURyQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RSZWYgfSBmcm9tICcuLi9yZWYnO1xuaW1wb3J0IHsgTmd0Q29tbW9uRGlyZWN0aXZlLCBwcm92aWRlTm9kZVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3BhcmVudF0nLCBzdGFuZGFsb25lOiB0cnVlLCBwcm92aWRlcnM6IFtwcm92aWRlTm9kZVR5cGUoJ3BhcmVudCcpXSB9KVxuZXhwb3J0IGNsYXNzIE5ndFBhcmVudCBleHRlbmRzIE5ndENvbW1vbkRpcmVjdGl2ZSB7XG5cdHBhcmVudCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IE5ndFJlZjxUSFJFRS5PYmplY3QzRD4+KCk7XG5cdHByaXZhdGUgaW5qZWN0ZWRQYXJlbnQ6IHN0cmluZyB8IE5ndFJlZjxUSFJFRS5PYmplY3QzRD4gPSBudWxsITtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBwYXJlbnQgPSB0aGlzLnBhcmVudCgpO1xuXHRcdFx0aWYgKCFwYXJlbnQpIHJldHVybjtcblx0XHRcdHRoaXMuaW5qZWN0ZWQgPSBmYWxzZTtcblx0XHRcdHRoaXMuaW5qZWN0ZWRQYXJlbnQgPSBwYXJlbnQ7XG5cdFx0XHR0aGlzLmNyZWF0ZVZpZXcoKTtcblx0XHR9KTtcblx0fVxuXG5cdGdldCB2YWx1ZSgpIHtcblx0XHRpZiAodGhpcy52YWxpZGF0ZSgpKSB7XG5cdFx0XHR0aGlzLmluamVjdGVkID0gdHJ1ZTtcblx0XHRcdHJldHVybiB0aGlzLmluamVjdGVkUGFyZW50O1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiAhdGhpcy5pbmplY3RlZCAmJiAhIXRoaXMuaW5qZWN0ZWRQYXJlbnQ7XG5cdH1cbn1cbiJdfQ==
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9wYXJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHL0QsTUFBTSxPQUFPLFNBQVUsU0FBUSxrQkFBNkM7SUFENUU7O1FBRUMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTZCLENBQUM7UUFDbEMsZUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7S0FLNUM7SUFIQSxRQUFRO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQzs4R0FOVyxTQUFTO2tHQUFULFNBQVMsd01BRHFELENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzsyRkFDekYsU0FBUztrQkFEckIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JqZWN0M0QgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RSZWYgfSBmcm9tICcuLi9yZWYnO1xuaW1wb3J0IHsgTmd0Q29tbW9uRGlyZWN0aXZlLCBwcm92aWRlTm9kZVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3BhcmVudF0nLCBzdGFuZGFsb25lOiB0cnVlLCBwcm92aWRlcnM6IFtwcm92aWRlTm9kZVR5cGUoJ3BhcmVudCcpXSB9KVxuZXhwb3J0IGNsYXNzIE5ndFBhcmVudCBleHRlbmRzIE5ndENvbW1vbkRpcmVjdGl2ZTxzdHJpbmcgfCBOZ3RSZWY8T2JqZWN0M0Q+PiB7XG5cdHBhcmVudCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IE5ndFJlZjxPYmplY3QzRD4+KCk7XG5cdHByb3RlY3RlZCBvdmVycmlkZSBpbnB1dFZhbHVlID0gdGhpcy5wYXJlbnQ7XG5cblx0dmFsaWRhdGUoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICF0aGlzLmluamVjdGVkICYmICEhdGhpcy5pbmplY3RlZFZhbHVlO1xuXHR9XG59XG4iXX0=
@@ -70,4 +70,4 @@ export function createPointerEvents(store) {
70
70
  },
71
71
  };
72
72
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZG9tL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUEwRCxNQUFNLFdBQVcsQ0FBQztBQUtqRyxNQUFNLFVBQVUsR0FBRztJQUNsQixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUssRUFBRSwwQ0FBMEM7SUFDeEQsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixhQUFhLEVBQUUsSUFBSTtJQUNuQixrQkFBa0IsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM5QixPQUFPO0lBQ1AsYUFBYTtJQUNiLFVBQVU7SUFDVixXQUFXO0lBQ1gsYUFBYTtJQUNiLGFBQWE7SUFDYixZQUFZO0lBQ1osY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsZUFBZTtJQUNmLGVBQWU7SUFDZixPQUFPO0NBQ0UsQ0FBQztBQUVYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUErQjtJQUNsRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLE9BQU87UUFDTixRQUFRLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUMsS0FBa0IsRUFBRSxJQUE4QixFQUFFLEVBQUU7WUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLHVEQUF1RDtZQUN2RCw0RkFBNEY7WUFDNUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1RyxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsU0FBUyxFQUFFLFNBQVM7UUFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBc0IsRUFBRSxrQkFBa0IsRUFBRSxFQUFFO1lBQ3ZGLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsRUFBRSxFQUFFLENBQWM7UUFDbkIsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNaLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxhQUFhLElBQUksTUFBTSxDQUFDLFFBQVE7Z0JBQ3ZELE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQW1CLEVBQUUsRUFBRTtZQUNoQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBRTVCLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBMEIsRUFBRSxFQUFFO2dCQUMxRyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBb0MsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO1FBQ0QsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNoQixNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBMEIsRUFBRSxFQUFFO29CQUNwRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLFlBQVksV0FBVyxFQUFFLENBQUM7d0JBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUMvRCxDQUFDO2dCQUNGLENBQUMsQ0FBQyxDQUFDO2dCQUVILFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDRixDQUFDO0tBQ0QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFdmVudHMsIHR5cGUgTmd0RG9tRXZlbnQsIHR5cGUgTmd0RXZlbnRNYW5hZ2VyLCB0eXBlIE5ndEV2ZW50cyB9IGZyb20gJy4uL2V2ZW50cyc7XG5pbXBvcnQgdHlwZSB7IE5ndFN0YXRlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuY29uc3QgRE9NX0VWRU5UUyA9IHtcblx0Y2xpY2s6IGZhbHNlLFxuXHRjb250ZXh0bWVudTogZmFsc2UsXG5cdGRibGNsaWNrOiBmYWxzZSxcblx0d2hlZWw6IGZhbHNlLCAvLyBwYXNzaXZlIHdoZWVsIGVycm9ycyB3aXRoIE9yYml0Q29udHJvbHNcblx0cG9pbnRlcmRvd246IHRydWUsXG5cdHBvaW50ZXJ1cDogdHJ1ZSxcblx0cG9pbnRlcmxlYXZlOiB0cnVlLFxuXHRwb2ludGVybW92ZTogdHJ1ZSxcblx0cG9pbnRlcmNhbmNlbDogdHJ1ZSxcblx0bG9zdHBvaW50ZXJjYXB0dXJlOiB0cnVlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZEV2ZW50cyA9IFtcblx0J2NsaWNrJyxcblx0J2NvbnRleHRtZW51Jyxcblx0J2RibGNsaWNrJyxcblx0J3BvaW50ZXJ1cCcsXG5cdCdwb2ludGVyZG93bicsXG5cdCdwb2ludGVyb3ZlcicsXG5cdCdwb2ludGVyb3V0Jyxcblx0J3BvaW50ZXJlbnRlcicsXG5cdCdwb2ludGVybGVhdmUnLFxuXHQncG9pbnRlcm1vdmUnLFxuXHQncG9pbnRlcm1pc3NlZCcsXG5cdCdwb2ludGVyY2FuY2VsJyxcblx0J3doZWVsJyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb2ludGVyRXZlbnRzKHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pOiBOZ3RFdmVudE1hbmFnZXI8SFRNTEVsZW1lbnQ+IHtcblx0Y29uc3QgeyBoYW5kbGVQb2ludGVyIH0gPSBjcmVhdGVFdmVudHMoc3RvcmUpO1xuXG5cdHJldHVybiB7XG5cdFx0cHJpb3JpdHk6IDEsXG5cdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRjb21wdXRlOiAoZXZlbnQ6IE5ndERvbUV2ZW50LCByb290OiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pID0+IHtcblx0XHRcdGNvbnN0IHN0YXRlID0gcm9vdC5nZXQoKTtcblx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QtdGhyZWUtZmliZXIvcHVsbC83ODJcblx0XHRcdC8vIEV2ZW50cyB0cmlnZ2VyIG91dHNpZGUgb2YgY2FudmFzIHdoZW4gbW92ZWQsIHVzZSBvZmZzZXRYL1kgYnkgZGVmYXVsdCBhbmQgYWxsb3cgb3ZlcnJpZGVzXG5cdFx0XHRzdGF0ZS5wb2ludGVyLnNldCgoZXZlbnQub2Zmc2V0WCAvIHN0YXRlLnNpemUud2lkdGgpICogMiAtIDEsIC0oZXZlbnQub2Zmc2V0WSAvIHN0YXRlLnNpemUuaGVpZ2h0KSAqIDIgKyAxKTtcblx0XHRcdHN0YXRlLnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHN0YXRlLnBvaW50ZXIsIHN0YXRlLmNhbWVyYSk7XG5cdFx0fSxcblx0XHRjb25uZWN0ZWQ6IHVuZGVmaW5lZCxcblx0XHRoYW5kbGVyczogT2JqZWN0LmtleXMoRE9NX0VWRU5UUykucmVkdWNlKChoYW5kbGVyczogTmd0QW55UmVjb3JkLCBzdXBwb3J0ZWRFdmVudE5hbWUpID0+IHtcblx0XHRcdGhhbmRsZXJzW3N1cHBvcnRlZEV2ZW50TmFtZV0gPSBoYW5kbGVQb2ludGVyKHN1cHBvcnRlZEV2ZW50TmFtZSk7XG5cdFx0XHRyZXR1cm4gaGFuZGxlcnM7XG5cdFx0fSwge30pIGFzIE5ndEV2ZW50cyxcblx0XHR1cGRhdGU6ICgpID0+IHtcblx0XHRcdGNvbnN0IHsgZXZlbnRzLCBpbnRlcm5hbCB9ID0gc3RvcmUuZ2V0KCk7XG5cdFx0XHRpZiAoaW50ZXJuYWwubGFzdEV2ZW50Py5uYXRpdmVFbGVtZW50ICYmIGV2ZW50cy5oYW5kbGVycylcblx0XHRcdFx0ZXZlbnRzLmhhbmRsZXJzLnBvaW50ZXJtb3ZlKGludGVybmFsLmxhc3RFdmVudC5uYXRpdmVFbGVtZW50KTtcblx0XHR9LFxuXHRcdGNvbm5lY3Q6ICh0YXJnZXQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHRcdFx0c3RhdGUuZXZlbnRzLmRpc2Nvbm5lY3Q/LigpO1xuXG5cdFx0XHRzdGF0ZS5zZXRFdmVudHMoeyBjb25uZWN0ZWQ6IHRhcmdldCB9KTtcblxuXHRcdFx0T2JqZWN0LmVudHJpZXMoc3RhdGUuZXZlbnRzLmhhbmRsZXJzID8/IHt9KS5mb3JFYWNoKChbZXZlbnROYW1lLCBldmVudEhhbmRsZXJdOiBbc3RyaW5nLCBFdmVudExpc3RlbmVyXSkgPT4ge1xuXHRcdFx0XHRjb25zdCBwYXNzaXZlID0gRE9NX0VWRU5UU1tldmVudE5hbWUgYXMga2V5b2YgdHlwZW9mIERPTV9FVkVOVFNdO1xuXHRcdFx0XHR0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50SGFuZGxlciwgeyBwYXNzaXZlIH0pO1xuXHRcdFx0fSk7XG5cdFx0fSxcblx0XHRkaXNjb25uZWN0OiAoKSA9PiB7XG5cdFx0XHRjb25zdCB7IGV2ZW50cywgc2V0RXZlbnRzIH0gPSBzdG9yZS5nZXQoKTtcblx0XHRcdGlmIChldmVudHMuY29ubmVjdGVkKSB7XG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKGV2ZW50cy5oYW5kbGVycyA/PyB7fSkuZm9yRWFjaCgoW2V2ZW50TmFtZSwgZXZlbnRIYW5kbGVyXTogW3N0cmluZywgRXZlbnRMaXN0ZW5lcl0pID0+IHtcblx0XHRcdFx0XHRpZiAoZXZlbnRzLmNvbm5lY3RlZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudHMuY29ubmVjdGVkLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudEhhbmRsZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0c2V0RXZlbnRzKHsgY29ubmVjdGVkOiB1bmRlZmluZWQgfSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0fTtcbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZG9tL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUEyQyxNQUFNLFdBQVcsQ0FBQztBQUtsRixNQUFNLFVBQVUsR0FBRztJQUNsQixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUssRUFBRSwwQ0FBMEM7SUFDeEQsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixhQUFhLEVBQUUsSUFBSTtJQUNuQixrQkFBa0IsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM5QixPQUFPO0lBQ1AsYUFBYTtJQUNiLFVBQVU7SUFDVixXQUFXO0lBQ1gsYUFBYTtJQUNiLGFBQWE7SUFDYixZQUFZO0lBQ1osY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsZUFBZTtJQUNmLGVBQWU7SUFDZixPQUFPO0NBQ0UsQ0FBQztBQUVYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUErQjtJQUNsRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlDLE9BQU87UUFDTixRQUFRLEVBQUUsQ0FBQztRQUNYLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUMsS0FBa0IsRUFBRSxJQUE4QixFQUFFLEVBQUU7WUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLHVEQUF1RDtZQUN2RCw0RkFBNEY7WUFDNUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1RyxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsU0FBUyxFQUFFLFNBQVM7UUFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBc0IsRUFBRSxrQkFBa0IsRUFBRSxFQUFFO1lBQ3ZGLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsRUFBRSxFQUFFLENBQWM7UUFDbkIsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNaLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxhQUFhLElBQUksTUFBTSxDQUFDLFFBQVE7Z0JBQ3ZELE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQW1CLEVBQUUsRUFBRTtZQUNoQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBRTVCLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBMEIsRUFBRSxFQUFFO2dCQUMxRyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsU0FBb0MsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO1FBQ0QsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNoQixNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBMEIsRUFBRSxFQUFFO29CQUNwRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLFlBQVksV0FBVyxFQUFFLENBQUM7d0JBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUMvRCxDQUFDO2dCQUNGLENBQUMsQ0FBQyxDQUFDO2dCQUVILFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDRixDQUFDO0tBQ0QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFdmVudHMsIE5ndERvbUV2ZW50LCBOZ3RFdmVudE1hbmFnZXIsIE5ndEV2ZW50cyB9IGZyb20gJy4uL2V2ZW50cyc7XG5pbXBvcnQgeyBOZ3RTdGF0ZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuY29uc3QgRE9NX0VWRU5UUyA9IHtcblx0Y2xpY2s6IGZhbHNlLFxuXHRjb250ZXh0bWVudTogZmFsc2UsXG5cdGRibGNsaWNrOiBmYWxzZSxcblx0d2hlZWw6IGZhbHNlLCAvLyBwYXNzaXZlIHdoZWVsIGVycm9ycyB3aXRoIE9yYml0Q29udHJvbHNcblx0cG9pbnRlcmRvd246IHRydWUsXG5cdHBvaW50ZXJ1cDogdHJ1ZSxcblx0cG9pbnRlcmxlYXZlOiB0cnVlLFxuXHRwb2ludGVybW92ZTogdHJ1ZSxcblx0cG9pbnRlcmNhbmNlbDogdHJ1ZSxcblx0bG9zdHBvaW50ZXJjYXB0dXJlOiB0cnVlLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IHN1cHBvcnRlZEV2ZW50cyA9IFtcblx0J2NsaWNrJyxcblx0J2NvbnRleHRtZW51Jyxcblx0J2RibGNsaWNrJyxcblx0J3BvaW50ZXJ1cCcsXG5cdCdwb2ludGVyZG93bicsXG5cdCdwb2ludGVyb3ZlcicsXG5cdCdwb2ludGVyb3V0Jyxcblx0J3BvaW50ZXJlbnRlcicsXG5cdCdwb2ludGVybGVhdmUnLFxuXHQncG9pbnRlcm1vdmUnLFxuXHQncG9pbnRlcm1pc3NlZCcsXG5cdCdwb2ludGVyY2FuY2VsJyxcblx0J3doZWVsJyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQb2ludGVyRXZlbnRzKHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pOiBOZ3RFdmVudE1hbmFnZXI8SFRNTEVsZW1lbnQ+IHtcblx0Y29uc3QgeyBoYW5kbGVQb2ludGVyIH0gPSBjcmVhdGVFdmVudHMoc3RvcmUpO1xuXG5cdHJldHVybiB7XG5cdFx0cHJpb3JpdHk6IDEsXG5cdFx0ZW5hYmxlZDogdHJ1ZSxcblx0XHRjb21wdXRlOiAoZXZlbnQ6IE5ndERvbUV2ZW50LCByb290OiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pID0+IHtcblx0XHRcdGNvbnN0IHN0YXRlID0gcm9vdC5nZXQoKTtcblx0XHRcdC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QtdGhyZWUtZmliZXIvcHVsbC83ODJcblx0XHRcdC8vIEV2ZW50cyB0cmlnZ2VyIG91dHNpZGUgb2YgY2FudmFzIHdoZW4gbW92ZWQsIHVzZSBvZmZzZXRYL1kgYnkgZGVmYXVsdCBhbmQgYWxsb3cgb3ZlcnJpZGVzXG5cdFx0XHRzdGF0ZS5wb2ludGVyLnNldCgoZXZlbnQub2Zmc2V0WCAvIHN0YXRlLnNpemUud2lkdGgpICogMiAtIDEsIC0oZXZlbnQub2Zmc2V0WSAvIHN0YXRlLnNpemUuaGVpZ2h0KSAqIDIgKyAxKTtcblx0XHRcdHN0YXRlLnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHN0YXRlLnBvaW50ZXIsIHN0YXRlLmNhbWVyYSk7XG5cdFx0fSxcblx0XHRjb25uZWN0ZWQ6IHVuZGVmaW5lZCxcblx0XHRoYW5kbGVyczogT2JqZWN0LmtleXMoRE9NX0VWRU5UUykucmVkdWNlKChoYW5kbGVyczogTmd0QW55UmVjb3JkLCBzdXBwb3J0ZWRFdmVudE5hbWUpID0+IHtcblx0XHRcdGhhbmRsZXJzW3N1cHBvcnRlZEV2ZW50TmFtZV0gPSBoYW5kbGVQb2ludGVyKHN1cHBvcnRlZEV2ZW50TmFtZSk7XG5cdFx0XHRyZXR1cm4gaGFuZGxlcnM7XG5cdFx0fSwge30pIGFzIE5ndEV2ZW50cyxcblx0XHR1cGRhdGU6ICgpID0+IHtcblx0XHRcdGNvbnN0IHsgZXZlbnRzLCBpbnRlcm5hbCB9ID0gc3RvcmUuZ2V0KCk7XG5cdFx0XHRpZiAoaW50ZXJuYWwubGFzdEV2ZW50Py5uYXRpdmVFbGVtZW50ICYmIGV2ZW50cy5oYW5kbGVycylcblx0XHRcdFx0ZXZlbnRzLmhhbmRsZXJzLnBvaW50ZXJtb3ZlKGludGVybmFsLmxhc3RFdmVudC5uYXRpdmVFbGVtZW50KTtcblx0XHR9LFxuXHRcdGNvbm5lY3Q6ICh0YXJnZXQ6IEhUTUxFbGVtZW50KSA9PiB7XG5cdFx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHRcdFx0c3RhdGUuZXZlbnRzLmRpc2Nvbm5lY3Q/LigpO1xuXG5cdFx0XHRzdGF0ZS5zZXRFdmVudHMoeyBjb25uZWN0ZWQ6IHRhcmdldCB9KTtcblxuXHRcdFx0T2JqZWN0LmVudHJpZXMoc3RhdGUuZXZlbnRzLmhhbmRsZXJzID8/IHt9KS5mb3JFYWNoKChbZXZlbnROYW1lLCBldmVudEhhbmRsZXJdOiBbc3RyaW5nLCBFdmVudExpc3RlbmVyXSkgPT4ge1xuXHRcdFx0XHRjb25zdCBwYXNzaXZlID0gRE9NX0VWRU5UU1tldmVudE5hbWUgYXMga2V5b2YgdHlwZW9mIERPTV9FVkVOVFNdO1xuXHRcdFx0XHR0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGV2ZW50SGFuZGxlciwgeyBwYXNzaXZlIH0pO1xuXHRcdFx0fSk7XG5cdFx0fSxcblx0XHRkaXNjb25uZWN0OiAoKSA9PiB7XG5cdFx0XHRjb25zdCB7IGV2ZW50cywgc2V0RXZlbnRzIH0gPSBzdG9yZS5nZXQoKTtcblx0XHRcdGlmIChldmVudHMuY29ubmVjdGVkKSB7XG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKGV2ZW50cy5oYW5kbGVycyA/PyB7fSkuZm9yRWFjaCgoW2V2ZW50TmFtZSwgZXZlbnRIYW5kbGVyXTogW3N0cmluZywgRXZlbnRMaXN0ZW5lcl0pID0+IHtcblx0XHRcdFx0XHRpZiAoZXZlbnRzLmNvbm5lY3RlZCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG5cdFx0XHRcdFx0XHRldmVudHMuY29ubmVjdGVkLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBldmVudEhhbmRsZXIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0c2V0RXZlbnRzKHsgY29ubmVjdGVkOiB1bmRlZmluZWQgfSk7XG5cdFx0XHR9XG5cdFx0fSxcblx0fTtcbn1cbiJdfQ==