@ohioepa/oepa-ui-lib 2.0.9 → 2.0.10

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.
@@ -9,11 +9,11 @@ export class MessageListComponent {
9
9
  ngOnInit() {
10
10
  }
11
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MessageListComponent, selector: "oepa-message-list", inputs: { messageList: "messageList", messageClass: "messageClass", messageLabel: "messageLabel" }, ngImport: i0, template: "<div *ngIf=\"messageList && messageList.length > 0\" class=\"row\" [ngClass]=\"messageClass\">\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"messageList=[]\">\n </button>\n <label *ngIf=\"messageLabel\">{{messageLabel}}</label>\n <ul>\n <li *ngFor=\"let message of messageList\">{{message}}</li>\n </ul>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MessageListComponent, selector: "oepa-message-list", inputs: { messageList: "messageList", messageClass: "messageClass", messageLabel: "messageLabel" }, ngImport: i0, template: "<div *ngIf=\"messageList && messageList.length > 0\" class=\"row\" [ngClass]=\"messageClass\">\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"messageList=[]\">\n </button>\n <span *ngIf=\"messageLabel\">{{messageLabel}}</span>\n <ul>\n <li *ngFor=\"let message of messageList\">{{message}}</li>\n </ul>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageListComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'oepa-message-list', template: "<div *ngIf=\"messageList && messageList.length > 0\" class=\"row\" [ngClass]=\"messageClass\">\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"messageList=[]\">\n </button>\n <label *ngIf=\"messageLabel\">{{messageLabel}}</label>\n <ul>\n <li *ngFor=\"let message of messageList\">{{message}}</li>\n </ul>\n </div>\n</div>" }]
16
+ args: [{ selector: 'oepa-message-list', template: "<div *ngIf=\"messageList && messageList.length > 0\" class=\"row\" [ngClass]=\"messageClass\">\n <div class=\"col-sm-12\">\n <button type=\"button\" class=\"btn-close float-end\" aria-label=\"Close\" (click)=\"messageList=[]\">\n </button>\n <span *ngIf=\"messageLabel\">{{messageLabel}}</span>\n <ul>\n <li *ngFor=\"let message of messageList\">{{message}}</li>\n </ul>\n </div>\n</div>" }]
17
17
  }], ctorParameters: () => [], propDecorators: { messageList: [{
18
18
  type: Input
19
19
  }], messageClass: [{
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
21
21
  }], messageLabel: [{
22
22
  type: Input
23
23
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvbWVzc2FnZS1saXN0L21lc3NhZ2UtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL21lc3NhZ2UtbGlzdC9tZXNzYWdlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU96RCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLFdBQVcsR0FBa0IsRUFBRSxDQUFDO0lBQ2hDLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUVuQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzt3R0FSVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw2SkNQakMsNlpBU007OzRGREZPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7d0RBS3BCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtbWVzc2FnZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lc3NhZ2UtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtZXNzYWdlTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBASW5wdXQoKSBtZXNzYWdlQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtZXNzYWdlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cIm1lc3NhZ2VMaXN0ICYmIG1lc3NhZ2VMaXN0Lmxlbmd0aCA+IDBcIiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cIm1lc3NhZ2VDbGFzc1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgZmxvYXQtZW5kXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1lc3NhZ2VMaXN0PVtdXCI+XG4gICAgPC9idXR0b24+XG4gICAgPGxhYmVsICpuZ0lmPVwibWVzc2FnZUxhYmVsXCI+e3ttZXNzYWdlTGFiZWx9fTwvbGFiZWw+XG4gICAgPHVsPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1lc3NhZ2VMaXN0XCI+e3ttZXNzYWdlfX08L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+Il19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvbWVzc2FnZS1saXN0L21lc3NhZ2UtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL21lc3NhZ2UtbGlzdC9tZXNzYWdlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU96RCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLFdBQVcsR0FBa0IsRUFBRSxDQUFDO0lBQ2hDLFlBQVksR0FBVyxFQUFFLENBQUM7SUFDMUIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUVuQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzt3R0FSVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw2SkNQakMsMlpBU007OzRGREZPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7d0RBS3BCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29lcGEtbWVzc2FnZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lc3NhZ2UtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtZXNzYWdlTGlzdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBASW5wdXQoKSBtZXNzYWdlQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBtZXNzYWdlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cIm1lc3NhZ2VMaXN0ICYmIG1lc3NhZ2VMaXN0Lmxlbmd0aCA+IDBcIiBjbGFzcz1cInJvd1wiIFtuZ0NsYXNzXT1cIm1lc3NhZ2VDbGFzc1wiPlxuICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2UgZmxvYXQtZW5kXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1lc3NhZ2VMaXN0PVtdXCI+XG4gICAgPC9idXR0b24+XG4gICAgPHNwYW4gKm5nSWY9XCJtZXNzYWdlTGFiZWxcIj57e21lc3NhZ2VMYWJlbH19PC9zcGFuPlxuICAgIDx1bD5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlTGlzdFwiPnt7bWVzc2FnZX19PC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -148,11 +148,11 @@ export class NotesModalComponent {
148
148
  this.bsModalRef.hide();
149
149
  }
150
150
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotesModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.BsModalRef }, { token: i2.BsModalService }, { token: i3.OepaMappingService }], target: i0.ɵɵFactoryTarget.Component });
151
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NotesModalComponent, selector: "oepa-notes-modal", inputs: { loginName: "loginName", deleteAnyNoteAllowed: "deleteAnyNoteAllowed", deleteOwnNoteAllowed: "deleteOwnNoteAllowed", createNoteAllowed: "createNoteAllowed", external: "external", errorMessage: "errorMessage", notes: "notes", defaultNoteType: "defaultNoteType" }, outputs: { onAddNote: "onAddNote", onDeleteNote: "onDeleteNote" }, ngImport: i0, template: "<div class=\"modal-header\">\n\t<h3 class=\"modal-title\">Notes</h3>\n</div>\n\n<div class=\"modal-body\">\n\t\n <div *ngIf=\"errorMessage\">\n\t\t<div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n\n <div *ngIf=\"data.length === 0\" class=\"alert alert-info text-center\"><em>There are no notes defined.</em></div>\n\n <oepa-table [config]=\"tblConfig\" [data]=\"data\" [header]=\"header\" (actionClicked)=\"noteActionClicked($event)\"></oepa-table>\n\n \t\n\t<form *ngIf=\"createNoteAllowed\" class=\"form-horizontal\">\n \n <hr>\n\t\n <div [formGroup]=\"newNoteForm\" class=\"form-group\">\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\">Type:</label>\n <div class=\"col-sm-10\">\n <span class=\"form-control\" id=\"NoteTypeText\">{{newNoteType.name}}</span>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\" for=\"NoteInput\">Note:</label>\n <div class=\"col-sm-10\">\n <input class=\"form-control\" type=\"input\" formControlName=\"newNoteText\" id=\"NoteInput\" maxlength=\"2000\"/>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\"></label>\n <div class=\"col-sm-10\">\n <span *ngIf=\"isCreating\"><span class=\"spinner-border text-primary\" role=\"status\"></span></span>\n <button *ngIf=\"!isCreating\" class=\"btn btn-primary mr-1\" id=\"AddNoteBtn\" (click)=\"createNote()\" [disabled]=\"newNoteForm.invalid\" aria-label=\"Add Note\">\n <span>Add Note</span>\n </button>\n </div>\n </div>\n\n\n </div> \n </form> <!-- form -->\n \n</div>\n\t\n<div class=\"modal-footer\">\n\t<button class=\"btn btn-primary mr-1\" id=\"DoneBtn\" (click)=\"done()\" aria-label=\"Done\">Done</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
151
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NotesModalComponent, selector: "oepa-notes-modal", inputs: { loginName: "loginName", deleteAnyNoteAllowed: "deleteAnyNoteAllowed", deleteOwnNoteAllowed: "deleteOwnNoteAllowed", createNoteAllowed: "createNoteAllowed", external: "external", errorMessage: "errorMessage", notes: "notes", defaultNoteType: "defaultNoteType" }, outputs: { onAddNote: "onAddNote", onDeleteNote: "onDeleteNote" }, ngImport: i0, template: "<div class=\"modal-header\">\n\t<h1 class=\"modal-title\" id=\"modalTitle\">Notes</h1>\n</div>\n\n<div class=\"modal-body\">\n\t\n <div *ngIf=\"errorMessage\">\n\t\t<div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n\n <div *ngIf=\"data.length === 0\" class=\"alert alert-info text-center\"><em>There are no notes defined.</em></div>\n\n <oepa-table [config]=\"tblConfig\" [data]=\"data\" [header]=\"header\" (actionClicked)=\"noteActionClicked($event)\"></oepa-table>\n\n \t\n\t<form *ngIf=\"createNoteAllowed\" class=\"form-horizontal\">\n \n <hr>\n\t\n <div [formGroup]=\"newNoteForm\" class=\"form-group\">\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\">Type:</label>\n <div class=\"col-sm-10\">\n <span class=\"form-control\" id=\"NoteTypeText\">{{newNoteType.name}}</span>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\" for=\"NoteInput\">Note:</label>\n <div class=\"col-sm-10\">\n <input class=\"form-control\" type=\"input\" formControlName=\"newNoteText\" id=\"NoteInput\" maxlength=\"2000\"/>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\"></label>\n <div class=\"col-sm-10\">\n <span *ngIf=\"isCreating\"><span class=\"spinner-border text-primary\" role=\"status\"></span></span>\n <button *ngIf=\"!isCreating\" class=\"btn btn-primary mr-1\" id=\"AddNoteBtn\" (click)=\"createNote()\" [disabled]=\"newNoteForm.invalid\" aria-label=\"Add Note\">\n <span>Add Note</span>\n </button>\n </div>\n </div>\n\n\n </div> \n </form> <!-- form -->\n \n</div>\n\t\n<div class=\"modal-footer\">\n\t<button class=\"btn btn-primary mr-1\" id=\"DoneBtn\" (click)=\"done()\" aria-label=\"Done\">Done</button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.TableComponent, selector: "oepa-table", inputs: ["tableId", "config", "complexHeader", "header", "customBtnLabel", "customBtnVisible", "customBtnEnabled", "data", "totalRow"], outputs: ["cellClicked", "actionClicked", "rowSelected", "customBtnClicked"] }] });
152
152
  }
153
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotesModalComponent, decorators: [{
154
154
  type: Component,
155
- args: [{ selector: 'oepa-notes-modal', template: "<div class=\"modal-header\">\n\t<h3 class=\"modal-title\">Notes</h3>\n</div>\n\n<div class=\"modal-body\">\n\t\n <div *ngIf=\"errorMessage\">\n\t\t<div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n\n <div *ngIf=\"data.length === 0\" class=\"alert alert-info text-center\"><em>There are no notes defined.</em></div>\n\n <oepa-table [config]=\"tblConfig\" [data]=\"data\" [header]=\"header\" (actionClicked)=\"noteActionClicked($event)\"></oepa-table>\n\n \t\n\t<form *ngIf=\"createNoteAllowed\" class=\"form-horizontal\">\n \n <hr>\n\t\n <div [formGroup]=\"newNoteForm\" class=\"form-group\">\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\">Type:</label>\n <div class=\"col-sm-10\">\n <span class=\"form-control\" id=\"NoteTypeText\">{{newNoteType.name}}</span>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\" for=\"NoteInput\">Note:</label>\n <div class=\"col-sm-10\">\n <input class=\"form-control\" type=\"input\" formControlName=\"newNoteText\" id=\"NoteInput\" maxlength=\"2000\"/>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\"></label>\n <div class=\"col-sm-10\">\n <span *ngIf=\"isCreating\"><span class=\"spinner-border text-primary\" role=\"status\"></span></span>\n <button *ngIf=\"!isCreating\" class=\"btn btn-primary mr-1\" id=\"AddNoteBtn\" (click)=\"createNote()\" [disabled]=\"newNoteForm.invalid\" aria-label=\"Add Note\">\n <span>Add Note</span>\n </button>\n </div>\n </div>\n\n\n </div> \n </form> <!-- form -->\n \n</div>\n\t\n<div class=\"modal-footer\">\n\t<button class=\"btn btn-primary mr-1\" id=\"DoneBtn\" (click)=\"done()\" aria-label=\"Done\">Done</button>\n</div>\n" }]
155
+ args: [{ selector: 'oepa-notes-modal', template: "<div class=\"modal-header\">\n\t<h1 class=\"modal-title\" id=\"modalTitle\">Notes</h1>\n</div>\n\n<div class=\"modal-body\">\n\t\n <div *ngIf=\"errorMessage\">\n\t\t<div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n\n <div *ngIf=\"data.length === 0\" class=\"alert alert-info text-center\"><em>There are no notes defined.</em></div>\n\n <oepa-table [config]=\"tblConfig\" [data]=\"data\" [header]=\"header\" (actionClicked)=\"noteActionClicked($event)\"></oepa-table>\n\n \t\n\t<form *ngIf=\"createNoteAllowed\" class=\"form-horizontal\">\n \n <hr>\n\t\n <div [formGroup]=\"newNoteForm\" class=\"form-group\">\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\">Type:</label>\n <div class=\"col-sm-10\">\n <span class=\"form-control\" id=\"NoteTypeText\">{{newNoteType.name}}</span>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\" for=\"NoteInput\">Note:</label>\n <div class=\"col-sm-10\">\n <input class=\"form-control\" type=\"input\" formControlName=\"newNoteText\" id=\"NoteInput\" maxlength=\"2000\"/>\n </div>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-12 control-label\"></label> \n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-2 control-label\"></label>\n <div class=\"col-sm-10\">\n <span *ngIf=\"isCreating\"><span class=\"spinner-border text-primary\" role=\"status\"></span></span>\n <button *ngIf=\"!isCreating\" class=\"btn btn-primary mr-1\" id=\"AddNoteBtn\" (click)=\"createNote()\" [disabled]=\"newNoteForm.invalid\" aria-label=\"Add Note\">\n <span>Add Note</span>\n </button>\n </div>\n </div>\n\n\n </div> \n </form> <!-- form -->\n \n</div>\n\t\n<div class=\"modal-footer\">\n\t<button class=\"btn btn-primary mr-1\" id=\"DoneBtn\" (click)=\"done()\" aria-label=\"Done\">Done</button>\n</div>\n" }]
156
156
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.BsModalRef }, { type: i2.BsModalService }, { type: i3.OepaMappingService }], propDecorators: { loginName: [{
157
157
  type: Input
158
158
  }], deleteAnyNoteAllowed: [{
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
174
174
  }], onDeleteNote: [{
175
175
  type: Output
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9ub3Rlcy1tb2RhbC9ub3Rlcy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL25vdGVzLW1vZGFsL25vdGVzLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVdwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7OztBQVNoRyxNQUFNLE9BQU8sbUJBQW1CO0lBb0RWO0lBQXdCO0lBQWdDO0lBQ3hEO0lBcERiLFdBQVcsQ0FBYTtJQUN4QixXQUFXLENBQWlCO0lBQzVCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVsQixnQkFBZ0IsQ0FBaUI7SUFDakMsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUVuQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUM3QixvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUduQyxJQUNXLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxD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LEVBQUUsQ0FBQyxDQUFDO1lBQy9FLEtBQUssQ0FBQyxPQUFRLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDO1lBQzdDLEtBQUssQ0FBQyxPQUFRLENBQUMsUUFBUSxHQUFHLDRFQUE0RSxDQUFDO1lBQ3ZHLEtBQUssQ0FBQyxPQUFRLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUN2QyxLQUFLLENBQUMsT0FBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDckMsS0FBSyxDQUFDLE9BQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQWhLVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiwyWUNyQmhDLHVuRUE4REE7OzRGRHpDYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0JBQWtCO3VLQWFuQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJSyxLQUFLO3NCQURmLEtBQUs7Z0JBYUssZUFBZTtzQkFEekIsS0FBSztnQkFVSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5pbXBvcnQgeyBPZXBhTWFwcGluZ1NlcnZpY2UsIE9FUEFSZWZlcmVuY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuaW1wb3J0IHsgT2VwYVRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgT2VwYVRhYmxlUm93IH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1yb3cnO1xuaW1wb3J0IHsgT2VwYVRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1jb25maWcnO1xuaW1wb3J0IHsgT2VwYVRhYmxlSGVhZGVyIH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1oZWFkZXInO1xuaW1wb3J0IHsgT2VwYUFjdGlvbkV2ZW50IH0gZnJvbSAnLi4vYWN0aW9uLWJ0bi9vZXBhLWFjdGlvbi1ldmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGUgfSBmcm9tICcuL29lcGEtbm90ZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1ub3Rlcy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3Rlcy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGVzLW1vZGFsLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3Rlc01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIG5ld05vdGVGb3JtITogRm9ybUdyb3VwO1xuICBwdWJsaWMgbmV3Tm90ZVR5cGUhOiBPRVBBUmVmZXJlbmNlO1xuICBwdWJsaWMgbmV3Tm90ZVRleHQ6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNDcmVhdGluZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2RlZmF1bHROb3RlVHlwZSE6IE9FUEFSZWZlcmVuY2U7XG4gIHByaXZhdGUgX25vdGVzOiBOb3RlW10gPSBbXTtcblxuICBASW5wdXQoKSBsb2dpbk5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkZWxldGVBbnlOb3RlQWxsb3dlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWxldGVPd25Ob3RlQWxsb3dlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBjcmVhdGVOb3RlQWxsb3dlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBleHRlcm5hbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIFxuICBASW5wdXQoKSBcbiAgcHVibGljIHNldCBub3Rlcyhub3RlczogTm90ZVtdKSB7XG4gICAgdGhpcy5pc0NyZWF0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5fbm90ZXMgPSBub3RlcztcbiAgICB0aGlzLmxvYWREYXRhKG5vdGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbm90ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vdGVzO1xuICB9XG5cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRlZmF1bHROb3RlVHlwZSh0eXBlOiBPRVBBUmVmZXJlbmNlKSB7XG4gICAgdGhpcy5fZGVmYXVsdE5vdGVUeXBlID0gdHlwZTtcbiAgICB0aGlzLm5ld05vdGVUeXBlID0gdHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdE5vdGVUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0Tm90ZVR5cGU7XG4gIH1cblxuICBAT3V0cHV0KCkgb25BZGROb3RlOiBFdmVudEVtaXR0ZXI8Tm90ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGU+KCk7XG4gIEBPdXRwdXQoKSBvbkRlbGV0ZU5vdGU6IEV2ZW50RW1pdHRlcjxOb3RlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Tm90ZT4oKTtcblxuICAgIC8vIFRhYmxlIGVsZW1lbnRzXG4gICAgcHVibGljIGRhdGE6IEFycmF5PE9lcGFUYWJsZVJvdz4gPSBbXTtcblxuICAgIHB1YmxpYyB0YmxDb25maWc6IE9lcGFUYWJsZUNvbmZpZyA9IHtcbiAgICB9O1xuICBcbiAgICBwdWJsaWMgaGVhZGVyOiBPZXBhVGFibGVIZWFkZXIgPSB7XG4gICAgICBjb2x1bW5zOiB0aGlzLmdldENvbHVtbnMoKVxuICAgIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLCBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbWFwcGluZ1NlcnZpY2U6IE9lcGFNYXBwaW5nU2VydmljZSkgeyBcbiAgfVxuXG4gIG5nT25Jbml0KCkgeyAgICBcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSgpO1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGFibGUoKSB7XG4gICAgdGhpcy5oZWFkZXIgPSB7XG4gICAgICBjb2x1bW5zOiB0aGlzLmdldENvbHVtbnMoKVxuICAgIH07XG4gICAgdGhpcy5sb2FkRGF0YSh0aGlzLm5vdGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1ucygpOiBBcnJheTxPZXBhVGFibGVDb2x1bW4+IHtcbiAgICBjb25zdCBjb2x1bW5zOiBBcnJheTxPZXBhVGFibGVDb2x1bW4+ID0gW1xuICAgICAgeyB0aXRsZTogJ05vdGUnLCBpZDogJ25vdGUnIH0sXG4gICAgXTtcblxuICAgIGlmICghdGhpcy5leHRlcm5hbCkge1xuICAgICAgY29sdW1ucy5wdXNoKHsgdGl0bGU6ICdUeXBlJywgaWQ6ICd0eXBlJyB9KTtcbiAgICAgIGNvbHVtbnMucHVzaCh7IHRpdGxlOiAnQWNjb3VudCcsIGlkOiAnYWNjb3VudCcgfSk7XG4gICAgfVxuXG4gICAgY29sdW1ucy5wdXNoKHsgdGl0bGU6ICdEYXRlJywgaWQ6ICdkYXRlJyB9KTtcblxuICAgIGlmICh0aGlzLmRlbGV0ZUFueU5vdGVBbGxvd2VkIHx8IHRoaXMuZGVsZXRlT3duTm90ZUFsbG93ZWQpIHtcbiAgICAgIGNvbHVtbnMucHVzaCh7IHRpdGxlOiAnQWN0aW9ucycsIGlkOiAnYWN0aW9ucycsIGFjdGlvbkNvbHVtbjogdHJ1ZSwgY2xhc3NOYW1lOiAnYWN0aW9uLWJ0bi1jb2wnIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGF0YShub3RlczogQXJyYXk8Tm90ZT4pIHtcbiAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICBpZiAobm90ZXMgJiYgbm90ZXMubGVuZ3RoKSB7XG4gICAgICBub3Rlcy5mb3JFYWNoKChub3RlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YS5wdXNoKHRoaXMuY29udmVydE5vdGVUb1RhYmxlUm93KG5vdGUpKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLnNwbGljZSgwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnROb3RlVG9UYWJsZVJvdyhub3RlOiBOb3RlKTogT2VwYVRhYmxlUm93IHtcbiAgICBjb25zdCByb3c6IE9lcGFUYWJsZVJvdyA9IHtcbiAgICAgIGNlbGxzOiBbXG4gICAgICAgIHsgaWQ6ICdub3RlJywgdmFsdWU6IG5vdGUuY29tbWVudCB9LFxuICAgICAgICB7IGlkOiAndHlwZScsIHZhbHVlOiBub3RlLnR5cGUgPyBub3RlLnR5cGUubmFtZSA6ICcnIH0sXG4gICAgICAgIHsgaWQ6ICdhY2NvdW50JywgdmFsdWU6IG5vdGUudXNlciB9LFxuICAgICAgICB7IGlkOiAnZGF0ZScsIHZhbHVlOiBub3RlLm5vdGVEYXRlID8gdGhpcy5tYXBwaW5nU2VydmljZS5tYXBEYXRlVG9EYXRlVGltZVN0cmluZyhuZXcgRGF0ZShub3RlLm5vdGVEYXRlKSk6IG51bGwsIFxuICAgICAgICAgICAgICAgIHNvcnRWYWx1ZTogbm90ZS5ub3RlRGF0ZSB9XG4gICAgICBdLFxuICAgICAgZGF0YVNvdXJjZTogbm90ZVxuICAgIH07XG4gICAgLy8gb25seSBkaXNwbGF5IGRlbGV0ZSBhY3Rpb24gaWYgbm90ZSBjYW4gYmUgZGVsZXRlZFxuICAgIGlmICgodGhpcy5kZWxldGVBbnlOb3RlQWxsb3dlZCB8fCAodGhpcy5kZWxldGVPd25Ob3RlQWxsb3dlZCAmJiB0aGlzLmxvZ2luTmFtZSA9PT0gbm90ZS51c2VyKSkgJiYgbm90ZS50eXBlPy5jb2RlICE9PSAnU3lzdGVtJykge1xuICAgICAgcm93LmFjdGlvbnMgPSBbXG4gICAgICAgIHsgdGl0bGU6ICdEZWxldGUnLCBjbGFzc05hbWU6ICdiaSBiaS14LWxnJyB9XG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3cuYWN0aW9ucyA9IFtcbiAgICAgICAgeyB0aXRsZTogJ05BJywgY2xhc3NOYW1lOiB1bmRlZmluZWQgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICBpZiAodGhpcy5uZXdOb3RlRm9ybSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm5ld05vdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIG5ld05vdGVUZXh0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm5ld05vdGVGb3JtLmNvbnRyb2xzWyduZXdOb3RlVGV4dCddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUobmV3Tm90ZVRleHQgPT4gdGhpcy5uZXdOb3RlVGV4dCA9IG5ld05vdGVUZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXdOb3RlRm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZU5vdGUoKSB7XG4gICAgdGhpcy5pc0NyZWF0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG5vdGU6IE5vdGUgPSB7XG4gICAgICB0eXBlOiB0aGlzLm5ld05vdGVUeXBlLFxuICAgICAgbm90ZURhdGU6IG5ldyBEYXRlKCksXG4gICAgICBjb21tZW50OiB0aGlzLm5ld05vdGVUZXh0LFxuICAgICAgdXNlcjogdGhpcy5sb2dpbk5hbWVcbiAgICB9O1xuICAgIHRoaXMub25BZGROb3RlLmVtaXQobm90ZSk7XG4gIH1cblxuICBub3RlQWN0aW9uQ2xpY2tlZChldmVudDogT2VwYUFjdGlvbkV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmFjdGlvbi50aXRsZSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5oZWFkZXJUZXh0ID0gJ0NvbmZpcm0gZGVsZXRlJztcbiAgICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuYm9keVRleHQgPSAnT25jZSBhIG5vdGUgaXMgZGVsZXRlZCBpdCBjYW5ub3QgYmUgdW5kb25lISBEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZG8gdGhpcz8nO1xuICAgICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQnRuTGFiZWwgPSAnWWVzJztcbiAgICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uRGVsZXRlTm90ZS5lbWl0KGV2ZW50LmRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZG9uZSgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0PGgzIGNsYXNzPVwibW9kYWwtdGl0bGVcIj5Ob3RlczwvaDM+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0XG4gIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIgcm9sZT1cImFsZXJ0XCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJkYXRhLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mbyB0ZXh0LWNlbnRlclwiPjxlbT5UaGVyZSBhcmUgbm8gbm90ZXMgZGVmaW5lZC48L2VtPjwvZGl2PlxuXG4gIDxvZXBhLXRhYmxlIFtjb25maWddPVwidGJsQ29uZmlnXCIgW2RhdGFdPVwiZGF0YVwiIFtoZWFkZXJdPVwiaGVhZGVyXCIgKGFjdGlvbkNsaWNrZWQpPVwibm90ZUFjdGlvbkNsaWNrZWQoJGV2ZW50KVwiPjwvb2VwYS10YWJsZT5cblxuICAgXHRcblx0PGZvcm0gKm5nSWY9XCJjcmVhdGVOb3RlQWxsb3dlZFwiIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCI+XG4gICAgXG4gICAgPGhyPlxuXHRcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwibmV3Tm90ZUZvcm1cIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0yIGNvbnRyb2wtbGFiZWxcIj5UeXBlOjwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIk5vdGVUeXBlVGV4dFwiPnt7bmV3Tm90ZVR5cGUubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0xMiBjb250cm9sLWxhYmVsXCI+PC9sYWJlbD4gICAgXG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0yIGNvbnRyb2wtbGFiZWxcIiBmb3I9XCJOb3RlSW5wdXRcIj5Ob3RlOjwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cImlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwibmV3Tm90ZVRleHRcIiBpZD1cIk5vdGVJbnB1dFwiIG1heGxlbmd0aD1cIjIwMDBcIi8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTEyIGNvbnRyb2wtbGFiZWxcIj48L2xhYmVsPiAgICBcbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29udHJvbC1sYWJlbFwiPjwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ3JlYXRpbmdcIj48c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzQ3JlYXRpbmdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0xXCIgaWQ9XCJBZGROb3RlQnRuXCIgKGNsaWNrKT1cImNyZWF0ZU5vdGUoKVwiIFtkaXNhYmxlZF09XCJuZXdOb3RlRm9ybS5pbnZhbGlkXCIgYXJpYS1sYWJlbD1cIkFkZCBOb3RlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+QWRkIE5vdGU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgPC9kaXY+ICBcbiAgPC9mb3JtPiA8IS0tIGZvcm0gLS0+XG4gICAgXG48L2Rpdj5cblx0XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIGlkPVwiRG9uZUJ0blwiIChjbGljayk9XCJkb25lKClcIiBhcmlhLWxhYmVsPVwiRG9uZVwiPkRvbmU8L2J1dHRvbj5cbjwvZGl2PlxuIl19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZXMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9ub3Rlcy1tb2RhbC9ub3Rlcy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL25vdGVzLW1vZGFsL25vdGVzLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUEwQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVdwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7OztBQVNoRyxNQUFNLE9BQU8sbUJBQW1CO0lBb0RWO0lBQXdCO0lBQWdDO0lBQ3hEO0lBcERiLFdBQVcsQ0FBYTtJQUN4QixXQUFXLENBQWlCO0lBQzVCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVsQixnQkFBZ0IsQ0FBaUI7SUFDakMsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUVuQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUM3QixvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDN0IsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUduQyxJQUNXLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxD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LEVBQUUsQ0FBQyxDQUFDO1lBQy9FLEtBQUssQ0FBQyxPQUFRLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDO1lBQzdDLEtBQUssQ0FBQyxPQUFRLENBQUMsUUFBUSxHQUFHLDRFQUE0RSxDQUFDO1lBQ3ZHLEtBQUssQ0FBQyxPQUFRLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUN2QyxLQUFLLENBQUMsT0FBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7WUFDckMsS0FBSyxDQUFDLE9BQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQWhLVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiwyWUNyQmhDLHlvRUE4REE7OzRGRHpDYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usa0JBQWtCO3VLQWFuQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJSyxLQUFLO3NCQURmLEtBQUs7Z0JBYUssZUFBZTtzQkFEekIsS0FBSztnQkFVSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuXG5pbXBvcnQgeyBPZXBhTWFwcGluZ1NlcnZpY2UsIE9FUEFSZWZlcmVuY2UgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuaW1wb3J0IHsgT2VwYVRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1jb2x1bW4nO1xuaW1wb3J0IHsgT2VwYVRhYmxlUm93IH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1yb3cnO1xuaW1wb3J0IHsgT2VwYVRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1jb25maWcnO1xuaW1wb3J0IHsgT2VwYVRhYmxlSGVhZGVyIH0gZnJvbSAnLi4vdGFibGUvb2VwYS10YWJsZS1oZWFkZXInO1xuaW1wb3J0IHsgT2VwYUFjdGlvbkV2ZW50IH0gZnJvbSAnLi4vYWN0aW9uLWJ0bi9vZXBhLWFjdGlvbi1ldmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGUgfSBmcm9tICcuL29lcGEtbm90ZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1ub3Rlcy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3Rlcy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGVzLW1vZGFsLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3Rlc01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIG5ld05vdGVGb3JtITogRm9ybUdyb3VwO1xuICBwdWJsaWMgbmV3Tm90ZVR5cGUhOiBPRVBBUmVmZXJlbmNlO1xuICBwdWJsaWMgbmV3Tm90ZVRleHQ6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgaXNDcmVhdGluZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2RlZmF1bHROb3RlVHlwZSE6IE9FUEFSZWZlcmVuY2U7XG4gIHByaXZhdGUgX25vdGVzOiBOb3RlW10gPSBbXTtcblxuICBASW5wdXQoKSBsb2dpbk5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBkZWxldGVBbnlOb3RlQWxsb3dlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWxldGVPd25Ob3RlQWxsb3dlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBjcmVhdGVOb3RlQWxsb3dlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBleHRlcm5hbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIFxuICBASW5wdXQoKSBcbiAgcHVibGljIHNldCBub3Rlcyhub3RlczogTm90ZVtdKSB7XG4gICAgdGhpcy5pc0NyZWF0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5fbm90ZXMgPSBub3RlcztcbiAgICB0aGlzLmxvYWREYXRhKG5vdGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbm90ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vdGVzO1xuICB9XG5cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRlZmF1bHROb3RlVHlwZSh0eXBlOiBPRVBBUmVmZXJlbmNlKSB7XG4gICAgdGhpcy5fZGVmYXVsdE5vdGVUeXBlID0gdHlwZTtcbiAgICB0aGlzLm5ld05vdGVUeXBlID0gdHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdE5vdGVUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0Tm90ZVR5cGU7XG4gIH1cblxuICBAT3V0cHV0KCkgb25BZGROb3RlOiBFdmVudEVtaXR0ZXI8Tm90ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vdGU+KCk7XG4gIEBPdXRwdXQoKSBvbkRlbGV0ZU5vdGU6IEV2ZW50RW1pdHRlcjxOb3RlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Tm90ZT4oKTtcblxuICAgIC8vIFRhYmxlIGVsZW1lbnRzXG4gICAgcHVibGljIGRhdGE6IEFycmF5PE9lcGFUYWJsZVJvdz4gPSBbXTtcblxuICAgIHB1YmxpYyB0YmxDb25maWc6IE9lcGFUYWJsZUNvbmZpZyA9IHtcbiAgICB9O1xuICBcbiAgICBwdWJsaWMgaGVhZGVyOiBPZXBhVGFibGVIZWFkZXIgPSB7XG4gICAgICBjb2x1bW5zOiB0aGlzLmdldENvbHVtbnMoKVxuICAgIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLCBwcml2YXRlIG1vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbWFwcGluZ1NlcnZpY2U6IE9lcGFNYXBwaW5nU2VydmljZSkgeyBcbiAgfVxuXG4gIG5nT25Jbml0KCkgeyAgICBcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSgpO1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGFibGUoKSB7XG4gICAgdGhpcy5oZWFkZXIgPSB7XG4gICAgICBjb2x1bW5zOiB0aGlzLmdldENvbHVtbnMoKVxuICAgIH07XG4gICAgdGhpcy5sb2FkRGF0YSh0aGlzLm5vdGVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29sdW1ucygpOiBBcnJheTxPZXBhVGFibGVDb2x1bW4+IHtcbiAgICBjb25zdCBjb2x1bW5zOiBBcnJheTxPZXBhVGFibGVDb2x1bW4+ID0gW1xuICAgICAgeyB0aXRsZTogJ05vdGUnLCBpZDogJ25vdGUnIH0sXG4gICAgXTtcblxuICAgIGlmICghdGhpcy5leHRlcm5hbCkge1xuICAgICAgY29sdW1ucy5wdXNoKHsgdGl0bGU6ICdUeXBlJywgaWQ6ICd0eXBlJyB9KTtcbiAgICAgIGNvbHVtbnMucHVzaCh7IHRpdGxlOiAnQWNjb3VudCcsIGlkOiAnYWNjb3VudCcgfSk7XG4gICAgfVxuXG4gICAgY29sdW1ucy5wdXNoKHsgdGl0bGU6ICdEYXRlJywgaWQ6ICdkYXRlJyB9KTtcblxuICAgIGlmICh0aGlzLmRlbGV0ZUFueU5vdGVBbGxvd2VkIHx8IHRoaXMuZGVsZXRlT3duTm90ZUFsbG93ZWQpIHtcbiAgICAgIGNvbHVtbnMucHVzaCh7IHRpdGxlOiAnQWN0aW9ucycsIGlkOiAnYWN0aW9ucycsIGFjdGlvbkNvbHVtbjogdHJ1ZSwgY2xhc3NOYW1lOiAnYWN0aW9uLWJ0bi1jb2wnIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGF0YShub3RlczogQXJyYXk8Tm90ZT4pIHtcbiAgICB0aGlzLmRhdGEgPSBbXTtcbiAgICBpZiAobm90ZXMgJiYgbm90ZXMubGVuZ3RoKSB7XG4gICAgICBub3Rlcy5mb3JFYWNoKChub3RlKSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YS5wdXNoKHRoaXMuY29udmVydE5vdGVUb1RhYmxlUm93KG5vdGUpKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhLnNwbGljZSgwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnROb3RlVG9UYWJsZVJvdyhub3RlOiBOb3RlKTogT2VwYVRhYmxlUm93IHtcbiAgICBjb25zdCByb3c6IE9lcGFUYWJsZVJvdyA9IHtcbiAgICAgIGNlbGxzOiBbXG4gICAgICAgIHsgaWQ6ICdub3RlJywgdmFsdWU6IG5vdGUuY29tbWVudCB9LFxuICAgICAgICB7IGlkOiAndHlwZScsIHZhbHVlOiBub3RlLnR5cGUgPyBub3RlLnR5cGUubmFtZSA6ICcnIH0sXG4gICAgICAgIHsgaWQ6ICdhY2NvdW50JywgdmFsdWU6IG5vdGUudXNlciB9LFxuICAgICAgICB7IGlkOiAnZGF0ZScsIHZhbHVlOiBub3RlLm5vdGVEYXRlID8gdGhpcy5tYXBwaW5nU2VydmljZS5tYXBEYXRlVG9EYXRlVGltZVN0cmluZyhuZXcgRGF0ZShub3RlLm5vdGVEYXRlKSk6IG51bGwsIFxuICAgICAgICAgICAgICAgIHNvcnRWYWx1ZTogbm90ZS5ub3RlRGF0ZSB9XG4gICAgICBdLFxuICAgICAgZGF0YVNvdXJjZTogbm90ZVxuICAgIH07XG4gICAgLy8gb25seSBkaXNwbGF5IGRlbGV0ZSBhY3Rpb24gaWYgbm90ZSBjYW4gYmUgZGVsZXRlZFxuICAgIGlmICgodGhpcy5kZWxldGVBbnlOb3RlQWxsb3dlZCB8fCAodGhpcy5kZWxldGVPd25Ob3RlQWxsb3dlZCAmJiB0aGlzLmxvZ2luTmFtZSA9PT0gbm90ZS51c2VyKSkgJiYgbm90ZS50eXBlPy5jb2RlICE9PSAnU3lzdGVtJykge1xuICAgICAgcm93LmFjdGlvbnMgPSBbXG4gICAgICAgIHsgdGl0bGU6ICdEZWxldGUnLCBjbGFzc05hbWU6ICdiaSBiaS14LWxnJyB9XG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3cuYWN0aW9ucyA9IFtcbiAgICAgICAgeyB0aXRsZTogJ05BJywgY2xhc3NOYW1lOiB1bmRlZmluZWQgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcbiAgICBpZiAodGhpcy5uZXdOb3RlRm9ybSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm5ld05vdGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIG5ld05vdGVUZXh0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm5ld05vdGVGb3JtLmNvbnRyb2xzWyduZXdOb3RlVGV4dCddLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUobmV3Tm90ZVRleHQgPT4gdGhpcy5uZXdOb3RlVGV4dCA9IG5ld05vdGVUZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXdOb3RlRm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZU5vdGUoKSB7XG4gICAgdGhpcy5pc0NyZWF0aW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIGNvbnN0IG5vdGU6IE5vdGUgPSB7XG4gICAgICB0eXBlOiB0aGlzLm5ld05vdGVUeXBlLFxuICAgICAgbm90ZURhdGU6IG5ldyBEYXRlKCksXG4gICAgICBjb21tZW50OiB0aGlzLm5ld05vdGVUZXh0LFxuICAgICAgdXNlcjogdGhpcy5sb2dpbk5hbWVcbiAgICB9O1xuICAgIHRoaXMub25BZGROb3RlLmVtaXQobm90ZSk7XG4gIH1cblxuICBub3RlQWN0aW9uQ2xpY2tlZChldmVudDogT2VwYUFjdGlvbkV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmFjdGlvbi50aXRsZSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgIGNvbnN0IG1vZGFsOiBCc01vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5oZWFkZXJUZXh0ID0gJ0NvbmZpcm0gZGVsZXRlJztcbiAgICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuYm9keVRleHQgPSAnT25jZSBhIG5vdGUgaXMgZGVsZXRlZCBpdCBjYW5ub3QgYmUgdW5kb25lISBEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZG8gdGhpcz8nO1xuICAgICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQnRuTGFiZWwgPSAnWWVzJztcbiAgICAgICg8Q29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkuY2FuY2VsQnRuTGFiZWwgPSAnTm8nO1xuICAgICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uRGVsZXRlTm90ZS5lbWl0KGV2ZW50LmRhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZG9uZSgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0PGgxIGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cIm1vZGFsVGl0bGVcIj5Ob3RlczwvaDE+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0XG4gIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIgcm9sZT1cImFsZXJ0XCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJkYXRhLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mbyB0ZXh0LWNlbnRlclwiPjxlbT5UaGVyZSBhcmUgbm8gbm90ZXMgZGVmaW5lZC48L2VtPjwvZGl2PlxuXG4gIDxvZXBhLXRhYmxlIFtjb25maWddPVwidGJsQ29uZmlnXCIgW2RhdGFdPVwiZGF0YVwiIFtoZWFkZXJdPVwiaGVhZGVyXCIgKGFjdGlvbkNsaWNrZWQpPVwibm90ZUFjdGlvbkNsaWNrZWQoJGV2ZW50KVwiPjwvb2VwYS10YWJsZT5cblxuICAgXHRcblx0PGZvcm0gKm5nSWY9XCJjcmVhdGVOb3RlQWxsb3dlZFwiIGNsYXNzPVwiZm9ybS1ob3Jpem9udGFsXCI+XG4gICAgXG4gICAgPGhyPlxuXHRcbiAgICA8ZGl2IFtmb3JtR3JvdXBdPVwibmV3Tm90ZUZvcm1cIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0yIGNvbnRyb2wtbGFiZWxcIj5UeXBlOjwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIk5vdGVUeXBlVGV4dFwiPnt7bmV3Tm90ZVR5cGUubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0xMiBjb250cm9sLWxhYmVsXCI+PC9sYWJlbD4gICAgXG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1zbS0yIGNvbnRyb2wtbGFiZWxcIiBmb3I9XCJOb3RlSW5wdXRcIj5Ob3RlOjwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgdHlwZT1cImlucHV0XCIgZm9ybUNvbnRyb2xOYW1lPVwibmV3Tm90ZVRleHRcIiBpZD1cIk5vdGVJbnB1dFwiIG1heGxlbmd0aD1cIjIwMDBcIi8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTEyIGNvbnRyb2wtbGFiZWxcIj48L2xhYmVsPiAgICBcbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLXNtLTIgY29udHJvbC1sYWJlbFwiPjwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQ3JlYXRpbmdcIj48c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzQ3JlYXRpbmdcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0xXCIgaWQ9XCJBZGROb3RlQnRuXCIgKGNsaWNrKT1cImNyZWF0ZU5vdGUoKVwiIFtkaXNhYmxlZF09XCJuZXdOb3RlRm9ybS5pbnZhbGlkXCIgYXJpYS1sYWJlbD1cIkFkZCBOb3RlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+QWRkIE5vdGU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgPC9kaXY+ICBcbiAgPC9mb3JtPiA8IS0tIGZvcm0gLS0+XG4gICAgXG48L2Rpdj5cblx0XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIGlkPVwiRG9uZUJ0blwiIChjbGljayk9XCJkb25lKClcIiBhcmlhLWxhYmVsPVwiRG9uZVwiPkRvbmU8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -168,11 +168,11 @@ export class PinModalComponent {
168
168
  });
169
169
  }
170
170
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PinModalComponent, deps: [{ token: i1.OepaUserAccountService }, { token: i2.FormBuilder }, { token: i3.OepaPinService }, { token: i4.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
171
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PinModalComponent, selector: "oepa-pin-modal", inputs: { attestationID: "attestationID", submitCallback: "submitCallback", submittingComponent: "submittingComponent", app: "app" }, outputs: { close: "close" }, ngImport: i0, template: "<form [formGroup]=\"oepaSubmissionForm\">\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label style=\"padding: 5px;\"><b>Security Question:</b></label>\n <label>{{securityQuestion.question}}</label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label><b>PIN: </b></label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait...&nbsp;&nbsp;</span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\" aria-label=\"Submit\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\" aria-label=\"Cancel\">Cancel</button>\n </div>\n\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
171
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PinModalComponent, selector: "oepa-pin-modal", inputs: { attestationID: "attestationID", submitCallback: "submitCallback", submittingComponent: "submittingComponent", app: "app" }, outputs: { close: "close" }, ngImport: i0, template: "<form [formGroup]=\"oepaSubmissionForm\">\n <h1 id=\"modalTitle\">PIN Authentication</h1>\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label for=\"securityAnswer\" style=\"padding: 5px;\"><b>Security Question:</b></label>\n <span>{{securityQuestion.question}}</span>\n <div>\n <input id=\"securityAnswer\" [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label for=\"securityPIN\"><b>PIN: </b></label>\n <div>\n <input id=\"securityPIN\" [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait...&nbsp;&nbsp;</span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\" aria-label=\"Submit\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\" aria-label=\"Cancel\">Cancel</button>\n </div>\n\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
172
172
  }
173
173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PinModalComponent, decorators: [{
174
174
  type: Component,
175
- args: [{ selector: 'oepa-pin-modal', template: "<form [formGroup]=\"oepaSubmissionForm\">\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label style=\"padding: 5px;\"><b>Security Question:</b></label>\n <label>{{securityQuestion.question}}</label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label><b>PIN: </b></label>\n <div>\n <input [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait...&nbsp;&nbsp;</span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\" aria-label=\"Submit\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\" aria-label=\"Cancel\">Cancel</button>\n </div>\n\n</form>" }]
175
+ args: [{ selector: 'oepa-pin-modal', template: "<form [formGroup]=\"oepaSubmissionForm\">\n <h1 id=\"modalTitle\">PIN Authentication</h1>\n <div class=\"modal-body\">\n\n <div [hidden]=\"noPin\">\n <div class=\"card-header\">\n <div class=\"row\" *ngIf=\"pinAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"pinAttestation.text\"></div>\n </div>\n </div>\n </div>\n <br>\n <div class=\"card-header\" *ngIf=\"serviceAttestation\">\n <div class=\"row\" *ngIf=\"serviceAttestation.text\">\n <div class=\"col-md-12\">\n <div class=\"well\" [innerHTML]=\"serviceAttestation.text\">\"</div>\n </div>\n </div>\n </div>\n </div>\n <br>\n\n <div class=\"row\" *ngIf=\"loadingAttestations\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-info\">\n <span class=\"spinner-border text-primary\" role=\"status\"></span> Loading PIN information...\n </div>\n </div>\n </div>\n\n <div [hidden]=\"loadingAttestations || noPin\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label for=\"securityAnswer\" style=\"padding: 5px;\"><b>Security Question:</b></label>\n <span>{{securityQuestion.question}}</span>\n <div>\n <input id=\"securityAnswer\" [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid}\"\n formControlName=\"securityAnswer\" type=\"password\" class=\"form-control\" name=\"securityAnswer\" placeholder=\"Answer\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityAnswer'].valid\">Answer to security question is required</small>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label for=\"securityPIN\"><b>PIN: </b></label>\n <div>\n <input id=\"securityPIN\" [ngClass]=\"{'is-invalid':showValidation && !oepaSubmissionForm.controls['securityPIN'].valid}\"\n formControlName=\"securityPIN\" type=\"password\" class=\"form-control\" name=\"securityPIN\" placeholder=\"PIN\" required>\n <small class=\"invalid-feedback\" *ngIf=\"showValidation && !oepaSubmissionForm.controls['securityPIN'].valid\">A valid PIN is required</small>\n </div>\n </div>\n </div>\n </div>\n </div>\n \n <div >\n <div class=\"row\">\n <div class=\"col-md-12\">\n <!-- toggle hasPin message -->\n <div *ngIf=\"noPin\">\n <b>Attention:</b> Before you can submit, you first must activate your PIN. Cancel this submission, save the application/report and go back to the main eBusiness Home Page. \n Select <b>MY Account- Request New PIN</b> to get started. <br>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"row\" *ngIf=\"errorMessage\">\n <div class=\"col-md-12\">\n <div class=\"alert alert-danger\" role=\"alert\">{{ errorMessage }}</div>\n </div>\n </div>\n\n </div>\n\n\n <div class=\"modal-footer\">\n <span *ngIf=\"submitInProgress === true\" id=\"wait\"><span class=\"spinner-border text-primary\" role=\"status\"></span>Please wait...&nbsp;&nbsp;</span>\n <button class=\"btn btn-primary mr-1\" (click)=\"submit()\" [disabled]=\"submitInProgress || !oepaSubmissionForm.valid\" aria-label=\"Submit\">Submit</button>\n <button class=\"btn btn-primary mr-1\" (click)=\"cancel()\" [disabled]=\"submitInProgress\" aria-label=\"Cancel\">Cancel</button>\n </div>\n\n</form>" }]
176
176
  }], ctorParameters: () => [{ type: i1.OepaUserAccountService }, { type: i2.FormBuilder }, { type: i3.OepaPinService }, { type: i4.BsModalRef }], propDecorators: { attestationID: [{
177
177
  type: Input
178
178
  }], submitCallback: [{
@@ -184,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
184
184
  }], close: [{
185
185
  type: Output
186
186
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL3Bpbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBZ0JwRSxNQUFNLE9BQU8saUJBQWlCO0lBc0NSO0lBQW9EO0lBQXlCO0lBQW1DO0lBckM1SCxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRTVCLElBQ0ksYUFBYSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVRLGNBQWMsQ0FBeUI7SUFDdEMsbUJBQW1CLENBQU07SUFDMUIsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUVoQixLQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFeEQsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBRTNDLGtCQUFrQixDQUFhO0lBQy9CLGNBQWMsR0FBb0IsRUFBRSxDQUFDO0lBQ3JDLGtCQUFrQixHQUFvQixFQUFFLENBQUM7SUFDekMsZ0JBQWdCLEdBQXlCLEVBQUUsUUFBUSxFQUFHLEVBQUUsRUFBRSxDQUFDO0lBQzNELEtBQUssR0FBRyxLQUFLLENBQUM7SUFD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aEUsa0lBQWtJLENBQUM7WUFDckksQ0FBQztRQUNILENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO3dHQTlLVSxpQkFBaUI7NEZBQWpCLGlCQUFpQix5TkNqQjlCLHltSEFxRk87OzRGRHBFTSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZ0JBQWdCOzJLQVF0QixhQUFhO3NCQURoQixLQUFLO2dCQVNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbmltcG9ydCB7IE9lcGFVc2VyQWNjb3VudCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5pbXBvcnQgeyBPZXBhQXR0ZXN0YXRpb24gfSBmcm9tICcuL29lcGEtYXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgT2VwYVNlY3VyaXR5UXVlc3Rpb24gfSBmcm9tICcuL29lcGEtc2VjdXJpdHktcXVlc3Rpb24nO1xuaW1wb3J0IHsgT2VwYVBpblNlcnZpY2UgfSBmcm9tICcuL29lcGEtcGluLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL29lcGEtdXNlci1hY2NvdW50L29lcGEtdXNlci1hY2NvdW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXBpbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waW4tbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBpbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfYXR0ZXN0YXRpb25JRCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhdHRlc3RhdGlvbklEKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdHRlc3RhdGlvbklEID0gaWQ7XG4gICAgdGhpcy5yZXRyaWV2ZUF0dGVzdGF0aW9ucyhpZCk7XG4gIH1cbiAgZ2V0IGF0dGVzdGF0aW9uSUQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dGVzdGF0aW9uSUQ7XG4gIH1cblxuICBASW5wdXQoKSBzdWJtaXRDYWxsYmFjayE6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgIHN1Ym1pdHRpbmdDb21wb25lbnQ6IGFueTtcbiAgQElucHV0KCkgYXBwOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuXG4gIHB1YmxpYyBvZXBhU3VibWlzc2lvbkZvcm0hOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBwaW5BdHRlc3RhdGlvbjogT2VwYUF0dGVzdGF0aW9uID0ge307XG4gIHB1YmxpYyBzZXJ2aWNlQXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbiA9IHt9O1xuICBwdWJsaWMgc2VjdXJpdHlRdWVzdGlvbjogT2VwYVNlY3VyaXR5UXVlc3Rpb24gPSB7IHF1ZXN0aW9uOiAgJycgfTtcbiAgcHVibGljIG5vUGluID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkaW5nUXVlc3Rpb24gPSBmYWxzZTtcbiAgcHVibGljIHN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgcHVibGljIHN1Ym1pdERpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdBdHRlc3RhdGlvbnMgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudFVzZXJJRDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XG4gIHB1YmxpYyB1c2VyQWNjb3VudDogT2VwYVVzZXJBY2NvdW50IHwgdW5kZWZpbmVkO1xuICAvLyBwdWJsaWMgcGFyZW50VVJMOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIC8vIHB1YmxpYyBwYXJlbnRTZXNzaW9uSUQ6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlckFjY291bnRTZXJ2aWNlOiBPZXBhVXNlckFjY291bnRTZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBwaW5TZXJ2aWNlOiBPZXBhUGluU2VydmljZSwgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5yZXRyaWV2ZVBpbigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXRyaWV2ZVBpbigpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMudXNlckFjY291bnQgPSB0aGlzLnVzZXJBY2NvdW50U2VydmljZS5nZXRDdXJyZW50VXNlckFjY291bnQoKTtcbiAgICBpZiAodGhpcy51c2VyQWNjb3VudCkge1xuICAgICAgdGhpcy5jdXJyZW50VXNlcklEID0gdGhpcy51c2VyQWNjb3VudC5sb2dpbk5hbWU7XG4gICAgICB0aGlzLm5vUGluID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRVc2VySUQpIHtcbiAgICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlUGluKHRoaXMuY3VycmVudFVzZXJJRCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09ICdBQ1RJVkUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub1BpbiA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBwaW46JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdObyBjdXJyZW50IHVzZXInO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBhY2NvdW50IGZvdW5kJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ2lzIGZvcm0gdmFsaWQ/ICcgKyB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS52YWxpZCk7XG4gICAgY29uc3Qgc2VjdXJpdHlBbnN3ZXIgPSB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS5nZXQoJ3NlY3VyaXR5QW5zd2VyJyk/LnZhbHVlO1xuICAgIGNvbnN0IHNlY3VyaXR5UElOID0gdGhpcy5vZXBhU3VibWlzc2lvbkZvcm0uZ2V0KCdzZWN1cml0eVBJTicpPy52YWx1ZTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdzZWN1cml0eUFuc3dlciA9ICcgKyBzZWN1cml0eUFuc3dlciArICcsIGNvcnJlY3QgYW5zd2VyIGlzICcgKyB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyKTtcbiAgICBpZiAoc2VjdXJpdHlBbnN3ZXIgJiYgdGhpcy5zZWN1cml0eVF1ZXN0aW9uLmFuc3dlciAmJiB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyLnRvVXBwZXJDYXNlKCkgPT09IHNlY3VyaXR5QW5zd2VyLnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgIHRoaXMucGluU2VydmljZS52YWxpZGF0ZSh7IHBpbjogc2VjdXJpdHlQSU4gfSkuc3Vic2NyaWJlKChpc1BJTlZhbGlkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGlmIChpc1BJTlZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5pbnZva2VTdWJtaXRDYWxsYmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIFBJTiBlbnRlcmVkIHdhcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgdmFsaWRhdGUgUElOOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgYW5zd2VyIHRvIHRoZSBzZWN1cml0eSBxdWVzdGlvbiBpcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMub2VwYVN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWN1cml0eUFuc3dlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgICBzZWN1cml0eVBJTjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludm9rZVN1Ym1pdENhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQgJiYgdGhpcy5zdWJtaXRDYWxsYmFjayAmJiB0aGlzLnN1Ym1pdENhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suY2FsbCh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdWJtaXNzaW9uOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1N1Ym1pc3Npb24gZmFpbGVkOiAnICsgZXJyOyBcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIHN1Ym1pdCBjYWxsYmFjayBkZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJldHJpZXZlQXR0ZXN0YXRpb25zKGF0dGVzdGF0aW9uSWQ6IHN0cmluZykge1xuICAgIC8vIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUF0dGVzdGF0aW9uczogJyArIGF0dGVzdGF0aW9uSWQpO1xuXG4gICAgdGhpcy5sb2FkaW5nQXR0ZXN0YXRpb25zID0gdHJ1ZTtcblxuICAgIGlmIChhdHRlc3RhdGlvbklkICYmIGF0dGVzdGF0aW9uSWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb24oJ1BJTicpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnBpbkF0dGVzdGF0aW9uID0gYXR0ZXN0YXRpb247XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBQSU4gYXR0ZXN0YXRpb246ICcgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb25CeUlEKGF0dGVzdGF0aW9uSWQpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2VBdHRlc3RhdGlvbiA9IGF0dGVzdGF0aW9uO1xuXG4gICAgICAgIHRoaXMubG9hZGluZ0F0dGVzdGF0aW9ucyA9IGZhbHNlO1xuXG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBhdHRlc3RhdGlvbiBmb3Igc2VydmljZTogXCInICsgYXR0ZXN0YXRpb25JZCArICdcIiA6JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SOiBBdHRlbXB0IHRvIHJldHJpZXZlIGludmFsaWQgYXR0ZXN0YXRpb25JZDogJyArIGF0dGVzdGF0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCkge1xuXG4gICAgdGhpcy5sb2FkaW5nUXVlc3Rpb24gPSB0cnVlO1xuXG4gICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlU2VjdXJpdHlRdWVzdGlvbigpLnN1YnNjcmliZSgocXVlc3Rpb246IE9lcGFTZWN1cml0eVF1ZXN0aW9uKSA9PiB7XG4gICAgICB0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPSBxdWVzdGlvbjtcbiAgICAgIGlmICh0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgIHRoaXMuc2VjdXJpdHlRdWVzdGlvbiA9IHsgcXVlc3Rpb25JRDonJywgcXVlc3Rpb246JycsIGFuc3dlcjonJyAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZ1F1ZXN0aW9uID0gZmFsc2U7XG5cbiAgICAgIGlmICghdGhpcy5zZWN1cml0eVF1ZXN0aW9uKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGlzIG5vIFBJTiBlbmFibGVkIGZvciB5b3VyIGFjY291bnQuICcgKyBcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB5b3UgbXVzdCBmaXJzdCByZXF1ZXN0IGEgUElOIGJ5IHNlbGVjdGluZyB0aGUgXCJSZXF1ZXN0IE5ldyBQSU5cIiBvcHRpb24gZnJvbSB0aGUgZUJ1c2luZXNzIENlbnRlciBcIk15IEFjY291bnRcIiBtZW51Lic7XG4gICAgICB9XG4gICAgfSwgKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIHNlY3VyaXR5IHF1ZXN0aW9uOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICB9KTtcblxuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib2VwYVN1Ym1pc3Npb25Gb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cbiAgICA8ZGl2IFtoaWRkZW5dPVwibm9QaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInBpbkF0dGVzdGF0aW9uLnRleHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWxsXCIgW2lubmVySFRNTF09XCJwaW5BdHRlc3RhdGlvbi50ZXh0XCI+PC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxicj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiICpuZ0lmPVwic2VydmljZUF0dGVzdGF0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwic2VydmljZUF0dGVzdGF0aW9uLnRleHRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWxsXCIgW2lubmVySFRNTF09XCJzZXJ2aWNlQXR0ZXN0YXRpb24udGV4dFwiPlwiPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJsb2FkaW5nQXR0ZXN0YXRpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciB0ZXh0LXByaW1hcnlcIiByb2xlPVwic3RhdHVzXCI+PC9zcGFuPiBMb2FkaW5nIFBJTiBpbmZvcm1hdGlvbi4uLlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBbaGlkZGVuXT1cImxvYWRpbmdBdHRlc3RhdGlvbnMgfHwgbm9QaW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJwYWRkaW5nOiA1cHg7XCI+PGI+U2VjdXJpdHkgUXVlc3Rpb246PC9iPjwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWw+e3tzZWN1cml0eVF1ZXN0aW9uLnF1ZXN0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGlucHV0ICBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5QW5zd2VyJ10udmFsaWR9XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eUFuc3dlclwiIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInNlY3VyaXR5QW5zd2VyXCIgcGxhY2Vob2xkZXI9XCJBbnN3ZXJcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlBbnN3ZXInXS52YWxpZFwiPkFuc3dlciB0byBzZWN1cml0eSBxdWVzdGlvbiBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+PGI+UElOOiA8L2I+PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpbnB1dCBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5UElOJ10udmFsaWR9XCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWN1cml0eVBJTlwiIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbmFtZT1cInNlY3VyaXR5UElOXCIgcGxhY2Vob2xkZXI9XCJQSU5cIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2hvd1ZhbGlkYXRpb24gJiYgIW9lcGFTdWJtaXNzaW9uRm9ybS5jb250cm9sc1snc2VjdXJpdHlQSU4nXS52YWxpZFwiPkEgdmFsaWQgUElOIGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDxkaXYgPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgPCEtLSB0b2dnbGUgaGFzUGluIG1lc3NhZ2UgLS0+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm5vUGluXCI+XG4gICAgICAgICAgICA8Yj5BdHRlbnRpb246PC9iPiBCZWZvcmUgeW91IGNhbiBzdWJtaXQsIHlvdSBmaXJzdCBtdXN0IGFjdGl2YXRlIHlvdXIgUElOLiBDYW5jZWwgdGhpcyBzdWJtaXNzaW9uLCBzYXZlIHRoZSBhcHBsaWNhdGlvbi9yZXBvcnQgYW5kIGdvIGJhY2sgdG8gdGhlIG1haW4gZUJ1c2luZXNzIEhvbWUgUGFnZS4gXG4gICAgICAgICAgICBTZWxlY3QgPGI+TVkgQWNjb3VudC0gUmVxdWVzdCBOZXcgUElOPC9iPiB0byBnZXQgc3RhcnRlZC4gPGJyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiByb2xlPVwiYWxlcnRcIj57eyBlcnJvck1lc3NhZ2UgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuXG5cbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxzcGFuICpuZ0lmPVwic3VibWl0SW5Qcm9ncmVzcyA9PT0gdHJ1ZVwiIGlkPVwid2FpdFwiPjxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj5QbGVhc2Ugd2FpdC4uLiZuYnNwOyZuYnNwOzwvc3Bhbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwic3VibWl0KClcIiBbZGlzYWJsZWRdPVwic3VibWl0SW5Qcm9ncmVzcyB8fCAhb2VwYVN1Ym1pc3Npb25Gb3JtLnZhbGlkXCIgYXJpYS1sYWJlbD1cIlN1Ym1pdFwiPlN1Ym1pdDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXItMVwiIChjbGljayk9XCJjYW5jZWwoKVwiIFtkaXNhYmxlZF09XCJzdWJtaXRJblByb2dyZXNzXCIgYXJpYS1sYWJlbD1cIkNhbmNlbFwiPkNhbmNlbDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuPC9mb3JtPiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvcGluLW1vZGFsL3Bpbi1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3Bpbi1tb2RhbC9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBZ0JwRSxNQUFNLE9BQU8saUJBQWlCO0lBc0NSO0lBQW9EO0lBQXlCO0lBQW1DO0lBckM1SCxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBRTVCLElBQ0ksYUFBYSxDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVRLGNBQWMsQ0FBeUI7SUFDdEMsbUJBQW1CLENBQU07SUFDMUIsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUVoQixLQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFeEQsU0FBUyxHQUFHLDhCQUE4QixDQUFDO0lBRTNDLGtCQUFrQixDQUFhO0lBQy9CLGNBQWMsR0FBb0IsRUFBRSxDQUFDO0lBQ3JDLGtCQUFrQixHQUFvQixFQUFFLENBQUM7SUFDekMsZ0JBQWdCLEdBQXlCLEVBQUUsUUFBUSxFQUFHLEVBQUUsRUFBRSxDQUFDO0lBQzNELEtBQUssR0FBRyxLQUFLLENBQUM7SUFD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aEUsa0lBQWtJLENBQUM7WUFDckksQ0FBQztRQUNILENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO3dHQTlLVSxpQkFBaUI7NEZBQWpCLGlCQUFpQix5TkNqQjlCLDJ1SEFzRk87OzRGRHJFTSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZ0JBQWdCOzJLQVF0QixhQUFhO3NCQURoQixLQUFLO2dCQVNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5cbmltcG9ydCB7IE9lcGFVc2VyQWNjb3VudCB9IGZyb20gJ0BvaGlvZXBhL29lcGEtY29tbW9uLWxpYic7XG5pbXBvcnQgeyBPZXBhQXR0ZXN0YXRpb24gfSBmcm9tICcuL29lcGEtYXR0ZXN0YXRpb24nO1xuaW1wb3J0IHsgT2VwYVNlY3VyaXR5UXVlc3Rpb24gfSBmcm9tICcuL29lcGEtc2VjdXJpdHktcXVlc3Rpb24nO1xuaW1wb3J0IHsgT2VwYVBpblNlcnZpY2UgfSBmcm9tICcuL29lcGEtcGluLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2VwYVVzZXJBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL29lcGEtdXNlci1hY2NvdW50L29lcGEtdXNlci1hY2NvdW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLXBpbi1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9waW4tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9waW4tbW9kYWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBpbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfYXR0ZXN0YXRpb25JRCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBhdHRlc3RhdGlvbklEKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdHRlc3RhdGlvbklEID0gaWQ7XG4gICAgdGhpcy5yZXRyaWV2ZUF0dGVzdGF0aW9ucyhpZCk7XG4gIH1cbiAgZ2V0IGF0dGVzdGF0aW9uSUQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dGVzdGF0aW9uSUQ7XG4gIH1cblxuICBASW5wdXQoKSBzdWJtaXRDYWxsYmFjayE6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgIHN1Ym1pdHRpbmdDb21wb25lbnQ6IGFueTtcbiAgQElucHV0KCkgYXBwOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgaW1hZ2VSb290ID0gJy9Bbmd1bGFyV2ViQXBwL2Fzc2V0cy9pbWFnZXMnO1xuXG4gIHB1YmxpYyBvZXBhU3VibWlzc2lvbkZvcm0hOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBwaW5BdHRlc3RhdGlvbjogT2VwYUF0dGVzdGF0aW9uID0ge307XG4gIHB1YmxpYyBzZXJ2aWNlQXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbiA9IHt9O1xuICBwdWJsaWMgc2VjdXJpdHlRdWVzdGlvbjogT2VwYVNlY3VyaXR5UXVlc3Rpb24gPSB7IHF1ZXN0aW9uOiAgJycgfTtcbiAgcHVibGljIG5vUGluID0gZmFsc2U7XG4gIHB1YmxpYyBsb2FkaW5nUXVlc3Rpb24gPSBmYWxzZTtcbiAgcHVibGljIHN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgcHVibGljIHN1Ym1pdERpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdBdHRlc3RhdGlvbnMgPSBmYWxzZTtcblxuICBwdWJsaWMgY3VycmVudFVzZXJJRDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XG4gIHB1YmxpYyB1c2VyQWNjb3VudDogT2VwYVVzZXJBY2NvdW50IHwgdW5kZWZpbmVkO1xuICAvLyBwdWJsaWMgcGFyZW50VVJMOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG4gIC8vIHB1YmxpYyBwYXJlbnRTZXNzaW9uSUQ6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdXNlckFjY291bnRTZXJ2aWNlOiBPZXBhVXNlckFjY291bnRTZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBwaW5TZXJ2aWNlOiBPZXBhUGluU2VydmljZSwgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gICAgdGhpcy5yZXRyaWV2ZVBpbigpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXRyaWV2ZVBpbigpIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMudXNlckFjY291bnQgPSB0aGlzLnVzZXJBY2NvdW50U2VydmljZS5nZXRDdXJyZW50VXNlckFjY291bnQoKTtcbiAgICBpZiAodGhpcy51c2VyQWNjb3VudCkge1xuICAgICAgdGhpcy5jdXJyZW50VXNlcklEID0gdGhpcy51c2VyQWNjb3VudC5sb2dpbk5hbWU7XG4gICAgICB0aGlzLm5vUGluID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRVc2VySUQpIHtcbiAgICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlUGluKHRoaXMuY3VycmVudFVzZXJJRCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09ICdBQ1RJVkUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub1BpbiA9IGZhbHNlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBwaW46JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdObyBjdXJyZW50IHVzZXInO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBhY2NvdW50IGZvdW5kJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ2lzIGZvcm0gdmFsaWQ/ICcgKyB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS52YWxpZCk7XG4gICAgY29uc3Qgc2VjdXJpdHlBbnN3ZXIgPSB0aGlzLm9lcGFTdWJtaXNzaW9uRm9ybS5nZXQoJ3NlY3VyaXR5QW5zd2VyJyk/LnZhbHVlO1xuICAgIGNvbnN0IHNlY3VyaXR5UElOID0gdGhpcy5vZXBhU3VibWlzc2lvbkZvcm0uZ2V0KCdzZWN1cml0eVBJTicpPy52YWx1ZTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdzZWN1cml0eUFuc3dlciA9ICcgKyBzZWN1cml0eUFuc3dlciArICcsIGNvcnJlY3QgYW5zd2VyIGlzICcgKyB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyKTtcbiAgICBpZiAoc2VjdXJpdHlBbnN3ZXIgJiYgdGhpcy5zZWN1cml0eVF1ZXN0aW9uLmFuc3dlciAmJiB0aGlzLnNlY3VyaXR5UXVlc3Rpb24uYW5zd2VyLnRvVXBwZXJDYXNlKCkgPT09IHNlY3VyaXR5QW5zd2VyLnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgIHRoaXMucGluU2VydmljZS52YWxpZGF0ZSh7IHBpbjogc2VjdXJpdHlQSU4gfSkuc3Vic2NyaWJlKChpc1BJTlZhbGlkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGlmIChpc1BJTlZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5pbnZva2VTdWJtaXRDYWxsYmFjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCk7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnVGhlIFBJTiBlbnRlcmVkIHdhcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdDb3VsZCBub3QgdmFsaWRhdGUgUElOOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdUaGUgYW5zd2VyIHRvIHRoZSBzZWN1cml0eSBxdWVzdGlvbiBpcyBpbmNvcnJlY3QuIFBsZWFzZSB0cnkgYWdhaW4uJztcbiAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgdGhpcy5zaG93VmFsaWRhdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMub2VwYVN1Ym1pc3Npb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWN1cml0eUFuc3dlcjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgICBzZWN1cml0eVBJTjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludm9rZVN1Ym1pdENhbGxiYWNrKCkge1xuICAgIGlmICh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQgJiYgdGhpcy5zdWJtaXRDYWxsYmFjayAmJiB0aGlzLnN1Ym1pdENhbGxiYWNrIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suY2FsbCh0aGlzLnN1Ym1pdHRpbmdDb21wb25lbnQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuc3VibWl0SW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgfSwgKGVycikgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBzdWJtaXNzaW9uOiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyKSk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1N1Ym1pc3Npb24gZmFpbGVkOiAnICsgZXJyOyBcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ05vIHN1Ym1pdCBjYWxsYmFjayBkZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJldHJpZXZlQXR0ZXN0YXRpb25zKGF0dGVzdGF0aW9uSWQ6IHN0cmluZykge1xuICAgIC8vIGNvbnNvbGUubG9nKCdyZXRyaWV2ZUF0dGVzdGF0aW9uczogJyArIGF0dGVzdGF0aW9uSWQpO1xuXG4gICAgdGhpcy5sb2FkaW5nQXR0ZXN0YXRpb25zID0gdHJ1ZTtcblxuICAgIGlmIChhdHRlc3RhdGlvbklkICYmIGF0dGVzdGF0aW9uSWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb24oJ1BJTicpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnBpbkF0dGVzdGF0aW9uID0gYXR0ZXN0YXRpb247XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBQSU4gYXR0ZXN0YXRpb246ICcgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlQXR0ZXN0YXRpb25CeUlEKGF0dGVzdGF0aW9uSWQpLnN1YnNjcmliZSgoYXR0ZXN0YXRpb246IE9lcGFBdHRlc3RhdGlvbikgPT4ge1xuICAgICAgICB0aGlzLnNlcnZpY2VBdHRlc3RhdGlvbiA9IGF0dGVzdGF0aW9uO1xuXG4gICAgICAgIHRoaXMubG9hZGluZ0F0dGVzdGF0aW9ucyA9IGZhbHNlO1xuXG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0NvdWxkIG5vdCByZXRyaWV2ZSBhdHRlc3RhdGlvbiBmb3Igc2VydmljZTogXCInICsgYXR0ZXN0YXRpb25JZCArICdcIiA6JyArIEpTT04uc3RyaW5naWZ5KGVycikpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SOiBBdHRlbXB0IHRvIHJldHJpZXZlIGludmFsaWQgYXR0ZXN0YXRpb25JZDogJyArIGF0dGVzdGF0aW9uSWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmV0cmlldmVOZXdTZWN1cml0eVF1ZXN0aW9uKCkge1xuXG4gICAgdGhpcy5sb2FkaW5nUXVlc3Rpb24gPSB0cnVlO1xuXG4gICAgdGhpcy5waW5TZXJ2aWNlLnJldHJpZXZlU2VjdXJpdHlRdWVzdGlvbigpLnN1YnNjcmliZSgocXVlc3Rpb246IE9lcGFTZWN1cml0eVF1ZXN0aW9uKSA9PiB7XG4gICAgICB0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPSBxdWVzdGlvbjtcbiAgICAgIGlmICh0aGlzLnNlY3VyaXR5UXVlc3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgIHRoaXMuc2VjdXJpdHlRdWVzdGlvbiA9IHsgcXVlc3Rpb25JRDonJywgcXVlc3Rpb246JycsIGFuc3dlcjonJyAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9hZGluZ1F1ZXN0aW9uID0gZmFsc2U7XG5cbiAgICAgIGlmICghdGhpcy5zZWN1cml0eVF1ZXN0aW9uKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGlzIG5vIFBJTiBlbmFibGVkIGZvciB5b3VyIGFjY291bnQuICcgKyBcbiAgICAgICAgJ1RvIGNvbnRpbnVlLCB5b3UgbXVzdCBmaXJzdCByZXF1ZXN0IGEgUElOIGJ5IHNlbGVjdGluZyB0aGUgXCJSZXF1ZXN0IE5ldyBQSU5cIiBvcHRpb24gZnJvbSB0aGUgZUJ1c2luZXNzIENlbnRlciBcIk15IEFjY291bnRcIiBtZW51Lic7XG4gICAgICB9XG4gICAgfSwgKGVycikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IHJldHJpZXZlIHNlY3VyaXR5IHF1ZXN0aW9uOicgKyBKU09OLnN0cmluZ2lmeShlcnIpKTtcbiAgICB9KTtcblxuICB9XG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib2VwYVN1Ym1pc3Npb25Gb3JtXCI+XG4gIDxoMSBpZD1cIm1vZGFsVGl0bGVcIj5QSU4gQXV0aGVudGljYXRpb248L2gxPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuXG4gICAgPGRpdiBbaGlkZGVuXT1cIm5vUGluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJwaW5BdHRlc3RhdGlvbi50ZXh0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2VsbFwiIFtpbm5lckhUTUxdPVwicGluQXR0ZXN0YXRpb24udGV4dFwiPjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YnI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIiAqbmdJZj1cInNlcnZpY2VBdHRlc3RhdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInNlcnZpY2VBdHRlc3RhdGlvbi50ZXh0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2VsbFwiIFtpbm5lckhUTUxdPVwic2VydmljZUF0dGVzdGF0aW9uLnRleHRcIj5cIjwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJyPlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwibG9hZGluZ0F0dGVzdGF0aW9uc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgdGV4dC1wcmltYXJ5XCIgcm9sZT1cInN0YXR1c1wiPjwvc3Bhbj4gTG9hZGluZyBQSU4gaW5mb3JtYXRpb24uLi5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgW2hpZGRlbl09XCJsb2FkaW5nQXR0ZXN0YXRpb25zIHx8IG5vUGluXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlY3VyaXR5QW5zd2VyXCIgc3R5bGU9XCJwYWRkaW5nOiA1cHg7XCI+PGI+U2VjdXJpdHkgUXVlc3Rpb246PC9iPjwvbGFiZWw+XG4gICAgICAgICAgICA8c3Bhbj57e3NlY3VyaXR5UXVlc3Rpb24ucXVlc3Rpb259fTwvc3Bhbj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInNlY3VyaXR5QW5zd2VyXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiAhb2VwYVN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWydzZWN1cml0eUFuc3dlciddLnZhbGlkfVwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VjdXJpdHlBbnN3ZXJcIiB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJzZWN1cml0eUFuc3dlclwiIHBsYWNlaG9sZGVyPVwiQW5zd2VyXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5QW5zd2VyJ10udmFsaWRcIj5BbnN3ZXIgdG8gc2VjdXJpdHkgcXVlc3Rpb24gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlY3VyaXR5UElOXCI+PGI+UElOOiA8L2I+PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cInNlY3VyaXR5UElOXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiAhb2VwYVN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzWydzZWN1cml0eVBJTiddLnZhbGlkfVwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VjdXJpdHlQSU5cIiB0eXBlPVwicGFzc3dvcmRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJzZWN1cml0eVBJTlwiIHBsYWNlaG9sZGVyPVwiUElOXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cInNob3dWYWxpZGF0aW9uICYmICFvZXBhU3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ3NlY3VyaXR5UElOJ10udmFsaWRcIj5BIHZhbGlkIFBJTiBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8ZGl2ID5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgIDwhLS0gdG9nZ2xlIGhhc1BpbiBtZXNzYWdlIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJub1BpblwiPlxuICAgICAgICAgICAgPGI+QXR0ZW50aW9uOjwvYj4gQmVmb3JlIHlvdSBjYW4gc3VibWl0LCB5b3UgZmlyc3QgbXVzdCBhY3RpdmF0ZSB5b3VyIFBJTi4gQ2FuY2VsIHRoaXMgc3VibWlzc2lvbiwgc2F2ZSB0aGUgYXBwbGljYXRpb24vcmVwb3J0IGFuZCBnbyBiYWNrIHRvIHRoZSBtYWluIGVCdXNpbmVzcyBIb21lIFBhZ2UuIFxuICAgICAgICAgICAgU2VsZWN0IDxiPk1ZIEFjY291bnQtIFJlcXVlc3QgTmV3IFBJTjwvYj4gdG8gZ2V0IHN0YXJ0ZWQuIDxicj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImVycm9yTWVzc2FnZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyXCIgcm9sZT1cImFsZXJ0XCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8c3BhbiAqbmdJZj1cInN1Ym1pdEluUHJvZ3Jlc3MgPT09IHRydWVcIiBpZD1cIndhaXRcIj48c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHRleHQtcHJpbWFyeVwiIHJvbGU9XCJzdGF0dXNcIj48L3NwYW4+UGxlYXNlIHdhaXQuLi4mbmJzcDsmbmJzcDs8L3NwYW4+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtci0xXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgW2Rpc2FibGVkXT1cInN1Ym1pdEluUHJvZ3Jlc3MgfHwgIW9lcGFTdWJtaXNzaW9uRm9ybS52YWxpZFwiIGFyaWEtbGFiZWw9XCJTdWJtaXRcIj5TdWJtaXQ8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1yLTFcIiAoY2xpY2spPVwiY2FuY2VsKClcIiBbZGlzYWJsZWRdPVwic3VibWl0SW5Qcm9ncmVzc1wiIGFyaWEtbGFiZWw9XCJDYW5jZWxcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbjwvZm9ybT4iXX0=