angular-three-postprocessing 4.0.0-next.111 → 4.0.0-next.113
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../tmp-esm2022/lib/effect.js","../tmp-esm2022/lib/effect-composer.js","../tmp-esm2022/lib/effects/ascii.js","../tmp-esm2022/lib/effects/bloom.js","../tmp-esm2022/lib/effects/brightness-contrast.js","../tmp-esm2022/lib/effects/chromatic-abberation.js","../tmp-esm2022/lib/effects/color-average.js","../tmp-esm2022/lib/effects/color-depth.js","../tmp-esm2022/lib/effects/depth.js","../tmp-esm2022/lib/effects/depth-of-field.js","../tmp-esm2022/lib/effects/dot-screen.js","../tmp-esm2022/lib/effects/fxaa.js","../tmp-esm2022/lib/effects/glitch.js","../tmp-esm2022/lib/effects/god-rays.js","../tmp-esm2022/lib/effects/grid.js","../tmp-esm2022/lib/effects/hue-saturation.js","../tmp-esm2022/lib/effects/lens-flare.js","../tmp-esm2022/lib/effects/lut.js","../tmp-esm2022/lib/effects/noise.js","../tmp-esm2022/lib/effects/outline.js","../tmp-esm2022/lib/effects/pixelation.js","../tmp-esm2022/lib/effects/scanline.js","../tmp-esm2022/lib/effects/selective-bloom.js","../tmp-esm2022/lib/effects/sepia.js","../tmp-esm2022/lib/effects/shock-wave.js","../tmp-esm2022/lib/effects/smaa.js","../tmp-esm2022/lib/effects/tilt-shift.js","../tmp-esm2022/lib/effects/tilt-shift-2.js","../tmp-esm2022/lib/effects/tone-mapping.js","../tmp-esm2022/lib/effects/vignette.js","../tmp-esm2022/lib/effects/water.js","../tmp-esm2022/angular-three-postprocessing.js"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport * as i0 from \"@angular/core\";\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken('Default Effect options');\nexport class NgtpEffectBlendMode {\n constructor() {\n this.effect = inject(NgtpEffect, { optional: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NgtpEffectBlendMode, isStandalone: true, selector: \"ngtp-effect-blend-mode\", ngImport: i0, template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-blend-mode',\n template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class NgtpEffect {\n constructor() {\n this.defaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n this.blendFunction = input(this.defaultEffectOptions?.blendFunction, ...(ngDevMode ? [{ debugName: \"blendFunction\" }] : []));\n this.opacity = input(this.defaultEffectOptions?.opacity, ...(ngDevMode ? [{ debugName: \"opacity\" }] : []));\n this.store = injectStore();\n this.camera = this.store.camera;\n this.invalidate = this.store.invalidate;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpEffect, isStandalone: true, inputs: { blendFunction: { classPropertyName: \"blendFunction\", publicName: \"blendFunction\", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: \"opacity\", publicName: \"opacity\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpEffect, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyx3QkFBd0IsQ0FHOUYsd0JBQXdCLENBQUMsQ0FBQztBQWE3QixNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRDs4R0FGWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrRkFUckI7Ozs7O0VBS1Q7OzJGQUlXLG1CQUFtQjtrQkFYL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7QUFNRCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVDLHlCQUFvQixHQUFHLDBCQUEwQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdEUsa0JBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGFBQWEseURBQUMsQ0FBQztRQUNoRSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLG1EQUFDLENBQUM7UUFFNUMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7S0FDbkM7OEdBVFksVUFBVTtrR0FBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlTm9vcEluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24gfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0RGVmYXVsdEVmZmVjdE9wdGlvbnMsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9uc10gPSBjcmVhdGVOb29wSW5qZWN0aW9uVG9rZW48e1xuXHRibGVuZEZ1bmN0aW9uPzogQmxlbmRGdW5jdGlvbjtcblx0b3BhY2l0eT86IG51bWJlcjtcbn0+KCdEZWZhdWx0IEVmZmVjdCBvcHRpb25zJyk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWJsZW5kLW1vZGUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoZWZmZWN0KSB7XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJlZmZlY3QuYmxlbmRGdW5jdGlvbigpXCIgYXR0YWNoPVwiYmxlbmRNb2RlLmJsZW5kRnVuY3Rpb25cIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZWZmZWN0Lm9wYWNpdHkoKVwiIGF0dGFjaD1cImJsZW5kTW9kZS5vcGFjaXR5LnZhbHVlXCIgLz5cblx0XHR9XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3RCbGVuZE1vZGUge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdCB7XG5cdGRlZmF1bHRFZmZlY3RPcHRpb25zID0gaW5qZWN0RGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRibGVuZEZ1bmN0aW9uID0gaW5wdXQodGhpcy5kZWZhdWx0RWZmZWN0T3B0aW9ucz8uYmxlbmRGdW5jdGlvbik7XG5cdG9wYWNpdHkgPSBpbnB1dCh0aGlzLmRlZmF1bHRFZmZlY3RPcHRpb25zPy5vcGFjaXR5KTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0Y2FtZXJhID0gdGhpcy5zdG9yZS5jYW1lcmE7XG5cdGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLmludmFsaWRhdGU7XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input, viewChild, } from '@angular/core';\nimport { beforeRender, extend, getInstanceState, injectStore, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { DepthDownsamplingPass, Effect, EffectAttribute, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n enabled: true,\n renderPriority: 1,\n autoClear: true,\n multisampling: 8,\n frameBufferType: THREE.HalfFloatType,\n};\nfunction isConvolution(effect) {\n return (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\nexport class NgtpEffectComposer {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.store = injectStore();\n this.depthBuffer = pick(this.options, 'depthBuffer');\n this.stencilBuffer = pick(this.options, 'stencilBuffer');\n this.multisampling = pick(this.options, 'multisampling');\n this.frameBufferType = pick(this.options, 'frameBufferType');\n this.enableNormalPass = pick(this.options, 'enableNormalPass');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.enabled = pick(this.options, 'enabled');\n this.renderPriority = pick(this.options, 'renderPriority');\n this.scene = computed(() => this.options().scene ?? this.store.scene(), ...(ngDevMode ? [{ debugName: \"scene\" }] : []));\n this.camera = computed(() => this.options().camera ?? this.store.camera(), ...(ngDevMode ? [{ debugName: \"camera\" }] : []));\n this.groupRef = viewChild.required('group');\n this.priority = computed(() => {\n const enabled = this.enabled();\n if (!enabled)\n return 0;\n return this.renderPriority();\n }, ...(ngDevMode ? [{ debugName: \"priority\" }] : []));\n this.composerData = computed(() => {\n const webGL2Available = isWebGL2Available();\n const [gl, scene, camera, depthBuffer, stencilBuffer, multisampling, frameBufferType, enableNormalPass, resolutionScale,] = [\n this.store.gl(),\n this.scene(),\n this.camera(),\n this.depthBuffer(),\n this.stencilBuffer(),\n this.multisampling(),\n this.frameBufferType(),\n this.enableNormalPass(),\n this.resolutionScale(),\n ];\n // initialize composer\n const composer = new EffectComposer(gl, {\n depthBuffer,\n stencilBuffer,\n multisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n frameBufferType,\n });\n // add render pass\n composer.addPass(new RenderPass(scene, camera));\n // create normal pass\n let downSamplingPass = null;\n let normalPass = null;\n if (enableNormalPass) {\n normalPass = new NormalPass(scene, camera);\n normalPass.enabled = false;\n composer.addPass(normalPass);\n if (resolutionScale !== undefined && webGL2Available) {\n downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n downSamplingPass.enabled = false;\n composer.addPass(downSamplingPass);\n }\n }\n return { composer, normalPass, downSamplingPass };\n }, ...(ngDevMode ? [{ debugName: \"composerData\" }] : []));\n this.effectComposer = pick(this.composerData, 'composer');\n extend({ Group });\n // NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n effect((onCleanup) => {\n const gl = this.store.gl();\n const currentTonemapping = gl.toneMapping;\n gl.toneMapping = THREE.NoToneMapping;\n onCleanup(() => {\n gl.toneMapping = currentTonemapping;\n });\n });\n effect(() => {\n const [composer, width, height] = [\n this.effectComposer(),\n this.store.size.width(),\n this.store.size.height(),\n ];\n if (composer) {\n composer.setSize(width, height);\n }\n });\n effect((onCleanup) => {\n const [group, { composer, normalPass, downSamplingPass }, camera] = [\n this.groupRef().nativeElement,\n this.composerData(),\n this.camera(),\n ];\n const passes = [];\n if (composer) {\n const instanceState = getInstanceState(group);\n if (!instanceState)\n return;\n const children = instanceState.nonObjects();\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof Effect) {\n const effects = [child];\n if (!isConvolution(child)) {\n let next = null;\n while ((next = children[i + 1]) instanceof Effect) {\n if (isConvolution(next))\n break;\n effects.push(next);\n i++;\n }\n }\n const pass = new EffectPass(camera, ...effects);\n passes.push(pass);\n }\n else if (child instanceof Pass) {\n passes.push(child);\n }\n }\n for (const pass of passes) {\n composer.addPass(pass);\n }\n if (normalPass)\n normalPass.enabled = true;\n if (downSamplingPass)\n downSamplingPass.enabled = true;\n }\n onCleanup(() => {\n for (const pass of passes)\n composer?.removePass(pass);\n if (normalPass)\n normalPass.enabled = false;\n if (downSamplingPass)\n downSamplingPass.enabled = false;\n });\n });\n beforeRender(({ delta }) => {\n const [composer, { enabled, autoClear, stencilBuffer }, gl] = [\n this.effectComposer(),\n this.options(),\n this.store.snapshot.gl,\n ];\n if (enabled) {\n const currentAutoClear = gl.autoClear;\n gl.autoClear = autoClear;\n if (stencilBuffer && !autoClear)\n gl.clearStencil();\n composer.render(delta);\n gl.autoClear = currentAutoClear;\n }\n }, { priority: this.priority });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.4\", type: NgtpEffectComposer, isStandalone: true, selector: \"ngtp-effect-composer\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"groupRef\", first: true, predicate: [\"group\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpEffectComposer, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-composer',\n template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGVBQWUsRUFDZixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUJqRCxNQUFNLGNBQWMsR0FBOEI7SUFDakQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsQ0FBQztJQUNqQixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxLQUFLLENBQUMsYUFBYTtDQUNwQyxDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUMsV0FBVyxDQUFDO0FBQy9GLENBQUM7QUFZRCxN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LFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJlZm9yZVJlbmRlciwgZXh0ZW5kLCBnZXRJbnN0YW5jZVN0YXRlLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0RGVwdGhEb3duc2FtcGxpbmdQYXNzLFxuXHRFZmZlY3QsXG5cdEVmZmVjdEF0dHJpYnV0ZSxcblx0RWZmZWN0Q29tcG9zZXIsXG5cdEVmZmVjdFBhc3MsXG5cdE5vcm1hbFBhc3MsXG5cdFBhc3MsXG5cdFJlbmRlclBhc3MsXG59IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaXNXZWJHTDJBdmFpbGFibGUgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3Nlck9wdGlvbnMge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdC8qKiBPbmx5IHVzZWQgZm9yIFNTR0kgY3VycmVudGx5LCBsZWF2ZSBpdCBkaXNhYmxlZCBmb3IgZXZlcnl0aGluZyBlbHNlIHVubGVzcyBpdCdzIG5lZWRlZCAqL1xuXHRlbmFibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVEhSRUUuVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG5cdHNjZW5lPzogVEhSRUUuU2NlbmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRyZW5kZXJQcmlvcml0eTogMSxcblx0YXV0b0NsZWFyOiB0cnVlLFxuXHRtdWx0aXNhbXBsaW5nOiA4LFxuXHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLkhhbGZGbG9hdFR5cGUsXG59O1xuXG5mdW5jdGlvbiBpc0NvbnZvbHV0aW9uKGVmZmVjdDogRWZmZWN0KSB7XG5cdHJldHVybiAoZWZmZWN0LmdldEF0dHJpYnV0ZXMoKSAmIEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTikgPT09IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgZGVwdGhCdWZmZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlcHRoQnVmZmVyJyk7XG5cdHByaXZhdGUgc3RlbmNpbEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlbmNpbEJ1ZmZlcicpO1xuXHRwcml2YXRlIG11bHRpc2FtcGxpbmcgPSBwaWNrKHRoaXMub3B0aW9ucywgJ211bHRpc2FtcGxpbmcnKTtcblx0cHJpdmF0ZSBmcmFtZUJ1ZmZlclR5cGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZyYW1lQnVmZmVyVHlwZScpO1xuXHRwcml2YXRlIGVuYWJsZU5vcm1hbFBhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZU5vcm1hbFBhc3MnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIGVuYWJsZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZWQnKTtcblx0cHJpdmF0ZSByZW5kZXJQcmlvcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVuZGVyUHJpb3JpdHknKTtcblxuXHRzY2VuZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnNjZW5lID8/IHRoaXMuc3RvcmUuc2NlbmUoKSk7XG5cdGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSA/PyB0aGlzLnN0b3JlLmNhbWVyYSgpKTtcblxuXHRwcml2YXRlIGdyb3VwUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8VEhSRUUuR3JvdXA+PignZ3JvdXAnKTtcblxuXHRwcml2YXRlIHByaW9yaXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVuYWJsZWQgPSB0aGlzLmVuYWJsZWQoKTtcblx0XHRpZiAoIWVuYWJsZWQpIHJldHVybiAwO1xuXHRcdHJldHVybiB0aGlzLnJlbmRlclByaW9yaXR5KCk7XG5cdH0pO1xuXG5cdHByaXZhdGUgY29tcG9zZXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHdlYkdMMkF2YWlsYWJsZSA9IGlzV2ViR0wyQXZhaWxhYmxlKCk7XG5cdFx0Y29uc3QgW1xuXHRcdFx0Z2wsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRlbmFibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLnN0b3JlLmdsKCksXG5cdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5kZXB0aEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHR0aGlzLm11bHRpc2FtcGxpbmcoKSxcblx0XHRcdHRoaXMuZnJhbWVCdWZmZXJUeXBlKCksXG5cdFx0XHR0aGlzLmVuYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIGluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBjb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgcmVuZGVyIHBhc3Ncblx0XHRjb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIGNyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKGVuYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRlZmZlY3RDb21wb3NlciA9IHBpY2sodGhpcy5jb21wb3NlckRhdGEsICdjb21wb3NlcicpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwIH0pO1xuXG5cdFx0Ly8gTk9URTogRGlzYWJsZSB0b25lIG1hcHBpbmcgYmVjYXVzZSB0aHJlZWpzIGRpc2FsbG93cyB0b25lbWFwcGluZyBvbiByZW5kZXIgdGFyZ2V0c1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBnbCA9IHRoaXMuc3RvcmUuZ2woKTtcblx0XHRcdGNvbnN0IGN1cnJlbnRUb25lbWFwcGluZyA9IGdsLnRvbmVNYXBwaW5nO1xuXHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBUSFJFRS5Ob1RvbmVNYXBwaW5nO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBjdXJyZW50VG9uZW1hcHBpbmc7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbY29tcG9zZXIsIHdpZHRoLCBoZWlnaHRdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc2l6ZS53aWR0aCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLnNpemUuaGVpZ2h0KCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbXBvc2VyLnNldFNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2dyb3VwLCB7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbnN0IGluc3RhbmNlU3RhdGUgPSBnZXRJbnN0YW5jZVN0YXRlKGdyb3VwKTtcblx0XHRcdFx0aWYgKCFpbnN0YW5jZVN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgY2hpbGRyZW4gPSBpbnN0YW5jZVN0YXRlLm5vbk9iamVjdHMoKTtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV07XG5cdFx0XHRcdFx0aWYgKGNoaWxkIGluc3RhbmNlb2YgRWZmZWN0KSB7XG5cdFx0XHRcdFx0XHRjb25zdCBlZmZlY3RzOiBFZmZlY3RbXSA9IFtjaGlsZF07XG5cblx0XHRcdFx0XHRcdGlmICghaXNDb252b2x1dGlvbihjaGlsZCkpIHtcblx0XHRcdFx0XHRcdFx0bGV0IG5leHQ6IHVua25vd24gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoKG5leHQgPSBjaGlsZHJlbltpICsgMV0pIGluc3RhbmNlb2YgRWZmZWN0KSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGlzQ29udm9sdXRpb24obmV4dCkpIGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdGVmZmVjdHMucHVzaChuZXh0IGFzIEVmZmVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGNvbnN0IHBhc3MgPSBuZXcgRWZmZWN0UGFzcyhjYW1lcmEsIC4uLmVmZmVjdHMpO1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2gocGFzcyk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIFBhc3MpIHtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKGNoaWxkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhc3Mgb2YgcGFzc2VzKSB7XG5cdFx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhwYXNzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3NlcykgY29tcG9zZXI/LnJlbW92ZVBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtjb21wb3NlciwgeyBlbmFibGVkLCBhdXRvQ2xlYXIsIHN0ZW5jaWxCdWZmZXIgfSwgZ2xdID0gW1xuXHRcdFx0XHRcdHRoaXMuZWZmZWN0Q29tcG9zZXIoKSxcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0XHR0aGlzLnN0b3JlLnNuYXBzaG90LmdsLFxuXHRcdFx0XHRdO1xuXG5cdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudEF1dG9DbGVhciA9IGdsLmF1dG9DbGVhcjtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBhdXRvQ2xlYXI7XG5cdFx0XHRcdFx0aWYgKHN0ZW5jaWxCdWZmZXIgJiYgIWF1dG9DbGVhcikgZ2wuY2xlYXJTdGVuY2lsKCk7XG5cdFx0XHRcdFx0Y29tcG9zZXIucmVuZGVyKGRlbHRhKTtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBjdXJyZW50QXV0b0NsZWFyO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogdGhpcy5wcmlvcml0eSB9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport * as i0 from \"@angular/core\";\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\nexport class ASCIIEffect extends Effect {\n constructor({ font = 'arial', characters = ` .:,'-^=*+?!|0#X%WM@`, fontSize = 54, cellSize = 16, color = '#ffffff', invert = false, } = {}) {\n const uniforms = new Map([\n ['uCharacters', new THREE.Uniform(new THREE.Texture())],\n ['uCellSize', new THREE.Uniform(cellSize)],\n ['uCharactersCount', new THREE.Uniform(characters.length)],\n ['uColor', new THREE.Uniform(new THREE.Color(color))],\n ['uInvert', new THREE.Uniform(invert)],\n ]);\n super('ASCIIEffect', fragment, { uniforms });\n const charactersTextureUniform = this.uniforms.get('uCharacters');\n if (charactersTextureUniform) {\n charactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n }\n }\n /** Draws the characters on a Canvas and returns a texture */\n createCharactersTexture(characters, font, fontSize) {\n const canvas = document.createElement('canvas');\n const SIZE = 1024;\n const MAX_PER_ROW = 16;\n const CELL = SIZE / MAX_PER_ROW;\n canvas.width = canvas.height = SIZE;\n const texture = new THREE.CanvasTexture(canvas, undefined, THREE.RepeatWrapping, THREE.RepeatWrapping, THREE.NearestFilter, THREE.NearestFilter);\n const context = canvas.getContext('2d');\n if (!context) {\n throw new Error('Context not available');\n }\n context.clearRect(0, 0, SIZE, SIZE);\n context.font = `${fontSize}px ${font}`;\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.fillStyle = '#fff';\n for (let i = 0; i < characters.length; i++) {\n const char = characters[i];\n const x = i % MAX_PER_ROW;\n const y = Math.floor(i / MAX_PER_ROW);\n context.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n }\n texture.needsUpdate = true;\n return texture;\n }\n}\nconst defaultOptions = {\n font: 'arial',\n characters: ` .:,'-^=*+?!|0#X%WM@`,\n fontSize: 54,\n cellSize: 16,\n color: '#ffffff',\n invert: false,\n};\nexport class NgtpASCII {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.effect = computed(() => new ASCIIEffect(this.options()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpASCII, isStandalone: true, selector: \"ngtp-ascii\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpASCII, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-ascii',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFFL0IsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDekMsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQXdCO1lBQy9DLENBQUMsYUFBYSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMs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QUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsS0FBSztDQUNiLENBQUM7QUFXRixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRWxFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGtEQUFDLENBQUM7UUFHbEUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBVlcsU0FBUztrR0FBVCxTQUFTLGdOQVBYOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFNBQVM7a0JBVHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5jb25zdCBmcmFnbWVudCA9IC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG51bmlmb3JtIHNhbXBsZXIyRCB1Q2hhcmFjdGVycztcbnVuaWZvcm0gZmxvYXQgdUNoYXJhY3RlcnNDb3VudDtcbnVuaWZvcm0gZmxvYXQgdUNlbGxTaXplO1xudW5pZm9ybSBib29sIHVJbnZlcnQ7XG51bmlmb3JtIHZlYzMgdUNvbG9yO1xuXG5jb25zdCB2ZWMyIFNJWkUgPSB2ZWMyKDE2Lik7XG5cbnZlYzMgZ3JleXNjYWxlKHZlYzMgY29sb3IsIGZsb2F0IHN0cmVuZ3RoKSB7XG4gICAgZmxvYXQgZyA9IGRvdChjb2xvciwgdmVjMygwLjI5OSwgMC41ODcsIDAuMTE0KSk7XG4gICAgcmV0dXJuIG1peChjb2xvciwgdmVjMyhnKSwgc3RyZW5ndGgpO1xufVxuXG52ZWMzIGdyZXlzY2FsZSh2ZWMzIGNvbG9yKSB7XG4gICAgcmV0dXJuIGdyZXlzY2FsZShjb2xvciwgMS4wKTtcbn1cblxudm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgIHZlYzIgY2VsbCA9IHJlc29sdXRpb24gLyB1Q2VsbFNpemU7XG4gICAgdmVjMiBncmlkID0gMS4wIC8gY2VsbDtcbiAgICB2ZWMyIHBpeGVsaXplZFVWID0gZ3JpZCAqICgwLjUgKyBmbG9vcih1diAvIGdyaWQpKTtcbiAgICB2ZWM0IHBpeGVsaXplZCA9IHRleHR1cmUyRChpbnB1dEJ1ZmZlciwgcGl4ZWxpemVkVVYpO1xuICAgIGZsb2F0IGdyZXlzY2FsZWQgPSBncmV5c2NhbGUocGl4ZWxpemVkLnJnYikucjtcblxuICAgIGlmICh1SW52ZXJ0KSB7XG4gICAgICAgIGdyZXlzY2FsZWQgPSAxLjAgLSBncmV5c2NhbGVkO1xuICAgIH1cblxuICAgIGZsb2F0IGNoYXJhY3RlckluZGV4ID0gZmxvb3IoKHVDaGFyYWN0ZXJzQ291bnQgLSAxLjApICogZ3JleXNjYWxlZCk7XG4gICAgdmVjMiBjaGFyYWN0ZXJQb3NpdGlvbiA9IHZlYzIobW9kKGNoYXJhY3RlckluZGV4LCBTSVpFLngpLCBmbG9vcihjaGFyYWN0ZXJJbmRleCAvIFNJWkUueSkpO1xuICAgIHZlYzIgb2Zmc2V0ID0gdmVjMihjaGFyYWN0ZXJQb3NpdGlvbi54LCAtY2hhcmFjdGVyUG9zaXRpb24ueSkgLyBTSVpFO1xuICAgIHZlYzIgY2hhclVWID0gbW9kKHV2ICogKGNlbGwgLyBTSVpFKSwgMS4wIC8gU0laRSkgLSB2ZWMyKDAuLCAxLjAgLyBTSVpFKSArIG9mZnNldDtcbiAgICB2ZWM0IGFzY2lpQ2hhcmFjdGVyID0gdGV4dHVyZTJEKHVDaGFyYWN0ZXJzLCBjaGFyVVYpO1xuXG4gICAgYXNjaWlDaGFyYWN0ZXIucmdiID0gdUNvbG9yICogYXNjaWlDaGFyYWN0ZXIucjtcbiAgICBhc2NpaUNoYXJhY3Rlci5hID0gcGl4ZWxpemVkLmE7XG4gICAgb3V0cHV0Q29sb3IgPSBhc2NpaUNoYXJhY3Rlcjtcbn1cbmA7XG5cbmludGVyZmFjZSBBU0NJSUVmZmVjdE9wdGlvbnMge1xuXHRmb250Pzogc3RyaW5nO1xuXHRjaGFyYWN0ZXJzPzogc3RyaW5nO1xuXHRmb250U2l6ZT86IG51bWJlcjtcblx0Y2VsbFNpemU/OiBudW1iZXI7XG5cdGNvbG9yPzogc3RyaW5nO1xuXHRpbnZlcnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQVNDSUlFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0Zm9udCA9ICdhcmlhbCcsXG5cdFx0Y2hhcmFjdGVycyA9IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdFx0Zm9udFNpemUgPSA1NCxcblx0XHRjZWxsU2l6ZSA9IDE2LFxuXHRcdGNvbG9yID0gJyNmZmZmZmYnLFxuXHRcdGludmVydCA9IGZhbHNlLFxuXHR9OiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7fSkge1xuXHRcdGNvbnN0IHVuaWZvcm1zID0gbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm0+KFtcblx0XHRcdFsndUNoYXJhY3RlcnMnLCBuZXcgVEhSRUUuVW5pZm9ybShuZXcgVEhSRUUuVGV4dHVyZSgpKV0sXG5cdFx0XHRbJ3VDZWxsU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGNlbGxTaXplKV0sXG5cdFx0XHRbJ3VDaGFyYWN0ZXJzQ291bnQnLCBuZXcgVEhSRUUuVW5pZm9ybShjaGFyYWN0ZXJzLmxlbmd0aCldLFxuXHRcdFx0Wyd1Q29sb3InLCBuZXcgVEhSRUUuVW5pZm9ybShuZXcgVEhSRUUuQ29sb3IoY29sb3IpKV0sXG5cdFx0XHRbJ3VJbnZlcnQnLCBuZXcgVEhSRUUuVW5pZm9ybShpbnZlcnQpXSxcblx0XHRdKTtcblxuXHRcdHN1cGVyKCdBU0NJSUVmZmVjdCcsIGZyYWdtZW50LCB7IHVuaWZvcm1zIH0pO1xuXG5cdFx0Y29uc3QgY2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtID0gdGhpcy51bmlmb3Jtcy5nZXQoJ3VDaGFyYWN0ZXJzJyk7XG5cblx0XHRpZiAoY2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtKSB7XG5cdFx0XHRjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0udmFsdWUgPSB0aGlzLmNyZWF0ZUNoYXJhY3RlcnNUZXh0dXJlKGNoYXJhY3RlcnMsIGZvbnQsIGZvbnRTaXplKTtcblx0XHR9XG5cdH1cblxuXHQvKiogRHJhd3MgdGhlIGNoYXJhY3RlcnMgb24gYSBDYW52YXMgYW5kIHJldHVybnMgYSB0ZXh0dXJlICovXG5cdHB1YmxpYyBjcmVhdGVDaGFyYWN0ZXJzVGV4dHVyZShjaGFyYWN0ZXJzOiBzdHJpbmcsIGZvbnQ6IHN0cmluZywgZm9udFNpemU6IG51bWJlcik6IFRIUkVFLlRleHR1cmUge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNvbnN0IFNJWkUgPSAxMDI0O1xuXHRcdGNvbnN0IE1BWF9QRVJfUk9XID0gMTY7XG5cdFx0Y29uc3QgQ0VMTCA9IFNJWkUgLyBNQVhfUEVSX1JPVztcblxuXHRcdGNhbnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQgPSBTSVpFO1xuXHRcdGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShcblx0XHRcdGNhbnZhcyxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFRIUkVFLlJlcGVhdFdyYXBwaW5nLFxuXHRcdFx0VEhSRUUuUmVwZWF0V3JhcHBpbmcsXG5cdFx0XHRUSFJFRS5OZWFyZXN0RmlsdGVyLFxuXHRcdFx0VEhSRUUuTmVhcmVzdEZpbHRlcixcblx0XHQpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuXHRcdGlmICghY29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IG5vdCBhdmFpbGFibGUnKTtcblx0XHR9XG5cblx0XHRjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBTSVpFLCBTSVpFKTtcblx0XHRjb250ZXh0LmZvbnQgPSBgJHtmb250U2l6ZX1weCAke2ZvbnR9YDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGNoYXIgPSBjaGFyYWN0ZXJzW2ldO1xuXHRcdFx0Y29uc3QgeCA9IGkgJSBNQVhfUEVSX1JPVztcblx0XHRcdGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBNQVhfUEVSX1JPVyk7XG5cdFx0XHRjb250ZXh0LmZpbGxUZXh0KGNoYXIsIHggKiBDRUxMICsgQ0VMTCAvIDIsIHkgKiBDRUxMICsgQ0VMTCAvIDIpO1xuXHRcdH1cblxuXHRcdHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdHJldHVybiB0ZXh0dXJlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7XG5cdGZvbnQ6ICdhcmlhbCcsXG5cdGNoYXJhY3RlcnM6IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdGZvbnRTaXplOiA1NCxcblx0Y2VsbFNpemU6IDE2LFxuXHRjb2xvcjogJyNmZmZmZmYnLFxuXHRpbnZlcnQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1hc2NpaScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQVNDSUkge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBBU0NJSUVmZmVjdCh0aGlzLm9wdGlvbnMoKSkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBloom {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BloomEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpBloom, isStandalone: true, selector: \"ngtp-bloom\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-bloom',\n template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBZ0J6RixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBK0MsbURBQUMsQ0FBQztRQUV2RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FQVyxTQUFTO2tHQUFULFNBQVMsbU1BRlYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyw0SUFWcEU7Ozs7O0VBS1QsNERBQ1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQU0xQixTQUFTO2tCQWRyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDakYsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQzlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBCbG9vbUVmZmVjdCwgQmxvb21FZmZlY3RPcHRpb25zIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ibG9vbScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ibG9vbS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ibG9vbS1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLkFERCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBCbG9vbSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PEJsb29tRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQmxvb21FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBrightnessContrast {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BrightnessContrastEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpBrightnessContrast, isStandalone: true, selector: \"ngtp-brightness-contrast\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-brightness-contrast',\n template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLHNCQUFzQjtJQUlsQztRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsbURBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQU5XLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGdWQVh4Qjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLHNCQUFzQjtrQkFibEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJyaWdodG5lc3NDb250cmFzdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBCcmlnaHRuZXNzRWZmZWN0T3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtYnJpZ2h0bmVzcy1jb250cmFzdCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1icmlnaHRuZXNzLWNvbnRyYXN0LWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWJyaWdodG5lc3MtY29udHJhc3QtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEJyaWdodG5lc3NDb250cmFzdCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PEJyaWdodG5lc3NFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpChromaticAberration {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ChromaticAberrationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpChromaticAberration, isStandalone: true, selector: \"ngtp-chromatic-aberration\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpChromaticAberration, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-chromatic-aberration',\n template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiYmVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jaHJvbWF0aWMtYWJiZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBbUI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBSW5DO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE2RCxtREFBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBTlcsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaVZBWHpCOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsdUJBQXVCO2tCQWJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8XG5cdE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdD5bMF0+XG4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNocm9tYXRpYy1hYmVycmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDaHJvbWF0aWNBYmVycmF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpColorAverage {\n constructor() {\n this.options = input({ blendFunction: BlendFunction.NORMAL }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) }] : [{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) }]));\n extend({ ColorAverageEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpColorAverage, isStandalone: true, selector: \"ngtp-color-average\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpColorAverage, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-average',\n template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFhbkUsTUFBTSxPQUFPLGdCQUFnQjtJQU01QjtRQUxBLFlBQU8sR0FBRyxLQUFLLENBQ2QsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSwyQ0FDckMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBakUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQ25FLENBQUM7UUFHRCxNQUFNLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FSVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQix3TkFUbEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBWDVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgQ29sb3JBdmVyYWdlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWF2ZXJhZ2UnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY29sb3ItYXZlcmFnZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpLmJsZW5kRnVuY3Rpb25dXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWF2ZXJhZ2UtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckF2ZXJhZ2Uge1xuXHRvcHRpb25zID0gaW5wdXQoXG5cdFx0eyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9LFxuXHRcdHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pIH0sXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQ29sb3JBdmVyYWdlRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpColorDepth {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ColorDepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpColorDepth, isStandalone: true, selector: \"ngtp-color-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpColorDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-depth',\n template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8sY0FBYztJQUkxQjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsbURBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQU5XLGNBQWM7a0dBQWQsY0FBYyx3VUFYaEI7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixjQUFjO2tCQWIxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ29sb3JEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBDb2xvckRlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBDb2xvckRlcHRoRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWRlcHRoJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNvbG9yLWRlcHRoLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWRlcHRoLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckRlcHRoIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q29sb3JEZXB0aEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDb2xvckRlcHRoRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDepth {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpDepth, isStandalone: true, selector: \"ngtp-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth',\n template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLG1EQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLGtVQVhYOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFickIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBEZXB0aEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRGVwdGhFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZGVwdGgtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZGVwdGgtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RGVwdGhFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgRGVwdGhFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpDepthOfField {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectComposer = inject(NgtpEffectComposer);\n this.effect = computed(() => {\n const [camera, options] = [this.effectComposer.camera(), this.options()];\n const autoFocus = options.target != null;\n const effect = new DepthOfFieldEffect(camera, options);\n // Creating a target enables autofocus, NGT will set via props\n if (autoFocus)\n effect.target = new THREE.Vector3();\n // Depth texture for depth picking with optional packing strategy\n if (options.depthTexture) {\n effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);\n }\n // Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n const maskPass = effect['maskPass'];\n maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n return effect;\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const depthOfFieldEffect = this.effect();\n onCleanup(() => depthOfFieldEffect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpDepthOfField, isStandalone: true, selector: \"ngtp-depth-of-field\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpDepthOfField, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth-of-field',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFjeEQsTUFBTSxPQUFPLGdCQUFnQjtJQTRCNUI7UUEzQkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFnQixtREFBQyxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFekUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7WUFFekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFdkQsOERBQThEO1lBQzlELElBQUksU0FBUztnQkFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25ELGlFQUFpRTtZQUNqRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FDckIsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQzVCLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBdUMsQ0FDNUQsQ0FBQztZQUNILENBQUM7WUFDRCwyR0FBMkc7WUFDM0csTUFBTSxRQUFRLEdBQUksTUFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztZQUU1RCxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsa0RBQUMsQ0FBQztRQUdGLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqQ1csZ0JBQWdCO2tHQUFoQixnQkFBZ0IseU5BUGxCOztFQUVULDREQUNTLE9BQU87OzJGQUlMLGdCQUFnQjtrQkFUNUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIE5ndEFyZ3MsIE5ndFZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERlcHRoT2ZGaWVsZEVmZmVjdCwgTWFza0Z1bmN0aW9uIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBET0ZPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aE9mRmllbGRFZmZlY3Q+WzFdPiAmXG5cdFBhcnRpYWw8eyB0YXJnZXQ6IE5ndFZlY3RvcjM7IGRlcHRoVGV4dHVyZTogeyB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlOyBwYWNraW5nOiBUSFJFRS5EZXB0aFBhY2tpbmdTdHJhdGVnaWVzIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgtb2YtZmllbGQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoT2ZGaWVsZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBET0ZPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbY2FtZXJhLCBvcHRpb25zXSA9IFt0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLCB0aGlzLm9wdGlvbnMoKV07XG5cblx0XHRjb25zdCBhdXRvRm9jdXMgPSBvcHRpb25zLnRhcmdldCAhPSBudWxsO1xuXG5cdFx0Y29uc3QgZWZmZWN0ID0gbmV3IERlcHRoT2ZGaWVsZEVmZmVjdChjYW1lcmEsIG9wdGlvbnMpO1xuXG5cdFx0Ly8gQ3JlYXRpbmcgYSB0YXJnZXQgZW5hYmxlcyBhdXRvZm9jdXMsIE5HVCB3aWxsIHNldCB2aWEgcHJvcHNcblx0XHRpZiAoYXV0b0ZvY3VzKSBlZmZlY3QudGFyZ2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblx0XHQvLyBEZXB0aCB0ZXh0dXJlIGZvciBkZXB0aCBwaWNraW5nIHdpdGggb3B0aW9uYWwgcGFja2luZyBzdHJhdGVneVxuXHRcdGlmIChvcHRpb25zLmRlcHRoVGV4dHVyZSkge1xuXHRcdFx0ZWZmZWN0LnNldERlcHRoVGV4dHVyZShcblx0XHRcdFx0b3B0aW9ucy5kZXB0aFRleHR1cmUudGV4dHVyZSxcblx0XHRcdFx0b3B0aW9ucy5kZXB0aFRleHR1cmUucGFja2luZyBhcyBUSFJFRS5EZXB0aFBhY2tpbmdTdHJhdGVnaWVzLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0Ly8gVGVtcG9yYXJ5IGZpeCB0aGF0IHJlc3RvcmVzIERPRiA2LjIxLjMgYmVoYXZpb3IsIGV2ZXJ5dGhpbmcgc2luY2UgdGhlbiBsZXRzIHNoYXBlcyBsZWFrIHRocm91Z2ggdGhlIGJsdXJcblx0XHRjb25zdCBtYXNrUGFzcyA9IChlZmZlY3QgYXMgTmd0QW55UmVjb3JkKVsnbWFza1Bhc3MnXTtcblx0XHRtYXNrUGFzcy5tYXNrRnVuY3Rpb24gPSBNYXNrRnVuY3Rpb24uTVVMVElQTFlfUkdCX1NFVF9BTFBIQTtcblxuXHRcdHJldHVybiBlZmZlY3Q7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBkZXB0aE9mRmllbGRFZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGRlcHRoT2ZGaWVsZEVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDotScreen {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DotScreenEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpDotScreen, isStandalone: true, selector: \"ngtp-dot-screen\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpDotScreen, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-dot-screen',\n template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxtREFBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx1VUFYZjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBYnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEb3RTY3JlZW5FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgRG90U2NyZWVuRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEb3RTY3JlZW5FZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZG90LXNjcmVlbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kb3Qtc2NyZWVuLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWRvdC1zY3JlZW4tZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERvdFNjcmVlbiB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PERvdFNjcmVlbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBEb3RTY3JlZW5FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpFXAA {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ FXAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpFXAA, isStandalone: true, selector: \"ngtp-fxaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpFXAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-fxaa',\n template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnhhYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2Z4YWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxtREFBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQU5XLFFBQVE7a0dBQVIsUUFBUSxpVUFYVjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBYnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRlhBQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBGWEFBRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGWEFBRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWZ4YWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZlhBQS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1mWEFBLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBGWEFBIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RlhBQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBGWEFBRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick, vector2 } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGlitch {\n constructor() {\n this.options = input({ active: true }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ active: true }) }] : [{ transform: mergeInputs({ active: true }) }]));\n this.active = pick(this.options, 'active');\n this.mode = pick(this.options, 'mode');\n this.ratio = pick(this.options, 'ratio');\n this.dtSize = pick(this.options, 'dtSize');\n this.columns = pick(this.options, 'columns');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.perturbationMap = pick(this.options, 'perturbationMap');\n this.delay = vector2(this.options, 'delay');\n this.duration = vector2(this.options, 'duration');\n this.chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n this.strength = vector2(this.options, 'strength');\n this.store = injectStore();\n this.effect = computed(() => new GlitchEffect({\n ratio: this.ratio(),\n dtSize: this.dtSize(),\n columns: this.columns(),\n blendFunction: this.blendFunction(),\n perturbationMap: this.perturbationMap(),\n delay: this.delay(),\n duration: this.duration(),\n chromaticAberrationOffset: this.chromaticAberrationOffset(),\n strength: this.strength(),\n }), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [glitchEffect, invalidate, mode, active] = [\n this.effect(),\n this.store.invalidate(),\n this.mode(),\n this.active(),\n ];\n glitchEffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpGlitch, isStandalone: true, selector: \"ngtp-glitch\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpGlitch, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-glitch',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvZ2xpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFxQjFELE1BQU0sT0FBTyxVQUFVO0lBaUN0QjtRQWhDQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBbUIsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUExQyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFDLENBQUM7UUFFekYsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELG9CQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV4RCxVQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLDhCQUF5QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDL0UsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQUcsUUFBUSxDQUNoQixHQUFHLEVBQUUsQ0FDSixJQUFJLFlBQVksQ0FBQztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6Qix5QkFBeUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDekIsQ0FBQyxrREFDSCxDQUFDO1FBR0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDWCxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ2IsQ0FBQztZQUNGLFlBQVksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvRSxVQUFVLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakRXLFVBQVU7a0dBQVYsVUFBVSxpTkFQWjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxVQUFVO2tCQVR0QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndFZlY3RvcjIsIGluamVjdFN0b3JlLCBwaWNrLCB2ZWN0b3IyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBHbGl0Y2hFZmZlY3QsIEdsaXRjaE1vZGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCB0eXBlIEdsaXRjaE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdsaXRjaEVmZmVjdD5bMF0+ICZcblx0UGFydGlhbDx7XG5cdFx0bW9kZTogR2xpdGNoTW9kZTtcblx0XHRhY3RpdmU6IGJvb2xlYW47XG5cdFx0ZGVsYXk6IE5ndFZlY3RvcjI7XG5cdFx0ZHVyYXRpb246IE5ndFZlY3RvcjI7XG5cdFx0Y2hyb21hdGljQWJlcnJhdGlvbk9mZnNldDogTmd0VmVjdG9yMjtcblx0XHRzdHJlbmd0aDogTmd0VmVjdG9yMjtcblx0fT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZ2xpdGNoJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHbGl0Y2gge1xuXHRvcHRpb25zID0gaW5wdXQoeyBhY3RpdmU6IHRydWUgfSBhcyBHbGl0Y2hPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBhY3RpdmU6IHRydWUgfSkgfSk7XG5cblx0cHJpdmF0ZSBhY3RpdmUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2FjdGl2ZScpO1xuXHRwcml2YXRlIG1vZGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21vZGUnKTtcblx0cHJpdmF0ZSByYXRpbyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmF0aW8nKTtcblx0cHJpdmF0ZSBkdFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2R0U2l6ZScpO1xuXHRwcml2YXRlIGNvbHVtbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NvbHVtbnMnKTtcblx0cHJpdmF0ZSBibGVuZEZ1bmN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJyk7XG5cdHByaXZhdGUgcGVydHVyYmF0aW9uTWFwID0gcGljayh0aGlzLm9wdGlvbnMsICdwZXJ0dXJiYXRpb25NYXAnKTtcblxuXHRwcml2YXRlIGRlbGF5ID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdkZWxheScpO1xuXHRwcml2YXRlIGR1cmF0aW9uID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdkdXJhdGlvbicpO1xuXHRwcml2YXRlIGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQgPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ2Nocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQnKTtcblx0cHJpdmF0ZSBzdHJlbmd0aCA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnc3RyZW5ndGgnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZChcblx0XHQoKSA9PlxuXHRcdFx0bmV3IEdsaXRjaEVmZmVjdCh7XG5cdFx0XHRcdHJhdGlvOiB0aGlzLnJhdGlvKCksXG5cdFx0XHRcdGR0U2l6ZTogdGhpcy5kdFNpemUoKSxcblx0XHRcdFx0Y29sdW1uczogdGhpcy5jb2x1bW5zKCksXG5cdFx0XHRcdGJsZW5kRnVuY3Rpb246IHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0XHRwZXJ0dXJiYXRpb25NYXA6IHRoaXMucGVydHVyYmF0aW9uTWFwKCksXG5cdFx0XHRcdGRlbGF5OiB0aGlzLmRlbGF5KCksXG5cdFx0XHRcdGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uKCksXG5cdFx0XHRcdGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQ6IHRoaXMuY2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCgpLFxuXHRcdFx0XHRzdHJlbmd0aDogdGhpcy5zdHJlbmd0aCgpLFxuXHRcdFx0fSksXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtnbGl0Y2hFZmZlY3QsIGludmFsaWRhdGUsIG1vZGUsIGFjdGl2ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLm1vZGUoKSxcblx0XHRcdFx0dGhpcy5hY3RpdmUoKSxcblx0XHRcdF07XG5cdFx0XHRnbGl0Y2hFZmZlY3QubW9kZSA9IGFjdGl2ZSA/IG1vZGUgfHwgR2xpdGNoTW9kZS5TUE9SQURJQyA6IEdsaXRjaE1vZGUuRElTQUJMRUQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, omit, pick, resolveRef } from 'angular-three';\nimport { GodRaysEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGodRays {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['sun']);\n this.sun = pick(this.options, 'sun');\n this.sunElement = computed(() => {\n const sun = this.sun();\n if (typeof sun === 'function')\n return resolveRef(sun());\n return resolveRef(sun);\n }, ...(ngDevMode ? [{ debugName: \"sunElement\" }] : []));\n this.effect = computed(() => {\n const [camera, sunElement, options] = [this.effectComposer.camera(), this.sunElement(), this.effectOptions()];\n return new GodRaysEffect(camera, sunElement, options);\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const sunElement = this.sunElement();\n if (!sunElement)\n return;\n const godRaysEffect = this.effect();\n godRaysEffect.lightSource = sunElement;\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpGodRays, isStandalone: true, selector: \"ngtp-god-rays\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpGodRays, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-god-rays',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29kLXJheXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9nb2QtcmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CeEQsTUFBTSxPQUFPLFdBQVc7SUFtQnZCO1FBbEJBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0IsbURBQUMsQ0FBQztRQUU5QixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTVDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFFBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoQyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxzREFBQyxDQUFDO1FBRU8sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM5RyxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxrREFBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxhQUFhLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhDVyxXQUFXO2tHQUFYLFdBQVcsbU5BUGI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgR29kUmF5c0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgR29kUmF5c09wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdvZFJheXNFZmZlY3Q+WzJdICYge1xuXHRzdW46XG5cdFx0fCBUSFJFRS5NZXNoXG5cdFx0fCBUSFJFRS5Qb2ludHNcblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuTWVzaCB8IFRIUkVFLlBvaW50cz5cblx0XHR8ICgoKSA9PiBUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzIHwgRWxlbWVudFJlZjxUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzPiB8IHVuZGVmaW5lZCk7XG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdvZC1yYXlzJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHb2RSYXlzIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdvZFJheXNPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJpdmF0ZSBlZmZlY3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnc3VuJ10pO1xuXHRwcml2YXRlIHN1biA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3VuJyk7XG5cblx0cHJpdmF0ZSBzdW5FbGVtZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHN1biA9IHRoaXMuc3VuKCk7XG5cdFx0aWYgKHR5cGVvZiBzdW4gPT09ICdmdW5jdGlvbicpIHJldHVybiByZXNvbHZlUmVmKHN1bigpKTtcblx0XHRyZXR1cm4gcmVzb2x2ZVJlZihzdW4pO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtjYW1lcmEsIHN1bkVsZW1lbnQsIG9wdGlvbnNdID0gW3RoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHRoaXMuc3VuRWxlbWVudCgpLCB0aGlzLmVmZmVjdE9wdGlvbnMoKV07XG5cdFx0cmV0dXJuIG5ldyBHb2RSYXlzRWZmZWN0KGNhbWVyYSwgc3VuRWxlbWVudCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzdW5FbGVtZW50ID0gdGhpcy5zdW5FbGVtZW50KCk7XG5cdFx0XHRpZiAoIXN1bkVsZW1lbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZ29kUmF5c0VmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRnb2RSYXlzRWZmZWN0LmxpZ2h0U291cmNlID0gc3VuRWxlbWVudDtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, omit, pick } from 'angular-three';\nimport { GridEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGrid {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectOptions = omit(this.options, ['size']);\n this.size = pick(this.options, 'size');\n this.effect = computed(() => new GridEffect(this.effectOptions()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [size, effect] = [this.size(), this.effect()];\n if (size) {\n effect.setSize(size.width, size.height);\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpGrid, isStandalone: true, selector: \"ngtp-grid\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpGrid, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-grid',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWM1QyxNQUFNLE9BQU8sUUFBUTtJQU9wQjtRQU5BLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBaUIsbURBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3QyxTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFaEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsa0RBQUMsQ0FBQztRQUd2RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkJXLFFBQVE7a0dBQVIsUUFBUSwrTUFQVjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxRQUFRO2tCQVRwQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEdyaWRFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbnR5cGUgR3JpZE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdyaWRFZmZlY3Q+WzBdPiAmXG5cdFBhcnRpYWw8eyBzaXplOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZ3JpZCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwR3JpZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBHcmlkT3B0aW9ucyk7XG5cdHByaXZhdGUgZWZmZWN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3NpemUnXSk7XG5cdHByaXZhdGUgc2l6ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2l6ZScpO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiBuZXcgR3JpZEVmZmVjdCh0aGlzLmVmZmVjdE9wdGlvbnMoKSkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbc2l6ZSwgZWZmZWN0XSA9IFt0aGlzLnNpemUoKSwgdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRpZiAoc2l6ZSkge1xuXHRcdFx0XHRlZmZlY3Quc2V0U2l6ZShzaXplLndpZHRoLCBzaXplLmhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpHueSaturation {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ HueSaturationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpHueSaturation, isStandalone: true, selector: \"ngtp-hue-saturation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpHueSaturation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-hue-saturation',\n template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXNhdHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9odWUtc2F0dXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8saUJBQWlCO0lBSTdCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUF1RCxtREFBQyxDQUFDO1FBQy9ELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBTlcsaUJBQWlCO2tHQUFqQixpQkFBaUIsMlVBWG5COzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsaUJBQWlCO2tCQWI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgSHVlU2F0dXJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBIdWVTYXR1cmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBIdWVTYXR1cmF0aW9uRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWh1ZS1zYXR1cmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBIdWVTYXR1cmF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8SHVlU2F0dXJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBIdWVTYXR1cmF0aW9uRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\nimport { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, beforeRender, injectStore, is, omit, vector3 } from 'angular-three';\nimport { easing } from 'maath';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst LensFlareShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\nexport class LensFlareEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, enabled = true, glareSize = 0.2, lensPosition = [0.01, 0.01], iResolution = [0, 0], starPoints = 6, flareSize = 0.01, flareSpeed = 0.01, flareShape = 0.01, animated = true, anamorphic = false, colorGain = new THREE.Color(20, 20, 20), lensDirtTexture = null, haloScale = 0.5, secondaryGhosts = true, aditionalStreaks = true, ghostScale = 0.0, opacity = 1.0, starBurst = false, } = {}) {\n super('LensFlareEffect', LensFlareShader.fragmentShader, {\n blendFunction,\n uniforms: new Map([\n ['enabled', new THREE.Uniform(enabled)],\n ['glareSize', new THREE.Uniform(glareSize)],\n ['lensPosition', new THREE.Uniform(lensPosition)],\n ['iTime', new THREE.Uniform(0)],\n ['iResolution', new THREE.Uniform(iResolution)],\n ['starPoints', new THREE.Uniform(starPoints)],\n ['flareSize', new THREE.Uniform(flareSize)],\n ['flareSpeed', new THREE.Uniform(flareSpeed)],\n ['flareShape', new THREE.Uniform(flareShape)],\n ['animated', new THREE.Uniform(animated)],\n ['anamorphic', new THREE.Uniform(anamorphic)],\n ['colorGain', new THREE.Uniform(colorGain)],\n ['lensDirtTexture', new THREE.Uniform(lensDirtTexture)],\n ['haloScale', new THREE.Uniform(haloScale)],\n ['secondaryGhosts', new THREE.Uniform(secondaryGhosts)],\n ['aditionalStreaks', new THREE.Uniform(aditionalStreaks)],\n ['ghostScale', new THREE.Uniform(ghostScale)],\n ['starBurst', new THREE.Uniform(starBurst)],\n ['opacity', new THREE.Uniform(opacity)],\n ]),\n });\n }\n update(_renderer, _inputBuffer, deltaTime) {\n const iTime = this.uniforms.get('iTime');\n if (iTime) {\n iTime.value += deltaTime;\n }\n }\n}\nconst defaultOptions = {\n position: new THREE.Vector3(-25, 6, -60),\n followMouse: false,\n smoothTime: 0.7,\n};\nexport class NgtpLensFlare {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);\n this.position = vector3(this.options, 'position');\n this.projectedPosition = new THREE.Vector3();\n this.mouse2d = new THREE.Vector2();\n this.effect = computed(() => new LensFlareEffect(this.effectOptions()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [lensFlareEffect, width, height] = [\n this.effect(),\n this.store.viewport.width(),\n this.store.viewport.height(),\n ];\n const iResolution = lensFlareEffect.uniforms.get('iResolution');\n if (iResolution) {\n iResolution.value.x = width;\n iResolution.value.y = height;\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n beforeRender(({ delta }) => {\n const [effect] = [this.effect()];\n if (!effect)\n return;\n const [{ followMouse, smoothTime }, position, pointer, camera, scene, raycaster] = [\n this.options(),\n this.position(),\n this.store.snapshot.pointer,\n this.effectComposer.camera(),\n this.effectComposer.scene(),\n this.store.snapshot.raycaster,\n ];\n const uLensPosition = effect.uniforms.get('lensPosition');\n const uOpacity = effect.uniforms.get('opacity');\n if (!uLensPosition || !uOpacity)\n return;\n let target = 1;\n if (followMouse) {\n uLensPosition.value.x = pointer.x;\n uLensPosition.value.y = pointer.y;\n target = 0;\n }\n else {\n this.projectedPosition.copy(position).project(camera);\n if (this.projectedPosition.z > 1)\n return;\n uLensPosition.value.x = this.projectedPosition.x;\n uLensPosition.value.y = this.projectedPosition.y;\n this.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n raycaster.setFromCamera(this.mouse2d, camera);\n const intersects = raycaster.intersectObjects(scene.children, true);\n const { object } = intersects[0] ?? {};\n if (object) {\n if (object.userData?.['lensflare'] === 'no-occlusion') {\n target = 0;\n }\n else if (is.three(object, 'isMesh')) {\n if (object.material.uniforms?.['_transmission']?.value > 0.2) {\n //Check for MeshTransmissionMaterial\n target = 0.2;\n }\n else if ('_transmission' in object.material &&\n typeof object.material._transmission === 'number' &&\n object.material._transmission > 0.2) {\n //Check for MeshPhysicalMaterial with transmission setting\n target = 0.2;\n }\n else if (object.material.transparent) {\n // Check for OtherMaterials with transparent parameter\n target = object.material.opacity;\n }\n }\n }\n }\n easing.damp(uOpacity, 'value', target, smoothTime, delta);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpLensFlare, isStandalone: true, selector: \"ngtp-lens-flare\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpLensFlare, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lens-flare',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVucy1mbGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2xlbnMtZmxhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLHVDQUF1QztBQUV2QyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV4RCxNQUFNLGVBQWUsR0FBRztJQUN2QixjQUFjLEVBQUUsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEN6QztDQUNBLENBQUM7QUFFRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQzFDLFlBQVksRUFDWCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDcEMsT0FBTyxHQUFHLElBQUksRUFDZCxTQUFTLEdBQUcsR0FBRyxFQUNmLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFDM0IsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FB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RlcsYUFBYTtrR0FBYixhQUFhLHFOQVBmOztFQUVULDREQUNTLE9BQU87OzJGQUlMLGFBQWE7a0JBVHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQW5kZXJzb24gTWFuY2luaSAyMDIzXG4vLyBSZWFjdCBUaHJlZSBGaWJlciBVbHRpbWF0ZSBMZW5zRmxhcmVcblxuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBOZ3RWZWN0b3IzLCBiZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBpcywgb21pdCwgdmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgZWFzaW5nIH0gZnJvbSAnbWFhdGgnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuY29uc3QgTGVuc0ZsYXJlU2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcblxuICB1bmlmb3JtIGZsb2F0IGlUaW1lO1xuICB1bmlmb3JtIHZlYzIgbGVuc1Bvc2l0aW9uO1xuICB1bmlmb3JtIHZlYzIgaVJlc29sdXRpb247XG4gIHVuaWZvcm0gdmVjMyBjb2xvckdhaW47XG4gIHVuaWZvcm0gZmxvYXQgc3RhclBvaW50cztcbiAgdW5pZm9ybSBmbG9hdCBnbGFyZVNpemU7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTaXplO1xuICB1bmlmb3JtIGZsb2F0IGZsYXJlU3BlZWQ7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTaGFwZTtcbiAgdW5pZm9ybSBmbG9hdCBoYWxvU2NhbGU7XG4gIHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiAgdW5pZm9ybSBib29sIGFuaW1hdGVkO1xuICB1bmlmb3JtIGJvb2wgYW5hbW9ycGhpYztcbiAgdW5pZm9ybSBib29sIGVuYWJsZWQ7XG4gIHVuaWZvcm0gYm9vbCBzZWNvbmRhcnlHaG9zdHM7XG4gIHVuaWZvcm0gYm9vbCBzdGFyQnVyc3Q7XG4gIHVuaWZvcm0gZmxvYXQgZ2hvc3RTY2FsZTtcbiAgdW5pZm9ybSBib29sIGFkaXRpb25hbFN0cmVha3M7XG4gIHVuaWZvcm0gc2FtcGxlcjJEIGxlbnNEaXJ0VGV4dHVyZTtcbiAgdmVjMiB2eHRDO1xuXG4gIGZsb2F0IHJuZGYoZmxvYXQgbil7cmV0dXJuIGZyYWN0KHNpbihuKSAqIDQzNzU4LjU0NTMxMjMpO31mbG9hdCBuaXooZmxvYXQgcCl7ZmxvYXQgZmwgPSBmbG9vcihwKTtmbG9hdCBmYyA9IGZyYWN0KHApO3JldHVybiBtaXgocm5kZihmbCkscm5kZihmbCArIDEuMCksIGZjKTt9XG4gIHZlYzMgaHN2MnJnYih2ZWMzIGMpe3ZlYzQgayA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTt2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBrLnh5eikgKiA2LjAgLSBrLnd3dyk7cmV0dXJuIGMueiAqIG1peChrLnh4eCwgY2xhbXAocCAtIGsueHh4LCAwLjAsIDEuMCksIGMueSk7fVxuICBmbG9hdCBzYXRVKGZsb2F0IHgpe3JldHVybiBjbGFtcCh4LCAwLiwxLik7fXZlYzIgcnRVKHZlYzIgbmF6LCBmbG9hdCBydG4pe3JldHVybiB2ZWMyKGNvcyhydG4pICogbmF6LnggKyBzaW4ocnRuKSAqIG5hei55LGNvcyhydG4pICogbmF6LnkgLSBzaW4ocnRuKSAqIG5hei54KTt9XG4gIHZlYzMgZHJ3Rih2ZWMyIHAsIGZsb2F0IGludGVuc2l0eSwgZmxvYXQgcm5kLCBmbG9hdCBzcGVlZCwgaW50IGlkKXtmbG9hdCBmbGhvcyA9ICgxLiAvIDMyLikgKiBmbG9hdChpZCkgKiAwLjE7ZmxvYXQgbGluZ3JhZCA9IGRpc3RhbmNlKHZlYzIoMC4pLCBwKTtmbG9hdCBleHBnID0gMS4gLyBleHAobGluZ3JhZCAqIChmcmFjdChybmQpICogMC42NiArIDAuMzMpKTt2ZWMzIHF6VGcgPSBoc3YycmdiKHZlYzMoIGZyYWN0KCAoZXhwZyAqIDguKSArIHNwZWVkICogZmxhcmVTcGVlZCArIGZsaG9zKSwgcG93KDEuLWFicyhleHBnKjIuLTEuKSwgMC40NSksIDIwLjAgKiBleHBnICogaW50ZW5zaXR5KSk7ZmxvYXQgaW50ZXJuYWxTdGFyUG9pbnRzO2lmKGFuYW1vcnBoaWMpe2ludGVybmFsU3RhclBvaW50cyA9IDEuMDt9IGVsc2V7aW50ZXJuYWxTdGFyUG9pbnRzID0gc3RhclBvaW50czt9ZmxvYXQgYW1zID0gbGVuZ3RoKHAgKiBmbGFyZVNoYXBlICogc2luKGludGVybmFsU3RhclBvaW50cyAqIGF0YW4ocC54LCBwLnkpKSk7ZmxvYXQga0poZyA9IHBvdygxLi1zYXRVKGFtcyksICggYW5hbW9ycGhpYyA/IDEwMC4gOiAxMi4pKTtrSmhnICs9IHNhdFUoZXhwZy0wLjkpICogMy47a0poZyA9IHBvdyhrSmhnICogZXhwZywgOC4gKyAoMS4taW50ZW5zaXR5KSAqIDUuKTtpZihmbGFyZVNwZWVkID4gMC4wKXtyZXR1cm4gdmVjMyhrSmhnKSAqIHF6VGc7fSBlbHNle3JldHVybiB2ZWMzKGtKaGcpICogZmxhcmVTaXplICogMTUuO319XG4gIGZsb2F0IGFtczIodmVjMyBhLCB2ZWMzIGIpIHsgcmV0dXJuIGFicyhhLnggLSBiLngpICsgYWJzKGEueSAtIGIueSkgKyBhYnMoYS56IC0gYi56KTt9dmVjMyBzYXRVKHZlYzMgeCl7cmV0dXJuIGNsYW1wKHgsIHZlYzMoMC4wKSwgdmVjMygxLjApKTt9XG4gIGZsb2F0IGdsUih2ZWMyIG5heiwgdmVjMiBwb3MsIGZsb2F0IHpzaSl7dmVjMiBtbmk7aWYoYW5pbWF0ZWQpe21uaSA9IHJ0VShuYXotcG9zLCBpVGltZSAqIDAuMSk7fSBlbHNle21uaSA9IG5hei1wb3M7fWZsb2F0IGFuZyA9IGF0YW4obW5pLnksIG1uaS54KSAqIChhbmFtb3JwaGljID8gMS4wIDogc3RhclBvaW50cyk7ZmxvYXQgYW1zMiA9IGxlbmd0aChtbmkpO2FtczIgPSBwb3coYW1zMiwgLjkpO2Zsb2F0IGYwID0gMS4wLyhsZW5ndGgobmF6LXBvcykqKDEuMC96c2kqMTYuMCkrLjIpO3JldHVybiBmMCtmMCooc2luKChhbmcpKSouMiArLjMpO31cbiAgZmxvYXQgc2RIZXgodmVjMiBwKXtwID0gYWJzKHApO3ZlYzIgcSA9IHZlYzIocC54KjIuMCowLjU3NzM1MDMsIHAueSArIHAueCowLjU3NzM1MDMpO3JldHVybiBkb3Qoc3RlcChxLnh5LHEueXgpLCAxLjAtcS55eCk7fWZsb2F0IGZwb3coZmxvYXQgeCwgZmxvYXQgayl7cmV0dXJuIHggPiBrID8gcG93KCh4LWspLygxLjAtayksMi4wKSA6IDAuMDt9XG4gIHZlYzMgckh4KHZlYzIgbmF6LCB2ZWMyIHAsIGZsb2F0IHMsIHZlYzMgY29sKXtuYXogLT0gcDtpZiAoYWJzKG5hei54KSA8IDAuMipzICYmIGFicyhuYXoueSkgPCAwLjIqcyl7cmV0dXJuIG1peCh2ZWMzKDApLG1peCh2ZWMzKDApLGNvbCwwLjEgKyBmcG93KGxlbmd0aChuYXovcyksMC4xKSoxMC4wKSxzbW9vdGhzdGVwKDAuMCwwLjEsc2RIZXgobmF6KjIwLjAvcykpKTt9cmV0dXJuIHZlYzMoMCk7fVxuICB2ZWMzIG1Mcyh2ZWMyIG5heiwgdmVjMiBwb3Mpe3ZlYzIgbW5pID0gbmF6LXBvczt2ZWMyIHp4TXAgPSBuYXoqKGxlbmd0aChuYXopKTtmbG9hdCBhbmcgPSBhdGFuKG1uaS54LG1uaS55KTtmbG9hdCBmMCA9IC4zLyhsZW5ndGgobmF6LXBvcykqMTYuMCsxLjApO2YwID0gZjAqKHNpbihuaXooc2luKGFuZyozLjktKGFuaW1hdGVkID8gaVRpbWUgOiAwLjApICogMC4zKSAqIHN0YXJQb2ludHMpKSouMiApO2Zsb2F0IGYxID0gbWF4KDAuMDEtcG93KGxlbmd0aChuYXorMS4yKnBvcyksMS45KSwuMCkqNy4wO2Zsb2F0IGYyID0gbWF4KC45LygxMC4wKzMyLjAqcG93KGxlbmd0aCh6eE1wKzAuOTkqcG9zKSwyLjApKSwuMCkqMC4zNTtmbG9hdCBmMjIgPSBtYXgoLjkvKDExLjArMzIuMCpwb3cobGVuZ3RoKHp4TXArMC44NSpwb3MpLDIuMCkpLC4wKSowLjIzO2Zsb2F0IGYyMyA9IG1heCguOS8oMTIuMCszMi4wKnBvdyhsZW5ndGgoenhNcCswLjk1KnBvcyksMi4wKSksLjApKjAuNjt2ZWMyIHp0WCA9IG1peChuYXosenhNcCwgMC4xKTtmbG9hdCBmNCA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuNCpwb3MpLDIuOSksLjApKjQuMDI7ZmxvYXQgZjQyID0gbWF4KDAuMC1wb3cobGVuZ3RoKHp0WCswLjQ1KnBvcyksMi45KSwuMCkqNC4xO2Zsb2F0IGY0MyA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuNSpwb3MpLDIuOSksLjApKjQuNjt6dFggPSBtaXgobmF6LHp4TXAsLS40KTtmbG9hdCBmNSA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuMSpwb3MpLDUuNSksLjApKjIuMDtmbG9hdCBmNTIgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjIqcG9zKSw1LjUpLC4wKSoyLjA7ZmxvYXQgZjUzID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC4xKnBvcyksNS41KSwuMCkqMi4wO3p0WCA9IG1peChuYXosenhNcCwgMi4xKTtmbG9hdCBmNiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMypwb3MpLDEuNjEpLC4wKSozLjE1OTtmbG9hdCBmNjIgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjMyNSpwb3MpLDEuNjE0KSwuMCkqMy4xNDtmbG9hdCBmNjMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjM4OSpwb3MpLDEuNjIzKSwuMCkqMy4xMjt2ZWMzIGMgPSB2ZWMzKGdsUihuYXoscG9zLCBnbGFyZVNpemUpKTt2ZWMyIHByb3Q7aWYoYW5pbWF0ZWQpe3Byb3QgPSBydFUobmF6IC0gcG9zLCAoaVRpbWUgKiAwLjEpKTt9IGVsc2UgaWYoYW5hbW9ycGhpYyl7cHJvdCA9IHJ0VShuYXogLSBwb3MsIDEuNTcwNzk2KTt9IGVsc2Uge3Byb3QgPSBuYXogLSBwb3M7fWMgKz0gZHJ3Rihwcm90LCAoYW5hbW9ycGhpYyA/IGZsYXJlU2l6ZSAqIDEwLiA6IGZsYXJlU2l6ZSksIDAuMSwgaVRpbWUsIDEpO2Mucis9ZjErZjIrZjQrZjUrZjY7IGMuZys9ZjErZjIyK2Y0MitmNTIrZjYyOyBjLmIrPWYxK2YyMytmNDMrZjUzK2Y2MztjID0gYyoxLjMgKiB2ZWMzKGxlbmd0aCh6eE1wKSsuMDkpO2MrPXZlYzMoZjApO3JldHVybiBjO31cbiAgdmVjMyBjYyh2ZWMzIGNsciwgZmxvYXQgZmN0LGZsb2F0IGZjdDIpe2Zsb2F0IHcgPSBjbHIueCtjbHIueStjbHIuejtyZXR1cm4gbWl4KGNscix2ZWMzKHcpKmZjdCx3KmZjdDIpO31mbG9hdCBybmQodmVjMiBwKXtmbG9hdCBmID0gZnJhY3Qoc2luKGRvdChwLCB2ZWMyKDEyLjEyMzQsIDcyLjgzOTIpICkqNDUxMjMuMikpO3JldHVybiBmO31mbG9hdCBybmQoZmxvYXQgdyl7ZmxvYXQgZiA9IGZyYWN0KHNpbih3KSoxMDAwLik7cmV0dXJuIGY7fVxuICBmbG9hdCByU2hwKHZlYzIgcCwgaW50IE4pe2Zsb2F0IGY7ZmxvYXQgYT1hdGFuKHAueCxwLnkpKy4yO2Zsb2F0IGI9Ni4yODMxOS9mbG9hdChOKTtmPXNtb290aHN0ZXAoLjUsLjUxLCBjb3MoZmxvb3IoLjUrYS9iKSpiLWEpKmxlbmd0aChwLnh5KSogMi4wICAtZ2hvc3RTY2FsZSk7cmV0dXJuIGY7fVxuICB2ZWMzIGRyQyh2ZWMyIHAsIGZsb2F0IHpzaSwgZmxvYXQgZEN5LCB2ZWMzIGNsciwgdmVjMyBjbHIyLCBmbG9hdCBhbXMyLCB2ZWMyIGVzb20pe2Zsb2F0IGwgPSBsZW5ndGgocCArIGVzb20qKGFtczIqMi4pKSt6c2kvMi47ZmxvYXQgbDIgPSBsZW5ndGgocCArIGVzb20qKGFtczIqNC4pKSt6c2kvMy47ZmxvYXQgYyA9IG1heCgwLjAxLXBvdyhsZW5ndGgocCArIGVzb20qYW1zMiksIHpzaSpnaG9zdFNjYWxlKSwgMC4wKSoxMC47ZmxvYXQgYzEgPSBtYXgoMC4wMDEtcG93KGwtMC4zLCAxLi80MC4pK3NpbihsKjIwLiksIDAuMCkqMy47ZmxvYXQgYzIgPSAgbWF4KDAuMDkvcG93KGxlbmd0aChwLWVzb20qYW1zMi8uNSkqMS4sIC45NSksIDAuMCkvMjAuO2Zsb2F0IHMgPSBtYXgoMC4wMi1wb3coclNocChwKjUuICsgZXNvbSphbXMyKjUuICsgZEN5LCA2KSAsIDEuKSwgMC4wKSoxLjU7Y2xyID0gY29zKHZlYzMoMC40NCwgLjI0LCAuMikqOC4gKyBhbXMyKjQuKSowLjUrLjU7dmVjMyBmID0gYypjbHI7ZiArPSBjMSpjbHI7ZiArPSBjMipjbHI7ZiArPSAgcypjbHI7cmV0dXJuIGYtMC4wMTt9XG4gIHZlYzQgZ2VMQyhmbG9hdCB4KXtyZXR1cm4gdmVjNCh2ZWMzKG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KHZlYzMoMC4sIDAuLCAwLiksdmVjMygwLiwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjAsIDAuMDYzLCB4KSksdmVjMygwLiwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjA2MywgMC4xMjUsIHgpKSx2ZWMzKDAuMCwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjEyNSwgMC4xODgsIHgpKSx2ZWMzKDAuMTg4LCAwLjEzMSwgMC4xMTYpLCBzbW9vdGhzdGVwKDAuMTg4LCAwLjIyNywgeCkpLHZlYzMoMC4zMSwgMC4yMDQsIDAuNTM3KSwgc21vb3Roc3RlcCgwLjIyNywgMC4yNTEsIHgpKSx2ZWMzKDAuMTkyLCAwLjEwNiwgMC4yODYpLCBzbW9vdGhzdGVwKDAuMjUxLCAwLjMxNCwgeCkpLHZlYzMoMC4xMDIsIDAuMDA4LCAwLjM0MSksIHNtb290aHN0ZXAoMC4zMTQsIDAuMzkyLCB4KSksdmVjMygwLjA4NiwgMC4wLCAwLjE0MSksIHNtb290aHN0ZXAoMC4zOTIsIDAuNTAyLCB4KSksdmVjMygxLjAsIDAuMzEsIDAuMCksIHNtb290aHN0ZXAoMC41MDIsIDAuNjA0LCB4KSksdmVjMyguMSwgMC4xLCAwLjEpLCBzbW9vdGhzdGVwKDAuNjA0LCAwLjY0MywgeCkpLHZlYzMoMS4wLCAwLjkyOSwgMC4wKSwgc21vb3Roc3RlcCgwLjY0MywgMC43NjEsIHgpKSx2ZWMzKDEuMCwgMC4wODYsIDAuNDI0KSwgc21vb3Roc3RlcCgwLjc2MSwgMC44NDcsIHgpKSx2ZWMzKDEuMCwgMC40OSwgMC4wKSwgc21vb3Roc3RlcCgwLjg0NywgMC44OSwgeCkpLHZlYzMoMC45NDUsIDAuMjc1LCAwLjQ3NSksIHNtb290aHN0ZXAoMC44OSwgMC45NDEsIHgpKSx2ZWMzKDAuMjUxLCAwLjI3NSwgMC43OTYpLCBzbW9vdGhzdGVwKDAuOTQxLCAxLjAsIHgpKSksMS4wKTt9XG4gIGZsb2F0IGRpVE4odmVjMiBwKXt2ZWMyIGYgPSBmcmFjdChwKTtmID0gKGYgKiBmKSAqICgzLjAgLSAoMi4wICogZikpO2Zsb2F0IG4gPSBkb3QoZmxvb3IocCksIHZlYzIoMS4wLCAxNTcuMCkpO3ZlYzQgYSA9IGZyYWN0KHNpbih2ZWM0KG4gKyAwLjAsIG4gKyAxLjAsIG4gKyAxNTcuMCwgbiArIDE1OC4wKSkgKiA0Mzc1OC41NDUzMTIzKTtyZXR1cm4gbWl4KG1peChhLngsIGEueSwgZi54KSwgbWl4KGEueiwgYS53LCBmLngpLCBmLnkpO31cbiAgZmxvYXQgZmJtKHZlYzIgcCl7Y29uc3QgbWF0MiBtID0gbWF0MigwLjgwLCAtMC42MCwgMC42MCwgMC44MCk7ZmxvYXQgZiA9IDAuMDtmICs9IDAuNTAwMCpkaVROKHApOyBwID0gbSpwKjIuMDI7ZiArPSAwLjI1MDAqZGlUTihwKTsgcCA9IG0qcCoyLjAzO2YgKz0gMC4xMjUwKmRpVE4ocCk7IHAgPSBtKnAqMi4wMTtmICs9IDAuMDYyNSpkaVROKHApO3JldHVybiBmLzAuOTM3NTt9XG4gIHZlYzQgZ2VMUyh2ZWMyIHApe3ZlYzIgcHAgPSAocCAtIHZlYzIoMC41KSkgKiAyLjA7ZmxvYXQgYSA9IGF0YW4ocHAueSwgcHAueCk7dmVjNCBjcCA9IHZlYzQoc2luKGEgKiAxLjApLCBsZW5ndGgocHApLCBzaW4oYSAqIDEzLjApLCBzaW4oYSAqIDUzLjApKTtmbG9hdCBkID0gc2luKGNsYW1wKHBvdyhsZW5ndGgodmVjMigwLjUpIC0gcCkgKiAwLjUgKyBoYWxvU2NhbGUgLzIuLCA1LjApLCAwLjAsIDEuMCkgKiAzLjE0MTU5KTt2ZWMzIGMgPSB2ZWMzKGQpICogdmVjMyhmYm0oY3AueHkgKiAxNi4wKSAqIGZibShjcC56dyAqIDkuMCkgKiBtYXgobWF4KG1heChtYXgoMC41LCBzaW4oYSAqIDEuMCkpLCBzaW4oYSAqIDMuMCkgKiAwLjgpLCBzaW4oYSAqIDcuMCkgKiAwLjgpLCBzaW4oYSAqIDkuMCkgKiAxMC42KSk7YyAqPSB2ZWMzKG1peCgyLjAsIChzaW4obGVuZ3RoKHBwLnh5KSAqIDI1Ni4wKSAqIDAuNSkgKyAwLjUsIHNpbigoY2xhbXAoKGxlbmd0aChwcC54eSkgLSAwLjg3NSkgLyAwLjEsIDAuMCwgMS4wKSArIDAuMCkgKiAyLjAgKiAzLjE0MTU5KSAqIDEuNSkgKyAwLjUpICogMC4zMjc1O3JldHVybiB2ZWM0KHZlYzMoYyAqIDEuMCksIGQpO31cbiAgdmVjNCBnZUxEKHZlYzIgcCl7cC54eSArPSB2ZWMyKGZibShwLnl4ICogMy4wKSwgZmJtKHAueXggKiAyLjApKSAqIDAuMDgyNTt2ZWMzIG8gPSB2ZWMzKG1peCgwLjEyNSwgMC4yNSwgbWF4KG1heChzbW9vdGhzdGVwKDAuMSwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC4yNSkpKSxzbW9vdGhzdGVwKDAuNCwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC43NSkpKSksc21vb3Roc3RlcCgwLjgsIDAuMCwgbGVuZ3RoKHAgLSB2ZWMyKDAuODc1LCAwLjEyNSkpKSkpKTtvICs9IHZlYzMobWF4KGZibShwICogMS4wKSAtIDAuNSwgMC4wKSkgKiAwLjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDIuMCkgLSAwLjUsIDAuMCkpICogMC41O28gKz0gdmVjMyhtYXgoZmJtKHAgKiA0LjApIC0gMC41LCAwLjApKSAqIDAuMjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDguMCkgLSAwLjc1LCAwLjApKSAqIDEuMDtvICs9IHZlYzMobWF4KGZibShwICogMTYuMCkgLSAwLjc1LCAwLjApKSAqIDAuNzU7byArPSB2ZWMzKG1heChmYm0ocCAqIDY0LjApIC0gMC43NSwgMC4wKSkgKiAwLjU7cmV0dXJuIHZlYzQoY2xhbXAobywgdmVjMygwLjE1KSwgdmVjMygxLjApKSwgMS4wKTt9XG4gIHZlYzQgdHhMKHNhbXBsZXIyRCB0ZXgsIHZlYzIgeHRDKXtpZigoKHh0Qy54IDwgMC4pIHx8ICh4dEMueSA8IDAuKSkgfHwgKCh4dEMueCA+IDEuKSB8fCAoeHRDLnkgPiAxLikpKXtyZXR1cm4gdmVjNCgwLjApO31lbHNle3JldHVybiB0ZXh0dXJlKHRleCwgeHRDKTsgfX1cbiAgdmVjNCB0eEQoc2FtcGxlcjJEIHRleCwgdmVjMiB4dEMsIHZlYzIgZGlyLCB2ZWMzIGRpdG4pIHtyZXR1cm4gdmVjNCh0eEwodGV4LCAoeHRDICsgKGRpciAqIGRpdG4ucikpKS5yLHR4TCh0ZXgsICh4dEMgKyAoZGlyICogZGl0bi5nKSkpLmcsdHhMKHRleCwgKHh0QyArIChkaXIgKiBkaXRuLmIpKSkuYiwxLjApO31cbiAgdmVjNCBzdHJCKCl7dmVjMiBhc3BYdGMgPSB2ZWMyKDEuMCkgLSAoKCh2eHRDIC0gdmVjMigwLjUpKSAqIHZlYzIoMS4wKSkgKyB2ZWMyKDAuNSkpOyB2ZWMyIHh0QyA9IHZlYzIoMS4wKSAtIHZ4dEM7IHZlYzIgZ2h2YyA9ICh2ZWMyKDAuNSkgLSB4dEMpICogMC4zIC0gbGVuc1Bvc2l0aW9uOyB2ZWMyIGdoTm0gPSBub3JtYWxpemUoZ2h2YyAqIHZlYzIoMS4wKSkgKiB2ZWMyKDEuMCk7dmVjMiBoYWxvVmVjID0gbm9ybWFsaXplKGdodmMpICogMC42O3ZlYzIgaGxObSA9IGdoTm0gKiAwLjY7dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKDEuMCkgLyB2ZWMyKGlSZXNvbHV0aW9uLnh5KTt2ZWMzIGRpdG4gPSB2ZWMzKC0odGV4ZWxTaXplLnggKiAxLjUpLCAwLjIsIHRleGVsU2l6ZS54ICogMS41KTt2ZWM0IGMgPSB2ZWM0KDAuMCk7Zm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHt2ZWMyIG9mZnNldCA9IHh0QyArIChnaHZjICogZmxvYXQoaSkpO2MgKz0gdHhEKGxlbnNEaXJ0VGV4dHVyZSwgb2Zmc2V0LCBnaE5tLCBkaXRuKSAqIHBvdyhtYXgoMC4wLCAxLjAgLSAobGVuZ3RoKHZlYzIoMC41KSAtIG9mZnNldCkgLyBsZW5ndGgodmVjMigwLjUpKSkpLCAxMC4wKTt9dmVjMiB1eVRyeiA9IHh0QyArIGhsTm07IHJldHVybiAoYyAqIGdlTEMoKGxlbmd0aCh2ZWMyKDAuNSkgLSBhc3BYdGMpIC8gbGVuZ3RoKHZlYzIoaGFsb1NjYWxlKSkpKSkgKyh0eEQobGVuc0RpcnRUZXh0dXJlLCB1eVRyeiwgZ2hObSwgZGl0bikgKiBwb3cobWF4KDAuMCwgMS4wIC0gKGxlbmd0aCh2ZWMyKDAuNSkgLSB1eVRyeikgLyBsZW5ndGgodmVjMigwLjUpKSkpLCAxMC4wKSk7fVxuICB2b2lkIG1haW5JbWFnZSh2ZWM0IHYsdmVjMiByLG91dCB2ZWM0IGkpe3ZlYzIgZz1yLS41O2cueSo9aVJlc29sdXRpb24ueS9pUmVzb2x1dGlvbi54O3ZlYzIgbD1sZW5zUG9zaXRpb24qLjU7bC55Kj1pUmVzb2x1dGlvbi55L2lSZXNvbHV0aW9uLng7dmVjMyBmPW1McyhnLGwpKjIwLipjb2xvckdhaW4vMjU2LjtpZihhZGl0aW9uYWxTdHJlYWtzKXt2ZWMzIG89dmVjMyguOSwuMiwuMSkscD12ZWMzKC4zLC4xLC45KTtmb3IoZmxvYXQgbj0wLjtuPDEwLjtuKyspZis9ZHJDKGcscG93KHJuZChuKjJlMykqMi44LC4xKSsxLjQxLDAuLG8rbixwK24scm5kKG4qMjAuKSozLisuMi0uNSxsZW5zUG9zaXRpb24pO31pZihzZWNvbmRhcnlHaG9zdHMpe3ZlYzMgbj12ZWMzKDApO24rPXJIeChnLC1sZW5zUG9zaXRpb24qLjI1LGdob3N0U2NhbGUqMS40LHZlYzMoLjI1LC4zNSwwKSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKi4yNSxnaG9zdFNjYWxlKi41LHZlYzMoMSwuNSwuNSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbiouMSxnaG9zdFNjYWxlKjEuNix2ZWMzKDEpKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qMS44LGdob3N0U2NhbGUqMi4sdmVjMygwLC41LC43NSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbioxLjI1LGdob3N0U2NhbGUqLjgsdmVjMygxLDEsLjUpKTtuKz1ySHgoZywtbGVuc1Bvc2l0aW9uKjEuMjUsZ2hvc3RTY2FsZSo1Lix2ZWMzKC41LC41LC4yNSkpO24rPWZwb3coMS4tYWJzKGRpc3RhbmNlKGxlbnNQb3NpdGlvbiouOCxnKS0uNyksLjk4NSkqY29sb3JHYWluLzIxMDAuO2YrPW47fWlmKHN0YXJCdXJzdCl7dnh0Qz1nKy41O3ZlYzQgbj1nZUxEKGcpO2Zsb2F0IG89MS4tY2xhbXAoMC41LDAuLC41KSoyLjtuKz1taXgobixwb3cobioyLix2ZWM0KDIpKSouNSxvKTtmbG9hdCBzPShnLngrZy55KSooMS4vNi4pO3ZlYzIgZD1tYXQyKGNvcyhzKSwtc2luKHMpLHNpbihzKSxjb3MocykpKnZ4dEM7bis9Z2VMUyhkKSoyLjtmKz1jbGFtcChuLnh5eipzdHJCKCkueHl6LC4wMSwxLik7fWk9ZW5hYmxlZD92ZWM0KG1peChmLHZlYzMoMCksb3BhY2l0eSkrdi54eXosdi53KTp2ZWM0KHYpO31cbmAsXG59O1xuXG5leHBvcnQgY2xhc3MgTGVuc0ZsYXJlRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCxcblx0XHRlbmFibGVkID0gdHJ1ZSxcblx0XHRnbGFyZVNpemUgPSAwLjIsXG5cdFx0bGVuc1Bvc2l0aW9uID0gWzAuMDEsIDAuMDFdLFxuXHRcdGlSZXNvbHV0aW9uID0gWzAsIDBdLFxuXHRcdHN0YXJQb2ludHMgPSA2LFxuXHRcdGZsYXJlU2l6ZSA9IDAuMDEsXG5cdFx0ZmxhcmVTcGVlZCA9IDAuMDEsXG5cdFx0ZmxhcmVTaGFwZSA9IDAuMDEsXG5cdFx0YW5pbWF0ZWQgPSB0cnVlLFxuXHRcdGFuYW1vcnBoaWMgPSBmYWxzZSxcblx0XHRjb2xvckdhaW4gPSBuZXcgVEhSRUUuQ29sb3IoMjAsIDIwLCAyMCksXG5cdFx0bGVuc0RpcnRUZXh0dXJlID0gbnVsbCBhcyBUSFJFRS5UZXh0dXJlIHwgbnVsbCxcblx0XHRoYWxvU2NhbGUgPSAwLjUsXG5cdFx0c2Vjb25kYXJ5R2hvc3RzID0gdHJ1ZSxcblx0XHRhZGl0aW9uYWxTdHJlYWtzID0gdHJ1ZSxcblx0XHRnaG9zdFNjYWxlID0gMC4wLFxuXHRcdG9wYWNpdHkgPSAxLjAsXG5cdFx0c3RhckJ1cnN0ID0gZmFsc2UsXG5cdH0gPSB7fSkge1xuXHRcdHN1cGVyKCdMZW5zRmxhcmVFZmZlY3QnLCBMZW5zRmxhcmVTaGFkZXIuZnJhZ21lbnRTaGFkZXIsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHR1bmlmb3JtczogbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm0+KFtcblx0XHRcdFx0WydlbmFibGVkJywgbmV3IFRIUkVFLlVuaWZvcm0oZW5hYmxlZCldLFxuXHRcdFx0XHRbJ2dsYXJlU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGdsYXJlU2l6ZSldLFxuXHRcdFx0XHRbJ2xlbnNQb3NpdGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGxlbnNQb3NpdGlvbildLFxuXHRcdFx0XHRbJ2lUaW1lJywgbmV3IFRIUkVFLlVuaWZvcm0oMCldLFxuXHRcdFx0XHRbJ2lSZXNvbHV0aW9uJywgbmV3IFRIUkVFLlVuaWZvcm0oaVJlc29sdXRpb24pXSxcblx0XHRcdFx0WydzdGFyUG9pbnRzJywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhclBvaW50cyldLFxuXHRcdFx0XHRbJ2ZsYXJlU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGZsYXJlU2l6ZSldLFxuXHRcdFx0XHRbJ2ZsYXJlU3BlZWQnLCBuZXcgVEhSRUUuVW5pZm9ybShmbGFyZVNwZWVkKV0sXG5cdFx0XHRcdFsnZmxhcmVTaGFwZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGZsYXJlU2hhcGUpXSxcblx0XHRcdFx0WydhbmltYXRlZCcsIG5ldyBUSFJFRS5Vbmlmb3JtKGFuaW1hdGVkKV0sXG5cdFx0XHRcdFsnYW5hbW9ycGhpYycsIG5ldyBUSFJFRS5Vbmlmb3JtKGFuYW1vcnBoaWMpXSxcblx0XHRcdFx0Wydjb2xvckdhaW4nLCBuZXcgVEhSRUUuVW5pZm9ybShjb2xvckdhaW4pXSxcblx0XHRcdFx0WydsZW5zRGlydFRleHR1cmUnLCBuZXcgVEhSRUUuVW5pZm9ybShsZW5zRGlydFRleHR1cmUpXSxcblx0XHRcdFx0WydoYWxvU2NhbGUnLCBuZXcgVEhSRUUuVW5pZm9ybShoYWxvU2NhbGUpXSxcblx0XHRcdFx0WydzZWNvbmRhcnlHaG9zdHMnLCBuZXcgVEhSRUUuVW5pZm9ybShzZWNvbmRhcnlHaG9zdHMpXSxcblx0XHRcdFx0WydhZGl0aW9uYWxTdHJlYWtzJywgbmV3IFRIUkVFLlVuaWZvcm0oYWRpdGlvbmFsU3RyZWFrcyldLFxuXHRcdFx0XHRbJ2dob3N0U2NhbGUnLCBuZXcgVEhSRUUuVW5pZm9ybShnaG9zdFNjYWxlKV0sXG5cdFx0XHRcdFsnc3RhckJ1cnN0JywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhckJ1cnN0KV0sXG5cdFx0XHRcdFsnb3BhY2l0eScsIG5ldyBUSFJFRS5Vbmlmb3JtKG9wYWNpdHkpXSxcblx0XHRcdF0pLFxuXHRcdH0pO1xuXHR9XG5cblx0b3ZlcnJpZGUgdXBkYXRlKF9yZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlciwgX2lucHV0QnVmZmVyOiBUSFJFRS5XZWJHTFJlbmRlclRhcmdldCwgZGVsdGFUaW1lOiBudW1iZXIpIHtcblx0XHRjb25zdCBpVGltZSA9IHRoaXMudW5pZm9ybXMuZ2V0KCdpVGltZScpO1xuXHRcdGlmIChpVGltZSkge1xuXHRcdFx0aVRpbWUudmFsdWUgKz0gZGVsdGFUaW1lO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgdHlwZSBMZW5zRmxhcmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBMZW5zRmxhcmVFZmZlY3Q+WzBdICYge1xuXHRwb3NpdGlvbjogTmd0VmVjdG9yMztcblx0Zm9sbG93TW91c2U6IGJvb2xlYW47XG5cdHNtb290aFRpbWU6IG51bWJlcjtcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBMZW5zRmxhcmVPcHRpb25zID0ge1xuXHRwb3NpdGlvbjogbmV3IFRIUkVFLlZlY3RvcjMoLTI1LCA2LCAtNjApLFxuXHRmb2xsb3dNb3VzZTogZmFsc2UsXG5cdHNtb290aFRpbWU6IDAuNyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtbGVucy1mbGFyZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW3BhcmFtZXRlcnNdPVwieyBkaXNwb3NlOiBudWxsIH1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBMZW5zRmxhcmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdHByaXZhdGUgZWZmZWN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3Bvc2l0aW9uJywgJ2ZvbGxvd01vdXNlJywgJ3Ntb290aFRpbWUnXSk7XG5cdHByaXZhdGUgcG9zaXRpb24gPSB2ZWN0b3IzKHRoaXMub3B0aW9ucywgJ3Bvc2l0aW9uJyk7XG5cblx0cHJpdmF0ZSBwcm9qZWN0ZWRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cdHByaXZhdGUgbW91c2UyZCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBMZW5zRmxhcmVFZmZlY3QodGhpcy5lZmZlY3RPcHRpb25zKCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2xlbnNGbGFyZUVmZmVjdCwgd2lkdGgsIGhlaWdodF0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMuc3RvcmUudmlld3BvcnQud2lkdGgoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS52aWV3cG9ydC5oZWlnaHQoKSxcblx0XHRcdF07XG5cdFx0XHRjb25zdCBpUmVzb2x1dGlvbiA9IGxlbnNGbGFyZUVmZmVjdC51bmlmb3Jtcy5nZXQoJ2lSZXNvbHV0aW9uJyk7XG5cdFx0XHRpZiAoaVJlc29sdXRpb24pIHtcblx0XHRcdFx0aVJlc29sdXRpb24udmFsdWUueCA9IHdpZHRoO1xuXHRcdFx0XHRpUmVzb2x1dGlvbi52YWx1ZS55ID0gaGVpZ2h0O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVSZW5kZXIoKHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdF0gPSBbdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRpZiAoIWVmZmVjdCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbeyBmb2xsb3dNb3VzZSwgc21vb3RoVGltZSB9LCBwb3NpdGlvbiwgcG9pbnRlciwgY2FtZXJhLCBzY2VuZSwgcmF5Y2FzdGVyXSA9IFtcblx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdHRoaXMucG9zaXRpb24oKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdC5wb2ludGVyLFxuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyLnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QucmF5Y2FzdGVyLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgdUxlbnNQb3NpdGlvbiA9IGVmZmVjdC51bmlmb3Jtcy5nZXQoJ2xlbnNQb3NpdGlvbicpO1xuXHRcdFx0Y29uc3QgdU9wYWNpdHkgPSBlZmZlY3QudW5pZm9ybXMuZ2V0KCdvcGFjaXR5Jyk7XG5cdFx0XHRpZiAoIXVMZW5zUG9zaXRpb24gfHwgIXVPcGFjaXR5KSByZXR1cm47XG5cblx0XHRcdGxldCB0YXJnZXQgPSAxO1xuXG5cdFx0XHRpZiAoZm9sbG93TW91c2UpIHtcblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS54ID0gcG9pbnRlci54O1xuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnkgPSBwb2ludGVyLnk7XG5cdFx0XHRcdHRhcmdldCA9IDA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnByb2plY3RlZFBvc2l0aW9uLmNvcHkocG9zaXRpb24pLnByb2plY3QoY2FtZXJhKTtcblx0XHRcdFx0aWYgKHRoaXMucHJvamVjdGVkUG9zaXRpb24ueiA+IDEpIHJldHVybjtcblxuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnggPSB0aGlzLnByb2plY3RlZFBvc2l0aW9uLng7XG5cdFx0XHRcdHVMZW5zUG9zaXRpb24udmFsdWUueSA9IHRoaXMucHJvamVjdGVkUG9zaXRpb24ueTtcblxuXHRcdFx0XHR0aGlzLm1vdXNlMmQuc2V0KHRoaXMucHJvamVjdGVkUG9zaXRpb24ueCwgdGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi55KTtcblx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEodGhpcy5tb3VzZTJkLCBjYW1lcmEpO1xuXHRcdFx0XHRjb25zdCBpbnRlcnNlY3RzID0gcmF5Y2FzdGVyLmludGVyc2VjdE9iamVjdHMoc2NlbmUuY2hpbGRyZW4sIHRydWUpO1xuXHRcdFx0XHRjb25zdCB7IG9iamVjdCB9ID0gaW50ZXJzZWN0c1swXSA/PyB7fTtcblx0XHRcdFx0aWYgKG9iamVjdCkge1xuXHRcdFx0XHRcdGlmIChvYmplY3QudXNlckRhdGE/LlsnbGVuc2ZsYXJlJ10gPT09ICduby1vY2NsdXNpb24nKSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQgPSAwO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMudGhyZWU8VEhSRUUuTWVzaDxUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVEhSRUUuU2hhZGVyTWF0ZXJpYWw+PihvYmplY3QsICdpc01lc2gnKSkge1xuXHRcdFx0XHRcdFx0aWYgKG9iamVjdC5tYXRlcmlhbC51bmlmb3Jtcz8uWydfdHJhbnNtaXNzaW9uJ10/LnZhbHVlID4gMC4yKSB7XG5cdFx0XHRcdFx0XHRcdC8vQ2hlY2sgZm9yIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbFxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSAwLjI7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdFx0XHQnX3RyYW5zbWlzc2lvbicgaW4gb2JqZWN0Lm1hdGVyaWFsICYmXG5cdFx0XHRcdFx0XHRcdHR5cGVvZiBvYmplY3QubWF0ZXJpYWwuX3RyYW5zbWlzc2lvbiA9PT0gJ251bWJlcicgJiZcblx0XHRcdFx0XHRcdFx0b2JqZWN0Lm1hdGVyaWFsLl90cmFuc21pc3Npb24gPiAwLjJcblx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHQvL0NoZWNrIGZvciBNZXNoUGh5c2ljYWxNYXRlcmlhbCB3aXRoIHRyYW5zbWlzc2lvbiBzZXR0aW5nXG5cdFx0XHRcdFx0XHRcdHRhcmdldCA9IDAuMjtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAob2JqZWN0Lm1hdGVyaWFsLnRyYW5zcGFyZW50KSB7XG5cdFx0XHRcdFx0XHRcdC8vIENoZWNrIGZvciBPdGhlck1hdGVyaWFscyB3aXRoIHRyYW5zcGFyZW50IHBhcmFtZXRlclxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSBvYmplY3QubWF0ZXJpYWwub3BhY2l0eTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0ZWFzaW5nLmRhbXAodU9wYWNpdHksICd2YWx1ZScsIHRhcmdldCwgc21vb3RoVGltZSwgZGVsdGEpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { LUT3DEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpLUT {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.lut = pick(this.options, 'lut');\n this.tetrahedralInterpolation = pick(this.options, 'tetrahedralInterpolation');\n this.store = injectStore();\n this.effect = computed(() => {\n const { lut, ...options } = this.options();\n return new LUT3DEffect(lut, options);\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [effect, lut, tetrahedralInterpolation, invalidate] = [\n this.effect(),\n this.lut(),\n this.tetrahedralInterpolation(),\n this.store.invalidate(),\n ];\n if (tetrahedralInterpolation)\n effect.tetrahedralInterpolation = tetrahedralInterpolation;\n if (lut)\n effect.lut = lut;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpLUT, isStandalone: true, selector: \"ngtp-lut\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpLUT, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lut',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvbHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBa0I1RCxNQUFNLE9BQU8sT0FBTztJQWFuQjtRQVpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBZ0IsbURBQUMsQ0FBQztRQUUxQixRQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUUxRSxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFcEIsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDLGtEQUFDLENBQUM7UUFHRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLEdBQUc7Z0JBQzNELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO2FBQ3ZCLENBQUM7WUFFRixJQUFJLHdCQUF3QjtnQkFBRSxNQUFNLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7WUFDekYsSUFBSSxHQUFHO2dCQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQzFCLFVBQVUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0EvQlcsT0FBTztrR0FBUCxPQUFPLDhNQVBUOztFQUVULDREQUNTLE9BQU87OzJGQUlMLE9BQU87a0JBVG5CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIExVVDNERWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExVVE9wdGlvbnMge1xuXHRsdXQ6IFRIUkVFLlRleHR1cmU7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHR0ZXRyYWhlZHJhbEludGVycG9sYXRpb24/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWx1dCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW2Rpc3Bvc2VdPVwibnVsbFwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cExVVCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBMVVRPcHRpb25zKTtcblxuXHRwcml2YXRlIGx1dCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHV0Jyk7XG5cdHByaXZhdGUgdGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICd0ZXRyYWhlZHJhbEludGVycG9sYXRpb24nKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgbHV0LCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRyZXR1cm4gbmV3IExVVDNERWZmZWN0KGx1dCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbZWZmZWN0LCBsdXQsIHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiwgaW52YWxpZGF0ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMubHV0KCksXG5cdFx0XHRcdHRoaXMudGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0aWYgKHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbikgZWZmZWN0LnRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiA9IHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbjtcblx0XHRcdGlmIChsdXQpIGVmZmVjdC5sdXQgPSBsdXQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpNoise {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ NoiseEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpNoise, isStandalone: true, selector: \"ngtp-noise\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpNoise, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-noise',\n template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ub2lzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFrQnpGLE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxtREFBQyxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQU5XLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLDRJQVY1RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDdEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIE5vaXNlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgTm9pc2VFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIE5vaXNlRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW5vaXNlJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW5vaXNlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW5vaXNlLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQ09MT1JfRE9ER0UgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTm9pc2Uge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxOb2lzZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBOb2lzZUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, untracked, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n};\nexport class NgtpOutline {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.effectComposer = inject(NgtpEffectComposer);\n this.store = injectStore();\n this.selection = pick(this.options, 'selection');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.patternTexture = pick(this.options, 'patternTexture');\n this.edgeStrength = pick(this.options, 'edgeStrength');\n this.pulseSpeed = pick(this.options, 'pulseSpeed');\n this.visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n this.hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.blur = pick(this.options, 'blur');\n this.xRay = pick(this.options, 'xRay');\n this.restOptions = omit(this.options, [\n 'blendFunction',\n 'patternTexture',\n 'edgeStrength',\n 'pulseSpeed',\n 'visibleEdgeColor',\n 'hiddenEdgeColor',\n 'width',\n 'height',\n 'kernelSize',\n 'blur',\n 'xRay',\n ]);\n this.effect = computed(() => {\n const [scene, camera, blendFunction, patternTexture, edgeStrength, pulseSpeed, visibleEdgeColor, hiddenEdgeColor, width, height, kernelSize, blur, xRay, restOptions,] = [\n this.effectComposer.scene(),\n this.effectComposer.camera(),\n this.blendFunction(),\n this.patternTexture(),\n this.edgeStrength(),\n this.pulseSpeed(),\n this.visibleEdgeColor(),\n this.hiddenEdgeColor(),\n this.width(),\n this.height(),\n this.kernelSize(),\n this.blur(),\n this.xRay(),\n untracked(this.restOptions),\n ];\n return new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...restOptions,\n });\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n effect(() => {\n const [effect, invalidate, selectionLayer] = [\n this.effect(),\n this.store.invalidate(),\n this.selectionLayer(),\n ];\n effect.selectionLayer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n // NOTE: we run this effect if declarative NgtSelection is not enabled\n if (!this.selectionApi) {\n // NOTE: if NgtSelection is not used and selection is not provided, we throw\n if (this.selection() === undefined) {\n throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n }\n const cleanup = this.handleSelectionChangeEffect(this.selection, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n return;\n }\n // NOTE: we run this effect if declarative NgtSelection is enabled\n const selectionEnabled = this.selectionApi.enabled();\n if (!selectionEnabled)\n return;\n const cleanup = this.handleSelectionChangeEffect(this.selectionApi.selected, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n });\n }\n handleSelectionChangeEffect(selected, _effect, _invalidate) {\n const selection = selected();\n if (!selection || selection.length === 0)\n return;\n const [effect, invalidate] = [_effect(), _invalidate()];\n const objects = [];\n for (const el of selection) {\n const obj = resolveRef(el);\n if (!obj)\n continue;\n objects.push(obj);\n }\n if (objects.length === 0)\n return;\n effect.selection.set(objects);\n invalidate();\n return () => {\n effect.selection.clear();\n invalidate();\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpOutline, isStandalone: true, selector: \"ngtp-outline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpOutline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-outline',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL291dGxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3hELE1BQU0sY0FBYyxHQUF1QjtJQUMxQyxjQUFjLEVBQUUsRUFBRTtDQUNsQixDQUFDO0FBV0YsTUFBTSxPQUFPLFdBQVc7SUFvRnZCO1FBbkZBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRXBFLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDNUMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRXRCLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FB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VyxXQUFXO2tHQUFYLFdBQVcsa05BUGI7O0VBRVQsNERBR1MsT0FBTzs7MkZBRUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0QXJncywgTmd0U2VsZWN0aW9uQXBpLCBvbWl0LCBwaWNrLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBPdXRsaW5lRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgTmd0cE91dGxpbmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBPdXRsaW5lRWZmZWN0PlsyXSAmIHtcblx0c2VsZWN0aW9uPzogQXJyYXk8VEhSRUUuT2JqZWN0M0QgfCBFbGVtZW50UmVmPFRIUkVFLk9iamVjdDNEPj47XG5cdHNlbGVjdGlvbkxheWVyOiBudW1iZXI7XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0cE91dGxpbmVPcHRpb25zID0ge1xuXHRzZWxlY3Rpb25MYXllcjogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW91dGxpbmUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cE91dGxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBzZWxlY3Rpb25BcGkgPSBpbmplY3QoTmd0U2VsZWN0aW9uQXBpLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgc2VsZWN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb24nKTtcblx0cHJpdmF0ZSBzZWxlY3Rpb25MYXllciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2VsZWN0aW9uTGF5ZXInKTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBwYXR0ZXJuVGV4dHVyZSA9IHBpY2sodGhpcy5vcHRpb25zLCAncGF0dGVyblRleHR1cmUnKTtcblx0cHJpdmF0ZSBlZGdlU3RyZW5ndGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VkZ2VTdHJlbmd0aCcpO1xuXHRwcml2YXRlIHB1bHNlU3BlZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3B1bHNlU3BlZWQnKTtcblx0cHJpdmF0ZSB2aXNpYmxlRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICd2aXNpYmxlRWRnZUNvbG9yJyk7XG5cdHByaXZhdGUgaGlkZGVuRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdoaWRkZW5FZGdlQ29sb3InKTtcblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSBibHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdibHVyJyk7XG5cdHByaXZhdGUgeFJheSA9IHBpY2sodGhpcy5vcHRpb25zLCAneFJheScpO1xuXHRwcml2YXRlIHJlc3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnYmxlbmRGdW5jdGlvbicsXG5cdFx0J3BhdHRlcm5UZXh0dXJlJyxcblx0XHQnZWRnZVN0cmVuZ3RoJyxcblx0XHQncHVsc2VTcGVlZCcsXG5cdFx0J3Zpc2libGVFZGdlQ29sb3InLFxuXHRcdCdoaWRkZW5FZGdlQ29sb3InLFxuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2tlcm5lbFNpemUnLFxuXHRcdCdibHVyJyxcblx0XHQneFJheScsXG5cdF0pO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHRyZXN0T3B0aW9ucyxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5zY2VuZSgpLFxuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSxcblx0XHRcdHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0dGhpcy5wYXR0ZXJuVGV4dHVyZSgpLFxuXHRcdFx0dGhpcy5lZGdlU3RyZW5ndGgoKSxcblx0XHRcdHRoaXMucHVsc2VTcGVlZCgpLFxuXHRcdFx0dGhpcy52aXNpYmxlRWRnZUNvbG9yKCksXG5cdFx0XHR0aGlzLmhpZGRlbkVkZ2VDb2xvcigpLFxuXHRcdFx0dGhpcy53aWR0aCgpLFxuXHRcdFx0dGhpcy5oZWlnaHQoKSxcblx0XHRcdHRoaXMua2VybmVsU2l6ZSgpLFxuXHRcdFx0dGhpcy5ibHVyKCksXG5cdFx0XHR0aGlzLnhSYXkoKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnJlc3RPcHRpb25zKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIG5ldyBPdXRsaW5lRWZmZWN0KHNjZW5lLCBjYW1lcmEsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHQuLi5yZXN0T3B0aW9ucyxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZSwgc2VsZWN0aW9uTGF5ZXJdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25MYXllcigpLFxuXHRcdFx0XTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb25MYXllciA9IHNlbGVjdGlvbkxheWVyO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdC8vIE5PVEU6IHdlIHJ1biB0aGlzIGVmZmVjdCBpZiBkZWNsYXJhdGl2ZSBOZ3RTZWxlY3Rpb24gaXMgbm90IGVuYWJsZWRcblx0XHRcdGlmICghdGhpcy5zZWxlY3Rpb25BcGkpIHtcblx0XHRcdFx0Ly8gTk9URTogaWYgTmd0U2VsZWN0aW9uIGlzIG5vdCB1c2VkIGFuZCBzZWxlY3Rpb24gaXMgbm90IHByb3ZpZGVkLCB3ZSB0aHJvd1xuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3Rpb24oKSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdbTkdUIFBvc3RQcm9jZXNzaW5nXTogbmd0cC1vdXRsaW5lIHJlcXVpcmVzIHNlbGVjdGlvbiBpbnB1dCBvciB1c2UgTmd0U2VsZWN0aW9uJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRWZmZWN0KHRoaXMuc2VsZWN0aW9uLCB0aGlzLmVmZmVjdCwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKTtcblxuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRcdGNsZWFudXA/LigpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBOT1RFOiB3ZSBydW4gdGhpcyBlZmZlY3QgaWYgZGVjbGFyYXRpdmUgTmd0U2VsZWN0aW9uIGlzIGVuYWJsZWRcblx0XHRcdGNvbnN0IHNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLnNlbGVjdGlvbkFwaS5lbmFibGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGlvbkVuYWJsZWQpIHJldHVybjtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdChcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25BcGkuc2VsZWN0ZWQsXG5cdFx0XHRcdHRoaXMuZWZmZWN0LFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUsXG5cdFx0XHQpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Y2xlYW51cD8uKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRWZmZWN0KFxuXHRcdHNlbGVjdGVkOiAoKSA9PiBBcnJheTxUSFJFRS5PYmplY3QzRCB8IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+PiB8IHVuZGVmaW5lZCxcblx0XHRfZWZmZWN0OiAoKSA9PiBPdXRsaW5lRWZmZWN0LFxuXHRcdF9pbnZhbGlkYXRlOiAoKSA9PiAoKSA9PiB2b2lkLFxuXHQpIHtcblx0XHRjb25zdCBzZWxlY3Rpb24gPSBzZWxlY3RlZCgpO1xuXHRcdGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5sZW5ndGggPT09IDApIHJldHVybjtcblxuXHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW19lZmZlY3QoKSwgX2ludmFsaWRhdGUoKV07XG5cblx0XHRjb25zdCBvYmplY3RzOiBUSFJFRS5PYmplY3QzRFtdID0gW107XG5cdFx0Zm9yIChjb25zdCBlbCBvZiBzZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IG9iaiA9IHJlc29sdmVSZWYoZWwpO1xuXHRcdFx0aWYgKCFvYmopIGNvbnRpbnVlO1xuXHRcdFx0b2JqZWN0cy5wdXNoKG9iaik7XG5cdFx0fVxuXG5cdFx0aWYgKG9iamVjdHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cblx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChvYmplY3RzKTtcblx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH07XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpPixelation {\n constructor() {\n this.options = input({ granularity: 5 }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ granularity: 5 }) }] : [{ transform: mergeInputs({ granularity: 5 }) }]));\n this.granularity = pick(this.options, 'granularity');\n this.effect = computed(() => new PixelationEffect(this.granularity()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpPixelation, isStandalone: true, selector: \"ngtp-pixelation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpPixelation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-pixelation',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3BpeGVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZWxELE1BQU0sT0FBTyxjQUFjO0lBTTFCO1FBTEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQXVCLDJDQUFJLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBNUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBQ2pHLGdCQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxrREFBQyxDQUFDO1FBRzNFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQVhXLGNBQWM7a0dBQWQsY0FBYyxxTkFQaEI7O0VBRVQsNERBR1MsT0FBTzs7MkZBRUwsY0FBYztrQkFUMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IFBpeGVsYXRpb25FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxhdGlvbk9wdGlvbnMge1xuXHRncmFudWxhcml0eTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXBpeGVsYXRpb24nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFBpeGVsYXRpb24ge1xuXHRvcHRpb25zID0gaW5wdXQoeyBncmFudWxhcml0eTogNSB9IGFzIFBpeGVsYXRpb25PcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBncmFudWxhcml0eTogNSB9KSB9KTtcblx0cHJpdmF0ZSBncmFudWxhcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZ3JhbnVsYXJpdHknKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IFBpeGVsYXRpb25FZmZlY3QodGhpcy5ncmFudWxhcml0eSgpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst defaultOptions = {\n density: 1.25,\n};\nexport class NgtpScanline {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ScanlineEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpScanline, isStandalone: true, selector: \"ngtp-scanline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpScanline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-scanline',\n template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbmxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zY2FubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBSXpGLE1BQU0sY0FBYyxHQUFpRDtJQUNwRSxPQUFPLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFnQkYsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBeEMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUMsQ0FBQztRQUNsRSxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FOVyxZQUFZO2tHQUFaLFlBQVksc01BRmIsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0SUFWeEU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixZQUFZO2tCQWR4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDakYsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ2xGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBTY2FubGluZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFNjYW5saW5lRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTY2FubGluZUVmZmVjdD5bMF0+PjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9taXQ8U2NhbmxpbmVFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+ID0ge1xuXHRkZW5zaXR5OiAxLjI1LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zY2FubGluZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zY2FubGluZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zY2FubGluZS1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk9WRVJMQVkgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2NhbmxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFNjYW5saW5lRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","// const addLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.enable(effect.selection.layer)\n// const removeLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.disable(effect.selection.layer)\nimport { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, SelectiveBloomEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n inverted: false,\n ignoreBackground: false,\n};\nexport class NgtpSelectiveBloom {\n constructor() {\n this.lights = input.required(...(ngDevMode ? [{ debugName: \"lights\" }] : []));\n this.selection = input([], ...(ngDevMode ? [{ debugName: \"selection\" }] : []));\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.blendFunction = pick(this.options, 'blendFunction');\n this.luminanceThreshold = pick(this.options, 'luminanceThreshold');\n this.luminanceSmoothing = pick(this.options, 'luminanceSmoothing');\n this.mipmapBlur = pick(this.options, 'mipmapBlur');\n this.intensity = pick(this.options, 'intensity');\n this.radius = pick(this.options, 'radius');\n this.levels = pick(this.options, 'levels');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.resolutionX = pick(this.options, 'resolutionX');\n this.resolutionY = pick(this.options, 'resolutionY');\n this.inverted = pick(this.options, 'inverted');\n this.ignoreBackground = pick(this.options, 'ignoreBackground');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.resolvedLights = computed(() => this.lights().map((light) => resolveRef(light)), ...(ngDevMode ? [{ debugName: \"resolvedLights\" }] : []));\n this.resolvedSelected = computed(() => {\n const selection = this.selection();\n if (!selection)\n return [];\n const array = Array.isArray(selection) ? selection : [selection];\n return array.map((selected) => resolveRef(selected));\n }, ...(ngDevMode ? [{ debugName: \"resolvedSelected\" }] : []));\n this.resolvedNgtSelected = computed(() => {\n if (!this.selectionApi || !this.selectionApi.enabled)\n return [];\n return this.selectionApi.selected().map((selected) => resolveRef(selected));\n }, ...(ngDevMode ? [{ debugName: \"resolvedNgtSelected\" }] : []));\n this.effect = computed(() => {\n const effect = new SelectiveBloomEffect(this.effectComposer.scene(), this.effectComposer.camera(), {\n blendFunction: this.blendFunction() || BlendFunction.ADD,\n luminanceThreshold: this.luminanceThreshold(),\n luminanceSmoothing: this.luminanceSmoothing(),\n mipmapBlur: this.mipmapBlur(),\n intensity: this.intensity(),\n radius: this.radius(),\n levels: this.levels(),\n kernelSize: this.kernelSize(),\n resolutionScale: this.resolutionScale(),\n width: this.width(),\n height: this.height(),\n resolutionX: this.resolutionX(),\n resolutionY: this.resolutionY(),\n });\n effect.inverted = this.inverted();\n effect.ignoreBackground = this.ignoreBackground();\n return effect;\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n // skip input selection altogether if NgtSelection is used\n if (this.selectionApi)\n return;\n const selection = this.resolvedSelected();\n if (!selection.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selection);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n effect(() => {\n const [selectionLayer, invalidate, effect] = [\n this.selectionLayer(),\n this.store.invalidate(),\n this.effect(),\n ];\n effect.selection.layer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n const lights = this.resolvedLights();\n if (lights.length <= 0)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n lights.forEach((light) => light && this.addLight(effect, light));\n invalidate();\n onCleanup(() => {\n lights.forEach((light) => light && this.removeLight(effect, light));\n invalidate();\n });\n });\n effect((onCleanup) => {\n const selected = this.resolvedNgtSelected();\n if (!selected.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selected);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n }\n addLight(effect, light) {\n light.layers.enable(effect.selection.layer);\n }\n removeLight(effect, light) {\n light.layers.disable(effect.selection.layer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpSelectiveBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpSelectiveBloom, isStandalone: true, selector: \"ngtp-selective-bloom\", inputs: { lights: { classPropertyName: \"lights\", publicName: \"lights\", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: \"selection\", publicName: \"selection\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpSelectiveBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-selective-bloom',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aXZlLWJsb29tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvc2VsZWN0aXZlLWJsb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtIQUFrSDtBQUNsSCxzSEFBc0g7QUFFdEgsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFReEQsTUFBTSxjQUFjLEdBQTBCO0lBQzdDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsZ0JBQWdCLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBV0YsTUFBTSxPQUFPLGtCQUFrQjtJQWtFOUI7UUFqRUEsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLGlEQUErRCxDQUFDO1FBQ3ZGLGNBQVMsR0FBRyxLQUFLLENBS2YsRUFBRSxxREFBQyxDQUFDO1FBQ04sWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLDJDQUFJLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQXhDLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFDLENBQUM7UUFFcEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8s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USxDQUFDLE1BQTRCLEVBQUUsS0FBcUI7UUFDbkUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQTRCLEVBQUUsS0FBcUI7UUFDdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQWpJVyxrQkFBa0I7a0dBQWxCLGtCQUFrQix3ZEFQcEI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsa0JBQWtCO2tCQVQ5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjb25zdCBhZGRMaWdodCA9IChsaWdodDogT2JqZWN0M0QsIGVmZmVjdDogU2VsZWN0aXZlQmxvb21FZmZlY3QpID0+IGxpZ2h0LmxheWVycy5lbmFibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcilcbi8vIGNvbnN0IHJlbW92ZUxpZ2h0ID0gKGxpZ2h0OiBPYmplY3QzRCwgZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCkgPT4gbGlnaHQubGF5ZXJzLmRpc2FibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcilcblxuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0QXJncywgTmd0U2VsZWN0aW9uQXBpLCBwaWNrLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBCbG9vbUVmZmVjdE9wdGlvbnMsIFNlbGVjdGl2ZUJsb29tRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0aXZlQmxvb21PcHRpb25zID0gQmxvb21FZmZlY3RPcHRpb25zICYge1xuXHRzZWxlY3Rpb25MYXllcjogbnVtYmVyO1xuXHRpbnZlcnRlZDogYm9vbGVhbjtcblx0aWdub3JlQmFja2dyb3VuZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBTZWxlY3RpdmVCbG9vbU9wdGlvbnMgPSB7XG5cdHNlbGVjdGlvbkxheWVyOiAxMCxcblx0aW52ZXJ0ZWQ6IGZhbHNlLFxuXHRpZ25vcmVCYWNrZ3JvdW5kOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2VsZWN0aXZlLWJsb29tJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiBbZGlzcG9zZV09XCJudWxsXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2VsZWN0aXZlQmxvb20ge1xuXHRsaWdodHMgPSBpbnB1dC5yZXF1aXJlZDxUSFJFRS5PYmplY3QzRFtdIHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5bXT4oKTtcblx0c2VsZWN0aW9uID0gaW5wdXQ8XG5cdFx0fCBUSFJFRS5PYmplY3QzRFxuXHRcdHwgVEhSRUUuT2JqZWN0M0RbXVxuXHRcdHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5cblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0QgfCB1bmRlZmluZWQ+W11cblx0PihbXSk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBsdW1pbmFuY2VUaHJlc2hvbGQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2x1bWluYW5jZVRocmVzaG9sZCcpO1xuXHRwcml2YXRlIGx1bWluYW5jZVNtb290aGluZyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHVtaW5hbmNlU21vb3RoaW5nJyk7XG5cdHByaXZhdGUgbWlwbWFwQmx1ciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWlwbWFwQmx1cicpO1xuXHRwcml2YXRlIGludGVuc2l0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnaW50ZW5zaXR5Jyk7XG5cdHByaXZhdGUgcmFkaXVzID0gcGljayh0aGlzLm9wdGlvbnMsICdyYWRpdXMnKTtcblx0cHJpdmF0ZSBsZXZlbHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xldmVscycpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIHdpZHRoID0gcGljayh0aGlzLm9wdGlvbnMsICd3aWR0aCcpO1xuXHRwcml2YXRlIGhlaWdodCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaGVpZ2h0Jyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblggPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25YJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25ZJyk7XG5cdHByaXZhdGUgaW52ZXJ0ZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ludmVydGVkJyk7XG5cdHByaXZhdGUgaWdub3JlQmFja2dyb3VuZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaWdub3JlQmFja2dyb3VuZCcpO1xuXHRwcml2YXRlIHNlbGVjdGlvbkxheWVyID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb25MYXllcicpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc2VsZWN0aW9uQXBpID0gaW5qZWN0KE5ndFNlbGVjdGlvbkFwaSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRwcml2YXRlIHJlc29sdmVkTGlnaHRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5saWdodHMoKS5tYXAoKGxpZ2h0KSA9PiByZXNvbHZlUmVmKGxpZ2h0KSkpO1xuXHRwcml2YXRlIHJlc29sdmVkU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTtcblx0XHRpZiAoIXNlbGVjdGlvbikgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGFycmF5ID0gQXJyYXkuaXNBcnJheShzZWxlY3Rpb24pID8gc2VsZWN0aW9uIDogW3NlbGVjdGlvbl07XG5cdFx0cmV0dXJuIGFycmF5Lm1hcCgoc2VsZWN0ZWQpID0+IHJlc29sdmVSZWYoc2VsZWN0ZWQpKTtcblx0fSk7XG5cdHByaXZhdGUgcmVzb2x2ZWROZ3RTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uQXBpIHx8ICF0aGlzLnNlbGVjdGlvbkFwaS5lbmFibGVkKSByZXR1cm4gW107XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uQXBpLnNlbGVjdGVkKCkubWFwKChzZWxlY3RlZCkgPT4gcmVzb2x2ZVJlZihzZWxlY3RlZCkpO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVmZmVjdCA9IG5ldyBTZWxlY3RpdmVCbG9vbUVmZmVjdCh0aGlzLmVmZmVjdENvbXBvc2VyLnNjZW5lKCksIHRoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHtcblx0XHRcdGJsZW5kRnVuY3Rpb246IHRoaXMuYmxlbmRGdW5jdGlvbigpIHx8IEJsZW5kRnVuY3Rpb24uQURELFxuXHRcdFx0bHVtaW5hbmNlVGhyZXNob2xkOiB0aGlzLmx1bWluYW5jZVRocmVzaG9sZCgpLFxuXHRcdFx0bHVtaW5hbmNlU21vb3RoaW5nOiB0aGlzLmx1bWluYW5jZVNtb290aGluZygpLFxuXHRcdFx0bWlwbWFwQmx1cjogdGhpcy5taXBtYXBCbHVyKCksXG5cdFx0XHRpbnRlbnNpdHk6IHRoaXMuaW50ZW5zaXR5KCksXG5cdFx0XHRyYWRpdXM6IHRoaXMucmFkaXVzKCksXG5cdFx0XHRsZXZlbHM6IHRoaXMubGV2ZWxzKCksXG5cdFx0XHRrZXJuZWxTaXplOiB0aGlzLmtlcm5lbFNpemUoKSxcblx0XHRcdHJlc29sdXRpb25TY2FsZTogdGhpcy5yZXNvbHV0aW9uU2NhbGUoKSxcblx0XHRcdHdpZHRoOiB0aGlzLndpZHRoKCksXG5cdFx0XHRoZWlnaHQ6IHRoaXMuaGVpZ2h0KCksXG5cdFx0XHRyZXNvbHV0aW9uWDogdGhpcy5yZXNvbHV0aW9uWCgpLFxuXHRcdFx0cmVzb2x1dGlvblk6IHRoaXMucmVzb2x1dGlvblkoKSxcblx0XHR9KTtcblxuXHRcdGVmZmVjdC5pbnZlcnRlZCA9IHRoaXMuaW52ZXJ0ZWQoKTtcblx0XHRlZmZlY3QuaWdub3JlQmFja2dyb3VuZCA9IHRoaXMuaWdub3JlQmFja2dyb3VuZCgpO1xuXG5cdFx0cmV0dXJuIGVmZmVjdDtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdC8vIHNraXAgaW5wdXQgc2VsZWN0aW9uIGFsdG9nZXRoZXIgaWYgTmd0U2VsZWN0aW9uIGlzIHVzZWRcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbkFwaSkgcmV0dXJuO1xuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uID0gdGhpcy5yZXNvbHZlZFNlbGVjdGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGlvbi5sZW5ndGgpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChzZWxlY3Rpb24gYXMgVEhSRUUuT2JqZWN0M0RbXSk7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGVmZmVjdC5zZWxlY3Rpb24uY2xlYXIoKTtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW3NlbGVjdGlvbkxheWVyLCBpbnZhbGlkYXRlLCBlZmZlY3RdID0gW1xuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkxheWVyKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb24ubGF5ZXIgPSBzZWxlY3Rpb25MYXllcjtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBsaWdodHMgPSB0aGlzLnJlc29sdmVkTGlnaHRzKCk7XG5cdFx0XHRpZiAobGlnaHRzLmxlbmd0aCA8PSAwKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW3RoaXMuZWZmZWN0KCksIHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLCB0aGlzLnNlbGVjdGlvbkxheWVyKCldO1xuXG5cdFx0XHRsaWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0ICYmIHRoaXMuYWRkTGlnaHQoZWZmZWN0LCBsaWdodCkpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRsaWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0ICYmIHRoaXMucmVtb3ZlTGlnaHQoZWZmZWN0LCBsaWdodCkpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMucmVzb2x2ZWROZ3RTZWxlY3RlZCgpO1xuXHRcdFx0aWYgKCFzZWxlY3RlZC5sZW5ndGgpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChzZWxlY3RlZCBhcyBUSFJFRS5PYmplY3QzRFtdKTtcblx0XHRcdGludmFsaWRhdGUoKTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYWRkTGlnaHQoZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCwgbGlnaHQ6IFRIUkVFLk9iamVjdDNEKSB7XG5cdFx0bGlnaHQubGF5ZXJzLmVuYWJsZShlZmZlY3Quc2VsZWN0aW9uLmxheWVyKTtcblx0fVxuXG5cdHByaXZhdGUgcmVtb3ZlTGlnaHQoZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCwgbGlnaHQ6IFRIUkVFLk9iamVjdDNEKSB7XG5cdFx0bGlnaHQubGF5ZXJzLmRpc2FibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcik7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSepia {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SepiaEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpSepia, isStandalone: true, selector: \"ngtp-sepia\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpSepia, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-sepia',\n template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zZXBpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLG1EQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLGtVQVhYOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFickIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTZXBpYUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTZXBpYUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgU2VwaWFFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2VwaWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc2VwaWEtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtc2VwaWEtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNlcGlhIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U2VwaWFFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgU2VwaWFFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpShockWave {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ShockWaveEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpShockWave, isStandalone: true, selector: \"ngtp-shock-wave\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpShockWave, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-shock-wave',\n template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvY2std2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3Nob2NrLXdhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxtREFBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx1VUFYZjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBYnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTaG9ja1dhdmVFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgU2hvY2tXYXZlRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTaG9ja1dhdmVFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2hvY2std2F2ZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zaG9jay13YXZlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXNob2NrLXdhdmUtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNob2NrV2F2ZSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFNob2NrV2F2ZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTaG9ja1dhdmVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSMAA {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SMAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpSMAA, isStandalone: true, selector: \"ngtp-smaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpSMAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-smaa',\n template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3NtYWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxtREFBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQU5XLFFBQVE7a0dBQVIsUUFBUSxpVUFYVjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBYnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgU01BQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTTUFBRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTTUFBRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXNtYWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc01BQS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zTUFBLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBTTUFBIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U01BQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTTUFBRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpTiltShift {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ TiltShiftEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpTiltShift, isStandalone: true, selector: \"ngtp-tilt-shift\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpTiltShift, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift',\n template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3RpbHQtc2hpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBa0J6RixNQUFNLE9BQU8sYUFBYTtJQUl6QjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBbUQsbURBQUMsQ0FBQztRQUMzRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FOVyxhQUFhO2tHQUFiLGFBQWEsd01BRmQsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyw0SUFWcEU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixhQUFhO2tCQWR6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIFRpbHRTaGlmdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFRpbHRTaGlmdEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVGlsdFNoaWZ0RWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXRpbHQtc2hpZnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdGlsdC1zaGlmdC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10aWx0LXNoaWZ0LWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQUREIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRpbHRTaGlmdCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFRpbHRTaGlmdEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBUaWx0U2hpZnRFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst TiltShiftShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\nexport class TiltShift2Effect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, blur = 0.15, // [0, 1], can go beyond 1 for extra\n taper = 0.5, // [0, 1], can go beyond 1 for extra\n start = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n end = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n samples = 10.0, // number of blur samples\n direction = [1, 1], // direction of blur\n } = {}) {\n super('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([\n ['blur', new THREE.Uniform(blur)],\n ['taper', new THREE.Uniform(taper)],\n ['start', new THREE.Uniform(start)],\n ['end', new THREE.Uniform(end)],\n ['samples', new THREE.Uniform(samples)],\n ['direction', new THREE.Uniform(direction)],\n ]),\n });\n }\n}\nextend({ TiltShift2Effect });\nexport class NgtpTiltShift2 {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpTiltShift2, isStandalone: true, selector: \"ngtp-tilt-shift2\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpTiltShift2, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift2',\n template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC0yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdGlsdC1zaGlmdC0yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFekYsTUFBTSxlQUFlLEdBQUc7SUFDdkIsY0FBYyxFQUFFLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdEckM7Q0FDSixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLE1BQU07SUFDM0MsWUFBWSxFQUNYLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUNwQyxJQUFJLEdBQUcsSUFBSSxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsR0FBRyxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzFELEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBc0M7SUFDeEQsT0FBTyxHQUFHLElBQUksRUFBRSx5QkFBeUI7SUFDekMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtNQUN4QyxHQUFHLEVBQUU7UUFDTCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRTtZQUN4RCxhQUFhO1lBQ2IsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBMkM7Z0JBQzNELENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRDtBQUlELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWdCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQW9ELG1EQUFDLENBQUM7UUFDNUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN0RDs4R0FIWSxjQUFjO2tHQUFkLGNBQWMseU1BRmYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyw0SUFWdkU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixjQUFjO2tCQWQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCwgRWZmZWN0QXR0cmlidXRlIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgVGlsdFNoaWZ0U2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcblxuICAgIC8vIG9yaWdpbmFsIHNoYWRlciBieSBFdmFuIFdhbGxhY2VcblxuICAgICNkZWZpbmUgTUFYX0lURVJBVElPTlMgMTAwXG5cbiAgICB1bmlmb3JtIGZsb2F0IGJsdXI7XG4gICAgdW5pZm9ybSBmbG9hdCB0YXBlcjtcbiAgICB1bmlmb3JtIHZlYzIgc3RhcnQ7XG4gICAgdW5pZm9ybSB2ZWMyIGVuZDtcbiAgICB1bmlmb3JtIHZlYzIgZGlyZWN0aW9uO1xuICAgIHVuaWZvcm0gaW50IHNhbXBsZXM7XG5cbiAgICBmbG9hdCByYW5kb20odmVjMyBzY2FsZSwgZmxvYXQgc2VlZCkge1xuICAgICAgICAvKiB1c2UgdGhlIGZyYWdtZW50IHBvc2l0aW9uIGZvciBhIGRpZmZlcmVudCBzZWVkIHBlci1waXhlbCAqL1xuICAgICAgICByZXR1cm4gZnJhY3Qoc2luKGRvdChnbF9GcmFnQ29vcmQueHl6ICsgc2VlZCwgc2NhbGUpKSAqIDQzNzU4LjU0NTMgKyBzZWVkKTtcbiAgICB9XG5cbiAgICB2b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgICAgIHZlYzQgY29sb3IgPSB2ZWM0KDAuMCk7XG4gICAgICAgIGZsb2F0IHRvdGFsID0gMC4wO1xuICAgICAgICB2ZWMyIHN0YXJ0UGl4ZWwgPSB2ZWMyKHN0YXJ0LnggKiByZXNvbHV0aW9uLngsIHN0YXJ0LnkgKiByZXNvbHV0aW9uLnkpO1xuICAgICAgICB2ZWMyIGVuZFBpeGVsID0gdmVjMihlbmQueCAqIHJlc29sdXRpb24ueCwgZW5kLnkgKiByZXNvbHV0aW9uLnkpO1xuICAgICAgICBmbG9hdCBmX3NhbXBsZXMgPSBmbG9hdChzYW1wbGVzKTtcbiAgICAgICAgZmxvYXQgaGFsZl9zYW1wbGVzID0gZl9zYW1wbGVzIC8gMi4wO1xuXG4gICAgICAgIC8vIHVzZSBzY3JlZW4gZGlhZ29uYWwgdG8gbm9ybWFsaXplIGJsdXIgcmFkaWlcbiAgICAgICAgZmxvYXQgbWF4U2NyZWVuRGlzdGFuY2UgPSBkaXN0YW5jZSh2ZWMyKDAuMCksIHJlc29sdXRpb24pOyAvLyBkaWFnb25hbCBkaXN0YW5jZVxuICAgICAgICBmbG9hdCBncmFkaWVudFJhZGl1cyA9IHRhcGVyICogKG1heFNjcmVlbkRpc3RhbmNlKTtcbiAgICAgICAgZmxvYXQgYmx1clJhZGl1cyA9IGJsdXIgKiAobWF4U2NyZWVuRGlzdGFuY2UgLyAxNi4wKTtcblxuICAgICAgICAvKiByYW5kb21pemUgdGhlIGxvb2t1cCB2YWx1ZXMgdG8gaGlkZSB0aGUgZml4ZWQgbnVtYmVyIG9mIHNhbXBsZXMgKi9cbiAgICAgICAgZmxvYXQgb2Zmc2V0ID0gcmFuZG9tKHZlYzMoMTIuOTg5OCwgNzguMjMzLCAxNTEuNzE4MiksIDAuMCk7XG4gICAgICAgIHZlYzIgbm9ybWFsID0gbm9ybWFsaXplKHZlYzIoc3RhcnRQaXhlbC55IC0gZW5kUGl4ZWwueSwgZW5kUGl4ZWwueCAtIHN0YXJ0UGl4ZWwueCkpO1xuICAgICAgICBmbG9hdCByYWRpdXMgPSBzbW9vdGhzdGVwKDAuMCwgMS4wLCBhYnMoZG90KHV2ICogcmVzb2x1dGlvbiAtIHN0YXJ0UGl4ZWwsIG5vcm1hbCkpIC8gZ3JhZGllbnRSYWRpdXMpICogYmx1clJhZGl1cztcblxuICAgICAgICAjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG4gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IE1BWF9JVEVSQVRJT05TOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID49IHNhbXBsZXMpIHsgYnJlYWs7IH0gLy8gcmV0dXJuIGVhcmx5IGlmIG92ZXIgc2FtcGxlIGNvdW50XG4gICAgICAgICAgICBmbG9hdCBmX2kgPSBmbG9hdChpKTtcbiAgICAgICAgICAgIGZsb2F0IHNfaSA9IC1oYWxmX3NhbXBsZXMgKyBmX2k7XG4gICAgICAgICAgICBmbG9hdCBwZXJjZW50ID0gKHNfaSArIG9mZnNldCAtIDAuNSkgLyBoYWxmX3NhbXBsZXM7XG4gICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSAxLjAgLSBhYnMocGVyY2VudCk7XG4gICAgICAgICAgICB2ZWM0IHNhbXBsZV9pID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCB1diArIG5vcm1hbGl6ZShkaXJlY3Rpb24pIC8gcmVzb2x1dGlvbiAqIHBlcmNlbnQgKiByYWRpdXMpO1xuICAgICAgICAgICAgLyogc3dpdGNoIHRvIHByZS1tdWx0aXBsaWVkIGFscGhhIHRvIGNvcnJlY3RseSBibHVyIHRyYW5zcGFyZW50IGltYWdlcyAqL1xuICAgICAgICAgICAgc2FtcGxlX2kucmdiICo9IHNhbXBsZV9pLmE7XG4gICAgICAgICAgICBjb2xvciArPSBzYW1wbGVfaSAqIHdlaWdodDtcbiAgICAgICAgICAgIHRvdGFsICs9IHdlaWdodDtcbiAgICAgICAgfVxuICAgICAgICAjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXG4gICAgICAgIG91dHB1dENvbG9yID0gY29sb3IgLyB0b3RhbDtcblxuICAgICAgICAvKiBzd2l0Y2ggYmFjayBmcm9tIHByZS1tdWx0aXBsaWVkIGFscGhhICovXG4gICAgICAgIG91dHB1dENvbG9yLnJnYiAvPSBvdXRwdXRDb2xvci5hICsgMC4wMDAwMTtcbiAgICB9XG4gICAgYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBUaWx0U2hpZnQyRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCxcblx0XHRibHVyID0gMC4xNSwgLy8gWzAsIDFdLCBjYW4gZ28gYmV5b25kIDEgZm9yIGV4dHJhXG5cdFx0dGFwZXIgPSAwLjUsIC8vIFswLCAxXSwgY2FuIGdvIGJleW9uZCAxIGZvciBleHRyYVxuXHRcdHN0YXJ0ID0gWzAuNSwgMC4wXSwgLy8gWzAsMV0gcGVyY2VudGFnZSB4LHkgb2Ygc2NyZWVuc3BhY2Vcblx0XHRlbmQgPSBbMC41LCAxLjBdLCAvLyBbMCwxXSBwZXJjZW50YWdlIHgseSBvZiBzY3JlZW5zcGFjZVxuXHRcdHNhbXBsZXMgPSAxMC4wLCAvLyBudW1iZXIgb2YgYmx1ciBzYW1wbGVzXG5cdFx0ZGlyZWN0aW9uID0gWzEsIDFdLCAvLyBkaXJlY3Rpb24gb2YgYmx1clxuXHR9ID0ge30pIHtcblx0XHRzdXBlcignVGlsdFNoaWZ0RWZmZWN0JywgVGlsdFNoaWZ0U2hhZGVyLmZyYWdtZW50U2hhZGVyLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0YXR0cmlidXRlczogRWZmZWN0QXR0cmlidXRlLkNPTlZPTFVUSU9OLFxuXHRcdFx0dW5pZm9ybXM6IG5ldyBNYXA8c3RyaW5nLCBUSFJFRS5Vbmlmb3JtPG51bWJlciB8IG51bWJlcltdPj4oW1xuXHRcdFx0XHRbJ2JsdXInLCBuZXcgVEhSRUUuVW5pZm9ybShibHVyKV0sXG5cdFx0XHRcdFsndGFwZXInLCBuZXcgVEhSRUUuVW5pZm9ybSh0YXBlcildLFxuXHRcdFx0XHRbJ3N0YXJ0JywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhcnQpXSxcblx0XHRcdFx0WydlbmQnLCBuZXcgVEhSRUUuVW5pZm9ybShlbmQpXSxcblx0XHRcdFx0WydzYW1wbGVzJywgbmV3IFRIUkVFLlVuaWZvcm0oc2FtcGxlcyldLFxuXHRcdFx0XHRbJ2RpcmVjdGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGRpcmVjdGlvbildLFxuXHRcdFx0XSksXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgVGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVGlsdFNoaWZ0MkVmZmVjdD5bMF0+PjtcblxuZXh0ZW5kKHsgVGlsdFNoaWZ0MkVmZmVjdCB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC10aWx0LXNoaWZ0MicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC10aWx0LXNoaWZ0Mi1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10aWx0LXNoaWZ0Mi1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBUaWx0U2hpZnQyIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpToneMapping {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ToneMappingEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpToneMapping, isStandalone: true, selector: \"ngtp-tone-mapping\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpToneMapping, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tone-mapping',\n template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uZS1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdG9uZS1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxlQUFlO0lBSTNCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFxRCxtREFBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBTlcsZUFBZTtrR0FBZixlQUFlLHlVQVhqQjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLGVBQWU7a0JBYjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBUb25lTWFwcGluZ0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBUb25lTWFwcGluZ0VmZmVjdE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFRvbmVNYXBwaW5nRWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdG9uZS1tYXBwaW5nJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXRvbmUtbWFwcGluZy1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10b25lLW1hcHBpbmctZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRvbmVNYXBwaW5nIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VG9uZU1hcHBpbmdFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgVG9uZU1hcHBpbmdFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpVignette {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ VignetteEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpVignette, isStandalone: true, selector: \"ngtp-vignette\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpVignette, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-vignette',\n template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlnbmV0dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy92aWduZXR0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWtELG1EQUFDLENBQUM7UUFDMUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBTlcsWUFBWTtrR0FBWixZQUFZLHFVQVhkOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsWUFBWTtrQkFieEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBWaWduZXR0ZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBWaWduZXR0ZUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVmlnbmV0dGVFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdmlnbmV0dGUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdmlnbmV0dGUtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtdmlnbmV0dGUtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFZpZ25ldHRlIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VmlnbmV0dGVFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgVmlnbmV0dGVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst WaterShader = {\n fragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\nexport class WaterEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n super('WaterEffect', WaterShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([['factor', new THREE.Uniform(factor)]]),\n });\n }\n}\nexport class NgtpWater {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ WaterEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.4\", type: NgtpWater, isStandalone: true, selector: \"ngtp-water\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NgtpWater, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-water',\n template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy93YXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXpGLE1BQU0sV0FBVyxHQUFHO0lBQ25CLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lBWXRDO0NBQ0gsQ0FBQztBQUVGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDcEUsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQ2hELGFBQWE7WUFDYixVQUFVLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDdkMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUEyQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEcsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBa0JELE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxtREFBQyxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQU5XLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLDRJQVZ2RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCwgRWZmZWN0QXR0cmlidXRlIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgV2F0ZXJTaGFkZXIgPSB7XG5cdGZyYWdtZW50U2hhZGVyOiAvKiBsYW5ndWFnZT1nbHNsIGdsc2wgKi8gYFxuICB1bmlmb3JtIGZsb2F0IGZhY3RvcjtcbiAgdm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgIHZlYzIgdlV2ID0gdXY7XG4gICAgZmxvYXQgZnJlcXVlbmN5ID0gNi4wICogZmFjdG9yO1xuICAgIGZsb2F0IGFtcGxpdHVkZSA9IDAuMDE1ICogZmFjdG9yO1xuICAgIGZsb2F0IHggPSB2VXYueSAqIGZyZXF1ZW5jeSArIHRpbWUgKiAuNztcbiAgICBmbG9hdCB5ID0gdlV2LnggKiBmcmVxdWVuY3kgKyB0aW1lICogLjM7XG4gICAgdlV2LnggKz0gY29zKHgreSkgKiBhbXBsaXR1ZGUgKiBjb3MoeSk7XG4gICAgdlV2LnkgKz0gc2luKHgteSkgKiBhbXBsaXR1ZGUgKiBjb3MoeSk7XG4gICAgdmVjNCByZ2JhID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCB2VXYpO1xuICAgIG91dHB1dENvbG9yID0gcmdiYTtcbiAgfWAsXG59O1xuXG5leHBvcnQgY2xhc3MgV2F0ZXJFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7IGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCwgZmFjdG9yID0gMCB9ID0ge30pIHtcblx0XHRzdXBlcignV2F0ZXJFZmZlY3QnLCBXYXRlclNoYWRlci5mcmFnbWVudFNoYWRlciwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbixcblx0XHRcdGF0dHJpYnV0ZXM6IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTixcblx0XHRcdHVuaWZvcm1zOiBuZXcgTWFwPHN0cmluZywgVEhSRUUuVW5pZm9ybTxudW1iZXIgfCBudW1iZXJbXT4+KFtbJ2ZhY3RvcicsIG5ldyBUSFJFRS5Vbmlmb3JtKGZhY3RvcildXSksXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgV2F0ZXJFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFdhdGVyRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXdhdGVyJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXdhdGVyLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXdhdGVyLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFdhdGVyIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8V2F0ZXJFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgV2F0ZXJFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1wb3N0cHJvY2Vzc2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2FuZ3VsYXItdGhyZWUtcG9zdHByb2Nlc3NpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["defaultOptions","i1.NgtpEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-three-postprocessing.mjs","sources":["../tmp-esm2022/lib/effect.js","../tmp-esm2022/lib/effect-composer.js","../tmp-esm2022/lib/effects/ascii.js","../tmp-esm2022/lib/effects/bloom.js","../tmp-esm2022/lib/effects/brightness-contrast.js","../tmp-esm2022/lib/effects/chromatic-abberation.js","../tmp-esm2022/lib/effects/color-average.js","../tmp-esm2022/lib/effects/color-depth.js","../tmp-esm2022/lib/effects/depth.js","../tmp-esm2022/lib/effects/depth-of-field.js","../tmp-esm2022/lib/effects/dot-screen.js","../tmp-esm2022/lib/effects/fxaa.js","../tmp-esm2022/lib/effects/glitch.js","../tmp-esm2022/lib/effects/god-rays.js","../tmp-esm2022/lib/effects/grid.js","../tmp-esm2022/lib/effects/hue-saturation.js","../tmp-esm2022/lib/effects/lens-flare.js","../tmp-esm2022/lib/effects/lut.js","../tmp-esm2022/lib/effects/noise.js","../tmp-esm2022/lib/effects/outline.js","../tmp-esm2022/lib/effects/pixelation.js","../tmp-esm2022/lib/effects/scanline.js","../tmp-esm2022/lib/effects/selective-bloom.js","../tmp-esm2022/lib/effects/sepia.js","../tmp-esm2022/lib/effects/shock-wave.js","../tmp-esm2022/lib/effects/smaa.js","../tmp-esm2022/lib/effects/tilt-shift.js","../tmp-esm2022/lib/effects/tilt-shift-2.js","../tmp-esm2022/lib/effects/tone-mapping.js","../tmp-esm2022/lib/effects/vignette.js","../tmp-esm2022/lib/effects/water.js","../tmp-esm2022/angular-three-postprocessing.js"],"sourcesContent":["import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, Directive, inject, input } from '@angular/core';\nimport { injectStore } from 'angular-three';\nimport { createNoopInjectionToken } from 'ngxtension/create-injection-token';\nimport * as i0 from \"@angular/core\";\nexport const [injectDefaultEffectOptions, provideDefaultEffectOptions] = createNoopInjectionToken('Default Effect options');\nexport class NgtpEffectBlendMode {\n constructor() {\n this.effect = inject(NgtpEffect, { optional: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectBlendMode, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.7\", type: NgtpEffectBlendMode, isStandalone: true, selector: \"ngtp-effect-blend-mode\", ngImport: i0, template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectBlendMode, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-blend-mode',\n template: `\n\t\t@if (effect) {\n\t\t\t<ngt-value [rawValue]=\"effect.blendFunction()\" attach=\"blendMode.blendFunction\" />\n\t\t\t<ngt-value [rawValue]=\"effect.opacity()\" attach=\"blendMode.opacity.value\" />\n\t\t}\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class NgtpEffect {\n constructor() {\n this.defaultEffectOptions = injectDefaultEffectOptions({ optional: true });\n this.blendFunction = input(this.defaultEffectOptions?.blendFunction, ...(ngDevMode ? [{ debugName: \"blendFunction\" }] : []));\n this.opacity = input(this.defaultEffectOptions?.opacity, ...(ngDevMode ? [{ debugName: \"opacity\" }] : []));\n this.store = injectStore();\n this.camera = this.store.camera;\n this.invalidate = this.store.invalidate;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpEffect, isStandalone: true, inputs: { blendFunction: { classPropertyName: \"blendFunction\", publicName: \"blendFunction\", isSignal: true, isRequired: false, transformFunction: null }, opacity: { classPropertyName: \"opacity\", publicName: \"opacity\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffect, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLENBQUMsMEJBQTBCLEVBQUUsMkJBQTJCLENBQUMsR0FBRyx3QkFBd0IsQ0FHOUYsd0JBQXdCLENBQUMsQ0FBQztBQWE3QixNQUFNLE9BQU8sbUJBQW1CO0lBWGhDO1FBWUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRDs4R0FGWSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrRkFUckI7Ozs7O0VBS1Q7OzJGQUlXLG1CQUFtQjtrQkFYL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQzs7QUFNRCxNQUFNLE9BQU8sVUFBVTtJQUR2QjtRQUVDLHlCQUFvQixHQUFHLDBCQUEwQixDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdEUsa0JBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGFBQWEseURBQUMsQ0FBQztRQUNoRSxZQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLG1EQUFDLENBQUM7UUFFNUMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7S0FDbkM7OEdBVFksVUFBVTtrR0FBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlTm9vcEluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24gfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0RGVmYXVsdEVmZmVjdE9wdGlvbnMsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9uc10gPSBjcmVhdGVOb29wSW5qZWN0aW9uVG9rZW48e1xuXHRibGVuZEZ1bmN0aW9uPzogQmxlbmRGdW5jdGlvbjtcblx0b3BhY2l0eT86IG51bWJlcjtcbn0+KCdEZWZhdWx0IEVmZmVjdCBvcHRpb25zJyk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZWZmZWN0LWJsZW5kLW1vZGUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdEBpZiAoZWZmZWN0KSB7XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJlZmZlY3QuYmxlbmRGdW5jdGlvbigpXCIgYXR0YWNoPVwiYmxlbmRNb2RlLmJsZW5kRnVuY3Rpb25cIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZWZmZWN0Lm9wYWNpdHkoKVwiIGF0dGFjaD1cImJsZW5kTW9kZS5vcGFjaXR5LnZhbHVlXCIgLz5cblx0XHR9XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBFZmZlY3RCbGVuZE1vZGUge1xuXHRlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdCB7XG5cdGRlZmF1bHRFZmZlY3RPcHRpb25zID0gaW5qZWN0RGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRibGVuZEZ1bmN0aW9uID0gaW5wdXQodGhpcy5kZWZhdWx0RWZmZWN0T3B0aW9ucz8uYmxlbmRGdW5jdGlvbik7XG5cdG9wYWNpdHkgPSBpbnB1dCh0aGlzLmRlZmF1bHRFZmZlY3RPcHRpb25zPy5vcGFjaXR5KTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0Y2FtZXJhID0gdGhpcy5zdG9yZS5jYW1lcmE7XG5cdGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLmludmFsaWRhdGU7XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input, viewChild, } from '@angular/core';\nimport { beforeRender, extend, getInstanceState, injectStore, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { DepthDownsamplingPass, Effect, EffectAttribute, EffectComposer, EffectPass, NormalPass, Pass, RenderPass, } from 'postprocessing';\nimport * as THREE from 'three';\nimport { Group } from 'three';\nimport { isWebGL2Available } from 'three-stdlib';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n enabled: true,\n renderPriority: 1,\n autoClear: true,\n multisampling: 8,\n frameBufferType: THREE.HalfFloatType,\n};\nfunction isConvolution(effect) {\n return (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION;\n}\nexport class NgtpEffectComposer {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.store = injectStore();\n this.depthBuffer = pick(this.options, 'depthBuffer');\n this.stencilBuffer = pick(this.options, 'stencilBuffer');\n this.multisampling = pick(this.options, 'multisampling');\n this.frameBufferType = pick(this.options, 'frameBufferType');\n this.enableNormalPass = pick(this.options, 'enableNormalPass');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.enabled = pick(this.options, 'enabled');\n this.renderPriority = pick(this.options, 'renderPriority');\n this.scene = computed(() => this.options().scene ?? this.store.scene(), ...(ngDevMode ? [{ debugName: \"scene\" }] : []));\n this.camera = computed(() => this.options().camera ?? this.store.camera(), ...(ngDevMode ? [{ debugName: \"camera\" }] : []));\n this.groupRef = viewChild.required('group');\n this.priority = computed(() => {\n const enabled = this.enabled();\n if (!enabled)\n return 0;\n return this.renderPriority();\n }, ...(ngDevMode ? [{ debugName: \"priority\" }] : []));\n this.composerData = computed(() => {\n const webGL2Available = isWebGL2Available();\n const [gl, scene, camera, depthBuffer, stencilBuffer, multisampling, frameBufferType, enableNormalPass, resolutionScale,] = [\n this.store.gl(),\n this.scene(),\n this.camera(),\n this.depthBuffer(),\n this.stencilBuffer(),\n this.multisampling(),\n this.frameBufferType(),\n this.enableNormalPass(),\n this.resolutionScale(),\n ];\n // initialize composer\n const composer = new EffectComposer(gl, {\n depthBuffer,\n stencilBuffer,\n multisampling: multisampling > 0 && webGL2Available ? multisampling : 0,\n frameBufferType,\n });\n // add render pass\n composer.addPass(new RenderPass(scene, camera));\n // create normal pass\n let downSamplingPass = null;\n let normalPass = null;\n if (enableNormalPass) {\n normalPass = new NormalPass(scene, camera);\n normalPass.enabled = false;\n composer.addPass(normalPass);\n if (resolutionScale !== undefined && webGL2Available) {\n downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale });\n downSamplingPass.enabled = false;\n composer.addPass(downSamplingPass);\n }\n }\n return { composer, normalPass, downSamplingPass };\n }, ...(ngDevMode ? [{ debugName: \"composerData\" }] : []));\n this.effectComposer = pick(this.composerData, 'composer');\n extend({ Group });\n // NOTE: Disable tone mapping because threejs disallows tonemapping on render targets\n effect((onCleanup) => {\n const gl = this.store.gl();\n const currentTonemapping = gl.toneMapping;\n gl.toneMapping = THREE.NoToneMapping;\n onCleanup(() => {\n gl.toneMapping = currentTonemapping;\n });\n });\n effect(() => {\n const [composer, width, height] = [\n this.effectComposer(),\n this.store.size.width(),\n this.store.size.height(),\n ];\n if (composer) {\n composer.setSize(width, height);\n }\n });\n effect((onCleanup) => {\n const [group, { composer, normalPass, downSamplingPass }, camera] = [\n this.groupRef().nativeElement,\n this.composerData(),\n this.camera(),\n ];\n const passes = [];\n if (composer) {\n const instanceState = getInstanceState(group);\n if (!instanceState)\n return;\n const children = instanceState.nonObjects();\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof Effect) {\n const effects = [child];\n if (!isConvolution(child)) {\n let next = null;\n while ((next = children[i + 1]) instanceof Effect) {\n if (isConvolution(next))\n break;\n effects.push(next);\n i++;\n }\n }\n const pass = new EffectPass(camera, ...effects);\n passes.push(pass);\n }\n else if (child instanceof Pass) {\n passes.push(child);\n }\n }\n for (const pass of passes) {\n composer.addPass(pass);\n }\n if (normalPass)\n normalPass.enabled = true;\n if (downSamplingPass)\n downSamplingPass.enabled = true;\n }\n onCleanup(() => {\n for (const pass of passes)\n composer?.removePass(pass);\n if (normalPass)\n normalPass.enabled = false;\n if (downSamplingPass)\n downSamplingPass.enabled = false;\n });\n });\n beforeRender(({ delta }) => {\n const [composer, { enabled, autoClear, stencilBuffer }, gl] = [\n this.effectComposer(),\n this.options(),\n this.store.snapshot.gl,\n ];\n if (enabled) {\n const currentAutoClear = gl.autoClear;\n gl.autoClear = autoClear;\n if (stencilBuffer && !autoClear)\n gl.clearStencil();\n composer.render(delta);\n gl.autoClear = currentAutoClear;\n }\n }, { priority: this.priority });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectComposer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.7\", type: NgtpEffectComposer, isStandalone: true, selector: \"ngtp-effect-composer\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"groupRef\", first: true, predicate: [\"group\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpEffectComposer, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-effect-composer',\n template: `\n\t\t<ngt-group #group>\n\t\t\t<ng-content />\n\t\t</ngt-group>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWNvbXBvc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdC1jb21wb3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFDTixxQkFBcUIsRUFDckIsTUFBTSxFQUNOLGVBQWUsRUFDZixjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUJqRCxNQUFNLGNBQWMsR0FBOEI7SUFDakQsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsQ0FBQztJQUNqQixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxLQUFLLENBQUMsYUFBYTtDQUNwQyxDQUFDO0FBRUYsU0FBUyxhQUFhLENBQUMsTUFBYztJQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxlQUFlLENBQUMsV0FBVyxDQUFDO0FBQy9GLENBQUM7QUFZRCxN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LFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJlZm9yZVJlbmRlciwgZXh0ZW5kLCBnZXRJbnN0YW5jZVN0YXRlLCBpbmplY3RTdG9yZSwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHtcblx0RGVwdGhEb3duc2FtcGxpbmdQYXNzLFxuXHRFZmZlY3QsXG5cdEVmZmVjdEF0dHJpYnV0ZSxcblx0RWZmZWN0Q29tcG9zZXIsXG5cdEVmZmVjdFBhc3MsXG5cdE5vcm1hbFBhc3MsXG5cdFBhc3MsXG5cdFJlbmRlclBhc3MsXG59IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaXNXZWJHTDJBdmFpbGFibGUgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHBFZmZlY3RDb21wb3Nlck9wdGlvbnMge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW47XG5cdC8qKiBPbmx5IHVzZWQgZm9yIFNTR0kgY3VycmVudGx5LCBsZWF2ZSBpdCBkaXNhYmxlZCBmb3IgZXZlcnl0aGluZyBlbHNlIHVubGVzcyBpdCdzIG5lZWRlZCAqL1xuXHRlbmFibGVOb3JtYWxQYXNzPzogYm9vbGVhbjtcblx0c3RlbmNpbEJ1ZmZlcj86IGJvb2xlYW47XG5cdGF1dG9DbGVhcjogYm9vbGVhbjtcblx0cmVzb2x1dGlvblNjYWxlPzogbnVtYmVyO1xuXHRtdWx0aXNhbXBsaW5nOiBudW1iZXI7XG5cdGZyYW1lQnVmZmVyVHlwZTogVEhSRUUuVGV4dHVyZURhdGFUeXBlO1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHRjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG5cdHNjZW5lPzogVEhSRUUuU2NlbmU7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RwRWZmZWN0Q29tcG9zZXJPcHRpb25zID0ge1xuXHRlbmFibGVkOiB0cnVlLFxuXHRyZW5kZXJQcmlvcml0eTogMSxcblx0YXV0b0NsZWFyOiB0cnVlLFxuXHRtdWx0aXNhbXBsaW5nOiA4LFxuXHRmcmFtZUJ1ZmZlclR5cGU6IFRIUkVFLkhhbGZGbG9hdFR5cGUsXG59O1xuXG5mdW5jdGlvbiBpc0NvbnZvbHV0aW9uKGVmZmVjdDogRWZmZWN0KSB7XG5cdHJldHVybiAoZWZmZWN0LmdldEF0dHJpYnV0ZXMoKSAmIEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTikgPT09IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1lZmZlY3QtY29tcG9zZXInLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgI2dyb3VwPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEVmZmVjdENvbXBvc2VyIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgZGVwdGhCdWZmZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RlcHRoQnVmZmVyJyk7XG5cdHByaXZhdGUgc3RlbmNpbEJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3RlbmNpbEJ1ZmZlcicpO1xuXHRwcml2YXRlIG11bHRpc2FtcGxpbmcgPSBwaWNrKHRoaXMub3B0aW9ucywgJ211bHRpc2FtcGxpbmcnKTtcblx0cHJpdmF0ZSBmcmFtZUJ1ZmZlclR5cGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZyYW1lQnVmZmVyVHlwZScpO1xuXHRwcml2YXRlIGVuYWJsZU5vcm1hbFBhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZU5vcm1hbFBhc3MnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIGVuYWJsZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VuYWJsZWQnKTtcblx0cHJpdmF0ZSByZW5kZXJQcmlvcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVuZGVyUHJpb3JpdHknKTtcblxuXHRzY2VuZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnNjZW5lID8/IHRoaXMuc3RvcmUuc2NlbmUoKSk7XG5cdGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSA/PyB0aGlzLnN0b3JlLmNhbWVyYSgpKTtcblxuXHRwcml2YXRlIGdyb3VwUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8VEhSRUUuR3JvdXA+PignZ3JvdXAnKTtcblxuXHRwcml2YXRlIHByaW9yaXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVuYWJsZWQgPSB0aGlzLmVuYWJsZWQoKTtcblx0XHRpZiAoIWVuYWJsZWQpIHJldHVybiAwO1xuXHRcdHJldHVybiB0aGlzLnJlbmRlclByaW9yaXR5KCk7XG5cdH0pO1xuXG5cdHByaXZhdGUgY29tcG9zZXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHdlYkdMMkF2YWlsYWJsZSA9IGlzV2ViR0wyQXZhaWxhYmxlKCk7XG5cdFx0Y29uc3QgW1xuXHRcdFx0Z2wsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGRlcHRoQnVmZmVyLFxuXHRcdFx0c3RlbmNpbEJ1ZmZlcixcblx0XHRcdG11bHRpc2FtcGxpbmcsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0XHRlbmFibGVOb3JtYWxQYXNzLFxuXHRcdFx0cmVzb2x1dGlvblNjYWxlLFxuXHRcdF0gPSBbXG5cdFx0XHR0aGlzLnN0b3JlLmdsKCksXG5cdFx0XHR0aGlzLnNjZW5lKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5kZXB0aEJ1ZmZlcigpLFxuXHRcdFx0dGhpcy5zdGVuY2lsQnVmZmVyKCksXG5cdFx0XHR0aGlzLm11bHRpc2FtcGxpbmcoKSxcblx0XHRcdHRoaXMuZnJhbWVCdWZmZXJUeXBlKCksXG5cdFx0XHR0aGlzLmVuYWJsZU5vcm1hbFBhc3MoKSxcblx0XHRcdHRoaXMucmVzb2x1dGlvblNjYWxlKCksXG5cdFx0XTtcblxuXHRcdC8vIGluaXRpYWxpemUgY29tcG9zZXJcblx0XHRjb25zdCBjb21wb3NlciA9IG5ldyBFZmZlY3RDb21wb3NlcihnbCwge1xuXHRcdFx0ZGVwdGhCdWZmZXIsXG5cdFx0XHRzdGVuY2lsQnVmZmVyLFxuXHRcdFx0bXVsdGlzYW1wbGluZzogbXVsdGlzYW1wbGluZyA+IDAgJiYgd2ViR0wyQXZhaWxhYmxlID8gbXVsdGlzYW1wbGluZyA6IDAsXG5cdFx0XHRmcmFtZUJ1ZmZlclR5cGUsXG5cdFx0fSk7XG5cblx0XHQvLyBhZGQgcmVuZGVyIHBhc3Ncblx0XHRjb21wb3Nlci5hZGRQYXNzKG5ldyBSZW5kZXJQYXNzKHNjZW5lLCBjYW1lcmEpKTtcblxuXHRcdC8vIGNyZWF0ZSBub3JtYWwgcGFzc1xuXHRcdGxldCBkb3duU2FtcGxpbmdQYXNzID0gbnVsbDtcblx0XHRsZXQgbm9ybWFsUGFzcyA9IG51bGw7XG5cdFx0aWYgKGVuYWJsZU5vcm1hbFBhc3MpIHtcblx0XHRcdG5vcm1hbFBhc3MgPSBuZXcgTm9ybWFsUGFzcyhzY2VuZSwgY2FtZXJhKTtcblx0XHRcdG5vcm1hbFBhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhub3JtYWxQYXNzKTtcblx0XHRcdGlmIChyZXNvbHV0aW9uU2NhbGUgIT09IHVuZGVmaW5lZCAmJiB3ZWJHTDJBdmFpbGFibGUpIHtcblx0XHRcdFx0ZG93blNhbXBsaW5nUGFzcyA9IG5ldyBEZXB0aERvd25zYW1wbGluZ1Bhc3MoeyBub3JtYWxCdWZmZXI6IG5vcm1hbFBhc3MudGV4dHVyZSwgcmVzb2x1dGlvblNjYWxlIH0pO1xuXHRcdFx0XHRkb3duU2FtcGxpbmdQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhkb3duU2FtcGxpbmdQYXNzKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4geyBjb21wb3Nlciwgbm9ybWFsUGFzcywgZG93blNhbXBsaW5nUGFzcyB9O1xuXHR9KTtcblxuXHRlZmZlY3RDb21wb3NlciA9IHBpY2sodGhpcy5jb21wb3NlckRhdGEsICdjb21wb3NlcicpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwIH0pO1xuXG5cdFx0Ly8gTk9URTogRGlzYWJsZSB0b25lIG1hcHBpbmcgYmVjYXVzZSB0aHJlZWpzIGRpc2FsbG93cyB0b25lbWFwcGluZyBvbiByZW5kZXIgdGFyZ2V0c1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBnbCA9IHRoaXMuc3RvcmUuZ2woKTtcblx0XHRcdGNvbnN0IGN1cnJlbnRUb25lbWFwcGluZyA9IGdsLnRvbmVNYXBwaW5nO1xuXHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBUSFJFRS5Ob1RvbmVNYXBwaW5nO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Z2wudG9uZU1hcHBpbmcgPSBjdXJyZW50VG9uZW1hcHBpbmc7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbY29tcG9zZXIsIHdpZHRoLCBoZWlnaHRdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc2l6ZS53aWR0aCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLnNpemUuaGVpZ2h0KCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbXBvc2VyLnNldFNpemUod2lkdGgsIGhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2dyb3VwLCB7IGNvbXBvc2VyLCBub3JtYWxQYXNzLCBkb3duU2FtcGxpbmdQYXNzIH0sIGNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmNvbXBvc2VyRGF0YSgpLFxuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgcGFzc2VzOiBQYXNzW10gPSBbXTtcblxuXHRcdFx0aWYgKGNvbXBvc2VyKSB7XG5cdFx0XHRcdGNvbnN0IGluc3RhbmNlU3RhdGUgPSBnZXRJbnN0YW5jZVN0YXRlKGdyb3VwKTtcblx0XHRcdFx0aWYgKCFpbnN0YW5jZVN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgY2hpbGRyZW4gPSBpbnN0YW5jZVN0YXRlLm5vbk9iamVjdHMoKTtcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdGNvbnN0IGNoaWxkID0gY2hpbGRyZW5baV07XG5cdFx0XHRcdFx0aWYgKGNoaWxkIGluc3RhbmNlb2YgRWZmZWN0KSB7XG5cdFx0XHRcdFx0XHRjb25zdCBlZmZlY3RzOiBFZmZlY3RbXSA9IFtjaGlsZF07XG5cblx0XHRcdFx0XHRcdGlmICghaXNDb252b2x1dGlvbihjaGlsZCkpIHtcblx0XHRcdFx0XHRcdFx0bGV0IG5leHQ6IHVua25vd24gPSBudWxsO1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoKG5leHQgPSBjaGlsZHJlbltpICsgMV0pIGluc3RhbmNlb2YgRWZmZWN0KSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGlzQ29udm9sdXRpb24obmV4dCkpIGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdGVmZmVjdHMucHVzaChuZXh0IGFzIEVmZmVjdCk7XG5cdFx0XHRcdFx0XHRcdFx0aSsrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdGNvbnN0IHBhc3MgPSBuZXcgRWZmZWN0UGFzcyhjYW1lcmEsIC4uLmVmZmVjdHMpO1xuXHRcdFx0XHRcdFx0cGFzc2VzLnB1c2gocGFzcyk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChjaGlsZCBpbnN0YW5jZW9mIFBhc3MpIHtcblx0XHRcdFx0XHRcdHBhc3Nlcy5wdXNoKGNoaWxkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKGNvbnN0IHBhc3Mgb2YgcGFzc2VzKSB7XG5cdFx0XHRcdFx0Y29tcG9zZXIuYWRkUGFzcyhwYXNzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSB0cnVlO1xuXHRcdFx0XHRpZiAoZG93blNhbXBsaW5nUGFzcykgZG93blNhbXBsaW5nUGFzcy5lbmFibGVkID0gdHJ1ZTtcblx0XHRcdH1cblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Zm9yIChjb25zdCBwYXNzIG9mIHBhc3NlcykgY29tcG9zZXI/LnJlbW92ZVBhc3MocGFzcyk7XG5cdFx0XHRcdGlmIChub3JtYWxQYXNzKSBub3JtYWxQYXNzLmVuYWJsZWQgPSBmYWxzZTtcblx0XHRcdFx0aWYgKGRvd25TYW1wbGluZ1Bhc3MpIGRvd25TYW1wbGluZ1Bhc3MuZW5hYmxlZCA9IGZhbHNlO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVSZW5kZXIoXG5cdFx0XHQoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtjb21wb3NlciwgeyBlbmFibGVkLCBhdXRvQ2xlYXIsIHN0ZW5jaWxCdWZmZXIgfSwgZ2xdID0gW1xuXHRcdFx0XHRcdHRoaXMuZWZmZWN0Q29tcG9zZXIoKSxcblx0XHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0XHR0aGlzLnN0b3JlLnNuYXBzaG90LmdsLFxuXHRcdFx0XHRdO1xuXG5cdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudEF1dG9DbGVhciA9IGdsLmF1dG9DbGVhcjtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBhdXRvQ2xlYXI7XG5cdFx0XHRcdFx0aWYgKHN0ZW5jaWxCdWZmZXIgJiYgIWF1dG9DbGVhcikgZ2wuY2xlYXJTdGVuY2lsKCk7XG5cdFx0XHRcdFx0Y29tcG9zZXIucmVuZGVyKGRlbHRhKTtcblx0XHRcdFx0XHRnbC5hdXRvQ2xlYXIgPSBjdXJyZW50QXV0b0NsZWFyO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogdGhpcy5wcmlvcml0eSB9LFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport * as i0 from \"@angular/core\";\nconst fragment = /* language=glsl glsl */ `\nuniform sampler2D uCharacters;\nuniform float uCharactersCount;\nuniform float uCellSize;\nuniform bool uInvert;\nuniform vec3 uColor;\n\nconst vec2 SIZE = vec2(16.);\n\nvec3 greyscale(vec3 color, float strength) {\n float g = dot(color, vec3(0.299, 0.587, 0.114));\n return mix(color, vec3(g), strength);\n}\n\nvec3 greyscale(vec3 color) {\n return greyscale(color, 1.0);\n}\n\nvoid mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 cell = resolution / uCellSize;\n vec2 grid = 1.0 / cell;\n vec2 pixelizedUV = grid * (0.5 + floor(uv / grid));\n vec4 pixelized = texture2D(inputBuffer, pixelizedUV);\n float greyscaled = greyscale(pixelized.rgb).r;\n\n if (uInvert) {\n greyscaled = 1.0 - greyscaled;\n }\n\n float characterIndex = floor((uCharactersCount - 1.0) * greyscaled);\n vec2 characterPosition = vec2(mod(characterIndex, SIZE.x), floor(characterIndex / SIZE.y));\n vec2 offset = vec2(characterPosition.x, -characterPosition.y) / SIZE;\n vec2 charUV = mod(uv * (cell / SIZE), 1.0 / SIZE) - vec2(0., 1.0 / SIZE) + offset;\n vec4 asciiCharacter = texture2D(uCharacters, charUV);\n\n asciiCharacter.rgb = uColor * asciiCharacter.r;\n asciiCharacter.a = pixelized.a;\n outputColor = asciiCharacter;\n}\n`;\nexport class ASCIIEffect extends Effect {\n constructor({ font = 'arial', characters = ` .:,'-^=*+?!|0#X%WM@`, fontSize = 54, cellSize = 16, color = '#ffffff', invert = false, } = {}) {\n const uniforms = new Map([\n ['uCharacters', new THREE.Uniform(new THREE.Texture())],\n ['uCellSize', new THREE.Uniform(cellSize)],\n ['uCharactersCount', new THREE.Uniform(characters.length)],\n ['uColor', new THREE.Uniform(new THREE.Color(color))],\n ['uInvert', new THREE.Uniform(invert)],\n ]);\n super('ASCIIEffect', fragment, { uniforms });\n const charactersTextureUniform = this.uniforms.get('uCharacters');\n if (charactersTextureUniform) {\n charactersTextureUniform.value = this.createCharactersTexture(characters, font, fontSize);\n }\n }\n /** Draws the characters on a Canvas and returns a texture */\n createCharactersTexture(characters, font, fontSize) {\n const canvas = document.createElement('canvas');\n const SIZE = 1024;\n const MAX_PER_ROW = 16;\n const CELL = SIZE / MAX_PER_ROW;\n canvas.width = canvas.height = SIZE;\n const texture = new THREE.CanvasTexture(canvas, undefined, THREE.RepeatWrapping, THREE.RepeatWrapping, THREE.NearestFilter, THREE.NearestFilter);\n const context = canvas.getContext('2d');\n if (!context) {\n throw new Error('Context not available');\n }\n context.clearRect(0, 0, SIZE, SIZE);\n context.font = `${fontSize}px ${font}`;\n context.textAlign = 'center';\n context.textBaseline = 'middle';\n context.fillStyle = '#fff';\n for (let i = 0; i < characters.length; i++) {\n const char = characters[i];\n const x = i % MAX_PER_ROW;\n const y = Math.floor(i / MAX_PER_ROW);\n context.fillText(char, x * CELL + CELL / 2, y * CELL + CELL / 2);\n }\n texture.needsUpdate = true;\n return texture;\n }\n}\nconst defaultOptions = {\n font: 'arial',\n characters: ` .:,'-^=*+?!|0#X%WM@`,\n fontSize: 54,\n cellSize: 16,\n color: '#ffffff',\n invert: false,\n};\nexport class NgtpASCII {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.effect = computed(() => new ASCIIEffect(this.options()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpASCII, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpASCII, isStandalone: true, selector: \"ngtp-ascii\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpASCII, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-ascii',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNjaWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9hc2NpaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7QUFFL0IsTUFBTSxRQUFRLEdBQUcsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXVDekMsQ0FBQztBQVdGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQ1gsSUFBSSxHQUFHLE9BQU8sRUFDZCxVQUFVLEdBQUcsc0JBQXNCLEVBQ25DLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixLQUFLLEdBQUcsU0FBUyxFQUNqQixNQUFNLEdBQUcsS0FBSyxNQUNTLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQXdCO1lBQy9DLENBQUMsYUFBYSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUQsQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUMsU0FBUyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0QyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFN0MsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRSxJQUFJLHdCQUF3QixFQUFFLENBQUM7WUFDOUIsd0JBQXdCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNGLENBQUM7SUFDRixDQUFDO0lBRUQsNkRBQTZEO0lBQ3RELHVCQUF1QixDQUFDLFVBQWtCLEVBQUUsSUFBWSxFQUFFLFFBQWdCO1FBQ2hGLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBRWhDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUN0QyxNQUFNLEVBQ04sU0FBUyxFQUNULEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBRTNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUMsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7WUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDdEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLE9BQU8sQ0FBQztJQUNoQixDQUFDO0NBQ0Q7QUFFRCxNQUFNLGNBQWMsR0FBdUI7SUFDMUMsSUFBSSxFQUFFLE9BQU87SUFDYixVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLFFBQVEsRUFBRSxFQUFFO0lBQ1osUUFBUSxFQUFFLEVBQUU7SUFDWixLQUFLLEVBQUUsU0FBUztJQUNoQixNQUFNLEVBQUUsS0FBSztDQUNiLENBQUM7QUFXRixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRWxFLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGtEQUFDLENBQUM7UUFHbEUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBVlcsU0FBUztrR0FBVCxTQUFTLGdOQVBYOztFQUVULDREQUNTLE9BQU87OzJGQUlMLFNBQVM7a0JBVHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5jb25zdCBmcmFnbWVudCA9IC8qIGxhbmd1YWdlPWdsc2wgZ2xzbCAqLyBgXG51bmlmb3JtIHNhbXBsZXIyRCB1Q2hhcmFjdGVycztcbnVuaWZvcm0gZmxvYXQgdUNoYXJhY3RlcnNDb3VudDtcbnVuaWZvcm0gZmxvYXQgdUNlbGxTaXplO1xudW5pZm9ybSBib29sIHVJbnZlcnQ7XG51bmlmb3JtIHZlYzMgdUNvbG9yO1xuXG5jb25zdCB2ZWMyIFNJWkUgPSB2ZWMyKDE2Lik7XG5cbnZlYzMgZ3JleXNjYWxlKHZlYzMgY29sb3IsIGZsb2F0IHN0cmVuZ3RoKSB7XG4gICAgZmxvYXQgZyA9IGRvdChjb2xvciwgdmVjMygwLjI5OSwgMC41ODcsIDAuMTE0KSk7XG4gICAgcmV0dXJuIG1peChjb2xvciwgdmVjMyhnKSwgc3RyZW5ndGgpO1xufVxuXG52ZWMzIGdyZXlzY2FsZSh2ZWMzIGNvbG9yKSB7XG4gICAgcmV0dXJuIGdyZXlzY2FsZShjb2xvciwgMS4wKTtcbn1cblxudm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgIHZlYzIgY2VsbCA9IHJlc29sdXRpb24gLyB1Q2VsbFNpemU7XG4gICAgdmVjMiBncmlkID0gMS4wIC8gY2VsbDtcbiAgICB2ZWMyIHBpeGVsaXplZFVWID0gZ3JpZCAqICgwLjUgKyBmbG9vcih1diAvIGdyaWQpKTtcbiAgICB2ZWM0IHBpeGVsaXplZCA9IHRleHR1cmUyRChpbnB1dEJ1ZmZlciwgcGl4ZWxpemVkVVYpO1xuICAgIGZsb2F0IGdyZXlzY2FsZWQgPSBncmV5c2NhbGUocGl4ZWxpemVkLnJnYikucjtcblxuICAgIGlmICh1SW52ZXJ0KSB7XG4gICAgICAgIGdyZXlzY2FsZWQgPSAxLjAgLSBncmV5c2NhbGVkO1xuICAgIH1cblxuICAgIGZsb2F0IGNoYXJhY3RlckluZGV4ID0gZmxvb3IoKHVDaGFyYWN0ZXJzQ291bnQgLSAxLjApICogZ3JleXNjYWxlZCk7XG4gICAgdmVjMiBjaGFyYWN0ZXJQb3NpdGlvbiA9IHZlYzIobW9kKGNoYXJhY3RlckluZGV4LCBTSVpFLngpLCBmbG9vcihjaGFyYWN0ZXJJbmRleCAvIFNJWkUueSkpO1xuICAgIHZlYzIgb2Zmc2V0ID0gdmVjMihjaGFyYWN0ZXJQb3NpdGlvbi54LCAtY2hhcmFjdGVyUG9zaXRpb24ueSkgLyBTSVpFO1xuICAgIHZlYzIgY2hhclVWID0gbW9kKHV2ICogKGNlbGwgLyBTSVpFKSwgMS4wIC8gU0laRSkgLSB2ZWMyKDAuLCAxLjAgLyBTSVpFKSArIG9mZnNldDtcbiAgICB2ZWM0IGFzY2lpQ2hhcmFjdGVyID0gdGV4dHVyZTJEKHVDaGFyYWN0ZXJzLCBjaGFyVVYpO1xuXG4gICAgYXNjaWlDaGFyYWN0ZXIucmdiID0gdUNvbG9yICogYXNjaWlDaGFyYWN0ZXIucjtcbiAgICBhc2NpaUNoYXJhY3Rlci5hID0gcGl4ZWxpemVkLmE7XG4gICAgb3V0cHV0Q29sb3IgPSBhc2NpaUNoYXJhY3Rlcjtcbn1cbmA7XG5cbmludGVyZmFjZSBBU0NJSUVmZmVjdE9wdGlvbnMge1xuXHRmb250Pzogc3RyaW5nO1xuXHRjaGFyYWN0ZXJzPzogc3RyaW5nO1xuXHRmb250U2l6ZT86IG51bWJlcjtcblx0Y2VsbFNpemU/OiBudW1iZXI7XG5cdGNvbG9yPzogc3RyaW5nO1xuXHRpbnZlcnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQVNDSUlFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7XG5cdFx0Zm9udCA9ICdhcmlhbCcsXG5cdFx0Y2hhcmFjdGVycyA9IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdFx0Zm9udFNpemUgPSA1NCxcblx0XHRjZWxsU2l6ZSA9IDE2LFxuXHRcdGNvbG9yID0gJyNmZmZmZmYnLFxuXHRcdGludmVydCA9IGZhbHNlLFxuXHR9OiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7fSkge1xuXHRcdGNvbnN0IHVuaWZvcm1zID0gbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm0+KFtcblx0XHRcdFsndUNoYXJhY3RlcnMnLCBuZXcgVEhSRUUuVW5pZm9ybShuZXcgVEhSRUUuVGV4dHVyZSgpKV0sXG5cdFx0XHRbJ3VDZWxsU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGNlbGxTaXplKV0sXG5cdFx0XHRbJ3VDaGFyYWN0ZXJzQ291bnQnLCBuZXcgVEhSRUUuVW5pZm9ybShjaGFyYWN0ZXJzLmxlbmd0aCldLFxuXHRcdFx0Wyd1Q29sb3InLCBuZXcgVEhSRUUuVW5pZm9ybShuZXcgVEhSRUUuQ29sb3IoY29sb3IpKV0sXG5cdFx0XHRbJ3VJbnZlcnQnLCBuZXcgVEhSRUUuVW5pZm9ybShpbnZlcnQpXSxcblx0XHRdKTtcblxuXHRcdHN1cGVyKCdBU0NJSUVmZmVjdCcsIGZyYWdtZW50LCB7IHVuaWZvcm1zIH0pO1xuXG5cdFx0Y29uc3QgY2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtID0gdGhpcy51bmlmb3Jtcy5nZXQoJ3VDaGFyYWN0ZXJzJyk7XG5cblx0XHRpZiAoY2hhcmFjdGVyc1RleHR1cmVVbmlmb3JtKSB7XG5cdFx0XHRjaGFyYWN0ZXJzVGV4dHVyZVVuaWZvcm0udmFsdWUgPSB0aGlzLmNyZWF0ZUNoYXJhY3RlcnNUZXh0dXJlKGNoYXJhY3RlcnMsIGZvbnQsIGZvbnRTaXplKTtcblx0XHR9XG5cdH1cblxuXHQvKiogRHJhd3MgdGhlIGNoYXJhY3RlcnMgb24gYSBDYW52YXMgYW5kIHJldHVybnMgYSB0ZXh0dXJlICovXG5cdHB1YmxpYyBjcmVhdGVDaGFyYWN0ZXJzVGV4dHVyZShjaGFyYWN0ZXJzOiBzdHJpbmcsIGZvbnQ6IHN0cmluZywgZm9udFNpemU6IG51bWJlcik6IFRIUkVFLlRleHR1cmUge1xuXHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXHRcdGNvbnN0IFNJWkUgPSAxMDI0O1xuXHRcdGNvbnN0IE1BWF9QRVJfUk9XID0gMTY7XG5cdFx0Y29uc3QgQ0VMTCA9IFNJWkUgLyBNQVhfUEVSX1JPVztcblxuXHRcdGNhbnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQgPSBTSVpFO1xuXHRcdGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShcblx0XHRcdGNhbnZhcyxcblx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFRIUkVFLlJlcGVhdFdyYXBwaW5nLFxuXHRcdFx0VEhSRUUuUmVwZWF0V3JhcHBpbmcsXG5cdFx0XHRUSFJFRS5OZWFyZXN0RmlsdGVyLFxuXHRcdFx0VEhSRUUuTmVhcmVzdEZpbHRlcixcblx0XHQpO1xuXHRcdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblxuXHRcdGlmICghY29udGV4dCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IG5vdCBhdmFpbGFibGUnKTtcblx0XHR9XG5cblx0XHRjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCBTSVpFLCBTSVpFKTtcblx0XHRjb250ZXh0LmZvbnQgPSBgJHtmb250U2l6ZX1weCAke2ZvbnR9YDtcblx0XHRjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuXHRcdGNvbnRleHQudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG5cdFx0Y29udGV4dC5maWxsU3R5bGUgPSAnI2ZmZic7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGNoYXIgPSBjaGFyYWN0ZXJzW2ldO1xuXHRcdFx0Y29uc3QgeCA9IGkgJSBNQVhfUEVSX1JPVztcblx0XHRcdGNvbnN0IHkgPSBNYXRoLmZsb29yKGkgLyBNQVhfUEVSX1JPVyk7XG5cdFx0XHRjb250ZXh0LmZpbGxUZXh0KGNoYXIsIHggKiBDRUxMICsgQ0VMTCAvIDIsIHkgKiBDRUxMICsgQ0VMTCAvIDIpO1xuXHRcdH1cblxuXHRcdHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdHJldHVybiB0ZXh0dXJlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBU0NJSUVmZmVjdE9wdGlvbnMgPSB7XG5cdGZvbnQ6ICdhcmlhbCcsXG5cdGNoYXJhY3RlcnM6IGAgLjosJy1ePSorPyF8MCNYJVdNQGAsXG5cdGZvbnRTaXplOiA1NCxcblx0Y2VsbFNpemU6IDE2LFxuXHRjb2xvcjogJyNmZmZmZmYnLFxuXHRpbnZlcnQ6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1hc2NpaScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwQVNDSUkge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBBU0NJSUVmZmVjdCh0aGlzLm9wdGlvbnMoKSkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, BloomEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBloom {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BloomEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpBloom, isStandalone: true, selector: \"ngtp-bloom\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-bloom',\n template: `\n\t\t<ngt-bloom-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-bloom-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvb20uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ibG9vbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBZ0J6RixNQUFNLE9BQU8sU0FBUztJQUtyQjtRQUpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBK0MsbURBQUMsQ0FBQztRQUV2RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FQVyxTQUFTO2tHQUFULFNBQVMsbU1BRlYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyw0SUFWcEU7Ozs7O0VBS1QsNERBQ1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQU0xQixTQUFTO2tCQWRyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDakYsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQzlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBCbG9vbUVmZmVjdCwgQmxvb21FZmZlY3RPcHRpb25zIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1ibG9vbScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ibG9vbS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1ibG9vbS1lZmZlY3Q+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLkFERCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBCbG9vbSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PEJsb29tRWZmZWN0T3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nPik7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQmxvb21FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BrightnessContrastEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpBrightnessContrast {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ BrightnessContrastEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBrightnessContrast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpBrightnessContrast, isStandalone: true, selector: \"ngtp-brightness-contrast\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpBrightnessContrast, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-brightness-contrast',\n template: `\n\t\t<ngt-brightness-contrast-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-brightness-contrast-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZ2h0bmVzcy1jb250cmFzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2JyaWdodG5lc3MtY29udHJhc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLHNCQUFzQjtJQUlsQztRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsbURBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQU5XLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGdWQVh4Qjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLHNCQUFzQjtrQkFibEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJyaWdodG5lc3NDb250cmFzdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBCcmlnaHRuZXNzRWZmZWN0T3B0aW9ucyA9IE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtYnJpZ2h0bmVzcy1jb250cmFzdCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1icmlnaHRuZXNzLWNvbnRyYXN0LWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWJyaWdodG5lc3MtY29udHJhc3QtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cEJyaWdodG5lc3NDb250cmFzdCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PEJyaWdodG5lc3NFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ChromaticAberrationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpChromaticAberration {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ChromaticAberrationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpChromaticAberration, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpChromaticAberration, isStandalone: true, selector: \"ngtp-chromatic-aberration\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpChromaticAberration, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-chromatic-aberration',\n template: `\n\t\t<ngt-chromatic-aberration-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-chromatic-aberration-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21hdGljLWFiYmVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jaHJvbWF0aWMtYWJiZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBbUI1RCxNQUFNLE9BQU8sdUJBQXVCO0lBSW5DO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE2RCxtREFBQyxDQUFDO1FBQ3JFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OEdBTlcsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaVZBWHpCOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsdUJBQXVCO2tCQWJuQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8XG5cdE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgQ2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdD5bMF0+XG4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNocm9tYXRpYy1hYmVycmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNocm9tYXRpYy1hYmVycmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDaHJvbWF0aWNBYmVycmF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q2hyb21hdGljQWJlcnJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDaHJvbWF0aWNBYmVycmF0aW9uRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ColorAverageEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpColorAverage {\n constructor() {\n this.options = input({ blendFunction: BlendFunction.NORMAL }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) }] : [{ transform: mergeInputs({ blendFunction: BlendFunction.NORMAL }) }]));\n extend({ ColorAverageEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorAverage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpColorAverage, isStandalone: true, selector: \"ngtp-color-average\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorAverage, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-average',\n template: `\n\t\t<ngt-color-average-effect *args=\"[options().blendFunction]\">\n\t\t\t<ng-content />\n\t\t</ngt-color-average-effect>\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItYXZlcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2NvbG9yLWF2ZXJhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFhbkUsTUFBTSxPQUFPLGdCQUFnQjtJQU01QjtRQUxBLFlBQU8sR0FBRyxLQUFLLENBQ2QsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSwyQ0FDckMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBakUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQ25FLENBQUM7UUFHRCxNQUFNLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FSVyxnQkFBZ0I7a0dBQWhCLGdCQUFnQix3TkFUbEI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFJTCxnQkFBZ0I7a0JBWDVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgQ29sb3JBdmVyYWdlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWF2ZXJhZ2UnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtY29sb3ItYXZlcmFnZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpLmJsZW5kRnVuY3Rpb25dXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWF2ZXJhZ2UtZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckF2ZXJhZ2Uge1xuXHRvcHRpb25zID0gaW5wdXQoXG5cdFx0eyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9LFxuXHRcdHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pIH0sXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQ29sb3JBdmVyYWdlRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ColorDepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpColorDepth {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ColorDepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpColorDepth, isStandalone: true, selector: \"ngtp-color-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpColorDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-color-depth',\n template: `\n\t\t<ngt-color-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-color-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9jb2xvci1kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8sY0FBYztJQUkxQjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0QsbURBQUMsQ0FBQztRQUM1RCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQU5XLGNBQWM7a0dBQWQsY0FBYyx3VUFYaEI7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUcxQixjQUFjO2tCQWIxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ29sb3JEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBDb2xvckRlcHRoRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBDb2xvckRlcHRoRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWNvbG9yLWRlcHRoJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWNvbG9yLWRlcHRoLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWNvbG9yLWRlcHRoLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBDb2xvckRlcHRoIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8Q29sb3JEZXB0aEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBDb2xvckRlcHRoRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DepthEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDepth {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DepthEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpDepth, isStandalone: true, selector: \"ngtp-depth\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepth, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth',\n template: `\n\t\t<ngt-depth-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-depth-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLG1EQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLGtVQVhYOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFickIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEZXB0aEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBEZXB0aEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRGVwdGhFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZGVwdGgtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZGVwdGgtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RGVwdGhFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgRGVwdGhFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs } from 'angular-three';\nimport { DepthOfFieldEffect, MaskFunction } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpDepthOfField {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectComposer = inject(NgtpEffectComposer);\n this.effect = computed(() => {\n const [camera, options] = [this.effectComposer.camera(), this.options()];\n const autoFocus = options.target != null;\n const effect = new DepthOfFieldEffect(camera, options);\n // Creating a target enables autofocus, NGT will set via props\n if (autoFocus)\n effect.target = new THREE.Vector3();\n // Depth texture for depth picking with optional packing strategy\n if (options.depthTexture) {\n effect.setDepthTexture(options.depthTexture.texture, options.depthTexture.packing);\n }\n // Temporary fix that restores DOF 6.21.3 behavior, everything since then lets shapes leak through the blur\n const maskPass = effect['maskPass'];\n maskPass.maskFunction = MaskFunction.MULTIPLY_RGB_SET_ALPHA;\n return effect;\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const depthOfFieldEffect = this.effect();\n onCleanup(() => depthOfFieldEffect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepthOfField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpDepthOfField, isStandalone: true, selector: \"ngtp-depth-of-field\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDepthOfField, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-depth-of-field',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGgtb2YtZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9kZXB0aC1vZi1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsT0FBTyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFjeEQsTUFBTSxPQUFPLGdCQUFnQjtJQTRCNUI7UUEzQkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFnQixtREFBQyxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFMUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFFekUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7WUFFekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFdkQsOERBQThEO1lBQzlELElBQUksU0FBUztnQkFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25ELGlFQUFpRTtZQUNqRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FDckIsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQzVCLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBdUMsQ0FDNUQsQ0FBQztZQUNILENBQUM7WUFDRCwyR0FBMkc7WUFDM0csTUFBTSxRQUFRLEdBQUksTUFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxRQUFRLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztZQUU1RCxPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsa0RBQUMsQ0FBQztRQUdGLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FqQ1csZ0JBQWdCO2tHQUFoQixnQkFBZ0IseU5BUGxCOztFQUVULDREQUNTLE9BQU87OzJGQUlMLGdCQUFnQjtrQkFUNUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIE5ndEFyZ3MsIE5ndFZlY3RvcjMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERlcHRoT2ZGaWVsZEVmZmVjdCwgTWFza0Z1bmN0aW9uIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxudHlwZSBET0ZPcHRpb25zID0gTm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEZXB0aE9mRmllbGRFZmZlY3Q+WzFdPiAmXG5cdFBhcnRpYWw8eyB0YXJnZXQ6IE5ndFZlY3RvcjM7IGRlcHRoVGV4dHVyZTogeyB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlOyBwYWNraW5nOiBUSFJFRS5EZXB0aFBhY2tpbmdTdHJhdGVnaWVzIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZGVwdGgtb2YtZmllbGQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERlcHRoT2ZGaWVsZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBET0ZPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbY2FtZXJhLCBvcHRpb25zXSA9IFt0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLCB0aGlzLm9wdGlvbnMoKV07XG5cblx0XHRjb25zdCBhdXRvRm9jdXMgPSBvcHRpb25zLnRhcmdldCAhPSBudWxsO1xuXG5cdFx0Y29uc3QgZWZmZWN0ID0gbmV3IERlcHRoT2ZGaWVsZEVmZmVjdChjYW1lcmEsIG9wdGlvbnMpO1xuXG5cdFx0Ly8gQ3JlYXRpbmcgYSB0YXJnZXQgZW5hYmxlcyBhdXRvZm9jdXMsIE5HVCB3aWxsIHNldCB2aWEgcHJvcHNcblx0XHRpZiAoYXV0b0ZvY3VzKSBlZmZlY3QudGFyZ2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblx0XHQvLyBEZXB0aCB0ZXh0dXJlIGZvciBkZXB0aCBwaWNraW5nIHdpdGggb3B0aW9uYWwgcGFja2luZyBzdHJhdGVneVxuXHRcdGlmIChvcHRpb25zLmRlcHRoVGV4dHVyZSkge1xuXHRcdFx0ZWZmZWN0LnNldERlcHRoVGV4dHVyZShcblx0XHRcdFx0b3B0aW9ucy5kZXB0aFRleHR1cmUudGV4dHVyZSxcblx0XHRcdFx0b3B0aW9ucy5kZXB0aFRleHR1cmUucGFja2luZyBhcyBUSFJFRS5EZXB0aFBhY2tpbmdTdHJhdGVnaWVzLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0Ly8gVGVtcG9yYXJ5IGZpeCB0aGF0IHJlc3RvcmVzIERPRiA2LjIxLjMgYmVoYXZpb3IsIGV2ZXJ5dGhpbmcgc2luY2UgdGhlbiBsZXRzIHNoYXBlcyBsZWFrIHRocm91Z2ggdGhlIGJsdXJcblx0XHRjb25zdCBtYXNrUGFzcyA9IChlZmZlY3QgYXMgTmd0QW55UmVjb3JkKVsnbWFza1Bhc3MnXTtcblx0XHRtYXNrUGFzcy5tYXNrRnVuY3Rpb24gPSBNYXNrRnVuY3Rpb24uTVVMVElQTFlfUkdCX1NFVF9BTFBIQTtcblxuXHRcdHJldHVybiBlZmZlY3Q7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBkZXB0aE9mRmllbGRFZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGRlcHRoT2ZGaWVsZEVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { DotScreenEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpDotScreen {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ DotScreenEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDotScreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpDotScreen, isStandalone: true, selector: \"ngtp-dot-screen\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpDotScreen, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-dot-screen',\n template: `\n\t\t<ngt-dot-screen-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-dot-screen-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG90LXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2RvdC1zY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxtREFBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx1VUFYZjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBYnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEb3RTY3JlZW5FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgRG90U2NyZWVuRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBEb3RTY3JlZW5FZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZG90LXNjcmVlbicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1kb3Qtc2NyZWVuLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWRvdC1zY3JlZW4tZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cERvdFNjcmVlbiB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PERvdFNjcmVlbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBEb3RTY3JlZW5FZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { FXAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpFXAA {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ FXAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpFXAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpFXAA, isStandalone: true, selector: \"ngtp-fxaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpFXAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-fxaa',\n template: `\n\t\t<ngt-fXAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-fXAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnhhYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2Z4YWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxtREFBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQU5XLFFBQVE7a0dBQVIsUUFBUSxpVUFYVjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBYnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRlhBQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBGWEFBRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGWEFBRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWZ4YWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZlhBQS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1mWEFBLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBGWEFBIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8RlhBQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBGWEFBRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick, vector2 } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { GlitchEffect, GlitchMode } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGlitch {\n constructor() {\n this.options = input({ active: true }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ active: true }) }] : [{ transform: mergeInputs({ active: true }) }]));\n this.active = pick(this.options, 'active');\n this.mode = pick(this.options, 'mode');\n this.ratio = pick(this.options, 'ratio');\n this.dtSize = pick(this.options, 'dtSize');\n this.columns = pick(this.options, 'columns');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.perturbationMap = pick(this.options, 'perturbationMap');\n this.delay = vector2(this.options, 'delay');\n this.duration = vector2(this.options, 'duration');\n this.chromaticAberrationOffset = vector2(this.options, 'chromaticAberrationOffset');\n this.strength = vector2(this.options, 'strength');\n this.store = injectStore();\n this.effect = computed(() => new GlitchEffect({\n ratio: this.ratio(),\n dtSize: this.dtSize(),\n columns: this.columns(),\n blendFunction: this.blendFunction(),\n perturbationMap: this.perturbationMap(),\n delay: this.delay(),\n duration: this.duration(),\n chromaticAberrationOffset: this.chromaticAberrationOffset(),\n strength: this.strength(),\n }), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [glitchEffect, invalidate, mode, active] = [\n this.effect(),\n this.store.invalidate(),\n this.mode(),\n this.active(),\n ];\n glitchEffect.mode = active ? mode || GlitchMode.SPORADIC : GlitchMode.DISABLED;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGlitch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpGlitch, isStandalone: true, selector: \"ngtp-glitch\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGlitch, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-glitch',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvZ2xpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFxQjFELE1BQU0sT0FBTyxVQUFVO0lBaUN0QjtRQWhDQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBbUIsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUExQyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFDLENBQUM7UUFFekYsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxVQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELG9CQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV4RCxVQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLDhCQUF5QixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDL0UsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQUcsUUFBUSxDQUNoQixHQUFHLEVBQUUsQ0FDSixJQUFJLFlBQVksQ0FBQztZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6Qix5QkFBeUIsRUFBRSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDekIsQ0FBQyxrREFDSCxDQUFDO1FBR0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDWCxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ2IsQ0FBQztZQUNGLFlBQVksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvRSxVQUFVLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakRXLFVBQVU7a0dBQVYsVUFBVSxpTkFQWjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxVQUFVO2tCQVR0QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndFZlY3RvcjIsIGluamVjdFN0b3JlLCBwaWNrLCB2ZWN0b3IyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBHbGl0Y2hFZmZlY3QsIEdsaXRjaE1vZGUgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCB0eXBlIEdsaXRjaE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdsaXRjaEVmZmVjdD5bMF0+ICZcblx0UGFydGlhbDx7XG5cdFx0bW9kZTogR2xpdGNoTW9kZTtcblx0XHRhY3RpdmU6IGJvb2xlYW47XG5cdFx0ZGVsYXk6IE5ndFZlY3RvcjI7XG5cdFx0ZHVyYXRpb246IE5ndFZlY3RvcjI7XG5cdFx0Y2hyb21hdGljQWJlcnJhdGlvbk9mZnNldDogTmd0VmVjdG9yMjtcblx0XHRzdHJlbmd0aDogTmd0VmVjdG9yMjtcblx0fT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZ2xpdGNoJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHbGl0Y2gge1xuXHRvcHRpb25zID0gaW5wdXQoeyBhY3RpdmU6IHRydWUgfSBhcyBHbGl0Y2hPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBhY3RpdmU6IHRydWUgfSkgfSk7XG5cblx0cHJpdmF0ZSBhY3RpdmUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2FjdGl2ZScpO1xuXHRwcml2YXRlIG1vZGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21vZGUnKTtcblx0cHJpdmF0ZSByYXRpbyA9IHBpY2sodGhpcy5vcHRpb25zLCAncmF0aW8nKTtcblx0cHJpdmF0ZSBkdFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2R0U2l6ZScpO1xuXHRwcml2YXRlIGNvbHVtbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NvbHVtbnMnKTtcblx0cHJpdmF0ZSBibGVuZEZ1bmN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJyk7XG5cdHByaXZhdGUgcGVydHVyYmF0aW9uTWFwID0gcGljayh0aGlzLm9wdGlvbnMsICdwZXJ0dXJiYXRpb25NYXAnKTtcblxuXHRwcml2YXRlIGRlbGF5ID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdkZWxheScpO1xuXHRwcml2YXRlIGR1cmF0aW9uID0gdmVjdG9yMih0aGlzLm9wdGlvbnMsICdkdXJhdGlvbicpO1xuXHRwcml2YXRlIGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQgPSB2ZWN0b3IyKHRoaXMub3B0aW9ucywgJ2Nocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQnKTtcblx0cHJpdmF0ZSBzdHJlbmd0aCA9IHZlY3RvcjIodGhpcy5vcHRpb25zLCAnc3RyZW5ndGgnKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRlZmZlY3QgPSBjb21wdXRlZChcblx0XHQoKSA9PlxuXHRcdFx0bmV3IEdsaXRjaEVmZmVjdCh7XG5cdFx0XHRcdHJhdGlvOiB0aGlzLnJhdGlvKCksXG5cdFx0XHRcdGR0U2l6ZTogdGhpcy5kdFNpemUoKSxcblx0XHRcdFx0Y29sdW1uczogdGhpcy5jb2x1bW5zKCksXG5cdFx0XHRcdGJsZW5kRnVuY3Rpb246IHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0XHRwZXJ0dXJiYXRpb25NYXA6IHRoaXMucGVydHVyYmF0aW9uTWFwKCksXG5cdFx0XHRcdGRlbGF5OiB0aGlzLmRlbGF5KCksXG5cdFx0XHRcdGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uKCksXG5cdFx0XHRcdGNocm9tYXRpY0FiZXJyYXRpb25PZmZzZXQ6IHRoaXMuY2hyb21hdGljQWJlcnJhdGlvbk9mZnNldCgpLFxuXHRcdFx0XHRzdHJlbmd0aDogdGhpcy5zdHJlbmd0aCgpLFxuXHRcdFx0fSksXG5cdCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtnbGl0Y2hFZmZlY3QsIGludmFsaWRhdGUsIG1vZGUsIGFjdGl2ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLm1vZGUoKSxcblx0XHRcdFx0dGhpcy5hY3RpdmUoKSxcblx0XHRcdF07XG5cdFx0XHRnbGl0Y2hFZmZlY3QubW9kZSA9IGFjdGl2ZSA/IG1vZGUgfHwgR2xpdGNoTW9kZS5TUE9SQURJQyA6IEdsaXRjaE1vZGUuRElTQUJMRUQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, omit, pick, resolveRef } from 'angular-three';\nimport { GodRaysEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGodRays {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['sun']);\n this.sun = pick(this.options, 'sun');\n this.sunElement = computed(() => {\n const sun = this.sun();\n if (typeof sun === 'function')\n return resolveRef(sun());\n return resolveRef(sun);\n }, ...(ngDevMode ? [{ debugName: \"sunElement\" }] : []));\n this.effect = computed(() => {\n const [camera, sunElement, options] = [this.effectComposer.camera(), this.sunElement(), this.effectOptions()];\n return new GodRaysEffect(camera, sunElement, options);\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const sunElement = this.sunElement();\n if (!sunElement)\n return;\n const godRaysEffect = this.effect();\n godRaysEffect.lightSource = sunElement;\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGodRays, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpGodRays, isStandalone: true, selector: \"ngtp-god-rays\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGodRays, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-god-rays',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29kLXJheXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9nb2QtcmF5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQW1CeEQsTUFBTSxPQUFPLFdBQVc7SUFtQnZCO1FBbEJBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBb0IsbURBQUMsQ0FBQztRQUU5QixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTVDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLFFBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoQyxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDeEQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxzREFBQyxDQUFDO1FBRU8sV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM5RyxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxrREFBQyxDQUFDO1FBR0YsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBRXhCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxhQUFhLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhDVyxXQUFXO2tHQUFYLFdBQVcsbU5BUGI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0aW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgb21pdCwgcGljaywgcmVzb2x2ZVJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgR29kUmF5c0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHBFZmZlY3RDb21wb3NlciB9IGZyb20gJy4uL2VmZmVjdC1jb21wb3Nlcic7XG5cbnR5cGUgR29kUmF5c09wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdvZFJheXNFZmZlY3Q+WzJdICYge1xuXHRzdW46XG5cdFx0fCBUSFJFRS5NZXNoXG5cdFx0fCBUSFJFRS5Qb2ludHNcblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuTWVzaCB8IFRIUkVFLlBvaW50cz5cblx0XHR8ICgoKSA9PiBUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzIHwgRWxlbWVudFJlZjxUSFJFRS5NZXNoIHwgVEhSRUUuUG9pbnRzPiB8IHVuZGVmaW5lZCk7XG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWdvZC1yYXlzJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBHb2RSYXlzIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIEdvZFJheXNPcHRpb25zKTtcblxuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cblx0cHJpdmF0ZSBlZmZlY3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnc3VuJ10pO1xuXHRwcml2YXRlIHN1biA9IHBpY2sodGhpcy5vcHRpb25zLCAnc3VuJyk7XG5cblx0cHJpdmF0ZSBzdW5FbGVtZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHN1biA9IHRoaXMuc3VuKCk7XG5cdFx0aWYgKHR5cGVvZiBzdW4gPT09ICdmdW5jdGlvbicpIHJldHVybiByZXNvbHZlUmVmKHN1bigpKTtcblx0XHRyZXR1cm4gcmVzb2x2ZVJlZihzdW4pO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtjYW1lcmEsIHN1bkVsZW1lbnQsIG9wdGlvbnNdID0gW3RoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHRoaXMuc3VuRWxlbWVudCgpLCB0aGlzLmVmZmVjdE9wdGlvbnMoKV07XG5cdFx0cmV0dXJuIG5ldyBHb2RSYXlzRWZmZWN0KGNhbWVyYSwgc3VuRWxlbWVudCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzdW5FbGVtZW50ID0gdGhpcy5zdW5FbGVtZW50KCk7XG5cdFx0XHRpZiAoIXN1bkVsZW1lbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgZ29kUmF5c0VmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRnb2RSYXlzRWZmZWN0LmxpZ2h0U291cmNlID0gc3VuRWxlbWVudDtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3QgPSB0aGlzLmVmZmVjdCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGVmZmVjdC5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, omit, pick } from 'angular-three';\nimport { GridEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpGrid {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effectOptions = omit(this.options, ['size']);\n this.size = pick(this.options, 'size');\n this.effect = computed(() => new GridEffect(this.effectOptions()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [size, effect] = [this.size(), this.effect()];\n if (size) {\n effect.setSize(size.width, size.height);\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGrid, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpGrid, isStandalone: true, selector: \"ngtp-grid\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpGrid, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-grid',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n imports: [NgtArgs],\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWM1QyxNQUFNLE9BQU8sUUFBUTtJQU9wQjtRQU5BLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBaUIsbURBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3QyxTQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFaEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsa0RBQUMsQ0FBQztRQUd2RSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbkJXLFFBQVE7a0dBQVIsUUFBUSwrTUFQVjs7RUFFVCw0REFDUyxPQUFPOzsyRkFJTCxRQUFRO2tCQVRwQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEdyaWRFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbnR5cGUgR3JpZE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIEdyaWRFZmZlY3Q+WzBdPiAmXG5cdFBhcnRpYWw8eyBzaXplOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0gfT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtZ3JpZCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwR3JpZCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBHcmlkT3B0aW9ucyk7XG5cdHByaXZhdGUgZWZmZWN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3NpemUnXSk7XG5cdHByaXZhdGUgc2l6ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2l6ZScpO1xuXG5cdHByb3RlY3RlZCBlZmZlY3QgPSBjb21wdXRlZCgoKSA9PiBuZXcgR3JpZEVmZmVjdCh0aGlzLmVmZmVjdE9wdGlvbnMoKSkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbc2l6ZSwgZWZmZWN0XSA9IFt0aGlzLnNpemUoKSwgdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRpZiAoc2l6ZSkge1xuXHRcdFx0XHRlZmZlY3Quc2V0U2l6ZShzaXplLndpZHRoLCBzaXplLmhlaWdodCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { HueSaturationEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpHueSaturation {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ HueSaturationEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpHueSaturation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpHueSaturation, isStandalone: true, selector: \"ngtp-hue-saturation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpHueSaturation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-hue-saturation',\n template: `\n\t\t<ngt-hue-saturation-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-hue-saturation-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVlLXNhdHVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9odWUtc2F0dXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBaUI1RCxNQUFNLE9BQU8saUJBQWlCO0lBSTdCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUF1RCxtREFBQyxDQUFDO1FBQy9ELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBTlcsaUJBQWlCO2tHQUFqQixpQkFBaUIsMlVBWG5COzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsaUJBQWlCO2tCQWI3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgSHVlU2F0dXJhdGlvbkVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBIdWVTYXR1cmF0aW9uRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBIdWVTYXR1cmF0aW9uRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWh1ZS1zYXR1cmF0aW9uJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWh1ZS1zYXR1cmF0aW9uLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBIdWVTYXR1cmF0aW9uIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8SHVlU2F0dXJhdGlvbkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBIdWVTYXR1cmF0aW9uRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","// Created by Anderson Mancini 2023\n// React Three Fiber Ultimate LensFlare\nimport { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, inject, input, } from '@angular/core';\nimport { NgtArgs, beforeRender, injectStore, is, omit, vector3 } from 'angular-three';\nimport { easing } from 'maath';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, Effect } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst LensFlareShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n uniform float iTime;\n uniform vec2 lensPosition;\n uniform vec2 iResolution;\n uniform vec3 colorGain;\n uniform float starPoints;\n uniform float glareSize;\n uniform float flareSize;\n uniform float flareSpeed;\n uniform float flareShape;\n uniform float haloScale;\n uniform float opacity;\n uniform bool animated;\n uniform bool anamorphic;\n uniform bool enabled;\n uniform bool secondaryGhosts;\n uniform bool starBurst;\n uniform float ghostScale;\n uniform bool aditionalStreaks;\n uniform sampler2D lensDirtTexture;\n vec2 vxtC;\n\n float rndf(float n){return fract(sin(n) * 43758.5453123);}float niz(float p){float fl = floor(p);float fc = fract(p);return mix(rndf(fl),rndf(fl + 1.0), fc);}\n vec3 hsv2rgb(vec3 c){vec4 k = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);vec3 p = abs(fract(c.xxx + k.xyz) * 6.0 - k.www);return c.z * mix(k.xxx, clamp(p - k.xxx, 0.0, 1.0), c.y);}\n float satU(float x){return clamp(x, 0.,1.);}vec2 rtU(vec2 naz, float rtn){return vec2(cos(rtn) * naz.x + sin(rtn) * naz.y,cos(rtn) * naz.y - sin(rtn) * naz.x);}\n vec3 drwF(vec2 p, float intensity, float rnd, float speed, int id){float flhos = (1. / 32.) * float(id) * 0.1;float lingrad = distance(vec2(0.), p);float expg = 1. / exp(lingrad * (fract(rnd) * 0.66 + 0.33));vec3 qzTg = hsv2rgb(vec3( fract( (expg * 8.) + speed * flareSpeed + flhos), pow(1.-abs(expg*2.-1.), 0.45), 20.0 * expg * intensity));float internalStarPoints;if(anamorphic){internalStarPoints = 1.0;} else{internalStarPoints = starPoints;}float ams = length(p * flareShape * sin(internalStarPoints * atan(p.x, p.y)));float kJhg = pow(1.-satU(ams), ( anamorphic ? 100. : 12.));kJhg += satU(expg-0.9) * 3.;kJhg = pow(kJhg * expg, 8. + (1.-intensity) * 5.);if(flareSpeed > 0.0){return vec3(kJhg) * qzTg;} else{return vec3(kJhg) * flareSize * 15.;}}\n float ams2(vec3 a, vec3 b) { return abs(a.x - b.x) + abs(a.y - b.y) + abs(a.z - b.z);}vec3 satU(vec3 x){return clamp(x, vec3(0.0), vec3(1.0));}\n float glR(vec2 naz, vec2 pos, float zsi){vec2 mni;if(animated){mni = rtU(naz-pos, iTime * 0.1);} else{mni = naz-pos;}float ang = atan(mni.y, mni.x) * (anamorphic ? 1.0 : starPoints);float ams2 = length(mni);ams2 = pow(ams2, .9);float f0 = 1.0/(length(naz-pos)*(1.0/zsi*16.0)+.2);return f0+f0*(sin((ang))*.2 +.3);}\n float sdHex(vec2 p){p = abs(p);vec2 q = vec2(p.x*2.0*0.5773503, p.y + p.x*0.5773503);return dot(step(q.xy,q.yx), 1.0-q.yx);}float fpow(float x, float k){return x > k ? pow((x-k)/(1.0-k),2.0) : 0.0;}\n vec3 rHx(vec2 naz, vec2 p, float s, vec3 col){naz -= p;if (abs(naz.x) < 0.2*s && abs(naz.y) < 0.2*s){return mix(vec3(0),mix(vec3(0),col,0.1 + fpow(length(naz/s),0.1)*10.0),smoothstep(0.0,0.1,sdHex(naz*20.0/s)));}return vec3(0);}\n vec3 mLs(vec2 naz, vec2 pos){vec2 mni = naz-pos;vec2 zxMp = naz*(length(naz));float ang = atan(mni.x,mni.y);float f0 = .3/(length(naz-pos)*16.0+1.0);f0 = f0*(sin(niz(sin(ang*3.9-(animated ? iTime : 0.0) * 0.3) * starPoints))*.2 );float f1 = max(0.01-pow(length(naz+1.2*pos),1.9),.0)*7.0;float f2 = max(.9/(10.0+32.0*pow(length(zxMp+0.99*pos),2.0)),.0)*0.35;float f22 = max(.9/(11.0+32.0*pow(length(zxMp+0.85*pos),2.0)),.0)*0.23;float f23 = max(.9/(12.0+32.0*pow(length(zxMp+0.95*pos),2.0)),.0)*0.6;vec2 ztX = mix(naz,zxMp, 0.1);float f4 = max(0.01-pow(length(ztX+0.4*pos),2.9),.0)*4.02;float f42 = max(0.0-pow(length(ztX+0.45*pos),2.9),.0)*4.1;float f43 = max(0.01-pow(length(ztX+0.5*pos),2.9),.0)*4.6;ztX = mix(naz,zxMp,-.4);float f5 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;float f52 = max(0.01-pow(length(ztX+0.2*pos),5.5),.0)*2.0;float f53 = max(0.01-pow(length(ztX+0.1*pos),5.5),.0)*2.0;ztX = mix(naz,zxMp, 2.1);float f6 = max(0.01-pow(length(ztX-0.3*pos),1.61),.0)*3.159;float f62 = max(0.01-pow(length(ztX-0.325*pos),1.614),.0)*3.14;float f63 = max(0.01-pow(length(ztX-0.389*pos),1.623),.0)*3.12;vec3 c = vec3(glR(naz,pos, glareSize));vec2 prot;if(animated){prot = rtU(naz - pos, (iTime * 0.1));} else if(anamorphic){prot = rtU(naz - pos, 1.570796);} else {prot = naz - pos;}c += drwF(prot, (anamorphic ? flareSize * 10. : flareSize), 0.1, iTime, 1);c.r+=f1+f2+f4+f5+f6; c.g+=f1+f22+f42+f52+f62; c.b+=f1+f23+f43+f53+f63;c = c*1.3 * vec3(length(zxMp)+.09);c+=vec3(f0);return c;}\n vec3 cc(vec3 clr, float fct,float fct2){float w = clr.x+clr.y+clr.z;return mix(clr,vec3(w)*fct,w*fct2);}float rnd(vec2 p){float f = fract(sin(dot(p, vec2(12.1234, 72.8392) )*45123.2));return f;}float rnd(float w){float f = fract(sin(w)*1000.);return f;}\n float rShp(vec2 p, int N){float f;float a=atan(p.x,p.y)+.2;float b=6.28319/float(N);f=smoothstep(.5,.51, cos(floor(.5+a/b)*b-a)*length(p.xy)* 2.0 -ghostScale);return f;}\n vec3 drC(vec2 p, float zsi, float dCy, vec3 clr, vec3 clr2, float ams2, vec2 esom){float l = length(p + esom*(ams2*2.))+zsi/2.;float l2 = length(p + esom*(ams2*4.))+zsi/3.;float c = max(0.01-pow(length(p + esom*ams2), zsi*ghostScale), 0.0)*10.;float c1 = max(0.001-pow(l-0.3, 1./40.)+sin(l*20.), 0.0)*3.;float c2 = max(0.09/pow(length(p-esom*ams2/.5)*1., .95), 0.0)/20.;float s = max(0.02-pow(rShp(p*5. + esom*ams2*5. + dCy, 6) , 1.), 0.0)*1.5;clr = cos(vec3(0.44, .24, .2)*8. + ams2*4.)*0.5+.5;vec3 f = c*clr;f += c1*clr;f += c2*clr;f += s*clr;return f-0.01;}\n vec4 geLC(float x){return vec4(vec3(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(mix(vec3(0., 0., 0.),vec3(0., 0., 0.), smoothstep(0.0, 0.063, x)),vec3(0., 0., 0.), smoothstep(0.063, 0.125, x)),vec3(0.0, 0., 0.), smoothstep(0.125, 0.188, x)),vec3(0.188, 0.131, 0.116), smoothstep(0.188, 0.227, x)),vec3(0.31, 0.204, 0.537), smoothstep(0.227, 0.251, x)),vec3(0.192, 0.106, 0.286), smoothstep(0.251, 0.314, x)),vec3(0.102, 0.008, 0.341), smoothstep(0.314, 0.392, x)),vec3(0.086, 0.0, 0.141), smoothstep(0.392, 0.502, x)),vec3(1.0, 0.31, 0.0), smoothstep(0.502, 0.604, x)),vec3(.1, 0.1, 0.1), smoothstep(0.604, 0.643, x)),vec3(1.0, 0.929, 0.0), smoothstep(0.643, 0.761, x)),vec3(1.0, 0.086, 0.424), smoothstep(0.761, 0.847, x)),vec3(1.0, 0.49, 0.0), smoothstep(0.847, 0.89, x)),vec3(0.945, 0.275, 0.475), smoothstep(0.89, 0.941, x)),vec3(0.251, 0.275, 0.796), smoothstep(0.941, 1.0, x))),1.0);}\n float diTN(vec2 p){vec2 f = fract(p);f = (f * f) * (3.0 - (2.0 * f));float n = dot(floor(p), vec2(1.0, 157.0));vec4 a = fract(sin(vec4(n + 0.0, n + 1.0, n + 157.0, n + 158.0)) * 43758.5453123);return mix(mix(a.x, a.y, f.x), mix(a.z, a.w, f.x), f.y);}\n float fbm(vec2 p){const mat2 m = mat2(0.80, -0.60, 0.60, 0.80);float f = 0.0;f += 0.5000*diTN(p); p = m*p*2.02;f += 0.2500*diTN(p); p = m*p*2.03;f += 0.1250*diTN(p); p = m*p*2.01;f += 0.0625*diTN(p);return f/0.9375;}\n vec4 geLS(vec2 p){vec2 pp = (p - vec2(0.5)) * 2.0;float a = atan(pp.y, pp.x);vec4 cp = vec4(sin(a * 1.0), length(pp), sin(a * 13.0), sin(a * 53.0));float d = sin(clamp(pow(length(vec2(0.5) - p) * 0.5 + haloScale /2., 5.0), 0.0, 1.0) * 3.14159);vec3 c = vec3(d) * vec3(fbm(cp.xy * 16.0) * fbm(cp.zw * 9.0) * max(max(max(max(0.5, sin(a * 1.0)), sin(a * 3.0) * 0.8), sin(a * 7.0) * 0.8), sin(a * 9.0) * 10.6));c *= vec3(mix(2.0, (sin(length(pp.xy) * 256.0) * 0.5) + 0.5, sin((clamp((length(pp.xy) - 0.875) / 0.1, 0.0, 1.0) + 0.0) * 2.0 * 3.14159) * 1.5) + 0.5) * 0.3275;return vec4(vec3(c * 1.0), d);}\n vec4 geLD(vec2 p){p.xy += vec2(fbm(p.yx * 3.0), fbm(p.yx * 2.0)) * 0.0825;vec3 o = vec3(mix(0.125, 0.25, max(max(smoothstep(0.1, 0.0, length(p - vec2(0.25))),smoothstep(0.4, 0.0, length(p - vec2(0.75)))),smoothstep(0.8, 0.0, length(p - vec2(0.875, 0.125))))));o += vec3(max(fbm(p * 1.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 2.0) - 0.5, 0.0)) * 0.5;o += vec3(max(fbm(p * 4.0) - 0.5, 0.0)) * 0.25;o += vec3(max(fbm(p * 8.0) - 0.75, 0.0)) * 1.0;o += vec3(max(fbm(p * 16.0) - 0.75, 0.0)) * 0.75;o += vec3(max(fbm(p * 64.0) - 0.75, 0.0)) * 0.5;return vec4(clamp(o, vec3(0.15), vec3(1.0)), 1.0);}\n vec4 txL(sampler2D tex, vec2 xtC){if(((xtC.x < 0.) || (xtC.y < 0.)) || ((xtC.x > 1.) || (xtC.y > 1.))){return vec4(0.0);}else{return texture(tex, xtC); }}\n vec4 txD(sampler2D tex, vec2 xtC, vec2 dir, vec3 ditn) {return vec4(txL(tex, (xtC + (dir * ditn.r))).r,txL(tex, (xtC + (dir * ditn.g))).g,txL(tex, (xtC + (dir * ditn.b))).b,1.0);}\n vec4 strB(){vec2 aspXtc = vec2(1.0) - (((vxtC - vec2(0.5)) * vec2(1.0)) + vec2(0.5)); vec2 xtC = vec2(1.0) - vxtC; vec2 ghvc = (vec2(0.5) - xtC) * 0.3 - lensPosition; vec2 ghNm = normalize(ghvc * vec2(1.0)) * vec2(1.0);vec2 haloVec = normalize(ghvc) * 0.6;vec2 hlNm = ghNm * 0.6;vec2 texelSize = vec2(1.0) / vec2(iResolution.xy);vec3 ditn = vec3(-(texelSize.x * 1.5), 0.2, texelSize.x * 1.5);vec4 c = vec4(0.0);for (int i = 0; i < 8; i++) {vec2 offset = xtC + (ghvc * float(i));c += txD(lensDirtTexture, offset, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - offset) / length(vec2(0.5)))), 10.0);}vec2 uyTrz = xtC + hlNm; return (c * geLC((length(vec2(0.5) - aspXtc) / length(vec2(haloScale))))) +(txD(lensDirtTexture, uyTrz, ghNm, ditn) * pow(max(0.0, 1.0 - (length(vec2(0.5) - uyTrz) / length(vec2(0.5)))), 10.0));}\n void mainImage(vec4 v,vec2 r,out vec4 i){vec2 g=r-.5;g.y*=iResolution.y/iResolution.x;vec2 l=lensPosition*.5;l.y*=iResolution.y/iResolution.x;vec3 f=mLs(g,l)*20.*colorGain/256.;if(aditionalStreaks){vec3 o=vec3(.9,.2,.1),p=vec3(.3,.1,.9);for(float n=0.;n<10.;n++)f+=drC(g,pow(rnd(n*2e3)*2.8,.1)+1.41,0.,o+n,p+n,rnd(n*20.)*3.+.2-.5,lensPosition);}if(secondaryGhosts){vec3 n=vec3(0);n+=rHx(g,-lensPosition*.25,ghostScale*1.4,vec3(.25,.35,0));n+=rHx(g,lensPosition*.25,ghostScale*.5,vec3(1,.5,.5));n+=rHx(g,lensPosition*.1,ghostScale*1.6,vec3(1));n+=rHx(g,lensPosition*1.8,ghostScale*2.,vec3(0,.5,.75));n+=rHx(g,lensPosition*1.25,ghostScale*.8,vec3(1,1,.5));n+=rHx(g,-lensPosition*1.25,ghostScale*5.,vec3(.5,.5,.25));n+=fpow(1.-abs(distance(lensPosition*.8,g)-.7),.985)*colorGain/2100.;f+=n;}if(starBurst){vxtC=g+.5;vec4 n=geLD(g);float o=1.-clamp(0.5,0.,.5)*2.;n+=mix(n,pow(n*2.,vec4(2))*.5,o);float s=(g.x+g.y)*(1./6.);vec2 d=mat2(cos(s),-sin(s),sin(s),cos(s))*vxtC;n+=geLS(d)*2.;f+=clamp(n.xyz*strB().xyz,.01,1.);}i=enabled?vec4(mix(f,vec3(0),opacity)+v.xyz,v.w):vec4(v);}\n`,\n};\nexport class LensFlareEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, enabled = true, glareSize = 0.2, lensPosition = [0.01, 0.01], iResolution = [0, 0], starPoints = 6, flareSize = 0.01, flareSpeed = 0.01, flareShape = 0.01, animated = true, anamorphic = false, colorGain = new THREE.Color(20, 20, 20), lensDirtTexture = null, haloScale = 0.5, secondaryGhosts = true, aditionalStreaks = true, ghostScale = 0.0, opacity = 1.0, starBurst = false, } = {}) {\n super('LensFlareEffect', LensFlareShader.fragmentShader, {\n blendFunction,\n uniforms: new Map([\n ['enabled', new THREE.Uniform(enabled)],\n ['glareSize', new THREE.Uniform(glareSize)],\n ['lensPosition', new THREE.Uniform(lensPosition)],\n ['iTime', new THREE.Uniform(0)],\n ['iResolution', new THREE.Uniform(iResolution)],\n ['starPoints', new THREE.Uniform(starPoints)],\n ['flareSize', new THREE.Uniform(flareSize)],\n ['flareSpeed', new THREE.Uniform(flareSpeed)],\n ['flareShape', new THREE.Uniform(flareShape)],\n ['animated', new THREE.Uniform(animated)],\n ['anamorphic', new THREE.Uniform(anamorphic)],\n ['colorGain', new THREE.Uniform(colorGain)],\n ['lensDirtTexture', new THREE.Uniform(lensDirtTexture)],\n ['haloScale', new THREE.Uniform(haloScale)],\n ['secondaryGhosts', new THREE.Uniform(secondaryGhosts)],\n ['aditionalStreaks', new THREE.Uniform(aditionalStreaks)],\n ['ghostScale', new THREE.Uniform(ghostScale)],\n ['starBurst', new THREE.Uniform(starBurst)],\n ['opacity', new THREE.Uniform(opacity)],\n ]),\n });\n }\n update(_renderer, _inputBuffer, deltaTime) {\n const iTime = this.uniforms.get('iTime');\n if (iTime) {\n iTime.value += deltaTime;\n }\n }\n}\nconst defaultOptions = {\n position: new THREE.Vector3(-25, 6, -60),\n followMouse: false,\n smoothTime: 0.7,\n};\nexport class NgtpLensFlare {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.effectOptions = omit(this.options, ['position', 'followMouse', 'smoothTime']);\n this.position = vector3(this.options, 'position');\n this.projectedPosition = new THREE.Vector3();\n this.mouse2d = new THREE.Vector2();\n this.effect = computed(() => new LensFlareEffect(this.effectOptions()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [lensFlareEffect, width, height] = [\n this.effect(),\n this.store.viewport.width(),\n this.store.viewport.height(),\n ];\n const iResolution = lensFlareEffect.uniforms.get('iResolution');\n if (iResolution) {\n iResolution.value.x = width;\n iResolution.value.y = height;\n }\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n beforeRender(({ delta }) => {\n const [effect] = [this.effect()];\n if (!effect)\n return;\n const [{ followMouse, smoothTime }, position, pointer, camera, scene, raycaster] = [\n this.options(),\n this.position(),\n this.store.snapshot.pointer,\n this.effectComposer.camera(),\n this.effectComposer.scene(),\n this.store.snapshot.raycaster,\n ];\n const uLensPosition = effect.uniforms.get('lensPosition');\n const uOpacity = effect.uniforms.get('opacity');\n if (!uLensPosition || !uOpacity)\n return;\n let target = 1;\n if (followMouse) {\n uLensPosition.value.x = pointer.x;\n uLensPosition.value.y = pointer.y;\n target = 0;\n }\n else {\n this.projectedPosition.copy(position).project(camera);\n if (this.projectedPosition.z > 1)\n return;\n uLensPosition.value.x = this.projectedPosition.x;\n uLensPosition.value.y = this.projectedPosition.y;\n this.mouse2d.set(this.projectedPosition.x, this.projectedPosition.y);\n raycaster.setFromCamera(this.mouse2d, camera);\n const intersects = raycaster.intersectObjects(scene.children, true);\n const { object } = intersects[0] ?? {};\n if (object) {\n if (object.userData?.['lensflare'] === 'no-occlusion') {\n target = 0;\n }\n else if (is.three(object, 'isMesh')) {\n if (object.material.uniforms?.['_transmission']?.value > 0.2) {\n //Check for MeshTransmissionMaterial\n target = 0.2;\n }\n else if ('_transmission' in object.material &&\n typeof object.material._transmission === 'number' &&\n object.material._transmission > 0.2) {\n //Check for MeshPhysicalMaterial with transmission setting\n target = 0.2;\n }\n else if (object.material.transparent) {\n // Check for OtherMaterials with transparent parameter\n target = object.material.opacity;\n }\n }\n }\n }\n easing.damp(uOpacity, 'value', target, smoothTime, delta);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLensFlare, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpLensFlare, isStandalone: true, selector: \"ngtp-lens-flare\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLensFlare, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lens-flare',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [parameters]=\"{ dispose: null }\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVucy1mbGFyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL2xlbnMtZmxhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DO0FBQ25DLHVDQUF1QztBQUV2QyxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV4RCxNQUFNLGVBQWUsR0FBRztJQUN2QixjQUFjLEVBQUUsd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEN6QztDQUNBLENBQUM7QUFFRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxNQUFNO0lBQzFDLFlBQVksRUFDWCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFDcEMsT0FBTyxHQUFHLElBQUksRUFDZCxTQUFTLEdBQUcsR0FBRyxFQUNmLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFDM0IsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNwQixVQUFVLEdBQUcsQ0FBQyxFQUNkLFNBQVMsR0FBRyxJQUFJLEVBQ2hCLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLEtBQUssRUFDbEIsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUN2QyxlQUFlLEdBQUcsSUFBNEIsRUFDOUMsU0FBUyxHQUFHLEdBQUcsRUFDZixlQUFlLEdBQUcsSUFBSSxFQUN0QixnQkFBZ0IsR0FBRyxJQUFJLEVBQ3ZCLFVBQVUsR0FBRyxHQUFHLEVBQ2hCLE9BQU8sR0FBRyxHQUFHLEVBQ2IsU0FBUyxHQUFHLEtBQUssTUFDZCxFQUFFO1FBQ0wsS0FBSyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxjQUFjLEVBQUU7WUFDeEQsYUFBYTtZQUNiLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBd0I7Z0JBQ3hDLENBQUMsU0FBUyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2pELENBQUMsT0FBTyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLENBQUMsVUFBVSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM3QyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdDLENBQUMsV0FBVyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDSixDQUFDO0lBRVEsTUFBTSxDQUFDLFNBQThCLEVBQUUsWUFBcUMsRUFBRSxTQUFpQjtRQUN2RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1gsS0FBSyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUM7UUFDMUIsQ0FBQztJQUNGLENBQUM7Q0FDRDtBQVFELE1BQU0sY0FBYyxHQUFxQjtJQUN4QyxRQUFRLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN4QyxXQUFXLEVBQUUsS0FBSztJQUNsQixVQUFVLEVBQUUsR0FBRztDQUNmLENBQUM7QUFXRixNQUFNLE9BQU8sYUFBYTtJQWV6QjtRQWRBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRXBFLFVBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUV0QixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTVDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUUsYUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdDLHNCQUFpQixHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLFlBQU8sR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU1QixXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxrREFBQyxDQUFDO1FBRzVFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDeEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTthQUM1QixDQUFDO1lBQ0YsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDaEUsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDakIsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLE1BQU0sQ0FBQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUc7Z0JBQ2xGLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVM7YUFDN0IsQ0FBQztZQUVGLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFFeEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWYsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDakIsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNaLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQUUsT0FBTztnQkFFekMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFDakQsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFFakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JFLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNaLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLGNBQWMsRUFBRSxDQUFDO3dCQUN2RCxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNaLENBQUM7eUJBQU0sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUF5RCxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQzt3QkFDL0YsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQzs0QkFDOUQsb0NBQW9DOzRCQUNwQyxNQUFNLEdBQUcsR0FBRyxDQUFDO3dCQUNkLENBQUM7NkJBQU0sSUFDTixlQUFlLElBQUksTUFBTSxDQUFDLFFBQVE7NEJBQ2xDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEtBQUssUUFBUTs0QkFDakQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUNsQyxDQUFDOzRCQUNGLDBEQUEwRDs0QkFDMUQsTUFBTSxHQUFHLEdBQUcsQ0FBQzt3QkFDZCxDQUFDOzZCQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQzs0QkFDeEMsc0RBQXNEOzRCQUN0RCxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQ2xDLENBQUM7b0JBQ0YsQ0FBQztnQkFDRixDQUFDO1lBQ0YsQ0FBQztZQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0E1RlcsYUFBYTtrR0FBYixhQUFhLHFOQVBmOztFQUVULDREQUNTLE9BQU87OzJGQUlMLGFBQWE7a0JBVHpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENyZWF0ZWQgYnkgQW5kZXJzb24gTWFuY2luaSAyMDIzXG4vLyBSZWFjdCBUaHJlZSBGaWJlciBVbHRpbWF0ZSBMZW5zRmxhcmVcblxuaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBOZ3RWZWN0b3IzLCBiZWZvcmVSZW5kZXIsIGluamVjdFN0b3JlLCBpcywgb21pdCwgdmVjdG9yMyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgZWFzaW5nIH0gZnJvbSAnbWFhdGgnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgQmxlbmRGdW5jdGlvbiwgRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuY29uc3QgTGVuc0ZsYXJlU2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcblxuICB1bmlmb3JtIGZsb2F0IGlUaW1lO1xuICB1bmlmb3JtIHZlYzIgbGVuc1Bvc2l0aW9uO1xuICB1bmlmb3JtIHZlYzIgaVJlc29sdXRpb247XG4gIHVuaWZvcm0gdmVjMyBjb2xvckdhaW47XG4gIHVuaWZvcm0gZmxvYXQgc3RhclBvaW50cztcbiAgdW5pZm9ybSBmbG9hdCBnbGFyZVNpemU7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTaXplO1xuICB1bmlmb3JtIGZsb2F0IGZsYXJlU3BlZWQ7XG4gIHVuaWZvcm0gZmxvYXQgZmxhcmVTaGFwZTtcbiAgdW5pZm9ybSBmbG9hdCBoYWxvU2NhbGU7XG4gIHVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbiAgdW5pZm9ybSBib29sIGFuaW1hdGVkO1xuICB1bmlmb3JtIGJvb2wgYW5hbW9ycGhpYztcbiAgdW5pZm9ybSBib29sIGVuYWJsZWQ7XG4gIHVuaWZvcm0gYm9vbCBzZWNvbmRhcnlHaG9zdHM7XG4gIHVuaWZvcm0gYm9vbCBzdGFyQnVyc3Q7XG4gIHVuaWZvcm0gZmxvYXQgZ2hvc3RTY2FsZTtcbiAgdW5pZm9ybSBib29sIGFkaXRpb25hbFN0cmVha3M7XG4gIHVuaWZvcm0gc2FtcGxlcjJEIGxlbnNEaXJ0VGV4dHVyZTtcbiAgdmVjMiB2eHRDO1xuXG4gIGZsb2F0IHJuZGYoZmxvYXQgbil7cmV0dXJuIGZyYWN0KHNpbihuKSAqIDQzNzU4LjU0NTMxMjMpO31mbG9hdCBuaXooZmxvYXQgcCl7ZmxvYXQgZmwgPSBmbG9vcihwKTtmbG9hdCBmYyA9IGZyYWN0KHApO3JldHVybiBtaXgocm5kZihmbCkscm5kZihmbCArIDEuMCksIGZjKTt9XG4gIHZlYzMgaHN2MnJnYih2ZWMzIGMpe3ZlYzQgayA9IHZlYzQoMS4wLCAyLjAgLyAzLjAsIDEuMCAvIDMuMCwgMy4wKTt2ZWMzIHAgPSBhYnMoZnJhY3QoYy54eHggKyBrLnh5eikgKiA2LjAgLSBrLnd3dyk7cmV0dXJuIGMueiAqIG1peChrLnh4eCwgY2xhbXAocCAtIGsueHh4LCAwLjAsIDEuMCksIGMueSk7fVxuICBmbG9hdCBzYXRVKGZsb2F0IHgpe3JldHVybiBjbGFtcCh4LCAwLiwxLik7fXZlYzIgcnRVKHZlYzIgbmF6LCBmbG9hdCBydG4pe3JldHVybiB2ZWMyKGNvcyhydG4pICogbmF6LnggKyBzaW4ocnRuKSAqIG5hei55LGNvcyhydG4pICogbmF6LnkgLSBzaW4ocnRuKSAqIG5hei54KTt9XG4gIHZlYzMgZHJ3Rih2ZWMyIHAsIGZsb2F0IGludGVuc2l0eSwgZmxvYXQgcm5kLCBmbG9hdCBzcGVlZCwgaW50IGlkKXtmbG9hdCBmbGhvcyA9ICgxLiAvIDMyLikgKiBmbG9hdChpZCkgKiAwLjE7ZmxvYXQgbGluZ3JhZCA9IGRpc3RhbmNlKHZlYzIoMC4pLCBwKTtmbG9hdCBleHBnID0gMS4gLyBleHAobGluZ3JhZCAqIChmcmFjdChybmQpICogMC42NiArIDAuMzMpKTt2ZWMzIHF6VGcgPSBoc3YycmdiKHZlYzMoIGZyYWN0KCAoZXhwZyAqIDguKSArIHNwZWVkICogZmxhcmVTcGVlZCArIGZsaG9zKSwgcG93KDEuLWFicyhleHBnKjIuLTEuKSwgMC40NSksIDIwLjAgKiBleHBnICogaW50ZW5zaXR5KSk7ZmxvYXQgaW50ZXJuYWxTdGFyUG9pbnRzO2lmKGFuYW1vcnBoaWMpe2ludGVybmFsU3RhclBvaW50cyA9IDEuMDt9IGVsc2V7aW50ZXJuYWxTdGFyUG9pbnRzID0gc3RhclBvaW50czt9ZmxvYXQgYW1zID0gbGVuZ3RoKHAgKiBmbGFyZVNoYXBlICogc2luKGludGVybmFsU3RhclBvaW50cyAqIGF0YW4ocC54LCBwLnkpKSk7ZmxvYXQga0poZyA9IHBvdygxLi1zYXRVKGFtcyksICggYW5hbW9ycGhpYyA/IDEwMC4gOiAxMi4pKTtrSmhnICs9IHNhdFUoZXhwZy0wLjkpICogMy47a0poZyA9IHBvdyhrSmhnICogZXhwZywgOC4gKyAoMS4taW50ZW5zaXR5KSAqIDUuKTtpZihmbGFyZVNwZWVkID4gMC4wKXtyZXR1cm4gdmVjMyhrSmhnKSAqIHF6VGc7fSBlbHNle3JldHVybiB2ZWMzKGtKaGcpICogZmxhcmVTaXplICogMTUuO319XG4gIGZsb2F0IGFtczIodmVjMyBhLCB2ZWMzIGIpIHsgcmV0dXJuIGFicyhhLnggLSBiLngpICsgYWJzKGEueSAtIGIueSkgKyBhYnMoYS56IC0gYi56KTt9dmVjMyBzYXRVKHZlYzMgeCl7cmV0dXJuIGNsYW1wKHgsIHZlYzMoMC4wKSwgdmVjMygxLjApKTt9XG4gIGZsb2F0IGdsUih2ZWMyIG5heiwgdmVjMiBwb3MsIGZsb2F0IHpzaSl7dmVjMiBtbmk7aWYoYW5pbWF0ZWQpe21uaSA9IHJ0VShuYXotcG9zLCBpVGltZSAqIDAuMSk7fSBlbHNle21uaSA9IG5hei1wb3M7fWZsb2F0IGFuZyA9IGF0YW4obW5pLnksIG1uaS54KSAqIChhbmFtb3JwaGljID8gMS4wIDogc3RhclBvaW50cyk7ZmxvYXQgYW1zMiA9IGxlbmd0aChtbmkpO2FtczIgPSBwb3coYW1zMiwgLjkpO2Zsb2F0IGYwID0gMS4wLyhsZW5ndGgobmF6LXBvcykqKDEuMC96c2kqMTYuMCkrLjIpO3JldHVybiBmMCtmMCooc2luKChhbmcpKSouMiArLjMpO31cbiAgZmxvYXQgc2RIZXgodmVjMiBwKXtwID0gYWJzKHApO3ZlYzIgcSA9IHZlYzIocC54KjIuMCowLjU3NzM1MDMsIHAueSArIHAueCowLjU3NzM1MDMpO3JldHVybiBkb3Qoc3RlcChxLnh5LHEueXgpLCAxLjAtcS55eCk7fWZsb2F0IGZwb3coZmxvYXQgeCwgZmxvYXQgayl7cmV0dXJuIHggPiBrID8gcG93KCh4LWspLygxLjAtayksMi4wKSA6IDAuMDt9XG4gIHZlYzMgckh4KHZlYzIgbmF6LCB2ZWMyIHAsIGZsb2F0IHMsIHZlYzMgY29sKXtuYXogLT0gcDtpZiAoYWJzKG5hei54KSA8IDAuMipzICYmIGFicyhuYXoueSkgPCAwLjIqcyl7cmV0dXJuIG1peCh2ZWMzKDApLG1peCh2ZWMzKDApLGNvbCwwLjEgKyBmcG93KGxlbmd0aChuYXovcyksMC4xKSoxMC4wKSxzbW9vdGhzdGVwKDAuMCwwLjEsc2RIZXgobmF6KjIwLjAvcykpKTt9cmV0dXJuIHZlYzMoMCk7fVxuICB2ZWMzIG1Mcyh2ZWMyIG5heiwgdmVjMiBwb3Mpe3ZlYzIgbW5pID0gbmF6LXBvczt2ZWMyIHp4TXAgPSBuYXoqKGxlbmd0aChuYXopKTtmbG9hdCBhbmcgPSBhdGFuKG1uaS54LG1uaS55KTtmbG9hdCBmMCA9IC4zLyhsZW5ndGgobmF6LXBvcykqMTYuMCsxLjApO2YwID0gZjAqKHNpbihuaXooc2luKGFuZyozLjktKGFuaW1hdGVkID8gaVRpbWUgOiAwLjApICogMC4zKSAqIHN0YXJQb2ludHMpKSouMiApO2Zsb2F0IGYxID0gbWF4KDAuMDEtcG93KGxlbmd0aChuYXorMS4yKnBvcyksMS45KSwuMCkqNy4wO2Zsb2F0IGYyID0gbWF4KC45LygxMC4wKzMyLjAqcG93KGxlbmd0aCh6eE1wKzAuOTkqcG9zKSwyLjApKSwuMCkqMC4zNTtmbG9hdCBmMjIgPSBtYXgoLjkvKDExLjArMzIuMCpwb3cobGVuZ3RoKHp4TXArMC44NSpwb3MpLDIuMCkpLC4wKSowLjIzO2Zsb2F0IGYyMyA9IG1heCguOS8oMTIuMCszMi4wKnBvdyhsZW5ndGgoenhNcCswLjk1KnBvcyksMi4wKSksLjApKjAuNjt2ZWMyIHp0WCA9IG1peChuYXosenhNcCwgMC4xKTtmbG9hdCBmNCA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuNCpwb3MpLDIuOSksLjApKjQuMDI7ZmxvYXQgZjQyID0gbWF4KDAuMC1wb3cobGVuZ3RoKHp0WCswLjQ1KnBvcyksMi45KSwuMCkqNC4xO2Zsb2F0IGY0MyA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuNSpwb3MpLDIuOSksLjApKjQuNjt6dFggPSBtaXgobmF6LHp4TXAsLS40KTtmbG9hdCBmNSA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYKzAuMSpwb3MpLDUuNSksLjApKjIuMDtmbG9hdCBmNTIgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WCswLjIqcG9zKSw1LjUpLC4wKSoyLjA7ZmxvYXQgZjUzID0gbWF4KDAuMDEtcG93KGxlbmd0aCh6dFgrMC4xKnBvcyksNS41KSwuMCkqMi4wO3p0WCA9IG1peChuYXosenhNcCwgMi4xKTtmbG9hdCBmNiA9IG1heCgwLjAxLXBvdyhsZW5ndGgoenRYLTAuMypwb3MpLDEuNjEpLC4wKSozLjE1OTtmbG9hdCBmNjIgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjMyNSpwb3MpLDEuNjE0KSwuMCkqMy4xNDtmbG9hdCBmNjMgPSBtYXgoMC4wMS1wb3cobGVuZ3RoKHp0WC0wLjM4OSpwb3MpLDEuNjIzKSwuMCkqMy4xMjt2ZWMzIGMgPSB2ZWMzKGdsUihuYXoscG9zLCBnbGFyZVNpemUpKTt2ZWMyIHByb3Q7aWYoYW5pbWF0ZWQpe3Byb3QgPSBydFUobmF6IC0gcG9zLCAoaVRpbWUgKiAwLjEpKTt9IGVsc2UgaWYoYW5hbW9ycGhpYyl7cHJvdCA9IHJ0VShuYXogLSBwb3MsIDEuNTcwNzk2KTt9IGVsc2Uge3Byb3QgPSBuYXogLSBwb3M7fWMgKz0gZHJ3Rihwcm90LCAoYW5hbW9ycGhpYyA/IGZsYXJlU2l6ZSAqIDEwLiA6IGZsYXJlU2l6ZSksIDAuMSwgaVRpbWUsIDEpO2Mucis9ZjErZjIrZjQrZjUrZjY7IGMuZys9ZjErZjIyK2Y0MitmNTIrZjYyOyBjLmIrPWYxK2YyMytmNDMrZjUzK2Y2MztjID0gYyoxLjMgKiB2ZWMzKGxlbmd0aCh6eE1wKSsuMDkpO2MrPXZlYzMoZjApO3JldHVybiBjO31cbiAgdmVjMyBjYyh2ZWMzIGNsciwgZmxvYXQgZmN0LGZsb2F0IGZjdDIpe2Zsb2F0IHcgPSBjbHIueCtjbHIueStjbHIuejtyZXR1cm4gbWl4KGNscix2ZWMzKHcpKmZjdCx3KmZjdDIpO31mbG9hdCBybmQodmVjMiBwKXtmbG9hdCBmID0gZnJhY3Qoc2luKGRvdChwLCB2ZWMyKDEyLjEyMzQsIDcyLjgzOTIpICkqNDUxMjMuMikpO3JldHVybiBmO31mbG9hdCBybmQoZmxvYXQgdyl7ZmxvYXQgZiA9IGZyYWN0KHNpbih3KSoxMDAwLik7cmV0dXJuIGY7fVxuICBmbG9hdCByU2hwKHZlYzIgcCwgaW50IE4pe2Zsb2F0IGY7ZmxvYXQgYT1hdGFuKHAueCxwLnkpKy4yO2Zsb2F0IGI9Ni4yODMxOS9mbG9hdChOKTtmPXNtb290aHN0ZXAoLjUsLjUxLCBjb3MoZmxvb3IoLjUrYS9iKSpiLWEpKmxlbmd0aChwLnh5KSogMi4wICAtZ2hvc3RTY2FsZSk7cmV0dXJuIGY7fVxuICB2ZWMzIGRyQyh2ZWMyIHAsIGZsb2F0IHpzaSwgZmxvYXQgZEN5LCB2ZWMzIGNsciwgdmVjMyBjbHIyLCBmbG9hdCBhbXMyLCB2ZWMyIGVzb20pe2Zsb2F0IGwgPSBsZW5ndGgocCArIGVzb20qKGFtczIqMi4pKSt6c2kvMi47ZmxvYXQgbDIgPSBsZW5ndGgocCArIGVzb20qKGFtczIqNC4pKSt6c2kvMy47ZmxvYXQgYyA9IG1heCgwLjAxLXBvdyhsZW5ndGgocCArIGVzb20qYW1zMiksIHpzaSpnaG9zdFNjYWxlKSwgMC4wKSoxMC47ZmxvYXQgYzEgPSBtYXgoMC4wMDEtcG93KGwtMC4zLCAxLi80MC4pK3NpbihsKjIwLiksIDAuMCkqMy47ZmxvYXQgYzIgPSAgbWF4KDAuMDkvcG93KGxlbmd0aChwLWVzb20qYW1zMi8uNSkqMS4sIC45NSksIDAuMCkvMjAuO2Zsb2F0IHMgPSBtYXgoMC4wMi1wb3coclNocChwKjUuICsgZXNvbSphbXMyKjUuICsgZEN5LCA2KSAsIDEuKSwgMC4wKSoxLjU7Y2xyID0gY29zKHZlYzMoMC40NCwgLjI0LCAuMikqOC4gKyBhbXMyKjQuKSowLjUrLjU7dmVjMyBmID0gYypjbHI7ZiArPSBjMSpjbHI7ZiArPSBjMipjbHI7ZiArPSAgcypjbHI7cmV0dXJuIGYtMC4wMTt9XG4gIHZlYzQgZ2VMQyhmbG9hdCB4KXtyZXR1cm4gdmVjNCh2ZWMzKG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KG1peChtaXgobWl4KHZlYzMoMC4sIDAuLCAwLiksdmVjMygwLiwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjAsIDAuMDYzLCB4KSksdmVjMygwLiwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjA2MywgMC4xMjUsIHgpKSx2ZWMzKDAuMCwgMC4sIDAuKSwgc21vb3Roc3RlcCgwLjEyNSwgMC4xODgsIHgpKSx2ZWMzKDAuMTg4LCAwLjEzMSwgMC4xMTYpLCBzbW9vdGhzdGVwKDAuMTg4LCAwLjIyNywgeCkpLHZlYzMoMC4zMSwgMC4yMDQsIDAuNTM3KSwgc21vb3Roc3RlcCgwLjIyNywgMC4yNTEsIHgpKSx2ZWMzKDAuMTkyLCAwLjEwNiwgMC4yODYpLCBzbW9vdGhzdGVwKDAuMjUxLCAwLjMxNCwgeCkpLHZlYzMoMC4xMDIsIDAuMDA4LCAwLjM0MSksIHNtb290aHN0ZXAoMC4zMTQsIDAuMzkyLCB4KSksdmVjMygwLjA4NiwgMC4wLCAwLjE0MSksIHNtb290aHN0ZXAoMC4zOTIsIDAuNTAyLCB4KSksdmVjMygxLjAsIDAuMzEsIDAuMCksIHNtb290aHN0ZXAoMC41MDIsIDAuNjA0LCB4KSksdmVjMyguMSwgMC4xLCAwLjEpLCBzbW9vdGhzdGVwKDAuNjA0LCAwLjY0MywgeCkpLHZlYzMoMS4wLCAwLjkyOSwgMC4wKSwgc21vb3Roc3RlcCgwLjY0MywgMC43NjEsIHgpKSx2ZWMzKDEuMCwgMC4wODYsIDAuNDI0KSwgc21vb3Roc3RlcCgwLjc2MSwgMC44NDcsIHgpKSx2ZWMzKDEuMCwgMC40OSwgMC4wKSwgc21vb3Roc3RlcCgwLjg0NywgMC44OSwgeCkpLHZlYzMoMC45NDUsIDAuMjc1LCAwLjQ3NSksIHNtb290aHN0ZXAoMC44OSwgMC45NDEsIHgpKSx2ZWMzKDAuMjUxLCAwLjI3NSwgMC43OTYpLCBzbW9vdGhzdGVwKDAuOTQxLCAxLjAsIHgpKSksMS4wKTt9XG4gIGZsb2F0IGRpVE4odmVjMiBwKXt2ZWMyIGYgPSBmcmFjdChwKTtmID0gKGYgKiBmKSAqICgzLjAgLSAoMi4wICogZikpO2Zsb2F0IG4gPSBkb3QoZmxvb3IocCksIHZlYzIoMS4wLCAxNTcuMCkpO3ZlYzQgYSA9IGZyYWN0KHNpbih2ZWM0KG4gKyAwLjAsIG4gKyAxLjAsIG4gKyAxNTcuMCwgbiArIDE1OC4wKSkgKiA0Mzc1OC41NDUzMTIzKTtyZXR1cm4gbWl4KG1peChhLngsIGEueSwgZi54KSwgbWl4KGEueiwgYS53LCBmLngpLCBmLnkpO31cbiAgZmxvYXQgZmJtKHZlYzIgcCl7Y29uc3QgbWF0MiBtID0gbWF0MigwLjgwLCAtMC42MCwgMC42MCwgMC44MCk7ZmxvYXQgZiA9IDAuMDtmICs9IDAuNTAwMCpkaVROKHApOyBwID0gbSpwKjIuMDI7ZiArPSAwLjI1MDAqZGlUTihwKTsgcCA9IG0qcCoyLjAzO2YgKz0gMC4xMjUwKmRpVE4ocCk7IHAgPSBtKnAqMi4wMTtmICs9IDAuMDYyNSpkaVROKHApO3JldHVybiBmLzAuOTM3NTt9XG4gIHZlYzQgZ2VMUyh2ZWMyIHApe3ZlYzIgcHAgPSAocCAtIHZlYzIoMC41KSkgKiAyLjA7ZmxvYXQgYSA9IGF0YW4ocHAueSwgcHAueCk7dmVjNCBjcCA9IHZlYzQoc2luKGEgKiAxLjApLCBsZW5ndGgocHApLCBzaW4oYSAqIDEzLjApLCBzaW4oYSAqIDUzLjApKTtmbG9hdCBkID0gc2luKGNsYW1wKHBvdyhsZW5ndGgodmVjMigwLjUpIC0gcCkgKiAwLjUgKyBoYWxvU2NhbGUgLzIuLCA1LjApLCAwLjAsIDEuMCkgKiAzLjE0MTU5KTt2ZWMzIGMgPSB2ZWMzKGQpICogdmVjMyhmYm0oY3AueHkgKiAxNi4wKSAqIGZibShjcC56dyAqIDkuMCkgKiBtYXgobWF4KG1heChtYXgoMC41LCBzaW4oYSAqIDEuMCkpLCBzaW4oYSAqIDMuMCkgKiAwLjgpLCBzaW4oYSAqIDcuMCkgKiAwLjgpLCBzaW4oYSAqIDkuMCkgKiAxMC42KSk7YyAqPSB2ZWMzKG1peCgyLjAsIChzaW4obGVuZ3RoKHBwLnh5KSAqIDI1Ni4wKSAqIDAuNSkgKyAwLjUsIHNpbigoY2xhbXAoKGxlbmd0aChwcC54eSkgLSAwLjg3NSkgLyAwLjEsIDAuMCwgMS4wKSArIDAuMCkgKiAyLjAgKiAzLjE0MTU5KSAqIDEuNSkgKyAwLjUpICogMC4zMjc1O3JldHVybiB2ZWM0KHZlYzMoYyAqIDEuMCksIGQpO31cbiAgdmVjNCBnZUxEKHZlYzIgcCl7cC54eSArPSB2ZWMyKGZibShwLnl4ICogMy4wKSwgZmJtKHAueXggKiAyLjApKSAqIDAuMDgyNTt2ZWMzIG8gPSB2ZWMzKG1peCgwLjEyNSwgMC4yNSwgbWF4KG1heChzbW9vdGhzdGVwKDAuMSwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC4yNSkpKSxzbW9vdGhzdGVwKDAuNCwgMC4wLCBsZW5ndGgocCAtIHZlYzIoMC43NSkpKSksc21vb3Roc3RlcCgwLjgsIDAuMCwgbGVuZ3RoKHAgLSB2ZWMyKDAuODc1LCAwLjEyNSkpKSkpKTtvICs9IHZlYzMobWF4KGZibShwICogMS4wKSAtIDAuNSwgMC4wKSkgKiAwLjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDIuMCkgLSAwLjUsIDAuMCkpICogMC41O28gKz0gdmVjMyhtYXgoZmJtKHAgKiA0LjApIC0gMC41LCAwLjApKSAqIDAuMjU7byArPSB2ZWMzKG1heChmYm0ocCAqIDguMCkgLSAwLjc1LCAwLjApKSAqIDEuMDtvICs9IHZlYzMobWF4KGZibShwICogMTYuMCkgLSAwLjc1LCAwLjApKSAqIDAuNzU7byArPSB2ZWMzKG1heChmYm0ocCAqIDY0LjApIC0gMC43NSwgMC4wKSkgKiAwLjU7cmV0dXJuIHZlYzQoY2xhbXAobywgdmVjMygwLjE1KSwgdmVjMygxLjApKSwgMS4wKTt9XG4gIHZlYzQgdHhMKHNhbXBsZXIyRCB0ZXgsIHZlYzIgeHRDKXtpZigoKHh0Qy54IDwgMC4pIHx8ICh4dEMueSA8IDAuKSkgfHwgKCh4dEMueCA+IDEuKSB8fCAoeHRDLnkgPiAxLikpKXtyZXR1cm4gdmVjNCgwLjApO31lbHNle3JldHVybiB0ZXh0dXJlKHRleCwgeHRDKTsgfX1cbiAgdmVjNCB0eEQoc2FtcGxlcjJEIHRleCwgdmVjMiB4dEMsIHZlYzIgZGlyLCB2ZWMzIGRpdG4pIHtyZXR1cm4gdmVjNCh0eEwodGV4LCAoeHRDICsgKGRpciAqIGRpdG4ucikpKS5yLHR4TCh0ZXgsICh4dEMgKyAoZGlyICogZGl0bi5nKSkpLmcsdHhMKHRleCwgKHh0QyArIChkaXIgKiBkaXRuLmIpKSkuYiwxLjApO31cbiAgdmVjNCBzdHJCKCl7dmVjMiBhc3BYdGMgPSB2ZWMyKDEuMCkgLSAoKCh2eHRDIC0gdmVjMigwLjUpKSAqIHZlYzIoMS4wKSkgKyB2ZWMyKDAuNSkpOyB2ZWMyIHh0QyA9IHZlYzIoMS4wKSAtIHZ4dEM7IHZlYzIgZ2h2YyA9ICh2ZWMyKDAuNSkgLSB4dEMpICogMC4zIC0gbGVuc1Bvc2l0aW9uOyB2ZWMyIGdoTm0gPSBub3JtYWxpemUoZ2h2YyAqIHZlYzIoMS4wKSkgKiB2ZWMyKDEuMCk7dmVjMiBoYWxvVmVjID0gbm9ybWFsaXplKGdodmMpICogMC42O3ZlYzIgaGxObSA9IGdoTm0gKiAwLjY7dmVjMiB0ZXhlbFNpemUgPSB2ZWMyKDEuMCkgLyB2ZWMyKGlSZXNvbHV0aW9uLnh5KTt2ZWMzIGRpdG4gPSB2ZWMzKC0odGV4ZWxTaXplLnggKiAxLjUpLCAwLjIsIHRleGVsU2l6ZS54ICogMS41KTt2ZWM0IGMgPSB2ZWM0KDAuMCk7Zm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHt2ZWMyIG9mZnNldCA9IHh0QyArIChnaHZjICogZmxvYXQoaSkpO2MgKz0gdHhEKGxlbnNEaXJ0VGV4dHVyZSwgb2Zmc2V0LCBnaE5tLCBkaXRuKSAqIHBvdyhtYXgoMC4wLCAxLjAgLSAobGVuZ3RoKHZlYzIoMC41KSAtIG9mZnNldCkgLyBsZW5ndGgodmVjMigwLjUpKSkpLCAxMC4wKTt9dmVjMiB1eVRyeiA9IHh0QyArIGhsTm07IHJldHVybiAoYyAqIGdlTEMoKGxlbmd0aCh2ZWMyKDAuNSkgLSBhc3BYdGMpIC8gbGVuZ3RoKHZlYzIoaGFsb1NjYWxlKSkpKSkgKyh0eEQobGVuc0RpcnRUZXh0dXJlLCB1eVRyeiwgZ2hObSwgZGl0bikgKiBwb3cobWF4KDAuMCwgMS4wIC0gKGxlbmd0aCh2ZWMyKDAuNSkgLSB1eVRyeikgLyBsZW5ndGgodmVjMigwLjUpKSkpLCAxMC4wKSk7fVxuICB2b2lkIG1haW5JbWFnZSh2ZWM0IHYsdmVjMiByLG91dCB2ZWM0IGkpe3ZlYzIgZz1yLS41O2cueSo9aVJlc29sdXRpb24ueS9pUmVzb2x1dGlvbi54O3ZlYzIgbD1sZW5zUG9zaXRpb24qLjU7bC55Kj1pUmVzb2x1dGlvbi55L2lSZXNvbHV0aW9uLng7dmVjMyBmPW1McyhnLGwpKjIwLipjb2xvckdhaW4vMjU2LjtpZihhZGl0aW9uYWxTdHJlYWtzKXt2ZWMzIG89dmVjMyguOSwuMiwuMSkscD12ZWMzKC4zLC4xLC45KTtmb3IoZmxvYXQgbj0wLjtuPDEwLjtuKyspZis9ZHJDKGcscG93KHJuZChuKjJlMykqMi44LC4xKSsxLjQxLDAuLG8rbixwK24scm5kKG4qMjAuKSozLisuMi0uNSxsZW5zUG9zaXRpb24pO31pZihzZWNvbmRhcnlHaG9zdHMpe3ZlYzMgbj12ZWMzKDApO24rPXJIeChnLC1sZW5zUG9zaXRpb24qLjI1LGdob3N0U2NhbGUqMS40LHZlYzMoLjI1LC4zNSwwKSk7bis9ckh4KGcsbGVuc1Bvc2l0aW9uKi4yNSxnaG9zdFNjYWxlKi41LHZlYzMoMSwuNSwuNSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbiouMSxnaG9zdFNjYWxlKjEuNix2ZWMzKDEpKTtuKz1ySHgoZyxsZW5zUG9zaXRpb24qMS44LGdob3N0U2NhbGUqMi4sdmVjMygwLC41LC43NSkpO24rPXJIeChnLGxlbnNQb3NpdGlvbioxLjI1LGdob3N0U2NhbGUqLjgsdmVjMygxLDEsLjUpKTtuKz1ySHgoZywtbGVuc1Bvc2l0aW9uKjEuMjUsZ2hvc3RTY2FsZSo1Lix2ZWMzKC41LC41LC4yNSkpO24rPWZwb3coMS4tYWJzKGRpc3RhbmNlKGxlbnNQb3NpdGlvbiouOCxnKS0uNyksLjk4NSkqY29sb3JHYWluLzIxMDAuO2YrPW47fWlmKHN0YXJCdXJzdCl7dnh0Qz1nKy41O3ZlYzQgbj1nZUxEKGcpO2Zsb2F0IG89MS4tY2xhbXAoMC41LDAuLC41KSoyLjtuKz1taXgobixwb3cobioyLix2ZWM0KDIpKSouNSxvKTtmbG9hdCBzPShnLngrZy55KSooMS4vNi4pO3ZlYzIgZD1tYXQyKGNvcyhzKSwtc2luKHMpLHNpbihzKSxjb3MocykpKnZ4dEM7bis9Z2VMUyhkKSoyLjtmKz1jbGFtcChuLnh5eipzdHJCKCkueHl6LC4wMSwxLik7fWk9ZW5hYmxlZD92ZWM0KG1peChmLHZlYzMoMCksb3BhY2l0eSkrdi54eXosdi53KTp2ZWM0KHYpO31cbmAsXG59O1xuXG5leHBvcnQgY2xhc3MgTGVuc0ZsYXJlRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCxcblx0XHRlbmFibGVkID0gdHJ1ZSxcblx0XHRnbGFyZVNpemUgPSAwLjIsXG5cdFx0bGVuc1Bvc2l0aW9uID0gWzAuMDEsIDAuMDFdLFxuXHRcdGlSZXNvbHV0aW9uID0gWzAsIDBdLFxuXHRcdHN0YXJQb2ludHMgPSA2LFxuXHRcdGZsYXJlU2l6ZSA9IDAuMDEsXG5cdFx0ZmxhcmVTcGVlZCA9IDAuMDEsXG5cdFx0ZmxhcmVTaGFwZSA9IDAuMDEsXG5cdFx0YW5pbWF0ZWQgPSB0cnVlLFxuXHRcdGFuYW1vcnBoaWMgPSBmYWxzZSxcblx0XHRjb2xvckdhaW4gPSBuZXcgVEhSRUUuQ29sb3IoMjAsIDIwLCAyMCksXG5cdFx0bGVuc0RpcnRUZXh0dXJlID0gbnVsbCBhcyBUSFJFRS5UZXh0dXJlIHwgbnVsbCxcblx0XHRoYWxvU2NhbGUgPSAwLjUsXG5cdFx0c2Vjb25kYXJ5R2hvc3RzID0gdHJ1ZSxcblx0XHRhZGl0aW9uYWxTdHJlYWtzID0gdHJ1ZSxcblx0XHRnaG9zdFNjYWxlID0gMC4wLFxuXHRcdG9wYWNpdHkgPSAxLjAsXG5cdFx0c3RhckJ1cnN0ID0gZmFsc2UsXG5cdH0gPSB7fSkge1xuXHRcdHN1cGVyKCdMZW5zRmxhcmVFZmZlY3QnLCBMZW5zRmxhcmVTaGFkZXIuZnJhZ21lbnRTaGFkZXIsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHR1bmlmb3JtczogbmV3IE1hcDxzdHJpbmcsIFRIUkVFLlVuaWZvcm0+KFtcblx0XHRcdFx0WydlbmFibGVkJywgbmV3IFRIUkVFLlVuaWZvcm0oZW5hYmxlZCldLFxuXHRcdFx0XHRbJ2dsYXJlU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGdsYXJlU2l6ZSldLFxuXHRcdFx0XHRbJ2xlbnNQb3NpdGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGxlbnNQb3NpdGlvbildLFxuXHRcdFx0XHRbJ2lUaW1lJywgbmV3IFRIUkVFLlVuaWZvcm0oMCldLFxuXHRcdFx0XHRbJ2lSZXNvbHV0aW9uJywgbmV3IFRIUkVFLlVuaWZvcm0oaVJlc29sdXRpb24pXSxcblx0XHRcdFx0WydzdGFyUG9pbnRzJywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhclBvaW50cyldLFxuXHRcdFx0XHRbJ2ZsYXJlU2l6ZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGZsYXJlU2l6ZSldLFxuXHRcdFx0XHRbJ2ZsYXJlU3BlZWQnLCBuZXcgVEhSRUUuVW5pZm9ybShmbGFyZVNwZWVkKV0sXG5cdFx0XHRcdFsnZmxhcmVTaGFwZScsIG5ldyBUSFJFRS5Vbmlmb3JtKGZsYXJlU2hhcGUpXSxcblx0XHRcdFx0WydhbmltYXRlZCcsIG5ldyBUSFJFRS5Vbmlmb3JtKGFuaW1hdGVkKV0sXG5cdFx0XHRcdFsnYW5hbW9ycGhpYycsIG5ldyBUSFJFRS5Vbmlmb3JtKGFuYW1vcnBoaWMpXSxcblx0XHRcdFx0Wydjb2xvckdhaW4nLCBuZXcgVEhSRUUuVW5pZm9ybShjb2xvckdhaW4pXSxcblx0XHRcdFx0WydsZW5zRGlydFRleHR1cmUnLCBuZXcgVEhSRUUuVW5pZm9ybShsZW5zRGlydFRleHR1cmUpXSxcblx0XHRcdFx0WydoYWxvU2NhbGUnLCBuZXcgVEhSRUUuVW5pZm9ybShoYWxvU2NhbGUpXSxcblx0XHRcdFx0WydzZWNvbmRhcnlHaG9zdHMnLCBuZXcgVEhSRUUuVW5pZm9ybShzZWNvbmRhcnlHaG9zdHMpXSxcblx0XHRcdFx0WydhZGl0aW9uYWxTdHJlYWtzJywgbmV3IFRIUkVFLlVuaWZvcm0oYWRpdGlvbmFsU3RyZWFrcyldLFxuXHRcdFx0XHRbJ2dob3N0U2NhbGUnLCBuZXcgVEhSRUUuVW5pZm9ybShnaG9zdFNjYWxlKV0sXG5cdFx0XHRcdFsnc3RhckJ1cnN0JywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhckJ1cnN0KV0sXG5cdFx0XHRcdFsnb3BhY2l0eScsIG5ldyBUSFJFRS5Vbmlmb3JtKG9wYWNpdHkpXSxcblx0XHRcdF0pLFxuXHRcdH0pO1xuXHR9XG5cblx0b3ZlcnJpZGUgdXBkYXRlKF9yZW5kZXJlcjogVEhSRUUuV2ViR0xSZW5kZXJlciwgX2lucHV0QnVmZmVyOiBUSFJFRS5XZWJHTFJlbmRlclRhcmdldCwgZGVsdGFUaW1lOiBudW1iZXIpIHtcblx0XHRjb25zdCBpVGltZSA9IHRoaXMudW5pZm9ybXMuZ2V0KCdpVGltZScpO1xuXHRcdGlmIChpVGltZSkge1xuXHRcdFx0aVRpbWUudmFsdWUgKz0gZGVsdGFUaW1lO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgdHlwZSBMZW5zRmxhcmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBMZW5zRmxhcmVFZmZlY3Q+WzBdICYge1xuXHRwb3NpdGlvbjogTmd0VmVjdG9yMztcblx0Zm9sbG93TW91c2U6IGJvb2xlYW47XG5cdHNtb290aFRpbWU6IG51bWJlcjtcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBMZW5zRmxhcmVPcHRpb25zID0ge1xuXHRwb3NpdGlvbjogbmV3IFRIUkVFLlZlY3RvcjMoLTI1LCA2LCAtNjApLFxuXHRmb2xsb3dNb3VzZTogZmFsc2UsXG5cdHNtb290aFRpbWU6IDAuNyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtbGVucy1mbGFyZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW3BhcmFtZXRlcnNdPVwieyBkaXNwb3NlOiBudWxsIH1cIiAvPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBMZW5zRmxhcmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cblx0cHJpdmF0ZSBlZmZlY3RDb21wb3NlciA9IGluamVjdChOZ3RwRWZmZWN0Q29tcG9zZXIpO1xuXG5cdHByaXZhdGUgZWZmZWN0T3B0aW9ucyA9IG9taXQodGhpcy5vcHRpb25zLCBbJ3Bvc2l0aW9uJywgJ2ZvbGxvd01vdXNlJywgJ3Ntb290aFRpbWUnXSk7XG5cdHByaXZhdGUgcG9zaXRpb24gPSB2ZWN0b3IzKHRoaXMub3B0aW9ucywgJ3Bvc2l0aW9uJyk7XG5cblx0cHJpdmF0ZSBwcm9qZWN0ZWRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cdHByaXZhdGUgbW91c2UyZCA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7XG5cblx0cHJvdGVjdGVkIGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IG5ldyBMZW5zRmxhcmVFZmZlY3QodGhpcy5lZmZlY3RPcHRpb25zKCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2xlbnNGbGFyZUVmZmVjdCwgd2lkdGgsIGhlaWdodF0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMuc3RvcmUudmlld3BvcnQud2lkdGgoKSxcblx0XHRcdFx0dGhpcy5zdG9yZS52aWV3cG9ydC5oZWlnaHQoKSxcblx0XHRcdF07XG5cdFx0XHRjb25zdCBpUmVzb2x1dGlvbiA9IGxlbnNGbGFyZUVmZmVjdC51bmlmb3Jtcy5nZXQoJ2lSZXNvbHV0aW9uJyk7XG5cdFx0XHRpZiAoaVJlc29sdXRpb24pIHtcblx0XHRcdFx0aVJlc29sdXRpb24udmFsdWUueCA9IHdpZHRoO1xuXHRcdFx0XHRpUmVzb2x1dGlvbi52YWx1ZS55ID0gaGVpZ2h0O1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cblx0XHRiZWZvcmVSZW5kZXIoKHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdF0gPSBbdGhpcy5lZmZlY3QoKV07XG5cdFx0XHRpZiAoIWVmZmVjdCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBbeyBmb2xsb3dNb3VzZSwgc21vb3RoVGltZSB9LCBwb3NpdGlvbiwgcG9pbnRlciwgY2FtZXJhLCBzY2VuZSwgcmF5Y2FzdGVyXSA9IFtcblx0XHRcdFx0dGhpcy5vcHRpb25zKCksXG5cdFx0XHRcdHRoaXMucG9zaXRpb24oKSxcblx0XHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdC5wb2ludGVyLFxuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyLmNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdENvbXBvc2VyLnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QucmF5Y2FzdGVyLFxuXHRcdFx0XTtcblxuXHRcdFx0Y29uc3QgdUxlbnNQb3NpdGlvbiA9IGVmZmVjdC51bmlmb3Jtcy5nZXQoJ2xlbnNQb3NpdGlvbicpO1xuXHRcdFx0Y29uc3QgdU9wYWNpdHkgPSBlZmZlY3QudW5pZm9ybXMuZ2V0KCdvcGFjaXR5Jyk7XG5cdFx0XHRpZiAoIXVMZW5zUG9zaXRpb24gfHwgIXVPcGFjaXR5KSByZXR1cm47XG5cblx0XHRcdGxldCB0YXJnZXQgPSAxO1xuXG5cdFx0XHRpZiAoZm9sbG93TW91c2UpIHtcblx0XHRcdFx0dUxlbnNQb3NpdGlvbi52YWx1ZS54ID0gcG9pbnRlci54O1xuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnkgPSBwb2ludGVyLnk7XG5cdFx0XHRcdHRhcmdldCA9IDA7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnByb2plY3RlZFBvc2l0aW9uLmNvcHkocG9zaXRpb24pLnByb2plY3QoY2FtZXJhKTtcblx0XHRcdFx0aWYgKHRoaXMucHJvamVjdGVkUG9zaXRpb24ueiA+IDEpIHJldHVybjtcblxuXHRcdFx0XHR1TGVuc1Bvc2l0aW9uLnZhbHVlLnggPSB0aGlzLnByb2plY3RlZFBvc2l0aW9uLng7XG5cdFx0XHRcdHVMZW5zUG9zaXRpb24udmFsdWUueSA9IHRoaXMucHJvamVjdGVkUG9zaXRpb24ueTtcblxuXHRcdFx0XHR0aGlzLm1vdXNlMmQuc2V0KHRoaXMucHJvamVjdGVkUG9zaXRpb24ueCwgdGhpcy5wcm9qZWN0ZWRQb3NpdGlvbi55KTtcblx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEodGhpcy5tb3VzZTJkLCBjYW1lcmEpO1xuXHRcdFx0XHRjb25zdCBpbnRlcnNlY3RzID0gcmF5Y2FzdGVyLmludGVyc2VjdE9iamVjdHMoc2NlbmUuY2hpbGRyZW4sIHRydWUpO1xuXHRcdFx0XHRjb25zdCB7IG9iamVjdCB9ID0gaW50ZXJzZWN0c1swXSA/PyB7fTtcblx0XHRcdFx0aWYgKG9iamVjdCkge1xuXHRcdFx0XHRcdGlmIChvYmplY3QudXNlckRhdGE/LlsnbGVuc2ZsYXJlJ10gPT09ICduby1vY2NsdXNpb24nKSB7XG5cdFx0XHRcdFx0XHR0YXJnZXQgPSAwO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoaXMudGhyZWU8VEhSRUUuTWVzaDxUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVEhSRUUuU2hhZGVyTWF0ZXJpYWw+PihvYmplY3QsICdpc01lc2gnKSkge1xuXHRcdFx0XHRcdFx0aWYgKG9iamVjdC5tYXRlcmlhbC51bmlmb3Jtcz8uWydfdHJhbnNtaXNzaW9uJ10/LnZhbHVlID4gMC4yKSB7XG5cdFx0XHRcdFx0XHRcdC8vQ2hlY2sgZm9yIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbFxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSAwLjI7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRcdFx0XHQnX3RyYW5zbWlzc2lvbicgaW4gb2JqZWN0Lm1hdGVyaWFsICYmXG5cdFx0XHRcdFx0XHRcdHR5cGVvZiBvYmplY3QubWF0ZXJpYWwuX3RyYW5zbWlzc2lvbiA9PT0gJ251bWJlcicgJiZcblx0XHRcdFx0XHRcdFx0b2JqZWN0Lm1hdGVyaWFsLl90cmFuc21pc3Npb24gPiAwLjJcblx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHQvL0NoZWNrIGZvciBNZXNoUGh5c2ljYWxNYXRlcmlhbCB3aXRoIHRyYW5zbWlzc2lvbiBzZXR0aW5nXG5cdFx0XHRcdFx0XHRcdHRhcmdldCA9IDAuMjtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAob2JqZWN0Lm1hdGVyaWFsLnRyYW5zcGFyZW50KSB7XG5cdFx0XHRcdFx0XHRcdC8vIENoZWNrIGZvciBPdGhlck1hdGVyaWFscyB3aXRoIHRyYW5zcGFyZW50IHBhcmFtZXRlclxuXHRcdFx0XHRcdFx0XHR0YXJnZXQgPSBvYmplY3QubWF0ZXJpYWwub3BhY2l0eTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0ZWFzaW5nLmRhbXAodU9wYWNpdHksICd2YWx1ZScsIHRhcmdldCwgc21vb3RoVGltZSwgZGVsdGEpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, injectStore, pick } from 'angular-three';\nimport { LUT3DEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpLUT {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.lut = pick(this.options, 'lut');\n this.tetrahedralInterpolation = pick(this.options, 'tetrahedralInterpolation');\n this.store = injectStore();\n this.effect = computed(() => {\n const { lut, ...options } = this.options();\n return new LUT3DEffect(lut, options);\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect(() => {\n const [effect, lut, tetrahedralInterpolation, invalidate] = [\n this.effect(),\n this.lut(),\n this.tetrahedralInterpolation(),\n this.store.invalidate(),\n ];\n if (tetrahedralInterpolation)\n effect.tetrahedralInterpolation = tetrahedralInterpolation;\n if (lut)\n effect.lut = lut;\n invalidate();\n });\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLUT, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpLUT, isStandalone: true, selector: \"ngtp-lut\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpLUT, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-lut',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvbHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBaUIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBa0I1RCxNQUFNLE9BQU8sT0FBTztJQWFuQjtRQVpBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBZ0IsbURBQUMsQ0FBQztRQUUxQixRQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEMsNkJBQXdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUUxRSxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFcEIsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0QyxDQUFDLGtEQUFDLENBQUM7UUFHRixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxDQUFDLEdBQUc7Z0JBQzNELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO2FBQ3ZCLENBQUM7WUFFRixJQUFJLHdCQUF3QjtnQkFBRSxNQUFNLENBQUMsd0JBQXdCLEdBQUcsd0JBQXdCLENBQUM7WUFDekYsSUFBSSxHQUFHO2dCQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQzFCLFVBQVUsRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0EvQlcsT0FBTztrR0FBUCxPQUFPLDhNQVBUOztFQUVULDREQUNTLE9BQU87OzJGQUlMLE9BQU87a0JBVG5CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgaW5qZWN0U3RvcmUsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIExVVDNERWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExVVE9wdGlvbnMge1xuXHRsdXQ6IFRIUkVFLlRleHR1cmU7XG5cdGJsZW5kRnVuY3Rpb24/OiBCbGVuZEZ1bmN0aW9uO1xuXHR0ZXRyYWhlZHJhbEludGVycG9sYXRpb24/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLWx1dCcsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbZWZmZWN0KCldXCIgW2Rpc3Bvc2VdPVwibnVsbFwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cExVVCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBMVVRPcHRpb25zKTtcblxuXHRwcml2YXRlIGx1dCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHV0Jyk7XG5cdHByaXZhdGUgdGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICd0ZXRyYWhlZHJhbEludGVycG9sYXRpb24nKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgbHV0LCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnMoKTtcblx0XHRyZXR1cm4gbmV3IExVVDNERWZmZWN0KGx1dCwgb3B0aW9ucyk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbZWZmZWN0LCBsdXQsIHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiwgaW52YWxpZGF0ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZWZmZWN0KCksXG5cdFx0XHRcdHRoaXMubHV0KCksXG5cdFx0XHRcdHRoaXMudGV0cmFoZWRyYWxJbnRlcnBvbGF0aW9uKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XTtcblxuXHRcdFx0aWYgKHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbikgZWZmZWN0LnRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbiA9IHRldHJhaGVkcmFsSW50ZXJwb2xhdGlvbjtcblx0XHRcdGlmIChsdXQpIGVmZmVjdC5sdXQgPSBsdXQ7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgZWZmZWN0ID0gdGhpcy5lZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBlZmZlY3QuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, NoiseEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpNoise {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ NoiseEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpNoise, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpNoise, isStandalone: true, selector: \"ngtp-noise\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpNoise, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-noise',\n template: `\n\t\t<ngt-noise-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-noise-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.COLOR_DODGE })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9ub2lzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFrQnpGLE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxtREFBQyxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQU5XLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLDRJQVY1RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDdEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIE5vaXNlRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgTm9pc2VFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIE5vaXNlRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW5vaXNlJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW5vaXNlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LW5vaXNlLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQ09MT1JfRE9ER0UgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwTm9pc2Uge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgT21pdDxOb2lzZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBOb2lzZUVmZmVjdCB9KTtcblx0fVxufVxuIl19","import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, untracked, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, omit, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { OutlineEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n};\nexport class NgtpOutline {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.effectComposer = inject(NgtpEffectComposer);\n this.store = injectStore();\n this.selection = pick(this.options, 'selection');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.blendFunction = pick(this.options, 'blendFunction');\n this.patternTexture = pick(this.options, 'patternTexture');\n this.edgeStrength = pick(this.options, 'edgeStrength');\n this.pulseSpeed = pick(this.options, 'pulseSpeed');\n this.visibleEdgeColor = pick(this.options, 'visibleEdgeColor');\n this.hiddenEdgeColor = pick(this.options, 'hiddenEdgeColor');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.blur = pick(this.options, 'blur');\n this.xRay = pick(this.options, 'xRay');\n this.restOptions = omit(this.options, [\n 'blendFunction',\n 'patternTexture',\n 'edgeStrength',\n 'pulseSpeed',\n 'visibleEdgeColor',\n 'hiddenEdgeColor',\n 'width',\n 'height',\n 'kernelSize',\n 'blur',\n 'xRay',\n ]);\n this.effect = computed(() => {\n const [scene, camera, blendFunction, patternTexture, edgeStrength, pulseSpeed, visibleEdgeColor, hiddenEdgeColor, width, height, kernelSize, blur, xRay, restOptions,] = [\n this.effectComposer.scene(),\n this.effectComposer.camera(),\n this.blendFunction(),\n this.patternTexture(),\n this.edgeStrength(),\n this.pulseSpeed(),\n this.visibleEdgeColor(),\n this.hiddenEdgeColor(),\n this.width(),\n this.height(),\n this.kernelSize(),\n this.blur(),\n this.xRay(),\n untracked(this.restOptions),\n ];\n return new OutlineEffect(scene, camera, {\n blendFunction,\n patternTexture,\n edgeStrength,\n pulseSpeed,\n visibleEdgeColor,\n hiddenEdgeColor,\n width,\n height,\n kernelSize,\n blur,\n xRay,\n ...restOptions,\n });\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n effect(() => {\n const [effect, invalidate, selectionLayer] = [\n this.effect(),\n this.store.invalidate(),\n this.selectionLayer(),\n ];\n effect.selectionLayer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n // NOTE: we run this effect if declarative NgtSelection is not enabled\n if (!this.selectionApi) {\n // NOTE: if NgtSelection is not used and selection is not provided, we throw\n if (this.selection() === undefined) {\n throw new Error('[NGT PostProcessing]: ngtp-outline requires selection input or use NgtSelection');\n }\n const cleanup = this.handleSelectionChangeEffect(this.selection, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n return;\n }\n // NOTE: we run this effect if declarative NgtSelection is enabled\n const selectionEnabled = this.selectionApi.enabled();\n if (!selectionEnabled)\n return;\n const cleanup = this.handleSelectionChangeEffect(this.selectionApi.selected, this.effect, this.store.invalidate);\n onCleanup(() => {\n cleanup?.();\n });\n });\n }\n handleSelectionChangeEffect(selected, _effect, _invalidate) {\n const selection = selected();\n if (!selection || selection.length === 0)\n return;\n const [effect, invalidate] = [_effect(), _invalidate()];\n const objects = [];\n for (const el of selection) {\n const obj = resolveRef(el);\n if (!obj)\n continue;\n objects.push(obj);\n }\n if (objects.length === 0)\n return;\n effect.selection.set(objects);\n invalidate();\n return () => {\n effect.selection.clear();\n invalidate();\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpOutline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpOutline, isStandalone: true, selector: \"ngtp-outline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpOutline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-outline',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0bGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL291dGxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3hELE1BQU0sY0FBYyxHQUF1QjtJQUMxQyxjQUFjLEVBQUUsRUFBRTtDQUNsQixDQUFDO0FBV0YsTUFBTSxPQUFPLFdBQVc7SUFvRnZCO1FBbkZBLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYywyQ0FBSSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUF4QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBRXBFLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDNUMsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBRXRCLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FB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VyxXQUFXO2tHQUFYLFdBQVcsa05BUGI7O0VBRVQsNERBR1MsT0FBTzs7MkZBRUwsV0FBVztrQkFUdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOztFQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0QXJncywgTmd0U2VsZWN0aW9uQXBpLCBvbWl0LCBwaWNrLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBPdXRsaW5lRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgTmd0cE91dGxpbmVPcHRpb25zID0gQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBPdXRsaW5lRWZmZWN0PlsyXSAmIHtcblx0c2VsZWN0aW9uPzogQXJyYXk8VEhSRUUuT2JqZWN0M0QgfCBFbGVtZW50UmVmPFRIUkVFLk9iamVjdDNEPj47XG5cdHNlbGVjdGlvbkxheWVyOiBudW1iZXI7XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0cE91dGxpbmVPcHRpb25zID0ge1xuXHRzZWxlY3Rpb25MYXllcjogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLW91dGxpbmUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cE91dGxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0cHJpdmF0ZSBzZWxlY3Rpb25BcGkgPSBpbmplY3QoTmd0U2VsZWN0aW9uQXBpLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXG5cdHByaXZhdGUgc2VsZWN0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb24nKTtcblx0cHJpdmF0ZSBzZWxlY3Rpb25MYXllciA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2VsZWN0aW9uTGF5ZXInKTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBwYXR0ZXJuVGV4dHVyZSA9IHBpY2sodGhpcy5vcHRpb25zLCAncGF0dGVyblRleHR1cmUnKTtcblx0cHJpdmF0ZSBlZGdlU3RyZW5ndGggPSBwaWNrKHRoaXMub3B0aW9ucywgJ2VkZ2VTdHJlbmd0aCcpO1xuXHRwcml2YXRlIHB1bHNlU3BlZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3B1bHNlU3BlZWQnKTtcblx0cHJpdmF0ZSB2aXNpYmxlRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICd2aXNpYmxlRWRnZUNvbG9yJyk7XG5cdHByaXZhdGUgaGlkZGVuRWRnZUNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdoaWRkZW5FZGdlQ29sb3InKTtcblx0cHJpdmF0ZSB3aWR0aCA9IHBpY2sodGhpcy5vcHRpb25zLCAnd2lkdGgnKTtcblx0cHJpdmF0ZSBoZWlnaHQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2hlaWdodCcpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSBibHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdibHVyJyk7XG5cdHByaXZhdGUgeFJheSA9IHBpY2sodGhpcy5vcHRpb25zLCAneFJheScpO1xuXHRwcml2YXRlIHJlc3RPcHRpb25zID0gb21pdCh0aGlzLm9wdGlvbnMsIFtcblx0XHQnYmxlbmRGdW5jdGlvbicsXG5cdFx0J3BhdHRlcm5UZXh0dXJlJyxcblx0XHQnZWRnZVN0cmVuZ3RoJyxcblx0XHQncHVsc2VTcGVlZCcsXG5cdFx0J3Zpc2libGVFZGdlQ29sb3InLFxuXHRcdCdoaWRkZW5FZGdlQ29sb3InLFxuXHRcdCd3aWR0aCcsXG5cdFx0J2hlaWdodCcsXG5cdFx0J2tlcm5lbFNpemUnLFxuXHRcdCdibHVyJyxcblx0XHQneFJheScsXG5cdF0pO1xuXG5cdGVmZmVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbXG5cdFx0XHRzY2VuZSxcblx0XHRcdGNhbWVyYSxcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHRyZXN0T3B0aW9ucyxcblx0XHRdID0gW1xuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5zY2VuZSgpLFxuXHRcdFx0dGhpcy5lZmZlY3RDb21wb3Nlci5jYW1lcmEoKSxcblx0XHRcdHRoaXMuYmxlbmRGdW5jdGlvbigpLFxuXHRcdFx0dGhpcy5wYXR0ZXJuVGV4dHVyZSgpLFxuXHRcdFx0dGhpcy5lZGdlU3RyZW5ndGgoKSxcblx0XHRcdHRoaXMucHVsc2VTcGVlZCgpLFxuXHRcdFx0dGhpcy52aXNpYmxlRWRnZUNvbG9yKCksXG5cdFx0XHR0aGlzLmhpZGRlbkVkZ2VDb2xvcigpLFxuXHRcdFx0dGhpcy53aWR0aCgpLFxuXHRcdFx0dGhpcy5oZWlnaHQoKSxcblx0XHRcdHRoaXMua2VybmVsU2l6ZSgpLFxuXHRcdFx0dGhpcy5ibHVyKCksXG5cdFx0XHR0aGlzLnhSYXkoKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLnJlc3RPcHRpb25zKSxcblx0XHRdO1xuXG5cdFx0cmV0dXJuIG5ldyBPdXRsaW5lRWZmZWN0KHNjZW5lLCBjYW1lcmEsIHtcblx0XHRcdGJsZW5kRnVuY3Rpb24sXG5cdFx0XHRwYXR0ZXJuVGV4dHVyZSxcblx0XHRcdGVkZ2VTdHJlbmd0aCxcblx0XHRcdHB1bHNlU3BlZWQsXG5cdFx0XHR2aXNpYmxlRWRnZUNvbG9yLFxuXHRcdFx0aGlkZGVuRWRnZUNvbG9yLFxuXHRcdFx0d2lkdGgsXG5cdFx0XHRoZWlnaHQsXG5cdFx0XHRrZXJuZWxTaXplLFxuXHRcdFx0Ymx1cixcblx0XHRcdHhSYXksXG5cdFx0XHQuLi5yZXN0T3B0aW9ucyxcblx0XHR9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZSwgc2VsZWN0aW9uTGF5ZXJdID0gW1xuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25MYXllcigpLFxuXHRcdFx0XTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb25MYXllciA9IHNlbGVjdGlvbkxheWVyO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdC8vIE5PVEU6IHdlIHJ1biB0aGlzIGVmZmVjdCBpZiBkZWNsYXJhdGl2ZSBOZ3RTZWxlY3Rpb24gaXMgbm90IGVuYWJsZWRcblx0XHRcdGlmICghdGhpcy5zZWxlY3Rpb25BcGkpIHtcblx0XHRcdFx0Ly8gTk9URTogaWYgTmd0U2VsZWN0aW9uIGlzIG5vdCB1c2VkIGFuZCBzZWxlY3Rpb24gaXMgbm90IHByb3ZpZGVkLCB3ZSB0aHJvd1xuXHRcdFx0XHRpZiAodGhpcy5zZWxlY3Rpb24oKSA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdbTkdUIFBvc3RQcm9jZXNzaW5nXTogbmd0cC1vdXRsaW5lIHJlcXVpcmVzIHNlbGVjdGlvbiBpbnB1dCBvciB1c2UgTmd0U2VsZWN0aW9uJyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRWZmZWN0KHRoaXMuc2VsZWN0aW9uLCB0aGlzLmVmZmVjdCwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKTtcblxuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRcdGNsZWFudXA/LigpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBOT1RFOiB3ZSBydW4gdGhpcyBlZmZlY3QgaWYgZGVjbGFyYXRpdmUgTmd0U2VsZWN0aW9uIGlzIGVuYWJsZWRcblx0XHRcdGNvbnN0IHNlbGVjdGlvbkVuYWJsZWQgPSB0aGlzLnNlbGVjdGlvbkFwaS5lbmFibGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGlvbkVuYWJsZWQpIHJldHVybjtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZUVmZmVjdChcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25BcGkuc2VsZWN0ZWQsXG5cdFx0XHRcdHRoaXMuZWZmZWN0LFxuXHRcdFx0XHR0aGlzLnN0b3JlLmludmFsaWRhdGUsXG5cdFx0XHQpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Y2xlYW51cD8uKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlRWZmZWN0KFxuXHRcdHNlbGVjdGVkOiAoKSA9PiBBcnJheTxUSFJFRS5PYmplY3QzRCB8IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0Q+PiB8IHVuZGVmaW5lZCxcblx0XHRfZWZmZWN0OiAoKSA9PiBPdXRsaW5lRWZmZWN0LFxuXHRcdF9pbnZhbGlkYXRlOiAoKSA9PiAoKSA9PiB2b2lkLFxuXHQpIHtcblx0XHRjb25zdCBzZWxlY3Rpb24gPSBzZWxlY3RlZCgpO1xuXHRcdGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5sZW5ndGggPT09IDApIHJldHVybjtcblxuXHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW19lZmZlY3QoKSwgX2ludmFsaWRhdGUoKV07XG5cblx0XHRjb25zdCBvYmplY3RzOiBUSFJFRS5PYmplY3QzRFtdID0gW107XG5cdFx0Zm9yIChjb25zdCBlbCBvZiBzZWxlY3Rpb24pIHtcblx0XHRcdGNvbnN0IG9iaiA9IHJlc29sdmVSZWYoZWwpO1xuXHRcdFx0aWYgKCFvYmopIGNvbnRpbnVlO1xuXHRcdFx0b2JqZWN0cy5wdXNoKG9iaik7XG5cdFx0fVxuXG5cdFx0aWYgKG9iamVjdHMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cblx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChvYmplY3RzKTtcblx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdH07XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, computed, effect, input } from '@angular/core';\nimport { NgtArgs, pick } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { PixelationEffect } from 'postprocessing';\nimport * as i0 from \"@angular/core\";\nexport class NgtpPixelation {\n constructor() {\n this.options = input({ granularity: 5 }, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs({ granularity: 5 }) }] : [{ transform: mergeInputs({ granularity: 5 }) }]));\n this.granularity = pick(this.options, 'granularity');\n this.effect = computed(() => new PixelationEffect(this.granularity()), ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n const effect = this.effect();\n onCleanup(() => effect.dispose());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpPixelation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpPixelation, isStandalone: true, selector: \"ngtp-pixelation\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpPixelation, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-pixelation',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" />\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n imports: [NgtArgs],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl4ZWxhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3BpeGVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZWxELE1BQU0sT0FBTyxjQUFjO0lBTTFCO1FBTEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQXVCLDJDQUFJLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBNUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBQyxDQUFDO1FBQ2pHLGdCQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxrREFBQyxDQUFDO1FBRzNFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQVhXLGNBQWM7a0dBQWQsY0FBYyxxTkFQaEI7O0VBRVQsNERBR1MsT0FBTzs7MkZBRUwsY0FBYztrQkFUMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUU7O0VBRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IFBpeGVsYXRpb25FZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl4ZWxhdGlvbk9wdGlvbnMge1xuXHRncmFudWxhcml0eTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXBpeGVsYXRpb24nLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2VmZmVjdCgpXVwiIC8+XG5cdGAsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFBpeGVsYXRpb24ge1xuXHRvcHRpb25zID0gaW5wdXQoeyBncmFudWxhcml0eTogNSB9IGFzIFBpeGVsYXRpb25PcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoeyBncmFudWxhcml0eTogNSB9KSB9KTtcblx0cHJpdmF0ZSBncmFudWxhcml0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnZ3JhbnVsYXJpdHknKTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4gbmV3IFBpeGVsYXRpb25FZmZlY3QodGhpcy5ncmFudWxhcml0eSgpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gZWZmZWN0LmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, ScanlineEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst defaultOptions = {\n density: 1.25,\n};\nexport class NgtpScanline {\n constructor() {\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ScanlineEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpScanline, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpScanline, isStandalone: true, selector: \"ngtp-scanline\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpScanline, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-scanline',\n template: `\n\t\t<ngt-scanline-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-scanline-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.OVERLAY })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbmxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zY2FubGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBSXpGLE1BQU0sY0FBYyxHQUFpRDtJQUNwRSxPQUFPLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFnQkYsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsMkNBQUksU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBeEMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUMsQ0FBQztRQUNsRSxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FOVyxZQUFZO2tHQUFaLFlBQVksc01BRmIsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyw0SUFWeEU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixZQUFZO2tCQWR4QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7O0VBS1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3ZDLGNBQWMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDakYsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQ2xGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBTY2FubGluZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFNjYW5saW5lRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTY2FubGluZUVmZmVjdD5bMF0+PjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE9taXQ8U2NhbmxpbmVFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+ID0ge1xuXHRkZW5zaXR5OiAxLjI1LFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC1zY2FubGluZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zY2FubGluZS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zY2FubGluZS1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk9WRVJMQVkgfSldLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2NhbmxpbmUge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHByb3RlY3RlZCBlZmZlY3QgPSBpbmplY3QoTmd0cEVmZmVjdCwgeyBob3N0OiB0cnVlIH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IFNjYW5saW5lRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","// const addLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.enable(effect.selection.layer)\n// const removeLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.disable(effect.selection.layer)\nimport { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, input, } from '@angular/core';\nimport { injectStore, NgtArgs, NgtSelectionApi, pick, resolveRef } from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { BlendFunction, SelectiveBloomEffect } from 'postprocessing';\nimport { NgtpEffectComposer } from '../effect-composer';\nimport * as i0 from \"@angular/core\";\nconst defaultOptions = {\n selectionLayer: 10,\n inverted: false,\n ignoreBackground: false,\n};\nexport class NgtpSelectiveBloom {\n constructor() {\n this.lights = input.required(...(ngDevMode ? [{ debugName: \"lights\" }] : []));\n this.selection = input([], ...(ngDevMode ? [{ debugName: \"selection\" }] : []));\n this.options = input(defaultOptions, ...(ngDevMode ? [{ debugName: \"options\", transform: mergeInputs(defaultOptions) }] : [{ transform: mergeInputs(defaultOptions) }]));\n this.blendFunction = pick(this.options, 'blendFunction');\n this.luminanceThreshold = pick(this.options, 'luminanceThreshold');\n this.luminanceSmoothing = pick(this.options, 'luminanceSmoothing');\n this.mipmapBlur = pick(this.options, 'mipmapBlur');\n this.intensity = pick(this.options, 'intensity');\n this.radius = pick(this.options, 'radius');\n this.levels = pick(this.options, 'levels');\n this.kernelSize = pick(this.options, 'kernelSize');\n this.resolutionScale = pick(this.options, 'resolutionScale');\n this.width = pick(this.options, 'width');\n this.height = pick(this.options, 'height');\n this.resolutionX = pick(this.options, 'resolutionX');\n this.resolutionY = pick(this.options, 'resolutionY');\n this.inverted = pick(this.options, 'inverted');\n this.ignoreBackground = pick(this.options, 'ignoreBackground');\n this.selectionLayer = pick(this.options, 'selectionLayer');\n this.store = injectStore();\n this.effectComposer = inject(NgtpEffectComposer);\n this.selectionApi = inject(NgtSelectionApi, { optional: true });\n this.resolvedLights = computed(() => this.lights().map((light) => resolveRef(light)), ...(ngDevMode ? [{ debugName: \"resolvedLights\" }] : []));\n this.resolvedSelected = computed(() => {\n const selection = this.selection();\n if (!selection)\n return [];\n const array = Array.isArray(selection) ? selection : [selection];\n return array.map((selected) => resolveRef(selected));\n }, ...(ngDevMode ? [{ debugName: \"resolvedSelected\" }] : []));\n this.resolvedNgtSelected = computed(() => {\n if (!this.selectionApi || !this.selectionApi.enabled)\n return [];\n return this.selectionApi.selected().map((selected) => resolveRef(selected));\n }, ...(ngDevMode ? [{ debugName: \"resolvedNgtSelected\" }] : []));\n this.effect = computed(() => {\n const effect = new SelectiveBloomEffect(this.effectComposer.scene(), this.effectComposer.camera(), {\n blendFunction: this.blendFunction() || BlendFunction.ADD,\n luminanceThreshold: this.luminanceThreshold(),\n luminanceSmoothing: this.luminanceSmoothing(),\n mipmapBlur: this.mipmapBlur(),\n intensity: this.intensity(),\n radius: this.radius(),\n levels: this.levels(),\n kernelSize: this.kernelSize(),\n resolutionScale: this.resolutionScale(),\n width: this.width(),\n height: this.height(),\n resolutionX: this.resolutionX(),\n resolutionY: this.resolutionY(),\n });\n effect.inverted = this.inverted();\n effect.ignoreBackground = this.ignoreBackground();\n return effect;\n }, ...(ngDevMode ? [{ debugName: \"effect\" }] : []));\n effect((onCleanup) => {\n // skip input selection altogether if NgtSelection is used\n if (this.selectionApi)\n return;\n const selection = this.resolvedSelected();\n if (!selection.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selection);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n effect(() => {\n const [selectionLayer, invalidate, effect] = [\n this.selectionLayer(),\n this.store.invalidate(),\n this.effect(),\n ];\n effect.selection.layer = selectionLayer;\n invalidate();\n });\n effect((onCleanup) => {\n const lights = this.resolvedLights();\n if (lights.length <= 0)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n lights.forEach((light) => light && this.addLight(effect, light));\n invalidate();\n onCleanup(() => {\n lights.forEach((light) => light && this.removeLight(effect, light));\n invalidate();\n });\n });\n effect((onCleanup) => {\n const selected = this.resolvedNgtSelected();\n if (!selected.length)\n return;\n const [effect, invalidate] = [this.effect(), this.store.invalidate(), this.selectionLayer()];\n effect.selection.set(selected);\n invalidate();\n onCleanup(() => {\n effect.selection.clear();\n invalidate();\n });\n });\n }\n addLight(effect, light) {\n light.layers.enable(effect.selection.layer);\n }\n removeLight(effect, light) {\n light.layers.disable(effect.selection.layer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSelectiveBloom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpSelectiveBloom, isStandalone: true, selector: \"ngtp-selective-bloom\", inputs: { lights: { classPropertyName: \"lights\", publicName: \"lights\", isSignal: true, isRequired: true, transformFunction: null }, selection: { classPropertyName: \"selection\", publicName: \"selection\", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSelectiveBloom, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-selective-bloom',\n template: `\n\t\t<ngt-primitive *args=\"[effect()]\" [dispose]=\"null\" />\n\t`,\n imports: [NgtArgs],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aXZlLWJsb29tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvc2VsZWN0aXZlLWJsb29tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtIQUFrSDtBQUNsSCxzSEFBc0g7QUFFdEgsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBRU4sTUFBTSxFQUNOLEtBQUssR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBc0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFReEQsTUFBTSxjQUFjLEdBQTBCO0lBQzdDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsZ0JBQWdCLEVBQUUsS0FBSztDQUN2QixDQUFDO0FBV0YsTUFBTSxPQUFPLGtCQUFrQjtJQWtFOUI7UUFqRUEsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLGlEQUErRCxDQUFDO1FBQ3ZGLGNBQVMsR0FBRyxLQUFLLENBS2YsRUFBRSxxREFBQyxDQUFDO1FBQ04sWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLDJDQUFJLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQXhDLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFDLENBQUM7UUFFcEUsa0JBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8s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USxDQUFDLE1BQTRCLEVBQUUsS0FBcUI7UUFDbkUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sV0FBVyxDQUFDLE1BQTRCLEVBQUUsS0FBcUI7UUFDdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQWpJVyxrQkFBa0I7a0dBQWxCLGtCQUFrQix3ZEFQcEI7O0VBRVQsNERBQ1MsT0FBTzs7MkZBSUwsa0JBQWtCO2tCQVQ5QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBjb25zdCBhZGRMaWdodCA9IChsaWdodDogT2JqZWN0M0QsIGVmZmVjdDogU2VsZWN0aXZlQmxvb21FZmZlY3QpID0+IGxpZ2h0LmxheWVycy5lbmFibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcilcbi8vIGNvbnN0IHJlbW92ZUxpZ2h0ID0gKGxpZ2h0OiBPYmplY3QzRCwgZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCkgPT4gbGlnaHQubGF5ZXJzLmRpc2FibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcilcblxuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTdG9yZSwgTmd0QXJncywgTmd0U2VsZWN0aW9uQXBpLCBwaWNrLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCbGVuZEZ1bmN0aW9uLCBCbG9vbUVmZmVjdE9wdGlvbnMsIFNlbGVjdGl2ZUJsb29tRWZmZWN0IH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdENvbXBvc2VyIH0gZnJvbSAnLi4vZWZmZWN0LWNvbXBvc2VyJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0aXZlQmxvb21PcHRpb25zID0gQmxvb21FZmZlY3RPcHRpb25zICYge1xuXHRzZWxlY3Rpb25MYXllcjogbnVtYmVyO1xuXHRpbnZlcnRlZDogYm9vbGVhbjtcblx0aWdub3JlQmFja2dyb3VuZDogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBTZWxlY3RpdmVCbG9vbU9wdGlvbnMgPSB7XG5cdHNlbGVjdGlvbkxheWVyOiAxMCxcblx0aW52ZXJ0ZWQ6IGZhbHNlLFxuXHRpZ25vcmVCYWNrZ3JvdW5kOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2VsZWN0aXZlLWJsb29tJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltlZmZlY3QoKV1cIiBbZGlzcG9zZV09XCJudWxsXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RwU2VsZWN0aXZlQmxvb20ge1xuXHRsaWdodHMgPSBpbnB1dC5yZXF1aXJlZDxUSFJFRS5PYmplY3QzRFtdIHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5bXT4oKTtcblx0c2VsZWN0aW9uID0gaW5wdXQ8XG5cdFx0fCBUSFJFRS5PYmplY3QzRFxuXHRcdHwgVEhSRUUuT2JqZWN0M0RbXVxuXHRcdHwgRWxlbWVudFJlZjxUSFJFRS5PYmplY3QzRCB8IHVuZGVmaW5lZD5cblx0XHR8IEVsZW1lbnRSZWY8VEhSRUUuT2JqZWN0M0QgfCB1bmRlZmluZWQ+W11cblx0PihbXSk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblxuXHRwcml2YXRlIGJsZW5kRnVuY3Rpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ2JsZW5kRnVuY3Rpb24nKTtcblx0cHJpdmF0ZSBsdW1pbmFuY2VUaHJlc2hvbGQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2x1bWluYW5jZVRocmVzaG9sZCcpO1xuXHRwcml2YXRlIGx1bWluYW5jZVNtb290aGluZyA9IHBpY2sodGhpcy5vcHRpb25zLCAnbHVtaW5hbmNlU21vb3RoaW5nJyk7XG5cdHByaXZhdGUgbWlwbWFwQmx1ciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWlwbWFwQmx1cicpO1xuXHRwcml2YXRlIGludGVuc2l0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnaW50ZW5zaXR5Jyk7XG5cdHByaXZhdGUgcmFkaXVzID0gcGljayh0aGlzLm9wdGlvbnMsICdyYWRpdXMnKTtcblx0cHJpdmF0ZSBsZXZlbHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2xldmVscycpO1xuXHRwcml2YXRlIGtlcm5lbFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2tlcm5lbFNpemUnKTtcblx0cHJpdmF0ZSByZXNvbHV0aW9uU2NhbGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25TY2FsZScpO1xuXHRwcml2YXRlIHdpZHRoID0gcGljayh0aGlzLm9wdGlvbnMsICd3aWR0aCcpO1xuXHRwcml2YXRlIGhlaWdodCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaGVpZ2h0Jyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblggPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25YJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvblkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb25ZJyk7XG5cdHByaXZhdGUgaW52ZXJ0ZWQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ludmVydGVkJyk7XG5cdHByaXZhdGUgaWdub3JlQmFja2dyb3VuZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnaWdub3JlQmFja2dyb3VuZCcpO1xuXHRwcml2YXRlIHNlbGVjdGlvbkxheWVyID0gcGljayh0aGlzLm9wdGlvbnMsICdzZWxlY3Rpb25MYXllcicpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGVmZmVjdENvbXBvc2VyID0gaW5qZWN0KE5ndHBFZmZlY3RDb21wb3Nlcik7XG5cdHByaXZhdGUgc2VsZWN0aW9uQXBpID0gaW5qZWN0KE5ndFNlbGVjdGlvbkFwaSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuXHRwcml2YXRlIHJlc29sdmVkTGlnaHRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5saWdodHMoKS5tYXAoKGxpZ2h0KSA9PiByZXNvbHZlUmVmKGxpZ2h0KSkpO1xuXHRwcml2YXRlIHJlc29sdmVkU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24oKTtcblx0XHRpZiAoIXNlbGVjdGlvbikgcmV0dXJuIFtdO1xuXHRcdGNvbnN0IGFycmF5ID0gQXJyYXkuaXNBcnJheShzZWxlY3Rpb24pID8gc2VsZWN0aW9uIDogW3NlbGVjdGlvbl07XG5cdFx0cmV0dXJuIGFycmF5Lm1hcCgoc2VsZWN0ZWQpID0+IHJlc29sdmVSZWYoc2VsZWN0ZWQpKTtcblx0fSk7XG5cdHByaXZhdGUgcmVzb2x2ZWROZ3RTZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAoIXRoaXMuc2VsZWN0aW9uQXBpIHx8ICF0aGlzLnNlbGVjdGlvbkFwaS5lbmFibGVkKSByZXR1cm4gW107XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uQXBpLnNlbGVjdGVkKCkubWFwKChzZWxlY3RlZCkgPT4gcmVzb2x2ZVJlZihzZWxlY3RlZCkpO1xuXHR9KTtcblxuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IGVmZmVjdCA9IG5ldyBTZWxlY3RpdmVCbG9vbUVmZmVjdCh0aGlzLmVmZmVjdENvbXBvc2VyLnNjZW5lKCksIHRoaXMuZWZmZWN0Q29tcG9zZXIuY2FtZXJhKCksIHtcblx0XHRcdGJsZW5kRnVuY3Rpb246IHRoaXMuYmxlbmRGdW5jdGlvbigpIHx8IEJsZW5kRnVuY3Rpb24uQURELFxuXHRcdFx0bHVtaW5hbmNlVGhyZXNob2xkOiB0aGlzLmx1bWluYW5jZVRocmVzaG9sZCgpLFxuXHRcdFx0bHVtaW5hbmNlU21vb3RoaW5nOiB0aGlzLmx1bWluYW5jZVNtb290aGluZygpLFxuXHRcdFx0bWlwbWFwQmx1cjogdGhpcy5taXBtYXBCbHVyKCksXG5cdFx0XHRpbnRlbnNpdHk6IHRoaXMuaW50ZW5zaXR5KCksXG5cdFx0XHRyYWRpdXM6IHRoaXMucmFkaXVzKCksXG5cdFx0XHRsZXZlbHM6IHRoaXMubGV2ZWxzKCksXG5cdFx0XHRrZXJuZWxTaXplOiB0aGlzLmtlcm5lbFNpemUoKSxcblx0XHRcdHJlc29sdXRpb25TY2FsZTogdGhpcy5yZXNvbHV0aW9uU2NhbGUoKSxcblx0XHRcdHdpZHRoOiB0aGlzLndpZHRoKCksXG5cdFx0XHRoZWlnaHQ6IHRoaXMuaGVpZ2h0KCksXG5cdFx0XHRyZXNvbHV0aW9uWDogdGhpcy5yZXNvbHV0aW9uWCgpLFxuXHRcdFx0cmVzb2x1dGlvblk6IHRoaXMucmVzb2x1dGlvblkoKSxcblx0XHR9KTtcblxuXHRcdGVmZmVjdC5pbnZlcnRlZCA9IHRoaXMuaW52ZXJ0ZWQoKTtcblx0XHRlZmZlY3QuaWdub3JlQmFja2dyb3VuZCA9IHRoaXMuaWdub3JlQmFja2dyb3VuZCgpO1xuXG5cdFx0cmV0dXJuIGVmZmVjdDtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdC8vIHNraXAgaW5wdXQgc2VsZWN0aW9uIGFsdG9nZXRoZXIgaWYgTmd0U2VsZWN0aW9uIGlzIHVzZWRcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbkFwaSkgcmV0dXJuO1xuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uID0gdGhpcy5yZXNvbHZlZFNlbGVjdGVkKCk7XG5cdFx0XHRpZiAoIXNlbGVjdGlvbi5sZW5ndGgpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChzZWxlY3Rpb24gYXMgVEhSRUUuT2JqZWN0M0RbXSk7XG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGVmZmVjdC5zZWxlY3Rpb24uY2xlYXIoKTtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW3NlbGVjdGlvbkxheWVyLCBpbnZhbGlkYXRlLCBlZmZlY3RdID0gW1xuXHRcdFx0XHR0aGlzLnNlbGVjdGlvbkxheWVyKCksXG5cdFx0XHRcdHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLmVmZmVjdCgpLFxuXHRcdFx0XTtcblx0XHRcdGVmZmVjdC5zZWxlY3Rpb24ubGF5ZXIgPSBzZWxlY3Rpb25MYXllcjtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBsaWdodHMgPSB0aGlzLnJlc29sdmVkTGlnaHRzKCk7XG5cdFx0XHRpZiAobGlnaHRzLmxlbmd0aCA8PSAwKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IFtlZmZlY3QsIGludmFsaWRhdGVdID0gW3RoaXMuZWZmZWN0KCksIHRoaXMuc3RvcmUuaW52YWxpZGF0ZSgpLCB0aGlzLnNlbGVjdGlvbkxheWVyKCldO1xuXG5cdFx0XHRsaWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0ICYmIHRoaXMuYWRkTGlnaHQoZWZmZWN0LCBsaWdodCkpO1xuXHRcdFx0aW52YWxpZGF0ZSgpO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRsaWdodHMuZm9yRWFjaCgobGlnaHQpID0+IGxpZ2h0ICYmIHRoaXMucmVtb3ZlTGlnaHQoZWZmZWN0LCBsaWdodCkpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMucmVzb2x2ZWROZ3RTZWxlY3RlZCgpO1xuXHRcdFx0aWYgKCFzZWxlY3RlZC5sZW5ndGgpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW2VmZmVjdCwgaW52YWxpZGF0ZV0gPSBbdGhpcy5lZmZlY3QoKSwgdGhpcy5zdG9yZS5pbnZhbGlkYXRlKCksIHRoaXMuc2VsZWN0aW9uTGF5ZXIoKV07XG5cdFx0XHRlZmZlY3Quc2VsZWN0aW9uLnNldChzZWxlY3RlZCBhcyBUSFJFRS5PYmplY3QzRFtdKTtcblx0XHRcdGludmFsaWRhdGUoKTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0ZWZmZWN0LnNlbGVjdGlvbi5jbGVhcigpO1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYWRkTGlnaHQoZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCwgbGlnaHQ6IFRIUkVFLk9iamVjdDNEKSB7XG5cdFx0bGlnaHQubGF5ZXJzLmVuYWJsZShlZmZlY3Quc2VsZWN0aW9uLmxheWVyKTtcblx0fVxuXG5cdHByaXZhdGUgcmVtb3ZlTGlnaHQoZWZmZWN0OiBTZWxlY3RpdmVCbG9vbUVmZmVjdCwgbGlnaHQ6IFRIUkVFLk9iamVjdDNEKSB7XG5cdFx0bGlnaHQubGF5ZXJzLmRpc2FibGUoZWZmZWN0LnNlbGVjdGlvbi5sYXllcik7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SepiaEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSepia {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SepiaEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSepia, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpSepia, isStandalone: true, selector: \"ngtp-sepia\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSepia, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-sepia',\n template: `\n\t\t<ngt-sepia-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sepia-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy9zZXBpYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFNBQVM7SUFJckI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQStDLG1EQUFDLENBQUM7UUFDdkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OEdBTlcsU0FBUztrR0FBVCxTQUFTLGtVQVhYOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsU0FBUztrQkFickIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTZXBpYUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTZXBpYUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgU2VwaWFFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2VwaWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc2VwaWEtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3Qtc2VwaWEtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNlcGlhIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U2VwaWFFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgU2VwaWFFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ShockWaveEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpShockWave {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ShockWaveEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpShockWave, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpShockWave, isStandalone: true, selector: \"ngtp-shock-wave\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpShockWave, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-shock-wave',\n template: `\n\t\t<ngt-shock-wave-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-shock-wave-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvY2std2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3Nob2NrLXdhdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxhQUFhO0lBSXpCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFtRCxtREFBQyxDQUFDO1FBQzNELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQU5XLGFBQWE7a0dBQWIsYUFBYSx1VUFYZjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLGFBQWE7a0JBYnpCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTaG9ja1dhdmVFZmZlY3QgfSBmcm9tICdwb3N0cHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBOZ3RwRWZmZWN0LCBOZ3RwRWZmZWN0QmxlbmRNb2RlIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuZXhwb3J0IHR5cGUgU2hvY2tXYXZlRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTaG9ja1dhdmVFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtc2hvY2std2F2ZScsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1zaG9jay13YXZlLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXNob2NrLXdhdmUtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFNob2NrV2F2ZSB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFNob2NrV2F2ZUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTaG9ja1dhdmVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { SMAAEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpSMAA {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ SMAAEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSMAA, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpSMAA, isStandalone: true, selector: \"ngtp-smaa\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpSMAA, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-smaa',\n template: `\n\t\t<ngt-sMAA-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-sMAA-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3NtYWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxRQUFRO0lBSXBCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUE4QyxtREFBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQU5XLFFBQVE7a0dBQVIsUUFBUSxpVUFYVjs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBRzFCLFFBQVE7a0JBYnBCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGV4dGVuZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgU01BQUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBTTUFBRWZmZWN0T3B0aW9ucyA9IFBhcnRpYWw8Tm9uTnVsbGFibGU8Q29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBTTUFBRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXNtYWEnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3Qtc01BQS1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1zTUFBLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBTTUFBIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8U01BQUVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBTTUFBRWZmZWN0IH0pO1xuXHR9XG59XG4iXX0=","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, TiltShiftEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpTiltShift {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ TiltShiftEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpTiltShift, isStandalone: true, selector: \"ngtp-tilt-shift\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift',\n template: `\n\t\t<ngt-tilt-shift-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.ADD })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2xpYi9lZmZlY3RzL3RpbHQtc2hpZnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBa0J6RixNQUFNLE9BQU8sYUFBYTtJQUl6QjtRQUhBLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBbUQsbURBQUMsQ0FBQztRQUMzRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBR3JELE1BQU0sQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FOVyxhQUFhO2tHQUFiLGFBQWEsd01BRmQsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyw0SUFWcEU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixhQUFhO2tCQWR6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIFRpbHRTaGlmdEVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUsIHByb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyB9IGZyb20gJy4uL2VmZmVjdCc7XG5cbmV4cG9ydCB0eXBlIFRpbHRTaGlmdEVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVGlsdFNoaWZ0RWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXRpbHQtc2hpZnQnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdGlsdC1zaGlmdC1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10aWx0LXNoaWZ0LWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uQUREIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRpbHRTaGlmdCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBPbWl0PFRpbHRTaGlmdEVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRleHRlbmQoeyBUaWx0U2hpZnRFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst TiltShiftShader = {\n fragmentShader: /* language=glsl glsl */ `\n\n // original shader by Evan Wallace\n\n #define MAX_ITERATIONS 100\n\n uniform float blur;\n uniform float taper;\n uniform vec2 start;\n uniform vec2 end;\n uniform vec2 direction;\n uniform int samples;\n\n float random(vec3 scale, float seed) {\n /* use the fragment position for a different seed per-pixel */\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n }\n\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec4 color = vec4(0.0);\n float total = 0.0;\n vec2 startPixel = vec2(start.x * resolution.x, start.y * resolution.y);\n vec2 endPixel = vec2(end.x * resolution.x, end.y * resolution.y);\n float f_samples = float(samples);\n float half_samples = f_samples / 2.0;\n\n // use screen diagonal to normalize blur radii\n float maxScreenDistance = distance(vec2(0.0), resolution); // diagonal distance\n float gradientRadius = taper * (maxScreenDistance);\n float blurRadius = blur * (maxScreenDistance / 16.0);\n\n /* randomize the lookup values to hide the fixed number of samples */\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(startPixel.y - endPixel.y, endPixel.x - startPixel.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(uv * resolution - startPixel, normal)) / gradientRadius) * blurRadius;\n\n #pragma unroll_loop_start\n for (int i = 0; i <= MAX_ITERATIONS; i++) {\n if (i >= samples) { break; } // return early if over sample count\n float f_i = float(i);\n float s_i = -half_samples + f_i;\n float percent = (s_i + offset - 0.5) / half_samples;\n float weight = 1.0 - abs(percent);\n vec4 sample_i = texture2D(inputBuffer, uv + normalize(direction) / resolution * percent * radius);\n /* switch to pre-multiplied alpha to correctly blur transparent images */\n sample_i.rgb *= sample_i.a;\n color += sample_i * weight;\n total += weight;\n }\n #pragma unroll_loop_end\n\n outputColor = color / total;\n\n /* switch back from pre-multiplied alpha */\n outputColor.rgb /= outputColor.a + 0.00001;\n }\n `,\n};\nexport class TiltShift2Effect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, blur = 0.15, // [0, 1], can go beyond 1 for extra\n taper = 0.5, // [0, 1], can go beyond 1 for extra\n start = [0.5, 0.0], // [0,1] percentage x,y of screenspace\n end = [0.5, 1.0], // [0,1] percentage x,y of screenspace\n samples = 10.0, // number of blur samples\n direction = [1, 1], // direction of blur\n } = {}) {\n super('TiltShiftEffect', TiltShiftShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([\n ['blur', new THREE.Uniform(blur)],\n ['taper', new THREE.Uniform(taper)],\n ['start', new THREE.Uniform(start)],\n ['end', new THREE.Uniform(end)],\n ['samples', new THREE.Uniform(samples)],\n ['direction', new THREE.Uniform(direction)],\n ]),\n });\n }\n}\nextend({ TiltShift2Effect });\nexport class NgtpTiltShift2 {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpTiltShift2, isStandalone: true, selector: \"ngtp-tilt-shift2\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpTiltShift2, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tilt-shift2',\n template: `\n\t\t<ngt-tilt-shift2-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tilt-shift2-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsdC1zaGlmdC0yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdGlsdC1zaGlmdC0yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFekYsTUFBTSxlQUFlLEdBQUc7SUFDdkIsY0FBYyxFQUFFLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdEckM7Q0FDSixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLE1BQU07SUFDM0MsWUFBWSxFQUNYLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUNwQyxJQUFJLEdBQUcsSUFBSSxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsR0FBRyxFQUFFLG9DQUFvQztJQUNqRCxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzFELEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxzQ0FBc0M7SUFDeEQsT0FBTyxHQUFHLElBQUksRUFBRSx5QkFBeUI7SUFDekMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLG9CQUFvQjtNQUN4QyxHQUFHLEVBQUU7UUFDTCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRTtZQUN4RCxhQUFhO1lBQ2IsVUFBVSxFQUFFLGVBQWUsQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBMkM7Z0JBQzNELENBQUMsTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRDtBQUlELE1BQU0sQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztBQWdCN0IsTUFBTSxPQUFPLGNBQWM7SUFkM0I7UUFlQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQW9ELG1EQUFDLENBQUM7UUFDNUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN0RDs4R0FIWSxjQUFjO2tHQUFkLGNBQWMseU1BRmYsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyw0SUFWdkU7Ozs7O0VBS1QsNERBR1MsT0FBTyxnRkFBRSxtQkFBbUI7OzJGQUkxQixjQUFjO2tCQWQxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCwgRWZmZWN0QXR0cmlidXRlIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgVGlsdFNoaWZ0U2hhZGVyID0ge1xuXHRmcmFnbWVudFNoYWRlcjogLyogbGFuZ3VhZ2U9Z2xzbCBnbHNsICovIGBcblxuICAgIC8vIG9yaWdpbmFsIHNoYWRlciBieSBFdmFuIFdhbGxhY2VcblxuICAgICNkZWZpbmUgTUFYX0lURVJBVElPTlMgMTAwXG5cbiAgICB1bmlmb3JtIGZsb2F0IGJsdXI7XG4gICAgdW5pZm9ybSBmbG9hdCB0YXBlcjtcbiAgICB1bmlmb3JtIHZlYzIgc3RhcnQ7XG4gICAgdW5pZm9ybSB2ZWMyIGVuZDtcbiAgICB1bmlmb3JtIHZlYzIgZGlyZWN0aW9uO1xuICAgIHVuaWZvcm0gaW50IHNhbXBsZXM7XG5cbiAgICBmbG9hdCByYW5kb20odmVjMyBzY2FsZSwgZmxvYXQgc2VlZCkge1xuICAgICAgICAvKiB1c2UgdGhlIGZyYWdtZW50IHBvc2l0aW9uIGZvciBhIGRpZmZlcmVudCBzZWVkIHBlci1waXhlbCAqL1xuICAgICAgICByZXR1cm4gZnJhY3Qoc2luKGRvdChnbF9GcmFnQ29vcmQueHl6ICsgc2VlZCwgc2NhbGUpKSAqIDQzNzU4LjU0NTMgKyBzZWVkKTtcbiAgICB9XG5cbiAgICB2b2lkIG1haW5JbWFnZShjb25zdCBpbiB2ZWM0IGlucHV0Q29sb3IsIGNvbnN0IGluIHZlYzIgdXYsIG91dCB2ZWM0IG91dHB1dENvbG9yKSB7XG4gICAgICAgIHZlYzQgY29sb3IgPSB2ZWM0KDAuMCk7XG4gICAgICAgIGZsb2F0IHRvdGFsID0gMC4wO1xuICAgICAgICB2ZWMyIHN0YXJ0UGl4ZWwgPSB2ZWMyKHN0YXJ0LnggKiByZXNvbHV0aW9uLngsIHN0YXJ0LnkgKiByZXNvbHV0aW9uLnkpO1xuICAgICAgICB2ZWMyIGVuZFBpeGVsID0gdmVjMihlbmQueCAqIHJlc29sdXRpb24ueCwgZW5kLnkgKiByZXNvbHV0aW9uLnkpO1xuICAgICAgICBmbG9hdCBmX3NhbXBsZXMgPSBmbG9hdChzYW1wbGVzKTtcbiAgICAgICAgZmxvYXQgaGFsZl9zYW1wbGVzID0gZl9zYW1wbGVzIC8gMi4wO1xuXG4gICAgICAgIC8vIHVzZSBzY3JlZW4gZGlhZ29uYWwgdG8gbm9ybWFsaXplIGJsdXIgcmFkaWlcbiAgICAgICAgZmxvYXQgbWF4U2NyZWVuRGlzdGFuY2UgPSBkaXN0YW5jZSh2ZWMyKDAuMCksIHJlc29sdXRpb24pOyAvLyBkaWFnb25hbCBkaXN0YW5jZVxuICAgICAgICBmbG9hdCBncmFkaWVudFJhZGl1cyA9IHRhcGVyICogKG1heFNjcmVlbkRpc3RhbmNlKTtcbiAgICAgICAgZmxvYXQgYmx1clJhZGl1cyA9IGJsdXIgKiAobWF4U2NyZWVuRGlzdGFuY2UgLyAxNi4wKTtcblxuICAgICAgICAvKiByYW5kb21pemUgdGhlIGxvb2t1cCB2YWx1ZXMgdG8gaGlkZSB0aGUgZml4ZWQgbnVtYmVyIG9mIHNhbXBsZXMgKi9cbiAgICAgICAgZmxvYXQgb2Zmc2V0ID0gcmFuZG9tKHZlYzMoMTIuOTg5OCwgNzguMjMzLCAxNTEuNzE4MiksIDAuMCk7XG4gICAgICAgIHZlYzIgbm9ybWFsID0gbm9ybWFsaXplKHZlYzIoc3RhcnRQaXhlbC55IC0gZW5kUGl4ZWwueSwgZW5kUGl4ZWwueCAtIHN0YXJ0UGl4ZWwueCkpO1xuICAgICAgICBmbG9hdCByYWRpdXMgPSBzbW9vdGhzdGVwKDAuMCwgMS4wLCBhYnMoZG90KHV2ICogcmVzb2x1dGlvbiAtIHN0YXJ0UGl4ZWwsIG5vcm1hbCkpIC8gZ3JhZGllbnRSYWRpdXMpICogYmx1clJhZGl1cztcblxuICAgICAgICAjcHJhZ21hIHVucm9sbF9sb29wX3N0YXJ0XG4gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IE1BWF9JVEVSQVRJT05TOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChpID49IHNhbXBsZXMpIHsgYnJlYWs7IH0gLy8gcmV0dXJuIGVhcmx5IGlmIG92ZXIgc2FtcGxlIGNvdW50XG4gICAgICAgICAgICBmbG9hdCBmX2kgPSBmbG9hdChpKTtcbiAgICAgICAgICAgIGZsb2F0IHNfaSA9IC1oYWxmX3NhbXBsZXMgKyBmX2k7XG4gICAgICAgICAgICBmbG9hdCBwZXJjZW50ID0gKHNfaSArIG9mZnNldCAtIDAuNSkgLyBoYWxmX3NhbXBsZXM7XG4gICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSAxLjAgLSBhYnMocGVyY2VudCk7XG4gICAgICAgICAgICB2ZWM0IHNhbXBsZV9pID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCB1diArIG5vcm1hbGl6ZShkaXJlY3Rpb24pIC8gcmVzb2x1dGlvbiAqIHBlcmNlbnQgKiByYWRpdXMpO1xuICAgICAgICAgICAgLyogc3dpdGNoIHRvIHByZS1tdWx0aXBsaWVkIGFscGhhIHRvIGNvcnJlY3RseSBibHVyIHRyYW5zcGFyZW50IGltYWdlcyAqL1xuICAgICAgICAgICAgc2FtcGxlX2kucmdiICo9IHNhbXBsZV9pLmE7XG4gICAgICAgICAgICBjb2xvciArPSBzYW1wbGVfaSAqIHdlaWdodDtcbiAgICAgICAgICAgIHRvdGFsICs9IHdlaWdodDtcbiAgICAgICAgfVxuICAgICAgICAjcHJhZ21hIHVucm9sbF9sb29wX2VuZFxuXG4gICAgICAgIG91dHB1dENvbG9yID0gY29sb3IgLyB0b3RhbDtcblxuICAgICAgICAvKiBzd2l0Y2ggYmFjayBmcm9tIHByZS1tdWx0aXBsaWVkIGFscGhhICovXG4gICAgICAgIG91dHB1dENvbG9yLnJnYiAvPSBvdXRwdXRDb2xvci5hICsgMC4wMDAwMTtcbiAgICB9XG4gICAgYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBUaWx0U2hpZnQyRWZmZWN0IGV4dGVuZHMgRWZmZWN0IHtcblx0Y29uc3RydWN0b3Ioe1xuXHRcdGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCxcblx0XHRibHVyID0gMC4xNSwgLy8gWzAsIDFdLCBjYW4gZ28gYmV5b25kIDEgZm9yIGV4dHJhXG5cdFx0dGFwZXIgPSAwLjUsIC8vIFswLCAxXSwgY2FuIGdvIGJleW9uZCAxIGZvciBleHRyYVxuXHRcdHN0YXJ0ID0gWzAuNSwgMC4wXSwgLy8gWzAsMV0gcGVyY2VudGFnZSB4LHkgb2Ygc2NyZWVuc3BhY2Vcblx0XHRlbmQgPSBbMC41LCAxLjBdLCAvLyBbMCwxXSBwZXJjZW50YWdlIHgseSBvZiBzY3JlZW5zcGFjZVxuXHRcdHNhbXBsZXMgPSAxMC4wLCAvLyBudW1iZXIgb2YgYmx1ciBzYW1wbGVzXG5cdFx0ZGlyZWN0aW9uID0gWzEsIDFdLCAvLyBkaXJlY3Rpb24gb2YgYmx1clxuXHR9ID0ge30pIHtcblx0XHRzdXBlcignVGlsdFNoaWZ0RWZmZWN0JywgVGlsdFNoaWZ0U2hhZGVyLmZyYWdtZW50U2hhZGVyLCB7XG5cdFx0XHRibGVuZEZ1bmN0aW9uLFxuXHRcdFx0YXR0cmlidXRlczogRWZmZWN0QXR0cmlidXRlLkNPTlZPTFVUSU9OLFxuXHRcdFx0dW5pZm9ybXM6IG5ldyBNYXA8c3RyaW5nLCBUSFJFRS5Vbmlmb3JtPG51bWJlciB8IG51bWJlcltdPj4oW1xuXHRcdFx0XHRbJ2JsdXInLCBuZXcgVEhSRUUuVW5pZm9ybShibHVyKV0sXG5cdFx0XHRcdFsndGFwZXInLCBuZXcgVEhSRUUuVW5pZm9ybSh0YXBlcildLFxuXHRcdFx0XHRbJ3N0YXJ0JywgbmV3IFRIUkVFLlVuaWZvcm0oc3RhcnQpXSxcblx0XHRcdFx0WydlbmQnLCBuZXcgVEhSRUUuVW5pZm9ybShlbmQpXSxcblx0XHRcdFx0WydzYW1wbGVzJywgbmV3IFRIUkVFLlVuaWZvcm0oc2FtcGxlcyldLFxuXHRcdFx0XHRbJ2RpcmVjdGlvbicsIG5ldyBUSFJFRS5Vbmlmb3JtKGRpcmVjdGlvbildLFxuXHRcdFx0XSksXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgVGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVGlsdFNoaWZ0MkVmZmVjdD5bMF0+PjtcblxuZXh0ZW5kKHsgVGlsdFNoaWZ0MkVmZmVjdCB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cC10aWx0LXNoaWZ0MicsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC10aWx0LXNoaWZ0Mi1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10aWx0LXNoaWZ0Mi1lZmZlY3Q+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RwRWZmZWN0QmxlbmRNb2RlXSxcblx0aG9zdERpcmVjdGl2ZXM6IFt7IGRpcmVjdGl2ZTogTmd0cEVmZmVjdCwgaW5wdXRzOiBbJ2JsZW5kRnVuY3Rpb24nLCAnb3BhY2l0eSddIH1dLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlRGVmYXVsdEVmZmVjdE9wdGlvbnMoeyBibGVuZEZ1bmN0aW9uOiBCbGVuZEZ1bmN0aW9uLk5PUk1BTCB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHBUaWx0U2hpZnQyIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VGlsdFNoaWZ0MkVmZmVjdE9wdGlvbnMsICdibGVuZEZ1bmN0aW9uJz4pO1xuXHRwcm90ZWN0ZWQgZWZmZWN0ID0gaW5qZWN0KE5ndHBFZmZlY3QsIHsgaG9zdDogdHJ1ZSB9KTtcbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { ToneMappingEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpToneMapping {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ ToneMappingEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpToneMapping, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpToneMapping, isStandalone: true, selector: \"ngtp-tone-mapping\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpToneMapping, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-tone-mapping',\n template: `\n\t\t<ngt-tone-mapping-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-tone-mapping-effect>\n\t`,\n imports: [NgtArgs, NgtpEffectBlendMode],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uZS1tYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wb3N0cHJvY2Vzc2luZy9zcmMvbGliL2VmZmVjdHMvdG9uZS1tYXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFpQjVELE1BQU0sT0FBTyxlQUFlO0lBSTNCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFxRCxtREFBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBTlcsZUFBZTtrR0FBZixlQUFlLHlVQVhqQjs7Ozs7RUFLVCw0REFDUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSzFCLGVBQWU7a0JBYjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBUb25lTWFwcGluZ0VmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBUb25lTWFwcGluZ0VmZmVjdE9wdGlvbnMgPSBOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFRvbmVNYXBwaW5nRWZmZWN0PlswXT47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdG9uZS1tYXBwaW5nJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXRvbmUtbWFwcGluZy1lZmZlY3QgKmFyZ3M9XCJbb3B0aW9ucygpXVwiIFtjYW1lcmFdPVwiZWZmZWN0LmNhbWVyYSgpXCI+XG5cdFx0XHQ8bmd0cC1lZmZlY3QtYmxlbmQtbW9kZSAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC10b25lLW1hcHBpbmctZWZmZWN0PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFRvbmVNYXBwaW5nIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VG9uZU1hcHBpbmdFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgVG9uZU1hcHBpbmdFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { VignetteEffect } from 'postprocessing';\nimport { NgtpEffect, NgtpEffectBlendMode } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nexport class NgtpVignette {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ VignetteEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpVignette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpVignette, isStandalone: true, selector: \"ngtp-vignette\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpVignette, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-vignette',\n template: `\n\t\t<ngt-vignette-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-vignette-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlnbmV0dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy92aWduZXR0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWlCNUQsTUFBTSxPQUFPLFlBQVk7SUFJeEI7UUFIQSxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQWtELG1EQUFDLENBQUM7UUFDMUQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUdyRCxNQUFNLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBTlcsWUFBWTtrR0FBWixZQUFZLHFVQVhkOzs7OztFQUtULDREQUdTLE9BQU8sZ0ZBQUUsbUJBQW1COzsyRkFHMUIsWUFBWTtrQkFieEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7OztFQUtUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDO29CQUN2QyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ2pGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBWaWduZXR0ZUVmZmVjdCB9IGZyb20gJ3Bvc3Rwcm9jZXNzaW5nJztcbmltcG9ydCB7IE5ndHBFZmZlY3QsIE5ndHBFZmZlY3RCbGVuZE1vZGUgfSBmcm9tICcuLi9lZmZlY3QnO1xuXG5leHBvcnQgdHlwZSBWaWduZXR0ZUVmZmVjdE9wdGlvbnMgPSBQYXJ0aWFsPE5vbk51bGxhYmxlPENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgVmlnbmV0dGVFZmZlY3Q+WzBdPj47XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHAtdmlnbmV0dGUnLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtdmlnbmV0dGUtZWZmZWN0ICphcmdzPVwiW29wdGlvbnMoKV1cIiBbY2FtZXJhXT1cImVmZmVjdC5jYW1lcmEoKVwiPlxuXHRcdFx0PG5ndHAtZWZmZWN0LWJsZW5kLW1vZGUgLz5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtdmlnbmV0dGUtZWZmZWN0PlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJncywgTmd0cEVmZmVjdEJsZW5kTW9kZV0sXG5cdGhvc3REaXJlY3RpdmVzOiBbeyBkaXJlY3RpdmU6IE5ndHBFZmZlY3QsIGlucHV0czogWydibGVuZEZ1bmN0aW9uJywgJ29wYWNpdHknXSB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFZpZ25ldHRlIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8VmlnbmV0dGVFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgVmlnbmV0dGVFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { NgtArgs, extend } from 'angular-three';\nimport { BlendFunction, Effect, EffectAttribute } from 'postprocessing';\nimport * as THREE from 'three';\nimport { NgtpEffect, NgtpEffectBlendMode, provideDefaultEffectOptions } from '../effect';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../effect\";\nconst WaterShader = {\n fragmentShader: /* language=glsl glsl */ `\n uniform float factor;\n void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) {\n vec2 vUv = uv;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = vUv.y * frequency + time * .7;\n float y = vUv.x * frequency + time * .3;\n vUv.x += cos(x+y) * amplitude * cos(y);\n vUv.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(inputBuffer, vUv);\n outputColor = rgba;\n }`,\n};\nexport class WaterEffect extends Effect {\n constructor({ blendFunction = BlendFunction.NORMAL, factor = 0 } = {}) {\n super('WaterEffect', WaterShader.fragmentShader, {\n blendFunction,\n attributes: EffectAttribute.CONVOLUTION,\n uniforms: new Map([['factor', new THREE.Uniform(factor)]]),\n });\n }\n}\nexport class NgtpWater {\n constructor() {\n this.options = input({}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.effect = inject(NgtpEffect, { host: true });\n extend({ WaterEffect });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpWater, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: NgtpWater, isStandalone: true, selector: \"ngtp-water\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })], hostDirectives: [{ directive: i1.NgtpEffect, inputs: [\"blendFunction\", \"blendFunction\", \"opacity\", \"opacity\"] }], ngImport: i0, template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgtArgs, selector: \"ng-template[args]\", inputs: [\"args\"] }, { kind: \"component\", type: NgtpEffectBlendMode, selector: \"ngtp-effect-blend-mode\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: NgtpWater, decorators: [{\n type: Component,\n args: [{\n selector: 'ngtp-water',\n template: `\n\t\t<ngt-water-effect *args=\"[options()]\" [camera]=\"effect.camera()\">\n\t\t\t<ngtp-effect-blend-mode />\n\t\t\t<ng-content />\n\t\t</ngt-water-effect>\n\t`,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgtArgs, NgtpEffectBlendMode],\n hostDirectives: [{ directive: NgtpEffect, inputs: ['blendFunction', 'opacity'] }],\n providers: [provideDefaultEffectOptions({ blendFunction: BlendFunction.NORMAL })],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3Bvc3Rwcm9jZXNzaW5nL3NyYy9saWIvZWZmZWN0cy93YXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBRXpGLE1BQU0sV0FBVyxHQUFHO0lBQ25CLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0lBWXRDO0NBQ0gsQ0FBQztBQUVGLE1BQU0sT0FBTyxXQUFZLFNBQVEsTUFBTTtJQUN0QyxZQUFZLEVBQUUsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUU7UUFDcEUsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQ2hELGFBQWE7WUFDYixVQUFVLEVBQUUsZUFBZSxDQUFDLFdBQVc7WUFDdkMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUEyQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEcsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNEO0FBa0JELE1BQU0sT0FBTyxTQUFTO0lBSXJCO1FBSEEsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUErQyxtREFBQyxDQUFDO1FBQ3ZELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQU5XLFNBQVM7a0dBQVQsU0FBUyxtTUFGVixDQUFDLDJCQUEyQixDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLDRJQVZ2RTs7Ozs7RUFLVCw0REFHUyxPQUFPLGdGQUFFLG1CQUFtQjs7MkZBSTFCLFNBQVM7a0JBZHJCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7RUFLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQztvQkFDdkMsY0FBYyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUNqRixTQUFTLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztpQkFDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBleHRlbmQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IEJsZW5kRnVuY3Rpb24sIEVmZmVjdCwgRWZmZWN0QXR0cmlidXRlIH0gZnJvbSAncG9zdHByb2Nlc3NpbmcnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0cEVmZmVjdCwgTmd0cEVmZmVjdEJsZW5kTW9kZSwgcHJvdmlkZURlZmF1bHRFZmZlY3RPcHRpb25zIH0gZnJvbSAnLi4vZWZmZWN0JztcblxuY29uc3QgV2F0ZXJTaGFkZXIgPSB7XG5cdGZyYWdtZW50U2hhZGVyOiAvKiBsYW5ndWFnZT1nbHNsIGdsc2wgKi8gYFxuICB1bmlmb3JtIGZsb2F0IGZhY3RvcjtcbiAgdm9pZCBtYWluSW1hZ2UoY29uc3QgaW4gdmVjNCBpbnB1dENvbG9yLCBjb25zdCBpbiB2ZWMyIHV2LCBvdXQgdmVjNCBvdXRwdXRDb2xvcikge1xuICAgIHZlYzIgdlV2ID0gdXY7XG4gICAgZmxvYXQgZnJlcXVlbmN5ID0gNi4wICogZmFjdG9yO1xuICAgIGZsb2F0IGFtcGxpdHVkZSA9IDAuMDE1ICogZmFjdG9yO1xuICAgIGZsb2F0IHggPSB2VXYueSAqIGZyZXF1ZW5jeSArIHRpbWUgKiAuNztcbiAgICBmbG9hdCB5ID0gdlV2LnggKiBmcmVxdWVuY3kgKyB0aW1lICogLjM7XG4gICAgdlV2LnggKz0gY29zKHgreSkgKiBhbXBsaXR1ZGUgKiBjb3MoeSk7XG4gICAgdlV2LnkgKz0gc2luKHgteSkgKiBhbXBsaXR1ZGUgKiBjb3MoeSk7XG4gICAgdmVjNCByZ2JhID0gdGV4dHVyZTJEKGlucHV0QnVmZmVyLCB2VXYpO1xuICAgIG91dHB1dENvbG9yID0gcmdiYTtcbiAgfWAsXG59O1xuXG5leHBvcnQgY2xhc3MgV2F0ZXJFZmZlY3QgZXh0ZW5kcyBFZmZlY3Qge1xuXHRjb25zdHJ1Y3Rvcih7IGJsZW5kRnVuY3Rpb24gPSBCbGVuZEZ1bmN0aW9uLk5PUk1BTCwgZmFjdG9yID0gMCB9ID0ge30pIHtcblx0XHRzdXBlcignV2F0ZXJFZmZlY3QnLCBXYXRlclNoYWRlci5mcmFnbWVudFNoYWRlciwge1xuXHRcdFx0YmxlbmRGdW5jdGlvbixcblx0XHRcdGF0dHJpYnV0ZXM6IEVmZmVjdEF0dHJpYnV0ZS5DT05WT0xVVElPTixcblx0XHRcdHVuaWZvcm1zOiBuZXcgTWFwPHN0cmluZywgVEhSRUUuVW5pZm9ybTxudW1iZXIgfCBudW1iZXJbXT4+KFtbJ2ZhY3RvcicsIG5ldyBUSFJFRS5Vbmlmb3JtKGZhY3RvcildXSksXG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgV2F0ZXJFZmZlY3RPcHRpb25zID0gUGFydGlhbDxOb25OdWxsYWJsZTxDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIFdhdGVyRWZmZWN0PlswXT4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RwLXdhdGVyJyxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXdhdGVyLWVmZmVjdCAqYXJncz1cIltvcHRpb25zKCldXCIgW2NhbWVyYV09XCJlZmZlY3QuY2FtZXJhKClcIj5cblx0XHRcdDxuZ3RwLWVmZmVjdC1ibGVuZC1tb2RlIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXdhdGVyLWVmZmVjdD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3MsIE5ndHBFZmZlY3RCbGVuZE1vZGVdLFxuXHRob3N0RGlyZWN0aXZlczogW3sgZGlyZWN0aXZlOiBOZ3RwRWZmZWN0LCBpbnB1dHM6IFsnYmxlbmRGdW5jdGlvbicsICdvcGFjaXR5J10gfV0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVEZWZhdWx0RWZmZWN0T3B0aW9ucyh7IGJsZW5kRnVuY3Rpb246IEJsZW5kRnVuY3Rpb24uTk9STUFMIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0cFdhdGVyIHtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIE9taXQ8V2F0ZXJFZmZlY3RPcHRpb25zLCAnYmxlbmRGdW5jdGlvbic+KTtcblx0cHJvdGVjdGVkIGVmZmVjdCA9IGluamVjdChOZ3RwRWZmZWN0LCB7IGhvc3Q6IHRydWUgfSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgV2F0ZXJFZmZlY3QgfSk7XG5cdH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1wb3N0cHJvY2Vzc2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcG9zdHByb2Nlc3Npbmcvc3JjL2FuZ3VsYXItdGhyZWUtcG9zdHByb2Nlc3NpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["defaultOptions","i1.NgtpEffect"],"mappings":";;;;;;;;;;;AAIY,MAAC,CAAC,0BAA0B,EAAE,2BAA2B,CAAC,GAAG,wBAAwB,CAAC,wBAAwB;AACnH,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5D;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACvM;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,wBAAwB;AACtD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,UAAU,CAAC;AACxB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,oBAAoB,GAAG,0BAA0B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClF,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpI,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClH,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AACvC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU;AAC/C;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5a;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACrCb,MAAMA,gBAAc,GAAG;AACvB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,cAAc,EAAE,CAAC;AACrB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,aAAa,EAAE,CAAC;AACpB,IAAI,eAAe,EAAE,KAAK,CAAC,aAAa;AACxC,CAAC;AACD,SAAS,aAAa,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,eAAe,CAAC,WAAW,MAAM,eAAe,CAAC,WAAW;AACjG;AACO,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;AAC5D,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAChE,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAChE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AACpE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;AACtE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AACpE,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AACpD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClE,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/H,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnI,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC1C,YAAY,IAAI,CAAC,OAAO;AACxB,gBAAgB,OAAO,CAAC;AACxB,YAAY,OAAO,IAAI,CAAC,cAAc,EAAE;AACxC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,MAAM,eAAe,GAAG,iBAAiB,EAAE;AACvD,YAAY,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG;AACxI,gBAAgB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;AAC/B,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,gBAAgB,IAAI,CAAC,eAAe,EAAE;AACtC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;AACvC,gBAAgB,IAAI,CAAC,eAAe,EAAE;AACtC,aAAa;AACb;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE;AACpD,gBAAgB,WAAW;AAC3B,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa,EAAE,aAAa,GAAG,CAAC,IAAI,eAAe,GAAG,aAAa,GAAG,CAAC;AACvF,gBAAgB,eAAe;AAC/B,aAAa,CAAC;AACd;AACA,YAAY,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3D;AACA,YAAY,IAAI,gBAAgB,GAAG,IAAI;AACvC,YAAY,IAAI,UAAU,GAAG,IAAI;AACjC,YAAY,IAAI,gBAAgB,EAAE;AAClC,gBAAgB,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC;AAC1D,gBAAgB,UAAU,CAAC,OAAO,GAAG,KAAK;AAC1C,gBAAgB,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;AAC5C,gBAAgB,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,EAAE;AACtE,oBAAoB,gBAAgB,GAAG,IAAI,qBAAqB,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;AACvH,oBAAoB,gBAAgB,CAAC,OAAO,GAAG,KAAK;AACpD,oBAAoB,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACtD;AACA;AACA,YAAY,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE;AAC7D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC;AACjE,QAAQ,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;AACzB;AACA,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;AACtC,YAAY,MAAM,kBAAkB,GAAG,EAAE,CAAC,WAAW;AACrD,YAAY,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa;AAChD,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,EAAE,CAAC,WAAW,GAAG,kBAAkB;AACnD,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG;AAC9C,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;AACvC,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;AACxC,aAAa;AACb,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/C;AACA,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,MAAM,CAAC,GAAG;AAChF,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AAC7C,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,aAAa;AACb,YAAY,MAAM,MAAM,GAAG,EAAE;AAC7B,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC7D,gBAAgB,IAAI,CAAC,aAAa;AAClC,oBAAoB;AACpB,gBAAgB,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE;AAC3D,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1D,oBAAoB,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC7C,oBAAoB,IAAI,KAAK,YAAY,MAAM,EAAE;AACjD,wBAAwB,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC;AAC/C,wBAAwB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;AACnD,4BAA4B,IAAI,IAAI,GAAG,IAAI;AAC3C,4BAA4B,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,MAAM,EAAE;AAC/E,gCAAgC,IAAI,aAAa,CAAC,IAAI,CAAC;AACvD,oCAAoC;AACpC,gCAAgC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD,gCAAgC,CAAC,EAAE;AACnC;AACA;AACA,wBAAwB,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;AACvE,wBAAwB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC;AACA,yBAAyB,IAAI,KAAK,YAAY,IAAI,EAAE;AACpD,wBAAwB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C;AACA;AACA,gBAAgB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;AAC3C,oBAAoB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1C;AACA,gBAAgB,IAAI,UAAU;AAC9B,oBAAoB,UAAU,CAAC,OAAO,GAAG,IAAI;AAC7C,gBAAgB,IAAI,gBAAgB;AACpC,oBAAoB,gBAAgB,CAAC,OAAO,GAAG,IAAI;AACnD;AACA,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,KAAK,MAAM,IAAI,IAAI,MAAM;AACzC,oBAAoB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;AAC9C,gBAAgB,IAAI,UAAU;AAC9B,oBAAoB,UAAU,CAAC,OAAO,GAAG,KAAK;AAC9C,gBAAgB,IAAI,gBAAgB;AACpC,oBAAoB,gBAAgB,CAAC,OAAO,GAAG,KAAK;AACpD,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;AACpC,YAAY,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG;AAC1E,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACtC,aAAa;AACb,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS;AACrD,gBAAgB,EAAE,CAAC,SAAS,GAAG,SAAS;AACxC,gBAAgB,IAAI,aAAa,IAAI,CAAC,SAAS;AAC/C,oBAAoB,EAAE,CAAC,YAAY,EAAE;AACrC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;AACtC,gBAAgB,EAAE,CAAC,SAAS,GAAG,gBAAgB;AAC/C;AACA,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACjc;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,sBAAsB;AACpD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/KvC,MAAM,QAAQ,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACM,MAAM,WAAW,SAAS,MAAM,CAAC;AACxC,IAAI,WAAW,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,UAAU,GAAG,CAAC,oBAAoB,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,GAAG,EAAE,EAAE;AAChJ,QAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;AACjC,YAAY,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACnE,YAAY,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtD,YAAY,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACtE,YAAY,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACjE,YAAY,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClD,SAAS,CAAC;AACV,QAAQ,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;AACpD,QAAQ,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AACzE,QAAQ,IAAI,wBAAwB,EAAE;AACtC,YAAY,wBAAwB,CAAC,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;AACrG;AACA;AACA;AACA,IAAI,uBAAuB,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxD,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACvD,QAAQ,MAAM,IAAI,GAAG,IAAI;AACzB,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,IAAI,GAAG,WAAW;AACvC,QAAQ,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;AAC3C,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC;AACxJ,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;AAC/C,QAAQ,IAAI,CAAC,OAAO,EAAE;AACtB,YAAY,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;AACpD;AACA,QAAQ,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;AAC3C,QAAQ,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,QAAQ,OAAO,CAAC,SAAS,GAAG,QAAQ;AACpC,QAAQ,OAAO,CAAC,YAAY,GAAG,QAAQ;AACvC,QAAQ,OAAO,CAAC,SAAS,GAAG,MAAM;AAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpD,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC;AACtC,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW;AACrC,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;AACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;AAC5E;AACA,QAAQ,OAAO,CAAC,WAAW,GAAG,IAAI;AAClC,QAAQ,OAAO,OAAO;AACtB;AACA;AACA,MAAMA,gBAAc,GAAG;AACvB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,UAAU,EAAE,CAAC,oBAAoB,CAAC;AACtC,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,QAAQ,EAAE,EAAE;AAChB,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,MAAM,EAAE,KAAK;AACjB,CAAC;AACM,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtH,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3T;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,YAAY;AAC1C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACnHhC,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEC,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC7f;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,YAAY;AAC1C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,oBAAoB,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;AAClG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9BhC,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC;AAC5C;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACxL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACxc;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,0BAA0B;AACxD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,yBAAyB,EAAE,CAAC;AAC7C;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1c;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,2BAA2B;AACzD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9BhC,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3P,QAAQ,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACtC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1U;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,oBAAoB;AAClD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACxBhC,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACpC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACxb;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,kBAAkB;AAChD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC7a;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,YAAY;AAC1C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACxD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACpF,YAAY,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI;AACpD,YAAY,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC;AAClE;AACA,YAAY,IAAI,SAAS;AACzB,gBAAgB,MAAM,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;AACnD;AACA,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE;AACtC,gBAAgB,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;AAClG;AACA;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/C,YAAY,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,sBAAsB;AACvE,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE;AACpD,YAAY,SAAS,CAAC,MAAM,kBAAkB,CAAC,OAAO,EAAE,CAAC;AACzD,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3U;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,qBAAqB;AACnD,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACzChC,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;AACnC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACtb;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,QAAQ,CAAC;AACtB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;AAC9B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3a;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,WAAW;AACzC,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9BhC,MAAM,UAAU,CAAC;AACxB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtL,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAChD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;AACpD,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAChE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AACpE,QAAQ,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACzD,QAAQ,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,2BAA2B,CAAC;AAC3F,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACzD,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC;AACtD,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC/B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACjC,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACnC,YAAY,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;AAC/C,YAAY,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;AACnD,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AAC/B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACrC,YAAY,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EAAE;AACvE,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACrC,SAAS,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG;AAC7D,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,aAAa;AACb,YAAY,YAAY,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI,IAAI,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ;AAC1F,YAAY,UAAU,EAAE;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC7T;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,aAAa;AAC3C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACzDhC,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACxD,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AAClC,YAAY,IAAI,OAAO,GAAG,KAAK,UAAU;AACzC,gBAAgB,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;AACxC,YAAY,OAAO,UAAU,CAAC,GAAG,CAAC;AAClC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACzH,YAAY,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;AACjE,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAChD,YAAY,IAAI,CAAC,UAAU;AAC3B,gBAAgB;AAChB,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/C,YAAY,aAAa,CAAC,WAAW,GAAG,UAAU;AAClD,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChU;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,eAAe;AAC7C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7ChC,MAAM,QAAQ,CAAC;AACtB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9C,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3H,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/D,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;AACvD;AACA,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACzT;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,WAAW;AACzC,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/BhC,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;AACvC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACnL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC9b;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,qBAAqB;AACnD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACnCvC;AACA;AASA,MAAM,eAAe,GAAG;AACxB,IAAI,cAAc,2BAA2B;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;AACM,MAAM,eAAe,SAAS,MAAM,CAAC;AAC5C,IAAI,WAAW,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,SAAS,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,eAAe,GAAG,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,eAAe,GAAG,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAAE,UAAU,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EAAE,SAAS,GAAG,KAAK,GAAG,GAAG,EAAE,EAAE;AACxb,QAAQ,KAAK,CAAC,iBAAiB,EAAE,eAAe,CAAC,cAAc,EAAE;AACjE,YAAY,aAAa;AACzB,YAAY,QAAQ,EAAE,IAAI,GAAG,CAAC;AAC9B,gBAAgB,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvD,gBAAgB,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,gBAAgB,CAAC,cAAc,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACjE,gBAAgB,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,gBAAgB,CAAC,aAAa,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC/D,gBAAgB,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,gBAAgB,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,gBAAgB,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,gBAAgB,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,gBAAgB,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzD,gBAAgB,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,gBAAgB,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACvE,gBAAgB,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AACvE,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACzE,gBAAgB,CAAC,YAAY,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7D,gBAAgB,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,gBAAgB,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvD,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;AAC/C,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAChD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,CAAC,KAAK,IAAI,SAAS;AACpC;AACA;AACA;AACA,MAAMD,gBAAc,GAAG;AACvB,IAAI,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC5C,IAAI,WAAW,EAAE,KAAK;AACtB,IAAI,UAAU,EAAE,GAAG;AACnB,CAAC;AACM,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACxD,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1F,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACzD,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;AACpD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE;AAC1C,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChI,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG;AACrD,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC5C,aAAa;AACb,YAAY,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;AAC3E,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK;AAC3C,gBAAgB,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM;AAC5C;AACA,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV,QAAQ,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK;AACpC,YAAY,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5C,YAAY,IAAI,CAAC,MAAM;AACvB,gBAAgB;AAChB,YAAY,MAAM,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG;AAC/F,gBAAgB,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO;AAC3C,gBAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS;AAC7C,aAAa;AACb,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;AACrE,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;AAC3D,YAAY,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ;AAC3C,gBAAgB;AAChB,YAAY,IAAI,MAAM,GAAG,CAAC;AAC1B,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AACjD,gBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AACjD,gBAAgB,MAAM,GAAG,CAAC;AAC1B;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;AACrE,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC;AAChD,oBAAoB;AACpB,gBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAChE,gBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAChE,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACpF,gBAAgB,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC7D,gBAAgB,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;AACnF,gBAAgB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE;AACtD,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,IAAI,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,cAAc,EAAE;AAC3E,wBAAwB,MAAM,GAAG,CAAC;AAClC;AACA,yBAAyB,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;AACzD,wBAAwB,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE;AACtF;AACA,4BAA4B,MAAM,GAAG,GAAG;AACxC;AACA,6BAA6B,IAAI,eAAe,IAAI,MAAM,CAAC,QAAQ;AACnE,4BAA4B,OAAO,MAAM,CAAC,QAAQ,CAAC,aAAa,KAAK,QAAQ;AAC7E,4BAA4B,MAAM,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,EAAE;AACjE;AACA,4BAA4B,MAAM,GAAG,GAAG;AACxC;AACA,6BAA6B,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC9D;AACA,4BAA4B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO;AAC5D;AACA;AACA;AACA;AACA,YAAY,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC;AACrE,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACpU;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/LhC,MAAM,OAAO,CAAC;AACrB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;AAC5C,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC;AACtF,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACtD,YAAY,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;AAChD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,wBAAwB,EAAE,UAAU,CAAC,GAAG;AACxE,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,IAAI,CAAC,GAAG,EAAE;AAC1B,gBAAgB,IAAI,CAAC,wBAAwB,EAAE;AAC/C,gBAAgB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,aAAa;AACb,YAAY,IAAI,wBAAwB;AACxC,gBAAgB,MAAM,CAAC,wBAAwB,GAAG,wBAAwB;AAC1E,YAAY,IAAI,GAAG;AACnB,gBAAgB,MAAM,CAAC,GAAG,GAAG,GAAG;AAChC,YAAY,UAAU,EAAE;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzK,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACvT;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,UAAU;AACxC,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC1ChC,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEC,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACrgB;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,YAAY;AAC1C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,oBAAoB,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1G,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC9BvC,MAAMD,gBAAc,GAAG;AACvB,IAAI,cAAc,EAAE,EAAE;AACtB,CAAC;AACM,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvE,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACxD,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;AACxD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClE,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAChE,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClE,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAC1D,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;AACtE,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AACpE,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAChD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;AAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC9C,YAAY,eAAe;AAC3B,YAAY,gBAAgB;AAC5B,YAAY,cAAc;AAC1B,YAAY,YAAY;AACxB,YAAY,kBAAkB;AAC9B,YAAY,iBAAiB;AAC7B,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY,YAAY;AACxB,YAAY,MAAM;AAClB,YAAY,MAAM;AAClB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG;AACrL,gBAAgB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3C,gBAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;AAC5C,gBAAgB,IAAI,CAAC,aAAa,EAAE;AACpC,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;AACvC,gBAAgB,IAAI,CAAC,eAAe,EAAE;AACtC,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,gBAAgB,IAAI,CAAC,IAAI,EAAE;AAC3B,gBAAgB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,aAAa;AACb,YAAY,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AACpD,gBAAgB,aAAa;AAC7B,gBAAgB,cAAc;AAC9B,gBAAgB,YAAY;AAC5B,gBAAgB,UAAU;AAC1B,gBAAgB,gBAAgB;AAChC,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB,gBAAgB,MAAM;AACtB,gBAAgB,UAAU;AAC1B,gBAAgB,IAAI;AACpB,gBAAgB,IAAI;AACpB,gBAAgB,GAAG,WAAW;AAC9B,aAAa,CAAC;AACd,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,GAAG;AACzD,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,gBAAgB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,aAAa;AACb,YAAY,MAAM,CAAC,cAAc,GAAG,cAAc;AAClD,YAAY,UAAU,EAAE;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpC;AACA,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE;AACpD,oBAAoB,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC;AACtH;AACA,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AACpH,gBAAgB,SAAS,CAAC,MAAM;AAChC,oBAAoB,OAAO,IAAI;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB;AAChB;AACA;AACA,YAAY,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAChE,YAAY,IAAI,CAAC,gBAAgB;AACjC,gBAAgB;AAChB,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC5H,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,OAAO,IAAI;AAC3B,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;AAChE,QAAQ,MAAM,SAAS,GAAG,QAAQ,EAAE;AACpC,QAAQ,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;AAChD,YAAY;AACZ,QAAQ,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC;AAC/D,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;AACpC,YAAY,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC;AACtC,YAAY,IAAI,CAAC,GAAG;AACpB,gBAAgB;AAChB,YAAY,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AAC7B;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;AAChC,YAAY;AACZ,QAAQ,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACrC,QAAQ,UAAU,EAAE;AACpB,QAAQ,OAAO,MAAM;AACrB,YAAY,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;AACpC,YAAY,UAAU,EAAE;AACxB,SAAS;AACT;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC/T;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,cAAc;AAC5C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7IhC,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5L,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/H,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AAC7C,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACrU;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACxBvC,MAAMA,gBAAc,GAAG;AACvB,IAAI,OAAO,EAAE,IAAI;AACjB,CAAC;AACM,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAACA,gBAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAACA,gBAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;AAClC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEC,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACvgB;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,eAAe;AAC7C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,oBAAoB,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;AACtG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACxCvC;AACA;AAOA,MAAM,cAAc,GAAG;AACvB,IAAI,cAAc,EAAE,EAAE;AACtB,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,gBAAgB,EAAE,KAAK;AAC3B,CAAC;AACM,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC;AAChE,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC;AAC1E,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC;AAC1E,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAC1D,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;AACxD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;AAC1D,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;AACpE,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAChD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;AAC5D,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;AAC5D,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;AACtD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC;AACtE,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClE,QAAQ,IAAI,CAAC,KAAK,GAAG,WAAW,EAAE;AAClC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACxD,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvE,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtJ,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9C,YAAY,IAAI,CAAC,SAAS;AAC1B,gBAAgB,OAAO,EAAE;AACzB,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,CAAC;AAC5E,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChE,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAAM;AAClD,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO;AAChE,gBAAgB,OAAO,EAAE;AACzB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvF,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE;AAC/G,gBAAgB,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,aAAa,CAAC,GAAG;AACxE,gBAAgB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC7D,gBAAgB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC7D,gBAAgB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7C,gBAAgB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3C,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrC,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrC,gBAAgB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7C,gBAAgB,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;AACvD,gBAAgB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnC,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrC,gBAAgB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/C,gBAAgB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/C,aAAa,CAAC;AACd,YAAY,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7C,YAAY,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC7D,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B;AACA,YAAY,IAAI,IAAI,CAAC,YAAY;AACjC,gBAAgB;AAChB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACrD,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM;AACjC,gBAAgB;AAChB,YAAY,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxG,YAAY,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC3C,YAAY,UAAU,EAAE;AACxB,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;AACxC,gBAAgB,UAAU,EAAE;AAC5B,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG;AACzD,gBAAgB,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;AACvC,gBAAgB,IAAI,CAAC,MAAM,EAAE;AAC7B,aAAa;AACb,YAAY,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,cAAc;AACnD,YAAY,UAAU,EAAE;AACxB,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;AAChD,YAAY,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;AAClC,gBAAgB;AAChB,YAAY,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxG,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5E,YAAY,UAAU,EAAE;AACxB,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACnF,gBAAgB,UAAU,EAAE;AAC5B,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,CAAC,CAAC,SAAS,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACvD,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM;AAChC,gBAAgB;AAChB,YAAY,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxG,YAAY,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1C,YAAY,UAAU,EAAE;AACxB,YAAY,SAAS,CAAC,MAAM;AAC5B,gBAAgB,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;AACxC,gBAAgB,UAAU,EAAE;AAC5B,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE;AAC5B,QAAQ,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AACnD;AACA,IAAI,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE;AAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AACpD;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC5kB;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,sBAAsB;AACpD,oBAAoB,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,CAAC;AACtC,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACvIhC,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC7a;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,YAAY;AAC1C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;AACnC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACtb;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,QAAQ,CAAC;AACtB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;AAC9B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3a;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,WAAW;AACzC,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;AACnC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACtgB;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,oBAAoB,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;AAClG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BvC,MAAM,eAAe,GAAG;AACxB,IAAI,cAAc,2BAA2B;;AAE7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI,CAAC;AACL,CAAC;AACM,MAAM,gBAAgB,SAAS,MAAM,CAAC;AAC7C,IAAI,WAAW,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;AACnE,IAAI,KAAK,GAAG,GAAG;AACf,IAAI,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACtB,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACpB,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACtB,MAAM,GAAG,EAAE,EAAE;AACb,QAAQ,KAAK,CAAC,iBAAiB,EAAE,eAAe,CAAC,cAAc,EAAE;AACjE,YAAY,aAAa;AACzB,YAAY,UAAU,EAAE,eAAe,CAAC,WAAW;AACnD,YAAY,QAAQ,EAAE,IAAI,GAAG,CAAC;AAC9B,gBAAgB,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACjD,gBAAgB,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,gBAAgB,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,gBAAgB,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/C,gBAAgB,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvD,gBAAgB,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3D,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA;AACA,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACrB,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3gB;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,kBAAkB;AAChD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,oBAAoB,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AChHN,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;AACrC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1b;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7BhC,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;AAClC;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnb;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,eAAe;AAC7C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC5BvC,MAAM,WAAW,GAAG;AACpB,IAAI,cAAc,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC;AACM,MAAM,WAAW,SAAS,MAAM,CAAC;AACxC,IAAI,WAAW,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC3E,QAAQ,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc,EAAE;AACzD,YAAY,aAAa;AACzB,YAAY,UAAU,EAAE,eAAe,CAAC,WAAW;AACnD,YAAY,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,SAAS,CAAC;AACV;AACA;AACO,MAAM,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;AAC/B;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,SAAS,EAAEA,UAAa,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChgB;AACA;AACA;AACA;AACA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,YAAY;AAC1C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,CAAC,CAAC;AACF,oBAAoB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACrD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAC3D,oBAAoB,cAAc,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC;AACrG,oBAAoB,SAAS,EAAE,CAAC,2BAA2B,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AACrG,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7DvC;AACA;AACA;;;;"}
|