@angular/core 18.0.5 → 18.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/esm2022/primitives/event-dispatch/index.mjs +3 -2
  2. package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +3 -3
  3. package/esm2022/primitives/event-dispatch/src/attribute.mjs +16 -52
  4. package/esm2022/primitives/event-dispatch/src/cache.mjs +17 -6
  5. package/esm2022/primitives/event-dispatch/src/char.mjs +1 -16
  6. package/esm2022/primitives/event-dispatch/src/event.mjs +2 -3
  7. package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +5 -66
  8. package/esm2022/primitives/event-dispatch/src/property.mjs +17 -22
  9. package/esm2022/primitives/signals/index.mjs +3 -3
  10. package/esm2022/primitives/signals/src/signal.mjs +4 -1
  11. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +2 -2
  12. package/esm2022/src/core_private_export.mjs +3 -1
  13. package/esm2022/src/defer/instructions.mjs +53 -35
  14. package/esm2022/src/event_delegation_utils.mjs +40 -23
  15. package/esm2022/src/event_dispatch/event_delegation.mjs +38 -0
  16. package/esm2022/src/hydration/annotate.mjs +3 -3
  17. package/esm2022/src/hydration/event_replay.mjs +5 -5
  18. package/esm2022/src/render3/component_ref.mjs +1 -1
  19. package/esm2022/src/render3/debug/framework_injector_profiler.mjs +3 -2
  20. package/esm2022/src/version.mjs +1 -1
  21. package/esm2022/testing/src/logger.mjs +3 -3
  22. package/fesm2022/core.mjs +127 -63
  23. package/fesm2022/core.mjs.map +1 -1
  24. package/fesm2022/primitives/event-dispatch.mjs +53 -242
  25. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  26. package/fesm2022/primitives/signals.mjs +5 -2
  27. package/fesm2022/primitives/signals.mjs.map +1 -1
  28. package/fesm2022/rxjs-interop.mjs +1 -1
  29. package/fesm2022/testing.mjs +1 -1
  30. package/index.d.ts +31 -2
  31. package/package.json +1 -1
  32. package/primitives/event-dispatch/index.d.ts +22 -102
  33. package/primitives/signals/index.d.ts +10 -1
  34. package/rxjs-interop/index.d.ts +1 -1
  35. package/schematics/migrations/http-providers/bundle.js +15 -15
  36. package/schematics/migrations/invalid-two-way-bindings/bundle.js +161 -161
  37. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +1 -1
  38. package/schematics/ng-generate/control-flow-migration/bundle.js +169 -169
  39. package/schematics/ng-generate/control-flow-migration/bundle.js.map +1 -1
  40. package/schematics/ng-generate/standalone-migration/bundle.js +445 -445
  41. package/schematics/ng-generate/standalone-migration/bundle.js.map +1 -1
  42. package/testing/index.d.ts +1 -1
  43. package/esm2022/primitives/event-dispatch/src/dom.mjs +0 -48
@@ -168,7 +168,8 @@ function handleInstanceCreatedByInjectorEvent(context, data) {
168
168
  if (typeof value === 'object') {
169
169
  standaloneComponent = value?.constructor;
170
170
  }
171
- if (standaloneComponent === undefined || !isStandaloneComponent(standaloneComponent)) {
171
+ // We want to also cover if `standaloneComponent === null` in addition to `undefined`
172
+ if (standaloneComponent == undefined || !isStandaloneComponent(standaloneComponent)) {
172
173
  return;
173
174
  }
174
175
  const environmentInjector = context.injector.get(EnvironmentInjector, null, { optional: true });
@@ -246,4 +247,4 @@ function canBeHeldWeakly(value) {
246
247
  return (value !== null &&
247
248
  (typeof value === 'object' || typeof value === 'function' || typeof value === 'symbol'));
248
249
  }
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrX2luamVjdG9yX3Byb2ZpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZWJ1Zy9mcmFtZXdvcmtfaW5qZWN0b3JfcHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsbUJBQW1CLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSS9FLE9BQU8sRUFPTCxtQkFBbUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNFLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO1FBQ0osd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDeEUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7SUFVekUsQ0FBQztJQVJDLEtBQUs7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEVBRzdDLENBQUM7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELElBQUksb0JBQW9CLEdBQUcsSUFBSSxXQUFXLEVBQUUs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Q0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUE4QjtJQUNuRCxJQUFJLFVBQVUsR0FBNEIsSUFBSSxDQUFDO0lBRS9DLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsaUdBQWlHO0lBQ2pHLDZGQUE2RjtJQUM3Riw2RkFBNkY7SUFDN0Ysc0NBQXNDO0lBQ3RDLElBQUksUUFBUSxZQUFZLFlBQVksRUFBRSxDQUFDO1FBQ3JDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsdUVBQXVFO0lBQ3ZFLFVBQVU7U0FDTCxDQUFDO1FBQ0osVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELGNBQWM7QUFDZCxvR0FBb0c7QUFDcEcsU0FBUyxlQUFlLENBQUMsS0FBVTtJQUNqQyxtRUFBbUU7SUFDbkUsT0FBTyxDQUNMLEtBQUssS0FBSyxJQUFJO1FBQ2QsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUN4RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0luamVjdG9yfSBmcm9tICcuLi8uLi9kaS9pbmplY3Rvcic7XG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4uLy4uL2RpL3IzX2luamVjdG9yJztcbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHthc3NlcnREZWZpbmVkLCB0aHJvd0Vycm9yfSBmcm9tICcuLi8uLi91dGlsL2Fzc2VydCc7XG5pbXBvcnQge2Fzc2VydFROb2RlLCBhc3NlcnRUTm9kZUZvckxWaWV3fSBmcm9tICcuLi9hc3NlcnQnO1xuaW1wb3J0IHtnZXRDb21wb25lbnREZWZ9IGZyb20gJy4uL2RlZmluaXRpb24nO1xuaW1wb3J0IHtnZXROb2RlSW5qZWN0b3JMVmlldywgZ2V0Tm9kZUluamVjdG9yVE5vZGUsIE5vZGVJbmplY3Rvcn0gZnJvbSAnLi4vZGknO1xuaW1wb3J0IHtUTm9kZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7TFZpZXd9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlldyc7XG5cbmltcG9ydCB7XG4gIEluamVjdGVkU2VydmljZSxcbiAgSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UsXG4gIEluamVjdG9yUHJvZmlsZXJDb250ZXh0LFxuICBJbmplY3RvclByb2ZpbGVyRXZlbnQsXG4gIEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUsXG4gIFByb3ZpZGVyUmVjb3JkLFxuICBzZXRJbmplY3RvclByb2ZpbGVyLFxufSBmcm9tICcuL2luamVjdG9yX3Byb2ZpbGVyJztcblxuLyoqXG4gKiBUaGVzZSBhcmUgdGhlIGRhdGEgc3RydWN0dXJlcyB0aGF0IG91ciBmcmFtZXdvcmsgaW5qZWN0b3IgcHJvZmlsZXIgd2lsbCBmaWxsIHdpdGggZGF0YSBpbiBvcmRlclxuICogdG8gc3VwcG9ydCBESSBkZWJ1Z2dpbmcgQVBJcy5cbiAqXG4gKiByZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llczogTWFwcyBhbiBpbmplY3RvciB0byBhIE1hcCBvZiB0b2tlbnMgdG8gYW4gQXJyYXkgb2ZcbiAqIGRlcGVuZGVuY2llcy4gSW5qZWN0b3IgLT4gVG9rZW4gLT4gRGVwZW5kZW5jaWVzIFRoaXMgaXMgdXNlZCB0byBzdXBwb3J0IHRoZVxuICogZ2V0RGVwZW5kZW5jaWVzRnJvbUluamVjdGFibGUgQVBJLCB3aGljaCB0YWtlcyBpbiBhbiBpbmplY3RvciBhbmQgYSB0b2tlbiBhbmQgcmV0dXJucyBpdCdzXG4gKiBkZXBlbmRlbmNpZXMuXG4gKlxuICogcmVzb2x2ZXJUb1Byb3ZpZGVyczogTWFwcyBhIERJIHJlc29sdmVyIChhbiBJbmplY3RvciBvciBhIFROb2RlKSB0byB0aGUgcHJvdmlkZXJzIGNvbmZpZ3VyZWRcbiAqIHdpdGhpbiBpdCBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCB0aGUgZ2V0SW5qZWN0b3JQcm92aWRlcnMgQVBJLCB3aGljaCB0YWtlcyBpbiBhbiBpbmplY3RvciBhbmRcbiAqIHJldHVybnMgdGhlIHByb3ZpZGVycyB0aGF0IGl0IHdhcyBjb25maWd1cmVkIHdpdGguIE5vdGUgdGhhdCBmb3IgdGhlIGVsZW1lbnQgaW5qZWN0b3IgY2FzZSB3ZVxuICogdXNlIHRoZSBUTm9kZSBpbnN0ZWFkIG9mIHRoZSBMVmlldyBhcyB0aGUgREkgcmVzb2x2ZXIuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcmVnaXN0cmF0aW9uIG9mXG4gKiBwcm92aWRlcnMgaGFwcGVucyBvbmx5IG9uY2UgcGVyIHR5cGUgb2YgVE5vZGUuIElmIGFuIGluamVjdG9yIGlzIGNyZWF0ZWQgd2l0aCBhbiBpZGVudGljYWwgVE5vZGUsXG4gKiB0aGUgcHJvdmlkZXJzIGZvciB0aGF0IGluamVjdG9yIHdpbGwgbm90IGJlIHJlY29uZmlndXJlZC5cbiAqXG4gKiBzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudDogTWFwcyB0aGUgaW5qZWN0b3Igb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCB0byB0aGUgc3RhbmRhbG9uZVxuICogY29tcG9uZW50IHRoYXQgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLiBVc2VkIGluIHRoZSBnZXRJbmplY3RvclByb3ZpZGVycyBBUEksIHNwZWNpZmljaWFsbHkgaW4gdGhlXG4gKiBkaXNjb3Zlcnkgb2YgaW1wb3J0IHBhdGhzIGZvciBlYWNoIHByb3ZpZGVyLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBpbXBvcnRzIGFycmF5IG9mIGFcbiAqIHN0YW5kYWxvbmUgY29tcG9uZW50IGlzIHByb2Nlc3NlZCBhbmQgY29uZmlndXJlZCBpbiBpdHMgc3RhbmRhbG9uZSBpbmplY3RvciwgYnV0IGV4aXN0cyB3aXRoaW5cbiAqIHRoZSBjb21wb25lbnQncyBkZWZpbml0aW9uLiBCZWNhdXNlIGdldEluamVjdG9yUHJvdmlkZXJzIHRha2VzIGluIGFuIGluamVjdG9yLCBpZiB0aGF0IGluamVjdG9yXG4gKiBpcyB0aGUgaW5qZWN0b3Igb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGRpc2NvdmVyIHRoZSBwbGFjZSB3aGVyZSB0aGVcbiAqIGltcG9ydHMgYXJyYXkgaXMgbG9jYXRlZCAodGhlIGNvbXBvbmVudCkgaW4gb3JkZXIgdG8gZmxhdHRlbiB0aGUgaW1wb3J0cyBhcnJheSB3aXRoaW4gaXQgdG9cbiAqIGRpc2NvdmVyIGFsbCBvZiBpdCdzIHByb3ZpZGVycy5cbiAqXG4gKlxuICogQWxsIG9mIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBhcmUgaW5zdGFudGlhdGVkIHdpdGggV2Vha01hcHMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgcHJlc2VuY2VcbiAqIG9mIGFueSBvYmplY3QgaW4gdGhlIGtleXMgb2YgdGhlc2UgbWFwcyBkb2VzIG5vdCBwcmV2ZW50IHRoZSBnYXJiYWdlIGNvbGxlY3RvciBmcm9tIGNvbGxlY3RpbmdcbiAqIHRob3NlIG9iamVjdHMuIEJlY2F1c2Ugb2YgdGhpcyBwcm9wZXJ0eSBvZiBXZWFrTWFwcywgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzIHdpbGwgbmV2ZXIgYmUgdGhlXG4gKiBzb3VyY2Ugb2YgYSBtZW1vcnkgbGVhay5cbiAqXG4gKiBBbiBleGFtcGxlIG9mIHRoaXMgYWR2YW50YWdlOiBXaGVuIGNvbXBvbmVudHMgYXJlIGRlc3Ryb3llZCwgd2UgZG9uJ3QgbmVlZCB0byBkb1xuICogYW55IGFkZGl0aW9uYWwgd29yayB0byByZW1vdmUgdGhhdCBjb21wb25lbnQgZnJvbSBvdXIgbWFwcGluZ3MuXG4gKlxuICovXG5jbGFzcyBESURlYnVnRGF0YSB7XG4gIHJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzID0gbmV3IFdlYWtNYXA8XG4gICAgSW5qZWN0b3IgfCBMVmlldyxcbiAgICBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPlxuICA+KCk7XG4gIHJlc29sdmVyVG9Qcm92aWRlcnMgPSBuZXcgV2Vha01hcDxJbmplY3RvciB8IFROb2RlLCBQcm92aWRlclJlY29yZFtdPigpO1xuICBzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudCA9IG5ldyBXZWFrTWFwPEluamVjdG9yLCBUeXBlPHVua25vd24+PigpO1xuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMucmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXMgPSBuZXcgV2Vha01hcDxcbiAgICAgIEluamVjdG9yIHwgTFZpZXcsXG4gICAgICBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPlxuICAgID4oKTtcbiAgICB0aGlzLnJlc29sdmVyVG9Qcm92aWRlcnMgPSBuZXcgV2Vha01hcDxJbmplY3RvciB8IFROb2RlLCBQcm92aWRlclJlY29yZFtdPigpO1xuICAgIHRoaXMuc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQgPSBuZXcgV2Vha01hcDxJbmplY3RvciwgVHlwZTx1bmtub3duPj4oKTtcbiAgfVxufVxuXG5sZXQgZnJhbWV3b3JrRElEZWJ1Z0RhdGEgPSBuZXcgRElEZWJ1Z0RhdGEoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZyYW1ld29ya0RJRGVidWdEYXRhKCk6IERJRGVidWdEYXRhIHtcbiAgcmV0dXJuIGZyYW1ld29ya0RJRGVidWdEYXRhO1xufVxuXG4vKipcbiAqIEluaXRhbGl6ZSBkZWZhdWx0IGhhbmRsaW5nIG9mIGluamVjdG9yIGV2ZW50cy4gVGhpcyBoYW5kbGluZyBwYXJzZXMgZXZlbnRzXG4gKiBhcyB0aGV5IGFyZSBlbWl0dGVkIGFuZCBjb25zdHJ1Y3RzIHRoZSBkYXRhIHN0cnVjdHVyZXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnRcbiAqIHNvbWUgb2YgZGVidWcgQVBJcy5cbiAqXG4gKiBTZWUgaGFuZGxlSW5qZWN0RXZlbnQsIGhhbmRsZUNyZWF0ZUV2ZW50IGFuZCBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudFxuICogZm9yIGRlc2NyaXB0aW9ucyBvZiBlYWNoIGhhbmRsZXJcbiAqXG4gKiBTdXBwb3J0ZWQgQVBJczpcbiAqICAgICAgICAgICAgICAgLSBnZXREZXBlbmRlbmNpZXNGcm9tSW5qZWN0YWJsZVxuICogICAgICAgICAgICAgICAtIGdldEluamVjdG9yUHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEZyYW1ld29ya0luamVjdG9yUHJvZmlsZXIoKTogdm9pZCB7XG4gIGZyYW1ld29ya0RJRGVidWdEYXRhLnJlc2V0KCk7XG4gIHNldEluamVjdG9yUHJvZmlsZXIoKGluamVjdG9yUHJvZmlsZXJFdmVudCkgPT5cbiAgICBoYW5kbGVJbmplY3RvclByb2ZpbGVyRXZlbnQoaW5qZWN0b3JQcm9maWxlckV2ZW50KSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlSW5qZWN0b3JQcm9maWxlckV2ZW50KGluamVjdG9yUHJvZmlsZXJFdmVudDogSW5qZWN0b3JQcm9maWxlckV2ZW50KTogdm9pZCB7XG4gIGNvbnN0IHtjb250ZXh0LCB0eXBlfSA9IGluamVjdG9yUHJvZmlsZXJFdmVudDtcblxuICBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5JbmplY3QpIHtcbiAgICBoYW5kbGVJbmplY3RFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQuc2VydmljZSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5JbnN0YW5jZUNyZWF0ZWRCeUluamVjdG9yKSB7XG4gICAgaGFuZGxlSW5zdGFuY2VDcmVhdGVkQnlJbmplY3RvckV2ZW50KGNvbnRleHQsIGluamVjdG9yUHJvZmlsZXJFdmVudC5pbnN0YW5jZSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5Qcm92aWRlckNvbmZpZ3VyZWQpIHtcbiAgICBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQucHJvdmlkZXJSZWNvcmQpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFN0b3JlcyB0aGUgaW5qZWN0ZWQgc2VydmljZSBpbiBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llc1xuICogYmFzZWQgb24gaXQncyBpbmplY3RvciBhbmQgdG9rZW4uXG4gKlxuICogQHBhcmFtIGNvbnRleHQgSW5qZWN0b3JQcm9maWxlckNvbnRleHQgdGhlIGluamVjdGlvbiBjb250ZXh0IHRoYXQgdGhpcyBldmVudCBvY2N1cnJlZCBpbi5cbiAqIEBwYXJhbSBkYXRhIEluamVjdGVkU2VydmljZSB0aGUgc2VydmljZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbmplY3QgZXZlbnQuXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVJbmplY3RFdmVudChjb250ZXh0OiBJbmplY3RvclByb2ZpbGVyQ29udGV4dCwgZGF0YTogSW5qZWN0ZWRTZXJ2aWNlKSB7XG4gIGNvbnN0IGRpUmVzb2x2ZXIgPSBnZXRESVJlc29sdmVyKGNvbnRleHQuaW5qZWN0b3IpO1xuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0FuIEluamVjdCBldmVudCBtdXN0IGJlIHJ1biB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuJyk7XG4gIH1cblxuICBjb25zdCBkaVJlc29sdmVyVG9JbnN0YW50aWF0ZWRUb2tlbiA9IGZyYW1ld29ya0RJRGVidWdEYXRhLnJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzO1xuXG4gIGlmICghZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4uaGFzKGRpUmVzb2x2ZXIpKSB7XG4gICAgZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4uc2V0KGRpUmVzb2x2ZXIsIG5ldyBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPigpKTtcbiAgfVxuXG4gIC8vIGlmIHRva2VuIGlzIGEgcHJpbWl0aXZlIHR5cGUsIGlnbm9yZSB0aGlzIGV2ZW50LiBXZSBkbyB0aGlzIGJlY2F1c2Ugd2UgY2Fubm90IGtlZXAgdHJhY2sgb2ZcbiAgLy8gbm9uLXByaW1pdGl2ZSB0b2tlbnMgaW4gV2Vha01hcHMgc2luY2UgdGhleSBhcmUgbm90IGdhcmJhZ2UgY29sbGVjdGFibGUuXG4gIGlmICghY2FuQmVIZWxkV2Vha2x5KGNvbnRleHQudG9rZW4pKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcyA9IGRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLmdldChkaVJlc29sdmVyKSE7XG4gIGlmICghaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5oYXMoY29udGV4dC50b2tlbiEpKSB7XG4gICAgaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5zZXQoY29udGV4dC50b2tlbiEsIFtdKTtcbiAgfVxuXG4gIGNvbnN0IHt0b2tlbiwgdmFsdWUsIGZsYWdzfSA9IGRhdGE7XG5cbiAgYXNzZXJ0RGVmaW5lZChjb250ZXh0LnRva2VuLCAnSW5qZWN0b3IgcHJvZmlsZXIgY29udGV4dCB0b2tlbiBpcyB1bmRlZmluZWQuJyk7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5nZXQoY29udGV4dC50b2tlbik7XG4gIGFzc2VydERlZmluZWQoZGVwZW5kZW5jaWVzLCAnQ291bGQgbm90IHJlc29sdmUgZGVwZW5kZW5jaWVzIGZvciB0b2tlbi4nKTtcblxuICBpZiAoY29udGV4dC5pbmplY3RvciBpbnN0YW5jZW9mIE5vZGVJbmplY3Rvcikge1xuICAgIGRlcGVuZGVuY2llcy5wdXNoKHt0b2tlbiwgdmFsdWUsIGZsYWdzLCBpbmplY3RlZEluOiBnZXROb2RlSW5qZWN0b3JDb250ZXh0KGNvbnRleHQuaW5qZWN0b3IpfSk7XG4gIH0gZWxzZSB7XG4gICAgZGVwZW5kZW5jaWVzLnB1c2goe3Rva2VuLCB2YWx1ZSwgZmxhZ3N9KTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBSZXR1cm5zIHRoZSBMVmlldyBhbmQgVE5vZGUgYXNzb2NpYXRlZCB3aXRoIGEgTm9kZUluamVjdG9yLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGUgaW5qZWN0b3JcbiAqIGlzIG5vdCBhIE5vZGVJbmplY3Rvci5cbiAqXG4gKiBAcGFyYW0gaW5qZWN0b3JcbiAqIEByZXR1cm5zIHtsVmlldzogTFZpZXcsIHROb2RlOiBUTm9kZX18dW5kZWZpbmVkXG4gKi9cbmZ1bmN0aW9uIGdldE5vZGVJbmplY3RvckNvbnRleHQoaW5qZWN0b3I6IEluamVjdG9yKToge2xWaWV3OiBMVmlldzsgdE5vZGU6IFROb2RlfSB8IHVuZGVmaW5lZCB7XG4gIGlmICghKGluamVjdG9yIGluc3RhbmNlb2YgTm9kZUluamVjdG9yKSkge1xuICAgIHRocm93RXJyb3IoJ2dldE5vZGVJbmplY3RvckNvbnRleHQgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIE5vZGVJbmplY3RvcicpO1xuICB9XG5cbiAgY29uc3QgbFZpZXcgPSBnZXROb2RlSW5qZWN0b3JMVmlldyhpbmplY3Rvcik7XG4gIGNvbnN0IHROb2RlID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoaW5qZWN0b3IpO1xuICBpZiAodE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhc3NlcnRUTm9kZUZvckxWaWV3KHROb2RlLCBsVmlldyk7XG5cbiAgcmV0dXJuIHtsVmlldywgdE5vZGV9O1xufVxuXG4vKipcbiAqXG4gKiBJZiB0aGUgY3JlYXRlZCBpbnN0YW5jZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCBtYXBzIHRoZSBpbmplY3RvciB0byB0aGF0XG4gKiBzdGFuZGFsb25lIGNvbXBvbmVudCBpbiBmcmFtZXdvcmtESURlYnVnRGF0YS5zdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudFxuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVJbnN0YW5jZUNyZWF0ZWRCeUluamVjdG9yRXZlbnQoXG4gIGNvbnRleHQ6IEluamVjdG9yUHJvZmlsZXJDb250ZXh0LFxuICBkYXRhOiBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSxcbik6IHZvaWQge1xuICBjb25zdCB7dmFsdWV9ID0gZGF0YTtcblxuICBpZiAoZ2V0RElSZXNvbHZlcihjb250ZXh0LmluamVjdG9yKSA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0FuIEluamVjdG9yQ3JlYXRlZEluc3RhbmNlIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIC8vIGlmIG91ciB2YWx1ZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCBtYXAgdGhlIGluamVjdG9yIG9mIHRoYXQgc3RhbmRhbG9uZVxuICAvLyBjb21wb25lbnQgdG8gdGhlIGNvbXBvbmVudCBjbGFzcy4gT3RoZXJ3aXNlLCB0aGlzIGV2ZW50IGlzIGEgbm9vcC5cbiAgbGV0IHN0YW5kYWxvbmVDb21wb25lbnQ6IFR5cGU8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgc3RhbmRhbG9uZUNvbXBvbmVudCA9IHZhbHVlPy5jb25zdHJ1Y3RvciBhcyBUeXBlPHVua25vd24+O1xuICB9XG4gIGlmIChzdGFuZGFsb25lQ29tcG9uZW50ID09PSB1bmRlZmluZWQgfHwgIWlzU3RhbmRhbG9uZUNvbXBvbmVudChzdGFuZGFsb25lQ29tcG9uZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gY29udGV4dC5pbmplY3Rvci5nZXQoXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBudWxsLFxuICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICk7XG4gIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgaGF2ZSBhbiBlbnZpcm9ubWVudCBpbmplY3Rvci4gSWYgb25lIGNhbm5vdCBiZVxuICAvLyBmb3VuZCB3ZSBtYXkgYmUgaW4gYSB0ZXN0IGNhc2UgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgZGlkIG5vdCBleHBsaWNpdGx5XG4gIC8vIHNldHVwIHRoaXMgaW5qZWN0b3IuIEluIHRob3NlIGNhc2VzLCB3ZSBzaW1wbHkgaWdub3JlIHRoaXMgZXZlbnQuXG4gIGlmIChlbnZpcm9ubWVudEluamVjdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge3N0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50fSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIC8vIElmIG91ciBpbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCwgYXMgaXMgdGhlIGNhc2VcbiAgLy8gd2hlbiBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgYW5vdGhlciBzdGFuZGFsb25lIGNvbXBvbmVudCxcbiAgLy8gd2UgY29uc2lkZXIgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCAodGhlIGNvbXBvbmVudCBkb2luZyB0aGUgaW1wb3J0aW5nKVxuICAvLyBhcyB0aGUgY29tcG9uZW50IGNvbm5lY3RlZCB0byBvdXIgaW5qZWN0b3IuXG4gIGlmIChzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudC5oYXMoZW52aXJvbm1lbnRJbmplY3RvcikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gSWYgb3VyIGluamVjdG9yIGhhc24ndCBiZWVuIG1hcHBlZCwgdGhlbiB3ZSBtYXAgaXQgdG8gdGhlIHN0YW5kYWxvbmUgY29tcG9uZW50XG4gIHN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50LnNldChlbnZpcm9ubWVudEluamVjdG9yLCBzdGFuZGFsb25lQ29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTdGFuZGFsb25lQ29tcG9uZW50KHZhbHVlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih2YWx1ZSk7XG4gIHJldHVybiAhIWRlZj8uc3RhbmRhbG9uZTtcbn1cblxuLyoqXG4gKlxuICogU3RvcmVzIHRoZSBlbWl0dGVkIFByb3ZpZGVyUmVjb3JkcyBmcm9tIHRoZSBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLlByb3ZpZGVyQ29uZmlndXJlZFxuICogZXZlbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Byb3ZpZGVyc1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBQcm92aWRlclJlY29yZCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChcbiAgY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsXG4gIGRhdGE6IFByb3ZpZGVyUmVjb3JkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtyZXNvbHZlclRvUHJvdmlkZXJzfSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IFROb2RlO1xuICBpZiAoY29udGV4dD8uaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoY29udGV4dC5pbmplY3RvcikgYXMgVE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGNvbnRleHQuaW5qZWN0b3I7XG4gIH1cblxuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0EgUHJvdmlkZXJDb25maWd1cmVkIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIGlmICghcmVzb2x2ZXJUb1Byb3ZpZGVycy5oYXMoZGlSZXNvbHZlcikpIHtcbiAgICByZXNvbHZlclRvUHJvdmlkZXJzLnNldChkaVJlc29sdmVyLCBbXSk7XG4gIH1cblxuICByZXNvbHZlclRvUHJvdmlkZXJzLmdldChkaVJlc29sdmVyKSEucHVzaChkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0RElSZXNvbHZlcihpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQpOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCB7XG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGluamVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGlSZXNvbHZlcjtcbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGUgTFZpZXcgYXMgdGhlIGRpUmVzb2x2ZXIgZm9yIE5vZGVJbmplY3RvcnMgYmVjYXVzZSB0aGV5XG4gIC8vIGRvIG5vdCBwZXJzaXN0IGFueXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuIFRoZXkgYXJlIHNpbXBseSB3cmFwcGVycyBhcm91bmQgYW4gTFZpZXcgYW5kIGEgVE5vZGVcbiAgLy8gdGhhdCBkbyBwZXJzaXN0LiBCZWNhdXNlIG9mIHRoaXMsIHdlIHJlbHkgb24gdGhlIExWaWV3IG9mIHRoZSBOb2RlSW5qZWN0b3IgaW4gb3JkZXIgdG8gdXNlXG4gIC8vIGFzIGEgY29uY3JldGUga2V5IHRvIHJlcHJlc2VudCB0aGlzIGluamVjdG9yLiBJZiB3ZSBnZXQgdGhlIHNhbWUgTFZpZXcgYmFjayBsYXRlciwgd2Uga25vd1xuICAvLyB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIGluamVjdG9yLlxuICBpZiAoaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICB9XG4gIC8vIE90aGVyIGluamVjdG9ycyBjYW4gYmUgdXNlZCBhIGtleXMgZm9yIGEgbWFwIGJlY2F1c2UgdGhlaXIgaW5zdGFuY2VzXG4gIC8vIHBlcnNpc3RcbiAgZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIGRpUmVzb2x2ZXI7XG59XG5cbi8vIGluc3BpcmVkIGJ5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZXhlY3V0YWJsZS1jb2RlLWFuZC1leGVjdXRpb24tY29udGV4dHMuaHRtbCNzZWMtY2FuYmVoZWxkd2Vha2x5XG5mdW5jdGlvbiBjYW5CZUhlbGRXZWFrbHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBjaGVjayBmb3IgdmFsdWUgIT09IG51bGwgaGVyZSBiZWNhdXNlIHR5cGVvZiBudWxsID09PSAnb2JqZWN0XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJylcbiAgKTtcbn1cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrX2luamVjdG9yX3Byb2ZpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZWJ1Zy9mcmFtZXdvcmtfaW5qZWN0b3JfcHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsbUJBQW1CLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSS9FLE9BQU8sRUFPTCxtQkFBbUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNFLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO1FBQ0osd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDeEUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7SUFVekUsQ0FBQztJQVJDLEtBQUs7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEVBRzdDLENBQUM7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELElBQUksb0JBQW9CLEdBQUcsSUFBSSxXQUFXLEVBQUUs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LENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBOEI7SUFDbkQsSUFBSSxVQUFVLEdBQTRCLElBQUksQ0FBQztJQUUvQyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzQixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsb0VBQW9FO0lBQ3BFLGlHQUFpRztJQUNqRyw2RkFBNkY7SUFDN0YsNkZBQTZGO0lBQzdGLHNDQUFzQztJQUN0QyxJQUFJLFFBQVEsWUFBWSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELHVFQUF1RTtJQUN2RSxVQUFVO1NBQ0wsQ0FBQztRQUNKLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxjQUFjO0FBQ2Qsb0dBQW9HO0FBQ3BHLFNBQVMsZUFBZSxDQUFDLEtBQVU7SUFDakMsbUVBQW1FO0lBQ25FLE9BQU8sQ0FDTCxLQUFLLEtBQUssSUFBSTtRQUNkLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FDeEYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnLi4vLi4vZGkvaW5qZWN0b3InO1xuaW1wb3J0IHtFbnZpcm9ubWVudEluamVjdG9yfSBmcm9tICcuLi8uLi9kaS9yM19pbmplY3Rvcic7XG5pbXBvcnQge1R5cGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7YXNzZXJ0RGVmaW5lZCwgdGhyb3dFcnJvcn0gZnJvbSAnLi4vLi4vdXRpbC9hc3NlcnQnO1xuaW1wb3J0IHthc3NlcnRUTm9kZSwgYXNzZXJ0VE5vZGVGb3JMVmlld30gZnJvbSAnLi4vYXNzZXJ0JztcbmltcG9ydCB7Z2V0Q29tcG9uZW50RGVmfSBmcm9tICcuLi9kZWZpbml0aW9uJztcbmltcG9ydCB7Z2V0Tm9kZUluamVjdG9yTFZpZXcsIGdldE5vZGVJbmplY3RvclROb2RlLCBOb2RlSW5qZWN0b3J9IGZyb20gJy4uL2RpJztcbmltcG9ydCB7VE5vZGV9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQge0xWaWV3fSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuXG5pbXBvcnQge1xuICBJbmplY3RlZFNlcnZpY2UsXG4gIEluamVjdG9yQ3JlYXRlZEluc3RhbmNlLFxuICBJbmplY3RvclByb2ZpbGVyQ29udGV4dCxcbiAgSW5qZWN0b3JQcm9maWxlckV2ZW50LFxuICBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLFxuICBQcm92aWRlclJlY29yZCxcbiAgc2V0SW5qZWN0b3JQcm9maWxlcixcbn0gZnJvbSAnLi9pbmplY3Rvcl9wcm9maWxlcic7XG5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBvdXIgZnJhbWV3b3JrIGluamVjdG9yIHByb2ZpbGVyIHdpbGwgZmlsbCB3aXRoIGRhdGEgaW4gb3JkZXJcbiAqIHRvIHN1cHBvcnQgREkgZGVidWdnaW5nIEFQSXMuXG4gKlxuICogcmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXM6IE1hcHMgYW4gaW5qZWN0b3IgdG8gYSBNYXAgb2YgdG9rZW5zIHRvIGFuIEFycmF5IG9mXG4gKiBkZXBlbmRlbmNpZXMuIEluamVjdG9yIC0+IFRva2VuIC0+IERlcGVuZGVuY2llcyBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCB0aGVcbiAqIGdldERlcGVuZGVuY2llc0Zyb21JbmplY3RhYmxlIEFQSSwgd2hpY2ggdGFrZXMgaW4gYW4gaW5qZWN0b3IgYW5kIGEgdG9rZW4gYW5kIHJldHVybnMgaXQnc1xuICogZGVwZW5kZW5jaWVzLlxuICpcbiAqIHJlc29sdmVyVG9Qcm92aWRlcnM6IE1hcHMgYSBESSByZXNvbHZlciAoYW4gSW5qZWN0b3Igb3IgYSBUTm9kZSkgdG8gdGhlIHByb3ZpZGVycyBjb25maWd1cmVkXG4gKiB3aXRoaW4gaXQgVGhpcyBpcyB1c2VkIHRvIHN1cHBvcnQgdGhlIGdldEluamVjdG9yUHJvdmlkZXJzIEFQSSwgd2hpY2ggdGFrZXMgaW4gYW4gaW5qZWN0b3IgYW5kXG4gKiByZXR1cm5zIHRoZSBwcm92aWRlcnMgdGhhdCBpdCB3YXMgY29uZmlndXJlZCB3aXRoLiBOb3RlIHRoYXQgZm9yIHRoZSBlbGVtZW50IGluamVjdG9yIGNhc2Ugd2VcbiAqIHVzZSB0aGUgVE5vZGUgaW5zdGVhZCBvZiB0aGUgTFZpZXcgYXMgdGhlIERJIHJlc29sdmVyLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlZ2lzdHJhdGlvbiBvZlxuICogcHJvdmlkZXJzIGhhcHBlbnMgb25seSBvbmNlIHBlciB0eXBlIG9mIFROb2RlLiBJZiBhbiBpbmplY3RvciBpcyBjcmVhdGVkIHdpdGggYW4gaWRlbnRpY2FsIFROb2RlLFxuICogdGhlIHByb3ZpZGVycyBmb3IgdGhhdCBpbmplY3RvciB3aWxsIG5vdCBiZSByZWNvbmZpZ3VyZWQuXG4gKlxuICogc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQ6IE1hcHMgdGhlIGluamVjdG9yIG9mIGEgc3RhbmRhbG9uZSBjb21wb25lbnQgdG8gdGhlIHN0YW5kYWxvbmVcbiAqIGNvbXBvbmVudCB0aGF0IGl0IGlzIGFzc29jaWF0ZWQgd2l0aC4gVXNlZCBpbiB0aGUgZ2V0SW5qZWN0b3JQcm92aWRlcnMgQVBJLCBzcGVjaWZpY2lhbGx5IGluIHRoZVxuICogZGlzY292ZXJ5IG9mIGltcG9ydCBwYXRocyBmb3IgZWFjaCBwcm92aWRlci4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgaW1wb3J0cyBhcnJheSBvZiBhXG4gKiBzdGFuZGFsb25lIGNvbXBvbmVudCBpcyBwcm9jZXNzZWQgYW5kIGNvbmZpZ3VyZWQgaW4gaXRzIHN0YW5kYWxvbmUgaW5qZWN0b3IsIGJ1dCBleGlzdHMgd2l0aGluXG4gKiB0aGUgY29tcG9uZW50J3MgZGVmaW5pdGlvbi4gQmVjYXVzZSBnZXRJbmplY3RvclByb3ZpZGVycyB0YWtlcyBpbiBhbiBpbmplY3RvciwgaWYgdGhhdCBpbmplY3RvclxuICogaXMgdGhlIGluamVjdG9yIG9mIGEgc3RhbmRhbG9uZSBjb21wb25lbnQsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBkaXNjb3ZlciB0aGUgcGxhY2Ugd2hlcmUgdGhlXG4gKiBpbXBvcnRzIGFycmF5IGlzIGxvY2F0ZWQgKHRoZSBjb21wb25lbnQpIGluIG9yZGVyIHRvIGZsYXR0ZW4gdGhlIGltcG9ydHMgYXJyYXkgd2l0aGluIGl0IHRvXG4gKiBkaXNjb3ZlciBhbGwgb2YgaXQncyBwcm92aWRlcnMuXG4gKlxuICpcbiAqIEFsbCBvZiB0aGVzZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGluc3RhbnRpYXRlZCB3aXRoIFdlYWtNYXBzLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHByZXNlbmNlXG4gKiBvZiBhbnkgb2JqZWN0IGluIHRoZSBrZXlzIG9mIHRoZXNlIG1hcHMgZG9lcyBub3QgcHJldmVudCB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgZnJvbSBjb2xsZWN0aW5nXG4gKiB0aG9zZSBvYmplY3RzLiBCZWNhdXNlIG9mIHRoaXMgcHJvcGVydHkgb2YgV2Vha01hcHMsIHRoZXNlIGRhdGEgc3RydWN0dXJlcyB3aWxsIG5ldmVyIGJlIHRoZVxuICogc291cmNlIG9mIGEgbWVtb3J5IGxlYWsuXG4gKlxuICogQW4gZXhhbXBsZSBvZiB0aGlzIGFkdmFudGFnZTogV2hlbiBjb21wb25lbnRzIGFyZSBkZXN0cm95ZWQsIHdlIGRvbid0IG5lZWQgdG8gZG9cbiAqIGFueSBhZGRpdGlvbmFsIHdvcmsgdG8gcmVtb3ZlIHRoYXQgY29tcG9uZW50IGZyb20gb3VyIG1hcHBpbmdzLlxuICpcbiAqL1xuY2xhc3MgRElEZWJ1Z0RhdGEge1xuICByZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llcyA9IG5ldyBXZWFrTWFwPFxuICAgIEluamVjdG9yIHwgTFZpZXcsXG4gICAgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT5cbiAgPigpO1xuICByZXNvbHZlclRvUHJvdmlkZXJzID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IgfCBUTm9kZSwgUHJvdmlkZXJSZWNvcmRbXT4oKTtcbiAgc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQgPSBuZXcgV2Vha01hcDxJbmplY3RvciwgVHlwZTx1bmtub3duPj4oKTtcblxuICByZXNldCgpIHtcbiAgICB0aGlzLnJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzID0gbmV3IFdlYWtNYXA8XG4gICAgICBJbmplY3RvciB8IExWaWV3LFxuICAgICAgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT5cbiAgICA+KCk7XG4gICAgdGhpcy5yZXNvbHZlclRvUHJvdmlkZXJzID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IgfCBUTm9kZSwgUHJvdmlkZXJSZWNvcmRbXT4oKTtcbiAgICB0aGlzLnN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50ID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IsIFR5cGU8dW5rbm93bj4+KCk7XG4gIH1cbn1cblxubGV0IGZyYW1ld29ya0RJRGVidWdEYXRhID0gbmV3IERJRGVidWdEYXRhKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGcmFtZXdvcmtESURlYnVnRGF0YSgpOiBESURlYnVnRGF0YSB7XG4gIHJldHVybiBmcmFtZXdvcmtESURlYnVnRGF0YTtcbn1cblxuLyoqXG4gKiBJbml0YWxpemUgZGVmYXVsdCBoYW5kbGluZyBvZiBpbmplY3RvciBldmVudHMuIFRoaXMgaGFuZGxpbmcgcGFyc2VzIGV2ZW50c1xuICogYXMgdGhleSBhcmUgZW1pdHRlZCBhbmQgY29uc3RydWN0cyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIG5lY2Vzc2FyeSB0byBzdXBwb3J0XG4gKiBzb21lIG9mIGRlYnVnIEFQSXMuXG4gKlxuICogU2VlIGhhbmRsZUluamVjdEV2ZW50LCBoYW5kbGVDcmVhdGVFdmVudCBhbmQgaGFuZGxlUHJvdmlkZXJDb25maWd1cmVkRXZlbnRcbiAqIGZvciBkZXNjcmlwdGlvbnMgb2YgZWFjaCBoYW5kbGVyXG4gKlxuICogU3VwcG9ydGVkIEFQSXM6XG4gKiAgICAgICAgICAgICAgIC0gZ2V0RGVwZW5kZW5jaWVzRnJvbUluamVjdGFibGVcbiAqICAgICAgICAgICAgICAgLSBnZXRJbmplY3RvclByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBGcmFtZXdvcmtJbmplY3RvclByb2ZpbGVyKCk6IHZvaWQge1xuICBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNldCgpO1xuICBzZXRJbmplY3RvclByb2ZpbGVyKChpbmplY3RvclByb2ZpbGVyRXZlbnQpID0+XG4gICAgaGFuZGxlSW5qZWN0b3JQcm9maWxlckV2ZW50KGluamVjdG9yUHJvZmlsZXJFdmVudCksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUluamVjdG9yUHJvZmlsZXJFdmVudChpbmplY3RvclByb2ZpbGVyRXZlbnQ6IEluamVjdG9yUHJvZmlsZXJFdmVudCk6IHZvaWQge1xuICBjb25zdCB7Y29udGV4dCwgdHlwZX0gPSBpbmplY3RvclByb2ZpbGVyRXZlbnQ7XG5cbiAgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuSW5qZWN0KSB7XG4gICAgaGFuZGxlSW5qZWN0RXZlbnQoY29udGV4dCwgaW5qZWN0b3JQcm9maWxlckV2ZW50LnNlcnZpY2UpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuSW5zdGFuY2VDcmVhdGVkQnlJbmplY3Rvcikge1xuICAgIGhhbmRsZUluc3RhbmNlQ3JlYXRlZEJ5SW5qZWN0b3JFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQuaW5zdGFuY2UpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuUHJvdmlkZXJDb25maWd1cmVkKSB7XG4gICAgaGFuZGxlUHJvdmlkZXJDb25maWd1cmVkRXZlbnQoY29udGV4dCwgaW5qZWN0b3JQcm9maWxlckV2ZW50LnByb3ZpZGVyUmVjb3JkKTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBTdG9yZXMgdGhlIGluamVjdGVkIHNlcnZpY2UgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXNcbiAqIGJhc2VkIG9uIGl0J3MgaW5qZWN0b3IgYW5kIHRva2VuLlxuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBJbmplY3RlZFNlcnZpY2UgdGhlIHNlcnZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5qZWN0IGV2ZW50LlxuICpcbiAqL1xuZnVuY3Rpb24gaGFuZGxlSW5qZWN0RXZlbnQoY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsIGRhdGE6IEluamVjdGVkU2VydmljZSkge1xuICBjb25zdCBkaVJlc29sdmVyID0gZ2V0RElSZXNvbHZlcihjb250ZXh0LmluamVjdG9yKTtcbiAgaWYgKGRpUmVzb2x2ZXIgPT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKCdBbiBJbmplY3QgZXZlbnQgbXVzdCBiZSBydW4gd2l0aGluIGFuIGluamVjdGlvbiBjb250ZXh0LicpO1xuICB9XG5cbiAgY29uc3QgZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4gPSBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llcztcblxuICBpZiAoIWRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLmhhcyhkaVJlc29sdmVyKSkge1xuICAgIGRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLnNldChkaVJlc29sdmVyLCBuZXcgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT4oKSk7XG4gIH1cblxuICAvLyBpZiB0b2tlbiBpcyBhIHByaW1pdGl2ZSB0eXBlLCBpZ25vcmUgdGhpcyBldmVudC4gV2UgZG8gdGhpcyBiZWNhdXNlIHdlIGNhbm5vdCBrZWVwIHRyYWNrIG9mXG4gIC8vIG5vbi1wcmltaXRpdmUgdG9rZW5zIGluIFdlYWtNYXBzIHNpbmNlIHRoZXkgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RhYmxlLlxuICBpZiAoIWNhbkJlSGVsZFdlYWtseShjb250ZXh0LnRva2VuKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMgPSBkaVJlc29sdmVyVG9JbnN0YW50aWF0ZWRUb2tlbi5nZXQoZGlSZXNvbHZlcikhO1xuICBpZiAoIWluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuaGFzKGNvbnRleHQudG9rZW4hKSkge1xuICAgIGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuc2V0KGNvbnRleHQudG9rZW4hLCBbXSk7XG4gIH1cblxuICBjb25zdCB7dG9rZW4sIHZhbHVlLCBmbGFnc30gPSBkYXRhO1xuXG4gIGFzc2VydERlZmluZWQoY29udGV4dC50b2tlbiwgJ0luamVjdG9yIHByb2ZpbGVyIGNvbnRleHQgdG9rZW4gaXMgdW5kZWZpbmVkLicpO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuZ2V0KGNvbnRleHQudG9rZW4pO1xuICBhc3NlcnREZWZpbmVkKGRlcGVuZGVuY2llcywgJ0NvdWxkIG5vdCByZXNvbHZlIGRlcGVuZGVuY2llcyBmb3IgdG9rZW4uJyk7XG5cbiAgaWYgKGNvbnRleHQuaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkZXBlbmRlbmNpZXMucHVzaCh7dG9rZW4sIHZhbHVlLCBmbGFncywgaW5qZWN0ZWRJbjogZ2V0Tm9kZUluamVjdG9yQ29udGV4dChjb250ZXh0LmluamVjdG9yKX0pO1xuICB9IGVsc2Uge1xuICAgIGRlcGVuZGVuY2llcy5wdXNoKHt0b2tlbiwgdmFsdWUsIGZsYWdzfSk7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogUmV0dXJucyB0aGUgTFZpZXcgYW5kIFROb2RlIGFzc29jaWF0ZWQgd2l0aCBhIE5vZGVJbmplY3Rvci4gUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGluamVjdG9yXG4gKiBpcyBub3QgYSBOb2RlSW5qZWN0b3IuXG4gKlxuICogQHBhcmFtIGluamVjdG9yXG4gKiBAcmV0dXJucyB7bFZpZXc6IExWaWV3LCB0Tm9kZTogVE5vZGV9fHVuZGVmaW5lZFxuICovXG5mdW5jdGlvbiBnZXROb2RlSW5qZWN0b3JDb250ZXh0KGluamVjdG9yOiBJbmplY3Rvcik6IHtsVmlldzogTFZpZXc7IHROb2RlOiBUTm9kZX0gfCB1bmRlZmluZWQge1xuICBpZiAoIShpbmplY3RvciBpbnN0YW5jZW9mIE5vZGVJbmplY3RvcikpIHtcbiAgICB0aHJvd0Vycm9yKCdnZXROb2RlSW5qZWN0b3JDb250ZXh0IG11c3QgYmUgY2FsbGVkIHdpdGggYSBOb2RlSW5qZWN0b3InKTtcbiAgfVxuXG4gIGNvbnN0IGxWaWV3ID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICBjb25zdCB0Tm9kZSA9IGdldE5vZGVJbmplY3RvclROb2RlKGluamVjdG9yKTtcbiAgaWYgKHROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXNzZXJ0VE5vZGVGb3JMVmlldyh0Tm9kZSwgbFZpZXcpO1xuXG4gIHJldHVybiB7bFZpZXcsIHROb2RlfTtcbn1cblxuLyoqXG4gKlxuICogSWYgdGhlIGNyZWF0ZWQgaW5zdGFuY2UgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgbWFwcyB0aGUgaW5qZWN0b3IgdG8gdGhhdFxuICogc3RhbmRhbG9uZSBjb21wb25lbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEuc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnRcbiAqXG4gKiBAcGFyYW0gY29udGV4dCBJbmplY3RvclByb2ZpbGVyQ29udGV4dCB0aGUgaW5qZWN0aW9uIGNvbnRleHQgdGhhdCB0aGlzIGV2ZW50IG9jY3VycmVkIGluLlxuICogQHBhcmFtIGRhdGEgSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGluc3RhbmNlIHRoYXQgd2FzIGp1c3QgY3JlYXRlZFxuICpcbiAqL1xuZnVuY3Rpb24gaGFuZGxlSW5zdGFuY2VDcmVhdGVkQnlJbmplY3RvckV2ZW50KFxuICBjb250ZXh0OiBJbmplY3RvclByb2ZpbGVyQ29udGV4dCxcbiAgZGF0YTogSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UsXG4pOiB2b2lkIHtcbiAgY29uc3Qge3ZhbHVlfSA9IGRhdGE7XG5cbiAgaWYgKGdldERJUmVzb2x2ZXIoY29udGV4dC5pbmplY3RvcikgPT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKCdBbiBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSBldmVudCBtdXN0IGJlIHJ1biB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuJyk7XG4gIH1cblxuICAvLyBpZiBvdXIgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgbWFwIHRoZSBpbmplY3RvciBvZiB0aGF0IHN0YW5kYWxvbmVcbiAgLy8gY29tcG9uZW50IHRvIHRoZSBjb21wb25lbnQgY2xhc3MuIE90aGVyd2lzZSwgdGhpcyBldmVudCBpcyBhIG5vb3AuXG4gIGxldCBzdGFuZGFsb25lQ29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgdW5kZWZpbmVkIHwgbnVsbCA9IHVuZGVmaW5lZDtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzdGFuZGFsb25lQ29tcG9uZW50ID0gdmFsdWU/LmNvbnN0cnVjdG9yIGFzIFR5cGU8dW5rbm93bj4gfCB1bmRlZmluZWQgfCBudWxsO1xuICB9XG5cbiAgLy8gV2Ugd2FudCB0byBhbHNvIGNvdmVyIGlmIGBzdGFuZGFsb25lQ29tcG9uZW50ID09PSBudWxsYCBpbiBhZGRpdGlvbiB0byBgdW5kZWZpbmVkYFxuICBpZiAoc3RhbmRhbG9uZUNvbXBvbmVudCA9PSB1bmRlZmluZWQgfHwgIWlzU3RhbmRhbG9uZUNvbXBvbmVudChzdGFuZGFsb25lQ29tcG9uZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gY29udGV4dC5pbmplY3Rvci5nZXQoXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBudWxsLFxuICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICk7XG4gIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgaGF2ZSBhbiBlbnZpcm9ubWVudCBpbmplY3Rvci4gSWYgb25lIGNhbm5vdCBiZVxuICAvLyBmb3VuZCB3ZSBtYXkgYmUgaW4gYSB0ZXN0IGNhc2UgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgZGlkIG5vdCBleHBsaWNpdGx5XG4gIC8vIHNldHVwIHRoaXMgaW5qZWN0b3IuIEluIHRob3NlIGNhc2VzLCB3ZSBzaW1wbHkgaWdub3JlIHRoaXMgZXZlbnQuXG4gIGlmIChlbnZpcm9ubWVudEluamVjdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge3N0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50fSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIC8vIElmIG91ciBpbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCwgYXMgaXMgdGhlIGNhc2VcbiAgLy8gd2hlbiBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgYW5vdGhlciBzdGFuZGFsb25lIGNvbXBvbmVudCxcbiAgLy8gd2UgY29uc2lkZXIgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCAodGhlIGNvbXBvbmVudCBkb2luZyB0aGUgaW1wb3J0aW5nKVxuICAvLyBhcyB0aGUgY29tcG9uZW50IGNvbm5lY3RlZCB0byBvdXIgaW5qZWN0b3IuXG4gIGlmIChzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudC5oYXMoZW52aXJvbm1lbnRJbmplY3RvcikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gSWYgb3VyIGluamVjdG9yIGhhc24ndCBiZWVuIG1hcHBlZCwgdGhlbiB3ZSBtYXAgaXQgdG8gdGhlIHN0YW5kYWxvbmUgY29tcG9uZW50XG4gIHN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50LnNldChlbnZpcm9ubWVudEluamVjdG9yLCBzdGFuZGFsb25lQ29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTdGFuZGFsb25lQ29tcG9uZW50KHZhbHVlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih2YWx1ZSk7XG4gIHJldHVybiAhIWRlZj8uc3RhbmRhbG9uZTtcbn1cblxuLyoqXG4gKlxuICogU3RvcmVzIHRoZSBlbWl0dGVkIFByb3ZpZGVyUmVjb3JkcyBmcm9tIHRoZSBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLlByb3ZpZGVyQ29uZmlndXJlZFxuICogZXZlbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Byb3ZpZGVyc1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBQcm92aWRlclJlY29yZCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChcbiAgY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsXG4gIGRhdGE6IFByb3ZpZGVyUmVjb3JkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtyZXNvbHZlclRvUHJvdmlkZXJzfSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IFROb2RlO1xuICBpZiAoY29udGV4dD8uaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoY29udGV4dC5pbmplY3RvcikgYXMgVE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGNvbnRleHQuaW5qZWN0b3I7XG4gIH1cblxuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0EgUHJvdmlkZXJDb25maWd1cmVkIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIGlmICghcmVzb2x2ZXJUb1Byb3ZpZGVycy5oYXMoZGlSZXNvbHZlcikpIHtcbiAgICByZXNvbHZlclRvUHJvdmlkZXJzLnNldChkaVJlc29sdmVyLCBbXSk7XG4gIH1cblxuICByZXNvbHZlclRvUHJvdmlkZXJzLmdldChkaVJlc29sdmVyKSEucHVzaChkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0RElSZXNvbHZlcihpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQpOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCB7XG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGluamVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGlSZXNvbHZlcjtcbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGUgTFZpZXcgYXMgdGhlIGRpUmVzb2x2ZXIgZm9yIE5vZGVJbmplY3RvcnMgYmVjYXVzZSB0aGV5XG4gIC8vIGRvIG5vdCBwZXJzaXN0IGFueXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuIFRoZXkgYXJlIHNpbXBseSB3cmFwcGVycyBhcm91bmQgYW4gTFZpZXcgYW5kIGEgVE5vZGVcbiAgLy8gdGhhdCBkbyBwZXJzaXN0LiBCZWNhdXNlIG9mIHRoaXMsIHdlIHJlbHkgb24gdGhlIExWaWV3IG9mIHRoZSBOb2RlSW5qZWN0b3IgaW4gb3JkZXIgdG8gdXNlXG4gIC8vIGFzIGEgY29uY3JldGUga2V5IHRvIHJlcHJlc2VudCB0aGlzIGluamVjdG9yLiBJZiB3ZSBnZXQgdGhlIHNhbWUgTFZpZXcgYmFjayBsYXRlciwgd2Uga25vd1xuICAvLyB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIGluamVjdG9yLlxuICBpZiAoaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICB9XG4gIC8vIE90aGVyIGluamVjdG9ycyBjYW4gYmUgdXNlZCBhIGtleXMgZm9yIGEgbWFwIGJlY2F1c2UgdGhlaXIgaW5zdGFuY2VzXG4gIC8vIHBlcnNpc3RcbiAgZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIGRpUmVzb2x2ZXI7XG59XG5cbi8vIGluc3BpcmVkIGJ5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZXhlY3V0YWJsZS1jb2RlLWFuZC1leGVjdXRpb24tY29udGV4dHMuaHRtbCNzZWMtY2FuYmVoZWxkd2Vha2x5XG5mdW5jdGlvbiBjYW5CZUhlbGRXZWFrbHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBjaGVjayBmb3IgdmFsdWUgIT09IG51bGwgaGVyZSBiZWNhdXNlIHR5cGVvZiBudWxsID09PSAnb2JqZWN0XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJylcbiAgKTtcbn1cbiJdfQ==
@@ -22,5 +22,5 @@ export class Version {
22
22
  /**
23
23
  * @publicApi
24
24
  */
25
- export const VERSION = new Version('18.0.5');
25
+ export const VERSION = new Version('18.0.6');
26
26
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBS2xCLFlBQW1CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQW5ndWxhclxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1pbm9yOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmdWxsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZ1bGwuc3BsaXQoJy4nKTtcbiAgICB0aGlzLm1ham9yID0gcGFydHNbMF07XG4gICAgdGhpcy5taW5vciA9IHBhcnRzWzFdO1xuICAgIHRoaXMucGF0Y2ggPSBwYXJ0cy5zbGljZSgyKS5qb2luKCcuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
@@ -25,10 +25,10 @@ export class Log {
25
25
  result() {
26
26
  return this.logItems.join('; ');
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Log }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Log }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: Log, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Log, decorators: [{
32
32
  type: Injectable
33
33
  }], ctorParameters: () => [] });
34
34
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90ZXN0aW5nL3NyYy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLEdBQUc7SUFHZDtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxFQUFFLENBQUMsS0FBUTtRQUNULE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt5SEF2QlUsR0FBRzs2SEFBSCxHQUFHOztzR0FBSCxHQUFHO2tCQURmLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvZzxUID0gc3RyaW5nPiB7XG4gIGxvZ0l0ZW1zOiBUW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2dJdGVtcyA9IFtdO1xuICB9XG5cbiAgYWRkKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5sb2dJdGVtcy5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIGZuKHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMubG9nSXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMubG9nSXRlbXMgPSBbXTtcbiAgfVxuXG4gIHJlc3VsdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvZ0l0ZW1zLmpvaW4oJzsgJyk7XG4gIH1cbn1cbiJdfQ==
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.0.5
2
+ * @license Angular v18.0.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -7,8 +7,7 @@
7
7
  import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
8
8
  import { BehaviorSubject, Subject, Subscription } from 'rxjs';
9
9
  import { map, first } from 'rxjs/operators';
10
- import * as Attributes from '@angular/core/primitives/event-dispatch';
11
- import { EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isSupportedEvent, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
10
+ import { Attribute as Attribute$1, isSupportedEvent, registerEventType, unregisterEventType, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
12
11
 
13
12
  /**
14
13
  * Base URL for the error details page.
@@ -17256,7 +17255,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
17256
17255
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
17257
17256
  if (rootSelectorOrNode) {
17258
17257
  // The placeholder will be replaced with the actual version at build time.
17259
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.0.5']);
17258
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.0.6']);
17260
17259
  }
17261
17260
  else {
17262
17261
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -20831,17 +20830,55 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
20831
20830
  }
20832
20831
  }
20833
20832
  /**
20834
- * Creates an instance of the `OutletInjector` using a private factory
20835
- * function available on the `OutletInjector` class.
20836
- *
20837
- * @param parentOutletInjector Parent OutletInjector, which should be used
20838
- * to produce a new instance.
20839
- * @param parentInjector An Injector, which should be used as a parent one
20840
- * for a newly created `OutletInjector` instance.
20833
+ * Checks whether there is a cached injector associated with a given defer block
20834
+ * declaration and returns if it exists. If there is no cached injector present -
20835
+ * creates a new injector and stores in the cache.
20841
20836
  */
20842
- function createRouterOutletInjector(parentOutletInjector, parentInjector) {
20843
- const outletInjector = parentOutletInjector.injector;
20844
- return outletInjector.__ngOutletInjector(parentInjector);
20837
+ function getOrCreateEnvironmentInjector(parentInjector, tDetails, providers) {
20838
+ return parentInjector
20839
+ .get(CachedInjectorService)
20840
+ .getOrCreateInjector(tDetails, parentInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
20841
+ }
20842
+ /**
20843
+ * Creates a new injector, which contains providers collected from dependencies (NgModules) of
20844
+ * defer-loaded components. This function detects different types of parent injectors and creates
20845
+ * a new injector based on that.
20846
+ */
20847
+ function createDeferBlockInjector(parentInjector, tDetails, providers) {
20848
+ // Check if the parent injector is an instance of a `ChainedInjector`.
20849
+ //
20850
+ // In this case, we retain the shape of the injector and use a newly created
20851
+ // `EnvironmentInjector` as a parent in the `ChainedInjector`. That is needed to
20852
+ // make sure that the primary injector gets consulted first (since it's typically
20853
+ // a NodeInjector) and `EnvironmentInjector` tree is consulted after that.
20854
+ if (parentInjector instanceof ChainedInjector) {
20855
+ const origInjector = parentInjector.injector;
20856
+ // Guaranteed to be an environment injector
20857
+ const parentEnvInjector = parentInjector.parentInjector;
20858
+ const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
20859
+ return new ChainedInjector(origInjector, envInjector);
20860
+ }
20861
+ const parentEnvInjector = parentInjector.get(EnvironmentInjector);
20862
+ // If the `parentInjector` is *not* an `EnvironmentInjector` - we need to create
20863
+ // a new `ChainedInjector` with the following setup:
20864
+ //
20865
+ // - the provided `parentInjector` becomes a primary injector
20866
+ // - an existing (real) `EnvironmentInjector` becomes a parent injector for
20867
+ // a newly-created one, which contains extra providers
20868
+ //
20869
+ // So the final order in which injectors would be consulted in this case would look like this:
20870
+ //
20871
+ // 1. Provided `parentInjector`
20872
+ // 2. Newly-created `EnvironmentInjector` with extra providers
20873
+ // 3. `EnvironmentInjector` from the `parentInjector`
20874
+ if (parentEnvInjector !== parentInjector) {
20875
+ const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
20876
+ return new ChainedInjector(parentInjector, envInjector);
20877
+ }
20878
+ // The `parentInjector` is an instance of an `EnvironmentInjector`.
20879
+ // No need for special handling, we can use `parentInjector` as a
20880
+ // parent injector directly.
20881
+ return getOrCreateEnvironmentInjector(parentInjector, tDetails, providers);
20845
20882
  }
20846
20883
  /**
20847
20884
  * Applies changes to the DOM to reflect a given state.
@@ -20863,32 +20900,12 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
20863
20900
  // newly loaded standalone components used within the block, which may
20864
20901
  // import NgModules with providers. In order to make those providers
20865
20902
  // available for components declared in that NgModule, we create an instance
20866
- // of environment injector to host those providers and pass this injector
20903
+ // of an environment injector to host those providers and pass this injector
20867
20904
  // to the logic that creates a view.
20868
20905
  const tDetails = getTDeferBlockDetails(hostTView, tNode);
20869
20906
  const providers = tDetails.providers;
20870
20907
  if (providers && providers.length > 0) {
20871
- const parentInjector = hostLView[INJECTOR];
20872
- // Note: we have a special case for Router's `OutletInjector`,
20873
- // since it's not an instance of the `EnvironmentInjector`, so
20874
- // we can't inject it. Once the `OutletInjector` is replaced
20875
- // with the `EnvironmentInjector` in Router's code, this special
20876
- // handling can be removed.
20877
- const isParentOutletInjector = isRouterOutletInjector(parentInjector);
20878
- const parentEnvInjector = isParentOutletInjector
20879
- ? parentInjector
20880
- : parentInjector.get(EnvironmentInjector);
20881
- injector = parentEnvInjector
20882
- .get(CachedInjectorService)
20883
- .getOrCreateInjector(tDetails, parentEnvInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
20884
- // Note: this is a continuation of the special case for Router's `OutletInjector`.
20885
- // Since the `OutletInjector` handles `ActivatedRoute` and `ChildrenOutletContexts`
20886
- // dynamically (i.e. their values are not really stored statically in an injector),
20887
- // we need to "wrap" a defer injector into another `OutletInjector`, so we retain
20888
- // the dynamic resolution of the mentioned tokens.
20889
- if (isParentOutletInjector) {
20890
- injector = createRouterOutletInjector(parentInjector, injector);
20891
- }
20908
+ injector = createDeferBlockInjector(hostLView[INJECTOR], tDetails, providers);
20892
20909
  }
20893
20910
  }
20894
20911
  const dehydratedView = findMatchingDehydratedView(lContainer, activeBlockTNode.tView.ssrId);
@@ -31036,7 +31053,7 @@ class Version {
31036
31053
  /**
31037
31054
  * @publicApi
31038
31055
  */
31039
- const VERSION = new Version('18.0.5');
31056
+ const VERSION = new Version('18.0.6');
31040
31057
 
31041
31058
  /*
31042
31059
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -31233,7 +31250,8 @@ function handleInstanceCreatedByInjectorEvent(context, data) {
31233
31250
  if (typeof value === 'object') {
31234
31251
  standaloneComponent = value?.constructor;
31235
31252
  }
31236
- if (standaloneComponent === undefined || !isStandaloneComponent(standaloneComponent)) {
31253
+ // We want to also cover if `standaloneComponent === null` in addition to `undefined`
31254
+ if (standaloneComponent == undefined || !isStandaloneComponent(standaloneComponent)) {
31237
31255
  return;
31238
31256
  }
31239
31257
  const environmentInjector = context.injector.get(EnvironmentInjector, null, { optional: true });
@@ -33480,7 +33498,7 @@ class ChangeDetectionSchedulerImpl {
33480
33498
  *
33481
33499
  * @publicApi
33482
33500
  * @experimental
33483
- * @see {@link bootstrapApplication}
33501
+ * @see [bootstrapApplication](/api/platform-browser/bootstrapApplication)
33484
33502
  */
33485
33503
  function provideExperimentalZonelessChangeDetection() {
33486
33504
  performanceMarkFeature('NgZoneless');
@@ -36423,6 +36441,9 @@ function signalUpdateFn(node, updater) {
36423
36441
  }
36424
36442
  signalSetFn(node, updater(node.value));
36425
36443
  }
36444
+ function runPostSignalSetFn() {
36445
+ postSignalSetFn?.();
36446
+ }
36426
36447
  // Note: Using an IIFE here to ensure that the spread assignment is not considered
36427
36448
  // a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.
36428
36449
  // TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
@@ -36811,14 +36832,13 @@ function invokeRegisteredListeners(event) {
36811
36832
  handler(event);
36812
36833
  }
36813
36834
  }
36814
- function setJSActionAttribute(nativeElement, eventTypes) {
36835
+ function setJSActionAttributes(nativeElement, eventTypes) {
36815
36836
  if (!eventTypes.length) {
36816
36837
  return;
36817
36838
  }
36818
36839
  const parts = eventTypes.reduce((prev, curr) => prev + curr + ':;', '');
36819
- const existingAttr = nativeElement.getAttribute(Attributes.JSACTION);
36820
- // This is required to be a module accessor to appease security tests on setAttribute.
36821
- nativeElement.setAttribute(Attributes.JSACTION, `${existingAttr ?? ''}${parts}`);
36840
+ const existingAttr = nativeElement.getAttribute(Attribute$1.JSACTION);
36841
+ nativeElement.setAttribute(Attribute$1.JSACTION, `${existingAttr ?? ''}${parts}`);
36822
36842
  }
36823
36843
  const sharedStashFunction = (rEl, eventType, listenerFn) => {
36824
36844
  const el = rEl;
@@ -36829,33 +36849,51 @@ const sharedStashFunction = (rEl, eventType, listenerFn) => {
36829
36849
  el.__jsaction_fns = eventListenerMap;
36830
36850
  };
36831
36851
  const removeListeners = (el) => {
36832
- el.removeAttribute(Attributes.JSACTION);
36852
+ el.removeAttribute(Attribute$1.JSACTION);
36833
36853
  el.__jsaction_fns = undefined;
36834
36854
  };
36855
+ const JSACTION_EVENT_CONTRACT = new InjectionToken(ngDevMode ? 'EVENT_CONTRACT_DETAILS' : '', {
36856
+ providedIn: 'root',
36857
+ factory: () => ({}),
36858
+ });
36859
+ const GLOBAL_EVENT_DELEGATION = new InjectionToken(ngDevMode ? 'GLOBAL_EVENT_DELEGATION' : '');
36860
+ /**
36861
+ * This class is the delegate for `EventDelegationPlugin`. It represents the
36862
+ * noop version of this class, with the enabled version set when
36863
+ * `provideGlobalEventDelegation` is called.
36864
+ */
36835
36865
  class GlobalEventDelegation {
36836
- addEvent(el, eventName) {
36837
- if (this.eventContract) {
36838
- this.eventContract.addEvent(eventName);
36839
- setJSActionAttribute(el, [eventName]);
36840
- return true;
36841
- }
36842
- return false;
36866
+ constructor() {
36867
+ this.eventContractDetails = inject(JSACTION_EVENT_CONTRACT);
36868
+ }
36869
+ ngOnDestroy() {
36870
+ this.eventContractDetails.instance?.cleanUp();
36871
+ }
36872
+ supports(eventName) {
36873
+ return isSupportedEvent(eventName);
36874
+ }
36875
+ addEventListener(element, eventName, handler) {
36876
+ this.eventContractDetails.instance.addEvent(eventName);
36877
+ registerEventType(element, eventName, '');
36878
+ return () => this.removeEventListener(element, eventName, handler);
36879
+ }
36880
+ removeEventListener(element, eventName, callback) {
36881
+ unregisterEventType(element, eventName);
36843
36882
  }
36844
36883
  static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
36845
- static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac, providedIn: 'root' }); }
36884
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
36846
36885
  }
36847
36886
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(GlobalEventDelegation, [{
36848
- type: Injectable,
36849
- args: [{ providedIn: 'root' }]
36887
+ type: Injectable
36850
36888
  }], null, null); })();
36851
- const initGlobalEventDelegation = (eventDelegation, injector) => {
36889
+ const initGlobalEventDelegation = (eventContractDetails, injector) => {
36852
36890
  if (injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT)) {
36853
36891
  return;
36854
36892
  }
36855
- eventDelegation.eventContract = new EventContract(new EventContractContainer(document.body),
36856
- /* useActionResolver= */ false);
36893
+ const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body),
36894
+ /* useActionResolver= */ false));
36857
36895
  const dispatcher = new EventDispatcher(invokeRegisteredListeners);
36858
- registerDispatcher(eventDelegation.eventContract, dispatcher);
36896
+ registerDispatcher(eventContract, dispatcher);
36859
36897
  };
36860
36898
 
36861
36899
  const CONTRACT_PROPERTY = 'ngContracts';
@@ -36923,8 +36961,8 @@ function withEventReplay() {
36923
36961
  // of the application is completed. This timing is similar to the unclaimed
36924
36962
  // dehydrated views cleanup timing.
36925
36963
  whenStable(appRef).then(() => {
36926
- const globalEventDelegation = injector.get(GlobalEventDelegation);
36927
- initEventReplay(globalEventDelegation, injector);
36964
+ const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
36965
+ initEventReplay(eventContractDetails, injector);
36928
36966
  jsactionSet.forEach(removeListeners);
36929
36967
  // After hydration, we shouldn't need to do anymore work related to
36930
36968
  // event replay anymore.
@@ -36947,7 +36985,7 @@ const initEventReplay = (eventDelegation, injector) => {
36947
36985
  // This is set in packages/platform-server/src/utils.ts
36948
36986
  const container = globalThis[CONTRACT_PROPERTY]?.[appId];
36949
36987
  const earlyJsactionData = getJsactionData(container);
36950
- const eventContract = (eventDelegation.eventContract = new EventContract(new EventContractContainer(earlyJsactionData.c),
36988
+ const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c),
36951
36989
  /* useActionResolver= */ false));
36952
36990
  for (const et of earlyJsactionData.et) {
36953
36991
  eventContract.addEvent(et);
@@ -37331,7 +37369,7 @@ function serializeLView(lView, context) {
37331
37369
  if (nativeElementsToEventTypes && tNode.type & 2 /* TNodeType.Element */) {
37332
37370
  const nativeElement = unwrapRNode(lView[i]);
37333
37371
  if (nativeElementsToEventTypes.has(nativeElement)) {
37334
- setJSActionAttribute(nativeElement, nativeElementsToEventTypes.get(nativeElement));
37372
+ setJSActionAttributes(nativeElement, nativeElementsToEventTypes.get(nativeElement));
37335
37373
  }
37336
37374
  }
37337
37375
  if (Array.isArray(tNode.projection)) {
@@ -37778,6 +37816,32 @@ function verifySsrContentsIntegrity() {
37778
37816
  }
37779
37817
  }
37780
37818
 
37819
+ /**
37820
+ * Returns a set of providers required to setup support for event delegation.
37821
+ */
37822
+ function provideGlobalEventDelegation() {
37823
+ return [
37824
+ {
37825
+ provide: IS_GLOBAL_EVENT_DELEGATION_ENABLED,
37826
+ useValue: true,
37827
+ },
37828
+ {
37829
+ provide: ENVIRONMENT_INITIALIZER,
37830
+ useValue: () => {
37831
+ const injector = inject(Injector);
37832
+ const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
37833
+ initGlobalEventDelegation(eventContractDetails, injector);
37834
+ setStashFn(sharedStashFunction);
37835
+ },
37836
+ multi: true,
37837
+ },
37838
+ {
37839
+ provide: GLOBAL_EVENT_DELEGATION,
37840
+ useClass: GlobalEventDelegation,
37841
+ },
37842
+ ];
37843
+ }
37844
+
37781
37845
  /**
37782
37846
  * Queue a state update to be performed asynchronously.
37783
37847
  *
@@ -38343,5 +38407,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
38343
38407
  * Generated bundle index. Do not edit.
38344
38408
  */
38345
38409
 
38346
- export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
38410
+ export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
38347
38411
  //# sourceMappingURL=core.mjs.map