angular-three-soba 2.0.0-beta.267 → 2.0.0-beta.268

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.
@@ -1,3 +1,4 @@
1
+ import { computed } from '@angular/core';
1
2
  import { injectLoader } from 'angular-three';
2
3
  import { assertInjector } from 'ngxtension/assert-injector';
3
4
  import { DRACOLoader, GLTFLoader, MeshoptDecoder } from 'three-stdlib';
@@ -20,8 +21,22 @@ function _extensions(useDraco, useMeshOpt, extensions) {
20
21
  }
21
22
  };
22
23
  }
23
- function _injectGLTF(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
24
- return assertInjector(_injectGLTF, injector, () => injectLoader(() => GLTFLoader, path, { extensions: _extensions(useDraco, useMeshOpt, extensions) }));
24
+ function _injectGLTF(path, { useDraco = true, useMeshOpt = true, injector, extensions, onLoad, } = {}) {
25
+ return assertInjector(_injectGLTF, injector, () => {
26
+ const result = injectLoader(() => GLTFLoader, path, {
27
+ extensions: _extensions(useDraco, useMeshOpt, extensions),
28
+ onLoad,
29
+ });
30
+ Object.defineProperty(result, 'scene', {
31
+ value: computed(() => {
32
+ const gltf = result();
33
+ if (!gltf)
34
+ return null;
35
+ return gltf.scene;
36
+ }),
37
+ });
38
+ return result;
39
+ });
25
40
  }
26
41
  _injectGLTF.preload = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
27
42
  injectLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
@@ -30,4 +45,4 @@ _injectGLTF.setDecoderPath = (path) => {
30
45
  decoderPath = path;
31
46
  };
32
47
  export const injectGLTF = _injectGLTF;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL2dsdGYtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0MsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFRLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0UsSUFBSSxXQUFXLEdBQXVCLElBQUksQ0FBQztBQUMzQyxJQUFJLFdBQVcsR0FBRyx5REFBeUQsQ0FBQztBQUU1RSxTQUFTLFdBQVcsQ0FBQyxRQUEwQixFQUFFLFVBQW1CLEVBQUUsVUFBeUM7SUFDOUcsT0FBTyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEIsVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pGLE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBcUIsQ0FBQyxpQkFBaUIsQ0FDdkMsT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFJRCxTQUFTLFdBQVcsQ0FDbkIsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsRUFDUixVQUFVLE1BTVAsRUFBRTtJQUVOLE9BQU8sY0FBYyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQ2pELFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FDckMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsV0FBVyxDQUFDLE9BQU8sR0FBRyxDQUNyQixJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUMyRixFQUFFLEVBQ3ZHLEVBQUU7SUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFRLENBQUMsQ0FBQztBQUNwRyxDQUFDLENBQUM7QUFFRixXQUFXLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDN0MsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNwQixDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQW1CLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndExvYWRlclJlc3VsdHMsIE5ndE9iamVjdE1hcCwgaW5qZWN0TG9hZGVyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IExvYWRlciB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IERSQUNPTG9hZGVyLCBHTFRGLCBHTFRGTG9hZGVyLCBNZXNob3B0RGVjb2RlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmxldCBkcmFjb0xvYWRlcjogRFJBQ09Mb2FkZXIgfCBudWxsID0gbnVsbDtcbmxldCBkZWNvZGVyUGF0aCA9ICdodHRwczovL3d3dy5nc3RhdGljLmNvbS9kcmFjby92ZXJzaW9uZWQvZGVjb2RlcnMvMS41LjUvJztcblxuZnVuY3Rpb24gX2V4dGVuc2lvbnModXNlRHJhY286IGJvb2xlYW4gfCBzdHJpbmcsIHVzZU1lc2hPcHQ6IGJvb2xlYW4sIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkKSB7XG5cdHJldHVybiAobG9hZGVyOiBMb2FkZXIpID0+IHtcblx0XHRpZiAoZXh0ZW5zaW9ucykge1xuXHRcdFx0ZXh0ZW5zaW9ucyhsb2FkZXIgYXMgR0xURkxvYWRlcik7XG5cdFx0fVxuXG5cdFx0aWYgKHVzZURyYWNvKSB7XG5cdFx0XHRpZiAoIWRyYWNvTG9hZGVyKSB7XG5cdFx0XHRcdGRyYWNvTG9hZGVyID0gbmV3IERSQUNPTG9hZGVyKCk7XG5cdFx0XHR9XG5cblx0XHRcdGRyYWNvTG9hZGVyLnNldERlY29kZXJQYXRoKHR5cGVvZiB1c2VEcmFjbyA9PT0gJ3N0cmluZycgPyB1c2VEcmFjbyA6IGRlY29kZXJQYXRoKTtcblx0XHRcdChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0RFJBQ09Mb2FkZXIoZHJhY29Mb2FkZXIpO1xuXHRcdH1cblx0XHRpZiAodXNlTWVzaE9wdCkge1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXRNZXNob3B0RGVjb2Rlcihcblx0XHRcdFx0dHlwZW9mIE1lc2hvcHREZWNvZGVyID09PSAnZnVuY3Rpb24nID8gTWVzaG9wdERlY29kZXIoKSA6IE1lc2hvcHREZWNvZGVyLFxuXHRcdFx0KTtcblx0XHR9XG5cdH07XG59XG5cbmV4cG9ydCB0eXBlIE5ndHNHTFRGPFQgZXh0ZW5kcyBQYXJ0aWFsPE5ndE9iamVjdE1hcD4+ID0gR0xURiAmIE5ndE9iamVjdE1hcCAmIFQ7XG5cbmZ1bmN0aW9uIF9pbmplY3RHTFRGPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRwYXRoOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0dXNlRHJhY28gPSB0cnVlLFxuXHRcdHVzZU1lc2hPcHQgPSB0cnVlLFxuXHRcdGluamVjdG9yLFxuXHRcdGV4dGVuc2lvbnMsXG5cdH06IHtcblx0XHR1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7XG5cdFx0dXNlTWVzaE9wdD86IGJvb2xlYW47XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0XHRleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZDtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihfaW5qZWN0R0xURiwgaW5qZWN0b3IsICgpID0+XG5cdFx0aW5qZWN0TG9hZGVyKCgpID0+IEdMVEZMb2FkZXIsIHBhdGgsIHsgZXh0ZW5zaW9uczogX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpIH0pLFxuXHQpIGFzIFNpZ25hbDxOZ3RMb2FkZXJSZXN1bHRzPFRVcmwsIEdMVEYgJiBOZ3RPYmplY3RNYXA+IHwgbnVsbD47XG59XG5cbl9pbmplY3RHTFRGLnByZWxvYWQgPSA8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdHBhdGg6ICgpID0+IFRVcmwsXG5cdHtcblx0XHR1c2VEcmFjbyA9IHRydWUsXG5cdFx0dXNlTWVzaE9wdCA9IHRydWUsXG5cdFx0ZXh0ZW5zaW9ucyxcblx0fTogeyB1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7IHVzZU1lc2hPcHQ/OiBib29sZWFuOyBleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZCB9ID0ge30sXG4pID0+IHtcblx0aW5qZWN0TG9hZGVyLnByZWxvYWQoKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpIGFzIGFueSk7XG59O1xuXG5faW5qZWN0R0xURi5zZXREZWNvZGVyUGF0aCA9IChwYXRoOiBzdHJpbmcpID0+IHtcblx0ZGVjb2RlclBhdGggPSBwYXRoO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0c0dMVEZMb2FkZXIgPSB0eXBlb2YgX2luamVjdEdMVEY7XG5leHBvcnQgY29uc3QgaW5qZWN0R0xURjogTmd0c0dMVEZMb2FkZXIgPSBfaW5qZWN0R0xURjtcbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL2dsdGYtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFRLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0UsSUFBSSxXQUFXLEdBQXVCLElBQUksQ0FBQztBQUMzQyxJQUFJLFdBQVcsR0FBRyx5REFBeUQsQ0FBQztBQUU1RSxTQUFTLFdBQVcsQ0FBQyxRQUEwQixFQUFFLFVBQW1CLEVBQUUsVUFBeUM7SUFDOUcsT0FBTyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEIsVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pGLE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBcUIsQ0FBQyxpQkFBaUIsQ0FDdkMsT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFJRCxTQUFTLFdBQVcsQ0FDbkIsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxNQU9ILEVBQUU7SUFFTixPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUNuRCxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3pELE1BQU07U0FDTixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDdEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBcUIsQ0FBQztnQkFDekMsSUFBSSxDQUFDLElBQUk7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNuQixDQUFDLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUMsQ0FBeUcsQ0FBQztBQUM1RyxDQUFDO0FBRUQsV0FBVyxDQUFDLE9BQU8sR0FBRyxDQUNyQixJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUMyRixFQUFFLEVBQ3ZHLEVBQUU7SUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFRLENBQUMsQ0FBQztBQUNwRyxDQUFDLENBQUM7QUFFRixXQUFXLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDN0MsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNwQixDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQW1CLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RMb2FkZXIsIE5ndExvYWRlclJlc3VsdHMsIE5ndE9iamVjdE1hcCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBEUkFDT0xvYWRlciwgR0xURiwgR0xURkxvYWRlciwgTWVzaG9wdERlY29kZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5sZXQgZHJhY29Mb2FkZXI6IERSQUNPTG9hZGVyIHwgbnVsbCA9IG51bGw7XG5sZXQgZGVjb2RlclBhdGggPSAnaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vZHJhY28vdmVyc2lvbmVkL2RlY29kZXJzLzEuNS41Lyc7XG5cbmZ1bmN0aW9uIF9leHRlbnNpb25zKHVzZURyYWNvOiBib29sZWFuIHwgc3RyaW5nLCB1c2VNZXNoT3B0OiBib29sZWFuLCBleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZCkge1xuXHRyZXR1cm4gKGxvYWRlcjogTG9hZGVyKSA9PiB7XG5cdFx0aWYgKGV4dGVuc2lvbnMpIHtcblx0XHRcdGV4dGVuc2lvbnMobG9hZGVyIGFzIEdMVEZMb2FkZXIpO1xuXHRcdH1cblxuXHRcdGlmICh1c2VEcmFjbykge1xuXHRcdFx0aWYgKCFkcmFjb0xvYWRlcikge1xuXHRcdFx0XHRkcmFjb0xvYWRlciA9IG5ldyBEUkFDT0xvYWRlcigpO1xuXHRcdFx0fVxuXG5cdFx0XHRkcmFjb0xvYWRlci5zZXREZWNvZGVyUGF0aCh0eXBlb2YgdXNlRHJhY28gPT09ICdzdHJpbmcnID8gdXNlRHJhY28gOiBkZWNvZGVyUGF0aCk7XG5cdFx0XHQobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldERSQUNPTG9hZGVyKGRyYWNvTG9hZGVyKTtcblx0XHR9XG5cdFx0aWYgKHVzZU1lc2hPcHQpIHtcblx0XHRcdChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0TWVzaG9wdERlY29kZXIoXG5cdFx0XHRcdHR5cGVvZiBNZXNob3B0RGVjb2RlciA9PT0gJ2Z1bmN0aW9uJyA/IE1lc2hvcHREZWNvZGVyKCkgOiBNZXNob3B0RGVjb2Rlcixcblx0XHRcdCk7XG5cdFx0fVxuXHR9O1xufVxuXG5leHBvcnQgdHlwZSBOZ3RzR0xURjxUIGV4dGVuZHMgUGFydGlhbDxOZ3RPYmplY3RNYXA+PiA9IEdMVEYgJiBOZ3RPYmplY3RNYXAgJiBUO1xuXG5mdW5jdGlvbiBfaW5qZWN0R0xURjxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRpbmplY3Rvcixcblx0XHRleHRlbnNpb25zLFxuXHRcdG9uTG9hZCxcblx0fToge1xuXHRcdHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZztcblx0XHR1c2VNZXNoT3B0PzogYm9vbGVhbjtcblx0XHRpbmplY3Rvcj86IEluamVjdG9yO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHRcdG9uTG9hZD86IChkYXRhOiBHTFRGICYgTmd0T2JqZWN0TWFwKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+ICYgeyBzY2VuZTogU2lnbmFsPEdMVEZbJ3NjZW5lJ10gfCBudWxsPiB9IHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKF9pbmplY3RHTFRGLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IGluamVjdExvYWRlcigoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCB7XG5cdFx0XHRleHRlbnNpb25zOiBfZXh0ZW5zaW9ucyh1c2VEcmFjbywgdXNlTWVzaE9wdCwgZXh0ZW5zaW9ucyksXG5cdFx0XHRvbkxvYWQsXG5cdFx0fSk7XG5cblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkocmVzdWx0LCAnc2NlbmUnLCB7XG5cdFx0XHR2YWx1ZTogY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBnbHRmID0gcmVzdWx0KCkgYXMgdW5rbm93biBhcyBHTFRGO1xuXHRcdFx0XHRpZiAoIWdsdGYpIHJldHVybiBudWxsO1xuXHRcdFx0XHRyZXR1cm4gZ2x0Zi5zY2VuZTtcblx0XHRcdH0pLFxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSkgYXMgU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiAmIHsgc2NlbmU6IFNpZ25hbDxHTFRGWydzY2VuZSddIHwgbnVsbD4gfTtcbn1cblxuX2luamVjdEdMVEYucHJlbG9hZCA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7IHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZzsgdXNlTWVzaE9wdD86IGJvb2xlYW47IGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkIH0gPSB7fSxcbikgPT4ge1xuXHRpbmplY3RMb2FkZXIucHJlbG9hZCgoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCBfZXh0ZW5zaW9ucyh1c2VEcmFjbywgdXNlTWVzaE9wdCwgZXh0ZW5zaW9ucykgYXMgYW55KTtcbn07XG5cbl9pbmplY3RHTFRGLnNldERlY29kZXJQYXRoID0gKHBhdGg6IHN0cmluZykgPT4ge1xuXHRkZWNvZGVyUGF0aCA9IHBhdGg7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzR0xURkxvYWRlciA9IHR5cGVvZiBfaW5qZWN0R0xURjtcbmV4cG9ydCBjb25zdCBpbmplY3RHTFRGOiBOZ3RzR0xURkxvYWRlciA9IF9pbmplY3RHTFRGO1xuIl19
@@ -1,5 +1,5 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, afterNextRender, input, signal, viewChild, } from '@angular/core';
2
- import { extend, getLocalState, injectNextBeforeRender, omit, vector3 } from 'angular-three';
2
+ import { extend, getLocalState, injectBeforeRender, omit, vector3 } from 'angular-three';
3
3
  import { Box3, Group, Vector3 } from 'three';
4
4
  import * as i0 from "@angular/core";
5
5
  extend({ Group });
@@ -23,7 +23,7 @@ export class NgtsBBAnchor {
23
23
  bbAnchorParent.parent.add(this.bbAnchorRef().nativeElement);
24
24
  }
25
25
  });
26
- injectNextBeforeRender(() => {
26
+ injectBeforeRender(() => {
27
27
  const parent = this.parent();
28
28
  if (parent) {
29
29
  boundingBox.setFromObject(parent);
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
55
55
  changeDetection: ChangeDetectionStrategy.OnPush,
56
56
  }]
57
57
  }], ctorParameters: () => [] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmItYW5jaG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9iYi1hbmNob3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLE1BQU0sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBWSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBRXZELE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFFbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBaUJ0QyxNQUFNLE9BQU8sWUFBWTtJQVN4QjtRQVJBLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO1FBQ2hELGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFNUMsZ0JBQVcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFvQixVQUFVLENBQUMsQ0FBQztRQUVoRSxXQUFNLEdBQUcsTUFBTSxDQUFrQixJQUFJLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFHaEQsbUVBQW1FO1FBQ25FLGlEQUFpRDtRQUNqRCwyRUFBMkU7UUFDM0UsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sY0FBYyxHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM1QyxJQUFJLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxzQkFBc0IsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1osV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUVsRCxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUN0RCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDdEQsQ0FBQztZQUNILENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBdENXLFlBQVk7a0dBQVosWUFBWSw0VUFSZDs7OztFQUlUOzsyRkFJVyxZQUFZO2tCQVh4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRpbnB1dCxcblx0c2lnbmFsLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0R3JvdXAsIE5ndFZlY3RvcjMsIGV4dGVuZCwgZ2V0TG9jYWxTdGF0ZSwgaW5qZWN0TmV4dEJlZm9yZVJlbmRlciwgb21pdCwgdmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQm94MywgR3JvdXAsIE9iamVjdDNELCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuXG5leHRlbmQoeyBHcm91cCB9KTtcblxuY29uc3QgYm91bmRpbmdCb3ggPSBuZXcgQm94MygpO1xuY29uc3QgYm91bmRpbmdCb3hTaXplID0gbmV3IFZlY3RvcjMoKTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzQkJBbmNob3JPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHRhbmNob3I6IE5ndFZlY3RvcjM7XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtYmItYW5jaG9yJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNiYkFuY2hvciBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNCQkFuY2hvciB7XG5cdG9wdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxOZ3RzQkJBbmNob3JPcHRpb25zPigpO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnYW5jaG9yJ10pO1xuXG5cdGJiQW5jaG9yUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8R3JvdXA+PignYmJBbmNob3InKTtcblxuXHRwYXJlbnQgPSBzaWduYWw8T2JqZWN0M0QgfCBudWxsPihudWxsKTtcblx0cHJpdmF0ZSBhbmNob3IgPSB2ZWN0b3IzKHRoaXMub3B0aW9ucywgJ2FuY2hvcicpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdC8vIFJlYXR0YWNoIGdyb3VwIGNyZWF0ZWQgYnkgdGhpcyBjb21wb25lbnQgdG8gdGhlIHBhcmVudCdzIHBhcmVudCxcblx0XHQvLyBzbyBpdCBiZWNvbWVzIGEgc2libGluZyBvZiBpdHMgaW5pdGlhbCBwYXJlbnQuXG5cdFx0Ly8gV2UgZG8gdGhhdCBzbyB0aGUgY2hpbGRyZW4gaGF2ZSBubyBpbXBhY3Qgb24gYSBib3VuZGluZyBib3ggb2YgYSBwYXJlbnQuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IGJiQW5jaG9yTFMgPSBnZXRMb2NhbFN0YXRlKHRoaXMuYmJBbmNob3JSZWYoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdGNvbnN0IGJiQW5jaG9yUGFyZW50ID0gYmJBbmNob3JMUz8ucGFyZW50KCk7XG5cdFx0XHRpZiAoYmJBbmNob3JQYXJlbnQ/LnBhcmVudCkge1xuXHRcdFx0XHR0aGlzLnBhcmVudC5zZXQoYmJBbmNob3JQYXJlbnQpO1xuXHRcdFx0XHRiYkFuY2hvclBhcmVudC5wYXJlbnQuYWRkKHRoaXMuYmJBbmNob3JSZWYoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGluamVjdE5leHRCZWZvcmVSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQoKTtcblx0XHRcdGlmIChwYXJlbnQpIHtcblx0XHRcdFx0Ym91bmRpbmdCb3guc2V0RnJvbU9iamVjdChwYXJlbnQpO1xuXHRcdFx0XHRib3VuZGluZ0JveC5nZXRTaXplKGJvdW5kaW5nQm94U2l6ZSk7XG5cblx0XHRcdFx0Y29uc3QgYW5jaG9yID0gdGhpcy5hbmNob3IoKTtcblx0XHRcdFx0Y29uc3QgYmJBbmNob3IgPSB0aGlzLmJiQW5jaG9yUmVmKCkubmF0aXZlRWxlbWVudDtcblxuXHRcdFx0XHRiYkFuY2hvci5wb3NpdGlvbi5zZXQoXG5cdFx0XHRcdFx0cGFyZW50LnBvc2l0aW9uLnggKyAoYm91bmRpbmdCb3hTaXplLnggKiBhbmNob3IueCkgLyAyLFxuXHRcdFx0XHRcdHBhcmVudC5wb3NpdGlvbi55ICsgKGJvdW5kaW5nQm94U2l6ZS55ICogYW5jaG9yLnkpIC8gMixcblx0XHRcdFx0XHRwYXJlbnQucG9zaXRpb24ueiArIChib3VuZGluZ0JveFNpemUueiAqIGFuY2hvci56KSAvIDIsXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmItYW5jaG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9iYi1hbmNob3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBWSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBRXZELE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFFbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUMvQixNQUFNLGVBQWUsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBaUJ0QyxNQUFNLE9BQU8sWUFBWTtJQVN4QjtRQVJBLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO1FBQ2hELGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFNUMsZ0JBQVcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFvQixVQUFVLENBQUMsQ0FBQztRQUVoRSxXQUFNLEdBQUcsTUFBTSxDQUFrQixJQUFJLENBQUMsQ0FBQztRQUMvQixXQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFHaEQsbUVBQW1FO1FBQ25FLGlEQUFpRDtRQUNqRCwyRUFBMkU7UUFDM0UsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sY0FBYyxHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM1QyxJQUFJLGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3RCxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1osV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUVsRCxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUN0RCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDdEQsQ0FBQztZQUNILENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBdENXLFlBQVk7a0dBQVosWUFBWSw0VUFSZDs7OztFQUlUOzsyRkFJVyxZQUFZO2tCQVh4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRpbnB1dCxcblx0c2lnbmFsLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0R3JvdXAsIE5ndFZlY3RvcjMsIGV4dGVuZCwgZ2V0TG9jYWxTdGF0ZSwgaW5qZWN0QmVmb3JlUmVuZGVyLCBvbWl0LCB2ZWN0b3IzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCb3gzLCBHcm91cCwgT2JqZWN0M0QsIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5jb25zdCBib3VuZGluZ0JveCA9IG5ldyBCb3gzKCk7XG5jb25zdCBib3VuZGluZ0JveFNpemUgPSBuZXcgVmVjdG9yMygpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNCQkFuY2hvck9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndEdyb3VwPiB7XG5cdGFuY2hvcjogTmd0VmVjdG9yMztcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1iYi1hbmNob3InLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2JiQW5jaG9yIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0JCQW5jaG9yIHtcblx0b3B0aW9ucyA9IGlucHV0LnJlcXVpcmVkPE5ndHNCQkFuY2hvck9wdGlvbnM+KCk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydhbmNob3InXSk7XG5cblx0YmJBbmNob3JSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxHcm91cD4+KCdiYkFuY2hvcicpO1xuXG5cdHBhcmVudCA9IHNpZ25hbDxPYmplY3QzRCB8IG51bGw+KG51bGwpO1xuXHRwcml2YXRlIGFuY2hvciA9IHZlY3RvcjModGhpcy5vcHRpb25zLCAnYW5jaG9yJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Ly8gUmVhdHRhY2ggZ3JvdXAgY3JlYXRlZCBieSB0aGlzIGNvbXBvbmVudCB0byB0aGUgcGFyZW50J3MgcGFyZW50LFxuXHRcdC8vIHNvIGl0IGJlY29tZXMgYSBzaWJsaW5nIG9mIGl0cyBpbml0aWFsIHBhcmVudC5cblx0XHQvLyBXZSBkbyB0aGF0IHNvIHRoZSBjaGlsZHJlbiBoYXZlIG5vIGltcGFjdCBvbiBhIGJvdW5kaW5nIGJveCBvZiBhIHBhcmVudC5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgYmJBbmNob3JMUyA9IGdldExvY2FsU3RhdGUodGhpcy5iYkFuY2hvclJlZigpLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0Y29uc3QgYmJBbmNob3JQYXJlbnQgPSBiYkFuY2hvckxTPy5wYXJlbnQoKTtcblx0XHRcdGlmIChiYkFuY2hvclBhcmVudD8ucGFyZW50KSB7XG5cdFx0XHRcdHRoaXMucGFyZW50LnNldChiYkFuY2hvclBhcmVudCk7XG5cdFx0XHRcdGJiQW5jaG9yUGFyZW50LnBhcmVudC5hZGQodGhpcy5iYkFuY2hvclJlZigpLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50KCk7XG5cdFx0XHRpZiAocGFyZW50KSB7XG5cdFx0XHRcdGJvdW5kaW5nQm94LnNldEZyb21PYmplY3QocGFyZW50KTtcblx0XHRcdFx0Ym91bmRpbmdCb3guZ2V0U2l6ZShib3VuZGluZ0JveFNpemUpO1xuXG5cdFx0XHRcdGNvbnN0IGFuY2hvciA9IHRoaXMuYW5jaG9yKCk7XG5cdFx0XHRcdGNvbnN0IGJiQW5jaG9yID0gdGhpcy5iYkFuY2hvclJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdFx0YmJBbmNob3IucG9zaXRpb24uc2V0KFxuXHRcdFx0XHRcdHBhcmVudC5wb3NpdGlvbi54ICsgKGJvdW5kaW5nQm94U2l6ZS54ICogYW5jaG9yLngpIC8gMixcblx0XHRcdFx0XHRwYXJlbnQucG9zaXRpb24ueSArIChib3VuZGluZ0JveFNpemUueSAqIGFuY2hvci55KSAvIDIsXG5cdFx0XHRcdFx0cGFyZW50LnBvc2l0aW9uLnogKyAoYm91bmRpbmdCb3hTaXplLnogKiBhbmNob3IueikgLyAyLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { Directive, afterNextRender, input, untracked } from '@angular/core';
2
- import { injectNextBeforeRender, injectStore } from 'angular-three';
2
+ import { injectBeforeRender, injectStore } from 'angular-three';
3
3
  import { injectAutoEffect } from 'ngxtension/auto-effect';
4
4
  import { mergeInputs } from 'ngxtension/inject-inputs';
5
5
  import { SimplexNoise } from 'three-stdlib';
@@ -44,7 +44,7 @@ export class NgtsCameraShake {
44
44
  return () => void defaultControls.removeEventListener('change', callback);
45
45
  });
46
46
  });
47
- injectNextBeforeRender(({ delta, clock }) => {
47
+ injectBeforeRender(({ delta, clock }) => {
48
48
  const [{ maxYaw, yawFrequency, maxPitch, pitchFrequency, maxRoll, rollFrequency, decay, decayRate }, camera] = [
49
49
  this.options(),
50
50
  this.camera(),
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
66
66
  type: Directive,
67
67
  args: [{ selector: 'ngts-camera-shake', standalone: true }]
68
68
  }], ctorParameters: () => [] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLXNoYWtlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9jYW1lcmEtc2hha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxlQUFlLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQXFCNUMsTUFBTSxjQUFjLEdBQTJCO0lBQzlDLFNBQVMsRUFBRSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsR0FBRztJQUNYLFFBQVEsRUFBRSxHQUFHO0lBQ2IsT0FBTyxFQUFFLEdBQUc7SUFDWixZQUFZLEVBQUUsR0FBRztJQUNqQixjQUFjLEVBQUUsR0FBRztJQUNuQixhQUFhLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBR0YsTUFBTSxPQUFPLGVBQWU7SUFXM0IsSUFBSSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBTUQ7UUF0QkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFF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QUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNyQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXJEVyxlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgU2lnbmFsLCBhZnRlck5leHRSZW5kZXIsIGlucHV0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5leHRCZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgU2ltcGxleE5vaXNlIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuaW50ZXJmYWNlIENvbnRyb2xzUHJvdG8ge1xuXHR1cGRhdGUoKTogdm9pZDtcblx0dGFyZ2V0OiBWZWN0b3IzO1xuXHRhZGRFdmVudExpc3RlbmVyOiAoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IChldmVudDogYW55KSA9PiB2b2lkKSA9PiB2b2lkO1xuXHRyZW1vdmVFdmVudExpc3RlbmVyOiAoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s6IChldmVudDogYW55KSA9PiB2b2lkKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNDYW1lcmFTaGFrZU9wdGlvbnMge1xuXHRpbnRlbnNpdHk6IG51bWJlcjtcblx0ZGVjYXk/OiBib29sZWFuO1xuXHRkZWNheVJhdGU6IG51bWJlcjtcblx0bWF4WWF3OiBudW1iZXI7XG5cdG1heFBpdGNoOiBudW1iZXI7XG5cdG1heFJvbGw6IG51bWJlcjtcblx0eWF3RnJlcXVlbmN5OiBudW1iZXI7XG5cdHBpdGNoRnJlcXVlbmN5OiBudW1iZXI7XG5cdHJvbGxGcmVxdWVuY3k6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNDYW1lcmFTaGFrZU9wdGlvbnMgPSB7XG5cdGludGVuc2l0eTogMSxcblx0ZGVjYXlSYXRlOiAwLjY1LFxuXHRtYXhZYXc6IDAuMSxcblx0bWF4UGl0Y2g6IDAuMSxcblx0bWF4Um9sbDogMC4xLFxuXHR5YXdGcmVxdWVuY3k6IDAuMSxcblx0cGl0Y2hGcmVxdWVuY3k6IDAuMSxcblx0cm9sbEZyZXF1ZW5jeTogMC4xLFxufTtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmd0cy1jYW1lcmEtc2hha2UnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c0NhbWVyYVNoYWtlIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGRlZmF1bHRDb250cm9scyA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjb250cm9scycpIGFzIHVua25vd24gYXMgU2lnbmFsPENvbnRyb2xzUHJvdG8+O1xuXG5cdHByaXZhdGUgaW5pdGlhbFJvdGF0aW9uID0gdW50cmFja2VkKHRoaXMuY2FtZXJhKS5yb3RhdGlvbi5jbG9uZSgpO1xuXHRwcml2YXRlIGludGVuc2l0eU9wdGlvbiA9IHVudHJhY2tlZCh0aGlzLm9wdGlvbnMpLmludGVuc2l0eTtcblxuXHRnZXQgaW50ZW5zaXR5KCkge1xuXHRcdHJldHVybiB0aGlzLmludGVuc2l0eU9wdGlvbjtcblx0fVxuXG5cdHNldCBpbnRlbnNpdHkodmFsOiBudW1iZXIpIHtcblx0XHR0aGlzLmludGVuc2l0eU9wdGlvbiA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIHZhbCkpO1xuXHR9XG5cblx0cHJpdmF0ZSB5YXdOb2lzZSA9IG5ldyBTaW1wbGV4Tm9pc2UoKTtcblx0cHJpdmF0ZSBwaXRjaE5vaXNlID0gbmV3IFNpbXBsZXhOb2lzZSgpO1xuXHRwcml2YXRlIHJvbGxOb2lzZSA9IG5ldyBTaW1wbGV4Tm9pc2UoKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgZGVmYXVsdENvbnRyb2xzID0gdGhpcy5kZWZhdWx0Q29udHJvbHMoKTtcblx0XHRcdFx0aWYgKCFkZWZhdWx0Q29udHJvbHMpIHJldHVybjtcblx0XHRcdFx0Y29uc3QgY2FtZXJhID0gdGhpcy5jYW1lcmEoKTtcblxuXHRcdFx0XHRjb25zdCBjYWxsYmFjayA9ICgpID0+IHZvaWQgKHRoaXMuaW5pdGlhbFJvdGF0aW9uID0gY2FtZXJhLnJvdGF0aW9uLmNsb25lKCkpO1xuXHRcdFx0XHRkZWZhdWx0Q29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2FsbGJhY2spO1xuXHRcdFx0XHRjYWxsYmFjaygpO1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4gdm9pZCBkZWZhdWx0Q29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2FsbGJhY2spO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3ROZXh0QmVmb3JlUmVuZGVyKCh7IGRlbHRhLCBjbG9jayB9KSA9PiB7XG5cdFx0XHRjb25zdCBbeyBtYXhZYXcsIHlhd0ZyZXF1ZW5jeSwgbWF4UGl0Y2gsIHBpdGNoRnJlcXVlbmN5LCBtYXhSb2xsLCByb2xsRnJlcXVlbmN5LCBkZWNheSwgZGVjYXlSYXRlIH0sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMub3B0aW9ucygpLFxuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IHNoYWtlID0gTWF0aC5wb3codGhpcy5pbnRlbnNpdHksIDIpO1xuXHRcdFx0Y29uc3QgeWF3ID0gbWF4WWF3ICogc2hha2UgKiB0aGlzLnlhd05vaXNlLm5vaXNlKGNsb2NrLmVsYXBzZWRUaW1lICogeWF3RnJlcXVlbmN5LCAxKTtcblx0XHRcdGNvbnN0IHBpdGNoID0gbWF4UGl0Y2ggKiBzaGFrZSAqIHRoaXMucGl0Y2hOb2lzZS5ub2lzZShjbG9jay5lbGFwc2VkVGltZSAqIHBpdGNoRnJlcXVlbmN5LCAxKTtcblx0XHRcdGNvbnN0IHJvbGwgPSBtYXhSb2xsICogc2hha2UgKiB0aGlzLnJvbGxOb2lzZS5ub2lzZShjbG9jay5lbGFwc2VkVGltZSAqIHJvbGxGcmVxdWVuY3ksIDEpO1xuXG5cdFx0XHRjYW1lcmEucm90YXRpb24uc2V0KHRoaXMuaW5pdGlhbFJvdGF0aW9uLnggKyBwaXRjaCwgdGhpcy5pbml0aWFsUm90YXRpb24ueSArIHlhdywgdGhpcy5pbml0aWFsUm90YXRpb24ueiArIHJvbGwpO1xuXG5cdFx0XHRpZiAoZGVjYXkgJiYgdGhpcy5pbnRlbnNpdHkgPiAwKSB7XG5cdFx0XHRcdHRoaXMuaW50ZW5zaXR5IC09IGRlY2F5UmF0ZSAqIGRlbHRhO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLXNoYWtlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9jYW1lcmEtc2hha2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxlQUFlLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQXFCNUMsTUFBTSxjQUFjLEdBQTJCO0lBQzlDLFNBQVMsRUFBRSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsR0FBRztJQUNYLFFBQVEsRUFBRSxHQUFHO0lBQ2IsT0FBTyxFQUFFLEdBQUc7SUFDWixZQUFZLEVBQUUsR0FBRztJQUNqQixjQUFjLEVBQUUsR0FBRztJQUNuQixhQUFhLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBR0YsTUFBTSxPQUFPLGVBQWU7SUFXM0IsSUFBSSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBTUQ7UUF0QkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwRSxlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoQyxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDdEIsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLG9CQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFxQyxDQUFDO1FBRXBGLG9CQUFlLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQVVwRCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0QyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxlQUFlO29CQUFFLE9BQU87Z0JBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFFN0IsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RSxlQUFlLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNyRCxRQUFRLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssZUFBZSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDOUcsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ2IsQ0FBQztZQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLE1BQU0sS0FBSyxHQUFHLFFBQVEsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUYsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUxRixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRWpILElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNyQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXJEVyxlQUFlO2tHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgU2lnbmFsLCBhZnRlck5leHRSZW5kZXIsIGlucHV0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBTaW1wbGV4Tm9pc2UgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5pbnRlcmZhY2UgQ29udHJvbHNQcm90byB7XG5cdHVwZGF0ZSgpOiB2b2lkO1xuXHR0YXJnZXQ6IFZlY3RvcjM7XG5cdGFkZEV2ZW50TGlzdGVuZXI6IChldmVudDogc3RyaW5nLCBjYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7XG5cdHJlbW92ZUV2ZW50TGlzdGVuZXI6IChldmVudDogc3RyaW5nLCBjYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IHZvaWQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0NhbWVyYVNoYWtlT3B0aW9ucyB7XG5cdGludGVuc2l0eTogbnVtYmVyO1xuXHRkZWNheT86IGJvb2xlYW47XG5cdGRlY2F5UmF0ZTogbnVtYmVyO1xuXHRtYXhZYXc6IG51bWJlcjtcblx0bWF4UGl0Y2g6IG51bWJlcjtcblx0bWF4Um9sbDogbnVtYmVyO1xuXHR5YXdGcmVxdWVuY3k6IG51bWJlcjtcblx0cGl0Y2hGcmVxdWVuY3k6IG51bWJlcjtcblx0cm9sbEZyZXF1ZW5jeTogbnVtYmVyO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c0NhbWVyYVNoYWtlT3B0aW9ucyA9IHtcblx0aW50ZW5zaXR5OiAxLFxuXHRkZWNheVJhdGU6IDAuNjUsXG5cdG1heFlhdzogMC4xLFxuXHRtYXhQaXRjaDogMC4xLFxuXHRtYXhSb2xsOiAwLjEsXG5cdHlhd0ZyZXF1ZW5jeTogMC4xLFxuXHRwaXRjaEZyZXF1ZW5jeTogMC4xLFxuXHRyb2xsRnJlcXVlbmN5OiAwLjEsXG59O1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZ3RzLWNhbWVyYS1zaGFrZScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ2FtZXJhU2hha2Uge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBjYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgZGVmYXVsdENvbnRyb2xzID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NvbnRyb2xzJykgYXMgdW5rbm93biBhcyBTaWduYWw8Q29udHJvbHNQcm90bz47XG5cblx0cHJpdmF0ZSBpbml0aWFsUm90YXRpb24gPSB1bnRyYWNrZWQodGhpcy5jYW1lcmEpLnJvdGF0aW9uLmNsb25lKCk7XG5cdHByaXZhdGUgaW50ZW5zaXR5T3B0aW9uID0gdW50cmFja2VkKHRoaXMub3B0aW9ucykuaW50ZW5zaXR5O1xuXG5cdGdldCBpbnRlbnNpdHkoKSB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZW5zaXR5T3B0aW9uO1xuXHR9XG5cblx0c2V0IGludGVuc2l0eSh2YWw6IG51bWJlcikge1xuXHRcdHRoaXMuaW50ZW5zaXR5T3B0aW9uID0gTWF0aC5taW4oMSwgTWF0aC5tYXgoMCwgdmFsKSk7XG5cdH1cblxuXHRwcml2YXRlIHlhd05vaXNlID0gbmV3IFNpbXBsZXhOb2lzZSgpO1xuXHRwcml2YXRlIHBpdGNoTm9pc2UgPSBuZXcgU2ltcGxleE5vaXNlKCk7XG5cdHByaXZhdGUgcm9sbE5vaXNlID0gbmV3IFNpbXBsZXhOb2lzZSgpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBkZWZhdWx0Q29udHJvbHMgPSB0aGlzLmRlZmF1bHRDb250cm9scygpO1xuXHRcdFx0XHRpZiAoIWRlZmF1bHRDb250cm9scykgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCBjYW1lcmEgPSB0aGlzLmNhbWVyYSgpO1xuXG5cdFx0XHRcdGNvbnN0IGNhbGxiYWNrID0gKCkgPT4gdm9pZCAodGhpcy5pbml0aWFsUm90YXRpb24gPSBjYW1lcmEucm90YXRpb24uY2xvbmUoKSk7XG5cdFx0XHRcdGRlZmF1bHRDb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjYWxsYmFjayk7XG5cdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB2b2lkIGRlZmF1bHRDb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjYWxsYmFjayk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoeyBkZWx0YSwgY2xvY2sgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW3sgbWF4WWF3LCB5YXdGcmVxdWVuY3ksIG1heFBpdGNoLCBwaXRjaEZyZXF1ZW5jeSwgbWF4Um9sbCwgcm9sbEZyZXF1ZW5jeSwgZGVjYXksIGRlY2F5UmF0ZSB9LCBjYW1lcmFdID0gW1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdF07XG5cdFx0XHRjb25zdCBzaGFrZSA9IE1hdGgucG93KHRoaXMuaW50ZW5zaXR5LCAyKTtcblx0XHRcdGNvbnN0IHlhdyA9IG1heFlhdyAqIHNoYWtlICogdGhpcy55YXdOb2lzZS5ub2lzZShjbG9jay5lbGFwc2VkVGltZSAqIHlhd0ZyZXF1ZW5jeSwgMSk7XG5cdFx0XHRjb25zdCBwaXRjaCA9IG1heFBpdGNoICogc2hha2UgKiB0aGlzLnBpdGNoTm9pc2Uubm9pc2UoY2xvY2suZWxhcHNlZFRpbWUgKiBwaXRjaEZyZXF1ZW5jeSwgMSk7XG5cdFx0XHRjb25zdCByb2xsID0gbWF4Um9sbCAqIHNoYWtlICogdGhpcy5yb2xsTm9pc2Uubm9pc2UoY2xvY2suZWxhcHNlZFRpbWUgKiByb2xsRnJlcXVlbmN5LCAxKTtcblxuXHRcdFx0Y2FtZXJhLnJvdGF0aW9uLnNldCh0aGlzLmluaXRpYWxSb3RhdGlvbi54ICsgcGl0Y2gsIHRoaXMuaW5pdGlhbFJvdGF0aW9uLnkgKyB5YXcsIHRoaXMuaW5pdGlhbFJvdGF0aW9uLnogKyByb2xsKTtcblxuXHRcdFx0aWYgKGRlY2F5ICYmIHRoaXMuaW50ZW5zaXR5ID4gMCkge1xuXHRcdFx0XHR0aGlzLmludGVuc2l0eSAtPSBkZWNheVJhdGUgKiBkZWx0YTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, input, viewChild, } from '@angular/core';
2
- import { NgtArgs, extend, injectNextBeforeRender, injectStore, omit, pick } from 'angular-three';
2
+ import { NgtArgs, extend, injectBeforeRender, injectStore, omit, pick } from 'angular-three';
3
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
4
4
  import { Color, Group, Mesh, MeshBasicMaterial, MeshDepthMaterial, OrthographicCamera, PlaneGeometry, ShaderMaterial, WebGLRenderTarget, } from 'three';
5
5
  import { HorizontalBlurShader, VerticalBlurShader } from 'three-stdlib';
@@ -122,7 +122,7 @@ export class NgtsContactShadows {
122
122
  let count = 0;
123
123
  let initialBackground;
124
124
  let initialOverrideMaterial;
125
- injectNextBeforeRender(() => {
125
+ injectBeforeRender(() => {
126
126
  const shadowsCamera = this.shadowsCameraRef()?.nativeElement;
127
127
  const [{ frames, blur, smooth }, gl, scene, contactShadows, { depthMaterial, renderTarget }] = [
128
128
  this.options(),
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
198
198
  changeDetection: ChangeDetectionStrategy.OnPush,
199
199
  }]
200
200
  }], ctorParameters: () => [] });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1zaGFkb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9jb250YWN0LXNoYWRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQVksTUFBTSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQ04sS0FBSyxFQUVMLEtBQUssRUFFTCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFFZCxpQkFBaUIsR0FDakIsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUJ4RSxNQUFNLGNBQWMsR0FBOEI7SUFDakQsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUM7SUFDVCxJQUFJLEVBQUUsQ0FBQztJQUNQLElBQUksRUFBRSxDQUFDO0lBQ1AsR0FBRyxFQUFFLEVBQUU7SUFDUCxVQUFVLEVBQUUsR0FBRztJQUNmLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLFNBQVM7SUFDaEIsVUFBVSxFQUFFLEtBQUs7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlC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QUFDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDO2dCQUNqRCxLQUFLLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDO1lBQ3RDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkpXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG1kQXRCcEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJULDREQUNTLE9BQU87OzJGQUlMLGtCQUFrQjtrQkF6QjlCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0Y29tcHV0ZWQsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0R3JvdXAsIGV4dGVuZCwgaW5qZWN0TmV4dEJlZm9yZVJlbmRlciwgaW5qZWN0U3RvcmUsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdENvbG9yLFxuXHRDb2xvclJlcHJlc2VudGF0aW9uLFxuXHRHcm91cCxcblx0TWF0ZXJpYWwsXG5cdE1lc2gsXG5cdE1lc2hCYXNpY01hdGVyaWFsLFxuXHRNZXNoRGVwdGhNYXRlcmlhbCxcblx0T3J0aG9ncmFwaGljQ2FtZXJhLFxuXHRQbGFuZUdlb21ldHJ5LFxuXHRTaGFkZXJNYXRlcmlhbCxcblx0VGV4dHVyZSxcblx0V2ViR0xSZW5kZXJUYXJnZXQsXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEhvcml6b250YWxCbHVyU2hhZGVyLCBWZXJ0aWNhbEJsdXJTaGFkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNDb250YWN0U2hhZG93c09wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE9taXQ8Tmd0R3JvdXAsICdzY2FsZSc+PiB7XG5cdG9wYWNpdHk6IG51bWJlcjtcblx0d2lkdGg6IG51bWJlcjtcblx0aGVpZ2h0OiBudW1iZXI7XG5cdGJsdXI6IG51bWJlcjtcblx0bmVhcjogbnVtYmVyO1xuXHRmYXI6IG51bWJlcjtcblx0c21vb3RoOiBib29sZWFuO1xuXHRyZXNvbHV0aW9uOiBudW1iZXI7XG5cdGZyYW1lczogbnVtYmVyO1xuXHRzY2FsZTogbnVtYmVyIHwgW3g6IG51bWJlciwgeTogbnVtYmVyXTtcblx0Y29sb3I6IENvbG9yUmVwcmVzZW50YXRpb247XG5cdGRlcHRoV3JpdGU6IGJvb2xlYW47XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzQ29udGFjdFNoYWRvd3NPcHRpb25zID0ge1xuXHRzY2FsZTogMTAsXG5cdGZyYW1lczogSW5maW5pdHksXG5cdG9wYWNpdHk6IDEsXG5cdHdpZHRoOiAxLFxuXHRoZWlnaHQ6IDEsXG5cdGJsdXI6IDEsXG5cdG5lYXI6IDAsXG5cdGZhcjogMTAsXG5cdHJlc29sdXRpb246IDUxMixcblx0c21vb3RoOiB0cnVlLFxuXHRjb2xvcjogJyMwMDAwMDAnLFxuXHRkZXB0aFdyaXRlOiBmYWxzZSxcbn07XG5cbmV4dGVuZCh7IEdyb3VwLCBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgT3J0aG9ncmFwaGljQ2FtZXJhIH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWNvbnRhY3Qtc2hhZG93cycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCAjY29udGFjdFNoYWRvd3MgW3JvdGF0aW9uXT1cIltNYXRoLlBJIC8gMiwgMCwgMF1cIiBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZ3QtbWVzaFxuXHRcdFx0XHRbc2NhbGVdPVwiWzEsIC0xLCAxXVwiXG5cdFx0XHRcdFtyb3RhdGlvbl09XCJbLU1hdGguUEkgLyAyLCAwLCAwXVwiXG5cdFx0XHRcdFtyZW5kZXJPcmRlcl09XCJyZW5kZXJPcmRlcigpID8/IDBcIlxuXHRcdFx0XHRbZ2VvbWV0cnldPVwicGxhbmVHZW9tZXRyeSgpXCJcblx0XHRcdD5cblx0XHRcdFx0PG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsXG5cdFx0XHRcdFx0W3RyYW5zcGFyZW50XT1cInRydWVcIlxuXHRcdFx0XHRcdFtvcGFjaXR5XT1cIm9wYWNpdHkoKVwiXG5cdFx0XHRcdFx0W2RlcHRoV3JpdGVdPVwiZGVwdGhXcml0ZSgpXCJcblx0XHRcdFx0XHRbbWFwXT1cInRleHR1cmUoKVwiXG5cdFx0XHRcdC8+XG5cdFx0XHQ8L25ndC1tZXNoPlxuXHRcdFx0PG5ndC1vcnRob2dyYXBoaWMtY2FtZXJhICphcmdzPVwiY2FtZXJhQXJncygpXCIgI3NoYWRvd3NDYW1lcmEgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ29udGFjdFNoYWRvd3Mge1xuXHRNYXRoID0gTWF0aDtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCdzY2FsZScsXG5cdFx0J2ZyYW1lcycsXG5cdFx0J29wYWNpdHknLFxuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2JsdXInLFxuXHRcdCduZWFyJyxcblx0XHQnZmFyJyxcblx0XHQncmVzb2x1dGlvbicsXG5cdFx0J3Ntb290aCcsXG5cdFx0J2NvbG9yJyxcblx0XHQnZGVwdGhXcml0ZScsXG5cdFx0J3JlbmRlck9yZGVyJyxcblx0XSk7XG5cblx0Y29udGFjdFNoYWRvd3NSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxHcm91cD4+KCdjb250YWN0U2hhZG93cycpO1xuXHRzaGFkb3dzQ2FtZXJhUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8T3J0aG9ncmFwaGljQ2FtZXJhPj4oJ3NoYWRvd3NDYW1lcmEnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBzY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cblx0cHJpdmF0ZSBzY2FsZWRXaWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7IHdpZHRoLCBzY2FsZSB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIHdpZHRoICogKEFycmF5LmlzQXJyYXkoc2NhbGUpID8gc2NhbGVbMF0gOiBzY2FsZSk7XG5cdH0pO1xuXHRwcml2YXRlIHNjYWxlZEhlaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7IGhlaWdodCwgc2NhbGUgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiBoZWlnaHQgKiAoQXJyYXkuaXNBcnJheShzY2FsZSkgPyBzY2FsZVsxXSA6IHNjYWxlKTtcblx0fSk7XG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRwcml2YXRlIG5lYXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ25lYXInKTtcblx0cHJpdmF0ZSBmYXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZhcicpO1xuXG5cdHByaXZhdGUgc2hhZG93c09wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW3dpZHRoLCBoZWlnaHQsIHJlc29sdXRpb24sIGNvbG9yXSA9IFtcblx0XHRcdHRoaXMuc2NhbGVkV2lkdGgoKSxcblx0XHRcdHRoaXMuc2NhbGVkSGVpZ2h0KCksXG5cdFx0XHR0aGlzLnJlc29sdXRpb24oKSxcblx0XHRcdHRoaXMuY29sb3IoKSxcblx0XHRdO1xuXHRcdGNvbnN0IHJlbmRlclRhcmdldCA9IG5ldyBXZWJHTFJlbmRlclRhcmdldChyZXNvbHV0aW9uLCByZXNvbHV0aW9uKTtcblx0XHRjb25zdCByZW5kZXJUYXJnZXRCbHVyID0gbmV3IFdlYkdMUmVuZGVyVGFyZ2V0KHJlc29sdXRpb24sIHJlc29sdXRpb24pO1xuXHRcdHJlbmRlclRhcmdldEJsdXIudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSByZW5kZXJUYXJnZXQudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcHMgPSBmYWxzZTtcblxuXHRcdGNvbnN0IHBsYW5lR2VvbWV0cnkgPSBuZXcgUGxhbmVHZW9tZXRyeSh3aWR0aCwgaGVpZ2h0KS5yb3RhdGVYKE1hdGguUEkgLyAyKTtcblx0XHRjb25zdCBibHVyUGxhbmUgPSBuZXcgTWVzaChwbGFuZUdlb21ldHJ5KTtcblx0XHRjb25zdCBkZXB0aE1hdGVyaWFsID0gbmV3IE1lc2hEZXB0aE1hdGVyaWFsKCk7XG5cdFx0ZGVwdGhNYXRlcmlhbC5kZXB0aFRlc3QgPSBkZXB0aE1hdGVyaWFsLmRlcHRoV3JpdGUgPSBmYWxzZTtcblx0XHRkZXB0aE1hdGVyaWFsLm9uQmVmb3JlQ29tcGlsZSA9IChzaGFkZXIpID0+IHtcblx0XHRcdHNoYWRlci51bmlmb3JtcyA9IHsgLi4uc2hhZGVyLnVuaWZvcm1zLCB1Y29sb3I6IHsgdmFsdWU6IG5ldyBDb2xvcihjb2xvcikgfSB9O1xuXHRcdFx0c2hhZGVyLmZyYWdtZW50U2hhZGVyID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLnJlcGxhY2UoXG5cdFx0XHRcdGB2b2lkIG1haW4oKSB7YCwgLy9cblx0XHRcdFx0YHVuaWZvcm0gdmVjMyB1Y29sb3I7XG4gICAgICAgICB2b2lkIG1haW4oKSB7XG4gICAgICAgIGAsXG5cdFx0XHQpO1xuXHRcdFx0c2hhZGVyLmZyYWdtZW50U2hhZGVyID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLnJlcGxhY2UoXG5cdFx0XHRcdCd2ZWM0KCB2ZWMzKCAxLjAgLSBmcmFnQ29vcmRaICksIG9wYWNpdHkgKTsnLFxuXHRcdFx0XHQvLyBDb2xvcml6ZSB0aGUgc2hhZG93LCBtdWx0aXBseSBieSB0aGUgZmFsbG9mZiBzbyB0aGF0IHRoZSBjZW50ZXIgY2FuIHJlbWFpbiBkYXJrZXJcblx0XHRcdFx0J3ZlYzQoIHVjb2xvciAqIGZyYWdDb29yZFogKiAyLjAsICggMS4wIC0gZnJhZ0Nvb3JkWiApICogMS4wICk7Jyxcblx0XHRcdCk7XG5cdFx0fTtcblxuXHRcdGNvbnN0IGhvcml6b250YWxCbHVyTWF0ZXJpYWwgPSBuZXcgU2hhZGVyTWF0ZXJpYWwoSG9yaXpvbnRhbEJsdXJTaGFkZXIpO1xuXHRcdGNvbnN0IHZlcnRpY2FsQmx1ck1hdGVyaWFsID0gbmV3IFNoYWRlck1hdGVyaWFsKFZlcnRpY2FsQmx1clNoYWRlcik7XG5cdFx0dmVydGljYWxCbHVyTWF0ZXJpYWwuZGVwdGhUZXN0ID0gaG9yaXpvbnRhbEJsdXJNYXRlcmlhbC5kZXB0aFRlc3QgPSBmYWxzZTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRyZW5kZXJUYXJnZXQsXG5cdFx0XHRwbGFuZUdlb21ldHJ5LFxuXHRcdFx0ZGVwdGhNYXRlcmlhbCxcblx0XHRcdGJsdXJQbGFuZSxcblx0XHRcdGhvcml6b250YWxCbHVyTWF0ZXJpYWwsXG5cdFx0XHR2ZXJ0aWNhbEJsdXJNYXRlcmlhbCxcblx0XHRcdHJlbmRlclRhcmdldEJsdXIsXG5cdFx0fTtcblx0fSk7XG5cblx0cmVuZGVyT3JkZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3JlbmRlck9yZGVyJyk7XG5cdG9wYWNpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ29wYWNpdHknKTtcblx0ZGVwdGhXcml0ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGVwdGhXcml0ZScpO1xuXHRwbGFuZUdlb21ldHJ5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaGFkb3dzT3B0aW9ucygpLnBsYW5lR2VvbWV0cnkpO1xuXHR0ZXh0dXJlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaGFkb3dzT3B0aW9ucygpLnJlbmRlclRhcmdldC50ZXh0dXJlKTtcblx0Y2FtZXJhQXJncyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbd2lkdGgsIGhlaWdodCwgbmVhciwgZmFyXSA9IFt0aGlzLnNjYWxlZFdpZHRoKCksIHRoaXMuc2NhbGVkSGVpZ2h0KCksIHRoaXMubmVhcigpLCB0aGlzLmZhcigpXTtcblx0XHRyZXR1cm4gWy13aWR0aCAvIDIsIHdpZHRoIC8gMiwgaGVpZ2h0IC8gMiwgLWhlaWdodCAvIDIsIG5lYXIsIGZhcl07XG5cdH0pO1xuXG5cdHByaXZhdGUgYmx1clNoYWRvd3MoYmx1cjogbnVtYmVyKSB7XG5cdFx0Y29uc3QgeyByZW5kZXJUYXJnZXQsIHJlbmRlclRhcmdldEJsdXIsIGJsdXJQbGFuZSwgaG9yaXpvbnRhbEJsdXJNYXRlcmlhbCwgdmVydGljYWxCbHVyTWF0ZXJpYWwgfSA9XG5cdFx0XHR0aGlzLnNoYWRvd3NPcHRpb25zKCk7XG5cdFx0Y29uc3Qgc2hhZG93c0NhbWVyYSA9IHRoaXMuc2hhZG93c0NhbWVyYVJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICghc2hhZG93c0NhbWVyYSkgcmV0dXJuO1xuXG5cdFx0Ymx1clBsYW5lLnZpc2libGUgPSB0cnVlO1xuXHRcdGJsdXJQbGFuZS5tYXRlcmlhbCA9IGhvcml6b250YWxCbHVyTWF0ZXJpYWw7XG5cdFx0aG9yaXpvbnRhbEJsdXJNYXRlcmlhbC51bmlmb3Jtc1sndERpZmZ1c2UnXS52YWx1ZSA9IHJlbmRlclRhcmdldC50ZXh0dXJlO1xuXHRcdGhvcml6b250YWxCbHVyTWF0ZXJpYWwudW5pZm9ybXNbJ2gnXS52YWx1ZSA9IChibHVyICogMSkgLyAyNTY7XG5cdFx0dGhpcy5nbCgpLnNldFJlbmRlclRhcmdldChyZW5kZXJUYXJnZXRCbHVyKTtcblx0XHR0aGlzLmdsKCkucmVuZGVyKGJsdXJQbGFuZSwgc2hhZG93c0NhbWVyYSk7XG5cblx0XHRibHVyUGxhbmUubWF0ZXJpYWwgPSB2ZXJ0aWNhbEJsdXJNYXRlcmlhbDtcblx0XHR2ZXJ0aWNhbEJsdXJNYXRlcmlhbC51bmlmb3Jtc1sndERpZmZ1c2UnXS52YWx1ZSA9IHJlbmRlclRhcmdldEJsdXIudGV4dHVyZTtcblx0XHR2ZXJ0aWNhbEJsdXJNYXRlcmlhbC51bmlmb3Jtc1sndiddLnZhbHVlID0gKGJsdXIgKiAxKSAvIDI1Njtcblx0XHR0aGlzLmdsKCkuc2V0UmVuZGVyVGFyZ2V0KHJlbmRlclRhcmdldCk7XG5cdFx0dGhpcy5nbCgpLnJlbmRlcihibHVyUGxhbmUsIHNoYWRvd3NDYW1lcmEpO1xuXHRcdGJsdXJQbGFuZS52aXNpYmxlID0gZmFsc2U7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRsZXQgY291bnQgPSAwO1xuXHRcdGxldCBpbml0aWFsQmFja2dyb3VuZDogQ29sb3IgfCBUZXh0dXJlIHwgbnVsbDtcblx0XHRsZXQgaW5pdGlhbE92ZXJyaWRlTWF0ZXJpYWw6IE1hdGVyaWFsIHwgbnVsbDtcblxuXHRcdGluamVjdE5leHRCZWZvcmVSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc2hhZG93c0NhbWVyYSA9IHRoaXMuc2hhZG93c0NhbWVyYVJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0Y29uc3QgW3sgZnJhbWVzLCBibHVyLCBzbW9vdGggfSwgZ2wsIHNjZW5lLCBjb250YWN0U2hhZG93cywgeyBkZXB0aE1hdGVyaWFsLCByZW5kZXJUYXJnZXQgfV0gPSBbXG5cdFx0XHRcdHRoaXMub3B0aW9ucygpLFxuXHRcdFx0XHR0aGlzLmdsKCksXG5cdFx0XHRcdHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0dGhpcy5jb250YWN0U2hhZG93c1JlZigpLFxuXHRcdFx0XHR0aGlzLnNoYWRvd3NPcHRpb25zKCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKHNoYWRvd3NDYW1lcmEgJiYgKGZyYW1lcyA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMpKSB7XG5cdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdGluaXRpYWxCYWNrZ3JvdW5kID0gc2NlbmUuYmFja2dyb3VuZDtcblx0XHRcdFx0aW5pdGlhbE92ZXJyaWRlTWF0ZXJpYWwgPSBzY2VuZS5vdmVycmlkZU1hdGVyaWFsO1xuXHRcdFx0XHRjb250YWN0U2hhZG93cy5uYXRpdmVFbGVtZW50LnZpc2libGUgPSBmYWxzZTtcblx0XHRcdFx0c2NlbmUuYmFja2dyb3VuZCA9IG51bGw7XG5cdFx0XHRcdHNjZW5lLm92ZXJyaWRlTWF0ZXJpYWwgPSBkZXB0aE1hdGVyaWFsO1xuXHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KTtcblx0XHRcdFx0Z2wucmVuZGVyKHNjZW5lLCBzaGFkb3dzQ2FtZXJhKTtcblx0XHRcdFx0dGhpcy5ibHVyU2hhZG93cyhibHVyKTtcblx0XHRcdFx0aWYgKHNtb290aCkgdGhpcy5ibHVyU2hhZG93cyhibHVyICogMC40KTtcblx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdFx0XHRjb250YWN0U2hhZG93cy5uYXRpdmVFbGVtZW50LnZpc2libGUgPSB0cnVlO1xuXHRcdFx0XHRzY2VuZS5vdmVycmlkZU1hdGVyaWFsID0gaW5pdGlhbE92ZXJyaWRlTWF0ZXJpYWw7XG5cdFx0XHRcdHNjZW5lLmJhY2tncm91bmQgPSBpbml0aWFsQmFja2dyb3VuZDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1zaGFkb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2xpYi9jb250YWN0LXNoYWRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQVksTUFBTSxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQ04sS0FBSyxFQUVMLEtBQUssRUFFTCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFFZCxpQkFBaUIsR0FDakIsTUFBTSxPQUFPLENBQUM7QUFDZixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUJ4RSxNQUFNLGNBQWMsR0FBOEI7SUFDakQsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUM7SUFDVCxJQUFJLEVBQUUsQ0FBQztJQUNQLElBQUksRUFBRSxDQUFDO0lBQ1AsR0FBRyxFQUFFLEVBQUU7SUFDUCxVQUFVLEVBQUUsR0FBRztJQUNmLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLFNBQVM7SUFDaEIsVUFBVSxFQUFFLEtBQUs7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlC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QUFDLGdCQUFnQixHQUFHLHVCQUF1QixDQUFDO2dCQUNqRCxLQUFLLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDO1lBQ3RDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkpXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLG1kQXRCcEI7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJULDREQUNTLE9BQU87OzJGQUlMLGtCQUFrQjtrQkF6QjlCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0Y29tcHV0ZWQsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0R3JvdXAsIGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3RTdG9yZSwgb21pdCwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0Q29sb3IsXG5cdENvbG9yUmVwcmVzZW50YXRpb24sXG5cdEdyb3VwLFxuXHRNYXRlcmlhbCxcblx0TWVzaCxcblx0TWVzaEJhc2ljTWF0ZXJpYWwsXG5cdE1lc2hEZXB0aE1hdGVyaWFsLFxuXHRPcnRob2dyYXBoaWNDYW1lcmEsXG5cdFBsYW5lR2VvbWV0cnksXG5cdFNoYWRlck1hdGVyaWFsLFxuXHRUZXh0dXJlLFxuXHRXZWJHTFJlbmRlclRhcmdldCxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgSG9yaXpvbnRhbEJsdXJTaGFkZXIsIFZlcnRpY2FsQmx1clNoYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0NvbnRhY3RTaGFkb3dzT3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8T21pdDxOZ3RHcm91cCwgJ3NjYWxlJz4+IHtcblx0b3BhY2l0eTogbnVtYmVyO1xuXHR3aWR0aDogbnVtYmVyO1xuXHRoZWlnaHQ6IG51bWJlcjtcblx0Ymx1cjogbnVtYmVyO1xuXHRuZWFyOiBudW1iZXI7XG5cdGZhcjogbnVtYmVyO1xuXHRzbW9vdGg6IGJvb2xlYW47XG5cdHJlc29sdXRpb246IG51bWJlcjtcblx0ZnJhbWVzOiBudW1iZXI7XG5cdHNjYWxlOiBudW1iZXIgfCBbeDogbnVtYmVyLCB5OiBudW1iZXJdO1xuXHRjb2xvcjogQ29sb3JSZXByZXNlbnRhdGlvbjtcblx0ZGVwdGhXcml0ZTogYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNDb250YWN0U2hhZG93c09wdGlvbnMgPSB7XG5cdHNjYWxlOiAxMCxcblx0ZnJhbWVzOiBJbmZpbml0eSxcblx0b3BhY2l0eTogMSxcblx0d2lkdGg6IDEsXG5cdGhlaWdodDogMSxcblx0Ymx1cjogMSxcblx0bmVhcjogMCxcblx0ZmFyOiAxMCxcblx0cmVzb2x1dGlvbjogNTEyLFxuXHRzbW9vdGg6IHRydWUsXG5cdGNvbG9yOiAnIzAwMDAwMCcsXG5cdGRlcHRoV3JpdGU6IGZhbHNlLFxufTtcblxuZXh0ZW5kKHsgR3JvdXAsIE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBPcnRob2dyYXBoaWNDYW1lcmEgfSk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtY29udGFjdC1zaGFkb3dzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNjb250YWN0U2hhZG93cyBbcm90YXRpb25dPVwiW01hdGguUEkgLyAyLCAwLCAwXVwiIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5ndC1tZXNoXG5cdFx0XHRcdFtzY2FsZV09XCJbMSwgLTEsIDFdXCJcblx0XHRcdFx0W3JvdGF0aW9uXT1cIlstTWF0aC5QSSAvIDIsIDAsIDBdXCJcblx0XHRcdFx0W3JlbmRlck9yZGVyXT1cInJlbmRlck9yZGVyKCkgPz8gMFwiXG5cdFx0XHRcdFtnZW9tZXRyeV09XCJwbGFuZUdlb21ldHJ5KClcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8bmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWxcblx0XHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0W29wYWNpdHldPVwib3BhY2l0eSgpXCJcblx0XHRcdFx0XHRbZGVwdGhXcml0ZV09XCJkZXB0aFdyaXRlKClcIlxuXHRcdFx0XHRcdFttYXBdPVwidGV4dHVyZSgpXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvbmd0LW1lc2g+XG5cdFx0XHQ8bmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEgKmFyZ3M9XCJjYW1lcmFBcmdzKClcIiAjc2hhZG93c0NhbWVyYSAvPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNDb250YWN0U2hhZG93cyB7XG5cdE1hdGggPSBNYXRoO1xuXG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbXG5cdFx0J3NjYWxlJyxcblx0XHQnZnJhbWVzJyxcblx0XHQnb3BhY2l0eScsXG5cdFx0J3dpZHRoJyxcblx0XHQnaGVpZ2h0Jyxcblx0XHQnYmx1cicsXG5cdFx0J25lYXInLFxuXHRcdCdmYXInLFxuXHRcdCdyZXNvbHV0aW9uJyxcblx0XHQnc21vb3RoJyxcblx0XHQnY29sb3InLFxuXHRcdCdkZXB0aFdyaXRlJyxcblx0XHQncmVuZGVyT3JkZXInLFxuXHRdKTtcblxuXHRjb250YWN0U2hhZG93c1JlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2NvbnRhY3RTaGFkb3dzJyk7XG5cdHNoYWRvd3NDYW1lcmFSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxPcnRob2dyYXBoaWNDYW1lcmE+Pignc2hhZG93c0NhbWVyYScpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgZ2wgPSB0aGlzLnN0b3JlLnNlbGVjdCgnZ2wnKTtcblxuXHRwcml2YXRlIHNjYWxlZFdpZHRoID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgd2lkdGgsIHNjYWxlIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRyZXR1cm4gd2lkdGggKiAoQXJyYXkuaXNBcnJheShzY2FsZSkgPyBzY2FsZVswXSA6IHNjYWxlKTtcblx0fSk7XG5cdHByaXZhdGUgc2NhbGVkSGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgaGVpZ2h0LCBzY2FsZSB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIGhlaWdodCAqIChBcnJheS5pc0FycmF5KHNjYWxlKSA/IHNjYWxlWzFdIDogc2NhbGUpO1xuXHR9KTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uJyk7XG5cdHByaXZhdGUgY29sb3IgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NvbG9yJyk7XG5cdHByaXZhdGUgbmVhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbmVhcicpO1xuXHRwcml2YXRlIGZhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZmFyJyk7XG5cblx0cHJpdmF0ZSBzaGFkb3dzT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbd2lkdGgsIGhlaWdodCwgcmVzb2x1dGlvbiwgY29sb3JdID0gW1xuXHRcdFx0dGhpcy5zY2FsZWRXaWR0aCgpLFxuXHRcdFx0dGhpcy5zY2FsZWRIZWlnaHQoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvbigpLFxuXHRcdFx0dGhpcy5jb2xvcigpLFxuXHRcdF07XG5cdFx0Y29uc3QgcmVuZGVyVGFyZ2V0ID0gbmV3IFdlYkdMUmVuZGVyVGFyZ2V0KHJlc29sdXRpb24sIHJlc29sdXRpb24pO1xuXHRcdGNvbnN0IHJlbmRlclRhcmdldEJsdXIgPSBuZXcgV2ViR0xSZW5kZXJUYXJnZXQocmVzb2x1dGlvbiwgcmVzb2x1dGlvbik7XG5cdFx0cmVuZGVyVGFyZ2V0Qmx1ci50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IHJlbmRlclRhcmdldC50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwcyA9IGZhbHNlO1xuXG5cdFx0Y29uc3QgcGxhbmVHZW9tZXRyeSA9IG5ldyBQbGFuZUdlb21ldHJ5KHdpZHRoLCBoZWlnaHQpLnJvdGF0ZVgoTWF0aC5QSSAvIDIpO1xuXHRcdGNvbnN0IGJsdXJQbGFuZSA9IG5ldyBNZXNoKHBsYW5lR2VvbWV0cnkpO1xuXHRcdGNvbnN0IGRlcHRoTWF0ZXJpYWwgPSBuZXcgTWVzaERlcHRoTWF0ZXJpYWwoKTtcblx0XHRkZXB0aE1hdGVyaWFsLmRlcHRoVGVzdCA9IGRlcHRoTWF0ZXJpYWwuZGVwdGhXcml0ZSA9IGZhbHNlO1xuXHRcdGRlcHRoTWF0ZXJpYWwub25CZWZvcmVDb21waWxlID0gKHNoYWRlcikgPT4ge1xuXHRcdFx0c2hhZGVyLnVuaWZvcm1zID0geyAuLi5zaGFkZXIudW5pZm9ybXMsIHVjb2xvcjogeyB2YWx1ZTogbmV3IENvbG9yKGNvbG9yKSB9IH07XG5cdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXIuZnJhZ21lbnRTaGFkZXIucmVwbGFjZShcblx0XHRcdFx0YHZvaWQgbWFpbigpIHtgLCAvL1xuXHRcdFx0XHRgdW5pZm9ybSB2ZWMzIHVjb2xvcjtcbiAgICAgICAgIHZvaWQgbWFpbigpIHtcbiAgICAgICAgYCxcblx0XHRcdCk7XG5cdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXIuZnJhZ21lbnRTaGFkZXIucmVwbGFjZShcblx0XHRcdFx0J3ZlYzQoIHZlYzMoIDEuMCAtIGZyYWdDb29yZFogKSwgb3BhY2l0eSApOycsXG5cdFx0XHRcdC8vIENvbG9yaXplIHRoZSBzaGFkb3csIG11bHRpcGx5IGJ5IHRoZSBmYWxsb2ZmIHNvIHRoYXQgdGhlIGNlbnRlciBjYW4gcmVtYWluIGRhcmtlclxuXHRcdFx0XHQndmVjNCggdWNvbG9yICogZnJhZ0Nvb3JkWiAqIDIuMCwgKCAxLjAgLSBmcmFnQ29vcmRaICkgKiAxLjAgKTsnLFxuXHRcdFx0KTtcblx0XHR9O1xuXG5cdFx0Y29uc3QgaG9yaXpvbnRhbEJsdXJNYXRlcmlhbCA9IG5ldyBTaGFkZXJNYXRlcmlhbChIb3Jpem9udGFsQmx1clNoYWRlcik7XG5cdFx0Y29uc3QgdmVydGljYWxCbHVyTWF0ZXJpYWwgPSBuZXcgU2hhZGVyTWF0ZXJpYWwoVmVydGljYWxCbHVyU2hhZGVyKTtcblx0XHR2ZXJ0aWNhbEJsdXJNYXRlcmlhbC5kZXB0aFRlc3QgPSBob3Jpem9udGFsQmx1ck1hdGVyaWFsLmRlcHRoVGVzdCA9IGZhbHNlO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdHJlbmRlclRhcmdldCxcblx0XHRcdHBsYW5lR2VvbWV0cnksXG5cdFx0XHRkZXB0aE1hdGVyaWFsLFxuXHRcdFx0Ymx1clBsYW5lLFxuXHRcdFx0aG9yaXpvbnRhbEJsdXJNYXRlcmlhbCxcblx0XHRcdHZlcnRpY2FsQmx1ck1hdGVyaWFsLFxuXHRcdFx0cmVuZGVyVGFyZ2V0Qmx1cixcblx0XHR9O1xuXHR9KTtcblxuXHRyZW5kZXJPcmRlciA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVuZGVyT3JkZXInKTtcblx0b3BhY2l0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnb3BhY2l0eScpO1xuXHRkZXB0aFdyaXRlID0gcGljayh0aGlzLm9wdGlvbnMsICdkZXB0aFdyaXRlJyk7XG5cdHBsYW5lR2VvbWV0cnkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNoYWRvd3NPcHRpb25zKCkucGxhbmVHZW9tZXRyeSk7XG5cdHRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNoYWRvd3NPcHRpb25zKCkucmVuZGVyVGFyZ2V0LnRleHR1cmUpO1xuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt3aWR0aCwgaGVpZ2h0LCBuZWFyLCBmYXJdID0gW3RoaXMuc2NhbGVkV2lkdGgoKSwgdGhpcy5zY2FsZWRIZWlnaHQoKSwgdGhpcy5uZWFyKCksIHRoaXMuZmFyKCldO1xuXHRcdHJldHVybiBbLXdpZHRoIC8gMiwgd2lkdGggLyAyLCBoZWlnaHQgLyAyLCAtaGVpZ2h0IC8gMiwgbmVhciwgZmFyXTtcblx0fSk7XG5cblx0cHJpdmF0ZSBibHVyU2hhZG93cyhibHVyOiBudW1iZXIpIHtcblx0XHRjb25zdCB7IHJlbmRlclRhcmdldCwgcmVuZGVyVGFyZ2V0Qmx1ciwgYmx1clBsYW5lLCBob3Jpem9udGFsQmx1ck1hdGVyaWFsLCB2ZXJ0aWNhbEJsdXJNYXRlcmlhbCB9ID1cblx0XHRcdHRoaXMuc2hhZG93c09wdGlvbnMoKTtcblx0XHRjb25zdCBzaGFkb3dzQ2FtZXJhID0gdGhpcy5zaGFkb3dzQ2FtZXJhUmVmKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFzaGFkb3dzQ2FtZXJhKSByZXR1cm47XG5cblx0XHRibHVyUGxhbmUudmlzaWJsZSA9IHRydWU7XG5cdFx0Ymx1clBsYW5lLm1hdGVyaWFsID0gaG9yaXpvbnRhbEJsdXJNYXRlcmlhbDtcblx0XHRob3Jpem9udGFsQmx1ck1hdGVyaWFsLnVuaWZvcm1zWyd0RGlmZnVzZSddLnZhbHVlID0gcmVuZGVyVGFyZ2V0LnRleHR1cmU7XG5cdFx0aG9yaXpvbnRhbEJsdXJNYXRlcmlhbC51bmlmb3Jtc1snaCddLnZhbHVlID0gKGJsdXIgKiAxKSAvIDI1Njtcblx0XHR0aGlzLmdsKCkuc2V0UmVuZGVyVGFyZ2V0KHJlbmRlclRhcmdldEJsdXIpO1xuXHRcdHRoaXMuZ2woKS5yZW5kZXIoYmx1clBsYW5lLCBzaGFkb3dzQ2FtZXJhKTtcblxuXHRcdGJsdXJQbGFuZS5tYXRlcmlhbCA9IHZlcnRpY2FsQmx1ck1hdGVyaWFsO1xuXHRcdHZlcnRpY2FsQmx1ck1hdGVyaWFsLnVuaWZvcm1zWyd0RGlmZnVzZSddLnZhbHVlID0gcmVuZGVyVGFyZ2V0Qmx1ci50ZXh0dXJlO1xuXHRcdHZlcnRpY2FsQmx1ck1hdGVyaWFsLnVuaWZvcm1zWyd2J10udmFsdWUgPSAoYmx1ciAqIDEpIC8gMjU2O1xuXHRcdHRoaXMuZ2woKS5zZXRSZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KTtcblx0XHR0aGlzLmdsKCkucmVuZGVyKGJsdXJQbGFuZSwgc2hhZG93c0NhbWVyYSk7XG5cdFx0Ymx1clBsYW5lLnZpc2libGUgPSBmYWxzZTtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGxldCBjb3VudCA9IDA7XG5cdFx0bGV0IGluaXRpYWxCYWNrZ3JvdW5kOiBDb2xvciB8IFRleHR1cmUgfCBudWxsO1xuXHRcdGxldCBpbml0aWFsT3ZlcnJpZGVNYXRlcmlhbDogTWF0ZXJpYWwgfCBudWxsO1xuXG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IHNoYWRvd3NDYW1lcmEgPSB0aGlzLnNoYWRvd3NDYW1lcmFSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGNvbnN0IFt7IGZyYW1lcywgYmx1ciwgc21vb3RoIH0sIGdsLCBzY2VuZSwgY29udGFjdFNoYWRvd3MsIHsgZGVwdGhNYXRlcmlhbCwgcmVuZGVyVGFyZ2V0IH1dID0gW1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuY29udGFjdFNoYWRvd3NSZWYoKSxcblx0XHRcdFx0dGhpcy5zaGFkb3dzT3B0aW9ucygpLFxuXHRcdFx0XTtcblx0XHRcdGlmIChzaGFkb3dzQ2FtZXJhICYmIChmcmFtZXMgPT09IEluZmluaXR5IHx8IGNvdW50IDwgZnJhbWVzKSkge1xuXHRcdFx0XHRjb3VudCsrO1xuXHRcdFx0XHRpbml0aWFsQmFja2dyb3VuZCA9IHNjZW5lLmJhY2tncm91bmQ7XG5cdFx0XHRcdGluaXRpYWxPdmVycmlkZU1hdGVyaWFsID0gc2NlbmUub3ZlcnJpZGVNYXRlcmlhbDtcblx0XHRcdFx0Y29udGFjdFNoYWRvd3MubmF0aXZlRWxlbWVudC52aXNpYmxlID0gZmFsc2U7XG5cdFx0XHRcdHNjZW5lLmJhY2tncm91bmQgPSBudWxsO1xuXHRcdFx0XHRzY2VuZS5vdmVycmlkZU1hdGVyaWFsID0gZGVwdGhNYXRlcmlhbDtcblx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KHJlbmRlclRhcmdldCk7XG5cdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgc2hhZG93c0NhbWVyYSk7XG5cdFx0XHRcdHRoaXMuYmx1clNoYWRvd3MoYmx1cik7XG5cdFx0XHRcdGlmIChzbW9vdGgpIHRoaXMuYmx1clNoYWRvd3MoYmx1ciAqIDAuNCk7XG5cdFx0XHRcdGdsLnNldFJlbmRlclRhcmdldChudWxsKTtcblx0XHRcdFx0Y29udGFjdFNoYWRvd3MubmF0aXZlRWxlbWVudC52aXNpYmxlID0gdHJ1ZTtcblx0XHRcdFx0c2NlbmUub3ZlcnJpZGVNYXRlcmlhbCA9IGluaXRpYWxPdmVycmlkZU1hdGVyaWFsO1xuXHRcdFx0XHRzY2VuZS5iYWNrZ3JvdW5kID0gaW5pdGlhbEJhY2tncm91bmQ7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
2
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, Injector, TemplateRef, afterNextRender, computed, contentChild, inject, input, output, signal, untracked, viewChild, } from '@angular/core';
3
3
  import { GainMapLoader, HDRJPGLoader } from '@monogrid/gainmap-js';
4
- import { NgtArgs, NgtPortal, NgtPortalContent, applyProps, extend, injectLoader, injectNextBeforeRender, injectStore, is, pick, prepare, } from 'angular-three';
4
+ import { NgtArgs, NgtPortal, NgtPortalContent, applyProps, extend, injectBeforeRender, injectLoader, injectStore, is, pick, prepare, } from 'angular-three';
5
5
  import { LinearEncoding, sRGBEncoding } from 'angular-three-soba/misc';
6
6
  import { assertInjector } from 'ngxtension/assert-injector';
7
7
  import { injectAutoEffect } from 'ngxtension/auto-effect';
@@ -308,7 +308,7 @@ export class NgtsEnvironmentPortal {
308
308
  });
309
309
  });
310
310
  let count = 1;
311
- injectNextBeforeRender(() => {
311
+ injectBeforeRender(() => {
312
312
  const frames = this.options().frames;
313
313
  if (frames === Infinity || (frames != null && count < frames)) {
314
314
  const camera = this.camera()?.nativeElement;
@@ -471,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
471
471
  changeDetection: ChangeDetectionStrategy.OnPush,
472
472
  }]
473
473
  }] });
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBR1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLEVBQUUsRUFDRixJQUFJLEVBQ0osT0FBTyxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLFVBQVUsRUFDVixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUVoQyxhQUFhLEVBRWIsS0FBSyxFQUVMLHFCQUFxQixHQUNyQixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxTQUFTLEVB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UUFtQkMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE0QixDQUFDLENBQUM7UUFDOUMsWUFBTyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxXQUFNLEdBQUcsTUFBTSxFQUFRLENBQUM7S0FDeEI7OEdBSlksZUFBZTtrR0FBZixlQUFlLDBSQUVKLFdBQVcsZ0VBakJ4Qjs7Ozs7Ozs7OztFQVVULDREQXBQVyxtQkFBbUIsNEdBakRuQixrQkFBa0IsMkdBK0hsQixxQkFBcUIseUhBbUlyQixxQkFBcUI7OzJGQXdDckIsZUFBZTtrQkFsQjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7OztFQVVUO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO29CQUNoRyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHREaXJlY3RpdmUsXG5cdEVmZmVjdFJlZixcblx0RWxlbWVudFJlZixcblx0SW5qZWN0b3IsXG5cdFRlbXBsYXRlUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYWluTWFwTG9hZGVyLCBIRFJKUEdMb2FkZXIgfSBmcm9tICdAbW9ub2dyaWQvZ2Fpbm1hcC1qcyc7XG5pbXBvcnQge1xuXHROZ3RBcmdzLFxuXHROZ3RQb3J0YWwsXG5cdE5ndFBvcnRhbENvbnRlbnQsXG5cdGFwcGx5UHJvcHMsXG5cdGV4dGVuZCxcblx0aW5qZWN0TG9hZGVyLFxuXHRpbmplY3ROZXh0QmVmb3JlUmVuZGVyLFxuXHRpbmplY3RTdG9yZSxcblx0aXMsXG5cdHBpY2ssXG5cdHByZXBhcmUsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTGluZWFyRW5jb2RpbmcsIFRleHR1cmVFbmNvZGluZywgc1JHQkVuY29kaW5nIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQge1xuXHRDdWJlQ2FtZXJhLFxuXHRDdWJlUmVmbGVjdGlvbk1hcHBpbmcsXG5cdEN1YmVUZXh0dXJlLFxuXHRDdWJlVGV4dHVyZUxvYWRlcixcblx0RXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmcsXG5cdEV1bGVyLFxuXHRIYWxmRmxvYXRUeXBlLFxuXHRMb2FkZXIsXG5cdFNjZW5lLFxuXHRUZXh0dXJlLFxuXHRXZWJHTEN1YmVSZW5kZXJUYXJnZXQsXG59IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEVYUkxvYWRlciwgR3JvdW5kUHJvamVjdGVkRW52LCBSR0JFTG9hZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuY29uc3QgQ1VCRU1BUF9ST09UID0gJ2h0dHBzOi8vcmF3LmdpdGhhY2suY29tL3BtbmRycy9kcmVpLWFzc2V0cy80NTYwNjBhMjZiYmViOGZkZjc5MzI2ZjIyNGI2ZDk5YjhiY2NlNzM2L2hkcmkvJztcblxuZXhwb3J0IGNvbnN0IEVOVklST05NRU5UX1BSRVNFVFMgPSB7XG5cdGFwYXJ0bWVudDogJ2xlYm9tYm9fMWsuaGRyJyxcblx0Y2l0eTogJ3BvdHNkYW1lcl9wbGF0el8xay5oZHInLFxuXHRkYXduOiAna2lhcmFfMV9kYXduXzFrLmhkcicsXG5cdGZvcmVzdDogJ2ZvcmVzdF9zbG9wZV8xay5oZHInLFxuXHRsb2JieTogJ3N0X2ZhZ2Fuc19pbnRlcmlvcl8xay5oZHInLFxuXHRuaWdodDogJ2Rpa2hvbG9sb19uaWdodF8xay5oZHInLFxuXHRwYXJrOiAncm9vaXRvdV9wYXJrXzFrLmhkcicsXG5cdHN0dWRpbzogJ3N0dWRpb19zbWFsbF8wM18xay5oZHInLFxuXHRzdW5zZXQ6ICd2ZW5pY2Vfc3Vuc2V0XzFrLmhkcicsXG5cdHdhcmVob3VzZTogJ2VtcHR5X3dhcmVob3VzZV8wMV8xay5oZHInLFxufTtcblxuZXhwb3J0IHR5cGUgTmd0c0Vudmlyb25tZW50UHJlc2V0cyA9IGtleW9mIHR5cGVvZiBFTlZJUk9OTUVOVF9QUkVTRVRTO1xuXG5mdW5jdGlvbiByZXNvbHZlU2NlbmUoc2NlbmU6IFNjZW5lIHwgRWxlbWVudFJlZjxTY2VuZT4pIHtcblx0cmV0dXJuIGlzLnJlZihzY2VuZSkgPyBzY2VuZS5uYXRpdmVFbGVtZW50IDogc2NlbmU7XG59XG5cbmZ1bmN0aW9uIHNldEVudlByb3BzKFxuXHRiYWNrZ3JvdW5kOiBib29sZWFuIHwgJ29ubHknLFxuXHRzY2VuZTogU2NlbmUgfCBFbGVtZW50UmVmPFNjZW5lPiB8IHVuZGVmaW5lZCxcblx0ZGVmYXVsdFNjZW5lOiBTY2VuZSxcblx0dGV4dHVyZTogVGV4dHVyZSxcblx0c2NlbmVQcm9wczogUGFydGlhbDxOZ3RzRW52aXJvbm1lbnRPcHRpb25zPiA9IHt9LFxuKSB7XG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZEJsdXJyaW5lc3MgPz89IHNjZW5lUHJvcHMuYmx1ciA/PyAwO1xuXHRzY2VuZVByb3BzLmJhY2tncm91bmRJbnRlbnNpdHkgPz89IDE7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBpdCdzIG9rLCB3ZSdyZSBzZW5kaW5nIHRocm91Z2ggYXBwbHlQcm9wc1xuXHRzY2VuZVByb3BzLmJhY2tncm91bmRSb3RhdGlvbiA/Pz0gWzAsIDAsIDBdO1xuXHRzY2VuZVByb3BzLmVudmlyb25tZW50SW50ZW5zaXR5ID8/PSAxO1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gaXQncyBvaywgd2UncmUgc2VuZGluZyB0aHJvdWdoIGFwcGx5UHJvcHNcblx0c2NlbmVQcm9wcy5lbnZpcm9ubWVudFJvdGF0aW9uID8/PSBbMCwgMCwgMF07XG5cblx0Y29uc3QgdGFyZ2V0ID0gcmVzb2x2ZVNjZW5lKHNjZW5lIHx8IGRlZmF1bHRTY2VuZSk7XG5cdGNvbnN0IG9sZGJnID0gdGFyZ2V0LmJhY2tncm91bmQ7XG5cdGNvbnN0IG9sZGVudiA9IHRhcmdldC5lbnZpcm9ubWVudDtcblx0Y29uc3Qgb2xkU2NlbmVQcm9wcyA9IHtcblx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzczogdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdGJhY2tncm91bmRJbnRlbnNpdHk6IHRhcmdldC5iYWNrZ3JvdW5kSW50ZW5zaXR5LFxuXHRcdGJhY2tncm91bmRSb3RhdGlvbjogdGFyZ2V0LmJhY2tncm91bmRSb3RhdGlvbj8uY2xvbmU/LigpID8/IFswLCAwLCAwXSxcblx0XHRlbnZpcm9ubWVudEludGVuc2l0eTogdGFyZ2V0LmVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdGVudmlyb25tZW50Um90YXRpb246IHRhcmdldC5lbnZpcm9ubWVudFJvdGF0aW9uPy5jbG9uZT8uKCkgPz8gWzAsIDAsIDBdLFxuXHR9O1xuXG5cdGlmIChiYWNrZ3JvdW5kICE9PSAnb25seScpIHRhcmdldC5lbnZpcm9ubWVudCA9IHRleHR1cmU7XG5cdGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IHRleHR1cmU7XG5cdGFwcGx5UHJvcHModGFyZ2V0LCBzY2VuZVByb3BzKTtcblxuXHRyZXR1cm4gKCkgPT4ge1xuXHRcdGlmIChiYWNrZ3JvdW5kICE9PSAnb25seScpIHRhcmdldC5lbnZpcm9ubWVudCA9IG9sZGVudjtcblx0XHRpZiAoYmFja2dyb3VuZCkgdGFyZ2V0LmJhY2tncm91bmQgPSBvbGRiZztcblx0XHRhcHBseVByb3BzKHRhcmdldCwgb2xkU2NlbmVQcm9wcyk7XG5cdH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0luamVjdEVudmlyb25tZW50T3B0aW9ucyB7XG5cdGZpbGVzOiBzdHJpbmcgfCBzdHJpbmdbXTtcblx0cGF0aDogc3RyaW5nO1xuXHRwcmVzZXQ/OiBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzO1xuXHRleHRlbnNpb25zPzogKGxvYWRlcjogTG9hZGVyKSA9PiB2b2lkO1xuXHRlbmNvZGluZz86IFRleHR1cmVFbmNvZGluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEVudmlyb25tZW50KFxuXHRvcHRpb25zOiAoKSA9PiBQYXJ0aWFsPE5ndHNJbmplY3RFbnZpcm9ubWVudE9wdGlvbnM+ID0gKCkgPT4gKHt9KSxcblx0eyBpbmplY3RvciB9OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RFbnZpcm9ubWVudCwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBhZGp1c3RlZE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRsZXQgeyBmaWxlcywgcGF0aCwgcHJlc2V0LCBleHRlbnNpb25zLCBlbmNvZGluZyB9ID0gb3B0aW9ucygpO1xuXG5cdFx0XHRpZiAoZmlsZXMgPT0gbnVsbCkge1xuXHRcdFx0XHRmaWxlcyA9IFsnL3B4LnBuZycsICcvbngucG5nJywgJy9weS5wbmcnLCAnL255LnBuZycsICcvcHoucG5nJywgJy9uei5wbmcnXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHBhdGggPT0gbnVsbCkge1xuXHRcdFx0XHRwYXRoID0gJyc7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChwcmVzZXQpIHtcblx0XHRcdFx0aWYgKCEocHJlc2V0IGluIEVOVklST05NRU5UX1BSRVNFVFMpKVxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignUHJlc2V0IG11c3QgYmUgb25lIG9mOiAnICsgT2JqZWN0LmtleXMoRU5WSVJPTk1FTlRfUFJFU0VUUykuam9pbignLCAnKSk7XG5cdFx0XHRcdGZpbGVzID0gRU5WSVJPTk1FTlRfUFJFU0VUU1twcmVzZXRdO1xuXHRcdFx0XHRwYXRoID0gQ1VCRU1BUF9ST09UO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4geyBmaWxlcywgcHJlc2V0LCBlbmNvZGluZywgcGF0aCwgZXh0ZW5zaW9ucyB9O1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgZmlsZXMgPSBwaWNrKGFkanVzdGVkT3B0aW9ucywgJ2ZpbGVzJyk7XG5cblx0XHRjb25zdCByZXN1bHRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRjb25zdCBtdWx0aUZpbGUgPSBBcnJheS5pc0FycmF5KGZpbGVzKTtcblxuXHRcdFx0Y29uc3QgaXNDdWJlTWFwID0gbXVsdGlGaWxlICYmIGZpbGVzLmxlbmd0aCA9PT0gNjtcblx0XHRcdGNvbnN0IGlzR2Fpbm1haW4gPSBtdWx0aUZpbGUgJiYgZmlsZXMubGVuZ3RoID09PSAzICYmIGZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJ2pzb24nKSk7XG5cdFx0XHRjb25zdCBmaXJzdEVudHJ5ID0gbXVsdGlGaWxlID8gZmlsZXNbMF0gOiBmaWxlcztcblxuXHRcdFx0Y29uc3QgZXh0ZW5zaW9uID0gaXNDdWJlTWFwXG5cdFx0XHRcdD8gJ2N1YmUnXG5cdFx0XHRcdDogaXNHYWlubWFpblxuXHRcdFx0XHRcdD8gJ3dlYnAnXG5cdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vZXhyJylcblx0XHRcdFx0XHRcdD8gJ2V4cidcblx0XHRcdFx0XHRcdDogZmlyc3RFbnRyeS5zdGFydHNXaXRoKCdkYXRhOmFwcGxpY2F0aW9uL2hkcicpXG5cdFx0XHRcdFx0XHRcdD8gJ2hkcidcblx0XHRcdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6aW1hZ2UvanBlZycpXG5cdFx0XHRcdFx0XHRcdFx0PyAnanBnJ1xuXHRcdFx0XHRcdFx0XHRcdDogZmlyc3RFbnRyeS5zcGxpdCgnLicpLnBvcCgpPy5zcGxpdCgnPycpPy5zaGlmdCgpPy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIHsgbXVsdGlGaWxlLCBleHRlbnNpb24sIGlzQ3ViZU1hcCB9O1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgbG9hZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBleHRlbnNpb24gfSA9IHJlc3VsdE9wdGlvbnMoKTtcblx0XHRcdGNvbnN0IGxvYWRlciA9XG5cdFx0XHRcdGV4dGVuc2lvbiA9PT0gJ2N1YmUnXG5cdFx0XHRcdFx0PyBDdWJlVGV4dHVyZUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnaGRyJ1xuXHRcdFx0XHRcdFx0PyBSR0JFTG9hZGVyXG5cdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ2V4cidcblx0XHRcdFx0XHRcdFx0PyBFWFJMb2FkZXJcblx0XHRcdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdqcGcnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZWcnXG5cdFx0XHRcdFx0XHRcdFx0PyAoSERSSlBHTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ3dlYnAnXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IChHYWluTWFwTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbDtcblxuXHRcdFx0aWYgKCFsb2FkZXIpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdpbmplY3RFbnZpcm9ubWVudDogVW5yZWNvZ25pemVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0ZW5zaW9uKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGxvYWRlciBhcyB0eXBlb2YgTG9hZGVyO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgYXNzZXJ0ZWRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdFx0Y29uc3QgZ2wgPSBzdG9yZS5zZWxlY3QoJ2dsJyk7XG5cblx0XHRjb25zdCB0ZXh0dXJlID0gc2lnbmFsPFRleHR1cmUgfCBDdWJlVGV4dHVyZSB8IG51bGw+KG51bGwpO1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRhdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW3sgZXh0ZW5zaW9uLCBtdWx0aUZpbGUgfSwgX2ZpbGVzXSA9IFt1bnRyYWNrZWQocmVzdWx0T3B0aW9ucyksIGZpbGVzKCldO1xuXG5cdFx0XHRcdGlmIChleHRlbnNpb24gIT09ICd3ZWJwJyAmJiBleHRlbnNpb24gIT09ICdqcGcnICYmIGV4dGVuc2lvbiAhPT0gJ2pwZWcnKSByZXR1cm47XG5cblx0XHRcdFx0Z2woKS5kb21FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG5cdFx0XHRcdFx0J3dlYmdsY29udGV4dGxvc3QnLFxuXHRcdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBmaWxlcyBpcyBjb3JyZWN0bHkgcGFzc2VkXG5cdFx0XHRcdFx0XHRpbmplY3RMb2FkZXIuY2xlYXIobXVsdGlGaWxlID8gW19maWxlc10gOiBfZmlsZXMpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0eyBvbmNlOiB0cnVlIH0sXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gaW5qZWN0TG9hZGVyKFxuXHRcdFx0XHRsb2FkZXIsXG5cdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHsgZmlsZXMgfSA9IGFkanVzdGVkT3B0aW9ucygpO1xuXHRcdFx0XHRcdHJldHVybiBBcnJheS5pc0FycmF5KGZpbGVzKSA/IFtmaWxlc10gOiBmaWxlcztcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGluamVjdG9yOiBhc3NlcnRlZEluamVjdG9yLFxuXHRcdFx0XHRcdGV4dGVuc2lvbnM6IChsb2FkZXIpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IHsgZXh0ZW5zaW9ucywgcGF0aCB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRcdFx0XHRjb25zdCB7IGV4dGVuc2lvbiB9ID0gcmVzdWx0T3B0aW9ucygpO1xuXHRcdFx0XHRcdFx0aWYgKGV4dGVuc2lvbiA9PT0gJ3dlYnAnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZycgfHwgZXh0ZW5zaW9uID09PSAnanBlZycpIHtcblx0XHRcdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIEdhaW5tYXAgcmVxdWlyZXMgYSByZW5kZXJlclxuXHRcdFx0XHRcdFx0XHRsb2FkZXIuc2V0UmVuZGVyZXIoZ2woKSk7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGxvYWRlci5zZXRQYXRoPy4ocGF0aCk7XG5cdFx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9ucykgZXh0ZW5zaW9ucyhsb2FkZXIpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0sXG5cdFx0XHQpO1xuXG5cdFx0XHRhdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgbG9hZGVyUmVzdWx0ID0gcmVzdWx0KCk7XG5cdFx0XHRcdGlmICghbG9hZGVyUmVzdWx0KSByZXR1cm47XG5cblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IG11bHRpRmlsZSwgZXh0ZW5zaW9uLCBpc0N1YmVNYXAgfSA9IHJlc3VsdE9wdGlvbnMoKTtcblx0XHRcdFx0XHRjb25zdCB7IGVuY29kaW5nIH0gPSBhZGp1c3RlZE9wdGlvbnMoKTtcblxuXHRcdFx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdFx0XHRsZXQgdGV4dHVyZVJlc3VsdCA9IChtdWx0aUZpbGUgPyBsb2FkZXJSZXN1bHRbMF0gOiBsb2FkZXJSZXN1bHQpIGFzIFRleHR1cmUgfCBDdWJlVGV4dHVyZTtcblxuXHRcdFx0XHRcdGlmIChleHRlbnNpb24gPT09ICdqcGcnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZWcnIHx8IGV4dGVuc2lvbiA9PT0gJ3dlYnAnKSB7XG5cdFx0XHRcdFx0XHR0ZXh0dXJlUmVzdWx0ID0gKHRleHR1cmVSZXN1bHQgYXMgYW55KS5yZW5kZXJUYXJnZXQ/LnRleHR1cmU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGV4dHVyZVJlc3VsdC5tYXBwaW5nID0gaXNDdWJlTWFwID8gQ3ViZVJlZmxlY3Rpb25NYXBwaW5nIDogRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmc7XG5cblx0XHRcdFx0XHRpZiAoJ2NvbG9yU3BhY2UnIGluIHRleHR1cmVSZXN1bHQpXG5cdFx0XHRcdFx0XHQodGV4dHVyZVJlc3VsdCBhcyBhbnkpLmNvbG9yU3BhY2UgPSBlbmNvZGluZyA/PyAoaXNDdWJlTWFwID8gJ3NyZ2InIDogJ3NyZ2ItbGluZWFyJyk7XG5cdFx0XHRcdFx0ZWxzZSAodGV4dHVyZVJlc3VsdCBhcyBhbnkpLmVuY29kaW5nID0gZW5jb2RpbmcgPz8gKGlzQ3ViZU1hcCA/IHNSR0JFbmNvZGluZyA6IExpbmVhckVuY29kaW5nKTtcblxuXHRcdFx0XHRcdHRleHR1cmUuc2V0KHRleHR1cmVSZXN1bHQpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRleHR1cmUuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzRW52aXJvbm1lbnRPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RzSW5qZWN0RW52aXJvbm1lbnRPcHRpb25zPiB7XG5cdGZyYW1lcz86IG51bWJlcjtcblx0bmVhcj86IG51bWJlcjtcblx0ZmFyPzogbnVtYmVyO1xuXHRyZXNvbHV0aW9uPzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kPzogYm9vbGVhbiB8ICdvbmx5JztcblxuXHQvKiogZGVwcmVjYXRlZCwgdXNlIGJhY2tncm91bmRCbHVycmluZXNzICovXG5cdGJsdXI/OiBudW1iZXI7XG5cdGJhY2tncm91bmRCbHVycmluZXNzPzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kSW50ZW5zaXR5PzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kUm90YXRpb24/OiBFdWxlcjtcblx0ZW52aXJvbm1lbnRJbnRlbnNpdHk/OiBudW1iZXI7XG5cdGVudmlyb25tZW50Um90YXRpb24/OiBFdWxlcjtcblxuXHRtYXA/OiBUZXh0dXJlO1xuXHRwcmVzZXQ/OiBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzO1xuXHRzY2VuZT86IFNjZW5lIHwgRWxlbWVudFJlZjxTY2VuZT47XG5cdGdyb3VuZD86IGJvb2xlYW4gfCB7IHJhZGl1cz86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyOyBzY2FsZT86IG51bWJlciB9O1xufVxuXG5jb25zdCBkZWZhdWx0QmFja2dyb3VuZDogTmd0c0Vudmlyb25tZW50T3B0aW9ucyA9IHtcblx0YmFja2dyb3VuZDogZmFsc2UsXG59O1xuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LW1hcCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRNYXAge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdEJhY2tncm91bmQsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0QmFja2dyb3VuZCkgfSk7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0ZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0ZW52Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGJhY2tncm91bmQgPSBmYWxzZSxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9ID0gdGhpcy5vcHRpb25zKCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YmFja2dyb3VuZCxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9O1xuXHR9KTtcblxuXHRtYXAgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21hcCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBtYXAgPSB0aGlzLm1hcCgpO1xuXHRcdFx0XHRpZiAoIW1hcCkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7IGJhY2tncm91bmQgPSBmYWxzZSwgc2NlbmUsIC4uLmNvbmZpZyB9ID0gdGhpcy5lbnZDb25maWcoKTtcblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCB0aGlzLmRlZmF1bHRTY2VuZSgpLCBtYXAsIGNvbmZpZyk7XG5cdFx0XHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFudXAoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtY3ViZScgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRDdWJlIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRCYWNrZ3JvdW5kLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdEJhY2tncm91bmQpIH0pO1xuXHRlbnZTZXQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuXHRhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdGRlZmF1bHRTY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXG5cdGVudkNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRiYWNrZ3JvdW5kID0gZmFsc2UsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGJsdXIsXG5cdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0fSA9IHRoaXMub3B0aW9ucygpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGJhY2tncm91bmQsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGJsdXIsXG5cdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0fTtcblx0fSk7XG5cblx0ZW52aXJvbm1lbnRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgZW5jb2RpbmcsIHByZXNldCwgZmlsZXMsIHBhdGgsIGV4dGVuc2lvbnMgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiB7IGVuY29kaW5nLCBwcmVzZXQsIGZpbGVzLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdH0pO1xuXHR0ZXh0dXJlID0gaW5qZWN0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudE9wdGlvbnMpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gdGhpcy50ZXh0dXJlKCk7XG5cdFx0XHRcdGlmICghdGV4dHVyZSkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7IGJhY2tncm91bmQgPSBmYWxzZSwgc2NlbmUsIC4uLmNvbmZpZyB9ID0gdGhpcy5lbnZDb25maWcoKTtcblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCB0aGlzLmRlZmF1bHRTY2VuZSgpLCB0ZXh0dXJlLCBjb25maWcpO1xuXHRcdFx0XHR0aGlzLmVudlNldC5lbWl0KCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiBjbGVhbnVwKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LXBvcnRhbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb3J0YWwgW2NvbnRhaW5lcl09XCJ2aXJ0dWFsU2NlbmVcIj5cblx0XHRcdDxuZy10ZW1wbGF0ZSBwb3J0YWxDb250ZW50IGxldC1pbmplY3Rvcj1cImluamVjdG9yXCIgbGV0LWNvbnRhaW5lcj1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudCgpXCJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpbmplY3RvciwgY29udGFpbmVyIH1cIlxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxuZ3QtY3ViZS1jYW1lcmEgI2N1YmVDYW1lcmEgKmFyZ3M9XCJjYW1lcmFBcmdzKClcIiAvPlxuXG5cdFx0XHRcdEBpZiAoZmlsZXMoKSB8fCBwcmVzZXQoKSkge1xuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW29wdGlvbnNdPVwiZW52Q3ViZU9wdGlvbnMoKVwiIChlbnZTZXQpPVwib25FbnZTZXQoKVwiIC8+XG5cdFx0XHRcdH0gQGVsc2UgaWYgKG1hcCgpKSB7XG5cdFx0XHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwIFtvcHRpb25zXT1cImVudk1hcE9wdGlvbnMoKVwiIChlbnZTZXQpPVwib25FbnZTZXQoKVwiIC8+XG5cdFx0XHRcdH1cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9uZ3QtcG9ydGFsPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c0Vudmlyb25tZW50Q3ViZSwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RBcmdzLCBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwge1xuXHRwcml2YXRlIGRlZmF1bHRPcHRpb25zOiBOZ3RzRW52aXJvbm1lbnRPcHRpb25zID0ge1xuXHRcdG5lYXI6IDEsXG5cdFx0ZmFyOiAxMDAwLFxuXHRcdHJlc29sdXRpb246IDI1Nixcblx0XHRmcmFtZXM6IDEsXG5cdFx0YmFja2dyb3VuZDogZmFsc2UsXG5cdH07XG5cdG9wdGlvbnMgPSBpbnB1dCh0aGlzLmRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHModGhpcy5kZWZhdWx0T3B0aW9ucykgfSk7XG5cdGNvbnRlbnQgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcblx0ZW52U2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBkZWZhdWx0U2NlbmUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXG5cdGNhbWVyYSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEN1YmVDYW1lcmE+PignY3ViZUNhbWVyYScpO1xuXG5cdG1hcCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFwJyk7XG5cdGZpbGVzID0gcGljayh0aGlzLm9wdGlvbnMsICdmaWxlcycpO1xuXHRwcmVzZXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3ByZXNldCcpO1xuXHRwcml2YXRlIGV4dGVuc2lvbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2V4dGVuc2lvbnMnKTtcblx0cHJpdmF0ZSBwYXRoID0gcGljayh0aGlzLm9wdGlvbnMsICdwYXRoJyk7XG5cblx0ZW52TWFwT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7IGJhY2tncm91bmQ6IHRydWUsIG1hcDogdGhpcy5tYXAoKSwgZXh0ZW5zaW9uczogdGhpcy5leHRlbnNpb25zKCkgfSkpO1xuXHRlbnZDdWJlT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7XG5cdFx0YmFja2dyb3VuZDogdHJ1ZSxcblx0XHRmaWxlczogdGhpcy5maWxlcygpLFxuXHRcdHByZXNldDogdGhpcy5wcmVzZXQoKSxcblx0XHRleHRlbnNpb25zOiB0aGlzLmV4dGVuc2lvbnMoKSxcblx0XHRwYXRoOiB0aGlzLnBhdGgoKSxcblx0fSkpO1xuXG5cdHByaXZhdGUgbmVhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbmVhcicpO1xuXHRwcml2YXRlIGZhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZmFyJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGZibyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmYm8gPSBuZXcgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMucmVzb2x1dGlvbigpKTtcblx0XHRmYm8udGV4dHVyZS50eXBlID0gSGFsZkZsb2F0VHlwZTtcblx0XHRyZXR1cm4gZmJvO1xuXHR9KTtcblxuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMubmVhcigpLCB0aGlzLmZhcigpLCB0aGlzLmZibygpXSk7XG5cblx0dmlydHVhbFNjZW5lID0gcHJlcGFyZShuZXcgU2NlbmUoKSk7XG5cblx0cHJpdmF0ZSBzZXRFbnZFZmZlY3RSZWY/OiBFZmZlY3RSZWY7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbZmlsZXMsIHByZXNldCwgbWFwXSA9IFt0aGlzLmZpbGVzKCksIHRoaXMucHJlc2V0KCksIHRoaXMubWFwKCldO1xuXHRcdFx0XHQvLyBOT1RFOiB3aGVuIHRoZXJlJ3Mgbm9uZSBvZiB0aGlzLCB3ZSBkb24ndCByZW5kZXIgY3ViZSBvciBtYXAgc28gd2UgbmVlZCB0byBzZXRFbnYgaGVyZVxuXHRcdFx0XHRpZiAoISFmaWxlcyB8fCAhIXByZXNldCB8fCAhIW1hcCkgcmV0dXJuO1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5zZXRQb3J0YWxFbnYoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0bGV0IGNvdW50ID0gMTtcblx0XHRpbmplY3ROZXh0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IGZyYW1lcyA9IHRoaXMub3B0aW9ucygpLmZyYW1lcztcblx0XHRcdGlmIChmcmFtZXMgPT09IEluZmluaXR5IHx8IChmcmFtZXMgIT0gbnVsbCAmJiBjb3VudCA8IGZyYW1lcykpIHtcblx0XHRcdFx0Y29uc3QgY2FtZXJhID0gdGhpcy5jYW1lcmEoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0aWYgKGNhbWVyYSkge1xuXHRcdFx0XHRcdGNhbWVyYS51cGRhdGUodGhpcy5nbCgpLCB0aGlzLnZpcnR1YWxTY2VuZSk7XG5cdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gTk9URTogd2UgdXNlIG9uRW52U2V0IGhlcmUgdG8gZW5zdXJlIHRoYXQgRW52aXJvbm1lbnRDdWJlIG9yIEVudmlyb25tZW50TWFwIHNldHMgdGhlIGVudiBiZWZvcmUgdGhlIHBvcnRhbFxuXHRvbkVudlNldCgpIHtcblx0XHRpZiAodGhpcy5zZXRFbnZFZmZlY3RSZWYpIHRoaXMuc2V0RW52RWZmZWN0UmVmLmRlc3Ryb3koKTtcblx0XHR0aGlzLnNldEVudkVmZmVjdFJlZiA9IHRoaXMuYXV0b0VmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuc2V0UG9ydGFsRW52KCk7XG5cdFx0XHR9LFxuXHRcdFx0eyBtYW51YWxDbGVhbnVwOiB0cnVlIH0sXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0UG9ydGFsRW52KCkge1xuXHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhKCk7XG5cdFx0aWYgKCFjYW1lcmE/Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcblxuXHRcdGNvbnN0IFtcblx0XHRcdHtcblx0XHRcdFx0ZnJhbWVzLFxuXHRcdFx0XHRiYWNrZ3JvdW5kID0gZmFsc2UsXG5cdFx0XHRcdHNjZW5lLFxuXHRcdFx0XHRibHVyLFxuXHRcdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdFx0YmFja2dyb3VuZFJvdGF0aW9uLFxuXHRcdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHRcdH0sXG5cdFx0XHRnbCxcblx0XHRcdGZibyxcblx0XHRcdGRlZmF1bHRTY2VuZSxcblx0XHRdID0gW3RoaXMub3B0aW9ucygpLCB0aGlzLmdsKCksIHRoaXMuZmJvKCksIHRoaXMuZGVmYXVsdFNjZW5lKCldO1xuXG5cdFx0aWYgKGZyYW1lcyA9PT0gMSkgY2FtZXJhLm5hdGl2ZUVsZW1lbnQudXBkYXRlKGdsLCB0aGlzLnZpcnR1YWxTY2VuZSk7XG5cdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCBkZWZhdWx0U2NlbmUsIGZiby50ZXh0dXJlLCB7XG5cdFx0XHRibHVyLFxuXHRcdFx0YmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0XHRiYWNrZ3JvdW5kSW50ZW5zaXR5LFxuXHRcdFx0YmFja2dyb3VuZFJvdGF0aW9uLFxuXHRcdFx0ZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0XHRlbnZpcm9ubWVudFJvdGF0aW9uLFxuXHRcdH0pO1xuXHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRyZXR1cm4gY2xlYW51cDtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LWdyb3VuZCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwIFtvcHRpb25zXT1cImVudk1hcE9wdGlvbnMoKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0PG5ndC1ncm91bmQtcHJvamVjdGVkLWVudiAqYXJncz1cImFyZ3MoKVwiIFtzY2FsZV09XCJzY2FsZSgpXCIgW2hlaWdodF09XCJoZWlnaHQoKVwiIFtyYWRpdXNdPVwicmFkaXVzKClcIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0Vudmlyb25tZW50R3JvdW5kIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE5ndHNFbnZpcm9ubWVudE9wdGlvbnMpO1xuXHRlbnZTZXQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuXHRwcml2YXRlIGRlZmF1bHRUZXh0dXJlID0gaW5qZWN0RW52aXJvbm1lbnQodGhpcy5vcHRpb25zKTtcblx0cHJpdmF0ZSB0ZXh0dXJlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkubWFwIHx8IHRoaXMuZGVmYXVsdFRleHR1cmUoKSk7XG5cblx0YXJncyA9IGNvbXB1dGVkKCgpID0+IFt0aGlzLnRleHR1cmUoKV0pO1xuXHRoZWlnaHQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKCkuZ3JvdW5kIGFzIGFueSk/LmhlaWdodCk7XG5cdHJhZGl1cyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKS5ncm91bmQgYXMgYW55KT8ucmFkaXVzKTtcblx0c2NhbGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKCkuZ3JvdW5kIGFzIGFueSk/LnNjYWxlID8/IDEwMDApO1xuXG5cdGVudk1hcE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBtYXA6IF8sIC4uLm9wdGlvbnMgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKG9wdGlvbnMsIHsgbWFwOiB0aGlzLnRleHR1cmUoKSB9KSBhcyBOZ3RzRW52aXJvbm1lbnRPcHRpb25zO1xuXHR9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBHcm91bmRQcm9qZWN0ZWRFbnYgfSk7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChvcHRpb25zKCkuZ3JvdW5kKSB7XG5cdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1ncm91bmQgW29wdGlvbnNdPVwib3B0aW9ucygpXCIgKGVudlNldCk9XCJlbnZTZXQuZW1pdCgpXCIgLz5cblx0XHR9IEBlbHNlIGlmIChvcHRpb25zKCkubWFwKSB7XG5cdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1tYXAgW29wdGlvbnNdPVwib3B0aW9ucygpXCIgKGVudlNldCk9XCJlbnZTZXQuZW1pdCgpXCIgLz5cblx0XHR9IEBlbHNlIGlmIChjb250ZW50KCkpIHtcblx0XHRcdDxuZ3RzLWVudmlyb25tZW50LXBvcnRhbCBbb3B0aW9uc109XCJvcHRpb25zKClcIiBbY29udGVudF09XCIkYW55KGNvbnRlbnQoKSlcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdH0gQGVsc2Uge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtY3ViZSBbb3B0aW9uc109XCJvcHRpb25zKClcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdH1cblx0YCxcblx0aW1wb3J0czogW05ndHNFbnZpcm9ubWVudEN1YmUsIE5ndHNFbnZpcm9ubWVudE1hcCwgTmd0c0Vudmlyb25tZW50UG9ydGFsLCBOZ3RzRW52aXJvbm1lbnRHcm91bmRdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgTmd0c0Vudmlyb25tZW50T3B0aW9ucyk7XG5cdGNvbnRlbnQgPSBjb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpO1xuXHRlbnZTZXQgPSBvdXRwdXQ8dm9pZD4oKTtcbn1cbiJdfQ==
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBR1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLEVBQUUsRUFDRixJQUFJLEVBQ0osT0FBTyxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLFVBQVUsRUFDVixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUVoQyxhQUFhLEVBRWIsS0FBSyxFQUVMLHFCQUFxQixHQUNyQixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxTQUFTLEVB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UUFtQkMsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE0QixDQUFDLENBQUM7UUFDOUMsWUFBTyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxXQUFNLEdBQUcsTUFBTSxFQUFRLENBQUM7S0FDeEI7OEdBSlksZUFBZTtrR0FBZixlQUFlLDBSQUVKLFdBQVcsZ0VBakJ4Qjs7Ozs7Ozs7OztFQVVULDREQXBQVyxtQkFBbUIsNEdBakRuQixrQkFBa0IsMkdBK0hsQixxQkFBcUIseUhBbUlyQixxQkFBcUI7OzJGQXdDckIsZUFBZTtrQkFsQjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7OztFQVVUO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDO29CQUNoRyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHREaXJlY3RpdmUsXG5cdEVmZmVjdFJlZixcblx0RWxlbWVudFJlZixcblx0SW5qZWN0b3IsXG5cdFRlbXBsYXRlUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHYWluTWFwTG9hZGVyLCBIRFJKUEdMb2FkZXIgfSBmcm9tICdAbW9ub2dyaWQvZ2Fpbm1hcC1qcyc7XG5pbXBvcnQge1xuXHROZ3RBcmdzLFxuXHROZ3RQb3J0YWwsXG5cdE5ndFBvcnRhbENvbnRlbnQsXG5cdGFwcGx5UHJvcHMsXG5cdGV4dGVuZCxcblx0aW5qZWN0QmVmb3JlUmVuZGVyLFxuXHRpbmplY3RMb2FkZXIsXG5cdGluamVjdFN0b3JlLFxuXHRpcyxcblx0cGljayxcblx0cHJlcGFyZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBMaW5lYXJFbmNvZGluZywgVGV4dHVyZUVuY29kaW5nLCBzUkdCRW5jb2RpbmcgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbWlzYyc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdEN1YmVDYW1lcmEsXG5cdEN1YmVSZWZsZWN0aW9uTWFwcGluZyxcblx0Q3ViZVRleHR1cmUsXG5cdEN1YmVUZXh0dXJlTG9hZGVyLFxuXHRFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZyxcblx0RXVsZXIsXG5cdEhhbGZGbG9hdFR5cGUsXG5cdExvYWRlcixcblx0U2NlbmUsXG5cdFRleHR1cmUsXG5cdFdlYkdMQ3ViZVJlbmRlclRhcmdldCxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRVhSTG9hZGVyLCBHcm91bmRQcm9qZWN0ZWRFbnYsIFJHQkVMb2FkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5jb25zdCBDVUJFTUFQX1JPT1QgPSAnaHR0cHM6Ly9yYXcuZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzQ1NjA2MGEyNmJiZWI4ZmRmNzkzMjZmMjI0YjZkOTliOGJjY2U3MzYvaGRyaS8nO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlRfUFJFU0VUUyA9IHtcblx0YXBhcnRtZW50OiAnbGVib21ib18xay5oZHInLFxuXHRjaXR5OiAncG90c2RhbWVyX3BsYXR6XzFrLmhkcicsXG5cdGRhd246ICdraWFyYV8xX2Rhd25fMWsuaGRyJyxcblx0Zm9yZXN0OiAnZm9yZXN0X3Nsb3BlXzFrLmhkcicsXG5cdGxvYmJ5OiAnc3RfZmFnYW5zX2ludGVyaW9yXzFrLmhkcicsXG5cdG5pZ2h0OiAnZGlraG9sb2xvX25pZ2h0XzFrLmhkcicsXG5cdHBhcms6ICdyb29pdG91X3BhcmtfMWsuaGRyJyxcblx0c3R1ZGlvOiAnc3R1ZGlvX3NtYWxsXzAzXzFrLmhkcicsXG5cdHN1bnNldDogJ3ZlbmljZV9zdW5zZXRfMWsuaGRyJyxcblx0d2FyZWhvdXNlOiAnZW1wdHlfd2FyZWhvdXNlXzAxXzFrLmhkcicsXG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzID0ga2V5b2YgdHlwZW9mIEVOVklST05NRU5UX1BSRVNFVFM7XG5cbmZ1bmN0aW9uIHJlc29sdmVTY2VuZShzY2VuZTogU2NlbmUgfCBFbGVtZW50UmVmPFNjZW5lPikge1xuXHRyZXR1cm4gaXMucmVmKHNjZW5lKSA/IHNjZW5lLm5hdGl2ZUVsZW1lbnQgOiBzY2VuZTtcbn1cblxuZnVuY3Rpb24gc2V0RW52UHJvcHMoXG5cdGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG5cdHNjZW5lOiBTY2VuZSB8IEVsZW1lbnRSZWY8U2NlbmU+IHwgdW5kZWZpbmVkLFxuXHRkZWZhdWx0U2NlbmU6IFNjZW5lLFxuXHR0ZXh0dXJlOiBUZXh0dXJlLFxuXHRzY2VuZVByb3BzOiBQYXJ0aWFsPE5ndHNFbnZpcm9ubWVudE9wdGlvbnM+ID0ge30sXG4pIHtcblx0c2NlbmVQcm9wcy5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA/Pz0gc2NlbmVQcm9wcy5ibHVyID8/IDA7XG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZEludGVuc2l0eSA/Pz0gMTtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIGl0J3Mgb2ssIHdlJ3JlIHNlbmRpbmcgdGhyb3VnaCBhcHBseVByb3BzXG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZFJvdGF0aW9uID8/PSBbMCwgMCwgMF07XG5cdHNjZW5lUHJvcHMuZW52aXJvbm1lbnRJbnRlbnNpdHkgPz89IDE7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBpdCdzIG9rLCB3ZSdyZSBzZW5kaW5nIHRocm91Z2ggYXBwbHlQcm9wc1xuXHRzY2VuZVByb3BzLmVudmlyb25tZW50Um90YXRpb24gPz89IFswLCAwLCAwXTtcblxuXHRjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcblx0Y29uc3Qgb2xkYmcgPSB0YXJnZXQuYmFja2dyb3VuZDtcblx0Y29uc3Qgb2xkZW52ID0gdGFyZ2V0LmVudmlyb25tZW50O1xuXHRjb25zdCBvbGRTY2VuZVByb3BzID0ge1xuXHRcdGJhY2tncm91bmRCbHVycmluZXNzOiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0YmFja2dyb3VuZEludGVuc2l0eTogdGFyZ2V0LmJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0YmFja2dyb3VuZFJvdGF0aW9uOiB0YXJnZXQuYmFja2dyb3VuZFJvdGF0aW9uPy5jbG9uZT8uKCkgPz8gWzAsIDAsIDBdLFxuXHRcdGVudmlyb25tZW50SW50ZW5zaXR5OiB0YXJnZXQuZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0ZW52aXJvbm1lbnRSb3RhdGlvbjogdGFyZ2V0LmVudmlyb25tZW50Um90YXRpb24/LmNsb25lPy4oKSA/PyBbMCwgMCwgMF0sXG5cdH07XG5cblx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gdGV4dHVyZTtcblx0YXBwbHlQcm9wcyh0YXJnZXQsIHNjZW5lUHJvcHMpO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gb2xkZW52O1xuXHRcdGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IG9sZGJnO1xuXHRcdGFwcGx5UHJvcHModGFyZ2V0LCBvbGRTY2VuZVByb3BzKTtcblx0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzSW5qZWN0RW52aXJvbm1lbnRPcHRpb25zIHtcblx0ZmlsZXM6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRwYXRoOiBzdHJpbmc7XG5cdHByZXNldD86IE5ndHNFbnZpcm9ubWVudFByZXNldHM7XG5cdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBMb2FkZXIpID0+IHZvaWQ7XG5cdGVuY29kaW5nPzogVGV4dHVyZUVuY29kaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW52aXJvbm1lbnQoXG5cdG9wdGlvbnM6ICgpID0+IFBhcnRpYWw8Tmd0c0luamVjdEVudmlyb25tZW50T3B0aW9ucz4gPSAoKSA9PiAoe30pLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEVudmlyb25tZW50LCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGFkanVzdGVkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGxldCB7IGZpbGVzLCBwYXRoLCBwcmVzZXQsIGV4dGVuc2lvbnMsIGVuY29kaW5nIH0gPSBvcHRpb25zKCk7XG5cblx0XHRcdGlmIChmaWxlcyA9PSBudWxsKSB7XG5cdFx0XHRcdGZpbGVzID0gWycvcHgucG5nJywgJy9ueC5wbmcnLCAnL3B5LnBuZycsICcvbnkucG5nJywgJy9wei5wbmcnLCAnL256LnBuZyddO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocGF0aCA9PSBudWxsKSB7XG5cdFx0XHRcdHBhdGggPSAnJztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHByZXNldCkge1xuXHRcdFx0XHRpZiAoIShwcmVzZXQgaW4gRU5WSVJPTk1FTlRfUFJFU0VUUykpXG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhFTlZJUk9OTUVOVF9QUkVTRVRTKS5qb2luKCcsICcpKTtcblx0XHRcdFx0ZmlsZXMgPSBFTlZJUk9OTUVOVF9QUkVTRVRTW3ByZXNldF07XG5cdFx0XHRcdHBhdGggPSBDVUJFTUFQX1JPT1Q7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdFx0fSk7XG5cblx0XHRjb25zdCBmaWxlcyA9IHBpY2soYWRqdXN0ZWRPcHRpb25zLCAnZmlsZXMnKTtcblxuXHRcdGNvbnN0IHJlc3VsdE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB7IGZpbGVzIH0gPSBhZGp1c3RlZE9wdGlvbnMoKTtcblx0XHRcdGNvbnN0IG11bHRpRmlsZSA9IEFycmF5LmlzQXJyYXkoZmlsZXMpO1xuXG5cdFx0XHRjb25zdCBpc0N1YmVNYXAgPSBtdWx0aUZpbGUgJiYgZmlsZXMubGVuZ3RoID09PSA2O1xuXHRcdFx0Y29uc3QgaXNHYWlubWFpbiA9IG11bHRpRmlsZSAmJiBmaWxlcy5sZW5ndGggPT09IDMgJiYgZmlsZXMuc29tZSgoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCgnanNvbicpKTtcblx0XHRcdGNvbnN0IGZpcnN0RW50cnkgPSBtdWx0aUZpbGUgPyBmaWxlc1swXSA6IGZpbGVzO1xuXG5cdFx0XHRjb25zdCBleHRlbnNpb24gPSBpc0N1YmVNYXBcblx0XHRcdFx0PyAnY3ViZSdcblx0XHRcdFx0OiBpc0dhaW5tYWluXG5cdFx0XHRcdFx0PyAnd2VicCdcblx0XHRcdFx0XHQ6IGZpcnN0RW50cnkuc3RhcnRzV2l0aCgnZGF0YTphcHBsaWNhdGlvbi9leHInKVxuXHRcdFx0XHRcdFx0PyAnZXhyJ1xuXHRcdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vaGRyJylcblx0XHRcdFx0XHRcdFx0PyAnaGRyJ1xuXHRcdFx0XHRcdFx0XHQ6IGZpcnN0RW50cnkuc3RhcnRzV2l0aCgnZGF0YTppbWFnZS9qcGVnJylcblx0XHRcdFx0XHRcdFx0XHQ/ICdqcGcnXG5cdFx0XHRcdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnNwbGl0KCcuJykucG9wKCk/LnNwbGl0KCc/Jyk/LnNoaWZ0KCk/LnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4geyBtdWx0aUZpbGUsIGV4dGVuc2lvbiwgaXNDdWJlTWFwIH07XG5cdFx0fSk7XG5cblx0XHRjb25zdCBsb2FkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB7IGV4dGVuc2lvbiB9ID0gcmVzdWx0T3B0aW9ucygpO1xuXHRcdFx0Y29uc3QgbG9hZGVyID1cblx0XHRcdFx0ZXh0ZW5zaW9uID09PSAnY3ViZSdcblx0XHRcdFx0XHQ/IEN1YmVUZXh0dXJlTG9hZGVyXG5cdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdoZHInXG5cdFx0XHRcdFx0XHQ/IFJHQkVMb2FkZXJcblx0XHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnZXhyJ1xuXHRcdFx0XHRcdFx0XHQ/IEVYUkxvYWRlclxuXHRcdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ2pwZycgfHwgZXh0ZW5zaW9uID09PSAnanBlZydcblx0XHRcdFx0XHRcdFx0XHQ/IChIRFJKUEdMb2FkZXIgYXMgdW5rbm93biBhcyB0eXBlb2YgTG9hZGVyKVxuXHRcdFx0XHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnd2VicCdcblx0XHRcdFx0XHRcdFx0XHRcdD8gKEdhaW5NYXBMb2FkZXIgYXMgdW5rbm93biBhcyB0eXBlb2YgTG9hZGVyKVxuXHRcdFx0XHRcdFx0XHRcdFx0OiBudWxsO1xuXG5cdFx0XHRpZiAoIWxvYWRlcikge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ2luamVjdEVudmlyb25tZW50OiBVbnJlY29nbml6ZWQgZmlsZSBleHRlbnNpb246ICcgKyBleHRlbnNpb24pO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbG9hZGVyIGFzIHR5cGVvZiBMb2FkZXI7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBhc3NlcnRlZEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0XHRjb25zdCBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBnbCA9IHN0b3JlLnNlbGVjdCgnZ2wnKTtcblxuXHRcdGNvbnN0IHRleHR1cmUgPSBzaWduYWw8VGV4dHVyZSB8IEN1YmVUZXh0dXJlIHwgbnVsbD4obnVsbCk7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbeyBleHRlbnNpb24sIG11bHRpRmlsZSB9LCBfZmlsZXNdID0gW3VudHJhY2tlZChyZXN1bHRPcHRpb25zKSwgZmlsZXMoKV07XG5cblx0XHRcdFx0aWYgKGV4dGVuc2lvbiAhPT0gJ3dlYnAnICYmIGV4dGVuc2lvbiAhPT0gJ2pwZycgJiYgZXh0ZW5zaW9uICE9PSAnanBlZycpIHJldHVybjtcblxuXHRcdFx0XHRnbCgpLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcblx0XHRcdFx0XHQnd2ViZ2xjb250ZXh0bG9zdCcsXG5cdFx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIGZpbGVzIGlzIGNvcnJlY3RseSBwYXNzZWRcblx0XHRcdFx0XHRcdGluamVjdExvYWRlci5jbGVhcihtdWx0aUZpbGUgPyBbX2ZpbGVzXSA6IF9maWxlcyk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7IG9uY2U6IHRydWUgfSxcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXG5cdFx0XHRjb25zdCByZXN1bHQgPSBpbmplY3RMb2FkZXIoXG5cdFx0XHRcdGxvYWRlcixcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRcdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsZXMpID8gW2ZpbGVzXSA6IGZpbGVzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aW5qZWN0b3I6IGFzc2VydGVkSW5qZWN0b3IsXG5cdFx0XHRcdFx0ZXh0ZW5zaW9uczogKGxvYWRlcikgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgeyBleHRlbnNpb25zLCBwYXRoIH0gPSBhZGp1c3RlZE9wdGlvbnMoKTtcblx0XHRcdFx0XHRcdGNvbnN0IHsgZXh0ZW5zaW9uIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9uID09PSAnd2VicCcgfHwgZXh0ZW5zaW9uID09PSAnanBnJyB8fCBleHRlbnNpb24gPT09ICdqcGVnJykge1xuXHRcdFx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gR2Fpbm1hcCByZXF1aXJlcyBhIHJlbmRlcmVyXG5cdFx0XHRcdFx0XHRcdGxvYWRlci5zZXRSZW5kZXJlcihnbCgpKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0bG9hZGVyLnNldFBhdGg/LihwYXRoKTtcblx0XHRcdFx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSxcblx0XHRcdCk7XG5cblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBsb2FkZXJSZXN1bHQgPSByZXN1bHQoKTtcblx0XHRcdFx0aWYgKCFsb2FkZXJSZXN1bHQpIHJldHVybjtcblxuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHsgbXVsdGlGaWxlLCBleHRlbnNpb24sIGlzQ3ViZU1hcCB9ID0gcmVzdWx0T3B0aW9ucygpO1xuXHRcdFx0XHRcdGNvbnN0IHsgZW5jb2RpbmcgfSA9IGFkanVzdGVkT3B0aW9ucygpO1xuXG5cdFx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHRcdGxldCB0ZXh0dXJlUmVzdWx0ID0gKG11bHRpRmlsZSA/IGxvYWRlclJlc3VsdFswXSA6IGxvYWRlclJlc3VsdCkgYXMgVGV4dHVyZSB8IEN1YmVUZXh0dXJlO1xuXG5cdFx0XHRcdFx0aWYgKGV4dGVuc2lvbiA9PT0gJ2pwZycgfHwgZXh0ZW5zaW9uID09PSAnanBlZycgfHwgZXh0ZW5zaW9uID09PSAnd2VicCcpIHtcblx0XHRcdFx0XHRcdHRleHR1cmVSZXN1bHQgPSAodGV4dHVyZVJlc3VsdCBhcyBhbnkpLnJlbmRlclRhcmdldD8udGV4dHVyZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR0ZXh0dXJlUmVzdWx0Lm1hcHBpbmcgPSBpc0N1YmVNYXAgPyBDdWJlUmVmbGVjdGlvbk1hcHBpbmcgOiBFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZztcblxuXHRcdFx0XHRcdGlmICgnY29sb3JTcGFjZScgaW4gdGV4dHVyZVJlc3VsdClcblx0XHRcdFx0XHRcdCh0ZXh0dXJlUmVzdWx0IGFzIGFueSkuY29sb3JTcGFjZSA9IGVuY29kaW5nID8/IChpc0N1YmVNYXAgPyAnc3JnYicgOiAnc3JnYi1saW5lYXInKTtcblx0XHRcdFx0XHRlbHNlICh0ZXh0dXJlUmVzdWx0IGFzIGFueSkuZW5jb2RpbmcgPSBlbmNvZGluZyA/PyAoaXNDdWJlTWFwID8gc1JHQkVuY29kaW5nIDogTGluZWFyRW5jb2RpbmcpO1xuXG5cdFx0XHRcdFx0dGV4dHVyZS5zZXQodGV4dHVyZVJlc3VsdCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdGV4dHVyZS5hc1JlYWRvbmx5KCk7XG5cdH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNFbnZpcm9ubWVudE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndHNJbmplY3RFbnZpcm9ubWVudE9wdGlvbnM+IHtcblx0ZnJhbWVzPzogbnVtYmVyO1xuXHRuZWFyPzogbnVtYmVyO1xuXHRmYXI/OiBudW1iZXI7XG5cdHJlc29sdXRpb24/OiBudW1iZXI7XG5cdGJhY2tncm91bmQ/OiBib29sZWFuIHwgJ29ubHknO1xuXG5cdC8qKiBkZXByZWNhdGVkLCB1c2UgYmFja2dyb3VuZEJsdXJyaW5lc3MgKi9cblx0Ymx1cj86IG51bWJlcjtcblx0YmFja2dyb3VuZEJsdXJyaW5lc3M/OiBudW1iZXI7XG5cdGJhY2tncm91bmRJbnRlbnNpdHk/OiBudW1iZXI7XG5cdGJhY2tncm91bmRSb3RhdGlvbj86IEV1bGVyO1xuXHRlbnZpcm9ubWVudEludGVuc2l0eT86IG51bWJlcjtcblx0ZW52aXJvbm1lbnRSb3RhdGlvbj86IEV1bGVyO1xuXG5cdG1hcD86IFRleHR1cmU7XG5cdHByZXNldD86IE5ndHNFbnZpcm9ubWVudFByZXNldHM7XG5cdHNjZW5lPzogU2NlbmUgfCBFbGVtZW50UmVmPFNjZW5lPjtcblx0Z3JvdW5kPzogYm9vbGVhbiB8IHsgcmFkaXVzPzogbnVtYmVyOyBoZWlnaHQ/OiBudW1iZXI7IHNjYWxlPzogbnVtYmVyIH07XG59XG5cbmNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kOiBOZ3RzRW52aXJvbm1lbnRPcHRpb25zID0ge1xuXHRiYWNrZ3JvdW5kOiBmYWxzZSxcbn07XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtbWFwJyB9KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudE1hcCB7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0QmFja2dyb3VuZCwgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRCYWNrZ3JvdW5kKSB9KTtcblx0ZW52U2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0YXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0c3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRkZWZhdWx0U2NlbmUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblxuXHRlbnZDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qge1xuXHRcdFx0YmFja2dyb3VuZCA9IGZhbHNlLFxuXHRcdFx0c2NlbmUsXG5cdFx0XHRibHVyLFxuXHRcdFx0YmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0XHRiYWNrZ3JvdW5kSW50ZW5zaXR5LFxuXHRcdFx0YmFja2dyb3VuZFJvdGF0aW9uLFxuXHRcdFx0ZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0XHRlbnZpcm9ubWVudFJvdGF0aW9uLFxuXHRcdH0gPSB0aGlzLm9wdGlvbnMoKTtcblxuXHRcdHJldHVybiB7XG5cdFx0XHRiYWNrZ3JvdW5kLFxuXHRcdFx0c2NlbmUsXG5cdFx0XHRibHVyLFxuXHRcdFx0YmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0XHRiYWNrZ3JvdW5kSW50ZW5zaXR5LFxuXHRcdFx0YmFja2dyb3VuZFJvdGF0aW9uLFxuXHRcdFx0ZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0XHRlbnZpcm9ubWVudFJvdGF0aW9uLFxuXHRcdH07XG5cdH0pO1xuXG5cdG1hcCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFwJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1hcCA9IHRoaXMubWFwKCk7XG5cdFx0XHRcdGlmICghbWFwKSByZXR1cm47XG5cdFx0XHRcdGNvbnN0IHsgYmFja2dyb3VuZCA9IGZhbHNlLCBzY2VuZSwgLi4uY29uZmlnIH0gPSB0aGlzLmVudkNvbmZpZygpO1xuXHRcdFx0XHRjb25zdCBjbGVhbnVwID0gc2V0RW52UHJvcHMoYmFja2dyb3VuZCwgc2NlbmUsIHRoaXMuZGVmYXVsdFNjZW5lKCksIG1hcCwgY29uZmlnKTtcblx0XHRcdFx0dGhpcy5lbnZTZXQuZW1pdCgpO1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4gY2xlYW51cCgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1jdWJlJyB9KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudEN1YmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdEJhY2tncm91bmQsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0QmFja2dyb3VuZCkgfSk7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0ZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0ZW52Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGJhY2tncm91bmQgPSBmYWxzZSxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9ID0gdGhpcy5vcHRpb25zKCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YmFja2dyb3VuZCxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9O1xuXHR9KTtcblxuXHRlbnZpcm9ubWVudE9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgeyBlbmNvZGluZywgcHJlc2V0LCBmaWxlcywgcGF0aCwgZXh0ZW5zaW9ucyB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIHsgZW5jb2RpbmcsIHByZXNldCwgZmlsZXMsIHBhdGgsIGV4dGVuc2lvbnMgfTtcblx0fSk7XG5cdHRleHR1cmUgPSBpbmplY3RFbnZpcm9ubWVudCh0aGlzLmVudmlyb25tZW50T3B0aW9ucyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRleHR1cmUgPSB0aGlzLnRleHR1cmUoKTtcblx0XHRcdFx0aWYgKCF0ZXh0dXJlKSByZXR1cm47XG5cdFx0XHRcdGNvbnN0IHsgYmFja2dyb3VuZCA9IGZhbHNlLCBzY2VuZSwgLi4uY29uZmlnIH0gPSB0aGlzLmVudkNvbmZpZygpO1xuXHRcdFx0XHRjb25zdCBjbGVhbnVwID0gc2V0RW52UHJvcHMoYmFja2dyb3VuZCwgc2NlbmUsIHRoaXMuZGVmYXVsdFNjZW5lKCksIHRleHR1cmUsIGNvbmZpZyk7XG5cdFx0XHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFudXAoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtcG9ydGFsJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXBvcnRhbCBbY29udGFpbmVyXT1cInZpcnR1YWxTY2VuZVwiPlxuXHRcdFx0PG5nLXRlbXBsYXRlIHBvcnRhbENvbnRlbnQgbGV0LWluamVjdG9yPVwiaW5qZWN0b3JcIiBsZXQtY29udGFpbmVyPVwiY29udGFpbmVyXCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50KClcIlxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3JdPVwiaW5qZWN0b3JcIlxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGluamVjdG9yLCBjb250YWluZXIgfVwiXG5cdFx0XHRcdC8+XG5cblx0XHRcdFx0PG5ndC1jdWJlLWNhbWVyYSAjY3ViZUNhbWVyYSAqYXJncz1cImNhbWVyYUFyZ3MoKVwiIC8+XG5cblx0XHRcdFx0QGlmIChmaWxlcygpIHx8IHByZXNldCgpKSB7XG5cdFx0XHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtY3ViZSBbb3B0aW9uc109XCJlbnZDdWJlT3B0aW9ucygpXCIgKGVudlNldCk9XCJvbkVudlNldCgpXCIgLz5cblx0XHRcdFx0fSBAZWxzZSBpZiAobWFwKCkpIHtcblx0XHRcdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1tYXAgW29wdGlvbnNdPVwiZW52TWFwT3B0aW9ucygpXCIgKGVudlNldCk9XCJvbkVudlNldCgpXCIgLz5cblx0XHRcdFx0fVxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L25ndC1wb3J0YWw+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzRW52aXJvbm1lbnRDdWJlLCBOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndEFyZ3MsIE5ndFBvcnRhbCwgTmd0UG9ydGFsQ29udGVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudFBvcnRhbCB7XG5cdHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IE5ndHNFbnZpcm9ubWVudE9wdGlvbnMgPSB7XG5cdFx0bmVhcjogMSxcblx0XHRmYXI6IDEwMDAsXG5cdFx0cmVzb2x1dGlvbjogMjU2LFxuXHRcdGZyYW1lczogMSxcblx0XHRiYWNrZ3JvdW5kOiBmYWxzZSxcblx0fTtcblx0b3B0aW9ucyA9IGlucHV0KHRoaXMuZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh0aGlzLmRlZmF1bHRPcHRpb25zKSB9KTtcblx0Y29udGVudCA9IGlucHV0LnJlcXVpcmVkPFRlbXBsYXRlUmVmPHVua25vd24+PigpO1xuXHRlbnZTZXQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGRlZmF1bHRTY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cblx0Y2FtZXJhID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8Q3ViZUNhbWVyYT4+KCdjdWJlQ2FtZXJhJyk7XG5cblx0bWFwID0gcGljayh0aGlzLm9wdGlvbnMsICdtYXAnKTtcblx0ZmlsZXMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZpbGVzJyk7XG5cdHByZXNldCA9IHBpY2sodGhpcy5vcHRpb25zLCAncHJlc2V0Jyk7XG5cdHByaXZhdGUgZXh0ZW5zaW9ucyA9IHBpY2sodGhpcy5vcHRpb25zLCAnZXh0ZW5zaW9ucycpO1xuXHRwcml2YXRlIHBhdGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ3BhdGgnKTtcblxuXHRlbnZNYXBPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4gKHsgYmFja2dyb3VuZDogdHJ1ZSwgbWFwOiB0aGlzLm1hcCgpLCBleHRlbnNpb25zOiB0aGlzLmV4dGVuc2lvbnMoKSB9KSk7XG5cdGVudkN1YmVPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4gKHtcblx0XHRiYWNrZ3JvdW5kOiB0cnVlLFxuXHRcdGZpbGVzOiB0aGlzLmZpbGVzKCksXG5cdFx0cHJlc2V0OiB0aGlzLnByZXNldCgpLFxuXHRcdGV4dGVuc2lvbnM6IHRoaXMuZXh0ZW5zaW9ucygpLFxuXHRcdHBhdGg6IHRoaXMucGF0aCgpLFxuXHR9KSk7XG5cblx0cHJpdmF0ZSBuZWFyID0gcGljayh0aGlzLm9wdGlvbnMsICduZWFyJyk7XG5cdHByaXZhdGUgZmFyID0gcGljayh0aGlzLm9wdGlvbnMsICdmYXInKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdyZXNvbHV0aW9uJyk7XG5cdHByaXZhdGUgZmJvID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGZibyA9IG5ldyBXZWJHTEN1YmVSZW5kZXJUYXJnZXQodGhpcy5yZXNvbHV0aW9uKCkpO1xuXHRcdGZiby50ZXh0dXJlLnR5cGUgPSBIYWxmRmxvYXRUeXBlO1xuXHRcdHJldHVybiBmYm87XG5cdH0pO1xuXG5cdGNhbWVyYUFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbdGhpcy5uZWFyKCksIHRoaXMuZmFyKCksIHRoaXMuZmJvKCldKTtcblxuXHR2aXJ0dWFsU2NlbmUgPSBwcmVwYXJlKG5ldyBTY2VuZSgpKTtcblxuXHRwcml2YXRlIHNldEVudkVmZmVjdFJlZj86IEVmZmVjdFJlZjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDdWJlQ2FtZXJhIH0pO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtmaWxlcywgcHJlc2V0LCBtYXBdID0gW3RoaXMuZmlsZXMoKSwgdGhpcy5wcmVzZXQoKSwgdGhpcy5tYXAoKV07XG5cdFx0XHRcdC8vIE5PVEU6IHdoZW4gdGhlcmUncyBub25lIG9mIHRoaXMsIHdlIGRvbid0IHJlbmRlciBjdWJlIG9yIG1hcCBzbyB3ZSBuZWVkIHRvIHNldEVudiBoZXJlXG5cdFx0XHRcdGlmICghIWZpbGVzIHx8ICEhcHJlc2V0IHx8ICEhbWFwKSByZXR1cm47XG5cdFx0XHRcdHJldHVybiB0aGlzLnNldFBvcnRhbEVudigpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRsZXQgY291bnQgPSAxO1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBmcmFtZXMgPSB0aGlzLm9wdGlvbnMoKS5mcmFtZXM7XG5cdFx0XHRpZiAoZnJhbWVzID09PSBJbmZpbml0eSB8fCAoZnJhbWVzICE9IG51bGwgJiYgY291bnQgPCBmcmFtZXMpKSB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmIChjYW1lcmEpIHtcblx0XHRcdFx0XHRjYW1lcmEudXBkYXRlKHRoaXMuZ2woKSwgdGhpcy52aXJ0dWFsU2NlbmUpO1xuXHRcdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8vIE5PVEU6IHdlIHVzZSBvbkVudlNldCBoZXJlIHRvIGVuc3VyZSB0aGF0IEVudmlyb25tZW50Q3ViZSBvciBFbnZpcm9ubWVudE1hcCBzZXRzIHRoZSBlbnYgYmVmb3JlIHRoZSBwb3J0YWxcblx0b25FbnZTZXQoKSB7XG5cdFx0aWYgKHRoaXMuc2V0RW52RWZmZWN0UmVmKSB0aGlzLnNldEVudkVmZmVjdFJlZi5kZXN0cm95KCk7XG5cdFx0dGhpcy5zZXRFbnZFZmZlY3RSZWYgPSB0aGlzLmF1dG9FZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnNldFBvcnRhbEVudigpO1xuXHRcdFx0fSxcblx0XHRcdHsgbWFudWFsQ2xlYW51cDogdHJ1ZSB9LFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIHNldFBvcnRhbEVudigpIHtcblx0XHRjb25zdCBjYW1lcmEgPSB0aGlzLmNhbWVyYSgpO1xuXHRcdGlmICghY2FtZXJhPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cblx0XHRjb25zdCBbXG5cdFx0XHR7XG5cdFx0XHRcdGZyYW1lcyxcblx0XHRcdFx0YmFja2dyb3VuZCA9IGZhbHNlLFxuXHRcdFx0XHRzY2VuZSxcblx0XHRcdFx0Ymx1cixcblx0XHRcdFx0YmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdFx0ZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0XHR9LFxuXHRcdFx0Z2wsXG5cdFx0XHRmYm8sXG5cdFx0XHRkZWZhdWx0U2NlbmUsXG5cdFx0XSA9IFt0aGlzLm9wdGlvbnMoKSwgdGhpcy5nbCgpLCB0aGlzLmZibygpLCB0aGlzLmRlZmF1bHRTY2VuZSgpXTtcblxuXHRcdGlmIChmcmFtZXMgPT09IDEpIGNhbWVyYS5uYXRpdmVFbGVtZW50LnVwZGF0ZShnbCwgdGhpcy52aXJ0dWFsU2NlbmUpO1xuXHRcdGNvbnN0IGNsZWFudXAgPSBzZXRFbnZQcm9wcyhiYWNrZ3JvdW5kLCBzY2VuZSwgZGVmYXVsdFNjZW5lLCBmYm8udGV4dHVyZSwge1xuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9KTtcblx0XHR0aGlzLmVudlNldC5lbWl0KCk7XG5cdFx0cmV0dXJuIGNsZWFudXA7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1ncm91bmQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3RzLWVudmlyb25tZW50LW1hcCBbb3B0aW9uc109XCJlbnZNYXBPcHRpb25zKClcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdDxuZ3QtZ3JvdW5kLXByb2plY3RlZC1lbnYgKmFyZ3M9XCJhcmdzKClcIiBbc2NhbGVdPVwic2NhbGUoKVwiIFtoZWlnaHRdPVwiaGVpZ2h0KClcIiBbcmFkaXVzXT1cInJhZGl1cygpXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndHNFbnZpcm9ubWVudE1hcCwgTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudEdyb3VuZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBOZ3RzRW52aXJvbm1lbnRPcHRpb25zKTtcblx0ZW52U2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSBkZWZhdWx0VGV4dHVyZSA9IGluamVjdEVudmlyb25tZW50KHRoaXMub3B0aW9ucyk7XG5cdHByaXZhdGUgdGV4dHVyZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLm1hcCB8fCB0aGlzLmRlZmF1bHRUZXh0dXJlKCkpO1xuXG5cdGFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbdGhpcy50ZXh0dXJlKCldKTtcblx0aGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMub3B0aW9ucygpLmdyb3VuZCBhcyBhbnkpPy5oZWlnaHQpO1xuXHRyYWRpdXMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKCkuZ3JvdW5kIGFzIGFueSk/LnJhZGl1cyk7XG5cdHNjYWxlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMub3B0aW9ucygpLmdyb3VuZCBhcyBhbnkpPy5zY2FsZSA/PyAxMDAwKTtcblxuXHRlbnZNYXBPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgbWFwOiBfLCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRyZXR1cm4gT2JqZWN0LmFzc2lnbihvcHRpb25zLCB7IG1hcDogdGhpcy50ZXh0dXJlKCkgfSkgYXMgTmd0c0Vudmlyb25tZW50T3B0aW9ucztcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdW5kUHJvamVjdGVkRW52IH0pO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAob3B0aW9ucygpLmdyb3VuZCkge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtZ3JvdW5kIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0fSBAZWxzZSBpZiAob3B0aW9ucygpLm1hcCkge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0fSBAZWxzZSBpZiAoY29udGVudCgpKSB7XG5cdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1wb3J0YWwgW29wdGlvbnNdPVwib3B0aW9ucygpXCIgW2NvbnRlbnRdPVwiJGFueShjb250ZW50KCkpXCIgKGVudlNldCk9XCJlbnZTZXQuZW1pdCgpXCIgLz5cblx0XHR9IEBlbHNlIHtcblx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW29wdGlvbnNdPVwib3B0aW9ucygpXCIgKGVudlNldCk9XCJlbnZTZXQuZW1pdCgpXCIgLz5cblx0XHR9XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzRW52aXJvbm1lbnRDdWJlLCBOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndHNFbnZpcm9ubWVudFBvcnRhbCwgTmd0c0Vudmlyb25tZW50R3JvdW5kXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0Vudmlyb25tZW50IHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE5ndHNFbnZpcm9ubWVudE9wdGlvbnMpO1xuXHRjb250ZW50ID0gY29udGVudENoaWxkKFRlbXBsYXRlUmVmKTtcblx0ZW52U2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input, viewChild, } from '@angular/core';
2
- import { extend, injectNextBeforeRender, omit } from 'angular-three';
2
+ import { extend, injectBeforeRender, omit } from 'angular-three';
3
3
  import { mergeInputs } from 'ngxtension/inject-inputs';
4
4
  import { Group, MathUtils } from 'three';
5
5
  import * as i0 from "@angular/core";
@@ -25,7 +25,7 @@ export class NgtsFloat {
25
25
  ]);
26
26
  this.floatRef = viewChild.required('float');
27
27
  const offset = Math.random() * 10000;
28
- injectNextBeforeRender(({ clock, invalidate }) => {
28
+ injectBeforeRender(({ clock, invalidate }) => {
29
29
  const [{ enabled, speed, rotationIntensity, floatingRange, floatIntensity, autoInvalidate }] = [this.options()];
30
30
  if (!enabled || speed === 0)
31
31
  return;
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
67
67
  changeDetection: ChangeDetectionStrategy.OnPush,
68
68
  }]
69
69
  }], ctorParameters: () => [] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2Zsb2F0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBWSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFekMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQVdsQixNQUFNLGNBQWMsR0FBcUI7SUFDeEMsT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUUsQ0FBQztJQUNSLGlCQUFpQixFQUFFLENBQUM7SUFDcEIsY0FBYyxFQUFFLENBQUM7SUFDakIsYUFBYSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQzFCLGNBQWMsRUFBRSxLQUFLO0NBQ3JCLENBQUM7QUFlRixNQUFNLE9BQU8sU0FBUztJQWFyQjtRQVpBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9CLFNBQVM7WUFDVCxPQUFPO1lBQ1AsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZ0JBQWdCO1NBQ2hCLENBQUMsQ0FBQztRQUVILGFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFvQixPQUFPLENBQUMsQ0FBQztRQUd6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLHNCQUFzQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtZQUNoRCxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2hILElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUVwQyxJQUFJLGNBQWM7Z0JBQUUsVUFBVSxFQUFFLENBQUM7WUFFakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUVoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztZQUNwRixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7WUFDcEYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1lBRXJGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hELFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN6RyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsY0FBYyxDQUFDO1lBQ2xELFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakNXLFNBQVM7a0dBQVQsU0FBUyxtVUFWWDs7Ozs7O0VBTVQ7OzJGQUlXLFNBQVM7a0JBYnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7OztFQU1UO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEdyb3VwLCBleHRlbmQsIGluamVjdE5leHRCZWZvcmVSZW5kZXIsIG9taXQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdyb3VwLCBNYXRoVXRpbHMgfSBmcm9tICd0aHJlZSc7XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNGbG9hdE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndEdyb3VwPiB7XG5cdGVuYWJsZWQ6IGJvb2xlYW47XG5cdHNwZWVkOiBudW1iZXI7XG5cdHJvdGF0aW9uSW50ZW5zaXR5OiBudW1iZXI7XG5cdGZsb2F0SW50ZW5zaXR5OiBudW1iZXI7XG5cdGZsb2F0aW5nUmFuZ2U6IFtudW1iZXI/LCBudW1iZXI/XTtcblx0YXV0b0ludmFsaWRhdGU6IGJvb2xlYW47XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzRmxvYXRPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRzcGVlZDogMSxcblx0cm90YXRpb25JbnRlbnNpdHk6IDEsXG5cdGZsb2F0SW50ZW5zaXR5OiAxLFxuXHRmbG9hdGluZ1JhbmdlOiBbLTAuMSwgMC4xXSxcblx0YXV0b0ludmFsaWRhdGU6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1mbG9hdCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZ3QtZ3JvdXAgI2Zsb2F0IFttYXRyaXhBdXRvVXBkYXRlXT1cImZhbHNlXCI+XG5cdFx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0XHQ8L25ndC1ncm91cD5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0Zsb2F0IHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnZW5hYmxlZCcsXG5cdFx0J3NwZWVkJyxcblx0XHQncm90YXRpb25JbnRlbnNpdHknLFxuXHRcdCdmbG9hdEludGVuc2l0eScsXG5cdFx0J2Zsb2F0aW5nUmFuZ2UnLFxuXHRcdCdhdXRvSW52YWxpZGF0ZScsXG5cdF0pO1xuXG5cdGZsb2F0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8R3JvdXA+PignZmxvYXQnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBvZmZzZXQgPSBNYXRoLnJhbmRvbSgpICogMTAwMDA7XG5cdFx0aW5qZWN0TmV4dEJlZm9yZVJlbmRlcigoeyBjbG9jaywgaW52YWxpZGF0ZSB9KSA9PiB7XG5cdFx0XHRjb25zdCBbeyBlbmFibGVkLCBzcGVlZCwgcm90YXRpb25JbnRlbnNpdHksIGZsb2F0aW5nUmFuZ2UsIGZsb2F0SW50ZW5zaXR5LCBhdXRvSW52YWxpZGF0ZSB9XSA9IFt0aGlzLm9wdGlvbnMoKV07XG5cdFx0XHRpZiAoIWVuYWJsZWQgfHwgc3BlZWQgPT09IDApIHJldHVybjtcblxuXHRcdFx0aWYgKGF1dG9JbnZhbGlkYXRlKSBpbnZhbGlkYXRlKCk7XG5cblx0XHRcdGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZmxvYXRSZWYoKS5uYXRpdmVFbGVtZW50O1xuXG5cdFx0XHRjb25zdCBvZmZzZXRUaW1lID0gb2Zmc2V0ICsgY2xvY2suZ2V0RWxhcHNlZFRpbWUoKTtcblx0XHRcdGNvbnRhaW5lci5yb3RhdGlvbi54ID0gKE1hdGguY29zKChvZmZzZXRUaW1lIC8gNCkgKiBzcGVlZCkgLyA4KSAqIHJvdGF0aW9uSW50ZW5zaXR5O1xuXHRcdFx0Y29udGFpbmVyLnJvdGF0aW9uLnkgPSAoTWF0aC5zaW4oKG9mZnNldFRpbWUgLyA0KSAqIHNwZWVkKSAvIDgpICogcm90YXRpb25JbnRlbnNpdHk7XG5cdFx0XHRjb250YWluZXIucm90YXRpb24ueiA9IChNYXRoLnNpbigob2Zmc2V0VGltZSAvIDQpICogc3BlZWQpIC8gMjApICogcm90YXRpb25JbnRlbnNpdHk7XG5cblx0XHRcdGxldCB5UG9zaXRpb24gPSBNYXRoLnNpbigob2Zmc2V0VGltZSAvIDQpICogc3BlZWQpIC8gMTA7XG5cdFx0XHR5UG9zaXRpb24gPSBNYXRoVXRpbHMubWFwTGluZWFyKHlQb3NpdGlvbiwgLTAuMSwgMC4xLCBmbG9hdGluZ1JhbmdlWzBdID8/IC0wLjEsIGZsb2F0aW5nUmFuZ2VbMV0gPz8gMC4xKTtcblx0XHRcdGNvbnRhaW5lci5wb3NpdGlvbi55ID0geVBvc2l0aW9uICogZmxvYXRJbnRlbnNpdHk7XG5cdFx0XHRjb250YWluZXIudXBkYXRlTWF0cml4KCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2Zsb2F0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBWSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFekMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQVdsQixNQUFNLGNBQWMsR0FBcUI7SUFDeEMsT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUUsQ0FBQztJQUNSLGlCQUFpQixFQUFFLENBQUM7SUFDcEIsY0FBYyxFQUFFLENBQUM7SUFDakIsYUFBYSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQzFCLGNBQWMsRUFBRSxLQUFLO0NBQ3JCLENBQUM7QUFlRixNQUFNLE9BQU8sU0FBUztJQWFyQjtRQVpBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9CLFNBQVM7WUFDVCxPQUFPO1lBQ1AsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZ0JBQWdCO1NBQ2hCLENBQUMsQ0FBQztRQUVILGFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFvQixPQUFPLENBQUMsQ0FBQztRQUd6RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtZQUM1QyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2hILElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUVwQyxJQUFJLGNBQWM7Z0JBQUUsVUFBVSxFQUFFLENBQUM7WUFFakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUVoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25ELFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztZQUNwRixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7WUFDcEYsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1lBRXJGLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3hELFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN6RyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsY0FBYyxDQUFDO1lBQ2xELFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakNXLFNBQVM7a0dBQVQsU0FBUyxtVUFWWDs7Ozs7O0VBTVQ7OzJGQUlXLFNBQVM7a0JBYnJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7OztFQU1UO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEdyb3VwLCBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgb21pdCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgR3JvdXAsIE1hdGhVdGlscyB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0Zsb2F0T3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0R3JvdXA+IHtcblx0ZW5hYmxlZDogYm9vbGVhbjtcblx0c3BlZWQ6IG51bWJlcjtcblx0cm90YXRpb25JbnRlbnNpdHk6IG51bWJlcjtcblx0ZmxvYXRJbnRlbnNpdHk6IG51bWJlcjtcblx0ZmxvYXRpbmdSYW5nZTogW251bWJlcj8sIG51bWJlcj9dO1xuXHRhdXRvSW52YWxpZGF0ZTogYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNGbG9hdE9wdGlvbnMgPSB7XG5cdGVuYWJsZWQ6IHRydWUsXG5cdHNwZWVkOiAxLFxuXHRyb3RhdGlvbkludGVuc2l0eTogMSxcblx0ZmxvYXRJbnRlbnNpdHk6IDEsXG5cdGZsb2F0aW5nUmFuZ2U6IFstMC4xLCAwLjFdLFxuXHRhdXRvSW52YWxpZGF0ZTogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWZsb2F0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5ndC1ncm91cCAjZmxvYXQgW21hdHJpeEF1dG9VcGRhdGVdPVwiZmFsc2VcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdDwvbmd0LWdyb3VwPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRmxvYXQge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCdlbmFibGVkJyxcblx0XHQnc3BlZWQnLFxuXHRcdCdyb3RhdGlvbkludGVuc2l0eScsXG5cdFx0J2Zsb2F0SW50ZW5zaXR5Jyxcblx0XHQnZmxvYXRpbmdSYW5nZScsXG5cdFx0J2F1dG9JbnZhbGlkYXRlJyxcblx0XSk7XG5cblx0ZmxvYXRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxHcm91cD4+KCdmbG9hdCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IG9mZnNldCA9IE1hdGgucmFuZG9tKCkgKiAxMDAwMDtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKHsgY2xvY2ssIGludmFsaWRhdGUgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW3sgZW5hYmxlZCwgc3BlZWQsIHJvdGF0aW9uSW50ZW5zaXR5LCBmbG9hdGluZ1JhbmdlLCBmbG9hdEludGVuc2l0eSwgYXV0b0ludmFsaWRhdGUgfV0gPSBbdGhpcy5vcHRpb25zKCldO1xuXHRcdFx0aWYgKCFlbmFibGVkIHx8IHNwZWVkID09PSAwKSByZXR1cm47XG5cblx0XHRcdGlmIChhdXRvSW52YWxpZGF0ZSkgaW52YWxpZGF0ZSgpO1xuXG5cdFx0XHRjb25zdCBjb250YWluZXIgPSB0aGlzLmZsb2F0UmVmKCkubmF0aXZlRWxlbWVudDtcblxuXHRcdFx0Y29uc3Qgb2Zmc2V0VGltZSA9IG9mZnNldCArIGNsb2NrLmdldEVsYXBzZWRUaW1lKCk7XG5cdFx0XHRjb250YWluZXIucm90YXRpb24ueCA9IChNYXRoLmNvcygob2Zmc2V0VGltZSAvIDQpICogc3BlZWQpIC8gOCkgKiByb3RhdGlvbkludGVuc2l0eTtcblx0XHRcdGNvbnRhaW5lci5yb3RhdGlvbi55ID0gKE1hdGguc2luKChvZmZzZXRUaW1lIC8gNCkgKiBzcGVlZCkgLyA4KSAqIHJvdGF0aW9uSW50ZW5zaXR5O1xuXHRcdFx0Y29udGFpbmVyLnJvdGF0aW9uLnogPSAoTWF0aC5zaW4oKG9mZnNldFRpbWUgLyA0KSAqIHNwZWVkKSAvIDIwKSAqIHJvdGF0aW9uSW50ZW5zaXR5O1xuXG5cdFx0XHRsZXQgeVBvc2l0aW9uID0gTWF0aC5zaW4oKG9mZnNldFRpbWUgLyA0KSAqIHNwZWVkKSAvIDEwO1xuXHRcdFx0eVBvc2l0aW9uID0gTWF0aFV0aWxzLm1hcExpbmVhcih5UG9zaXRpb24sIC0wLjEsIDAuMSwgZmxvYXRpbmdSYW5nZVswXSA/PyAtMC4xLCBmbG9hdGluZ1JhbmdlWzFdID8/IDAuMSk7XG5cdFx0XHRjb250YWluZXIucG9zaXRpb24ueSA9IHlQb3NpdGlvbiAqIGZsb2F0SW50ZW5zaXR5O1xuXHRcdFx0Y29udGFpbmVyLnVwZGF0ZU1hdHJpeCgpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, effect, untracked, inject, ChangeDetectorRef, computed, input, viewChild, Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { signal, effect, untracked, computed, inject, ChangeDetectorRef, input, viewChild, Component, ChangeDetectionStrategy } from '@angular/core';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
4
  import { FontLoader, DRACOLoader, MeshoptDecoder, GLTFLoader } from 'three-stdlib';
5
5
  import { injectLoader, pick, injectStore } from 'angular-three';
@@ -71,8 +71,22 @@ function _extensions(useDraco, useMeshOpt, extensions) {
71
71
  }
72
72
  };
73
73
  }
74
- function _injectGLTF(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
75
- return assertInjector(_injectGLTF, injector, () => injectLoader(() => GLTFLoader, path, { extensions: _extensions(useDraco, useMeshOpt, extensions) }));
74
+ function _injectGLTF(path, { useDraco = true, useMeshOpt = true, injector, extensions, onLoad, } = {}) {
75
+ return assertInjector(_injectGLTF, injector, () => {
76
+ const result = injectLoader(() => GLTFLoader, path, {
77
+ extensions: _extensions(useDraco, useMeshOpt, extensions),
78
+ onLoad,
79
+ });
80
+ Object.defineProperty(result, 'scene', {
81
+ value: computed(() => {
82
+ const gltf = result();
83
+ if (!gltf)
84
+ return null;
85
+ return gltf.scene;
86
+ }),
87
+ });
88
+ return result;
89
+ });
76
90
  }
77
91
  _injectGLTF.preload = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
78
92
  injectLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));