@norwegian/core-components 7.6.0 → 7.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/assets/documentation/icon/icon.md +1 -4
  2. package/assets/icons/small/info-outlined--disabled.svg +4 -0
  3. package/esm2022/lib/components/alert/alert.component.mjs +8 -3
  4. package/esm2022/lib/components/alert/models/alert.model.mjs +1 -1
  5. package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
  6. package/esm2022/lib/components/chip/chip.component.mjs +2 -2
  7. package/esm2022/lib/components/icon/icon.component.mjs +2 -2
  8. package/esm2022/lib/components/input/input.component.mjs +9 -1
  9. package/esm2022/lib/components/list/list.component.mjs +2 -2
  10. package/esm2022/lib/components/page-header/wallet/wallet.component.mjs +1 -1
  11. package/esm2022/lib/components/phone-number/phone-number.component.mjs +45 -6
  12. package/esm2022/lib/components/radio/radio.component.mjs +9 -3
  13. package/esm2022/lib/components/select/select.component.mjs +91 -47
  14. package/esm2022/lib/components/select/select.module.mjs +5 -4
  15. package/esm2022/lib/components/simple-list/simple-list.component.mjs +2 -2
  16. package/esm2022/lib/components/slide-toggle/slide-toggle.component.mjs +9 -3
  17. package/esm2022/lib/components/textarea/textarea.component.mjs +46 -5
  18. package/esm2022/lib/components/textarea/textarea.module.mjs +5 -4
  19. package/esm2022/lib/components/toggle/toggle.component.mjs +3 -3
  20. package/fesm2022/norwegian-core-components.mjs +251 -104
  21. package/fesm2022/norwegian-core-components.mjs.map +1 -1
  22. package/lib/components/alert/alert.component.d.ts +7 -1
  23. package/lib/components/alert/models/alert.model.d.ts +1 -0
  24. package/lib/components/chip/chip.component.d.ts +1 -1
  25. package/lib/components/datepicker/calendar/calendar.component.d.ts +1 -1
  26. package/lib/components/datepicker/datepicker.component.d.ts +2 -2
  27. package/lib/components/datepicker-combo/datepicker-combo.component.d.ts +1 -1
  28. package/lib/components/input/input.component.d.ts +3 -2
  29. package/lib/components/phone-number/phone-number.component.d.ts +12 -2
  30. package/lib/components/radio/radio.component.d.ts +1 -0
  31. package/lib/components/select/select.component.d.ts +11 -3
  32. package/lib/components/select/select.module.d.ts +2 -1
  33. package/lib/components/textarea/textarea.component.d.ts +13 -3
  34. package/lib/components/textarea/textarea.module.d.ts +2 -1
  35. package/package.json +1 -1
  36. package/assets/icons/small/calendar--disabled--light.svg +0 -14
  37. /package/assets/icons/small/{info--outlined--light.svg → info-outlined--light.svg} +0 -0
  38. /package/assets/icons/small/{info--outlined.svg → info-outlined.svg} +0 -0
@@ -96,6 +96,14 @@ export class InputComponent extends NasComponentBase {
96
96
  onKeydown(e) {
97
97
  this.lastWasTab = e.key === 'Tab';
98
98
  }
99
+ ngOnInit() {
100
+ if (this.nasFormGroup && this.nasFormControlName) {
101
+ const formControl = this.nasFormGroup.get(this.nasFormControlName);
102
+ formControl.valueChanges.subscribe(value => {
103
+ this.valid = !!value;
104
+ });
105
+ }
106
+ }
99
107
  ngAfterViewInit() {
100
108
  if (this.exists(this.disabled)) {
101
109
  const inputElement = document.getElementById(this.inputId);
@@ -213,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
213
221
  type: HostListener,
214
222
  args: ['document:keydown', ['$event']]
215
223
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7OztBQUV0RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZjs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQVlsRDs7OztPQUlHO0lBQ0gsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFZRDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLE1B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Q0UsV0FBVyxpQkFHTixpQkFBaUIsQ0FBQyxJQUFJOzBFQUdULGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFDSyxnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUNOLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFPWixFQUFFO3NCQUFWLEtBQUs7Z0JBT08sS0FBSztzQkFBakIsS0FBSztnQkFTSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFPRSxLQUFLO3NCQUFiLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQXlCRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT0csV0FBVztzQkFBbkIsS0FBSztnQkFPRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFRRixJQUFJO3NCQURQLEtBQUs7Z0JBaUJxQixlQUFlO3NCQUF6QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFPaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFXRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBV0csWUFBWTtzQkFBcEIsS0FBSztnQkFTRyxHQUFHO3NCQUFYLEtBQUs7Z0JBU0csR0FBRztzQkFBWCxLQUFLO2dCQVNHLElBQUk7c0JBQVosS0FBSztnQkFPRyxPQUFPO3NCQUFmLEtBQUs7Z0JBMkJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBJbnB1dCBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgTmV3IGRlc2lnblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2Uge1xuICBAVmlld0NoaWxkKCdpbnB1dFJlYWN0aXZlJykgaW5wdXRSZWFjdGl2ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0Tm90UmVhY3RpdmUnKSBpbnB1dE5vdFJlYWN0aXZlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY29udHJvbHMnKSBjb250cm9sczogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBnZXQgbW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxWYWx1ZTtcbiAgfVxuICBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSAhIXZhbHVlO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsVmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgaW4gYW4gZXJyb3Igc3RhdGUuXG4gICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBkaXNhYmxlZCBvciBubywgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkVmFsdWU7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gdmFsdWU7XG5cbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlucHV0SWQpO1xuXG4gICAgaWYgKCFpbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leGlzdHModmFsdWUpKSB7XG4gICAgICBpbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCBzcGFjZWxlc3Mgc3R5bGluZyAocmVtb3Zpbmcgc3BhY2luZylcbiAgICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBsYWJlbCBvZiB0aGUgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgbGFiZWwgb2YgdGhlIGlucHV0IGluc2lkZSB0aGUgd2hpdGUgYXJlYVxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxJbnNpZGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIGVycm9yIG9jY3VyLiBFcnJvciBhdHRyaWJ1dGUgbmVlZCB0byBiZSB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBwbGFjZWhvbGRlciB0ZXh0IGluIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIG1pbiBsZW5ndGggb24gdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgbWluTGVuZ3RoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBtYXggbGVuZ3RoIG9uIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluZm8gdGV4dCByZWxhdGVkIHRvIHRoZSBpbnB1dFxuICAgKi9cbiAgQElucHV0KCkgaW5mbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGljb24gb24gdGhlIGlucHV0XG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSW5wdXQgdHlwZSBvZiB0aGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS5cbiAgICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFN0cmluZyB0byBzZXQgbmFtZSBvbiBuYXRpdmUgaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZVZhbHVlO1xuICB9XG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubmFtZVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zZXROYW1lQXR0cmlidXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGFyaWEgZGVzY3JpYmVkYnkgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtaW5wdXQgW25hc0Zvcm1Db250cm9sTmFtZV09XCIndXNlcm5hbWUnXCI+PC9uYXMtaW5wdXQ+XG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbbmFzRm9ybUdyb3VwXT1cImxvZ2luR3JvdXBcIj48L25hcy1pbnB1dD5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBtaW5pbXVtIHZhbHVlIHRvIGFjY2VwdCBmb3IgdGhpcyBpbnB1dC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbdHlwZV09XCInbnVtYmVyJ1wiIFttaW5dPVwiMFwiPjwvbmFzLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgbWluOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIG1heGltdW0gdmFsdWUgdG8gYWNjZXB0IGZvciB0aGlzIGlucHV0LlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWlucHV0IFt0eXBlXT1cIidudW1iZXInXCIgW21heF09XCIxMFwiPjwvbmFzLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgbWF4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyBhIGxpbmUgYmVsb3cgdGhlIGlucHV0IGVsZW1lbnQuIERlZmF1bHQgdmFsdWUgaXMgdHJ1ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbbGluZV09XCJmYWxzZVwiPjwvbmFzLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgbGluZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU3BlY2lmaWVzIGEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgdGhlIGlucHV0IHZhbHVlIGlzIGNoZWNrZWQgYWdhaW5zdCBvbiBmb3JtIHN1Ym1pc3Npb25cbiAgICovXG4gIEBJbnB1dCgpIHBhdHRlcm46IHN0cmluZztcblxuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtaW5wdXQtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXQgZXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkXG4gICAgICA/IHRoaXMuaWQgKyAnX19lcnJvcidcbiAgICAgIDogYG5hcy1pbnB1dC0ke3RoaXMuY29tcG9uZW50SWR9X19lcnJvcmA7XG4gIH1cblxuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG4gIHByaXZhdGUgbW9kZWxWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGRpc2FibGVkVmFsdWU6IGJvb2xlYW47XG4gIHByaXZhdGUgbmFtZVZhbHVlOiBzdHJpbmc7XG4gIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1czogYm9vbGVhbjtcbiAgcHVibGljIHZhbGlkOiBib29sZWFuO1xuICBwdWJsaWMgbGFzdFdhc1RhYiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCduYXMtaW5wdXQnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBlLmtleSA9PT0gJ1RhYic7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpKSB7XG4gICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlucHV0SWQpO1xuICAgICAgaW5wdXRFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICB9XG4gICAgdGhpcy5zZXROYW1lQXR0cmlidXRlKCk7XG4gIH1cblxuICBtYWluQ2xhc3MoKTogQ2xhc3NNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoJycsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmICdlcnJvcicsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5hY3RpdmUpICYmICdhY3RpdmUnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5mb2N1cykgJiYgJ2ZvY3VzJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMudmFsaWQpICYmICd2YWxpZCcsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnNwYWNlbGVzcykgJiYgJ3NwYWNlbGVzcycsXG4gICAgXSk7XG4gIH1cblxuICBwcml2YXRlIHNldE5hbWVBdHRyaWJ1dGUoKSB7XG4gICAgaWYgKHRoaXMubmFtZVZhbHVlKSB7XG4gICAgICBpZiAoIXRoaXMubmFzRm9ybUNvbnRyb2xOYW1lIHx8ICF0aGlzLm5hc0Zvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLmlucHV0Tm90UmVhY3RpdmU/Lm5hdGl2ZUVsZW1lbnQ/LnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgdGhpcy5uYW1lVmFsdWVcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWFjdGl2ZT8ubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKCduYW1lJywgdGhpcy5uYW1lVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkJsdXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1cyA9IGZhbHNlO1xuICAgIHRoaXMuYmx1ci5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBmYWxzZTtcbiAgfVxuXG4gIHNldEFjdGl2ZUlucHV0KGFjdGl2ZTogYm9vbGVhbik6IHZvaWQgeyAgICBcbiAgICBpZih0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSB8fCAgdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkpIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgICB0aGlzLmZvY3VzID0gdGhpcy5sYXN0V2FzVGFiO1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmUgPSBhY3RpdmU7XG4gICAgdGhpcy5mb2N1cyA9IGFjdGl2ZSAmJiB0aGlzLmxhc3RXYXNUYWI7XG5cbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBmYWxzZTtcbiAgfVxuXG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtuYXNDbGFzc109XCJtYWluQ2xhc3MoKVwiPlxuICAgIDxkaXYgI2NvbnRyb2xzIFtuYXNDbGFzc109XCJnZXRDbGFzcygnY29udHJvbHMnLCBleGlzdHMobGFiZWxJbnNpZGUpICYmICdsYWJlbC1pbnNpZGUnKVwiIChrZXlkb3duKT1cIm9uS2V5RG93bigpXCJcbiAgICAgIChmb2N1c2luKT1cInNldEFjdGl2ZUlucHV0KHRydWUpXCIgKGZvY3Vzb3V0KT1cInNldEFjdGl2ZUlucHV0KGZhbHNlKVwiPlxuICAgICAgPHAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9wPlxuICAgICAgPGlucHV0ICNpbnB1dE5vdFJlYWN0aXZlIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiIFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvclwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoXCIgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFthdHRyLm1pbl09XCJtaW5cIiBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAgICAgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCIgKGJsdXIpPVwib25CbHVyKCRldmVudC50YXJnZXQudmFsdWUpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIC8+XG4gICAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiICpuZ0lmPVwiaWNvbiAmJiAhZXJyb3JcIj5cbiAgICAgICAgPG5hcy1pY29uIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuICpuZ0lmPVwiZXhpc3RzKGVycm9yKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZScpXCI+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0taWNvbicpXCI+XG4gICAgICAgIDxuYXMtaWNvbiB0eXBlPVwibmVnYXRpdmVcIj48L25hcy1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgICA8cCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UtLXRleHQnKVwiIFtpZF09XCJlcnJvcklkXCIgKm5nSWY9XCJleGlzdHMoZXJyb3IpICYmIGVycm9yTWVzc2FnZVwiPiB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICAgIDwvcD5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpbmZvJylcIiAqbmdJZj1cImluZm9cIj57eyBpbmZvIH19PC9zcGFuPlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3JlYWN0aXZlRm9ybT5cbiAgPGxhYmVsIFtuYXNDbGFzc109XCJtYWluQ2xhc3MoKVwiIFtmb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgPGRpdiAjY29udHJvbHMgW25hc0NsYXNzXT1cImdldENsYXNzKCdjb250cm9scycsIGV4aXN0cyhsYWJlbEluc2lkZSkgJiYgJ2xhYmVsLWluc2lkZScpXCIgXG4gICAgICAoZm9jdXNpbik9XCJzZXRBY3RpdmVJbnB1dCh0cnVlKVwiIChmb2N1c291dCk9XCJzZXRBY3RpdmVJbnB1dChmYWxzZSlcIiAoa2V5ZG93bik9XCJvbktleURvd24oKVwiPlxuICAgICAgPHAgW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9wPlxuICAgICAgPGlucHV0ICNpbnB1dFJlYWN0aXZlIFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCIgW2F0dHIubmFtZV09XCJuYW1lXCIgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFthdHRyLm1pbmxlbmd0aF09XCJtaW5MZW5ndGhcIiBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICAgIFthdHRyLm1heF09XCJtYXhcIiBbYXR0ci5wYXR0ZXJuXT1cInBhdHRlcm5cIiAoYmx1cik9XCJvbkJsdXIoJGV2ZW50LnRhcmdldC52YWx1ZSlcIiAvPlxuICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpY29uJylcIiAqbmdJZj1cImljb24gJiYgIWVycm9yXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbaWNvbl09XCJpY29uXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cImV4aXN0cyhlcnJvcilcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UnKVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UtLWljb24nKVwiPlxuICAgICAgICA8bmFzLWljb24gdHlwZT1cIm5lZ2F0aXZlXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlLS10ZXh0JylcIiBbaWRdPVwiZXJyb3JJZFwiICpuZ0lmPVwiZXhpc3RzKGVycm9yKSAmJiBlcnJvck1lc3NhZ2VcIj57eyBlcnJvck1lc3NhZ2UgfX1cbiAgICAgIDwvcD5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpbmZvJylcIiAqbmdJZj1cImluZm9cIj57eyBpbmZvIH19PC9zcGFuPlxuICA8L2xhYmVsPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7OztBQUV0RSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZjs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGdCQUFnQjtJQVlsRDs7OztPQUlHO0lBQ0gsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFZRDs7OztPQUlHO0lBQ0gsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLE1B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QUFLO2dCQVdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0csR0FBRztzQkFBWCxLQUFLO2dCQVNHLEdBQUc7c0JBQVgsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBT0csT0FBTztzQkFBZixLQUFLO2dCQTJCTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgTm9yd2VnaWFuIEFpciBTaHV0dGxlLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE5vcndlZ2lhbiBJbnB1dCBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgTmV3IGRlc2lnblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudCBleHRlbmRzIE5hc0NvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdpbnB1dFJlYWN0aXZlJykgaW5wdXRSZWFjdGl2ZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0Tm90UmVhY3RpdmUnKSBpbnB1dE5vdFJlYWN0aXZlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY29udHJvbHMnKSBjb250cm9sczogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBnZXQgbW9kZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWxWYWx1ZTtcbiAgfVxuICBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSAhIXZhbHVlO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsVmFsdWUpO1xuICB9XG5cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KGZhbHNlKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgaW4gYW4gZXJyb3Igc3RhdGUuXG4gICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBkaXNhYmxlZCBvciBubywgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkVmFsdWU7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gdmFsdWU7XG5cbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlucHV0SWQpO1xuXG4gICAgaWYgKCFpbnB1dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5leGlzdHModmFsdWUpKSB7XG4gICAgICBpbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCBzcGFjZWxlc3Mgc3R5bGluZyAocmVtb3Zpbmcgc3BhY2luZylcbiAgICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBsYWJlbCBvZiB0aGUgaW5wdXRcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyB0aGUgbGFiZWwgb2YgdGhlIGlucHV0IGluc2lkZSB0aGUgd2hpdGUgYXJlYVxuICAgKi9cbiAgQElucHV0KCkgbGFiZWxJbnNpZGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIGVycm9yIG9jY3VyLiBFcnJvciBhdHRyaWJ1dGUgbmVlZCB0byBiZSB0cnVlLlxuICAgKi9cbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBwbGFjZWhvbGRlciB0ZXh0IGluIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIG1pbiBsZW5ndGggb24gdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50LlxuICAgKi9cbiAgQElucHV0KCkgbWluTGVuZ3RoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBtYXggbGVuZ3RoIG9uIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluZm8gdGV4dCByZWxhdGVkIHRvIHRoZSBpbnB1dFxuICAgKi9cbiAgQElucHV0KCkgaW5mbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGljb24gb24gdGhlIGlucHV0XG4gICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogSW5wdXQgdHlwZSBvZiB0aGUgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpIHR5cGUgPSAndGV4dCc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS5cbiAgICovXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFN0cmluZyB0byBzZXQgbmFtZSBvbiBuYXRpdmUgaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZVZhbHVlO1xuICB9XG4gIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubmFtZVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zZXROYW1lQXR0cmlidXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGFyaWEgZGVzY3JpYmVkYnkgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuXG4gICAqL1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtaW5wdXQgW25hc0Zvcm1Db250cm9sTmFtZV09XCIndXNlcm5hbWUnXCI+PC9uYXMtaW5wdXQ+XG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbbmFzRm9ybUdyb3VwXT1cImxvZ2luR3JvdXBcIj48L25hcy1pbnB1dD5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBtaW5pbXVtIHZhbHVlIHRvIGFjY2VwdCBmb3IgdGhpcyBpbnB1dC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbdHlwZV09XCInbnVtYmVyJ1wiIFttaW5dPVwiMFwiPjwvbmFzLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgbWluOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIG1heGltdW0gdmFsdWUgdG8gYWNjZXB0IGZvciB0aGlzIGlucHV0LlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLWlucHV0IFt0eXBlXT1cIidudW1iZXInXCIgW21heF09XCIxMFwiPjwvbmFzLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgbWF4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyBhIGxpbmUgYmVsb3cgdGhlIGlucHV0IGVsZW1lbnQuIERlZmF1bHQgdmFsdWUgaXMgdHJ1ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1pbnB1dCBbbGluZV09XCJmYWxzZVwiPjwvbmFzLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgbGluZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU3BlY2lmaWVzIGEgcmVndWxhciBleHByZXNzaW9uIHRoYXQgdGhlIGlucHV0IHZhbHVlIGlzIGNoZWNrZWQgYWdhaW5zdCBvbiBmb3JtIHN1Ym1pc3Npb25cbiAgICovXG4gIEBJbnB1dCgpIHBhdHRlcm46IHN0cmluZztcblxuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtaW5wdXQtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXQgZXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkXG4gICAgICA/IHRoaXMuaWQgKyAnX19lcnJvcidcbiAgICAgIDogYG5hcy1pbnB1dC0ke3RoaXMuY29tcG9uZW50SWR9X19lcnJvcmA7XG4gIH1cblxuICBwcml2YXRlIGNvbXBvbmVudElkOiBudW1iZXI7XG4gIHByaXZhdGUgbW9kZWxWYWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIGRpc2FibGVkVmFsdWU6IGJvb2xlYW47XG4gIHByaXZhdGUgbmFtZVZhbHVlOiBzdHJpbmc7XG4gIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1czogYm9vbGVhbjtcbiAgcHVibGljIHZhbGlkOiBib29sZWFuO1xuICBwdWJsaWMgbGFzdFdhc1RhYiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCduYXMtaW5wdXQnKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBlLmtleSA9PT0gJ1RhYic7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkID0gISF2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnB1dElkKTtcbiAgICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICAgIHRoaXMuc2V0TmFtZUF0dHJpYnV0ZSgpO1xuICB9XG5cbiAgbWFpbkNsYXNzKCk6IENsYXNzTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmdldENsYXNzKCcnLCBbXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuYWN0aXZlKSAmJiAnYWN0aXZlJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZm9jdXMpICYmICdmb2N1cycsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLnZhbGlkKSAmJiAndmFsaWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgIF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXROYW1lQXR0cmlidXRlKCkge1xuICAgIGlmICh0aGlzLm5hbWVWYWx1ZSkge1xuICAgICAgaWYgKCF0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSB8fCAhdGhpcy5uYXNGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5pbnB1dE5vdFJlYWN0aXZlPy5uYXRpdmVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgJ25hbWUnLFxuICAgICAgICAgIHRoaXMubmFtZVZhbHVlXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlucHV0UmVhY3RpdmU/Lm5hdGl2ZUVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnbmFtZScsIHRoaXMubmFtZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25CbHVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuZm9jdXMgPSBmYWxzZTtcbiAgICB0aGlzLmJsdXIuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBvbktleURvd24oKTogdm9pZCB7XG4gICAgdGhpcy5sYXN0V2FzVGFiID0gZmFsc2U7XG4gIH1cblxuICBzZXRBY3RpdmVJbnB1dChhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHsgICAgXG4gICAgaWYodGhpcy5leGlzdHModGhpcy5lcnJvcikgfHwgIHRoaXMuZXhpc3RzKHRoaXMuZGlzYWJsZWQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5mb2N1cyA9IHRoaXMubGFzdFdhc1RhYjtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlID0gYWN0aXZlO1xuICAgIHRoaXMuZm9jdXMgPSBhY3RpdmUgJiYgdGhpcy5sYXN0V2FzVGFiO1xuXG4gICAgdGhpcy5sYXN0V2FzVGFiID0gZmFsc2U7XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFuYXNGb3JtQ29udHJvbE5hbWU7IGVsc2UgcmVhY3RpdmVGb3JtXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwibWFpbkNsYXNzKClcIj5cbiAgICA8ZGl2ICNjb250cm9scyBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJywgZXhpc3RzKGxhYmVsSW5zaWRlKSAmJiAnbGFiZWwtaW5zaWRlJylcIiAoa2V5ZG93bik9XCJvbktleURvd24oKVwiXG4gICAgICAoZm9jdXNpbik9XCJzZXRBY3RpdmVJbnB1dCh0cnVlKVwiIChmb2N1c291dCk9XCJzZXRBY3RpdmVJbnB1dChmYWxzZSlcIj5cbiAgICAgIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGFiZWwnKVwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvcD5cbiAgICAgIDxpbnB1dCAjaW5wdXROb3RSZWFjdGl2ZSBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RleHQnKVwiIFthdHRyLmlkXT1cImlucHV0SWRcIiBbYXR0ci50eXBlXT1cInR5cGVcIiBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwiZXJyb3JcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbkxlbmd0aFwiIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbYXR0ci5taW5dPVwibWluXCIgW2F0dHIubWF4XT1cIm1heFwiXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwicGF0dGVyblwiIChibHVyKT1cIm9uQmx1cigkZXZlbnQudGFyZ2V0LnZhbHVlKVwiIFsobmdNb2RlbCldPVwibW9kZWxcIiAvPlxuICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCdpY29uJylcIiAqbmdJZj1cImljb24gJiYgIWVycm9yXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbaWNvbl09XCJpY29uXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cImV4aXN0cyhlcnJvcilcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UnKVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UtLWljb24nKVwiPlxuICAgICAgICA8bmFzLWljb24gdHlwZT1cIm5lZ2F0aXZlXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlLS10ZXh0JylcIiBbaWRdPVwiZXJyb3JJZFwiICpuZ0lmPVwiZXhpc3RzKGVycm9yKSAmJiBlcnJvck1lc3NhZ2VcIj4ge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICA8L3A+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5mbycpXCIgKm5nSWY9XCJpbmZvXCI+e3sgaW5mbyB9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwibWFpbkNsYXNzKClcIiBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgIDxkaXYgI2NvbnRyb2xzIFtuYXNDbGFzc109XCJnZXRDbGFzcygnY29udHJvbHMnLCBleGlzdHMobGFiZWxJbnNpZGUpICYmICdsYWJlbC1pbnNpZGUnKVwiIFxuICAgICAgKGZvY3VzaW4pPVwic2V0QWN0aXZlSW5wdXQodHJ1ZSlcIiAoZm9jdXNvdXQpPVwic2V0QWN0aXZlSW5wdXQoZmFsc2UpXCIgKGtleWRvd24pPVwib25LZXlEb3duKClcIj5cbiAgICAgIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGFiZWwnKVwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvcD5cbiAgICAgIDxpbnB1dCAjaW5wdXRSZWFjdGl2ZSBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3RleHQnKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLm5hbWVdPVwibmFtZVwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvclwiXG4gICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoXCIgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFthdHRyLm1pbl09XCJtaW5cIlxuICAgICAgICBbYXR0ci5tYXhdPVwibWF4XCIgW2F0dHIucGF0dGVybl09XCJwYXR0ZXJuXCIgKGJsdXIpPVwib25CbHVyKCRldmVudC50YXJnZXQudmFsdWUpXCIgLz5cbiAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCIgKm5nSWY9XCJpY29uICYmICFlcnJvclwiPlxuICAgICAgICA8bmFzLWljb24gW2ljb25dPVwiaWNvblwiPjwvbmFzLWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gKm5nSWY9XCJleGlzdHMoZXJyb3IpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlJylcIj5cbiAgICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlLS1pY29uJylcIj5cbiAgICAgICAgPG5hcy1pY29uIHR5cGU9XCJuZWdhdGl2ZVwiPjwvbmFzLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0tdGV4dCcpXCIgW2lkXT1cImVycm9ySWRcIiAqbmdJZj1cImV4aXN0cyhlcnJvcikgJiYgZXJyb3JNZXNzYWdlXCI+e3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICA8L3A+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5mbycpXCIgKm5nSWY9XCJpbmZvXCI+e3sgaW5mbyB9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+Il19
@@ -53,11 +53,11 @@ export class ListComponent extends NasComponentBase {
53
53
  }
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ListComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: ListComponent, selector: "nas-list", inputs: { markers: "markers", note: "note", positive: "positive", negative: "negative", goto: "goto", table: "table", spaceless: "spaceless", items: "items" }, usesInheritance: true, ngImport: i0, template: "<ul [nasClass]=\"mainClass()\">\n <ng-content></ng-content>\n</ul>\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}ul,ul li{list-style:none}.nas-list{margin-bottom:24px;margin-left:24px;padding-top:3px}.nas-list li{position:relative;display:inline-block;margin:0 36px 9px 0}.nas-list li:before{content:\"\";display:block;position:absolute;height:8px;width:8px;left:-18px;top:7px;margin:0 12px 6px 0;border-radius:50%;background-color:#15273f}@media (min-width: 640px){.nas-list li{display:block;margin:0 12px 9px 0}}.nas-list--markers{margin-left:0}.nas-list--markers li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2224px%22 height%3D%2224px%22 viewBox%3D%220 0 24 24%22 enable-background%3D%22new 0 0 24 24%22 xml%3Aspace%3D%22preserve%22%3E%3Ccircle fill%3D%22%23C3C3C3%22 cx%3D%2212%22 cy%3D%2212%22 r%3D%2210%22%2F%3E%3Cpolygon fill%3D%22%2315273f%22 points%3D%2218.5%2C9.8 16.4%2C7.7 11.5%2C12.6 8.8%2C10 6.7%2C12.1 9.4%2C14.7 11.5%2C16.8 13.6%2C14.7 %22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--markers li:before{display:none}@media (min-width: 640px){.nas-list--markers li{display:block}}.nas-list--positive{margin-left:0}.nas-list--positive li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM11.5479 4.5L13.2001 6.11168L6.6273 12.5L2.80013 8.76667L4.44035 7.16667L6.6273 9.3L11.5479 4.5Z%22 fill%3D%22%23238E00%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--positive li:before{display:none}@media (min-width: 640px){.nas-list--positive li{display:block}}.nas-list--negative{margin-left:0}.nas-list--negative li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath id%3D%22Exclude%22 fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM10.3846 4.58008L12 6.19546L9.61539 8.58008L12 10.9647L10.3846 12.5801L8 10.1955L5.61538 12.5801L4 10.9647L6.38461 8.58008L4 6.19546L5.61538 4.58008L8 6.96469L10.3846 4.58008Z%22 fill%3D%22%23B12A0B%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--negative li:before{display:none}@media (min-width: 640px){.nas-list--negative li{display:block}}.nas-list--goto{margin-left:0}.nas-list--goto li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2224px%22 height%3D%2224px%22 viewBox%3D%220 0 24 24%22 enable-background%3D%22new 0 0 24 24%22 xml%3Aspace%3D%22preserve%22%3E%3Cg%3E%09%3Cpath fill%3D%22%2315273f%22 d%3D%22M20.4%2C10.5L13.1%2C3H8.9l8.9%2C9l-8.9%2C9h4.2l7.2-7.5c0.4-0.4%2C0.6-0.9%2C0.6-1.4C21.1%2C11.4%2C20.8%2C10.9%2C20.4%2C10.5z%22%09%09%2F%3E%09%3Crect x%3D%223%22 y%3D%2210.3%22 fill%3D%22%2315273f%22 width%3D%2216.1%22 height%3D%223.4%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--goto li:before{display:none}@media (min-width: 640px){.nas-list--goto li{display:block}}.nas-list--spaceless{margin-bottom:0}.nas-list--table{margin-left:0}.nas-list--table li{display:block;border-top:2px solid #E9E7E4;padding:12px 0;margin:0}.nas-list--table li:last-child{border-bottom:2px solid #E9E7E4}.nas-list--table li:before{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: ListComponent, selector: "nas-list", inputs: { markers: "markers", note: "note", positive: "positive", negative: "negative", goto: "goto", table: "table", spaceless: "spaceless", items: "items" }, usesInheritance: true, ngImport: i0, template: "<ul [nasClass]=\"mainClass()\">\n <ng-content></ng-content>\n</ul>\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}ul,ul li{list-style:none}.nas-list{margin-bottom:24px;margin-left:24px;padding-top:3px}.nas-list li{position:relative;display:inline-block;margin:0 36px 9px 0}.nas-list li:before{content:\"\";display:block;position:absolute;height:8px;width:8px;left:-18px;top:7px;margin:0 12px 6px 0;border-radius:50%;background-color:#15273f}@media (min-width: 640px){.nas-list li{display:block;margin:0 12px 9px 0}}.nas-list--markers{margin-left:0}.nas-list--markers li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2224px%22 height%3D%2224px%22 viewBox%3D%220 0 24 24%22 enable-background%3D%22new 0 0 24 24%22 xml%3Aspace%3D%22preserve%22%3E%3Ccircle fill%3D%22%23C3C3C3%22 cx%3D%2212%22 cy%3D%2212%22 r%3D%2210%22%2F%3E%3Cpolygon fill%3D%22%2315273f%22 points%3D%2218.5%2C9.8 16.4%2C7.7 11.5%2C12.6 8.8%2C10 6.7%2C12.1 9.4%2C14.7 11.5%2C16.8 13.6%2C14.7 %22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--markers li:before{display:none}@media (min-width: 640px){.nas-list--markers li{display:block}}.nas-list--positive{margin-left:0}.nas-list--positive li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM11.5479 4.5L13.2001 6.11168L6.6273 12.5L2.80013 8.76667L4.44035 7.16667L6.6273 9.3L11.5479 4.5Z%22 fill%3D%22%23238E00%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--positive li:before{display:none}@media (min-width: 640px){.nas-list--positive li{display:block}}.nas-list--negative{margin-left:0}.nas-list--negative li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath id%3D%22Exclude%22 fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM10.3846 4.58008L12 6.19546L9.61539 8.58008L12 10.9647L10.3846 12.5801L8 10.1955L5.61538 12.5801L4 10.9647L6.38461 8.58008L4 6.19546L5.61538 4.58008L8 6.96469L10.3846 4.58008Z%22 fill%3D%22%23B12A0B%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--negative li:before{display:none}@media (min-width: 640px){.nas-list--negative li{display:block}}.nas-list--goto{margin-left:0}.nas-list--goto li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M15.2423 10.5759L4 10.5759L4 13.4222L15.2423 13.4222C12.9473 15.1731 11.3607 17.0153 10.4372 19L13.9654 19C15.2895 16.7588 17.3735 14.6362 20 12.8619L20 11.1362C17.3735 9.36191 15.2897 7.23926 13.9654 5L10.4372 5C11.3607 6.98248 12.9473 8.82686 15.2423 10.5759Z%22 fill%3D%22%2315273F%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--goto li:before{display:none}@media (min-width: 640px){.nas-list--goto li{display:block}}.nas-list--spaceless{margin-bottom:0}.nas-list--table{margin-left:0}.nas-list--table li{display:block;border-top:2px solid #E9E7E4;padding:12px 0;margin:0}.nas-list--table li:last-child{border-bottom:2px solid #E9E7E4}.nas-list--table li:before{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }], encapsulation: i0.ViewEncapsulation.None }); }
57
57
  }
58
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ListComponent, decorators: [{
59
59
  type: Component,
60
- args: [{ selector: 'nas-list', encapsulation: ViewEncapsulation.None, template: "<ul [nasClass]=\"mainClass()\">\n <ng-content></ng-content>\n</ul>\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}ul,ul li{list-style:none}.nas-list{margin-bottom:24px;margin-left:24px;padding-top:3px}.nas-list li{position:relative;display:inline-block;margin:0 36px 9px 0}.nas-list li:before{content:\"\";display:block;position:absolute;height:8px;width:8px;left:-18px;top:7px;margin:0 12px 6px 0;border-radius:50%;background-color:#15273f}@media (min-width: 640px){.nas-list li{display:block;margin:0 12px 9px 0}}.nas-list--markers{margin-left:0}.nas-list--markers li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2224px%22 height%3D%2224px%22 viewBox%3D%220 0 24 24%22 enable-background%3D%22new 0 0 24 24%22 xml%3Aspace%3D%22preserve%22%3E%3Ccircle fill%3D%22%23C3C3C3%22 cx%3D%2212%22 cy%3D%2212%22 r%3D%2210%22%2F%3E%3Cpolygon fill%3D%22%2315273f%22 points%3D%2218.5%2C9.8 16.4%2C7.7 11.5%2C12.6 8.8%2C10 6.7%2C12.1 9.4%2C14.7 11.5%2C16.8 13.6%2C14.7 %22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--markers li:before{display:none}@media (min-width: 640px){.nas-list--markers li{display:block}}.nas-list--positive{margin-left:0}.nas-list--positive li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM11.5479 4.5L13.2001 6.11168L6.6273 12.5L2.80013 8.76667L4.44035 7.16667L6.6273 9.3L11.5479 4.5Z%22 fill%3D%22%23238E00%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--positive li:before{display:none}@media (min-width: 640px){.nas-list--positive li{display:block}}.nas-list--negative{margin-left:0}.nas-list--negative li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath id%3D%22Exclude%22 fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM10.3846 4.58008L12 6.19546L9.61539 8.58008L12 10.9647L10.3846 12.5801L8 10.1955L5.61538 12.5801L4 10.9647L6.38461 8.58008L4 6.19546L5.61538 4.58008L8 6.96469L10.3846 4.58008Z%22 fill%3D%22%23B12A0B%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--negative li:before{display:none}@media (min-width: 640px){.nas-list--negative li{display:block}}.nas-list--goto{margin-left:0}.nas-list--goto li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.1.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2224px%22 height%3D%2224px%22 viewBox%3D%220 0 24 24%22 enable-background%3D%22new 0 0 24 24%22 xml%3Aspace%3D%22preserve%22%3E%3Cg%3E%09%3Cpath fill%3D%22%2315273f%22 d%3D%22M20.4%2C10.5L13.1%2C3H8.9l8.9%2C9l-8.9%2C9h4.2l7.2-7.5c0.4-0.4%2C0.6-0.9%2C0.6-1.4C21.1%2C11.4%2C20.8%2C10.9%2C20.4%2C10.5z%22%09%09%2F%3E%09%3Crect x%3D%223%22 y%3D%2210.3%22 fill%3D%22%2315273f%22 width%3D%2216.1%22 height%3D%223.4%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--goto li:before{display:none}@media (min-width: 640px){.nas-list--goto li{display:block}}.nas-list--spaceless{margin-bottom:0}.nas-list--table{margin-left:0}.nas-list--table li{display:block;border-top:2px solid #E9E7E4;padding:12px 0;margin:0}.nas-list--table li:last-child{border-bottom:2px solid #E9E7E4}.nas-list--table li:before{display:none}\n"] }]
60
+ args: [{ selector: 'nas-list', encapsulation: ViewEncapsulation.None, template: "<ul [nasClass]=\"mainClass()\">\n <ng-content></ng-content>\n</ul>\n", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}ul,ul li{list-style:none}.nas-list{margin-bottom:24px;margin-left:24px;padding-top:3px}.nas-list li{position:relative;display:inline-block;margin:0 36px 9px 0}.nas-list li:before{content:\"\";display:block;position:absolute;height:8px;width:8px;left:-18px;top:7px;margin:0 12px 6px 0;border-radius:50%;background-color:#15273f}@media (min-width: 640px){.nas-list li{display:block;margin:0 12px 9px 0}}.nas-list--markers{margin-left:0}.nas-list--markers li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22utf-8%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 18.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%2224px%22 height%3D%2224px%22 viewBox%3D%220 0 24 24%22 enable-background%3D%22new 0 0 24 24%22 xml%3Aspace%3D%22preserve%22%3E%3Ccircle fill%3D%22%23C3C3C3%22 cx%3D%2212%22 cy%3D%2212%22 r%3D%2210%22%2F%3E%3Cpolygon fill%3D%22%2315273f%22 points%3D%2218.5%2C9.8 16.4%2C7.7 11.5%2C12.6 8.8%2C10 6.7%2C12.1 9.4%2C14.7 11.5%2C16.8 13.6%2C14.7 %22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--markers li:before{display:none}@media (min-width: 640px){.nas-list--markers li{display:block}}.nas-list--positive{margin-left:0}.nas-list--positive li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM11.5479 4.5L13.2001 6.11168L6.6273 12.5L2.80013 8.76667L4.44035 7.16667L6.6273 9.3L11.5479 4.5Z%22 fill%3D%22%23238E00%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--positive li:before{display:none}@media (min-width: 640px){.nas-list--positive li{display:block}}.nas-list--negative{margin-left:0}.nas-list--negative li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22%3E%09%3Cpath id%3D%22Exclude%22 fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M16 8.5C16 12.9183 12.4183 16.5 8 16.5C3.58172 16.5 0 12.9183 0 8.5C0 4.08172 3.58172 0.5 8 0.5C12.4183 0.5 16 4.08172 16 8.5ZM10.3846 4.58008L12 6.19546L9.61539 8.58008L12 10.9647L10.3846 12.5801L8 10.1955L5.61538 12.5801L4 10.9647L6.38461 8.58008L4 6.19546L5.61538 4.58008L8 6.96469L10.3846 4.58008Z%22 fill%3D%22%23B12A0B%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--negative li:before{display:none}@media (min-width: 640px){.nas-list--negative li{display:block}}.nas-list--goto{margin-left:0}.nas-list--goto li{display:inline-block;padding-left:30px;margin:0 12px 9px 0;background:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M15.2423 10.5759L4 10.5759L4 13.4222L15.2423 13.4222C12.9473 15.1731 11.3607 17.0153 10.4372 19L13.9654 19C15.2895 16.7588 17.3735 14.6362 20 12.8619L20 11.1362C17.3735 9.36191 15.2897 7.23926 13.9654 5L10.4372 5C11.3607 6.98248 12.9473 8.82686 15.2423 10.5759Z%22 fill%3D%22%2315273F%22%2F%3E%3C%2Fsvg%3E\") 0 -1px no-repeat}.nas-list--goto li:before{display:none}@media (min-width: 640px){.nas-list--goto li{display:block}}.nas-list--spaceless{margin-bottom:0}.nas-list--table{margin-left:0}.nas-list--table li{display:block;border-top:2px solid #E9E7E4;padding:12px 0;margin:0}.nas-list--table li:last-child{border-bottom:2px solid #E9E7E4}.nas-list--table li:before{display:none}\n"] }]
61
61
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { markers: [{
62
62
  type: Input
63
63
  }], note: [{
@@ -46,7 +46,7 @@ export class WalletComponent extends NasComponentBase {
46
46
  return this.getCurrentHref().includes(this.walletModel?.urls?.myTravelsUrl?.href) ? true : false;
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: WalletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: WalletComponent, selector: "nas-wallet", inputs: { walletModel: "walletModel" }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"getClass('')\">\n <div *ngIf=\"this.showContent\" [nasClass]=\"getClass('backdrop')\" (click)=\"onClickToggleContent()\"></div>\n <div [nasClass]=\"getClass('header')\">\n <div *ngIf=\"walletModel?.rewardNumber\" [nasClass]=\"getClass('header-points')\">\n <div *ngIf=\"pointsBalance >= 0 && (walletModel?.cashpointsBalance != null || walletModel?.spennBalance != null); else showTag\">\n <p>{{pointsBalance}}</p>\n </div>\n <ng-template #showTag>\n <nas-tag [nasClass]=\"getClass('tag--header')\" neutral [text]=\"'--'\"></nas-tag>\n </ng-template>\n <div *ngIf=\"!spennAndCashpointUnavailable\" [nasClass]=\"getClass('points-logo', icon)\">\n <nas-icon [nasClass]=\"getClass('icon')\" [type]=\"icon\"></nas-icon>\n </div>\n </div>\n </div>\n <button [nasClass]=\"getClass('dropdown')\" (click)=\"onClickToggleContent()\">\n <div [nasClass]=\"getClass('dropdown-icon', this.showContent && 'rotate')\">\n <nas-icon [icon]=\"'arrow-right'\" [type]=\"'chevron-down'\"></nas-icon>\n </div>\n </button>\n <div *ngIf=\"this.showContent\" [nasClass]=\"getClass('content')\">\n <div *ngIf=\"walletModel?.rewardNumber\">\n <div [nasClass]=\"getClass('title')\">{{walletModel?.texts?.rewardPoints}}</div>\n <div *ngIf=\"!showNotAvailableMessage; else showAlert\">\n <div *ngIf=\"walletModel?.spennEnabled\" [nasClass]=\"getClass('spenn')\">\n <nas-icon [type]=\"'spenn'\"></nas-icon>\n <div *ngIf=\"walletModel?.spennBalance != null; else showTag\">\n <p>{{walletModel?.spennBalance}}</p>\n </div>\n </div>\n <div [nasClass]=\"getClass('cashpoints')\">\n <nas-icon [type]=\"'cashpoints-logo'\"></nas-icon>\n <div *ngIf=\"walletModel?.cashpointsBalance != null; else showTag\">\n <p>{{walletModel?.cashpointsBalance}}</p> \n </div>\n </div>\n <ng-template #showTag>\n <nas-tag [nasClass]=\"getClass('tag')\" neutral [text]=\"walletModel?.texts?.notAvailable\"></nas-tag>\n </ng-template>\n </div>\n <ng-template #showAlert>\n <div [nasClass]=\"getClass('info-box')\">\n <nas-alert neutral [text]=\"walletModel?.texts?.notAvailableMessage\"></nas-alert>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('info')\">{{pointsDescription}}</div>\n <div [nasClass]=\"getClass('reward')\">{{walletModel?.texts?.rewardNumber}} {{walletModel?.rewardNumber}}</div>\n </div>\n <div [nasClass]=\"getClass('button')\">\n <nas-button *ngIf=\"!myTravelsPage() && walletModel?.urls?.myTravelsUrl?.href\" \n light\n block\n [href]=\"walletModel?.urls?.myTravelsUrl?.href\" \n [nasClass]=\"getClass('button--mytravel')\">\n {{walletModel?.urls?.myTravelsUrl.text}}\n </nas-button>\n <nas-button *ngIf=\"walletModel?.urls?.signOutUrl?.href\" \n buttonlink \n block \n [href]=\"walletModel?.urls?.signOutUrl?.href\">\n {{walletModel?.urls?.signOutUrl?.text}}\n </nas-button>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-wallet{display:inline-flex;position:unset;background-color:#fff}@media (min-width: 640px){.nas-wallet{position:relative;margin-left:16px}}.nas-wallet__header{display:flex;align-items:center}.nas-wallet__header-points,.nas-wallet__icon{display:none}@media (min-width: 640px){.nas-wallet__header-points,.nas-wallet__icon{display:flex}}.nas-wallet__points-logo{padding-top:0}.nas-wallet__points-logo--spenn{padding-top:5px}.nas-wallet__profile-name{padding-right:24px;color:#15273f}.nas-wallet__dropdown{padding:0 12px 0 16px}@media (min-width: 640px){.nas-wallet__dropdown{padding:0 16px}}.nas-wallet__dropdown-icon{transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-wallet__dropdown-icon--rotate{transform:rotate(180deg)}.nas-wallet__content{z-index:50;background:linear-gradient(180deg,#fff,#f8f8f8);box-shadow:0 0 14px #00325126;border-top:2px solid #15273F;position:absolute;padding:16px;top:70px;left:0}@media (min-width: 640px){.nas-wallet__content{width:334px;right:0;top:48px;left:unset}}.nas-wallet__profile-user{display:none;font-size:16px;color:#15273f;padding-bottom:16px}@media (min-width: 640px){.nas-wallet__profile-user{display:block}}.nas-wallet__profile-icon{transform:scale(.75)}.nas-wallet__title{font-weight:700;font-size:18px;line-height:24px;color:#15273f;padding-bottom:16px}.nas-wallet__spenn{display:flex;justify-content:space-between}.nas-wallet__cashpoints{display:flex;justify-content:space-between;padding-bottom:16px}.nas-wallet__info{padding-bottom:12px;border-bottom:solid 1px #E9E7E4}.nas-wallet__reward{padding:12px 0;text-align:center}.nas-wallet__info-box{margin-bottom:12px}.nas-wallet__button{display:flex;flex-direction:column}.nas-wallet__button--mytravel{margin-bottom:16px}.nas-wallet__tag--header{margin-right:12px}.nas-wallet__tag--wallet{padding-bottom:6px}.nas-wallet__backdrop{z-index:10;display:block;position:fixed;top:70px;left:0;width:100%;height:100%;color:transparent;background:var(--Color-UI-Overlay-40, rgba(21, 39, 63, .4));opacity:.2;animation:fade-in .3s ease-out both}.nas-wallet p{margin:0;padding-right:8px;color:#15273f;font-weight:700;font-size:21px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i4.ButtonComponent, selector: "nas-button", inputs: ["primary", "secondary", "link", "light", "large", "block", "flex", "compact", "right", "spaceless", "href", "trackingvalue", "canContinueOnDisabled", "disabled", "type", "cssClass", "ariaLabel", "cssStyle", "tabindex", "overrideBaseCssClass", "useRouterLink", "id", "target", "icon", "iconLeft", "iconType", "buttonlink"], outputs: ["clickChange", "focusOnNext"] }, { kind: "component", type: i5.TagComponent, selector: "nas-tag", inputs: ["info", "warning", "error", "success", "neutral", "text", "icon", "iconType"] }, { kind: "component", type: i6.AlertComponent, selector: "nas-alert", inputs: ["timestamp", "title", "info", "warning", "error", "success", "neutral", "text", "show", "removable", "removeIcon", "trustTextHtml", "allowAutoScroll", "server", "alert"], outputs: ["showChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: WalletComponent, selector: "nas-wallet", inputs: { walletModel: "walletModel" }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"getClass('')\">\n <div *ngIf=\"this.showContent\" [nasClass]=\"getClass('backdrop')\" (click)=\"onClickToggleContent()\"></div>\n <div [nasClass]=\"getClass('header')\">\n <div *ngIf=\"walletModel?.rewardNumber\" [nasClass]=\"getClass('header-points')\">\n <div *ngIf=\"pointsBalance >= 0 && (walletModel?.cashpointsBalance != null || walletModel?.spennBalance != null); else showTag\">\n <p>{{pointsBalance}}</p>\n </div>\n <ng-template #showTag>\n <nas-tag [nasClass]=\"getClass('tag--header')\" neutral [text]=\"'--'\"></nas-tag>\n </ng-template>\n <div *ngIf=\"!spennAndCashpointUnavailable\" [nasClass]=\"getClass('points-logo', icon)\">\n <nas-icon [nasClass]=\"getClass('icon')\" [type]=\"icon\"></nas-icon>\n </div>\n </div>\n </div>\n <button [nasClass]=\"getClass('dropdown')\" (click)=\"onClickToggleContent()\">\n <div [nasClass]=\"getClass('dropdown-icon', this.showContent && 'rotate')\">\n <nas-icon [icon]=\"'arrow-right'\" [type]=\"'chevron-down'\"></nas-icon>\n </div>\n </button>\n <div *ngIf=\"this.showContent\" [nasClass]=\"getClass('content')\">\n <div *ngIf=\"walletModel?.rewardNumber\">\n <div [nasClass]=\"getClass('title')\">{{walletModel?.texts?.rewardPoints}}</div>\n <div *ngIf=\"!showNotAvailableMessage; else showAlert\">\n <div *ngIf=\"walletModel?.spennEnabled\" [nasClass]=\"getClass('spenn')\">\n <nas-icon [type]=\"'spenn'\"></nas-icon>\n <div *ngIf=\"walletModel?.spennBalance != null; else showTag\">\n <p>{{walletModel?.spennBalance}}</p>\n </div>\n </div>\n <div [nasClass]=\"getClass('cashpoints')\">\n <nas-icon [type]=\"'cashpoints-logo'\"></nas-icon>\n <div *ngIf=\"walletModel?.cashpointsBalance != null; else showTag\">\n <p>{{walletModel?.cashpointsBalance}}</p> \n </div>\n </div>\n <ng-template #showTag>\n <nas-tag [nasClass]=\"getClass('tag')\" neutral [text]=\"walletModel?.texts?.notAvailable\"></nas-tag>\n </ng-template>\n </div>\n <ng-template #showAlert>\n <div [nasClass]=\"getClass('info-box')\">\n <nas-alert neutral [text]=\"walletModel?.texts?.notAvailableMessage\"></nas-alert>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('info')\">{{pointsDescription}}</div>\n <div [nasClass]=\"getClass('reward')\">{{walletModel?.texts?.rewardNumber}} {{walletModel?.rewardNumber}}</div>\n </div>\n <div [nasClass]=\"getClass('button')\">\n <nas-button *ngIf=\"!myTravelsPage() && walletModel?.urls?.myTravelsUrl?.href\" \n light\n block\n [href]=\"walletModel?.urls?.myTravelsUrl?.href\" \n [nasClass]=\"getClass('button--mytravel')\">\n {{walletModel?.urls?.myTravelsUrl.text}}\n </nas-button>\n <nas-button *ngIf=\"walletModel?.urls?.signOutUrl?.href\" \n buttonlink \n block \n [href]=\"walletModel?.urls?.signOutUrl?.href\">\n {{walletModel?.urls?.signOutUrl?.text}}\n </nas-button>\n </div>\n </div>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-wallet{display:inline-flex;position:unset;background-color:#fff}@media (min-width: 640px){.nas-wallet{position:relative;margin-left:16px}}.nas-wallet__header{display:flex;align-items:center}.nas-wallet__header-points,.nas-wallet__icon{display:none}@media (min-width: 640px){.nas-wallet__header-points,.nas-wallet__icon{display:flex}}.nas-wallet__points-logo{padding-top:0}.nas-wallet__points-logo--spenn{padding-top:5px}.nas-wallet__profile-name{padding-right:24px;color:#15273f}.nas-wallet__dropdown{padding:0 12px 0 16px}@media (min-width: 640px){.nas-wallet__dropdown{padding:0 16px}}.nas-wallet__dropdown-icon{transition:transform .2s cubic-bezier(0,0,.1,1);transform-origin:45% 55%}.nas-wallet__dropdown-icon--rotate{transform:rotate(180deg)}.nas-wallet__content{z-index:50;background:linear-gradient(180deg,#fff,#f8f8f8);box-shadow:0 0 14px #00325126;border-top:2px solid #15273F;position:absolute;padding:16px;top:70px;left:0}@media (min-width: 640px){.nas-wallet__content{width:334px;right:0;top:48px;left:unset}}.nas-wallet__profile-user{display:none;font-size:16px;color:#15273f;padding-bottom:16px}@media (min-width: 640px){.nas-wallet__profile-user{display:block}}.nas-wallet__profile-icon{transform:scale(.75)}.nas-wallet__title{font-weight:700;font-size:18px;line-height:24px;color:#15273f;padding-bottom:16px}.nas-wallet__spenn{display:flex;justify-content:space-between}.nas-wallet__cashpoints{display:flex;justify-content:space-between;padding-bottom:16px}.nas-wallet__info{padding-bottom:12px;border-bottom:solid 1px #E9E7E4}.nas-wallet__reward{padding:12px 0;text-align:center}.nas-wallet__info-box{margin-bottom:12px}.nas-wallet__button{display:flex;flex-direction:column}.nas-wallet__button--mytravel{margin-bottom:16px}.nas-wallet__tag--header{margin-right:12px}.nas-wallet__tag--wallet{padding-bottom:6px}.nas-wallet__backdrop{z-index:10;display:block;position:fixed;top:70px;left:0;width:100%;height:100%;color:transparent;background:var(--Color-UI-Overlay-40, rgba(21, 39, 63, .4));opacity:.2;animation:fade-in .3s ease-out both}.nas-wallet p{margin:0;padding-right:8px;color:#15273f;font-weight:700;font-size:21px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i3.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i4.ButtonComponent, selector: "nas-button", inputs: ["primary", "secondary", "link", "light", "large", "block", "flex", "compact", "right", "spaceless", "href", "trackingvalue", "canContinueOnDisabled", "disabled", "type", "cssClass", "ariaLabel", "cssStyle", "tabindex", "overrideBaseCssClass", "useRouterLink", "id", "target", "icon", "iconLeft", "iconType", "buttonlink"], outputs: ["clickChange", "focusOnNext"] }, { kind: "component", type: i5.TagComponent, selector: "nas-tag", inputs: ["info", "warning", "error", "success", "neutral", "text", "icon", "iconType"] }, { kind: "component", type: i6.AlertComponent, selector: "nas-alert", inputs: ["timestamp", "title", "info", "warning", "error", "success", "neutral", "text", "show", "removable", "removeIcon", "trustTextHtml", "allowAutoScroll", "server", "correlation", "alert"], outputs: ["showChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: WalletComponent, decorators: [{
52
52
  type: Component,
@@ -2,7 +2,7 @@
2
2
  * @license
3
3
  * Copyright Norwegian Air Shuttle. All Rights Reserved.
4
4
  */
5
- import { Component, Input, Output, EventEmitter } from '@angular/core';
5
+ import { Component, Input, Output, EventEmitter, HostListener } from '@angular/core';
6
6
  import { NasComponentBase } from '../../core/base/nas-component.base';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
@@ -12,6 +12,7 @@ import * as i4 from "../select/option/option.component";
12
12
  import * as i5 from "../select/optgroup/optgroup.component";
13
13
  import * as i6 from "@angular/forms";
14
14
  import * as i7 from "../icon/icon.component";
15
+ let nextId = 0;
15
16
  /**
16
17
  * @description
17
18
  * Norwegian Phone number Component | Form Controls | New design
@@ -22,6 +23,7 @@ export class PhoneNumberComponent extends NasComponentBase {
22
23
  }
23
24
  set model(value) {
24
25
  this.phoneNumber = value;
26
+ this.valid = !!value;
25
27
  this.modelChange.emit(this.phoneNumber);
26
28
  }
27
29
  /**
@@ -41,6 +43,9 @@ export class PhoneNumberComponent extends NasComponentBase {
41
43
  this.selectedValue = option;
42
44
  this.selectedChange.emit(this.selectedValue);
43
45
  }
46
+ get inputId() {
47
+ return this.id ? `${this.id}__number` : `nas-phone-number-${this.componentId}__number`;
48
+ }
44
49
  constructor() {
45
50
  super('nas-phone-number');
46
51
  /**
@@ -67,21 +72,52 @@ export class PhoneNumberComponent extends NasComponentBase {
67
72
  * <nas-phone-number (selectedChange)="onSelectedChange($event)"></nas-phone-number>
68
73
  */
69
74
  this.selectedChange = new EventEmitter();
75
+ this.componentId = nextId++;
76
+ }
77
+ onKeydown(e) {
78
+ this.lastWasTab = e.key === 'Tab';
79
+ }
80
+ ngOnInit() {
81
+ if (this.nasFormGroup && this.nasFormControlName) {
82
+ const formControl = this.nasFormGroup.get(this.nasFormControlName);
83
+ formControl.valueChanges.subscribe(value => {
84
+ this.valid = !!value;
85
+ });
86
+ }
87
+ }
88
+ ngAfterViewInit() {
89
+ if (this.exists(this.disabled)) {
90
+ const inputElement = document.getElementById(this.inputId);
91
+ inputElement.setAttribute('disabled', 'disabled');
92
+ }
70
93
  }
71
94
  mainClass() {
72
- const { error, disabled, spaceless } = this;
95
+ const { error, disabled, spaceless, active, valid, focus } = this;
73
96
  return this.getClass('', [
74
97
  this.exists(this.error) && 'error',
75
98
  this.exists(this.disabled) && 'disabled',
76
- this.exists(this.spaceless) && 'spaceless'
99
+ this.exists(this.spaceless) && 'spaceless',
100
+ this.active && 'active',
101
+ this.valid && 'valid',
102
+ this.focus && 'focus'
77
103
  ]);
78
104
  }
105
+ setActiveOnFocus(active) {
106
+ if (this.exists(this.error) || this.exists(this.disabled)) {
107
+ this.active = false;
108
+ this.focus = this.lastWasTab;
109
+ return;
110
+ }
111
+ this.active = active;
112
+ this.focus = active && this.lastWasTab;
113
+ this.lastWasTab = false;
114
+ }
79
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: PhoneNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
80
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: PhoneNumberComponent, selector: "nas-phone-number", inputs: { options: "options", preferredOptions: "preferredOptions", prefixCountryCode: "prefixCountryCode", label: "label", optionsLabel: "optionsLabel", preferredOptionsLabel: "preferredOptionsLabel", inputLabel: "inputLabel", placeholder: "placeholder", id: "id", type: "type", error: "error", disabled: "disabled", spaceless: "spaceless", errorMessage: "errorMessage", info: "info", icon: "icon", readonly: "readonly", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], required: "required", nasFormControlName: "nasFormControlName", nasFormControlNamePrefix: "nasFormControlNamePrefix", nasFormGroup: "nasFormGroup", model: "model", cssClass: "cssClass", selectedValue: "selectedValue", selected: "selected" }, outputs: { modelChange: "modelChange", selectedChange: "selectedChange" }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"id\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" />\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"id\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #15273F;background-color:#fff}.nas-phone-number__text[disabled]{background-color:#e9e7e4;border:0}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{opacity:.5}.nas-phone-number--spaceless{margin-bottom:0}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;background-color:#fff;line-height:24px;border:2px solid #15273F;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.SelectComponent, selector: "nas-select", inputs: ["id", "inline", "label", "block", "spaceless", "stretch", "compact", "simple", "light", "fill", "error", "errorMessage", "disabled", "autogrow", "cssClass", "nasFormControlName", "nasFormGroup", "options", "selectedValue", "selected"], outputs: ["selectedChange", "keyDownEvent"] }, { kind: "component", type: i4.OptionComponent, selector: "nas-option", inputs: ["option"] }, { kind: "component", type: i5.OptgroupComponent, selector: "nas-optgroup", inputs: ["label"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: PhoneNumberComponent, selector: "nas-phone-number", inputs: { options: "options", preferredOptions: "preferredOptions", prefixCountryCode: "prefixCountryCode", label: "label", optionsLabel: "optionsLabel", preferredOptionsLabel: "preferredOptionsLabel", inputLabel: "inputLabel", placeholder: "placeholder", id: "id", type: "type", error: "error", disabled: "disabled", spaceless: "spaceless", errorMessage: "errorMessage", info: "info", icon: "icon", readonly: "readonly", ariaDescribedby: ["aria-describedby", "ariaDescribedby"], required: "required", nasFormControlName: "nasFormControlName", nasFormControlNamePrefix: "nasFormControlNamePrefix", nasFormGroup: "nasFormGroup", model: "model", cssClass: "cssClass", selectedValue: "selectedValue", selected: "selected" }, outputs: { modelChange: "modelChange", selectedChange: "selectedChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, usesInheritance: true, ngImport: i0, template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "component", type: i3.SelectComponent, selector: "nas-select", inputs: ["id", "inline", "label", "block", "spaceless", "stretch", "compact", "simple", "light", "fill", "error", "errorMessage", "disabled", "autogrow", "cssClass", "nasFormControlName", "nasFormGroup", "options", "selectedValue", "selected"], outputs: ["selectedChange", "keyDownEvent"] }, { kind: "component", type: i4.OptionComponent, selector: "nas-option", inputs: ["option"] }, { kind: "component", type: i5.OptgroupComponent, selector: "nas-optgroup", inputs: ["label"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
81
117
  }
82
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: PhoneNumberComponent, decorators: [{
83
119
  type: Component,
84
- args: [{ selector: 'nas-phone-number', template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"id\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" />\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"id\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #15273F;background-color:#fff}.nas-phone-number__text[disabled]{background-color:#e9e7e4;border:0}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{opacity:.5}.nas-phone-number--spaceless{margin-bottom:0}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;background-color:#fff;line-height:24px;border:2px solid #15273F;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"] }]
120
+ args: [{ selector: 'nas-phone-number', template: "<div [nasClass]=\"mainClass()\">\n <label [nasClass]=\"getClass('label')\" *ngIf=\"label\" [attr.for]=\"id\">{{label}}</label>\n <div [nasClass]=\"getClass('controls')\">\n <ng-container *ngIf=\"!nasFormGroup || !nasFormControlName; else reactiveForm\">\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCode\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCode>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [selectedValue]=\"selectedValue\" [(selected)]=\"selected\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [(ngModel)]=\"model\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\"/>\n </div>\n </ng-container>\n <ng-template #reactiveForm>\n <div [nasClass]=\"getClass('prefix')\" *ngIf=\"prefixCountryCode else selectCountryCodeReactive\">\n {{prefixCountryCode}}\n </div>\n <ng-template #selectCountryCodeReactive>\n <div [nasClass]=\"getClass('country-code')\">\n <nas-select *ngIf=\"!preferredOptions\" [options]=\"options\" [error]=\"error\" [disabled]=\"disabled\"\n [spaceless]=\"spaceless\" [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\"\n [nasFormGroup]=\"nasFormGroup\">\n </nas-select>\n <nas-select *ngIf=\"preferredOptions\" [error]=\"error\" [disabled]=\"disabled\" [spaceless]=\"spaceless\"\n [cssClass]=\"cssClass\" [nasFormControlName]=\"nasFormControlNamePrefix\" [nasFormGroup]=\"nasFormGroup\">\n <nas-optgroup [label]=\"preferredOptionsLabel\">\n <nas-option *ngFor=\"let option of preferredOptions\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n <nas-optgroup [label]=\"optionsLabel\">\n <nas-option *ngFor=\"let option of options\" [option]=\"option\"></nas-option>\n </nas-optgroup>\n </nas-select>\n </div>\n </ng-template>\n <div [nasClass]=\"getClass('number')\" [formGroup]=\"nasFormGroup\">\n <label [nasClass]=\"getClass('input-label')\" *ngIf=\"inputLabel\" [attr.for]=\"id\">{{inputLabel}}</label>\n <input [nasClass]=\"getClass('text')\" [attr.id]=\"inputId\" [attr.type]=\"type\" [attr.disabled]=\"disabled\"\n [attr.placeholder]=\"placeholder\" [attr.readonly]=\"readonly\" [required]=\"required\"\n [attr.aria-describedby]=\"ariaDescribedby\" [attr.aria-invalid]=\"error\" [attr.aria-required]=\"required\"\n [formControlName]=\"nasFormControlName\" (focus)=\"setActiveOnFocus(true)\" (blur)=\"setActiveOnFocus(false)\" />\n </div>\n </ng-template>\n </div>\n <span *ngIf=\"exists(error)\" [nasClass]=\"getClass('message')\">\n <div [nasClass]=\"getClass('message--icon')\">\n <nas-icon type=\"negative\"></nas-icon>\n </div>\n <p [nasClass]=\"getClass('message--text')\" [id]=\"errorId\" *ngIf=\"exists(error) && errorMessage\"> {{ errorMessage }}\n </p>\n </span>\n</div>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-phone-number{margin-bottom:16px;position:relative}.nas-phone-number__label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin-top:0;margin-bottom:6px}@media (min-width: 640px){.nas-phone-number__label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__label~.nas-phone-number__icon{top:43px}.nas-phone-number__input-label{display:flex;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;letter-spacing:-.025em;word-spacing:-.025em;display:block;margin:-28px 0 6px 12px}@media (min-width: 640px){.nas-phone-number__input-label{letter-spacing:inherit;word-spacing:inherit}}.nas-phone-number__input-label~.nas-phone-number__icon{top:43px}.nas-phone-number__controls{display:flex}.nas-phone-number__prefix{display:flex;padding:3px 16px 0;justify-content:center;align-items:center;background-color:#fff;border:2px solid #15273F}.nas-phone-number__number{flex:1}.nas-phone-number__text{width:100%;height:52px;border:2px solid #6F6F6F;background-color:#fff}@media (min-width: 640px){.nas-phone-number__text{width:96.5%;margin-left:12px}}.nas-phone-number__info{display:block;margin-top:9px;margin-bottom:24px}.nas-phone-number__message{margin-top:2px;display:flex;gap:8px}.nas-phone-number__message--icon{transform:scale(.9)}.nas-phone-number__message--text{color:#b12a0b;font-size:14px;font-weight:400;line-height:20px;margin-top:3px}.nas-phone-number--error .nas-phone-number__text{background-color:#fff5f3;border:2px solid #E5212D!important}.nas-phone-number--error .nas-phone-number__error{display:block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:400;color:#b12a0b}.nas-phone-number--disabled .nas-phone-number__text{color:#6f6f6f;background-color:#e9e7e4;border-color:#e9e7e4}.nas-phone-number--spaceless{margin-bottom:0}.nas-phone-number--active .nas-phone-number__text{border:2px solid #15273F;color:#15273f;background-color:#ebf4ff}.nas-phone-number--valid .nas-phone-number__text{border:2px solid #15273F}.nas-phone-number--focus .nas-phone-number__text{transition:border-color .2s ease,background-color .2s ease;outline:2px solid #0978E8;outline-offset:2px}:host ::ng-deep .nas-select{margin-bottom:3px}:host ::ng-deep .nas-select select{padding:13px 34px 15px 12px;line-height:24px;height:52px;margin-bottom:5px}@media (min-width: 640px){:host ::ng-deep .nas-select select{margin-bottom:0}}\n"] }]
85
121
  }], ctorParameters: function () { return []; }, propDecorators: { options: [{
86
122
  type: Input
87
123
  }], preferredOptions: [{
@@ -139,5 +175,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
139
175
  type: Input
140
176
  }], selectedChange: [{
141
177
  type: Output
178
+ }], onKeydown: [{
179
+ type: HostListener,
180
+ args: ['document:keydown', ['$event']]
142
181
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7O0FBS3RFOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFzTnhELElBQWEsS0FBSztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUE4QkQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFXRDtRQUNFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBcE01Qjs7Ozs7O1VBTUU7UUFDTyxTQUFJLEdBQUcsUUFBUSxDQUFDO1FBb0l6Qjs7Ozs7O1VBTUU7UUFDUSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUF3Q25EOzs7Ozs7VUFNRTtRQUNRLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFJakUsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFVBQVU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksV0FBVztTQUMzQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxTVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw0MkJDbkJqQyxvbUlBb0VNOzsyRkRqRE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFhbkIsT0FBTztzQkFBZixLQUFLO2dCQVNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFTRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBU0csS0FBSztzQkFBYixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBU0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBU0csV0FBVztzQkFBbkIsS0FBSztnQkFTRyxFQUFFO3NCQUFWLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLEtBQUs7c0JBQWIsS0FBSztnQkFTRyxRQUFRO3NCQUFoQixLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0csSUFBSTtzQkFBWixLQUFLO2dCQVNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBU3FCLGVBQWU7c0JBQXpDLEtBQUs7dUJBQUMsa0JBQWtCO2dCQVNoQixRQUFRO3NCQUFoQixLQUFLO2dCQVdHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFXRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBV0csWUFBWTtzQkFBcEIsS0FBSztnQkFVTyxLQUFLO3NCQUFqQixLQUFLO2dCQWVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBU0UsUUFBUTtzQkFBaEIsS0FBSztnQkFVRyxhQUFhO3NCQUFyQixLQUFLO2dCQVVGLFFBQVE7c0JBRFgsS0FBSztnQkFtQkksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBOb3J3ZWdpYW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL25hcy1jb21wb25lbnQuYmFzZSc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb25Nb2RlbCB9IGZyb20gJy4uL3NlbGVjdC9tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMvY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIFBob25lIG51bWJlciBDb21wb25lbnQgfCBGb3JtIENvbnRyb2xzIHwgTmV3IGRlc2lnblxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXMtcGhvbmUtbnVtYmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Bob25lLW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Bob25lLW51bWJlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBob25lTnVtYmVyQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSB7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBjb3VudHJ5IGNvZGVzLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbb3B0aW9uc109XCJvcHRpb25zXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBvcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUHJlZmVycmVkIG9wdGlvbnMgd2lsbCBiZSBsaXN0ZWQgb24gdG9wLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbcHJlZmVycmVkLW9wdGlvbnNdPVwicHJlZmVycmVkT3B0aW9uc1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcHJlZmVycmVkT3B0aW9uczogQXJyYXk8U2VsZWN0T3B0aW9uTW9kZWw+O1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNpbmdsZSBQaG9uZSBudW1iZXIgcHJlZml4L2NvdW50cnkgY29kZSwgaWYgZXhpc3RzIHdpbGwgcmVwbGFjZSB0aGUgZHJvcGRvd24gc2VsZWN0b3IgZm9yIGNvdW50cnljb2RlXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwcmVmaXhDb3VudHJ5Q29kZV09XCInKzQ3J1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcHJlZml4Q291bnRyeUNvZGU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGxhYmVsIGZvciBwaG9uZSBudW1iZXIuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtsYWJlbF09XCJwaG9uZSBudW1iZXJcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBsYWJlbCBmb3Igb3B0aW9ucy4gT25seSBpbiB1c2Ugd2hlbiBwcmVmZXJyZWRPcHRpb25zIGFyZSB1c2VkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlcj48bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJvcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG9wdGlvbnNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgbGFiZWwgZm9yIHByZWZlcnJlZE9wdGlvbnMuIE9ubHkgaW4gdXNlIHdoZW4gcHJlZmVycmVkT3B0aW9ucyBhcmUgdXNlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXI+PG5hcy1vcHRncm91cCBbbGFiZWxdPVwicHJlZmVycmVkT3B0aW9uc0xhYmVsXCI+Li4uPC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmZXJyZWRPcHRpb25zTGFiZWw6IHN0cmluZztcblxuICAvKipcbiAqIEBwcm9wZXJ0eSBJbnB1dFxuICogQGRlc2NyaXB0aW9uXG4gKiBMYWJlbCBvdmVyIHBob25lIG51bWJlciBpbnB1dCBmaWVsZFxuICogQGV4YW1wbGVcbiAqIDxuYXMtcGhvbmUtbnVtYmVyPjxuYXMtb3B0Z3JvdXAgW2lucHV0TGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+Li4uPC9uYXMtcGhvbmUtbnVtYmVyPlxuKi9cbiAgQElucHV0KCkgaW5wdXRMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgcGxhY2UgaG9sZGVyIGZvciBuYXRpdmUgaW5wdXQgZWxlbWVudCBvZiBwaG9uZSBudW1iZXIuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwbGFjZWhvbGRlcl09XCJwaG9uZSBudW1iZXJcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIElEIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaWRdPVwiJ3Bob25lTnVtYmVyJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgdHlwZSBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuIERlZmF1bHQgdmFsdWUgaXMgbnVtYmVyXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFt0eXBlXT1cIid0ZXh0J1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgdHlwZSA9ICdudW1iZXInO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgaW4gYW4gZXJyb3Igc3RhdGUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIGVycm9yPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgZXJyb3I6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgaXMgZGlzYWJsZWQgb3Igbm8sIHdpdGggZGlzYWJsZWQgc3R5bGluZy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgZGlzYWJsZWQ+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXQgc3BhY2VsZXNzIHN0eWxpbmcgKHJlbW92aW5nIHNwYWNpbmcpXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIHNwYWNlbGVzcz48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHNwYWNlbGVzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gZXJyb3Igb2NjdXIuIEVycm9yIGF0dHJpYnV0ZSBuZWVkIHRvIGJlIHRydWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtlcnJvck1lc3NhZ2VdPVwiJ3BsZWFzZSBmaWxsIGluIHRoZSBwaG9uZSBudW1iZXIgZmllbGQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBpbmZvIHRleHQgcmVsYXRlZCB0byB0aGUgaW5wdXRcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2luZm9dPVwiJ3BsZWFzZSB3cml0ZSA4IGRpZ2l0IHBob25lIG51bWJlciB3aXRob3V0IHNwYWNlcydcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGluZm86IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSBpY29uIG9uIHRoZSBpbnB1dFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaWNvbl09XCIncmVtb3ZlJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgcmVhZG9ubHkuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIHJlYWRvbmx5PjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhcmlhIGRlc2NyaWJlZGJ5IGZvciBhY2Nlc3NpYmlsaXR5XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFthcmlhLWRlc2NyaWJlZGJ5XT1cIidwaG9uZSBudW1iZXIgZmllbGQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoJ2FyaWEtZGVzY3JpYmVkYnknKSBhcmlhRGVzY3JpYmVkYnk6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIHRoZSByZXF1aXJlZCBhdHRyaWJ1dGUgb24gdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50LlxuICAgKiAgQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgcmVxdWlyZWQ+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgc2VsZWN0LlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCByZXF1aWVycyB0aGF0IHRoZSBuYXNGb3JtR3JvdXAgaW5wdXQgaXMgZmlsbGVkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIidwaG9uZU51bWJlcidcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Db250cm9sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtQ29udHJvbE5hbWVQcmVmaXhdPVwiJ3Bob25lTnVtYmVyUHJlZml4J1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyB0aGUgcGFyZW50J3MgZm9ybSBncm91cC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgaXMgcmVxdWllcmVkIHRvIGJlIGZpbGxlZCBpZiBuYXNGb3JtQ29udHJvbE5hbWUgYWRkZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtR3JvdXBdPVwibXlGb3JtXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIG1vZGVsIGJpbmRlZCB3aXRoIG5hdGl2ZSBpbnB1dCBlbGVtZW50IG9mIHBob25lIG51bWJlciBjb21wb25lbnQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFsobW9kZWwpXT1cIm1vZGVsXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBwcml2YXRlIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGdldCBtb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5waG9uZU51bWJlcjtcbiAgfVxuICBzZXQgbW9kZWwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucGhvbmVOdW1iZXIgPSB2YWx1ZTtcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5waG9uZU51bWJlcik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gb3V0cHV0IGV2ZW50IHRoYXQgZmllcyB3aGVuIGlucHV0IHZhbHVlIGNoYW5nZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIChtb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKClcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZCBjdXN0b20gQ1NTIGNsYXNzIHRvIHRoZSBzZWxlY3Rvci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2Nzc0NsYXNzXT1cImNzc0NsYXNzXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBjc3NDbGFzczogQ2xhc3NNb2RlbDtcblxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBkZWZhdWx0IHNlbGVjdGVkIHZhbHVlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBzZWxlY3RlZFZhbHVlOiBTZWxlY3RPcHRpb25Nb2RlbDtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBHZXRzIG9yIHNldHMgdGhlIHNlbGVjdGVkIHZhbHVlLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkKCk6IFNlbGVjdE9wdGlvbk1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlO1xuICB9XG4gIHNldCBzZWxlY3RlZChvcHRpb246IFNlbGVjdE9wdGlvbk1vZGVsKSB7XG4gICAgaWYgKCFvcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb3B0aW9uO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFuIGV2ZW50IHRoYXQgaXMgZmlyZWQgZXZlcnkgdGltZSBhIHNlbGVjdGlvbiBpcyBkb25lLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RlZENoYW5nZSgkZXZlbnQpXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdE9wdGlvbk1vZGVsPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCduYXMtcGhvbmUtbnVtYmVyJyk7XG4gIH1cblxuICBtYWluQ2xhc3MoKTogQ2xhc3NNb2RlbCB7XG4gICAgY29uc3QgeyBlcnJvciwgZGlzYWJsZWQsIHNwYWNlbGVzcyB9ID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLmdldENsYXNzKCcnLCBbXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmVycm9yKSAmJiAnZXJyb3InLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5kaXNhYmxlZCkgJiYgJ2Rpc2FibGVkJyxcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuc3BhY2VsZXNzKSAmJiAnc3BhY2VsZXNzJ1xuICAgIF0pO1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cIm1haW5DbGFzcygpXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCIgWyhzZWxlY3RlZCldPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaWRcIiBbYXR0ci50eXBlXT1cInR5cGVcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwiZXJyb3JcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlUmVhY3RpdmVcIj5cbiAgICAgICAge3twcmVmaXhDb3VudHJ5Q29kZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0Q291bnRyeUNvZGVSZWFjdGl2ZT5cbiAgICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvdW50cnktY29kZScpXCI+XG4gICAgICAgICAgPG5hcy1zZWxlY3QgKm5nSWY9XCIhcHJlZmVycmVkT3B0aW9uc1wiIFtvcHRpb25zXT1cIm9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW3NwYWNlbGVzc109XCJzcGFjZWxlc3NcIiBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVByZWZpeFwiXG4gICAgICAgICAgICBbbmFzRm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbbmFzRm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVByZWZpeFwiIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgICA8bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj5cbiAgICAgICAgICAgICAgPG5hcy1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbl09XCJvcHRpb25cIj48L25hcy1vcHRpb24+XG4gICAgICAgICAgICA8L25hcy1vcHRncm91cD5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ251bWJlcicpXCIgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaWRcIiBbYXR0ci50eXBlXT1cInR5cGVcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIiBbYXR0ci5hcmlhLWludmFsaWRdPVwiZXJyb3JcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm5hc0Zvcm1Db250cm9sTmFtZVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCJleGlzdHMoZXJyb3IpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlJylcIj5cbiAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0taWNvbicpXCI+XG4gICAgICA8bmFzLWljb24gdHlwZT1cIm5lZ2F0aXZlXCI+PC9uYXMtaWNvbj5cbiAgICA8L2Rpdj5cbiAgICA8cCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UtLXRleHQnKVwiIFtpZF09XCJlcnJvcklkXCIgKm5nSWY9XCJleGlzdHMoZXJyb3IpICYmIGVycm9yTWVzc2FnZVwiPiB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L3A+XG4gIDwvc3Bhbj5cbjwvZGl2PiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvcGhvbmUtbnVtYmVyL3Bob25lLW51bWJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Bob25lLW51bWJlci9waG9uZS1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7QUFLdEUsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQXNOeEQsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUE4QkQ7Ozs7OztNQU1FO0lBQ0YsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUF5QjtRQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FB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YW4gQWlyIFNodXR0bGUuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmFzQ29tcG9uZW50QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS9uYXMtY29tcG9uZW50LmJhc2UnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uTW9kZWwgfSBmcm9tICcuLi9zZWxlY3QvbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBOb3J3ZWdpYW4gUGhvbmUgbnVtYmVyIENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1waG9uZS1udW1iZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGhvbmUtbnVtYmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGhvbmVOdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBOYXNDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGNvdW50cnkgY29kZXMuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFycmF5PFNlbGVjdE9wdGlvbk1vZGVsPjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQcmVmZXJyZWQgb3B0aW9ucyB3aWxsIGJlIGxpc3RlZCBvbiB0b3AuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtwcmVmZXJyZWQtb3B0aW9uc109XCJwcmVmZXJyZWRPcHRpb25zXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmZXJyZWRPcHRpb25zOiBBcnJheTxTZWxlY3RPcHRpb25Nb2RlbD47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2luZ2xlIFBob25lIG51bWJlciBwcmVmaXgvY291bnRyeSBjb2RlLCBpZiBleGlzdHMgd2lsbCByZXBsYWNlIHRoZSBkcm9wZG93biBzZWxlY3RvciBmb3IgY291bnRyeWNvZGVcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3ByZWZpeENvdW50cnlDb2RlXT1cIicrNDcnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBwcmVmaXhDb3VudHJ5Q29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgcmVjb3JkIGNvbnRhaW5pbmcgbGFiZWwgZm9yIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2xhYmVsXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHJlY29yZCBjb250YWluaW5nIGxhYmVsIGZvciBvcHRpb25zLiBPbmx5IGluIHVzZSB3aGVuIHByZWZlcnJlZE9wdGlvbnMgYXJlIHVzZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyPjxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbnNMYWJlbFwiPi4uLjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgb3B0aW9uc0xhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBsYWJlbCBmb3IgcHJlZmVycmVkT3B0aW9ucy4gT25seSBpbiB1c2Ugd2hlbiBwcmVmZXJyZWRPcHRpb25zIGFyZSB1c2VkLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlcj48bmFzLW9wdGdyb3VwIFtsYWJlbF09XCJwcmVmZXJyZWRPcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHByZWZlcnJlZE9wdGlvbnNMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICogQHByb3BlcnR5IElucHV0XG4gKiBAZGVzY3JpcHRpb25cbiAqIExhYmVsIG92ZXIgcGhvbmUgbnVtYmVyIGlucHV0IGZpZWxkXG4gKiBAZXhhbXBsZVxuICogPG5hcy1waG9uZS1udW1iZXI+PG5hcy1vcHRncm91cCBbaW5wdXRMYWJlbF09XCJvcHRpb25zTGFiZWxcIj4uLi48L25hcy1waG9uZS1udW1iZXI+XG4qL1xuICBASW5wdXQoKSBpbnB1dExhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQSByZWNvcmQgY29udGFpbmluZyBwbGFjZSBob2xkZXIgZm9yIG5hdGl2ZSBpbnB1dCBlbGVtZW50IG9mIHBob25lIG51bWJlci5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3BsYWNlaG9sZGVyXT1cInBob25lIG51bWJlclwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpZF09XCIncGhvbmVOdW1iZXInXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gRGVmYXVsdCB2YWx1ZSBpcyBudW1iZXJcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW3R5cGVdPVwiJ3RleHQnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSB0eXBlID0gJ251bWJlcic7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBpbiBhbiBlcnJvciBzdGF0ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgZXJyb3I+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBlcnJvcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBXaGV0aGVyIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBkaXNhYmxlZCBvciBubywgd2l0aCBkaXNhYmxlZCBzdHlsaW5nLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBkaXNhYmxlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldCBzcGFjZWxlc3Mgc3R5bGluZyAocmVtb3Zpbmcgc3BhY2luZylcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgc3BhY2VsZXNzPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgc3BhY2VsZXNzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBlcnJvciBvY2N1ci4gRXJyb3IgYXR0cmlidXRlIG5lZWQgdG8gYmUgdHJ1ZS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2Vycm9yTWVzc2FnZV09XCIncGxlYXNlIGZpbGwgaW4gdGhlIHBob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGluZm8gdGV4dCByZWxhdGVkIHRvIHRoZSBpbnB1dFxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbaW5mb109XCIncGxlYXNlIHdyaXRlIDggZGlnaXQgcGhvbmUgbnVtYmVyIHdpdGhvdXQgc3BhY2VzJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgaW5mbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGljb24gb24gdGhlIGlucHV0XG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtpY29uXT1cIidyZW1vdmUnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogV2hldGhlciB0aGUgZWxlbWVudCBpcyByZWFkb25seS5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgcmVhZG9ubHk+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGFyaWEgZGVzY3JpYmVkYnkgZm9yIGFjY2Vzc2liaWxpdHlcbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ3Bob25lIG51bWJlciBmaWVsZCdcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgnYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIHJlcXVpcmVkIGF0dHJpYnV0ZSBvbiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQuXG4gICAqICBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciByZXF1aXJlZD48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBmb3JtQ29udHJvbE5hbWUgZGlyZWN0aXZlIHRvIHRoZSBzZWxlY3QuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwiJ3Bob25lTnVtYmVyJ1wiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQElucHV0KCkgbmFzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogU2V0cyBhIGZvcm1Db250cm9sTmFtZSBkaXJlY3RpdmUgdG8gdGhlIHNlbGVjdC5cbiAgICogSXQgcmVxdWlyZXMgdGhhdCB0aGUgY29uc3VtZXIgaW5jbHVkZWQgUmVhY3RpdmVGb3Jtc01vZHVsZSBpbiBpdCdzIG1vZHVsZS5cbiAgICogSXQgcmVxdWllcnMgdGhhdCB0aGUgbmFzRm9ybUdyb3VwIGlucHV0IGlzIGZpbGxlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Db250cm9sTmFtZVByZWZpeF09XCIncGhvbmVOdW1iZXJQcmVmaXgnXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWVQcmVmaXg6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgW25hc0Zvcm1Hcm91cF09XCJteUZvcm1cIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbW9kZWwgYmluZGVkIHdpdGggbmF0aXZlIGlucHV0IGVsZW1lbnQgb2YgcGhvbmUgbnVtYmVyIGNvbXBvbmVudC5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgWyhtb2RlbCldPVwibW9kZWxcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIHByaXZhdGUgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgQElucHV0KCkgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnBob25lTnVtYmVyO1xuICB9XG4gIHNldCBtb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5waG9uZU51bWJlciA9IHZhbHVlO1xuICAgIHRoaXMudmFsaWQgPSAhIXZhbHVlO1xuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLnBob25lTnVtYmVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBvdXRwdXQgZXZlbnQgdGhhdCBmaWVzIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlcy5cbiAgICogQGV4YW1wbGVcbiAgICogPG5hcy1waG9uZS1udW1iZXIgKG1vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoKVwiPjwvbmFzLXBob25lLW51bWJlcj5cbiAgKi9cbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkIGN1c3RvbSBDU1MgY2xhc3MgdG8gdGhlIHNlbGVjdG9yLlxuICAgKiBAZXhhbXBsZVxuICAgKiA8bmFzLXBob25lLW51bWJlciBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBDbGFzc01vZGVsO1xuXG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVGhlIGRlZmF1bHQgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IFNlbGVjdE9wdGlvbk1vZGVsO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEdldHMgb3Igc2V0cyB0aGUgc2VsZWN0ZWQgdmFsdWUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIFsoc2VsZWN0ZWQpXT1cInNlbGVjdGVkXCI+PC9uYXMtcGhvbmUtbnVtYmVyPlxuICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VsZWN0ZWQoKTogU2VsZWN0T3B0aW9uTW9kZWwge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gIH1cbiAgc2V0IHNlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uTW9kZWwpIHtcbiAgICBpZiAoIW9wdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IE91dHB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gZXZlbnQgdGhhdCBpcyBmaXJlZCBldmVyeSB0aW1lIGEgc2VsZWN0aW9uIGlzIGRvbmUuXG4gICAqIEBleGFtcGxlXG4gICAqIDxuYXMtcGhvbmUtbnVtYmVyIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIj48L25hcy1waG9uZS1udW1iZXI+XG4gICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0T3B0aW9uTW9kZWw+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IGAke3RoaXMuaWR9X19udW1iZXJgOiBgbmFzLXBob25lLW51bWJlci0ke3RoaXMuY29tcG9uZW50SWR9X19udW1iZXJgO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xuICBwdWJsaWMgdmFsaWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBmb2N1czogYm9vbGVhbjtcbiAgcHVibGljIGxhc3RXYXNUYWI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ25hcy1waG9uZS1udW1iZXInKTtcbiAgICB0aGlzLmNvbXBvbmVudElkID0gbmV4dElkKys7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICB0aGlzLmxhc3RXYXNUYWIgPSBlLmtleSA9PT0gJ1RhYic7XG4gIH1cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICBpZiAodGhpcy5uYXNGb3JtR3JvdXAgJiYgdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpIHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnZhbGlkID0gISF2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pbnB1dElkKTtcbiAgICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgfVxuICB9XG5cbiAgbWFpbkNsYXNzKCk6IENsYXNzTW9kZWwge1xuICAgIGNvbnN0IHsgZXJyb3IsIGRpc2FibGVkLCBzcGFjZWxlc3MsIGFjdGl2ZSwgdmFsaWQsIGZvY3VzIH0gPSB0aGlzO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3MoJycsIFtcbiAgICAgIHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpICYmICdlcnJvcicsXG4gICAgICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSAmJiAnZGlzYWJsZWQnLFxuICAgICAgdGhpcy5leGlzdHModGhpcy5zcGFjZWxlc3MpICYmICdzcGFjZWxlc3MnLFxuICAgICAgdGhpcy5hY3RpdmUgJiYgJ2FjdGl2ZScsXG4gICAgICB0aGlzLnZhbGlkICYmICd2YWxpZCcsXG4gICAgICB0aGlzLmZvY3VzICYmICdmb2N1cydcbiAgICBdKTtcbiAgfVxuXG4gIHNldEFjdGl2ZU9uRm9jdXMoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7ICAgIFxuICAgIGlmKHRoaXMuZXhpc3RzKHRoaXMuZXJyb3IpIHx8ICB0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVkKSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuZm9jdXMgPSB0aGlzLmxhc3RXYXNUYWI7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZSA9IGFjdGl2ZTtcbiAgICB0aGlzLmZvY3VzID0gYWN0aXZlICYmIHRoaXMubGFzdFdhc1RhYjtcblxuICAgIHRoaXMubGFzdFdhc1RhYiA9IGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgW25hc0NsYXNzXT1cIm1haW5DbGFzcygpXCI+XG4gIDxsYWJlbCBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAqbmdJZj1cImxhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2NvbnRyb2xzJylcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Hcm91cCB8fCAhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICAgICAgPGRpdiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3ByZWZpeCcpXCIgKm5nSWY9XCJwcmVmaXhDb3VudHJ5Q29kZSBlbHNlIHNlbGVjdENvdW50cnlDb2RlXCI+XG4gICAgICAgIHt7cHJlZml4Q291bnRyeUNvZGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdENvdW50cnlDb2RlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIiBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZFwiPlxuICAgICAgICAgIDwvbmFzLXNlbGVjdD5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cInByZWZlcnJlZE9wdGlvbnNcIiBbZXJyb3JdPVwiZXJyb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiXG4gICAgICAgICAgICBbY3NzQ2xhc3NdPVwiY3NzQ2xhc3NcIiBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCIgWyhzZWxlY3RlZCldPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIj5cbiAgICAgICAgPGxhYmVsIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaW5wdXQtbGFiZWwnKVwiICpuZ0lmPVwiaW5wdXRMYWJlbFwiIFthdHRyLmZvcl09XCJpZFwiPnt7aW5wdXRMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgPGlucHV0IFtuYXNDbGFzc109XCJnZXRDbGFzcygndGV4dCcpXCIgW2F0dHIuaWRdPVwiaW5wdXRJZFwiIFthdHRyLnR5cGVdPVwidHlwZVwiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5XCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRieVwiIFthdHRyLmFyaWEtaW52YWxpZF09XCJlcnJvclwiIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWxcIiAoZm9jdXMpPVwic2V0QWN0aXZlT25Gb2N1cyh0cnVlKVwiIChibHVyKT1cInNldEFjdGl2ZU9uRm9jdXMoZmFsc2UpXCIvPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlZml4JylcIiAqbmdJZj1cInByZWZpeENvdW50cnlDb2RlIGVsc2Ugc2VsZWN0Q291bnRyeUNvZGVSZWFjdGl2ZVwiPlxuICAgICAgICB7e3ByZWZpeENvdW50cnlDb2RlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RDb3VudHJ5Q29kZVJlYWN0aXZlPlxuICAgICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnY291bnRyeS1jb2RlJylcIj5cbiAgICAgICAgICA8bmFzLXNlbGVjdCAqbmdJZj1cIiFwcmVmZXJyZWRPcHRpb25zXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3BhY2VsZXNzXT1cInNwYWNlbGVzc1wiIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCJcbiAgICAgICAgICAgIFtuYXNGb3JtR3JvdXBdPVwibmFzRm9ybUdyb3VwXCI+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICAgIDxuYXMtc2VsZWN0ICpuZ0lmPVwicHJlZmVycmVkT3B0aW9uc1wiIFtlcnJvcl09XCJlcnJvclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtzcGFjZWxlc3NdPVwic3BhY2VsZXNzXCJcbiAgICAgICAgICAgIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiIFtuYXNGb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lUHJlZml4XCIgW25hc0Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICAgICAgICAgIDxuYXMtb3B0Z3JvdXAgW2xhYmVsXT1cInByZWZlcnJlZE9wdGlvbnNMYWJlbFwiPlxuICAgICAgICAgICAgICA8bmFzLW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHByZWZlcnJlZE9wdGlvbnNcIiBbb3B0aW9uXT1cIm9wdGlvblwiPjwvbmFzLW9wdGlvbj5cbiAgICAgICAgICAgIDwvbmFzLW9wdGdyb3VwPlxuICAgICAgICAgICAgPG5hcy1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uc0xhYmVsXCI+XG4gICAgICAgICAgICAgIDxuYXMtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFtvcHRpb25dPVwib3B0aW9uXCI+PC9uYXMtb3B0aW9uPlxuICAgICAgICAgICAgPC9uYXMtb3B0Z3JvdXA+XG4gICAgICAgICAgPC9uYXMtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IFtuYXNDbGFzc109XCJnZXRDbGFzcygnbnVtYmVyJylcIiBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgICAgICA8bGFiZWwgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dC1sYWJlbCcpXCIgKm5nSWY9XCJpbnB1dExhYmVsXCIgW2F0dHIuZm9yXT1cImlkXCI+e3tpbnB1dExhYmVsfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXQgW25hc0NsYXNzXT1cImdldENsYXNzKCd0ZXh0JylcIiBbYXR0ci5pZF09XCJpbnB1dElkXCIgW2F0dHIudHlwZV09XCJ0eXBlXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCIgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImVycm9yXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiAoZm9jdXMpPVwic2V0QWN0aXZlT25Gb2N1cyh0cnVlKVwiIChibHVyKT1cInNldEFjdGl2ZU9uRm9jdXMoZmFsc2UpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8c3BhbiAqbmdJZj1cImV4aXN0cyhlcnJvcilcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ21lc3NhZ2UnKVwiPlxuICAgIDxkaXYgW25hc0NsYXNzXT1cImdldENsYXNzKCdtZXNzYWdlLS1pY29uJylcIj5cbiAgICAgIDxuYXMtaWNvbiB0eXBlPVwibmVnYXRpdmVcIj48L25hcy1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxwIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbWVzc2FnZS0tdGV4dCcpXCIgW2lkXT1cImVycm9ySWRcIiAqbmdJZj1cImV4aXN0cyhlcnJvcikgJiYgZXJyb3JNZXNzYWdlXCI+IHt7IGVycm9yTWVzc2FnZSB9fVxuICAgIDwvcD5cbiAgPC9zcGFuPlxuPC9kaXY+Il19