valtech-components 2.0.534 → 2.0.536

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,5 +1,6 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, inject, Input } from '@angular/core';
2
2
  import { IonText } from '@ionic/angular/standalone';
3
+ import { I18nService } from '../../../services/i18n';
3
4
  import { resolveColor } from '../../../shared/utils/styles';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
@@ -16,6 +17,7 @@ export class ExpandableTextComponent {
16
17
  constructor() {
17
18
  this.expanded = false;
18
19
  this.defaultColor = 'primary';
20
+ this.i18n = inject(I18nService);
19
21
  }
20
22
  get truncatedText() {
21
23
  const maxLength = this.props.limit || 100;
@@ -25,7 +27,7 @@ export class ExpandableTextComponent {
25
27
  return this.props.content?.length > (this.props.limit || 100);
26
28
  }
27
29
  getExpandText() {
28
- return this.props.expandText || 'ver más';
30
+ return this.props.expandText || this.i18n.t('seeMore');
29
31
  }
30
32
  toggleExpand() {
31
33
  this.expanded = !this.expanded;
@@ -72,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
72
74
  }], propDecorators: { props: [{
73
75
  type: Input
74
76
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUE4RDVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFyRXBDO1FBK0VFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxTQUFTLENBQUM7S0FzQjFCO0lBcEJDLElBQUksYUFBYTtRQUNmLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN0SCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0FoQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkdBakV4Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsZ21CQWhCUyxPQUFPOzs0RkFrRU4sdUJBQXVCO2tCQXJFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzhCQTJEUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyByZXNvbHZlQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc3R5bGVzJztcbmltcG9ydCB7IEV4cGFuZGFibGVUZXh0SW5wdXQgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWV4cGFuZGFibGUtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tY29udGFpbmVyXCIgW2NsYXNzLmV4cGFuZGVkXT1cImV4cGFuZGVkXCIgW2NsYXNzLmhhcy1ncmFkaWVudF09XCIhZXhwYW5kZWQgJiYgaXNUcnVuY2F0ZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgPGlvbi10ZXh0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudFwiPnt7IGV4cGFuZGVkID8gcHJvcHMuY29udGVudCA6IHRydW5jYXRlZFRleHQgfX08L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKCFleHBhbmRlZCAmJiBpc1RydW5jYXRlZCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNlZS1tb3JlXCIgW3N0eWxlLmNvbG9yXT1cInRoaXMuY29sb3IoKVwiIChjbGljayk9XCJ0b2dnbGVFeHBhbmQoKVwiPlxuICAgICAgICAgIHt7IGdldEV4cGFuZFRleHQoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uLWNvbnRhaW5lcjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwcmVtOyAvKiBBbHR1cmEgcGFyYSB0ZXh0byB0cnVuY2FkbyAqL1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyLmV4cGFuZGVkIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsgLyogU2luIGzDrW1pdGUgZGUgYWx0dXJhIGFsIGV4cGFuZGlyICovXG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAvKiBNYXNrIGdyYWRpZW50IC0gZnVuY2lvbmEgZW4gY3VhbHF1aWVyIGNvbG9yIGRlIGZvbmRvICovXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyOm5vdCguZXhwYW5kZWQpLmhhcy1ncmFkaWVudCAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBibGFjayA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBibGFjayA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5zZWUtbW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuLyoqXG4gKiB2YWwtZXhwYW5kYWJsZS10ZXh0XG4gKlxuICogQSB0ZXh0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSBleHBhbmRlZC9jb2xsYXBzZWQgdG8gc2hvdyBtb3JlIG9yIGxlc3MgY29udGVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1leHBhbmRhYmxlLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogJy4uLicsIGxpbWl0OiAxODAsIGNvbG9yOiAncHJpbWFyeScsIGV4cGFuZFRleHQ6ICdtw6FzJyB9XCI+PC92YWwtZXhwYW5kYWJsZS10ZXh0PlxuICpcbiAqIEBpbnB1dCBwcm9wczogRXhwYW5kYWJsZVRleHRJbnB1dCAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBleHBhbmRhYmxlIHRleHQgKGNvbnRlbnQsIGxpbWl0LCBjb2xvciwgZXhwYW5kVGV4dClcbiAqL1xuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVUZXh0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEV4cGFuZGFibGUgdGV4dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0V4cGFuZGFibGVUZXh0SW5wdXR9XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGhlIHRleHQgY29udGVudCB0byBkaXNwbGF5LlxuICAgKiBAcHJvcGVydHkgbGltaXQgLSBUaGUgY2hhcmFjdGVyIGxpbWl0IGJlZm9yZSB0cnVuY2F0aW9uLlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgY29sb3IgZm9yIHRoZSBcInNlZSBtb3JlXCIgbGluay5cbiAgICogQHByb3BlcnR5IGV4cGFuZFRleHQgLSBUaGUgdGV4dCBmb3IgdGhlIGV4cGFuZCBsaW5rIChvcHRpb25hbCkuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogRXhwYW5kYWJsZVRleHRJbnB1dDtcbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgZGVmYXVsdENvbG9yID0gJ3ByaW1hcnknO1xuXG4gIGdldCB0cnVuY2F0ZWRUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5wcm9wcy5saW1pdCB8fCAxMDA7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudD8ubGVuZ3RoID4gbWF4TGVuZ3RoID8gdGhpcy5wcm9wcy5jb250ZW50LnNsaWNlKDAsIG1heExlbmd0aCkgKyAnLi4uJyA6IHRoaXMucHJvcHMuY29udGVudDtcbiAgfVxuXG4gIGdldCBpc1RydW5jYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb250ZW50Py5sZW5ndGggPiAodGhpcy5wcm9wcy5saW1pdCB8fCAxMDApO1xuICB9XG5cbiAgZ2V0RXhwYW5kVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmV4cGFuZFRleHQgfHwgJ3ZlciBtw6FzJztcbiAgfVxuXG4gIHRvZ2dsZUV4cGFuZCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XG4gIH1cblxuICBjb2xvcigpIHtcbiAgICByZXR1cm4gcmVzb2x2ZUNvbG9yKHRoaXMucHJvcHMuY29sb3IgfHwgdGhpcy5kZWZhdWx0Q29sb3IpO1xuICB9XG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQThENUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQXJFcEM7UUErRUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUVqQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBc0JwQztJQXBCQyxJQUFJLGFBQWE7UUFDZixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDdEgsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0FsQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkdBakV4Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsZ21CQWhCUyxPQUFPOzs0RkFrRU4sdUJBQXVCO2tCQXJFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzhCQTJEUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyByZXNvbHZlQ29sb3IgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvc3R5bGVzJztcbmltcG9ydCB7IEV4cGFuZGFibGVUZXh0SW5wdXQgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWV4cGFuZGFibGUtdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tY29udGFpbmVyXCIgW2NsYXNzLmV4cGFuZGVkXT1cImV4cGFuZGVkXCIgW2NsYXNzLmhhcy1ncmFkaWVudF09XCIhZXhwYW5kZWQgJiYgaXNUcnVuY2F0ZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgPGlvbi10ZXh0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudFwiPnt7IGV4cGFuZGVkID8gcHJvcHMuY29udGVudCA6IHRydW5jYXRlZFRleHQgfX08L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKCFleHBhbmRlZCAmJiBpc1RydW5jYXRlZCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNlZS1tb3JlXCIgW3N0eWxlLmNvbG9yXT1cInRoaXMuY29sb3IoKVwiIChjbGljayk9XCJ0b2dnbGVFeHBhbmQoKVwiPlxuICAgICAgICAgIHt7IGdldEV4cGFuZFRleHQoKSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uLWNvbnRhaW5lcjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwcmVtOyAvKiBBbHR1cmEgcGFyYSB0ZXh0byB0cnVuY2FkbyAqL1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyLmV4cGFuZGVkIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsgLyogU2luIGzDrW1pdGUgZGUgYWx0dXJhIGFsIGV4cGFuZGlyICovXG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAvKiBNYXNrIGdyYWRpZW50IC0gZnVuY2lvbmEgZW4gY3VhbHF1aWVyIGNvbG9yIGRlIGZvbmRvICovXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyOm5vdCguZXhwYW5kZWQpLmhhcy1ncmFkaWVudCAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBibGFjayA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBibGFjayA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5zZWUtbW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuLyoqXG4gKiB2YWwtZXhwYW5kYWJsZS10ZXh0XG4gKlxuICogQSB0ZXh0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSBleHBhbmRlZC9jb2xsYXBzZWQgdG8gc2hvdyBtb3JlIG9yIGxlc3MgY29udGVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1leHBhbmRhYmxlLXRleHQgW3Byb3BzXT1cInsgY29udGVudDogJy4uLicsIGxpbWl0OiAxODAsIGNvbG9yOiAncHJpbWFyeScsIGV4cGFuZFRleHQ6ICdtw6FzJyB9XCI+PC92YWwtZXhwYW5kYWJsZS10ZXh0PlxuICpcbiAqIEBpbnB1dCBwcm9wczogRXhwYW5kYWJsZVRleHRJbnB1dCAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBleHBhbmRhYmxlIHRleHQgKGNvbnRlbnQsIGxpbWl0LCBjb2xvciwgZXhwYW5kVGV4dClcbiAqL1xuZXhwb3J0IGNsYXNzIEV4cGFuZGFibGVUZXh0Q29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEV4cGFuZGFibGUgdGV4dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0V4cGFuZGFibGVUZXh0SW5wdXR9XG4gICAqIEBwcm9wZXJ0eSBjb250ZW50IC0gVGhlIHRleHQgY29udGVudCB0byBkaXNwbGF5LlxuICAgKiBAcHJvcGVydHkgbGltaXQgLSBUaGUgY2hhcmFjdGVyIGxpbWl0IGJlZm9yZSB0cnVuY2F0aW9uLlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgY29sb3IgZm9yIHRoZSBcInNlZSBtb3JlXCIgbGluay5cbiAgICogQHByb3BlcnR5IGV4cGFuZFRleHQgLSBUaGUgdGV4dCBmb3IgdGhlIGV4cGFuZCBsaW5rIChvcHRpb25hbCkuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogRXhwYW5kYWJsZVRleHRJbnB1dDtcbiAgZXhwYW5kZWQgPSBmYWxzZTtcbiAgZGVmYXVsdENvbG9yID0gJ3ByaW1hcnknO1xuXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgZ2V0IHRydW5jYXRlZFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLnByb3BzLmxpbWl0IHx8IDEwMDtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb250ZW50Py5sZW5ndGggPiBtYXhMZW5ndGggPyB0aGlzLnByb3BzLmNvbnRlbnQuc2xpY2UoMCwgbWF4TGVuZ3RoKSArICcuLi4nIDogdGhpcy5wcm9wcy5jb250ZW50O1xuICB9XG5cbiAgZ2V0IGlzVHJ1bmNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRlbnQ/Lmxlbmd0aCA+ICh0aGlzLnByb3BzLmxpbWl0IHx8IDEwMCk7XG4gIH1cblxuICBnZXRFeHBhbmRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZXhwYW5kVGV4dCB8fCB0aGlzLmkxOG4udCgnc2VlTW9yZScpO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDtcbiAgfVxuXG4gIGNvbG9yKCkge1xuICAgIHJldHVybiByZXNvbHZlQ29sb3IodGhpcy5wcm9wcy5jb2xvciB8fCB0aGlzLmRlZmF1bHRDb2xvcik7XG4gIH1cbn1cbiJdfQ==
@@ -3,6 +3,7 @@ import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
3
3
  import { IonIcon } from '@ionic/angular/standalone';
4
4
  import { addIcons } from 'ionicons';
5
5
  import { arrowForwardOutline } from 'ionicons/icons';
6
+ import { I18nService } from '../../../services/i18n';
6
7
  import { NavigationService } from '../../../services/navigation.service';
7
8
  import { ThemeService } from '../../../services/theme.service';
8
9
  import * as i0 from "@angular/core";
@@ -30,6 +31,7 @@ import * as i0 from "@angular/core";
30
31
  export class GlowCardComponent {
31
32
  constructor() {
32
33
  this.onClick = new EventEmitter();
34
+ this.i18n = inject(I18nService);
33
35
  this.navigationService = inject(NavigationService);
34
36
  this.themeService = inject(ThemeService);
35
37
  this.ionicColors = ['primary', 'secondary', 'tertiary', 'success', 'warning', 'danger', 'light', 'medium', 'dark'];
@@ -54,7 +56,7 @@ export class GlowCardComponent {
54
56
  return this.props.description || this.props.descriptionFallback || '';
55
57
  }
56
58
  getCtaText() {
57
- return this.props.cta.text || this.props.cta.contentFallback || 'Ver más';
59
+ return this.props.cta.text || this.props.cta.contentFallback || this.i18n.t('seeMore');
58
60
  }
59
61
  getGlowColor() {
60
62
  const color = this.props.glow?.color;
@@ -281,4 +283,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
281
283
  }], onClick: [{
282
284
  type: Output
283
285
  }] } });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvdy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZ2xvdy1jYXJkL2dsb3ctY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBb0VILE1BQU0sT0FBTyxpQkFBaUI7SUFzQjVCO1FBakJBLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUV6QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUzQixnQkFBVyxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvSCxvRUFBb0U7UUFDbkQsZ0JBQVcsR0FBMkI7WUFDckQsT0FBTyxFQUFFLFlBQVk7WUFDckIsU0FBUyxFQUFFLGFBQWE7WUFD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QUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RFQ7d0RBS0QsS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGFycm93Rm9yd2FyZE91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb3dDYXJkQ2xpY2tFdmVudCwgR2xvd0NhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1nbG93LWNhcmRcbiAqXG4gKiBBIGNhcmQgY29tcG9uZW50IGZlYXR1cmluZyBhbiBpbWFnZSB3aXRoIHpvb20tb24taG92ZXIsIGFuaW1hdGVkIENUQSBsaW5rLFxuICogYW5kIGR5bmFtaWMgZ2xvdyBlZmZlY3QgdGhhdCBhZGFwdHMgdG8gbGlnaHQvZGFyayBtb2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWdsb3ctY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGltYWdlU3JjOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5qcGcnLFxuICogICAgIGltYWdlQWx0OiAnRXhhbXBsZSBpbWFnZScsXG4gKiAgICAgdGl0bGU6ICdDYXJkIFRpdGxlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ0NhcmQgZGVzY3JpcHRpb24gdGV4dCcsXG4gKiAgICAgY3RhOiB7IHRleHQ6ICdMZWFybiBNb3JlJywgdXJsOiAnL2RldGFpbHMnLCB0eXBlOiAnaW50ZXJuYWwnIH1cbiAqICAgfVwiXG4gKiAgIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICogPjwvdmFsLWdsb3ctY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEdsb3dDYXJkTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgY2FyZFxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgR2xvd0NhcmRDbGlja0V2ZW50IHdoZW4gY2FyZCwgaW1hZ2UsIG9yIENUQSBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1nbG93LWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXJ0aWNsZVxuICAgICAgY2xhc3M9XCJnbG93LWNhcmRcIlxuICAgICAgW2NsYXNzLmdsb3ctZW5hYmxlZF09XCJwcm9wcy5nbG93Py5lbmFibGVkICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuZ2xvdy1zdWJ0bGVdPVwicHJvcHMuZ2xvdz8uaW50ZW5zaXR5ID09PSAnc3VidGxlJ1wiXG4gICAgICBbY2xhc3MuZ2xvdy1tZWRpdW1dPVwiIXByb3BzLmdsb3c/LmludGVuc2l0eSB8fCBwcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdtZWRpdW0nXCJcbiAgICAgIFtjbGFzcy5nbG93LWludGVuc2VdPVwicHJvcHMuZ2xvdz8uaW50ZW5zaXR5ID09PSAnaW50ZW5zZSdcIlxuICAgICAgW2NsYXNzLmRhcmstbW9kZV09XCJpc0RhcmtcIlxuICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgIFtjbGFzcy5uby1pbWFnZV09XCIhcHJvcHMuaW1hZ2VTcmNcIlxuICAgICAgW3N0eWxlLi0tZ2xvdy1jb2xvcl09XCJnZXRHbG93Q29sb3IoKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yLXJnYl09XCJnZXRHbG93Q29sb3JSZ2IoKVwiXG4gICAgICBbc3R5bGUuLS1hc3BlY3QtcmF0aW9dPVwiZ2V0QXNwZWN0UmF0aW9WYWx1ZSgpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJnZXRCb3JkZXJDb2xvcigpXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldEJhY2tncm91bmRTdHlsZSgpXCJcbiAgICAgIChjbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8IS0tIEltYWdlIENvbnRhaW5lciB3aXRoIG92ZXJmbG93IGhpZGRlbiBmb3Igem9vbSBlZmZlY3QgLS0+XG4gICAgICBAaWYgKHByb3BzLmltYWdlU3JjKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnbG93LWNhcmRfX2ltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkX19pbWFnZVwiXG4gICAgICAgICAgICBbc3JjXT1cInByb3BzLmltYWdlU3JjXCJcbiAgICAgICAgICAgIFthbHRdPVwicHJvcHMuaW1hZ2VBbHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSW1hZ2VDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBDb250ZW50IFNlY3Rpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2xvdy1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDwhLS0gTGFiZWwgKHBpbGwgc3R5bGUpIC0tPlxuICAgICAgICBAaWYgKHByb3BzLmxhYmVsKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbG93LWNhcmRfX2xhYmVsXCI+e3sgcHJvcHMubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgICA8aDMgY2xhc3M9XCJnbG93LWNhcmRfX3RpdGxlXCI+XG4gICAgICAgICAge3sgZ2V0VGl0bGUoKSB9fVxuICAgICAgICA8L2gzPlxuXG4gICAgICAgIDwhLS0gRGVzY3JpcHRpb24gLS0+XG4gICAgICAgIDxwIGNsYXNzPVwiZ2xvdy1jYXJkX19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIHt7IGdldERlc2NyaXB0aW9uKCkgfX1cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDwhLS0gQ1RBIExpbmsgd2l0aCBleHBhbmRpbmcgYW5pbWF0aW9uIC0tPlxuICAgICAgICA8YVxuICAgICAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkX19jdGFcIlxuICAgICAgICAgIFtocmVmXT1cInByb3BzLmN0YS51cmxcIlxuICAgICAgICAgIChjbGljayk9XCJvbkN0YUNsaWNrKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbG93LWNhcmRfX2N0YS10ZXh0XCI+e3sgZ2V0Q3RhVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgY2xhc3M9XCJnbG93LWNhcmRfX2N0YS1pY29uXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInByb3BzLmN0YS5pY29uIHx8ICdhcnJvdy1mb3J3YXJkLW91dGxpbmUnXCJcbiAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9hcnRpY2xlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9nbG93LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2xvd0NhcmRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwcm9wcyE6IEdsb3dDYXJkTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEdsb3dDYXJkQ2xpY2tFdmVudD4oKTtcblxuICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0aGVtZVNlcnZpY2UgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvbmljQ29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeScsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJywgJ2xpZ2h0JywgJ21lZGl1bScsICdkYXJrJ107XG5cbiAgLy8gUkdCIHZhbHVlcyB3aXRoIFNQQUNFIHNlcGFyYXRvciBmb3IgQ1NTIHJnYih2YXIoKSAvIGFscGhhKSBzeW50YXhcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xvclJnYk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAnMTEyIDM4IDIyMycsXG4gICAgc2Vjb25kYXJ5OiAnMjI2IDIwNCAyNTUnLFxuICAgIHRlcnRpYXJ5OiAnODIgOTYgMjU1JyxcbiAgICBzdWNjZXNzOiAnNDUgMjExIDExMScsXG4gICAgd2FybmluZzogJzI1NSAxOTYgOScsXG4gICAgZGFuZ2VyOiAnMjM1IDY4IDkwJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IGFycm93Rm9yd2FyZE91dGxpbmUgfSk7XG4gIH1cblxuICBnZXQgaXNEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRoZW1lU2VydmljZS5Jc0Rhcms7XG4gIH1cblxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnRpdGxlIHx8IHRoaXMucHJvcHMudGl0bGVGYWxsYmFjayB8fCAnJztcbiAgfVxuXG4gIGdldERlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVzY3JpcHRpb24gfHwgdGhpcy5wcm9wcy5kZXNjcmlwdGlvbkZhbGxiYWNrIHx8ICcnO1xuICB9XG5cbiAgZ2V0Q3RhVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmN0YS50ZXh0IHx8IHRoaXMucHJvcHMuY3RhLmNvbnRlbnRGYWxsYmFjayB8fCAnVmVyIG3DoXMnO1xuICB9XG5cbiAgZ2V0R2xvd0NvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLmdsb3c/LmNvbG9yO1xuICAgIGlmICghY29sb3IpIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xvciBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXRHbG93Q29sb3JSZ2IoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMucHJvcHMuZ2xvdz8uY29sb3I7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgcmV0dXJuICcxMTIgMzggMjIzJzsgLy8gRGVmYXVsdCBwcmltYXJ5IGNvbG9yIChzcGFjZS1zZXBhcmF0ZWQgZm9yIENTUylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICBjb25zdCByZ2IgPSB0aGlzLmNvbG9yUmdiTWFwW2NvbG9yIGFzIHN0cmluZ107XG4gICAgICByZXR1cm4gcmdiID8gcmdiIDogJzExMiAzOCAyMjMnO1xuICAgIH1cblxuICAgIC8vIEZvciBjdXN0b20gaGV4IGNvbG9ycywgdHJ5IHRvIGNvbnZlcnRcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyAmJiBjb2xvci5zdGFydHNXaXRoKCcjJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmhleFRvUmdiKGNvbG9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJzExMiAzOCAyMjMnO1xuICB9XG5cbiAgcHJpdmF0ZSBoZXhUb1JnYihoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgLy8gU3BhY2Utc2VwYXJhdGVkIGZvciBDU1MgcmdiKHZhcigpIC8gYWxwaGEpIHN5bnRheFxuICAgICAgcmV0dXJuIGAke3BhcnNlSW50KHJlc3VsdFsxXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFsyXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFszXSwgMTYpfWA7XG4gICAgfVxuICAgIHJldHVybiAnMTEyIDM4IDIyMyc7XG4gIH1cblxuICBnZXRBc3BlY3RSYXRpb1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF0aW9NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnMTY6OSc6ICcxNiAvIDknLFxuICAgICAgJzQ6Myc6ICc0IC8gMycsXG4gICAgICAnMToxJzogJzEgLyAxJyxcbiAgICAgICczOjInOiAnMyAvIDInLFxuICAgICAgJzIxOjknOiAnMjEgLyA5JyxcbiAgICB9O1xuICAgIHJldHVybiByYXRpb01hcFt0aGlzLnByb3BzLmFzcGVjdFJhdGlvIHx8ICcxNjo5J107XG4gIH1cblxuICBnZXRCb3JkZXJDb2xvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5wcm9wcy5ib3JkZXJDb2xvcjtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1jb2xvci1tZWRpdW0pJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xvciBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kU3R5bGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzLmJhY2tncm91bmRDb2xvcjtcbiAgICBpZiAoIWJnKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFNpIGVzIHVuIGNvbG9yIElvbmljLCB1c2FyIGxhIHZhcmlhYmxlIENTU1xuICAgIGlmICh0aGlzLmlvbmljQ29sb3JzLmluY2x1ZGVzKGJnIGFzIHN0cmluZykpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Ymd9KWA7XG4gICAgfVxuXG4gICAgLy8gU2kgZXMgdW4gc3RyaW5nIENTUyAoY29sb3IgaGV4LCBncmFkaWVudGUsIGV0YyksIHVzYXIgZGlyZWN0YW1lbnRlXG4gICAgcmV0dXJuIGJnIGFzIHN0cmluZztcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5nbG93LWNhcmRfX2N0YSwgLmdsb3ctY2FyZF9faW1hZ2UnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHRhcmdldDogJ2NhcmQnLCB0b2tlbjogdGhpcy5wcm9wcy50b2tlbiB9KTtcbiAgfVxuXG4gIG9uSW1hZ2VDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub25DbGljay5lbWl0KHsgdGFyZ2V0OiAnaW1hZ2UnLCB0b2tlbjogdGhpcy5wcm9wcy50b2tlbiB9KTtcbiAgfVxuXG4gIG9uQ3RhQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgdGFyZ2V0OiAnY3RhJyxcbiAgICAgIHRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgICAgdXJsOiB0aGlzLnByb3BzLmN0YS51cmwsXG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKHRoaXMucHJvcHMuY3RhLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVybmFsJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMuY3RhLnVybCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYnJvd3NlJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZUluQXBwKHRoaXMucHJvcHMuY3RhLnVybCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGFiJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5vcGVuSW5OZXdUYWIodGhpcy5wcm9wcy5jdGEudXJsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvdy1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZ2xvdy1jYXJkL2dsb3ctY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBRy9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQW9FSCxNQUFNLE9BQU8saUJBQWlCO0lBdUI1QjtRQWxCQSxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFekMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUzQixnQkFBVyxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERULGsyT0E3RFMsWUFBWSwrQkFBRSxPQUFPOzs0RkFnRXBCLGlCQUFpQjtrQkFuRTdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsWUFDdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTREVDt3REFLRCxLQUFLO3NCQURKLEtBQUs7Z0JBSU4sT0FBTztzQkFETixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYXJyb3dGb3J3YXJkT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb3dDYXJkQ2xpY2tFdmVudCwgR2xvd0NhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1nbG93LWNhcmRcbiAqXG4gKiBBIGNhcmQgY29tcG9uZW50IGZlYXR1cmluZyBhbiBpbWFnZSB3aXRoIHpvb20tb24taG92ZXIsIGFuaW1hdGVkIENUQSBsaW5rLFxuICogYW5kIGR5bmFtaWMgZ2xvdyBlZmZlY3QgdGhhdCBhZGFwdHMgdG8gbGlnaHQvZGFyayBtb2RlLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWdsb3ctY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIGltYWdlU3JjOiAnaHR0cHM6Ly9leGFtcGxlLmNvbS9pbWFnZS5qcGcnLFxuICogICAgIGltYWdlQWx0OiAnRXhhbXBsZSBpbWFnZScsXG4gKiAgICAgdGl0bGU6ICdDYXJkIFRpdGxlJyxcbiAqICAgICBkZXNjcmlwdGlvbjogJ0NhcmQgZGVzY3JpcHRpb24gdGV4dCcsXG4gKiAgICAgY3RhOiB7IHRleHQ6ICdMZWFybiBNb3JlJywgdXJsOiAnL2RldGFpbHMnLCB0eXBlOiAnaW50ZXJuYWwnIH1cbiAqICAgfVwiXG4gKiAgIChvbkNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICogPjwvdmFsLWdsb3ctY2FyZD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEdsb3dDYXJkTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgY2FyZFxuICogQG91dHB1dCBvbkNsaWNrIC0gRW1pdHMgR2xvd0NhcmRDbGlja0V2ZW50IHdoZW4gY2FyZCwgaW1hZ2UsIG9yIENUQSBpcyBjbGlja2VkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1nbG93LWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXJ0aWNsZVxuICAgICAgY2xhc3M9XCJnbG93LWNhcmRcIlxuICAgICAgW2NsYXNzLmdsb3ctZW5hYmxlZF09XCJwcm9wcy5nbG93Py5lbmFibGVkICE9PSBmYWxzZVwiXG4gICAgICBbY2xhc3MuZ2xvdy1zdWJ0bGVdPVwicHJvcHMuZ2xvdz8uaW50ZW5zaXR5ID09PSAnc3VidGxlJ1wiXG4gICAgICBbY2xhc3MuZ2xvdy1tZWRpdW1dPVwiIXByb3BzLmdsb3c/LmludGVuc2l0eSB8fCBwcm9wcy5nbG93Py5pbnRlbnNpdHkgPT09ICdtZWRpdW0nXCJcbiAgICAgIFtjbGFzcy5nbG93LWludGVuc2VdPVwicHJvcHMuZ2xvdz8uaW50ZW5zaXR5ID09PSAnaW50ZW5zZSdcIlxuICAgICAgW2NsYXNzLmRhcmstbW9kZV09XCJpc0RhcmtcIlxuICAgICAgW2NsYXNzLmJvcmRlcmVkXT1cInByb3BzLmJvcmRlcmVkXCJcbiAgICAgIFtjbGFzcy5uby1pbWFnZV09XCIhcHJvcHMuaW1hZ2VTcmNcIlxuICAgICAgW3N0eWxlLi0tZ2xvdy1jb2xvcl09XCJnZXRHbG93Q29sb3IoKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yLXJnYl09XCJnZXRHbG93Q29sb3JSZ2IoKVwiXG4gICAgICBbc3R5bGUuLS1hc3BlY3QtcmF0aW9dPVwiZ2V0QXNwZWN0UmF0aW9WYWx1ZSgpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJnZXRCb3JkZXJDb2xvcigpXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImdldEJhY2tncm91bmRTdHlsZSgpXCJcbiAgICAgIChjbGljayk9XCJvbkNhcmRDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8IS0tIEltYWdlIENvbnRhaW5lciB3aXRoIG92ZXJmbG93IGhpZGRlbiBmb3Igem9vbSBlZmZlY3QgLS0+XG4gICAgICBAaWYgKHByb3BzLmltYWdlU3JjKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnbG93LWNhcmRfX2ltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkX19pbWFnZVwiXG4gICAgICAgICAgICBbc3JjXT1cInByb3BzLmltYWdlU3JjXCJcbiAgICAgICAgICAgIFthbHRdPVwicHJvcHMuaW1hZ2VBbHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uSW1hZ2VDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBDb250ZW50IFNlY3Rpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ2xvdy1jYXJkX19jb250ZW50XCI+XG4gICAgICAgIDwhLS0gTGFiZWwgKHBpbGwgc3R5bGUpIC0tPlxuICAgICAgICBAaWYgKHByb3BzLmxhYmVsKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbG93LWNhcmRfX2xhYmVsXCI+e3sgcHJvcHMubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgICA8aDMgY2xhc3M9XCJnbG93LWNhcmRfX3RpdGxlXCI+XG4gICAgICAgICAge3sgZ2V0VGl0bGUoKSB9fVxuICAgICAgICA8L2gzPlxuXG4gICAgICAgIDwhLS0gRGVzY3JpcHRpb24gLS0+XG4gICAgICAgIDxwIGNsYXNzPVwiZ2xvdy1jYXJkX19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIHt7IGdldERlc2NyaXB0aW9uKCkgfX1cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDwhLS0gQ1RBIExpbmsgd2l0aCBleHBhbmRpbmcgYW5pbWF0aW9uIC0tPlxuICAgICAgICA8YVxuICAgICAgICAgIGNsYXNzPVwiZ2xvdy1jYXJkX19jdGFcIlxuICAgICAgICAgIFtocmVmXT1cInByb3BzLmN0YS51cmxcIlxuICAgICAgICAgIChjbGljayk9XCJvbkN0YUNsaWNrKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbG93LWNhcmRfX2N0YS10ZXh0XCI+e3sgZ2V0Q3RhVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgY2xhc3M9XCJnbG93LWNhcmRfX2N0YS1pY29uXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInByb3BzLmN0YS5pY29uIHx8ICdhcnJvdy1mb3J3YXJkLW91dGxpbmUnXCJcbiAgICAgICAgICA+PC9pb24taWNvbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9hcnRpY2xlPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9nbG93LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2xvd0NhcmRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwcm9wcyE6IEdsb3dDYXJkTWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEdsb3dDYXJkQ2xpY2tFdmVudD4oKTtcblxuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0aGVtZVNlcnZpY2UgPSBpbmplY3QoVGhlbWVTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvbmljQ29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICd0ZXJ0aWFyeScsICdzdWNjZXNzJywgJ3dhcm5pbmcnLCAnZGFuZ2VyJywgJ2xpZ2h0JywgJ21lZGl1bScsICdkYXJrJ107XG5cbiAgLy8gUkdCIHZhbHVlcyB3aXRoIFNQQUNFIHNlcGFyYXRvciBmb3IgQ1NTIHJnYih2YXIoKSAvIGFscGhhKSBzeW50YXhcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xvclJnYk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAnMTEyIDM4IDIyMycsXG4gICAgc2Vjb25kYXJ5OiAnMjI2IDIwNCAyNTUnLFxuICAgIHRlcnRpYXJ5OiAnODIgOTYgMjU1JyxcbiAgICBzdWNjZXNzOiAnNDUgMjExIDExMScsXG4gICAgd2FybmluZzogJzI1NSAxOTYgOScsXG4gICAgZGFuZ2VyOiAnMjM1IDY4IDkwJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZGRJY29ucyh7IGFycm93Rm9yd2FyZE91dGxpbmUgfSk7XG4gIH1cblxuICBnZXQgaXNEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRoZW1lU2VydmljZS5Jc0Rhcms7XG4gIH1cblxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnRpdGxlIHx8IHRoaXMucHJvcHMudGl0bGVGYWxsYmFjayB8fCAnJztcbiAgfVxuXG4gIGdldERlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGVzY3JpcHRpb24gfHwgdGhpcy5wcm9wcy5kZXNjcmlwdGlvbkZhbGxiYWNrIHx8ICcnO1xuICB9XG5cbiAgZ2V0Q3RhVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmN0YS50ZXh0IHx8IHRoaXMucHJvcHMuY3RhLmNvbnRlbnRGYWxsYmFjayB8fCB0aGlzLmkxOG4udCgnc2VlTW9yZScpO1xuICB9XG5cbiAgZ2V0R2xvd0NvbG9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnByb3BzLmdsb3c/LmNvbG9yO1xuICAgIGlmICghY29sb3IpIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xvciBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXRHbG93Q29sb3JSZ2IoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2xvciA9IHRoaXMucHJvcHMuZ2xvdz8uY29sb3I7XG4gICAgaWYgKCFjb2xvcikge1xuICAgICAgcmV0dXJuICcxMTIgMzggMjIzJzsgLy8gRGVmYXVsdCBwcmltYXJ5IGNvbG9yIChzcGFjZS1zZXBhcmF0ZWQgZm9yIENTUylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICBjb25zdCByZ2IgPSB0aGlzLmNvbG9yUmdiTWFwW2NvbG9yIGFzIHN0cmluZ107XG4gICAgICByZXR1cm4gcmdiID8gcmdiIDogJzExMiAzOCAyMjMnO1xuICAgIH1cblxuICAgIC8vIEZvciBjdXN0b20gaGV4IGNvbG9ycywgdHJ5IHRvIGNvbnZlcnRcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJyAmJiBjb2xvci5zdGFydHNXaXRoKCcjJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmhleFRvUmdiKGNvbG9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gJzExMiAzOCAyMjMnO1xuICB9XG5cbiAgcHJpdmF0ZSBoZXhUb1JnYihoZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVzdWx0ID0gL14jPyhbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KSQvaS5leGVjKGhleCk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgLy8gU3BhY2Utc2VwYXJhdGVkIGZvciBDU1MgcmdiKHZhcigpIC8gYWxwaGEpIHN5bnRheFxuICAgICAgcmV0dXJuIGAke3BhcnNlSW50KHJlc3VsdFsxXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFsyXSwgMTYpfSAke3BhcnNlSW50KHJlc3VsdFszXSwgMTYpfWA7XG4gICAgfVxuICAgIHJldHVybiAnMTEyIDM4IDIyMyc7XG4gIH1cblxuICBnZXRBc3BlY3RSYXRpb1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF0aW9NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnMTY6OSc6ICcxNiAvIDknLFxuICAgICAgJzQ6Myc6ICc0IC8gMycsXG4gICAgICAnMToxJzogJzEgLyAxJyxcbiAgICAgICczOjInOiAnMyAvIDInLFxuICAgICAgJzIxOjknOiAnMjEgLyA5JyxcbiAgICB9O1xuICAgIHJldHVybiByYXRpb01hcFt0aGlzLnByb3BzLmFzcGVjdFJhdGlvIHx8ICcxNjo5J107XG4gIH1cblxuICBnZXRCb3JkZXJDb2xvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9yID0gdGhpcy5wcm9wcy5ib3JkZXJDb2xvcjtcbiAgICBpZiAoIWNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3ZhcigtLWlvbi1jb2xvci1tZWRpdW0pJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvciBhcyBzdHJpbmcpKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke2NvbG9yfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBjb2xvciBhcyBzdHJpbmc7XG4gIH1cblxuICBnZXRCYWNrZ3JvdW5kU3R5bGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgYmcgPSB0aGlzLnByb3BzLmJhY2tncm91bmRDb2xvcjtcbiAgICBpZiAoIWJnKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFNpIGVzIHVuIGNvbG9yIElvbmljLCB1c2FyIGxhIHZhcmlhYmxlIENTU1xuICAgIGlmICh0aGlzLmlvbmljQ29sb3JzLmluY2x1ZGVzKGJnIGFzIHN0cmluZykpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Ymd9KWA7XG4gICAgfVxuXG4gICAgLy8gU2kgZXMgdW4gc3RyaW5nIENTUyAoY29sb3IgaGV4LCBncmFkaWVudGUsIGV0YyksIHVzYXIgZGlyZWN0YW1lbnRlXG4gICAgcmV0dXJuIGJnIGFzIHN0cmluZztcbiAgfVxuXG4gIG9uQ2FyZENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QoJy5nbG93LWNhcmRfX2N0YSwgLmdsb3ctY2FyZF9faW1hZ2UnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7IHRhcmdldDogJ2NhcmQnLCB0b2tlbjogdGhpcy5wcm9wcy50b2tlbiB9KTtcbiAgfVxuXG4gIG9uSW1hZ2VDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub25DbGljay5lbWl0KHsgdGFyZ2V0OiAnaW1hZ2UnLCB0b2tlbjogdGhpcy5wcm9wcy50b2tlbiB9KTtcbiAgfVxuXG4gIG9uQ3RhQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgdGFyZ2V0OiAnY3RhJyxcbiAgICAgIHRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgICAgdXJsOiB0aGlzLnByb3BzLmN0YS51cmwsXG4gICAgfSk7XG5cbiAgICBzd2l0Y2ggKHRoaXMucHJvcHMuY3RhLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ludGVybmFsJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMuY3RhLnVybCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYnJvd3NlJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5uYXZpZ2F0ZUluQXBwKHRoaXMucHJvcHMuY3RhLnVybCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGFiJzpcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uU2VydmljZS5vcGVuSW5OZXdUYWIodGhpcy5wcm9wcy5jdGEudXJsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -13,10 +13,10 @@ import * as i2 from "@ionic/angular";
13
13
  import * as i3 from "@angular/forms";
14
14
  export class MultiSelectSearchComponent {
15
15
  constructor() {
16
- this.label = 'Seleccionar opciones';
16
+ this.label = '';
17
17
  this.labelProperty = 'name';
18
18
  this.valueProperty = 'id';
19
- this.placeholder = 'Seleccione opciones';
19
+ this.placeholder = '';
20
20
  this.icon = inject(IconService);
21
21
  this.changeDetector = inject(ChangeDetectorRef);
22
22
  this.i18n = inject(I18nService);
@@ -27,6 +27,14 @@ export class MultiSelectSearchComponent {
27
27
  this.previousOptions = [];
28
28
  this.isProcessingChanges = false;
29
29
  }
30
+ /** Get resolved label with i18n fallback */
31
+ getLabel() {
32
+ return this.label || this.i18n.t('selectOptions');
33
+ }
34
+ /** Get resolved placeholder with i18n fallback */
35
+ getPlaceholder() {
36
+ return this.props?.placeholder || this.placeholder || this.i18n.t('selectOptions');
37
+ }
30
38
  /** Get close button text */
31
39
  getCloseText() {
32
40
  return this.i18n.t('close');
@@ -301,7 +309,7 @@ export class MultiSelectSearchComponent {
301
309
  <ion-input
302
310
  type="text"
303
311
  [value]="displayValue"
304
- [placeholder]="props?.placeholder || placeholder"
312
+ [placeholder]="getPlaceholder()"
305
313
  readonly
306
314
  (mousedown)="preventDefaultBehavior($event)"
307
315
  />
@@ -318,7 +326,7 @@ export class MultiSelectSearchComponent {
318
326
  <ng-template>
319
327
  <ion-header>
320
328
  <ion-toolbar>
321
- <ion-title>{{ label }}</ion-title>
329
+ <ion-title>{{ getLabel() }}</ion-title>
322
330
  <ion-buttons slot="end">
323
331
  <ion-button (click)="cancelModal()">{{ getCloseText() }}</ion-button>
324
332
  </ion-buttons>
@@ -379,7 +387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
379
387
  <ion-input
380
388
  type="text"
381
389
  [value]="displayValue"
382
- [placeholder]="props?.placeholder || placeholder"
390
+ [placeholder]="getPlaceholder()"
383
391
  readonly
384
392
  (mousedown)="preventDefaultBehavior($event)"
385
393
  />
@@ -396,7 +404,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
396
404
  <ng-template>
397
405
  <ion-header>
398
406
  <ion-toolbar>
399
- <ion-title>{{ label }}</ion-title>
407
+ <ion-title>{{ getLabel() }}</ion-title>
400
408
  <ion-buttons slot="end">
401
409
  <ion-button (click)="cancelModal()">{{ getCloseText() }}</ion-button>
402
410
  </ion-buttons>
@@ -464,4 +472,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
464
472
  }], props: [{
465
473
  type: Input
466
474
  }] } });
467
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL211bHRpLXNlbGVjdC1zZWFyY2gvbXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUE4RnRFLE1BQU0sT0FBTywwQkFBMEI7SUE1RnZDO1FBK0ZXLFVBQUssR0FBVyxzQkFBc0IsQ0FBQztRQUN2QyxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUMvQixrQkFBYSxHQUFXLElBQUksQ0FBQztRQUM3QixnQkFBVyxHQUFXLHFCQUFxQixDQUFDO1FBSXJELFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdB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RSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLFlBQ2hGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBFVDs4QkFlbUIsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUVULEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbmljTW9kdWxlLCBJb25Nb2RhbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBhcHBseURlZmF1bHRWYWx1ZVRvQ29udHJvbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9mb3JtLWRlZmF1bHRzJztcbmltcG9ydCB7IHJlcGxhY2VTcGVjaWFsQ2hhcnMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvdGV4dCc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhLCBJbnB1dE9wdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLW11bHRpLXNlbGVjdC1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25pY01vZHVsZSwgRm9ybXNNb2R1bGUsIFNlYXJjaGJhckNvbXBvbmVudCwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1pbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHM/LnBsYWNlaG9sZGVyIHx8IHBsYWNlaG9sZGVyXCJcbiAgICAgIHJlYWRvbmx5XG4gICAgICAobW91c2Vkb3duKT1cInByZXZlbnREZWZhdWx0QmVoYXZpb3IoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxpb24taW5wdXQgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7XCIgW2Zvcm1Db250cm9sXT1cInByb3BzLmNvbnRyb2xcIiB0eXBlPVwiaGlkZGVuXCI+PC9pb24taW5wdXQ+XG5cbiAgICA8aW9uLW1vZGFsXG4gICAgICAjbW9kYWxcbiAgICAgIHRyaWdnZXI9XCJvcGVuLW1vZGFsXCJcbiAgICAgIFtpbml0aWFsQnJlYWtwb2ludF09XCIxXCJcbiAgICAgIFticmVha3BvaW50c109XCJbMCwgMC41LCAwLjc1LCAxXVwiXG4gICAgICAoZGlkRGlzbWlzcyk9XCJjYW5jZWxNb2RhbCgpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDxpb24taGVhZGVyPlxuICAgICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICAgIDxpb24tdGl0bGU+e3sgbGFiZWwgfX08L2lvbi10aXRsZT5cbiAgICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJjYW5jZWxNb2RhbCgpXCI+e3sgZ2V0Q2xvc2VUZXh0KCkgfX08L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPHZhbC1zZWFyY2hiYXIgKGZpbHRlckV2ZW50KT1cIm9uRmlsdGVyKCRldmVudClcIiAoZm9jdXNFdmVudCk9XCJvbkZvY3VzKClcIiAoYmx1ckV2ZW50KT1cIm9uQmx1cigpXCIgLz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICA8L2lvbi1oZWFkZXI+XG4gICAgICAgIDxpb24tY29udGVudD5cbiAgICAgICAgICA8IS0tIEFjdGlvbiBidXR0b25zIGZvciBtdWx0aS1zZWxlY3QgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCIgc3R5bGU9XCJwYWRkaW5nOiAxNnB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0taW9uLWNvbG9yLWxpZ2h0LXNoYWRlKTtcIj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RBbGwoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGdldFNlbGVjdEFsbFRleHQoKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJtZWRpdW1cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJBbGwoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGdldENsZWFyVGV4dCgpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8aW9uLWxpc3Q+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtc1wiIGJ1dHRvbiAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiIGRldGFpbD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgIDxpb24tY2hlY2tib3hcbiAgICAgICAgICAgICAgICBzbG90PVwic3RhcnRcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW1bbGFiZWxQcm9wZXJ0eV0gfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWl0ZW0gKm5nSWY9XCJmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMFwiIGxpbmVzPVwibm9uZVwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwiZGFya1wiPnt7IGdldE5vUmVzdWx0c1RleHQoKSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICA8L2lvbi1jb250ZW50PlxuICAgICAgICA8aW9uLWZvb3Rlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJmdWxsXCIgKGNsaWNrKT1cImFwcGx5QW5kQ2xvc2UoKVwiPlxuICAgICAgICAgICAgICB7eyBnZXRBcHBseVRleHQoKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICAgIDwvaW9uLWZvb3Rlcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIGlvbi1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiA4cHggOHB4IDBweCA4cHg7XG4gICAgICB9XG4gICAgICAuYWN0aW9ucy1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWwhOiBJb25Nb2RhbDtcblxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ1NlbGVjY2lvbmFyIG9wY2lvbmVzJztcbiAgQElucHV0KCkgbGFiZWxQcm9wZXJ0eTogc3RyaW5nID0gJ25hbWUnO1xuICBASW5wdXQoKSB2YWx1ZVByb3BlcnR5OiBzdHJpbmcgPSAnaWQnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjY2lvbmUgb3BjaW9uZXMnO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBJbnB1dE1ldGFkYXRhO1xuXG4gIGljb24gPSBpbmplY3QoSWNvblNlcnZpY2UpO1xuICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICAvKiogR2V0IGNsb3NlIGJ1dHRvbiB0ZXh0ICovXG4gIGdldENsb3NlVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnY2xvc2UnKTtcbiAgfVxuXG4gIC8qKiBHZXQgbm8gcmVzdWx0cyB0ZXh0ICovXG4gIGdldE5vUmVzdWx0c1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ25vUmVzdWx0cycpO1xuICB9XG5cbiAgLyoqIEdldCBzZWxlY3QgYWxsIHRleHQgKi9cbiAgZ2V0U2VsZWN0QWxsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnc2VsZWN0QWxsJyk7XG4gIH1cblxuICAvKiogR2V0IGNsZWFyIHRleHQgKi9cbiAgZ2V0Q2xlYXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdjbGVhcicpO1xuICB9XG5cbiAgLyoqIEdldCBhcHBseSB0ZXh0ICovXG4gIGdldEFwcGx5VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnYXBwbHknKTtcbiAgfVxuXG4gIC8qKiBHZXQgaXRlbXMgc2VsZWN0ZWQgdGV4dCAqL1xuICBnZXRJdGVtc1NlbGVjdGVkVGV4dChjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7Y291bnR9ICR7dGhpcy5pMThuLnQoJ2l0ZW1zU2VsZWN0ZWQnKX1gO1xuICB9XG5cbiAgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG4gIGZpbHRlcmVkSXRlbXM6IElucHV0T3B0aW9uW10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtczogSW5wdXRPcHRpb25bXSA9IFtdO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcHJldmlvdXNPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBseURlZmF1bHRWYWx1ZSgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIExpbXBpYXIgc3VzY3JpcGNpb25lcyBwYXJhIGV2aXRhciBtZW1vcnkgbGVha3NcbiAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIEV2aXRhciBidWNsZXMgaW5maW5pdG9zXG4gICAgaWYgKHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEN1YW5kbyBjYW1iaWEgcHJvcHMgbyBwcm9wcy5vcHRpb25zXG4gICAgaWYgKGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgICAgLy8gRGVzdXNjcmliaXJzZSBkZWwgYW50aWd1byBjb250cm9sIHNpIGV4aXN0ZVxuICAgICAgICBpZiAodGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHM/Lm9wdGlvbnMpIHtcbiAgICAgICAgICAvLyBWZXJpZmljYXIgc2kgbGFzIG9wY2lvbmVzIGhhbiBjYW1iaWFkbyByZWFsbWVudGVcbiAgICAgICAgICBjb25zdCBvcHRpb25zQ2hhbmdlZCA9ICF0aGlzLmFyZU9wdGlvbnNFcXVhbCh0aGlzLnByZXZpb3VzT3B0aW9ucywgdGhpcy5wcm9wcy5vcHRpb25zKTtcblxuICAgICAgICAgIGlmIChvcHRpb25zQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2aW91c09wdGlvbnMgPSBbLi4udGhpcy5wcm9wcy5vcHRpb25zXTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2luY3Jvbml6YXIgY29uIGVsIG51ZXZvIGNvbnRyb2wgc2kgZXhpc3RlXG4gICAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG5cbiAgICAgICAgLy8gU3VzY3JpYmlyc2UgYWwgbnVldm8gY29udHJvbFxuICAgICAgICB0aGlzLnN1YnNjcmliZVRvVmFsdWVDaGFuZ2VzKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpb25WaWV3V2lsbEVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gICAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLy8gU3VzY3JpYmlyc2UgYSBjYW1iaW9zIGVuIGVsIEZvcm1Db250cm9sXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9WYWx1ZUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSByZXR1cm47XG5cbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMucHJvcHMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHJldHVybjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ29tcGFyYSBzaSBkb3MgYXJyYXlzIGRlIG9wY2lvbmVzIHNvbiBpZ3VhbGVzXG4gIHByaXZhdGUgYXJlT3B0aW9uc0VxdWFsKHByZXZPcHRpb25zOiBhbnlbXSwgbmV3T3B0aW9uczogYW55W10pOiBib29sZWFuIHtcbiAgICBpZiAocHJldk9wdGlvbnMgPT09IG5ld09wdGlvbnMpIHJldHVybiB0cnVlO1xuICAgIGlmICghcHJldk9wdGlvbnMgfHwgIW5ld09wdGlvbnMpIHJldHVybiBwcmV2T3B0aW9ucyA9PT0gbmV3T3B0aW9ucztcbiAgICBpZiAocHJldk9wdGlvbnMubGVuZ3RoICE9PSBuZXdPcHRpb25zLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldk9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChwcmV2T3B0aW9uc1tpXVt0aGlzLnZhbHVlUHJvcGVydHldICE9PSBuZXdPcHRpb25zW2ldW3RoaXMudmFsdWVQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMucHJvcHM/Lm9wdGlvbnMgfHwgW107XG4gIH1cblxuICBwcml2YXRlIHN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sVmFsdWUgPSB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWU7XG4gICAgaWYgKGNvbnRyb2xWYWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBjb250cm9sVmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBQYXJzZSBjb21tYS1zZXBhcmF0ZWQgdmFsdWVzIGZvciBtdWx0aS1zZWxlY3RcbiAgICBjb25zdCB2YWx1ZXMgPSB0eXBlb2YgY29udHJvbFZhbHVlID09PSAnc3RyaW5nJyBcbiAgICAgID8gY29udHJvbFZhbHVlLnNwbGl0KCcsJykubWFwKHYgPT4gdi50cmltKCkpLmZpbHRlcih2ID0+IHYgIT09ICcnKVxuICAgICAgOiBBcnJheS5pc0FycmF5KGNvbnRyb2xWYWx1ZSkgPyBjb250cm9sVmFsdWUgOiBbY29udHJvbFZhbHVlXTtcblxuICAgIGlmICh0aGlzLnByb3BzLm9wdGlvbnMgJiYgdGhpcy5wcm9wcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAodGhpcy5wcm9wcy5vcHRpb25zLm1hcChvcHQgPT4gW1N0cmluZyhvcHRbdGhpcy52YWx1ZVByb3BlcnR5XSksIG9wdF0pKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHZhbHVlcy5tYXAodmFsID0+IG1hcC5nZXQoU3RyaW5nKHZhbCkpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0VmFsdWUoKTogdm9pZCB7XG4gICAgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wodGhpcy5wcm9wcyk7XG4gIH1cblxuICBvbkZpbHRlcihldmVudCkge1xuICAgIC8vIElmIG5vIHNlYXJjaCB0ZXJtLCBzaG93IGFsbCBvcHRpb25zXG4gICAgaWYgKCFldmVudCB8fCBldmVudC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnByb3BzPy5vcHRpb25zID8gWy4uLnRoaXMucHJvcHMub3B0aW9uc10gOiBbXTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElmIG5vIG9wdGlvbnMsIG5vdGhpbmcgdG8gZmlsdGVyXG4gICAgaWYgKCF0aGlzLnByb3BzPy5vcHRpb25zIHx8IHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFtdO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoID0gcmVwbGFjZVNwZWNpYWxDaGFycyhldmVudC50b0xvd2VyQ2FzZSgpKTtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnByb3BzLm9wdGlvbnMuZmlsdGVyKGVsZW1lbnQgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSBlbGVtZW50W3RoaXMubGFiZWxQcm9wZXJ0eV1cbiAgICAgICAgPyByZXBsYWNlU3BlY2lhbENoYXJzKFN0cmluZyhlbGVtZW50W3RoaXMubGFiZWxQcm9wZXJ0eV0pLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIDogJyc7XG4gICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnRbdGhpcy52YWx1ZVByb3BlcnR5XVxuICAgICAgICA/IHJlcGxhY2VTcGVjaWFsQ2hhcnMoU3RyaW5nKGVsZW1lbnRbdGhpcy52YWx1ZVByb3BlcnR5XSkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgOiAnJztcbiAgICAgIHJldHVybiBsYWJlbC5pbmNsdWRlcyhzZWFyY2gpIHx8IHZhbHVlLmluY2x1ZGVzKHNlYXJjaCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkZvY3VzKCkge1xuICAgIGNvbnNvbGUubG9nKCdvbkZvY3VzJyk7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgY29uc29sZS5sb2coJ29uQmx1cicpO1xuICB9XG5cbiAgb3Blbk1vZGFsKCkge1xuICAgIGlmICh0aGlzLm1vZGFsKSB7XG4gICAgICB0aGlzLm1vZGFsLnByZXNlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcmV2ZW50RGVmYXVsdEJlaGF2aW9yKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9wZW5Nb2RhbCgpO1xuICB9XG5cbiAgY2FuY2VsTW9kYWwoKSB7XG4gICAgLy8gUmVzZXQgZmlsdGVyIGFuZCBzaG93IGFsbCBvcHRpb25zIHdoZW4gY2xvc2luZyBtb2RhbFxuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMucHJvcHM/Lm9wdGlvbnMgPyBbLi4udGhpcy5wcm9wcy5vcHRpb25zXSA6IFtdO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIGlmICh0aGlzLm1vZGFsKSB7XG4gICAgICB0aGlzLm1vZGFsLmRpc21pc3MoKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RJdGVtKGl0ZW06IGFueSkge1xuICAgIC8vIE11bHRpLXNlbGVjdCBsb2dpYzogdG9nZ2xlIHNlbGVjdGlvblxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcbiAgICAgIHNlbGVjdGVkSXRlbSA9PiBzZWxlY3RlZEl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XSA9PT0gaXRlbVt0aGlzLnZhbHVlUHJvcGVydHldXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIC8vIEFkZCB0byBzZWxlY3Rpb25cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZW1vdmUgZnJvbSBzZWxlY3Rpb25cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAvLyBBZGQgYWxsIGZpbHRlcmVkIGl0ZW1zIHRoYXQgYXJlbid0IGFscmVhZHkgc2VsZWN0ZWRcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoXG4gICAgICAgIHNlbGVjdGVkSXRlbSA9PiBzZWxlY3RlZEl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XSA9PT0gaXRlbVt0aGlzLnZhbHVlUHJvcGVydHldXG4gICAgICApO1xuICAgICAgaWYgKCFpc0FscmVhZHlTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgdGhpcy5hcHBseUNoYW5nZXMoKTtcbiAgfVxuXG4gIGlzSXRlbVNlbGVjdGVkKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMuc29tZShzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IGl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XSk7XG4gIH1cblxuICB1cGRhdGVEaXNwbGF5VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMubGFiZWxQcm9wZXJ0eV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5nZXRJdGVtc1NlbGVjdGVkVGV4dCh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoKTtcbiAgICB9XG4gIH1cblxuICBhcHBseUNoYW5nZXMoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG5cbiAgICAgIC8vIENvbnZlcnQgc2VsZWN0ZWQgaXRlbXMgdG8gY29tbWEtc2VwYXJhdGVkIHN0cmluZyBvZiB2YWx1ZXNcbiAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZEl0ZW1zLm1hcChpdGVtID0+IFN0cmluZyhpdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0pKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gc2VsZWN0ZWRWYWx1ZXMuam9pbignLCcpO1xuXG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhcHBseUFuZENsb3NlKCkge1xuICAgIHRoaXMuYXBwbHlDaGFuZ2VzKCk7XG4gICAgdGhpcy5jYW5jZWxNb2RhbCgpO1xuICB9XG5cbiAgLy8gTcOpdG9kbyBww7pibGljbyBwYXJhIHJlaW5pY2lhciBlbCBjb21wb25lbnRlXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gJyc7XG4gICAgaWYgKHRoaXMucHJvcHM/LmNvbnRyb2wpIHtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59Il19
475
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL211bHRpLXNlbGVjdC1zZWFyY2gvbXVsdGktc2VsZWN0LXNlYXJjaC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUE4RnRFLE1BQU0sT0FBTywwQkFBMEI7SUE1RnZDO1FBK0ZXLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsa0JBQWEsR0FBVyxNQUFNLENBQUM7UUFDL0Isa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFDN0IsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFJbEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNDLFNBQUksR0FBRyxN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clZVLDBCQUEwQjttR0FBMUIsMEJBQTBCLGdWQXhGM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEVULHlMQTNFUyxZQUFZLCtQQUFFLFdBQVcsMjRFQUFFLFdBQVcsdUlBQUUsa0JBQWtCLGlLQUFFLG1CQUFtQjs7NEZBeUY5RSwwQkFBMEI7a0JBNUZ0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQyxZQUNoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRVQ7OEJBZW1CLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFFVCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSwgSW9uTW9kYWwgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBJY29uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgYXBwbHlEZWZhdWx0VmFsdWVUb0NvbnRyb2wgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdXRpbHMvZm9ybS1kZWZhdWx0cyc7XG5pbXBvcnQgeyByZXBsYWNlU3BlY2lhbENoYXJzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3RleHQnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1tdWx0aS1zZWxlY3Qtc2VhcmNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uaWNNb2R1bGUsIEZvcm1zTW9kdWxlLCBTZWFyY2hiYXJDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24taW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgcmVhZG9ubHlcbiAgICAgIChtb3VzZWRvd24pPVwicHJldmVudERlZmF1bHRCZWhhdmlvcigkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgPGlvbi1pbnB1dCBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtcIiBbZm9ybUNvbnRyb2xdPVwicHJvcHMuY29udHJvbFwiIHR5cGU9XCJoaWRkZW5cIj48L2lvbi1pbnB1dD5cblxuICAgIDxpb24tbW9kYWxcbiAgICAgICNtb2RhbFxuICAgICAgdHJpZ2dlcj1cIm9wZW4tbW9kYWxcIlxuICAgICAgW2luaXRpYWxCcmVha3BvaW50XT1cIjFcIlxuICAgICAgW2JyZWFrcG9pbnRzXT1cIlswLCAwLjUsIDAuNzUsIDFdXCJcbiAgICAgIChkaWREaXNtaXNzKT1cImNhbmNlbE1vZGFsKClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgPGlvbi1oZWFkZXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPGlvbi10aXRsZT57eyBnZXRMYWJlbCgpIH19PC9pb24tdGl0bGU+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsTW9kYWwoKVwiPnt7IGdldENsb3NlVGV4dCgpIH19PC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICAgIDx2YWwtc2VhcmNoYmFyIChmaWx0ZXJFdmVudCk9XCJvbkZpbHRlcigkZXZlbnQpXCIgKGZvY3VzRXZlbnQpPVwib25Gb2N1cygpXCIgKGJsdXJFdmVudCk9XCJvbkJsdXIoKVwiIC8+XG4gICAgICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICAgICAgPC9pb24taGVhZGVyPlxuICAgICAgICA8aW9uLWNvbnRlbnQ+XG4gICAgICAgICAgPCEtLSBBY3Rpb24gYnV0dG9ucyBmb3IgbXVsdGktc2VsZWN0IC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiIHN0eWxlPVwicGFkZGluZzogMTZweDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSk7XCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmlsdGVyZWRJdGVtcy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RBbGxUZXh0KCkgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwibWVkaXVtXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyQWxsKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBnZXRDbGVhclRleHQoKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGlvbi1saXN0PlxuICAgICAgICAgICAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXNcIiBidXR0b24gKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIiBkZXRhaWw9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgc2xvdD1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgID48L2lvbi1jaGVja2JveD5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbD57eyBpdGVtW2xhYmVsUHJvcGVydHldIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgPGlvbi1pdGVtICpuZ0lmPVwiZmlsdGVyZWRJdGVtcy5sZW5ndGggPT09IDBcIiBsaW5lcz1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhcmtcIj57eyBnZXROb1Jlc3VsdHNUZXh0KCkgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgICAgPC9pb24tY29udGVudD5cbiAgICAgICAgPGlvbi1mb290ZXI+XG4gICAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiZnVsbFwiIChjbGljayk9XCJhcHBseUFuZENsb3NlKClcIj5cbiAgICAgICAgICAgICAge3sgZ2V0QXBwbHlUZXh0KCkgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICA8L2lvbi1mb290ZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICBpb24taGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDhweCAwcHggOHB4O1xuICAgICAgfVxuICAgICAgLmFjdGlvbnMtY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0U2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsITogSW9uTW9kYWw7XG5cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYWJlbFByb3BlcnR5OiBzdHJpbmcgPSAnbmFtZSc7XG4gIEBJbnB1dCgpIHZhbHVlUHJvcGVydHk6IHN0cmluZyA9ICdpZCc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBpY29uID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqIEdldCByZXNvbHZlZCBsYWJlbCB3aXRoIGkxOG4gZmFsbGJhY2sgKi9cbiAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbCB8fCB0aGlzLmkxOG4udCgnc2VsZWN0T3B0aW9ucycpO1xuICB9XG5cbiAgLyoqIEdldCByZXNvbHZlZCBwbGFjZWhvbGRlciB3aXRoIGkxOG4gZmFsbGJhY2sgKi9cbiAgZ2V0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcz8ucGxhY2Vob2xkZXIgfHwgdGhpcy5wbGFjZWhvbGRlciB8fCB0aGlzLmkxOG4udCgnc2VsZWN0T3B0aW9ucycpO1xuICB9XG5cbiAgLyoqIEdldCBjbG9zZSBidXR0b24gdGV4dCAqL1xuICBnZXRDbG9zZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ2Nsb3NlJyk7XG4gIH1cblxuICAvKiogR2V0IG5vIHJlc3VsdHMgdGV4dCAqL1xuICBnZXROb1Jlc3VsdHNUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdub1Jlc3VsdHMnKTtcbiAgfVxuXG4gIC8qKiBHZXQgc2VsZWN0IGFsbCB0ZXh0ICovXG4gIGdldFNlbGVjdEFsbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ3NlbGVjdEFsbCcpO1xuICB9XG5cbiAgLyoqIEdldCBjbGVhciB0ZXh0ICovXG4gIGdldENsZWFyVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnY2xlYXInKTtcbiAgfVxuXG4gIC8qKiBHZXQgYXBwbHkgdGV4dCAqL1xuICBnZXRBcHBseVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ2FwcGx5Jyk7XG4gIH1cblxuICAvKiogR2V0IGl0ZW1zIHNlbGVjdGVkIHRleHQgKi9cbiAgZ2V0SXRlbXNTZWxlY3RlZFRleHQoY291bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2NvdW50fSAke3RoaXMuaTE4bi50KCdpdGVtc1NlbGVjdGVkJyl9YDtcbiAgfVxuXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuICBmaWx0ZXJlZEl0ZW1zOiBJbnB1dE9wdGlvbltdID0gW107XG4gIHNlbGVjdGVkSXRlbXM6IElucHV0T3B0aW9uW10gPSBbXTtcbiAgZGlzcGxheVZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIHByZXZpb3VzT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBpc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gIHByaXZhdGUgdmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYXBwbHlEZWZhdWx0VmFsdWUoKTtcbiAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xuICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICB0aGlzLnN1YnNjcmliZVRvVmFsdWVDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBMaW1waWFyIHN1c2NyaXBjaW9uZXMgcGFyYSBldml0YXIgbWVtb3J5IGxlYWtzXG4gICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBFdml0YXIgYnVjbGVzIGluZmluaXRvc1xuICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDdWFuZG8gY2FtYmlhIHByb3BzIG8gcHJvcHMub3B0aW9uc1xuICAgIGlmIChjaGFuZ2VzWydwcm9wcyddKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSB0cnVlO1xuXG4gICAgICAgIC8vIERlc3VzY3JpYmlyc2UgZGVsIGFudGlndW8gY29udHJvbCBzaSBleGlzdGVcbiAgICAgICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnByb3BzPy5vcHRpb25zKSB7XG4gICAgICAgICAgLy8gVmVyaWZpY2FyIHNpIGxhcyBvcGNpb25lcyBoYW4gY2FtYmlhZG8gcmVhbG1lbnRlXG4gICAgICAgICAgY29uc3Qgb3B0aW9uc0NoYW5nZWQgPSAhdGhpcy5hcmVPcHRpb25zRXF1YWwodGhpcy5wcmV2aW91c09wdGlvbnMsIHRoaXMucHJvcHMub3B0aW9ucyk7XG5cbiAgICAgICAgICBpZiAob3B0aW9uc0NoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNPcHRpb25zID0gWy4uLnRoaXMucHJvcHMub3B0aW9uc107XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNpbmNyb25pemFyIGNvbiBlbCBudWV2byBjb250cm9sIHNpIGV4aXN0ZVxuICAgICAgICB0aGlzLnN5bmNDb250cm9sVmFsdWVXaXRoU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuXG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGFsIG51ZXZvIGNvbnRyb2xcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb1ZhbHVlQ2hhbmdlcygpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW9uVmlld1dpbGxFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG4gICAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xuICAgICAgdGhpcy5zeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICB0aGlzLnN1YnNjcmliZVRvVmFsdWVDaGFuZ2VzKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN1c2NyaWJpcnNlIGEgY2FtYmlvcyBlbiBlbCBGb3JtQ29udHJvbFxuICBwcml2YXRlIHN1YnNjcmliZVRvVmFsdWVDaGFuZ2VzKCkge1xuICAgIGlmICghdGhpcy5wcm9wcz8uY29udHJvbCkgcmV0dXJuO1xuXG4gICAgdGhpcy52YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLnByb3BzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAodGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzKSByZXR1cm47XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nQ2hhbmdlcyA9IHRydWU7XG4gICAgICAgIHRoaXMuc3luY0NvbnRyb2xWYWx1ZVdpdGhTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIENvbXBhcmEgc2kgZG9zIGFycmF5cyBkZSBvcGNpb25lcyBzb24gaWd1YWxlc1xuICBwcml2YXRlIGFyZU9wdGlvbnNFcXVhbChwcmV2T3B0aW9uczogYW55W10sIG5ld09wdGlvbnM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKHByZXZPcHRpb25zID09PSBuZXdPcHRpb25zKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIXByZXZPcHRpb25zIHx8ICFuZXdPcHRpb25zKSByZXR1cm4gcHJldk9wdGlvbnMgPT09IG5ld09wdGlvbnM7XG4gICAgaWYgKHByZXZPcHRpb25zLmxlbmd0aCAhPT0gbmV3T3B0aW9ucy5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocHJldk9wdGlvbnNbaV1bdGhpcy52YWx1ZVByb3BlcnR5XSAhPT0gbmV3T3B0aW9uc1tpXVt0aGlzLnZhbHVlUHJvcGVydHldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnByb3BzPy5vcHRpb25zIHx8IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jQ29udHJvbFZhbHVlV2l0aFNlbGVjdGVkSXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29udHJvbFZhbHVlID0gdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlO1xuICAgIGlmIChjb250cm9sVmFsdWUgPT09IG51bGwgfHwgY29udHJvbFZhbHVlID09PSB1bmRlZmluZWQgfHwgY29udHJvbFZhbHVlID09PSAnJykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBmb3IgbXVsdGktc2VsZWN0XG4gICAgY29uc3QgdmFsdWVzID0gdHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycgXG4gICAgICA/IGNvbnRyb2xWYWx1ZS5zcGxpdCgnLCcpLm1hcCh2ID0+IHYudHJpbSgpKS5maWx0ZXIodiA9PiB2ICE9PSAnJylcbiAgICAgIDogQXJyYXkuaXNBcnJheShjb250cm9sVmFsdWUpID8gY29udHJvbFZhbHVlIDogW2NvbnRyb2xWYWx1ZV07XG5cbiAgICBpZiAodGhpcy5wcm9wcy5vcHRpb25zICYmIHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBtYXAgPSBuZXcgTWFwKHRoaXMucHJvcHMub3B0aW9ucy5tYXAob3B0ID0+IFtTdHJpbmcob3B0W3RoaXMudmFsdWVQcm9wZXJ0eV0pLCBvcHRdKSk7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZXMubWFwKHZhbCA9PiBtYXAuZ2V0KFN0cmluZyh2YWwpKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGVmYXVsdFZhbHVlKCk6IHZvaWQge1xuICAgIGFwcGx5RGVmYXVsdFZhbHVlVG9Db250cm9sKHRoaXMucHJvcHMpO1xuICB9XG5cbiAgb25GaWx0ZXIoZXZlbnQpIHtcbiAgICAvLyBJZiBubyBzZWFyY2ggdGVybSwgc2hvdyBhbGwgb3B0aW9uc1xuICAgIGlmICghZXZlbnQgfHwgZXZlbnQudHJpbSgpID09PSAnJykge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5wcm9wcz8ub3B0aW9ucyA/IFsuLi50aGlzLnByb3BzLm9wdGlvbnNdIDogW107XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBubyBvcHRpb25zLCBub3RoaW5nIHRvIGZpbHRlclxuICAgIGlmICghdGhpcy5wcm9wcz8ub3B0aW9ucyB8fCB0aGlzLnByb3BzLm9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbXTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNlYXJjaCA9IHJlcGxhY2VTcGVjaWFsQ2hhcnMoZXZlbnQudG9Mb3dlckNhc2UoKSk7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5wcm9wcy5vcHRpb25zLmZpbHRlcihlbGVtZW50ID0+IHtcbiAgICAgIGNvbnN0IGxhYmVsID0gZWxlbWVudFt0aGlzLmxhYmVsUHJvcGVydHldXG4gICAgICAgID8gcmVwbGFjZVNwZWNpYWxDaGFycyhTdHJpbmcoZWxlbWVudFt0aGlzLmxhYmVsUHJvcGVydHldKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICA6ICcnO1xuICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50W3RoaXMudmFsdWVQcm9wZXJ0eV1cbiAgICAgICAgPyByZXBsYWNlU3BlY2lhbENoYXJzKFN0cmluZyhlbGVtZW50W3RoaXMudmFsdWVQcm9wZXJ0eV0pLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgIDogJyc7XG4gICAgICByZXR1cm4gbGFiZWwuaW5jbHVkZXMoc2VhcmNoKSB8fCB2YWx1ZS5pbmNsdWRlcyhzZWFyY2gpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25Gb2N1cygpIHtcbiAgICBjb25zb2xlLmxvZygnb25Gb2N1cycpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGNvbnNvbGUubG9nKCdvbkJsdXInKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpIHtcbiAgICBpZiAodGhpcy5tb2RhbCkge1xuICAgICAgdGhpcy5tb2RhbC5wcmVzZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJldmVudERlZmF1bHRCZWhhdmlvcihldmVudDogTW91c2VFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcbiAgfVxuXG4gIGNhbmNlbE1vZGFsKCkge1xuICAgIC8vIFJlc2V0IGZpbHRlciBhbmQgc2hvdyBhbGwgb3B0aW9ucyB3aGVuIGNsb3NpbmcgbW9kYWxcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnByb3BzPy5vcHRpb25zID8gWy4uLnRoaXMucHJvcHMub3B0aW9uc10gOiBbXTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICBpZiAodGhpcy5tb2RhbCkge1xuICAgICAgdGhpcy5tb2RhbC5kaXNtaXNzKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SXRlbShpdGVtOiBhbnkpIHtcbiAgICAvLyBNdWx0aS1zZWxlY3QgbG9naWM6IHRvZ2dsZSBzZWxlY3Rpb25cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICBzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IGl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XVxuICAgICk7XG5cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAvLyBBZGQgdG8gc2VsZWN0aW9uXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVtb3ZlIGZyb20gc2VsZWN0aW9uXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuYXBwbHlDaGFuZ2VzKCk7XG4gIH1cblxuICBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgLy8gQWRkIGFsbCBmaWx0ZXJlZCBpdGVtcyB0aGF0IGFyZW4ndCBhbHJlYWR5IHNlbGVjdGVkXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBpc0FscmVhZHlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5zb21lKFxuICAgICAgICBzZWxlY3RlZEl0ZW0gPT4gc2VsZWN0ZWRJdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0gPT09IGl0ZW1bdGhpcy52YWx1ZVByb3BlcnR5XVxuICAgICAgKTtcbiAgICAgIGlmICghaXNBbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuYXBwbHlDaGFuZ2VzKCk7XG4gIH1cblxuICBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSgpO1xuICAgIHRoaXMuYXBwbHlDaGFuZ2VzKCk7XG4gIH1cblxuICBpc0l0ZW1TZWxlY3RlZChpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLnNvbWUoc2VsZWN0ZWRJdGVtID0+IHNlbGVjdGVkSXRlbVt0aGlzLnZhbHVlUHJvcGVydHldID09PSBpdGVtW3RoaXMudmFsdWVQcm9wZXJ0eV0pO1xuICB9XG5cbiAgdXBkYXRlRGlzcGxheVZhbHVlKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1swXVt0aGlzLmxhYmVsUHJvcGVydHldO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZ2V0SXRlbXNTZWxlY3RlZFRleHQodGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlDaGFuZ2VzKCkge1xuICAgIGlmICghdGhpcy5wcm9wcz8uY29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZ0NoYW5nZXMgPSB0cnVlO1xuXG4gICAgICAvLyBDb252ZXJ0IHNlbGVjdGVkIGl0ZW1zIHRvIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgb2YgdmFsdWVzXG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5tYXAoaXRlbSA9PiBTdHJpbmcoaXRlbVt0aGlzLnZhbHVlUHJvcGVydHldKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHNlbGVjdGVkVmFsdWVzLmpvaW4oJywnKTtcblxuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdDaGFuZ2VzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlBbmRDbG9zZSgpIHtcbiAgICB0aGlzLmFwcGx5Q2hhbmdlcygpO1xuICAgIHRoaXMuY2FuY2VsTW9kYWwoKTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcMO6YmxpY28gcGFyYSByZWluaWNpYXIgZWwgY29tcG9uZW50ZVxuICByZXNldCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgIGlmICh0aGlzLnByb3BzPy5jb250cm9sKSB7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufSJdfQ==
@@ -1,6 +1,7 @@
1
- import { Component, Input, Output, EventEmitter, signal, ViewChild, ContentChild, } from '@angular/core';
1
+ import { Component, Input, Output, EventEmitter, signal, ViewChild, ContentChild, inject, } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { IonRefresher, IonRefresherContent, IonSpinner, IonText, } from '@ionic/angular/standalone';
4
+ import { I18nService } from '../../../services/i18n';
4
5
  import { DEFAULT_REFRESHER_METADATA, } from './types';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/common";
@@ -43,14 +44,28 @@ export class RefresherComponent {
43
44
  this.pullProgressChange = new EventEmitter();
44
45
  /** Evento de cambio de estado */
45
46
  this.stateChange = new EventEmitter();
47
+ this.i18n = inject(I18nService);
46
48
  /** Estado actual del refresher */
47
49
  this.state = signal('idle');
48
50
  /** Progreso actual del pull (0-1) */
49
51
  this.pullProgress = signal(0);
50
52
  }
53
+ /** Get pulling text with i18n fallback */
54
+ getPullingText() {
55
+ return this.props.pullingText || this.i18n.t('pullToRefresh');
56
+ }
57
+ /** Get refreshing text with i18n fallback */
58
+ getRefreshingText() {
59
+ return this.props.refreshingText || this.i18n.t('loading');
60
+ }
51
61
  /** Props combinados con defaults */
52
62
  get mergedProps() {
53
- return { ...DEFAULT_REFRESHER_METADATA, ...this.props };
63
+ return {
64
+ ...DEFAULT_REFRESHER_METADATA,
65
+ ...this.props,
66
+ pullingText: this.getPullingText(),
67
+ refreshingText: this.getRefreshingText(),
68
+ };
54
69
  }
55
70
  /** Si hay indicadores personalizados */
56
71
  get hasCustomIndicator() {
@@ -251,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
251
266
  }], stateChange: [{
252
267
  type: Output
253
268
  }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmVmcmVzaGVyL3JlZnJlc2hlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFLTCwwQkFBMEIsR0FDM0IsTUFBTSxTQUFTLENBQUM7OztBQUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQThFSCxNQUFNLE9BQU8sa0JBQWtCO0lBN0UvQjtRQXFGRSxrQ0FBa0M7UUFDekIsVUFBSyxHQUFzQixFQUFFLENBQUM7UUFFdkMsaURBQWlEO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVyRCx5Q0FBeUM7UUFDL0IsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFcEUsaUNBQWlDO1FBQ3ZCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFM0Qsa0NBQWtDO1FBQ3pCLFVBQUssR0FBRyxNQUFNLENBQWlCLE1BQU0sQ0FBQyxDQUFDO1FBRWhELHFDQUFxQztRQUM1QixpQkFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztLQWtGM0M7SUFoRkMsb0NBQW9DO0lBQ3BDLElBQUksV0FBVztRQUNiLE9BQU8sRUFBRSxHQUFHLDBCQUEwQixFQUFFLEdBQUcsSUFBSSxDQUFD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Ozs7Ozs7Ozs7Ozs7Ozs7R0FzRFQsNk9BdkRTLFlBQVksc01BQUUsWUFBWSxpS0FBRSxtQkFBbUIsaUpBQUUsVUFBVSx5R0FBRSxPQUFPOzs0RkEwRW5FLGtCQUFrQjtrQkE3RTlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUNyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0RUOzhCQW9CdUIsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXO2dCQUdZLGdCQUFnQjtzQkFBakQsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBQ0ssbUJBQW1CO3NCQUF2RCxZQUFZO3VCQUFDLHFCQUFxQjtnQkFDRSxtQkFBbUI7c0JBQXZELFlBQVk7dUJBQUMscUJBQXFCO2dCQUcxQixLQUFLO3NCQUFiLEtBQUs7Z0JBR0ksT0FBTztzQkFBaEIsTUFBTTtnQkFHRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSW9uUmVmcmVzaGVyLFxuICBJb25SZWZyZXNoZXJDb250ZW50LFxuICBJb25TcGlubmVyLFxuICBJb25UZXh0LFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7XG4gIFJlZnJlc2hlck1ldGFkYXRhLFxuICBSZWZyZXNoZXJTdGF0ZSxcbiAgUmVmcmVzaEV2ZW50LFxuICBSZWZyZXNoUHVsbEV2ZW50LFxuICBERUZBVUxUX1JFRlJFU0hFUl9NRVRBREFUQSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBwdWxsLXRvLXJlZnJlc2ggcGFyYSBtb3ZpbCB5IHdlYi5cbiAqXG4gKiBAZXhhbXBsZVxuICogPCEtLSBVc28gYmFzaWNvIC0tPlxuICogPHZhbC1yZWZyZXNoZXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICogICAgIHB1bGxpbmdUZXh0OiAnQXJyYXN0cmEgcGFyYSBhY3R1YWxpemFyJyxcbiAqICAgICByZWZyZXNoaW5nVGV4dDogJ0NhcmdhbmRvLi4uJ1xuICogICB9XCJcbiAqICAgKHJlZnJlc2gpPVwib25SZWZyZXNoKCRldmVudClcIlxuICogPlxuICogICA8aW9uLWNvbnRlbnQ+XG4gKiAgICAgPCEtLSBDb250ZW5pZG8gc2Nyb2xsZWFibGUgLS0+XG4gKiAgIDwvaW9uLWNvbnRlbnQ+XG4gKiA8L3ZhbC1yZWZyZXNoZXI+XG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gQ29uIGluZGljYWRvciBwZXJzb25hbGl6YWRvIC0tPlxuICogPHZhbC1yZWZyZXNoZXIgW3Byb3BzXT1cInsgY29sb3I6ICdwcmltYXJ5JyB9XCIgKHJlZnJlc2gpPVwib25SZWZyZXNoKCRldmVudClcIj5cbiAqICAgPG5nLXRlbXBsYXRlICNwdWxsaW5nSW5kaWNhdG9yIGxldC1wcm9ncmVzcz1cInByb2dyZXNzXCI+XG4gKiAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbmRpY2F0b3JcIj5cbiAqICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctZG93blwiIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgnICsgcHJvZ3Jlc3MgKiAxODAgKyAnZGVnKSdcIj48L2lvbi1pY29uPlxuICogICAgIDwvZGl2PlxuICogICA8L25nLXRlbXBsYXRlPlxuICogICA8aW9uLWNvbnRlbnQ+Li4uPC9pb24tY29udGVudD5cbiAqIDwvdmFsLXJlZnJlc2hlcj5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXJlZnJlc2hlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblJlZnJlc2hlciwgSW9uUmVmcmVzaGVyQ29udGVudCwgSW9uU3Bpbm5lciwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1yZWZyZXNoZXJcbiAgICAgICNyZWZyZXNoZXJcbiAgICAgIHNsb3Q9XCJmaXhlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibWVyZ2VkUHJvcHMuZGlzYWJsZWRcIlxuICAgICAgW3B1bGxNaW5dPVwibWVyZ2VkUHJvcHMucHVsbFRocmVzaG9sZFwiXG4gICAgICBbcHVsbE1heF09XCJtZXJnZWRQcm9wcy5wdWxsTWF4XCJcbiAgICAgIFtwdWxsRmFjdG9yXT1cIm1lcmdlZFByb3BzLnB1bGxGYWN0b3JcIlxuICAgICAgW3NuYXBiYWNrRHVyYXRpb25dPVwibWVyZ2VkUHJvcHMuc25hcGJhY2tEdXJhdGlvblwiXG4gICAgICBbY2xvc2VEdXJhdGlvbl09XCJtZXJnZWRQcm9wcy5jbG9zZUR1cmF0aW9uXCJcbiAgICAgIChpb25SZWZyZXNoKT1cIm9uSW9uUmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgIChpb25QdWxsKT1cIm9uSW9uUHVsbCgkZXZlbnQpXCJcbiAgICAgIChpb25TdGFydCk9XCJvbklvblN0YXJ0KClcIlxuICAgID5cbiAgICAgIEBpZiAoaGFzQ3VzdG9tSW5kaWNhdG9yKSB7XG4gICAgICAgIDwhLS0gQ3VzdG9tIGluZGljYXRvciB0ZW1wbGF0ZXMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWZyZXNoZXItY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICBAc3dpdGNoIChzdGF0ZSgpKSB7XG4gICAgICAgICAgICBAY2FzZSAoJ3B1bGxpbmcnKSB7XG4gICAgICAgICAgICAgIEBpZiAocHVsbGluZ0luZGljYXRvcikge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHVsbGluZ0luZGljYXRvcjsgY29udGV4dDogeyBwcm9ncmVzczogcHVsbFByb2dyZXNzKCkgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3JlZnJlc2hpbmcnKSB7XG4gICAgICAgICAgICAgIEBpZiAocmVmcmVzaGluZ0luZGljYXRvcikge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWZyZXNoaW5nSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBbbmFtZV09XCJtZXJnZWRQcm9wcy5zcGlubmVyVHlwZVwiIFtjb2xvcl09XCJtZXJnZWRQcm9wcy5jb2xvclwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgQGlmIChtZXJnZWRQcm9wcy5yZWZyZXNoaW5nVGV4dCkge1xuICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0IFtjb2xvcl09XCJtZXJnZWRQcm9wcy5jb2xvclwiPnt7IG1lcmdlZFByb3BzLnJlZnJlc2hpbmdUZXh0IH19PC9pb24tdGV4dD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnY29tcGxldGluZycpIHtcbiAgICAgICAgICAgICAgQGlmIChjb21wbGV0aW5nSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBsZXRpbmdJbmRpY2F0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPCEtLSBEZWZhdWx0IElvbmljIHJlZnJlc2hlciBjb250ZW50IC0tPlxuICAgICAgICA8aW9uLXJlZnJlc2hlci1jb250ZW50XG4gICAgICAgICAgW3B1bGxpbmdJY29uXT1cIm1lcmdlZFByb3BzLnNwaW5uZXJUeXBlID09PSAnY3Jlc2NlbnQnID8gJ2NoZXZyb24tZG93bi1jaXJjbGUtb3V0bGluZScgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIFtwdWxsaW5nVGV4dF09XCJtZXJnZWRQcm9wcy5wdWxsaW5nVGV4dFwiXG4gICAgICAgICAgW3JlZnJlc2hpbmdTcGlubmVyXT1cIm1lcmdlZFByb3BzLnNwaW5uZXJUeXBlXCJcbiAgICAgICAgICBbcmVmcmVzaGluZ1RleHRdPVwibWVyZ2VkUHJvcHMucmVmcmVzaGluZ1RleHRcIlxuICAgICAgICA+PC9pb24tcmVmcmVzaGVyLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9pb24tcmVmcmVzaGVyPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5yZWZyZXNoZXItY3VzdG9tLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVmcmVzaGVyQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgncmVmcmVzaGVyJykgaW9uUmVmcmVzaGVyITogSW9uUmVmcmVzaGVyO1xuXG4gIC8qKiBUZW1wbGF0ZXMgcGVyc29uYWxpemFkb3MgdmlhIGNvbnRlbnQgcHJvamVjdGlvbiAqL1xuICBAQ29udGVudENoaWxkKCdwdWxsaW5nSW5kaWNhdG9yJykgcHVsbGluZ0luZGljYXRvcj86IFRlbXBsYXRlUmVmPHsgcHJvZ3Jlc3M6IG51bWJlciB9PjtcbiAgQENvbnRlbnRDaGlsZCgncmVmcmVzaGluZ0luZGljYXRvcicpIHJlZnJlc2hpbmdJbmRpY2F0b3I/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQENvbnRlbnRDaGlsZCgnY29tcGxldGluZ0luZGljYXRvcicpIGNvbXBsZXRpbmdJbmRpY2F0b3I/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKiogQ29uZmlndXJhY2lvbiBkZWwgcmVmcmVzaGVyICovXG4gIEBJbnB1dCgpIHByb3BzOiBSZWZyZXNoZXJNZXRhZGF0YSA9IHt9O1xuXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBjdWFuZG8gc2UgYWN0aXZhIGVsIHJlZnJlc2ggKi9cbiAgQE91dHB1dCgpIHJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyPFJlZnJlc2hFdmVudD4oKTtcblxuICAvKiogRXZlbnRvIGRlIHByb2dyZXNvIGR1cmFudGUgZWwgcHVsbCAqL1xuICBAT3V0cHV0KCkgcHVsbFByb2dyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWZyZXNoUHVsbEV2ZW50PigpO1xuXG4gIC8qKiBFdmVudG8gZGUgY2FtYmlvIGRlIGVzdGFkbyAqL1xuICBAT3V0cHV0KCkgc3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlZnJlc2hlclN0YXRlPigpO1xuXG4gIC8qKiBFc3RhZG8gYWN0dWFsIGRlbCByZWZyZXNoZXIgKi9cbiAgcmVhZG9ubHkgc3RhdGUgPSBzaWduYWw8UmVmcmVzaGVyU3RhdGU+KCdpZGxlJyk7XG5cbiAgLyoqIFByb2dyZXNvIGFjdHVhbCBkZWwgcHVsbCAoMC0xKSAqL1xuICByZWFkb25seSBwdWxsUHJvZ3Jlc3MgPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICAvKiogUHJvcHMgY29tYmluYWRvcyBjb24gZGVmYXVsdHMgKi9cbiAgZ2V0IG1lcmdlZFByb3BzKCk6IFJlZnJlc2hlck1ldGFkYXRhIHtcbiAgICByZXR1cm4geyAuLi5ERUZBVUxUX1JFRlJFU0hFUl9NRVRBREFUQSwgLi4udGhpcy5wcm9wcyB9O1xuICB9XG5cbiAgLyoqIFNpIGhheSBpbmRpY2Fkb3JlcyBwZXJzb25hbGl6YWRvcyAqL1xuICBnZXQgaGFzQ3VzdG9tSW5kaWNhdG9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMucHVsbGluZ0luZGljYXRvciB8fFxuICAgICAgdGhpcy5yZWZyZXNoaW5nSW5kaWNhdG9yIHx8XG4gICAgICB0aGlzLmNvbXBsZXRpbmdJbmRpY2F0b3IgfHxcbiAgICAgIHRoaXMucHJvcHMuaW5kaWNhdG9yQ29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmEgcHJvZ3JhbWF0aWNhbWVudGUgZWwgcmVmcmVzaC5cbiAgICovXG4gIHRyaWdnZXJSZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuc2V0KCdyZWZyZXNoaW5nJyk7XG4gICAgdGhpcy5lbWl0UmVmcmVzaEV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGEgbGEgb3BlcmFjaW9uIGRlIHJlZnJlc2ggYWN0dWFsLlxuICAgKi9cbiAgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ2NvbXBsZXRpbmcnKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoJ2NvbXBsZXRpbmcnKTtcbiAgICB0aGlzLmlvblJlZnJlc2hlcj8uY29tcGxldGUoKTtcblxuICAgIC8vIFJlc2V0ZWFyIGEgaWRsZSBkZXNwdWVzIGRlIGxhIGFuaW1hY2lvblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ2lkbGUnKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgnaWRsZScpO1xuICAgIH0sIHRoaXMubWVyZ2VkUHJvcHMuY2xvc2VEdXJhdGlvbiA/PyAyODApO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbGEgbGEgb3BlcmFjaW9uIGRlIHJlZnJlc2ggYWN0dWFsLlxuICAgKi9cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuaW9uUmVmcmVzaGVyPy5jYW5jZWwoKTtcbiAgICB0aGlzLnN0YXRlLnNldCgnaWRsZScpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgnaWRsZScpO1xuICB9XG5cbiAgLyoqIEhhbmRsZXIgcGFyYSBldmVudG8gaW9uUmVmcmVzaCAqL1xuICBvbklvblJlZnJlc2goZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ3JlZnJlc2hpbmcnKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoJ3JlZnJlc2hpbmcnKTtcbiAgICB0aGlzLmVtaXRSZWZyZXNoRXZlbnQoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVyIHBhcmEgZXZlbnRvIGlvblB1bGwgKi9cbiAgb25Jb25QdWxsKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGRldGFpbCA9IGV2ZW50LmRldGFpbDtcbiAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWluKGRldGFpbC5wcm9ncmVzcywgMSk7XG4gICAgdGhpcy5wdWxsUHJvZ3Jlc3Muc2V0KHByb2dyZXNzKTtcblxuICAgIHRoaXMucHVsbFByb2dyZXNzQ2hhbmdlLmVtaXQoe1xuICAgICAgcHJvZ3Jlc3MsXG4gICAgICB0aHJlc2hvbGRSZWFjaGVkOiBwcm9ncmVzcyA+PSAxLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEhhbmRsZXIgcGFyYSBldmVudG8gaW9uU3RhcnQgKi9cbiAgb25Jb25TdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldCgncHVsbGluZycpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgncHVsbGluZycpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0UmVmcmVzaEV2ZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50OiBSZWZyZXNoRXZlbnQgPSB7XG4gICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5jb21wbGV0ZSgpLFxuICAgICAgY2FuY2VsOiAoKSA9PiB0aGlzLmNhbmNlbCgpLFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICAgIH07XG4gICAgdGhpcy5yZWZyZXNoLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iXX0=
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmVmcmVzaGVyL3JlZnJlc2hlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUtMLDBCQUEwQixHQUMzQixNQUFNLFNBQVMsQ0FBQzs7O0FBRWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBOEVILE1BQU0sT0FBTyxrQkFBa0I7SUE3RS9CO1FBcUZFLGtDQUFrQztRQUN6QixVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUV2QyxpREFBaUQ7UUFDdkMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBRXJELHlDQUF5QztRQUMvQix1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUVwRSxpQ0FBaUM7UUFDdkIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUVuRCxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRW5DLGtDQUFrQztRQUN6QixVQUFLLEdBQUcsTUFBTSxDQUFpQixNQUFNLENBQUMsQ0FBQztRQUVoRCxxQ0FBcUM7UUFDNUIsaUJBQVksR0FBRyxNQUFNLENBQVMsQ0FB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cEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJb25SZWZyZXNoZXIsXG4gIElvblJlZnJlc2hlckNvbnRlbnQsXG4gIElvblNwaW5uZXIsXG4gIElvblRleHQsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7XG4gIFJlZnJlc2hlck1ldGFkYXRhLFxuICBSZWZyZXNoZXJTdGF0ZSxcbiAgUmVmcmVzaEV2ZW50LFxuICBSZWZyZXNoUHVsbEV2ZW50LFxuICBERUZBVUxUX1JFRlJFU0hFUl9NRVRBREFUQSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ29tcG9uZW50ZSBkZSBwdWxsLXRvLXJlZnJlc2ggcGFyYSBtb3ZpbCB5IHdlYi5cbiAqXG4gKiBAZXhhbXBsZVxuICogPCEtLSBVc28gYmFzaWNvIC0tPlxuICogPHZhbC1yZWZyZXNoZXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICogICAgIHB1bGxpbmdUZXh0OiAnQXJyYXN0cmEgcGFyYSBhY3R1YWxpemFyJyxcbiAqICAgICByZWZyZXNoaW5nVGV4dDogJ0NhcmdhbmRvLi4uJ1xuICogICB9XCJcbiAqICAgKHJlZnJlc2gpPVwib25SZWZyZXNoKCRldmVudClcIlxuICogPlxuICogICA8aW9uLWNvbnRlbnQ+XG4gKiAgICAgPCEtLSBDb250ZW5pZG8gc2Nyb2xsZWFibGUgLS0+XG4gKiAgIDwvaW9uLWNvbnRlbnQ+XG4gKiA8L3ZhbC1yZWZyZXNoZXI+XG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gQ29uIGluZGljYWRvciBwZXJzb25hbGl6YWRvIC0tPlxuICogPHZhbC1yZWZyZXNoZXIgW3Byb3BzXT1cInsgY29sb3I6ICdwcmltYXJ5JyB9XCIgKHJlZnJlc2gpPVwib25SZWZyZXNoKCRldmVudClcIj5cbiAqICAgPG5nLXRlbXBsYXRlICNwdWxsaW5nSW5kaWNhdG9yIGxldC1wcm9ncmVzcz1cInByb2dyZXNzXCI+XG4gKiAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1pbmRpY2F0b3JcIj5cbiAqICAgICAgIDxpb24taWNvbiBuYW1lPVwiYXJyb3ctZG93blwiIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3JvdGF0ZSgnICsgcHJvZ3Jlc3MgKiAxODAgKyAnZGVnKSdcIj48L2lvbi1pY29uPlxuICogICAgIDwvZGl2PlxuICogICA8L25nLXRlbXBsYXRlPlxuICogICA8aW9uLWNvbnRlbnQ+Li4uPC9pb24tY29udGVudD5cbiAqIDwvdmFsLXJlZnJlc2hlcj5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXJlZnJlc2hlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvblJlZnJlc2hlciwgSW9uUmVmcmVzaGVyQ29udGVudCwgSW9uU3Bpbm5lciwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1yZWZyZXNoZXJcbiAgICAgICNyZWZyZXNoZXJcbiAgICAgIHNsb3Q9XCJmaXhlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwibWVyZ2VkUHJvcHMuZGlzYWJsZWRcIlxuICAgICAgW3B1bGxNaW5dPVwibWVyZ2VkUHJvcHMucHVsbFRocmVzaG9sZFwiXG4gICAgICBbcHVsbE1heF09XCJtZXJnZWRQcm9wcy5wdWxsTWF4XCJcbiAgICAgIFtwdWxsRmFjdG9yXT1cIm1lcmdlZFByb3BzLnB1bGxGYWN0b3JcIlxuICAgICAgW3NuYXBiYWNrRHVyYXRpb25dPVwibWVyZ2VkUHJvcHMuc25hcGJhY2tEdXJhdGlvblwiXG4gICAgICBbY2xvc2VEdXJhdGlvbl09XCJtZXJnZWRQcm9wcy5jbG9zZUR1cmF0aW9uXCJcbiAgICAgIChpb25SZWZyZXNoKT1cIm9uSW9uUmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgIChpb25QdWxsKT1cIm9uSW9uUHVsbCgkZXZlbnQpXCJcbiAgICAgIChpb25TdGFydCk9XCJvbklvblN0YXJ0KClcIlxuICAgID5cbiAgICAgIEBpZiAoaGFzQ3VzdG9tSW5kaWNhdG9yKSB7XG4gICAgICAgIDwhLS0gQ3VzdG9tIGluZGljYXRvciB0ZW1wbGF0ZXMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWZyZXNoZXItY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICBAc3dpdGNoIChzdGF0ZSgpKSB7XG4gICAgICAgICAgICBAY2FzZSAoJ3B1bGxpbmcnKSB7XG4gICAgICAgICAgICAgIEBpZiAocHVsbGluZ0luZGljYXRvcikge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicHVsbGluZ0luZGljYXRvcjsgY29udGV4dDogeyBwcm9ncmVzczogcHVsbFByb2dyZXNzKCkgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoJ3JlZnJlc2hpbmcnKSB7XG4gICAgICAgICAgICAgIEBpZiAocmVmcmVzaGluZ0luZGljYXRvcikge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWZyZXNoaW5nSW5kaWNhdG9yXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBbbmFtZV09XCJtZXJnZWRQcm9wcy5zcGlubmVyVHlwZVwiIFtjb2xvcl09XCJtZXJnZWRQcm9wcy5jb2xvclwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgQGlmIChtZXJnZWRQcm9wcy5yZWZyZXNoaW5nVGV4dCkge1xuICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0IFtjb2xvcl09XCJtZXJnZWRQcm9wcy5jb2xvclwiPnt7IG1lcmdlZFByb3BzLnJlZnJlc2hpbmdUZXh0IH19PC9pb24tdGV4dD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlICgnY29tcGxldGluZycpIHtcbiAgICAgICAgICAgICAgQGlmIChjb21wbGV0aW5nSW5kaWNhdG9yKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbXBsZXRpbmdJbmRpY2F0b3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPCEtLSBEZWZhdWx0IElvbmljIHJlZnJlc2hlciBjb250ZW50IC0tPlxuICAgICAgICA8aW9uLXJlZnJlc2hlci1jb250ZW50XG4gICAgICAgICAgW3B1bGxpbmdJY29uXT1cIm1lcmdlZFByb3BzLnNwaW5uZXJUeXBlID09PSAnY3Jlc2NlbnQnID8gJ2NoZXZyb24tZG93bi1jaXJjbGUtb3V0bGluZScgOiB1bmRlZmluZWRcIlxuICAgICAgICAgIFtwdWxsaW5nVGV4dF09XCJtZXJnZWRQcm9wcy5wdWxsaW5nVGV4dFwiXG4gICAgICAgICAgW3JlZnJlc2hpbmdTcGlubmVyXT1cIm1lcmdlZFByb3BzLnNwaW5uZXJUeXBlXCJcbiAgICAgICAgICBbcmVmcmVzaGluZ1RleHRdPVwibWVyZ2VkUHJvcHMucmVmcmVzaGluZ1RleHRcIlxuICAgICAgICA+PC9pb24tcmVmcmVzaGVyLWNvbnRlbnQ+XG4gICAgICB9XG4gICAgPC9pb24tcmVmcmVzaGVyPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICAgIC5yZWZyZXNoZXItY3VzdG9tLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVmcmVzaGVyQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgncmVmcmVzaGVyJykgaW9uUmVmcmVzaGVyITogSW9uUmVmcmVzaGVyO1xuXG4gIC8qKiBUZW1wbGF0ZXMgcGVyc29uYWxpemFkb3MgdmlhIGNvbnRlbnQgcHJvamVjdGlvbiAqL1xuICBAQ29udGVudENoaWxkKCdwdWxsaW5nSW5kaWNhdG9yJykgcHVsbGluZ0luZGljYXRvcj86IFRlbXBsYXRlUmVmPHsgcHJvZ3Jlc3M6IG51bWJlciB9PjtcbiAgQENvbnRlbnRDaGlsZCgncmVmcmVzaGluZ0luZGljYXRvcicpIHJlZnJlc2hpbmdJbmRpY2F0b3I/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQENvbnRlbnRDaGlsZCgnY29tcGxldGluZ0luZGljYXRvcicpIGNvbXBsZXRpbmdJbmRpY2F0b3I/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKiogQ29uZmlndXJhY2lvbiBkZWwgcmVmcmVzaGVyICovXG4gIEBJbnB1dCgpIHByb3BzOiBSZWZyZXNoZXJNZXRhZGF0YSA9IHt9O1xuXG4gIC8qKiBFdmVudG8gZW1pdGlkbyBjdWFuZG8gc2UgYWN0aXZhIGVsIHJlZnJlc2ggKi9cbiAgQE91dHB1dCgpIHJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyPFJlZnJlc2hFdmVudD4oKTtcblxuICAvKiogRXZlbnRvIGRlIHByb2dyZXNvIGR1cmFudGUgZWwgcHVsbCAqL1xuICBAT3V0cHV0KCkgcHVsbFByb2dyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWZyZXNoUHVsbEV2ZW50PigpO1xuXG4gIC8qKiBFdmVudG8gZGUgY2FtYmlvIGRlIGVzdGFkbyAqL1xuICBAT3V0cHV0KCkgc3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlZnJlc2hlclN0YXRlPigpO1xuXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqIEVzdGFkbyBhY3R1YWwgZGVsIHJlZnJlc2hlciAqL1xuICByZWFkb25seSBzdGF0ZSA9IHNpZ25hbDxSZWZyZXNoZXJTdGF0ZT4oJ2lkbGUnKTtcblxuICAvKiogUHJvZ3Jlc28gYWN0dWFsIGRlbCBwdWxsICgwLTEpICovXG4gIHJlYWRvbmx5IHB1bGxQcm9ncmVzcyA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIC8qKiBHZXQgcHVsbGluZyB0ZXh0IHdpdGggaTE4biBmYWxsYmFjayAqL1xuICBnZXRQdWxsaW5nVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnB1bGxpbmdUZXh0IHx8IHRoaXMuaTE4bi50KCdwdWxsVG9SZWZyZXNoJyk7XG4gIH1cblxuICAvKiogR2V0IHJlZnJlc2hpbmcgdGV4dCB3aXRoIGkxOG4gZmFsbGJhY2sgKi9cbiAgZ2V0UmVmcmVzaGluZ1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWZyZXNoaW5nVGV4dCB8fCB0aGlzLmkxOG4udCgnbG9hZGluZycpO1xuICB9XG5cbiAgLyoqIFByb3BzIGNvbWJpbmFkb3MgY29uIGRlZmF1bHRzICovXG4gIGdldCBtZXJnZWRQcm9wcygpOiBSZWZyZXNoZXJNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkRFRkFVTFRfUkVGUkVTSEVSX01FVEFEQVRBLFxuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIHB1bGxpbmdUZXh0OiB0aGlzLmdldFB1bGxpbmdUZXh0KCksXG4gICAgICByZWZyZXNoaW5nVGV4dDogdGhpcy5nZXRSZWZyZXNoaW5nVGV4dCgpLFxuICAgIH07XG4gIH1cblxuICAvKiogU2kgaGF5IGluZGljYWRvcmVzIHBlcnNvbmFsaXphZG9zICovXG4gIGdldCBoYXNDdXN0b21JbmRpY2F0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5wdWxsaW5nSW5kaWNhdG9yIHx8XG4gICAgICB0aGlzLnJlZnJlc2hpbmdJbmRpY2F0b3IgfHxcbiAgICAgIHRoaXMuY29tcGxldGluZ0luZGljYXRvciB8fFxuICAgICAgdGhpcy5wcm9wcy5pbmRpY2F0b3JDb25maWdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YSBwcm9ncmFtYXRpY2FtZW50ZSBlbCByZWZyZXNoLlxuICAgKi9cbiAgdHJpZ2dlclJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5zZXQoJ3JlZnJlc2hpbmcnKTtcbiAgICB0aGlzLmVtaXRSZWZyZXNoRXZlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wbGV0YSBsYSBvcGVyYWNpb24gZGUgcmVmcmVzaCBhY3R1YWwuXG4gICAqL1xuICBjb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldCgnY29tcGxldGluZycpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgnY29tcGxldGluZycpO1xuICAgIHRoaXMuaW9uUmVmcmVzaGVyPy5jb21wbGV0ZSgpO1xuXG4gICAgLy8gUmVzZXRlYXIgYSBpZGxlIGRlc3B1ZXMgZGUgbGEgYW5pbWFjaW9uXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlLnNldCgnaWRsZScpO1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KCdpZGxlJyk7XG4gICAgfSwgdGhpcy5tZXJnZWRQcm9wcy5jbG9zZUR1cmF0aW9uID8/IDI4MCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuY2VsYSBsYSBvcGVyYWNpb24gZGUgcmVmcmVzaCBhY3R1YWwuXG4gICAqL1xuICBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5pb25SZWZyZXNoZXI/LmNhbmNlbCgpO1xuICAgIHRoaXMuc3RhdGUuc2V0KCdpZGxlJyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KCdpZGxlJyk7XG4gIH1cblxuICAvKiogSGFuZGxlciBwYXJhIGV2ZW50byBpb25SZWZyZXNoICovXG4gIG9uSW9uUmVmcmVzaChldmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnNldCgncmVmcmVzaGluZycpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdCgncmVmcmVzaGluZycpO1xuICAgIHRoaXMuZW1pdFJlZnJlc2hFdmVudCgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZXIgcGFyYSBldmVudG8gaW9uUHVsbCAqL1xuICBvbklvblB1bGwoZXZlbnQ6IEN1c3RvbUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZGV0YWlsID0gZXZlbnQuZGV0YWlsO1xuICAgIGNvbnN0IHByb2dyZXNzID0gTWF0aC5taW4oZGV0YWlsLnByb2dyZXNzLCAxKTtcbiAgICB0aGlzLnB1bGxQcm9ncmVzcy5zZXQocHJvZ3Jlc3MpO1xuXG4gICAgdGhpcy5wdWxsUHJvZ3Jlc3NDaGFuZ2UuZW1pdCh7XG4gICAgICBwcm9ncmVzcyxcbiAgICAgIHRocmVzaG9sZFJlYWNoZWQ6IHByb2dyZXNzID49IDEsXG4gICAgfSk7XG4gIH1cblxuICAvKiogSGFuZGxlciBwYXJhIGV2ZW50byBpb25TdGFydCAqL1xuICBvbklvblN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUuc2V0KCdwdWxsaW5nJyk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KCdwdWxsaW5nJyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRSZWZyZXNoRXZlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnQ6IFJlZnJlc2hFdmVudCA9IHtcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmNvbXBsZXRlKCksXG4gICAgICBjYW5jZWw6ICgpID0+IHRoaXMuY2FuY2VsKCksXG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gICAgfTtcbiAgICB0aGlzLnJlZnJlc2guZW1pdChldmVudCk7XG4gIH1cbn1cbiJdfQ==