fx-form-builder-wrapper 2.0.29 → 2.0.30

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.
@@ -95,7 +95,7 @@ export class DatePickerComponent extends FxBaseComponent {
95
95
  });
96
96
  }
97
97
  formatDate(date) {
98
- return date.toISOString().split('T')[0]; // "2025-08-22"
98
+ return date.toISOString().split('T')[0];
99
99
  }
100
100
  settings() {
101
101
  return [
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
121
121
  type: ViewChild,
122
122
  args: ['fxComponent']
123
123
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDekMsYUFB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VztRQUNuQixPQUFPLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0FsSU0sbUJBQW1COzRGQUFuQixtQkFBbUIsOE1DZmhDLGswTEF5RGUsazVCRDlDSixZQUFZLGtJQUFFLG1CQUFtQiw0OEJBQUUsV0FBVywrQkFBRSxXQUFXLDRFQUFFLGNBQWM7OzRGQUl6RSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNSLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDO3FKQVcxRCxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNldHRpbmcsIEZ4U3RyaW5nU2V0dGluZywgRnhWYWxpZGF0aW9uLCBGeFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1kYXRlLXBpY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudCwgQ2FsZW5kYXJNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuICAvLyAgbWluRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgLy8gIG1heERhdGUgID0gbmV3IERhdGUoKTtcclxubWluRGF0ZSE6IHN0cmluZztcclxubWF4RGF0ZSE6IHN0cmluZztcclxuICAgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICBAVmlld0NoaWxkKCdmeENvbXBvbmVudCcpIGZ4Q29tcG9uZW50ITogRnhDb21wb25lbnQ7XHJcbiAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpO1xyXG4gICAgZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgIFxyXG5cclxuXHJcbiAgICBwdWJsaWMgZGF0ZVBpY2tlckZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgZGF0ZTogW25ldyBEYXRlKCksW11dLFxyXG4gICAgIH0pXHJcblxyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7XHJcbiAgICAgIHN1cGVyKGNkcilcclxuICAgICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLmRhdGVQaWNrZXJGb3JtKTtcclxuICAgICAgfSk7XHJcbiAgICAgXHJcbiAgICB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmRhdGVQaWNrZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2xpYi1kYXRlLXBpY2tlcicpKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlUGlja2VyTWFwLnNldChrZXksIHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuXHJcbiAgICAvLyBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAvLyB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG4gICAgLy8gdGhpcy5tYXhEYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgLy8gdGhpcy5tYXhEYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgMzApO1xyXG5cclxuICAvLyB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC0gMzApKSk7XHJcbiAgLy8gdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIDMxKSkpO1xyXG5cclxuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcblxyXG5jb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xyXG5taW4uc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgLSAzMCk7XHJcblxyXG5jb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xyXG5tYXguc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkpO1xyXG5cclxudGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG1pbik7XHJcbnRoaXMubWF4RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShtYXgpO1xyXG5cclxuICAgIC8vIHRoaXMuZ2V0UmFuZ2VWYWx1ZXMoKTtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGVDb250cm9sKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk7XHJcbiAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5meENvbXBvbmVudD8uZnhEYXRhPy5uYW1lO1xyXG4gICAgaWYoa2V5KXtcclxuICAgICAgICBjb25zdCBkYXRlUGF0Y2ggPSB0aGlzLmRhdGVQaWNrZXJNYXAuZ2V0KGtleSlcclxuICAgICAgICBjb25zdCBmaW5hbERhdGUgPSBkYXRlUGF0Y2ggfHwgdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKCkpXHJcbiAgICAgICAgaWYoZGF0ZVBhdGNoKXtcclxuICAgICAgICAgICAgdGhpcy5taW5EYXRlID0gZGF0ZVBhdGNoXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgLSAzMCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcblxyXG4gICAgICB0aGlzLmRhdGVQaWNrZXJGb3JtLnBhdGNoVmFsdWUoe2RhdGU6ZmluYWxEYXRlfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldENvbnRleHRCYXNlSWQoKTtcclxuICB9XHJcblxyXG4gIGdldFJhbmdlVmFsdWVzKCkge1xyXG4gICAgdGhpcy5odHRwLmdldDxhbnk+KHRoaXMuc2V0dGluZygnYXBpVVJMJykpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICBcclxuICAgICAgY29uc3QgbWluT2Zmc2V0ID0gcmVzcG9uc2VbdGhpcy5zZXR0aW5nKCdtaW5EYXRlS2V5JyldIHx8IHRoaXMuc2V0dGluZygnbWluVmFsaWRhdGlvbicpO1xyXG4gICAgICBjb25zdCBtYXhPZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21heERhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtYXhWYWxpZGF0aW9uJyk7XHJcbiAgXHJcbiAgICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgICAgLy8gdGhpcy5taW5EYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgbWluT2Zmc2V0KTtcclxuICBcclxuICAgICAgLy8gdGhpcy5tYXhEYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtYXhPZmZzZXQpO1xyXG5cclxuICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1heE9mZnNldCkpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsgLy8gXCIyMDI1LTA4LTIyXCJcclxufVxyXG4gIFxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWluVmFsaWRhdGlvbicsICR0aXRsZTogJ01pbiBWYWxpZGF0aW9uJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21heFZhbGlkYXRpb24nLCAkdGl0bGU6ICdNYXggVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhcGlVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pbkRhdGVLZXknLCAkdGl0bGU6ICdNaW4gUmFuZ2UgQVBJIEtleScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhEYXRlS2V5JywgJHRpdGxlOiAnTWF4IFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2VIb2xkZXInLCAkdGl0bGU6ICdQbGFjZWhvbGRlcicsIHZhbHVlOiAnU2VsZWN0IERhdGUnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgIFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbS1kYXRlLXBpY2tlciByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRlUGlja2VyRm9ybVwiPlxyXG4gICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ3BsYWNlSG9sZGVyJykgfX1cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8cC1jYWxlbmRhciAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPiAtLT5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIERhdGUgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbjwvZngtY29tcG9uZW50PiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDekMsYUFB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QU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO3dHQWxJTSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw4TUNmaEMsazBMQXlEZSxrNUJEOUNKLFlBQVksa0lBQUUsbUJBQW1CLDQ4QkFBRSxXQUFXLCtCQUFFLFdBQVcsNEVBQUUsY0FBYzs7NEZBSXpFLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1IsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUM7cUpBVzFELFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRhdGUtcGlja2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZ4Q29tcG9uZW50LCBDYWxlbmRhck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG4gIC8vICBtaW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAvLyAgbWF4RGF0ZSAgPSBuZXcgRGF0ZSgpO1xyXG5taW5EYXRlITogc3RyaW5nO1xyXG5tYXhEYXRlITogc3RyaW5nO1xyXG4gICB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KCk7XHJcbiAgICBkYXRlUGlja2VyTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICAgXHJcblxyXG5cclxuICAgIHB1YmxpYyBkYXRlUGlja2VyRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICBkYXRlOiBbbmV3IERhdGUoKSxbXV0sXHJcbiAgICAgfSlcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGF0ZVBpY2tlckZvcm0pO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgaWYgKGtleS5pbmNsdWRlcygnbGliLWRhdGUtcGlja2VyJykpIHtcclxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICAgIC8vIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgIC8vIHRoaXMubWluRGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDMwKTtcclxuXHJcbiAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyAzMCk7XHJcblxyXG4gIC8vIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgLSAzMCkpKTtcclxuICAvLyB0aGlzLm1heERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgMzEpKSk7XHJcblxyXG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuXHJcbmNvbnN0IG1pbiA9IG5ldyBEYXRlKCk7XHJcbm1pbi5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDMwKTtcclxuXHJcbmNvbnN0IG1heCA9IG5ldyBEYXRlKCk7XHJcbm1heC5zZXREYXRlKHRvZGF5LmdldERhdGUoKSk7XHJcblxyXG50aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobWluKTtcclxudGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG1heCk7XHJcblxyXG4gICAgLy8gdGhpcy5nZXRSYW5nZVZhbHVlcygpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBnZXQgZGF0ZUNvbnRyb2woKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyRm9ybS5nZXQoJ2RhdGUnKTtcclxuICB9XHJcblxyXG4gICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmZ4Q29tcG9uZW50Py5meERhdGE/Lm5hbWU7XHJcbiAgICBpZihrZXkpe1xyXG4gICAgICAgIGNvbnN0IGRhdGVQYXRjaCA9IHRoaXMuZGF0ZVBpY2tlck1hcC5nZXQoa2V5KVxyXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0ZSA9IGRhdGVQYXRjaCB8fCB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSlcclxuICAgICAgICBpZihkYXRlUGF0Y2gpe1xyXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBkYXRlUGF0Y2hcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSAtIDMwKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgIHRoaXMuZGF0ZVBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7ZGF0ZTpmaW5hbERhdGV9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q29udGV4dEJhc2VJZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueT4odGhpcy5zZXR0aW5nKCdhcGlVUkwnKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIFxyXG4gICAgICBjb25zdCBtaW5PZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21pbkRhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtaW5WYWxpZGF0aW9uJyk7XHJcbiAgICAgIGNvbnN0IG1heE9mZnNldCA9IHJlc3BvbnNlW3RoaXMuc2V0dGluZygnbWF4RGF0ZUtleScpXSB8fCB0aGlzLnNldHRpbmcoJ21heFZhbGlkYXRpb24nKTtcclxuICBcclxuICAgICAgLy8gdGhpcy5taW5EYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpO1xyXG4gIFxyXG4gICAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAgIC8vIHRoaXMubWF4RGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSArIG1heE9mZnNldCk7XHJcblxyXG4gICAgdGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1pbk9mZnNldCkpKTtcclxuICB0aGlzLm1heERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgbWF4T2Zmc2V0KSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdOyBcclxufVxyXG4gIFxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWluVmFsaWRhdGlvbicsICR0aXRsZTogJ01pbiBWYWxpZGF0aW9uJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21heFZhbGlkYXRpb24nLCAkdGl0bGU6ICdNYXggVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhcGlVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pbkRhdGVLZXknLCAkdGl0bGU6ICdNaW4gUmFuZ2UgQVBJIEtleScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhEYXRlS2V5JywgJHRpdGxlOiAnTWF4IFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2VIb2xkZXInLCAkdGl0bGU6ICdQbGFjZWhvbGRlcicsIHZhbHVlOiAnU2VsZWN0IERhdGUnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgIFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbS1kYXRlLXBpY2tlciByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRlUGlja2VyRm9ybVwiPlxyXG4gICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ3BsYWNlSG9sZGVyJykgfX1cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8cC1jYWxlbmRhciAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPiAtLT5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIERhdGUgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbjwvZngtY29tcG9uZW50PiJdfQ==
@@ -64,8 +64,8 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
64
64
  // otherControl?.reset();
65
65
  // }
66
66
  // });
67
- // const serviceUrl = this.fxApiService.getServiceUrl(this.setting('serviceName'));
68
- // this.getOptions(serviceUrl,this.setting('clinicalNotesURL'));
67
+ const serviceUrl = this.fxApiService.getServiceUrl(this.setting('serviceName'));
68
+ this.getOptions(serviceUrl, this.setting('clinicalNotesURL'));
69
69
  this.dropDownForm.get('selectedOption')?.valueChanges.subscribe(value => {
70
70
  const otherControl = this.dropDownForm.get('otherInput');
71
71
  if (value === 'other') {
@@ -84,6 +84,7 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
84
84
  settings() {
85
85
  return [
86
86
  new FxStringSetting({ key: 'clinicalNotesURL', $title: 'API Url', value: '' }),
87
+ new FxStringSetting({ key: 'customClass', $title: 'Custom Class Name', value: '' }),
87
88
  new FxStringSetting({ key: 'select-label', $title: 'Label', value: '' }),
88
89
  new FxStringSetting({ key: 'other-label', $title: 'Other Label', value: '' }),
89
90
  new FxStringSetting({ key: 'other-placeholder', $title: 'Other Placeholder', value: '' }),
@@ -107,10 +108,10 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
107
108
  });
108
109
  }
109
110
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownWithOtherComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }, { token: i3.ApiServiceRegistry }], target: i0.ɵɵFactoryTarget.Component });
110
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownWithOtherComponent, isStandalone: true, selector: "dropdown-with-other", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center custom-dropdown\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n\r\n <!-- <label class=\"mb-1 font-semibold text-sm\"></label> -->\r\n <span class=\"input-label dark:text-gray-300\">{{ setting('select-label') }}</span>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded w-full\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Other input (only if 'Other' selected) -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n <label class=\"input-label dark:text-gray-300\">{{ setting('other-label') }}</label>\r\n <div class=\"relative\">\r\n <input\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n />\r\n </div>\r\n <small *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Other is required.\r\n </small>\r\n </div>\r\n </div>\r\n\r\n \r\n </form>\r\n</div>\r\n\r\n\r\n</fx-component>\r\n\r\n <!-- <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small> -->", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:is() .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:is() .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:is() .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:is() .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}.confirmation-dialog .p-dialog-content{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: CalendarModule }] });
111
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownWithOtherComponent, isStandalone: true, selector: "dropdown-with-other", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center custom-dropdown\" [ngClass]=\"setting('customClass')\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n\r\n <!-- <label class=\"mb-1 font-semibold text-sm\"></label> -->\r\n <span class=\"input-label dark:text-gray-300\">{{ setting('select-label') }}</span>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded w-full\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Other input (only if 'Other' selected) -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n <label class=\"input-label dark:text-gray-300\">{{ setting('other-label') }}</label>\r\n <div class=\"relative\">\r\n <input\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n />\r\n </div>\r\n <small *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Other is required.\r\n </small>\r\n </div>\r\n </div>\r\n\r\n \r\n </form>\r\n</div>\r\n\r\n\r\n</fx-component>\r\n\r\n <!-- <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small> -->", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:is() .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:is() .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:is() .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:is() .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}.confirmation-dialog .p-dialog-content{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: CalendarModule }] });
111
112
  }
112
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownWithOtherComponent, decorators: [{
113
114
  type: Component,
114
- args: [{ selector: 'dropdown-with-other', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent, CalendarModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center custom-dropdown\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n\r\n <!-- <label class=\"mb-1 font-semibold text-sm\"></label> -->\r\n <span class=\"input-label dark:text-gray-300\">{{ setting('select-label') }}</span>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded w-full\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Other input (only if 'Other' selected) -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n <label class=\"input-label dark:text-gray-300\">{{ setting('other-label') }}</label>\r\n <div class=\"relative\">\r\n <input\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n />\r\n </div>\r\n <small *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Other is required.\r\n </small>\r\n </div>\r\n </div>\r\n\r\n \r\n </form>\r\n</div>\r\n\r\n\r\n</fx-component>\r\n\r\n <!-- <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small> -->", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:is() .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:is() .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:is() .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:is() .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}.confirmation-dialog .p-dialog-content{text-align:center}\n"] }]
115
+ args: [{ selector: 'dropdown-with-other', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent, CalendarModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center custom-dropdown\" [ngClass]=\"setting('customClass')\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n\r\n <!-- <label class=\"mb-1 font-semibold text-sm\"></label> -->\r\n <span class=\"input-label dark:text-gray-300\">{{ setting('select-label') }}</span>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded w-full\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Other input (only if 'Other' selected) -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n <label class=\"input-label dark:text-gray-300\">{{ setting('other-label') }}</label>\r\n <div class=\"relative\">\r\n <input\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n />\r\n </div>\r\n <small *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Other is required.\r\n </small>\r\n </div>\r\n </div>\r\n\r\n \r\n </form>\r\n</div>\r\n\r\n\r\n</fx-component>\r\n\r\n <!-- <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small> -->", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:is() .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:is() .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:is() .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:is() .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}.confirmation-dialog .p-dialog-content{text-align:center}\n"] }]
115
116
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }, { type: i3.ApiServiceRegistry }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVTFDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBZ0J6QztJQUErQjtJQUF5QjtJQUF5RDtJQWYvSCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQzFDLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsT0FBTyxHQUFHO1FBQ0osRUFBRSxXQUFXLEVBQUUs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QUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUVMLENBQUM7d0dBckdZLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHNHQ2pCdkMsOGpGQXVFa0IsNDdGRDFETixZQUFZLCtQQUFFLG1CQUFtQix1MkNBQUUsV0FBVywrQkFBRSxXQUFXLDRFQUFFLGNBQWM7OzRGQUkxRSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNlbGVjdFNldHRpbmcsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHJvcGRvd24td2l0aC1vdGhlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLXdpdGgtb3RoZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duV2l0aE90aGVyQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxucHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbnByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpO1xyXG5mb3JtT2JqZWN0OiBvYmplY3QgPSB7fTtcclxub3B0aW9ucyA9IFtcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDEnLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMScgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDInLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMicgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDMnLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMycgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ290aGVyJywgb3B0aW9uTmFtZTogJ090aGVyJyB9XHJcbl07XHJcblxyXG4gICAgIHB1YmxpYyBkcm9wRG93bkZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gIHNlbGVjdGVkT3B0aW9uOiBbJycsIFtdXSxcclxuICBvdGhlcklucHV0OiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG59KTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSxwcml2YXRlIGZ4QXBpU2VydmljZTogQXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLmRyb3BEb3duRm9ybSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgICAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuIHRoaXMuZHJvcERvd25Gb3JtLnBhdGNoVmFsdWUodGhpcy5mb3JtT2JqZWN0KTtcclxuICAgIH0sMTAwKVxyXG4gICBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgIFxyXG4gICBcclxuICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2Ryb3Bkb3duLXdpdGgtb3RoZXInKSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtT2JqZWN0ID0gdmFsdWU7XHJcbiAgICAgICAgIH1cclxuICAgICAgIH1cclxuICB9KVxyXG5cclxuICAvLyAgdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdzZWxlY3RlZE9wdGlvbicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpO1xyXG4gIC8vICAgaWYgKHZhbHVlID09PSAnb3RoZXInKSB7XHJcbiAgLy8gICAgIG90aGVyQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBvdGhlckNvbnRyb2w/LmRpc2FibGUoKTtcclxuICAvLyAgICAgb3RoZXJDb250cm9sPy5yZXNldCgpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH0pO1xyXG4gIC8vIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLmZ4QXBpU2VydmljZS5nZXRTZXJ2aWNlVXJsKHRoaXMuc2V0dGluZygnc2VydmljZU5hbWUnKSk7XHJcbiAgLy8gdGhpcy5nZXRPcHRpb25zKHNlcnZpY2VVcmwsdGhpcy5zZXR0aW5nKCdjbGluaWNhbE5vdGVzVVJMJykpO1xyXG5cclxuICB0aGlzLmRyb3BEb3duRm9ybS5nZXQoJ3NlbGVjdGVkT3B0aW9uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpO1xyXG5cclxuICBpZiAodmFsdWUgPT09ICdvdGhlcicpIHtcclxuICAgIG90aGVyQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICB9IGVsc2Uge1xyXG4gICAgb3RoZXJDb250cm9sPy5kaXNhYmxlKCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LnJlc2V0KCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LmNsZWFyVmFsaWRhdG9ycygpOyAvL1xyXG4gIH1cclxuXHJcbiAgb3RoZXJDb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7IC8vXHJcbiAgb3RoZXJDb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XHJcbn0pO1xyXG5cclxufVxyXG5cclxuICAgICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdjbGluaWNhbE5vdGVzVVJMJywgJHRpdGxlOiAnQVBJIFVybCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdzZWxlY3QtbGFiZWwnLCAkdGl0bGU6ICdMYWJlbCcsIHZhbHVlOiAnJyB9KSwgXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItbGFiZWwnLCAkdGl0bGU6ICdPdGhlciBMYWJlbCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItcGxhY2Vob2xkZXInLCAkdGl0bGU6ICdPdGhlciBQbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9KSwgIFxyXG4gICAgICAgICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2VOYW1lJywgJHRpdGxlOiAnU2VydmljZScsIHZhbHVlOiAnJ30sIFt7b3B0aW9uOiAnVXNlciBTZXJ2aWNlJywgdmFsdWU6ICd1c2VyX3NlcnZpY2UnfSwge29wdGlvbjogJ1BhdGllbnQgU2VydmljZScsIHZhbHVlOiAncGF0aWVudF9zZXJ2aWNlJ30se29wdGlvbjogJ1dvcmtmbG93IFNlcnZpY2UnLCB2YWx1ZTogJ3dvcmtmbG93X3NlcnZpY2UnfV0pLFxyXG4gICAgICAgICAgICAgIC8vIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2UnLCAkdGl0bGU6ICdTZXJ2aWNlJywgdmFsdWU6ICdsb2NhbCd9LCBbe29wdGlvbjogJ0xvY2FsJywgdmFsdWU6ICdsb2NhbCd9LCB7b3B0aW9uOiAnUUEnLCB2YWx1ZTogJ3FhJ30se29wdGlvbjogJ1VBVCcsIHZhbHVlOiAndWF0J30se29wdGlvbjogJ1Byb2R1Y3Rpb24nLCB2YWx1ZTogJ3Byb2QnfV0pLCAgICAgICAgIFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgICByZXR1cm4gW0Z4VmFsaWRhdG9yU2VydmljZS5yZXF1aXJlZF07XHJcbiAgICAgICAgfVxyXG5cclxuICBnZXRPcHRpb25zKHNlcnZpY2VVcmw6c3RyaW5nLHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgdGhpcy5odHRwLmdldDxhbnlbXT4oZmluYWxVcmwpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2U7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdPcHRpb25zOicsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgb3B0aW9ucycsIGVycik7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJlbGF0aXZlXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRyb3BEb3duRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG4gICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJpbnB1dC10aXRsZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZFwiPlxyXG4gICAgPG9wdGlvbiAgdmFsdWU9XCJcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25WYWx1ZVwiPlxyXG4gICAgICB7eyBvcHRpb24/Lm9wdGlvbk5hbWUgfX1cclxuICAgIDwvb3B0aW9uPlxyXG4gIDwvc2VsZWN0PlxyXG5cclxuICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiaW5wdXQtdGl0bGVcIj57eyBzZXR0aW5nKCdsYWJlbCcpIH19PC9sYWJlbD5cclxuICA8aW5wdXRcclxuICAgICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8udmFsdWUgPT09ICdvdGhlcidcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICBwbGFjZWhvbGRlcj1cImVudGVyIG90aGVyIG5vdGVzXCJcclxuICAgIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIGZsZXgtMVwiXHJcbiAgLz5cclxuXHJcbiAgXHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+IC0tPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBjdXN0b20tZHJvcGRvd25cIj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRyb3BEb3duRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtNCBpdGVtcy1zdGFydFwiPlxyXG4gICAgXHJcbiAgICA8IS0tIERyb3Bkb3duIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy0xLzJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcblxyXG4gICAgICA8IS0tIDxsYWJlbCBjbGFzcz1cIm1iLTEgZm9udC1zZW1pYm9sZCB0ZXh0LXNtXCI+PC9sYWJlbD4gLS0+XHJcbiAgICAgIDxzcGFuICBjbGFzcz1cImlucHV0LWxhYmVsIGRhcms6dGV4dC1ncmF5LTMwMFwiPnt7IHNldHRpbmcoJ3NlbGVjdC1sYWJlbCcpIH19PC9zcGFuPlxyXG4gICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkT3B0aW9uXCIgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCI+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25WYWx1ZVwiPlxyXG4gICAgICAgICAge3sgb3B0aW9uPy5vcHRpb25OYW1lIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gT3RoZXIgaW5wdXQgKG9ubHkgaWYgJ090aGVyJyBzZWxlY3RlZCkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTEvMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwgZGFyazp0ZXh0LWdyYXktMzAwXCI+e3sgc2V0dGluZygnb3RoZXItbGFiZWwnKSB9fTwvbGFiZWw+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3NldHRpbmcoJ290aGVyLXBsYWNlaG9sZGVyJyl9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCJcclxuICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImRyb3BEb3duRm9ybS5nZXQoJ290aGVySW5wdXQnKT8udG91Y2hlZCAmJiBkcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIE90aGVyIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIFxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcblxyXG5cclxuPC9meC1jb21wb25lbnQ+XHJcblxyXG4gICAgICA8IS0tIDxzbWFsbCAqbmdJZj1cImRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy50b3VjaGVkICYmIGRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAgICBEYXRlIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPiAtLT4iXX0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVTFDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBZ0J6QztJQUErQjtJQUF5QjtJQUF5RDtJQWYvSCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQzFDLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsT0FBTyxHQUFHO1FBQ0osRUFBRSxXQUFXLEVBQUUs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RUFBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQztZQUN6TywyTkFBMk47U0FDOU4sQ0FBQztJQUNKLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVAsVUFBVSxDQUFDLFVBQWlCLEVBQUMsR0FBVztRQUN0QyxNQUFNLFFBQVEsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBRUwsQ0FBQzt3R0F0R1ksMEJBQTBCOzRGQUExQiwwQkFBMEIsc0dDakJ2QyxvbUZBdUVrQiw0N0ZEMUROLFlBQVksNlZBQUUsbUJBQW1CLHUyQ0FBRSxXQUFXLCtCQUFFLFdBQVcsNEVBQUUsY0FBYzs7NEZBSTFFLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2VsZWN0U2V0dGluZywgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9jb3JlJ1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkcm9wZG93bi13aXRoLW90aGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudCwgQ2FsZW5kYXJNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9wZG93bi13aXRoLW90aGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25XaXRoT3RoZXJDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG5wcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxucHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KCk7XHJcbmZvcm1PYmplY3Q6IG9iamVjdCA9IHt9O1xyXG5vcHRpb25zID0gW1xyXG4gICAgICB7IG9wdGlvblZhbHVlOiAnQ2xpbmljYWwgTm90ZXMgMScsIG9wdGlvbk5hbWU6ICdDbGluaWNhbCBOb3RlcyAxJyB9LFxyXG4gICAgICB7IG9wdGlvblZhbHVlOiAnQ2xpbmljYWwgTm90ZXMgMicsIG9wdGlvbk5hbWU6ICdDbGluaWNhbCBOb3RlcyAyJyB9LFxyXG4gICAgICB7IG9wdGlvblZhbHVlOiAnQ2xpbmljYWwgTm90ZXMgMycsIG9wdGlvbk5hbWU6ICdDbGluaWNhbCBOb3RlcyAzJyB9LFxyXG4gICAgICB7IG9wdGlvblZhbHVlOiAnb3RoZXInLCBvcHRpb25OYW1lOiAnT3RoZXInIH1cclxuXTtcclxuXHJcbiAgICAgcHVibGljIGRyb3BEb3duRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgc2VsZWN0ZWRPcHRpb246IFsnJywgW11dLFxyXG4gIG90aGVySW5wdXQ6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfV0sXHJcbn0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLHByaXZhdGUgZnhBcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcclxuICAgICAgICBzdXBlcihjZHIpXHJcbiAgICAgICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZHJvcERvd25Gb3JtKTtcclxuICAgICAgICB9KTtcclxuICAgICAgIFxyXG4gICAgICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gdGhpcy5kcm9wRG93bkZvcm0ucGF0Y2hWYWx1ZSh0aGlzLmZvcm1PYmplY3QpO1xyXG4gICAgfSwxMDApXHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuICAgXHJcbiAgIFxyXG4gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnZHJvcGRvd24td2l0aC1vdGhlcicpKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1PYmplY3QgPSB2YWx1ZTtcclxuICAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gIH0pXHJcblxyXG4gIC8vICB0aGlzLmRyb3BEb3duRm9ybS5nZXQoJ3NlbGVjdGVkT3B0aW9uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gIC8vICAgY29uc3Qgb3RoZXJDb250cm9sID0gdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk7XHJcbiAgLy8gICBpZiAodmFsdWUgPT09ICdvdGhlcicpIHtcclxuICAvLyAgICAgb3RoZXJDb250cm9sPy5lbmFibGUoKTtcclxuICAvLyAgIH0gZWxzZSB7XHJcbiAgLy8gICAgIG90aGVyQ29udHJvbD8uZGlzYWJsZSgpO1xyXG4gIC8vICAgICBvdGhlckNvbnRyb2w/LnJlc2V0KCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfSk7XHJcbiAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZnhBcGlTZXJ2aWNlLmdldFNlcnZpY2VVcmwodGhpcy5zZXR0aW5nKCdzZXJ2aWNlTmFtZScpKTtcclxuICB0aGlzLmdldE9wdGlvbnMoc2VydmljZVVybCx0aGlzLnNldHRpbmcoJ2NsaW5pY2FsTm90ZXNVUkwnKSk7XHJcblxyXG4gIHRoaXMuZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgY29uc3Qgb3RoZXJDb250cm9sID0gdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk7XHJcblxyXG4gIGlmICh2YWx1ZSA9PT0gJ290aGVyJykge1xyXG4gICAgb3RoZXJDb250cm9sPy5lbmFibGUoKTtcclxuICAgIG90aGVyQ29udHJvbD8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBvdGhlckNvbnRyb2w/LmRpc2FibGUoKTtcclxuICAgIG90aGVyQ29udHJvbD8ucmVzZXQoKTtcclxuICAgIG90aGVyQ29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7IC8vXHJcbiAgfVxyXG5cclxuICBvdGhlckNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTsgLy9cclxuICBvdGhlckNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcclxufSk7XHJcblxyXG59XHJcblxyXG4gICAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2NsaW5pY2FsTm90ZXNVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnY3VzdG9tQ2xhc3MnLCAkdGl0bGU6ICdDdXN0b20gQ2xhc3MgTmFtZScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdzZWxlY3QtbGFiZWwnLCAkdGl0bGU6ICdMYWJlbCcsIHZhbHVlOiAnJyB9KSwgXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItbGFiZWwnLCAkdGl0bGU6ICdPdGhlciBMYWJlbCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItcGxhY2Vob2xkZXInLCAkdGl0bGU6ICdPdGhlciBQbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9KSwgIFxyXG4gICAgICAgICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2VOYW1lJywgJHRpdGxlOiAnU2VydmljZScsIHZhbHVlOiAnJ30sIFt7b3B0aW9uOiAnVXNlciBTZXJ2aWNlJywgdmFsdWU6ICd1c2VyX3NlcnZpY2UnfSwge29wdGlvbjogJ1BhdGllbnQgU2VydmljZScsIHZhbHVlOiAncGF0aWVudF9zZXJ2aWNlJ30se29wdGlvbjogJ1dvcmtmbG93IFNlcnZpY2UnLCB2YWx1ZTogJ3dvcmtmbG93X3NlcnZpY2UnfV0pLFxyXG4gICAgICAgICAgICAgIC8vIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2UnLCAkdGl0bGU6ICdTZXJ2aWNlJywgdmFsdWU6ICdsb2NhbCd9LCBbe29wdGlvbjogJ0xvY2FsJywgdmFsdWU6ICdsb2NhbCd9LCB7b3B0aW9uOiAnUUEnLCB2YWx1ZTogJ3FhJ30se29wdGlvbjogJ1VBVCcsIHZhbHVlOiAndWF0J30se29wdGlvbjogJ1Byb2R1Y3Rpb24nLCB2YWx1ZTogJ3Byb2QnfV0pLCAgICAgICAgIFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgICByZXR1cm4gW0Z4VmFsaWRhdG9yU2VydmljZS5yZXF1aXJlZF07XHJcbiAgICAgICAgfVxyXG5cclxuICBnZXRPcHRpb25zKHNlcnZpY2VVcmw6c3RyaW5nLHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgdGhpcy5odHRwLmdldDxhbnlbXT4oZmluYWxVcmwpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2U7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdPcHRpb25zOicsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgb3B0aW9ucycsIGVycik7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJlbGF0aXZlXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRyb3BEb3duRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG4gICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJpbnB1dC10aXRsZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZFwiPlxyXG4gICAgPG9wdGlvbiAgdmFsdWU9XCJcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25WYWx1ZVwiPlxyXG4gICAgICB7eyBvcHRpb24/Lm9wdGlvbk5hbWUgfX1cclxuICAgIDwvb3B0aW9uPlxyXG4gIDwvc2VsZWN0PlxyXG5cclxuICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiaW5wdXQtdGl0bGVcIj57eyBzZXR0aW5nKCdsYWJlbCcpIH19PC9sYWJlbD5cclxuICA8aW5wdXRcclxuICAgICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8udmFsdWUgPT09ICdvdGhlcidcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICBwbGFjZWhvbGRlcj1cImVudGVyIG90aGVyIG5vdGVzXCJcclxuICAgIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIGZsZXgtMVwiXHJcbiAgLz5cclxuXHJcbiAgXHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+IC0tPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBjdXN0b20tZHJvcGRvd25cIiAgW25nQ2xhc3NdPVwic2V0dGluZygnY3VzdG9tQ2xhc3MnKVwiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZHJvcERvd25Gb3JtXCIgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC00IGl0ZW1zLXN0YXJ0XCI+XHJcbiAgICBcclxuICAgIDwhLS0gRHJvcGRvd24gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTEvMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuXHJcbiAgICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwibWItMSBmb250LXNlbWlib2xkIHRleHQtc21cIj48L2xhYmVsPiAtLT5cclxuICAgICAgPHNwYW4gIGNsYXNzPVwiaW5wdXQtbGFiZWwgZGFyazp0ZXh0LWdyYXktMzAwXCI+e3sgc2V0dGluZygnc2VsZWN0LWxhYmVsJykgfX08L3NwYW4+XHJcbiAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZCB3LWZ1bGxcIj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLm9wdGlvblZhbHVlXCI+XHJcbiAgICAgICAgICB7eyBvcHRpb24/Lm9wdGlvbk5hbWUgfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBPdGhlciBpbnB1dCAob25seSBpZiAnT3RoZXInIHNlbGVjdGVkKSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctMS8yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBkYXJrOnRleHQtZ3JheS0zMDBcIj57eyBzZXR0aW5nKCdvdGhlci1sYWJlbCcpIH19PC9sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlcklucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7c2V0dGluZygnb3RoZXItcGxhY2Vob2xkZXInKX19XCJcclxuICAgICAgICBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZCB3LWZ1bGxcIlxyXG4gICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpPy50b3VjaGVkICYmIGRyb3BEb3duRm9ybS5nZXQoJ290aGVySW5wdXQnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+XHJcbiAgICAgICAgT3RoZXIgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgXHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuXHJcblxyXG48L2Z4LWNvbXBvbmVudD5cclxuXHJcbiAgICAgIDwhLS0gPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIERhdGUgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+IC0tPiJdfQ==