fabrikantencore 2.9.2 → 2.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.mjs +4 -4
  2. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +21 -4
  3. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +4 -4
  4. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.mjs +3 -3
  5. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-select-filter-dialog/beheer-select-filter-dialog.component.mjs +3 -2
  6. package/esm2022/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.mjs +3 -10
  7. package/esm2022/src/app/modules/fabrikantencore/components/fab-display-photo-dialog/fab-display-photo-dialog.component.mjs +25 -0
  8. package/esm2022/src/app/modules/fabrikantencore/components/fab-filter-label/fab-filter-label.component.mjs +3 -3
  9. package/esm2022/src/app/modules/fabrikantencore/components/fab-filter-picture-select/fab-filter-picture-select.component.mjs +70 -0
  10. package/esm2022/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +18 -3
  11. package/esm2022/src/app/modules/fabrikantencore/components/fab-form/fab-form.component.mjs +107 -0
  12. package/esm2022/src/app/modules/fabrikantencore/components/fab-form-dialog/fab-form-dialog.component.mjs +14 -80
  13. package/esm2022/src/app/modules/fabrikantencore/components/fab-input/fab-input.component.mjs +4 -3
  14. package/esm2022/src/app/modules/fabrikantencore/components/fab-input-code/fab-input-code.component.mjs +8 -9
  15. package/esm2022/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +11 -3
  16. package/esm2022/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +12 -3
  17. package/esm2022/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +51 -51
  18. package/esm2022/src/app/modules/fabrikantencore/services/products.service.mjs +2 -2
  19. package/esm2022/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +96 -1
  20. package/fesm2022/fabrikantencore.mjs +737 -490
  21. package/fesm2022/fabrikantencore.mjs.map +1 -1
  22. package/package.json +1 -1
  23. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +1 -0
  24. package/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.d.ts +0 -1
  25. package/src/app/modules/fabrikantencore/components/fab-display-photo-dialog/fab-display-photo-dialog.component.d.ts +10 -0
  26. package/src/app/modules/fabrikantencore/components/fab-filter-picture-select/fab-filter-picture-select.component.d.ts +28 -0
  27. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +2 -0
  28. package/src/app/modules/fabrikantencore/components/fab-form/fab-form.component.d.ts +25 -0
  29. package/src/app/modules/fabrikantencore/components/fab-form-dialog/fab-form-dialog.component.d.ts +2 -11
  30. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.d.ts +1 -0
  31. package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +32 -29
  32. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +26 -1
@@ -289,11 +289,11 @@ class BeheerSearchProductsComponent {
289
289
  return array;
290
290
  }
291
291
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerSearchProductsComponent, deps: [{ token: i1.MatLegacyDialog }, { token: i2.SearchProductsApiClient }, { token: i3.MatLegacySnackBar }], target: i0.ɵɵFactoryTarget.Component });
292
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerSearchProductsComponent, selector: "app-beheer-searchproducts", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div class=\"main-window\">\r\n <div>\r\n <mat-card>\r\n <div class=\"main-block-search\">\r\n <div class=\"block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Zoekterm</mat-label>\r\n <input matInput placeholder=\"bv. Merk Serie\" (keyup)=\"handleKeyUp($event)\" [(ngModel)]=\"ZoekTerm\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"zoeken-block\">\r\n <button mat-raised-button (click)=\"Zoek()\" [disabled]=\"Loading\">Zoeken</button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n\r\n <div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n\r\n <div *ngIf=\"!Loading\" class=\"resultblock\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"ebo-table\">\r\n <tr>\r\n <td>\r\n <button mat-raised-button (click)=\"SelectAll()\" class=\"selectall\">V</button>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>BOT</mat-label>\r\n <input matInput [(ngModel)]=\"BOT\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Kenmerk</mat-label>\r\n <input matInput [(ngModel)]=\"Kenmerk\">\r\n </mat-form-field>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(false)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(true)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-searchproducts .full-width{width:100%}app-beheer-searchproducts .block{flex:auto}app-beheer-searchproducts .selectall{height:50px;margin-bottom:20px}app-beheer-searchproducts .main-window{padding:5px}app-beheer-searchproducts .table-row:hover{background-color:#d3d3d3}app-beheer-searchproducts .ebo-table{width:100%}app-beheer-searchproducts .header-check{top:-9px;position:relative;left:-7px}app-beheer-searchproducts .row-check{position:relative;left:-7px}app-beheer-searchproducts .resultblock{margin:5px}app-beheer-searchproducts .main-block-search{display:flex}app-beheer-searchproducts .zoeken-block{padding-left:10px}app-beheer-searchproducts .selected{font-weight:700}app-beheer-searchproducts .table-row{cursor:pointer}app-beheer-searchproducts .table-row-selected{font-weight:700}app-beheer-searchproducts .mat-form-field-infix{width:auto!important}.mat-simple-snackbar-action{color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }], encapsulation: i0.ViewEncapsulation.None });
292
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: BeheerSearchProductsComponent, selector: "app-beheer-searchproducts", ngImport: i0, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div class=\"main-window\">\r\n <div>\r\n <mat-card>\r\n <div class=\"main-block-search\">\r\n <div class=\"block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Zoekterm</mat-label>\r\n <input matInput placeholder=\"bv. Merk Serie\" (keyup)=\"handleKeyUp($event)\" [(ngModel)]=\"ZoekTerm\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"zoeken-block\">\r\n <button mat-raised-button (click)=\"Zoek()\" class=\"search-button\" [disabled]=\"Loading\">Zoeken</button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n\r\n <div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n\r\n <div *ngIf=\"!Loading\" class=\"resultblock\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"ebo-table\">\r\n <tr>\r\n <td>\r\n <button mat-raised-button (click)=\"SelectAll()\" class=\"selectall\">V</button>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>BOT</mat-label>\r\n <input matInput [(ngModel)]=\"BOT\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Kenmerk</mat-label>\r\n <input matInput [(ngModel)]=\"Kenmerk\">\r\n </mat-form-field>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(false)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(true)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-searchproducts .full-width{width:100%}app-beheer-searchproducts .block{flex:auto}app-beheer-searchproducts .mat-form-field-wrapper{padding-bottom:0}app-beheer-searchproducts .mat-form-field-underline{bottom:0}app-beheer-searchproducts .selectall{height:50px}app-beheer-searchproducts .main-window{padding:5px}app-beheer-searchproducts .table-row:hover{background-color:#d3d3d3}app-beheer-searchproducts .ebo-table{width:100%}app-beheer-searchproducts .header-check{top:-9px;position:relative;left:-7px}app-beheer-searchproducts .search-button{height:100%}app-beheer-searchproducts .row-check{position:relative;left:-7px}app-beheer-searchproducts .resultblock{margin-top:5px;margin-bottom:5px}app-beheer-searchproducts .main-block-search{display:flex}app-beheer-searchproducts .zoeken-block{padding-left:10px}app-beheer-searchproducts .selected{font-weight:700}app-beheer-searchproducts .table-row{cursor:pointer}app-beheer-searchproducts .table-row-selected{font-weight:700}app-beheer-searchproducts .mat-form-field-infix{width:auto!important}.mat-simple-snackbar-action{color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatLegacyCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i9.MatLegacyCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i10.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11.BeheerNavComponent, selector: "app-beheer-nav" }, { kind: "component", type: i12.FabLoaderComponent, selector: "app-fab-loader" }], encapsulation: i0.ViewEncapsulation.None });
293
293
  }
294
294
  export { BeheerSearchProductsComponent };
295
295
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BeheerSearchProductsComponent, decorators: [{
296
296
  type: Component,
297
- args: [{ selector: 'app-beheer-searchproducts', encapsulation: ViewEncapsulation.None, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div class=\"main-window\">\r\n <div>\r\n <mat-card>\r\n <div class=\"main-block-search\">\r\n <div class=\"block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Zoekterm</mat-label>\r\n <input matInput placeholder=\"bv. Merk Serie\" (keyup)=\"handleKeyUp($event)\" [(ngModel)]=\"ZoekTerm\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"zoeken-block\">\r\n <button mat-raised-button (click)=\"Zoek()\" [disabled]=\"Loading\">Zoeken</button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n\r\n <div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n\r\n <div *ngIf=\"!Loading\" class=\"resultblock\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"ebo-table\">\r\n <tr>\r\n <td>\r\n <button mat-raised-button (click)=\"SelectAll()\" class=\"selectall\">V</button>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>BOT</mat-label>\r\n <input matInput [(ngModel)]=\"BOT\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Kenmerk</mat-label>\r\n <input matInput [(ngModel)]=\"Kenmerk\">\r\n </mat-form-field>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(false)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(true)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-searchproducts .full-width{width:100%}app-beheer-searchproducts .block{flex:auto}app-beheer-searchproducts .selectall{height:50px;margin-bottom:20px}app-beheer-searchproducts .main-window{padding:5px}app-beheer-searchproducts .table-row:hover{background-color:#d3d3d3}app-beheer-searchproducts .ebo-table{width:100%}app-beheer-searchproducts .header-check{top:-9px;position:relative;left:-7px}app-beheer-searchproducts .row-check{position:relative;left:-7px}app-beheer-searchproducts .resultblock{margin:5px}app-beheer-searchproducts .main-block-search{display:flex}app-beheer-searchproducts .zoeken-block{padding-left:10px}app-beheer-searchproducts .selected{font-weight:700}app-beheer-searchproducts .table-row{cursor:pointer}app-beheer-searchproducts .table-row-selected{font-weight:700}app-beheer-searchproducts .mat-form-field-infix{width:auto!important}.mat-simple-snackbar-action{color:#fff!important}\n"] }]
297
+ args: [{ selector: 'app-beheer-searchproducts', encapsulation: ViewEncapsulation.None, template: "<app-beheer-nav></app-beheer-nav>\r\n\r\n<div class=\"main-window\">\r\n <div>\r\n <mat-card>\r\n <div class=\"main-block-search\">\r\n <div class=\"block\">\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Zoekterm</mat-label>\r\n <input matInput placeholder=\"bv. Merk Serie\" (keyup)=\"handleKeyUp($event)\" [(ngModel)]=\"ZoekTerm\">\r\n </mat-form-field>\r\n </div>\r\n <div class=\"zoeken-block\">\r\n <button mat-raised-button (click)=\"Zoek()\" class=\"search-button\" [disabled]=\"Loading\">Zoeken</button>\r\n </div>\r\n </div>\r\n </mat-card>\r\n\r\n <div *ngIf=\"Loading\">\r\n <app-fab-loader></app-fab-loader>\r\n </div>\r\n\r\n <div *ngIf=\"!Loading\" class=\"resultblock\">\r\n <mat-card>\r\n <mat-card-content>\r\n <table class=\"ebo-table\">\r\n <tr>\r\n <td>\r\n <button mat-raised-button (click)=\"SelectAll()\" class=\"selectall\">V</button>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>BOT</mat-label>\r\n <input matInput [(ngModel)]=\"BOT\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO1Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO1Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO2Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO2Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO3Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO3Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Type</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Type\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>DO4Naam</mat-label>\r\n <input matInput [(ngModel)]=\"DO4Naam\">\r\n </mat-form-field>\r\n </td>\r\n <td>\r\n <mat-form-field appearance=\"fill\" class=\"full-width\">\r\n <mat-label>Kenmerk</mat-label>\r\n <input matInput [(ngModel)]=\"Kenmerk\">\r\n </mat-form-field>\r\n </td>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(false)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n <tr *ngFor=\"let ebo of GetEbos(true)\" class=\"table-row\" (click)=\"SelectRow(ebo)\">\r\n <td>\r\n <div *ngIf=\"ebo.inUseBy == ''\">\r\n <mat-checkbox class=\"row-check\" [(ngModel)]=\"ebo.selected\" [color]=\"Primary\" (change)=\"UpdateSnackBar()\"></mat-checkbox>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let do of ebo.dOs\">\r\n <td *ngIf=\"ShowCell(do.doType)\">{{ do.doType }}</td>\r\n <td>{{ do.doNaam }}</td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["app-beheer-searchproducts .full-width{width:100%}app-beheer-searchproducts .block{flex:auto}app-beheer-searchproducts .mat-form-field-wrapper{padding-bottom:0}app-beheer-searchproducts .mat-form-field-underline{bottom:0}app-beheer-searchproducts .selectall{height:50px}app-beheer-searchproducts .main-window{padding:5px}app-beheer-searchproducts .table-row:hover{background-color:#d3d3d3}app-beheer-searchproducts .ebo-table{width:100%}app-beheer-searchproducts .header-check{top:-9px;position:relative;left:-7px}app-beheer-searchproducts .search-button{height:100%}app-beheer-searchproducts .row-check{position:relative;left:-7px}app-beheer-searchproducts .resultblock{margin-top:5px;margin-bottom:5px}app-beheer-searchproducts .main-block-search{display:flex}app-beheer-searchproducts .zoeken-block{padding-left:10px}app-beheer-searchproducts .selected{font-weight:700}app-beheer-searchproducts .table-row{cursor:pointer}app-beheer-searchproducts .table-row-selected{font-weight:700}app-beheer-searchproducts .mat-form-field-infix{width:auto!important}.mat-simple-snackbar-action{color:#fff!important}\n"] }]
298
298
  }], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }, { type: i2.SearchProductsApiClient }, { type: i3.MatLegacySnackBar }]; } });
299
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXNlYXJjaHByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNlYXJjaHByb2R1Y3RzL2JlaGVlci1zZWFyY2hwcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZWFyY2hwcm9kdWN0cy9iZWhlZXItc2VhcmNocHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlyRSxPQUFPLEVBQTJCLDBCQUEwQixFQUFtRCwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxMLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFGQUFxRixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUVoSixNQU1hLDZCQUE2QjtJQW9CckI7SUFBMkI7SUFBMEQ7SUFsQmpHLE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixPQUFPLEdBQWlCLFNBQVMsQ0FBQztJQUNsQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBRWhDLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckIsT0FBTyxHQUFXLEVBQUUsQ0FB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QUUsRUFBRTt3QkFDekMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLFlBQVksRUFBRTs0QkFDdEQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFnQixDQUFDO3lCQUMzQzt3QkFFRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksU0FBUyxFQUFFOzRCQUNuRCxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFnQixDQUFDLENBQUM7eUJBQ2xEO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXJVVSw2QkFBNkI7MkZBQTdCLDZCQUE2QixpRUNkMUMsZ2hLQXVIQTs7U0R6R2EsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIGFzIE1hdFNuYWNrQmFyLCBNYXRMZWdhY3lTbmFja0JhckNvbmZpZyBhcyBNYXRTbmFja0JhckNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50LCBTZWFyY2hQcm9kdWN0c1JlcXVlc3RNb2RlbCwgU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLCBXaXphcmRFQk9WaWV3TW9kZWwsIEtvcHBlbFByb2R1Y3RzUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZWFyY2hwcm9kdWN0c0tvcHBlbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1zZWFyY2hwcm9kdWN0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1zZWFyY2hwcm9kdWN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXNlYXJjaHByb2R1Y3RzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyU2VhcmNoUHJvZHVjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBab2VrVGVybTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgUHJpbWFyeTogVGhlbWVQYWxldHRlID0gXCJwcmltYXJ5XCI7XHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3RzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBCT1Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMVR5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMU5hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMlR5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMk5hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPM1R5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPM05hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPNFR5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPNE5hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIEtlbm1lcms6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBTZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWw6IFNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIFNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50OiBTZWFyY2hQcm9kdWN0c0FwaUNsaWVudCwgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRFYm9zKGludXNlOiBib29sZWFuKTogQXJyYXk8V2l6YXJkRUJPVmlld01vZGVsPiB7XHJcbiAgICBpZiAodGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwgIT0gbnVsbCAmJiB0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgdmFyIGxpc3QgPSBuZXcgQXJyYXk8V2l6YXJkRUJPVmlld01vZGVsPigpO1xyXG5cclxuICAgICAgdmFyIHRlbXAgPSB0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzIGFzIEFycmF5PFdpemFyZEVCT1ZpZXdNb2RlbD47XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwuZWJvVmlld01vZGVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBhZGQgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoaW51c2UpIHtcclxuICAgICAgICAgIGlmICh0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzW2ldLmluVXNlQnkgPT0gXCJcIikge1xyXG4gICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwuZWJvVmlld01vZGVsc1tpXS5pblVzZUJ5ICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgYWRkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWRkKSB7XHJcbiAgICAgICAgICB2YXIgYXJyYXkgPSB0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzW2ldLmRPcztcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGRvdHlwZSA9IGFycmF5W2pdLmRvVHlwZT8udG9Mb3dlckNhc2UoKSArIFwiXCI7XHJcbiAgICAgICAgICAgICAgdmFyIGRvbmFhbSA9IGFycmF5W2pdLmRvTmFhbT8udG9Mb3dlckNhc2UoKSArIFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChkb3R5cGUgPT0gJ2JvdCcpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLkJPVCAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuQk9ULnRvTG93ZXJDYXNlKCkpID09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgIGFkZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAoZG90eXBlID09ICdrZW5tZXJrJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuS2VubWVyayAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuS2VubWVyay50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8xTmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE8xTmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8xVHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE8xVHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8yTmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE8yTmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8yVHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE8yVHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8zTmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE8zTmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8zVHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE8zVHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gNCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE80TmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE80TmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE80VHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE80VHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWRkKSB7XHJcbiAgICAgICAgICBsaXN0LnB1c2godGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwuZWJvVmlld01vZGVsc1tpXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBBcnJheTxXaXphcmRFQk9WaWV3TW9kZWw+KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgWm9laygpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLlNlbGVjdFByb2R1Y3RzID0gZmFsc2U7XHJcblxyXG4gICAgdmFyIG1vZGVsOiBTZWFyY2hQcm9kdWN0c1JlcXVlc3RNb2RlbCA9IG5ldyBTZWFyY2hQcm9kdWN0c1JlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIG1vZGVsLnZhbHVlID0gdGhpcy5ab2VrVGVybTtcclxuXHJcbiAgICB0aGlzLlNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50LmdldFNlYXJjaFJlc3VsdHMobW9kZWwpLnN1YnNjcmliZShtb2RlbCA9PiB7XHJcbiAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlVwZGF0ZVNuYWNrQmFyKCk7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5VcGRhdGVTbmFja0JhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlU25hY2tCYXIoKTogdm9pZCB7XHJcbiAgICB2YXIgY291bnQgPSB0aGlzLkdldFNlbGVjdGVkQ291bnQoKTtcclxuXHJcbiAgICBpZiAoY291bnQgPiAwKSB7XHJcbiAgICAgIHZhciBzbmFjayA9IHRoaXMuc25hY2tCYXIub3Blbihjb3VudCArIFwiIHByb2R1Y3QoZW4pIGdlc2VsZWN0ZWVyZC5cIiwgXCJLb3BwZWxcIik7XHJcblxyXG4gICAgICBzbmFjay5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Lb3BwZWwoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zbmFja0Jhci5kaXNtaXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlS2V5VXAoZTogYW55KSB7XHJcbiAgICBpZiAoZS5rZXlDb2RlID09PSAxMykge1xyXG4gICAgICB0aGlzLlpvZWsoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RQcm9kdWN0c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsPy5lYm9WaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuU2VsZWN0UHJvZHVjdHMpIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHNbaV0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHNbaV0uc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuVXBkYXRlU25hY2tCYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBLb3BwZWwoKTogdm9pZCB7XHJcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJTZWFyY2hwcm9kdWN0c0tvcHBlbERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgc3VnZ2VzdGlvbjogdGhpcy5HZXRTdWdnZXN0aW9uKClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHZhciBtb2RlbDogS29wcGVsUHJvZHVjdHNSZXF1ZXN0TW9kZWwgPSBuZXcgS29wcGVsUHJvZHVjdHNSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICAgICAgICBtb2RlbC5wcm9kdWN0SWQgPSByZXN1bHQ7XHJcbiAgICAgICAgICBtb2RlbC5zZWFyY2hQcm9kdWN0RUJPTW9kZWxzID0gbmV3IEFycmF5PFdpemFyZEVCT1ZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICAgICAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLkdldEVib3MoZmFsc2UpO1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb2R1Y3RzW2ldLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgbW9kZWwuc2VhcmNoUHJvZHVjdEVCT01vZGVscy5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNBcGlDbGllbnQua29wcGVsUHJvZHVjdHMobW9kZWwpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuWm9laygpO1xyXG4gICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLlpvZWsoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gLTIpIHtcclxuICAgICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdmFyIG1vZGVsOiBLb3BwZWxQcm9kdWN0c1JlcXVlc3RNb2RlbCA9IG5ldyBLb3BwZWxQcm9kdWN0c1JlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgICAgIG1vZGVsLnByb2R1Y3RJZCA9IDA7XHJcbiAgICAgICAgICBtb2RlbC5zZWFyY2hQcm9kdWN0RUJPTW9kZWxzID0gbmV3IEFycmF5PFdpemFyZEVCT1ZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICAgICAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLkdldEVib3MoZmFsc2UpO1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb2R1Y3RzW2ldLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgbW9kZWwuc2VhcmNoUHJvZHVjdEVCT01vZGVscy5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNBcGlDbGllbnQua29wcGVsUHJvZHVjdHNLZW5tZXJrKG1vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlpvZWsoKTtcclxuICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5ab2VrKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEFsbCgpOiB2b2lkIHtcclxuICAgIHZhciBlYm9zID0gdGhpcy5HZXRFYm9zKGZhbHNlKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVib3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZWJvc1tpXS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVTbmFja0JhcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFJvdyhyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHJvdy5pblVzZUJ5ID09ICcnKSB7XHJcbiAgICAgIHJvdy5zZWxlY3RlZCA9ICFyb3cuc2VsZWN0ZWQ7XHJcbiAgICAgIHRoaXMuVXBkYXRlU25hY2tCYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93Q2VsbChkb1R5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGRvVHlwZS50b0xvd2VyQ2FzZSgpID09ICdib3QnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZG9UeXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2tlbm1lcmsnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgR2V0U2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgdmFyIGNvdW50ID0gMDtcclxuICAgIHZhciBlYm9zID0gdGhpcy5HZXRFYm9zKGZhbHNlKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVib3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGVib3NbaV0uc2VsZWN0ZWQpIHtcclxuICAgICAgICBjb3VudCsrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRTdWdnZXN0aW9uKCk6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgdmFyIG1lcmtzZXJpZSA9IFwiXCI7XHJcbiAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG4gICAgdmFyIGFycmF5a2VubWVyayA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcbiAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgdmFyIGVib3MgPSB0aGlzLkdldEVib3MoZmFsc2UpO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWJvcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoZWJvc1tpXS5zZWxlY3RlZCkge1xyXG4gICAgICAgIHZhciBhcnJheXRlbXAgPSBlYm9zW2ldLmRPcztcclxuICAgICAgICBpZiAoYXJyYXl0ZW1wICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcnJheXRlbXAubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycmF5dGVtcFtqXS5kb1R5cGU/LnRvTG93ZXJDYXNlKCkgPT0gXCJtZXJrIHNlcmllXCIpIHtcclxuICAgICAgICAgICAgICBtZXJrc2VyaWUgPSBhcnJheXRlbXBbal0uZG9OYWFtIGFzIHN0cmluZztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFycmF5dGVtcFtqXS5kb1R5cGU/LnRvTG93ZXJDYXNlKCkgPT0gXCJrZW5tZXJrXCIpIHtcclxuICAgICAgICAgICAgICBhcnJheWtlbm1lcmsucHVzaChhcnJheXRlbXBbal0uZG9OYWFtIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhcnJheS5wdXNoKG1lcmtzZXJpZSk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWtlbm1lcmsubGVuZ3RoICYmIGkgPCAzOyBpKyspIHtcclxuICAgICAgYXJyYXkucHVzaChhcnJheWtlbm1lcmtbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhcnJheTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIj5cclxuICA8ZGl2PlxyXG4gICAgPG1hdC1jYXJkPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbi1ibG9jay1zZWFyY2hcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2tcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPlpvZWt0ZXJtPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cImJ2LiBNZXJrIFNlcmllXCIgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIiBbKG5nTW9kZWwpXT1cIlpvZWtUZXJtXCI+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ6b2VrZW4tYmxvY2tcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlpvZWsoKVwiIFtkaXNhYmxlZF09XCJMb2FkaW5nXCI+Wm9la2VuPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxyXG4gICAgICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhTG9hZGluZ1wiIGNsYXNzPVwicmVzdWx0YmxvY2tcIj5cclxuICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwiZWJvLXRhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTZWxlY3RBbGwoKVwiIGNsYXNzPVwic2VsZWN0YWxsXCI+VjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Qk9UPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cIkJPVFwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMVR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8xVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMU5hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8xTmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMlR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8yVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMk5hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8yTmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPM1R5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8zVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPM05hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8zTmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPNFR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE80VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPNE5hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE80TmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPktlbm1lcms8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiS2VubWVya1wiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGVibyBvZiBHZXRFYm9zKGZhbHNlKVwiIGNsYXNzPVwidGFibGUtcm93XCIgKGNsaWNrKT1cIlNlbGVjdFJvdyhlYm8pXCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImViby5pblVzZUJ5ID09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJyb3ctY2hlY2tcIiBbKG5nTW9kZWwpXT1cImViby5zZWxlY3RlZFwiIFtjb2xvcl09XCJQcmltYXJ5XCIgKGNoYW5nZSk9XCJVcGRhdGVTbmFja0JhcigpXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRvIG9mIGViby5kT3NcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIlNob3dDZWxsKGRvLmRvVHlwZSlcIj57eyBkby5kb1R5cGUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGRvLmRvTmFhbSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZWJvIG9mIEdldEVib3ModHJ1ZSlcIiBjbGFzcz1cInRhYmxlLXJvd1wiIChjbGljayk9XCJTZWxlY3RSb3coZWJvKVwiPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlYm8uaW5Vc2VCeSA9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwicm93LWNoZWNrXCIgWyhuZ01vZGVsKV09XCJlYm8uc2VsZWN0ZWRcIiBbY29sb3JdPVwiUHJpbWFyeVwiIChjaGFuZ2UpPVwiVXBkYXRlU25hY2tCYXIoKVwiPjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkbyBvZiBlYm8uZE9zXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJTaG93Q2VsbChkby5kb1R5cGUpXCI+e3sgZG8uZG9UeXBlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBkby5kb05hYW0gfX08L3RkPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXNlYXJjaHByb2R1Y3RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNlYXJjaHByb2R1Y3RzL2JlaGVlci1zZWFyY2hwcm9kdWN0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZWFyY2hwcm9kdWN0cy9iZWhlZXItc2VhcmNocHJvZHVjdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlyRSxPQUFPLEVBQTJCLDBCQUEwQixFQUFtRCwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxMLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLHFGQUFxRixDQUFDOzs7Ozs7Ozs7Ozs7OztBQUVoSixNQU1hLDZCQUE2QjtJQW9CckI7SUFBMkI7SUFBMEQ7SUFsQmpHLE9BQU8sR0FBWSxLQUFLLENBQUM7SUFDekIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUN0QixPQUFPLEdBQWlCLFNBQVMsQ0FBQztJQUNsQyxjQUFjLEdBQVksS0FBSyxDQUFDO0lBRWhDLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckIsT0FBTyxHQUFXLEVBQUUsQ0FB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QUUsRUFBRTt3QkFDekMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLFlBQVksRUFBRTs0QkFDdEQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFnQixDQUFDO3lCQUMzQzt3QkFFRCxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksU0FBUyxFQUFFOzRCQUNuRCxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFnQixDQUFDLENBQUM7eUJBQ2xEO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXJVVSw2QkFBNkI7MkZBQTdCLDZCQUE2QixpRUNkMUMsd2lLQXVIQTs7U0R6R2EsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdExlZ2FjeVNuYWNrQmFyIGFzIE1hdFNuYWNrQmFyLCBNYXRMZWdhY3lTbmFja0JhckNvbmZpZyBhcyBNYXRTbmFja0JhckNvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50LCBTZWFyY2hQcm9kdWN0c1JlcXVlc3RNb2RlbCwgU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLCBXaXphcmRFQk9WaWV3TW9kZWwsIEtvcHBlbFByb2R1Y3RzUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xyXG5pbXBvcnQgeyBCZWhlZXJTZWFyY2hwcm9kdWN0c0tvcHBlbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cvYmVoZWVyLXNlYXJjaHByb2R1Y3RzLWtvcHBlbC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJlaGVlci1zZWFyY2hwcm9kdWN0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JlaGVlci1zZWFyY2hwcm9kdWN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmVoZWVyLXNlYXJjaHByb2R1Y3RzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmVoZWVyU2VhcmNoUHJvZHVjdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBab2VrVGVybTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgUHJpbWFyeTogVGhlbWVQYWxldHRlID0gXCJwcmltYXJ5XCI7XHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3RzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBCT1Q6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMVR5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMU5hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMlR5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPMk5hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPM1R5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPM05hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPNFR5cGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIERPNE5hYW06IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIEtlbm1lcms6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBTZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWw6IFNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLCBwcml2YXRlIFNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50OiBTZWFyY2hQcm9kdWN0c0FwaUNsaWVudCwgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRFYm9zKGludXNlOiBib29sZWFuKTogQXJyYXk8V2l6YXJkRUJPVmlld01vZGVsPiB7XHJcbiAgICBpZiAodGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwgIT0gbnVsbCAmJiB0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgdmFyIGxpc3QgPSBuZXcgQXJyYXk8V2l6YXJkRUJPVmlld01vZGVsPigpO1xyXG5cclxuICAgICAgdmFyIHRlbXAgPSB0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzIGFzIEFycmF5PFdpemFyZEVCT1ZpZXdNb2RlbD47XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwuZWJvVmlld01vZGVscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIHZhciBhZGQgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoaW51c2UpIHtcclxuICAgICAgICAgIGlmICh0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzW2ldLmluVXNlQnkgPT0gXCJcIikge1xyXG4gICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwuZWJvVmlld01vZGVsc1tpXS5pblVzZUJ5ICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgYWRkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWRkKSB7XHJcbiAgICAgICAgICB2YXIgYXJyYXkgPSB0aGlzLlNlYXJjaFByb2R1Y3RzUmVzcG9uc2VNb2RlbC5lYm9WaWV3TW9kZWxzW2ldLmRPcztcclxuXHJcbiAgICAgICAgICBpZiAoYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGRvdHlwZSA9IGFycmF5W2pdLmRvVHlwZT8udG9Mb3dlckNhc2UoKSArIFwiXCI7XHJcbiAgICAgICAgICAgICAgdmFyIGRvbmFhbSA9IGFycmF5W2pdLmRvTmFhbT8udG9Mb3dlckNhc2UoKSArIFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChkb3R5cGUgPT0gJ2JvdCcpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLkJPVCAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuQk9ULnRvTG93ZXJDYXNlKCkpID09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgIGFkZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAoZG90eXBlID09ICdrZW5tZXJrJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuS2VubWVyayAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuS2VubWVyay50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8xTmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE8xTmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8xVHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE8xVHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMikge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8yTmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE8yTmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8yVHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE8yVHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gMykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8zTmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE8zTmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE8zVHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE8zVHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGogPT0gNCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE80TmFhbSAhPSBcIlwiICYmIGRvbmFhbS5pbmRleE9mKHRoaXMuRE80TmFhbS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuRE80VHlwZSAhPSBcIlwiICYmIGRvdHlwZS5pbmRleE9mKHRoaXMuRE80VHlwZS50b0xvd2VyQ2FzZSgpKSA9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICBhZGQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWRkKSB7XHJcbiAgICAgICAgICBsaXN0LnB1c2godGhpcy5TZWFyY2hQcm9kdWN0c1Jlc3BvbnNlTW9kZWwuZWJvVmlld01vZGVsc1tpXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBBcnJheTxXaXphcmRFQk9WaWV3TW9kZWw+KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgWm9laygpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLlNlbGVjdFByb2R1Y3RzID0gZmFsc2U7XHJcblxyXG4gICAgdmFyIG1vZGVsOiBTZWFyY2hQcm9kdWN0c1JlcXVlc3RNb2RlbCA9IG5ldyBTZWFyY2hQcm9kdWN0c1JlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIG1vZGVsLnZhbHVlID0gdGhpcy5ab2VrVGVybTtcclxuXHJcbiAgICB0aGlzLlNlYXJjaFByb2R1Y3RzQXBpQ2xpZW50LmdldFNlYXJjaFJlc3VsdHMobW9kZWwpLnN1YnNjcmliZShtb2RlbCA9PiB7XHJcbiAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlVwZGF0ZVNuYWNrQmFyKCk7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5VcGRhdGVTbmFja0JhcigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlU25hY2tCYXIoKTogdm9pZCB7XHJcbiAgICB2YXIgY291bnQgPSB0aGlzLkdldFNlbGVjdGVkQ291bnQoKTtcclxuXHJcbiAgICBpZiAoY291bnQgPiAwKSB7XHJcbiAgICAgIHZhciBzbmFjayA9IHRoaXMuc25hY2tCYXIub3Blbihjb3VudCArIFwiIHByb2R1Y3QoZW4pIGdlc2VsZWN0ZWVyZC5cIiwgXCJLb3BwZWxcIik7XHJcblxyXG4gICAgICBzbmFjay5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5Lb3BwZWwoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zbmFja0Jhci5kaXNtaXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlS2V5VXAoZTogYW55KSB7XHJcbiAgICBpZiAoZS5rZXlDb2RlID09PSAxMykge1xyXG4gICAgICB0aGlzLlpvZWsoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RQcm9kdWN0c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsPy5lYm9WaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuU2VsZWN0UHJvZHVjdHMpIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHNbaV0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNSZXNwb25zZU1vZGVsLmVib1ZpZXdNb2RlbHNbaV0uc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuVXBkYXRlU25hY2tCYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBLb3BwZWwoKTogdm9pZCB7XHJcbiAgICB2YXIgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihCZWhlZXJTZWFyY2hwcm9kdWN0c0tvcHBlbERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgc3VnZ2VzdGlvbjogdGhpcy5HZXRTdWdnZXN0aW9uKClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xyXG4gICAgICAgIGlmIChyZXN1bHQgPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIHZhciBtb2RlbDogS29wcGVsUHJvZHVjdHNSZXF1ZXN0TW9kZWwgPSBuZXcgS29wcGVsUHJvZHVjdHNSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICAgICAgICBtb2RlbC5wcm9kdWN0SWQgPSByZXN1bHQ7XHJcbiAgICAgICAgICBtb2RlbC5zZWFyY2hQcm9kdWN0RUJPTW9kZWxzID0gbmV3IEFycmF5PFdpemFyZEVCT1ZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICAgICAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLkdldEVib3MoZmFsc2UpO1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb2R1Y3RzW2ldLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgbW9kZWwuc2VhcmNoUHJvZHVjdEVCT01vZGVscy5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNBcGlDbGllbnQua29wcGVsUHJvZHVjdHMobW9kZWwpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuWm9laygpO1xyXG4gICAgICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLlpvZWsoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChyZXN1bHQgPT0gLTIpIHtcclxuICAgICAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgdmFyIG1vZGVsOiBLb3BwZWxQcm9kdWN0c1JlcXVlc3RNb2RlbCA9IG5ldyBLb3BwZWxQcm9kdWN0c1JlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgICAgIG1vZGVsLnByb2R1Y3RJZCA9IDA7XHJcbiAgICAgICAgICBtb2RlbC5zZWFyY2hQcm9kdWN0RUJPTW9kZWxzID0gbmV3IEFycmF5PFdpemFyZEVCT1ZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICAgICAgICB2YXIgcHJvZHVjdHMgPSB0aGlzLkdldEVib3MoZmFsc2UpO1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHByb2R1Y3RzW2ldLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgICAgbW9kZWwuc2VhcmNoUHJvZHVjdEVCT01vZGVscy5wdXNoKHByb2R1Y3RzW2ldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuU2VhcmNoUHJvZHVjdHNBcGlDbGllbnQua29wcGVsUHJvZHVjdHNLZW5tZXJrKG1vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLlpvZWsoKTtcclxuICAgICAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5ab2VrKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdEFsbCgpOiB2b2lkIHtcclxuICAgIHZhciBlYm9zID0gdGhpcy5HZXRFYm9zKGZhbHNlKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVib3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgZWJvc1tpXS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVTbmFja0JhcigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFJvdyhyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHJvdy5pblVzZUJ5ID09ICcnKSB7XHJcbiAgICAgIHJvdy5zZWxlY3RlZCA9ICFyb3cuc2VsZWN0ZWQ7XHJcbiAgICAgIHRoaXMuVXBkYXRlU25hY2tCYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93Q2VsbChkb1R5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGRvVHlwZS50b0xvd2VyQ2FzZSgpID09ICdib3QnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZG9UeXBlLnRvTG93ZXJDYXNlKCkgPT0gJ2tlbm1lcmsnKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgR2V0U2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgdmFyIGNvdW50ID0gMDtcclxuICAgIHZhciBlYm9zID0gdGhpcy5HZXRFYm9zKGZhbHNlKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVib3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGVib3NbaV0uc2VsZWN0ZWQpIHtcclxuICAgICAgICBjb3VudCsrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRTdWdnZXN0aW9uKCk6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgdmFyIG1lcmtzZXJpZSA9IFwiXCI7XHJcbiAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG4gICAgdmFyIGFycmF5a2VubWVyayA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcbiAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgdmFyIGVib3MgPSB0aGlzLkdldEVib3MoZmFsc2UpO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWJvcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoZWJvc1tpXS5zZWxlY3RlZCkge1xyXG4gICAgICAgIHZhciBhcnJheXRlbXAgPSBlYm9zW2ldLmRPcztcclxuICAgICAgICBpZiAoYXJyYXl0ZW1wICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhcnJheXRlbXAubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgaWYgKGFycmF5dGVtcFtqXS5kb1R5cGU/LnRvTG93ZXJDYXNlKCkgPT0gXCJtZXJrIHNlcmllXCIpIHtcclxuICAgICAgICAgICAgICBtZXJrc2VyaWUgPSBhcnJheXRlbXBbal0uZG9OYWFtIGFzIHN0cmluZztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFycmF5dGVtcFtqXS5kb1R5cGU/LnRvTG93ZXJDYXNlKCkgPT0gXCJrZW5tZXJrXCIpIHtcclxuICAgICAgICAgICAgICBhcnJheWtlbm1lcmsucHVzaChhcnJheXRlbXBbal0uZG9OYWFtIGFzIHN0cmluZyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhcnJheS5wdXNoKG1lcmtzZXJpZSk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWtlbm1lcmsubGVuZ3RoICYmIGkgPCAzOyBpKyspIHtcclxuICAgICAgYXJyYXkucHVzaChhcnJheWtlbm1lcmtbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhcnJheTtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1iZWhlZXItbmF2PjwvYXBwLWJlaGVlci1uYXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibWFpbi13aW5kb3dcIj5cclxuICA8ZGl2PlxyXG4gICAgPG1hdC1jYXJkPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWFpbi1ibG9jay1zZWFyY2hcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmxvY2tcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPlpvZWt0ZXJtPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cImJ2LiBNZXJrIFNlcmllXCIgKGtleXVwKT1cImhhbmRsZUtleVVwKCRldmVudClcIiBbKG5nTW9kZWwpXT1cIlpvZWtUZXJtXCI+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ6b2VrZW4tYmxvY2tcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cIlpvZWsoKVwiIGNsYXNzPVwic2VhcmNoLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJMb2FkaW5nXCI+Wm9la2VuPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiTG9hZGluZ1wiPlxyXG4gICAgICA8YXBwLWZhYi1sb2FkZXI+PC9hcHAtZmFiLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhTG9hZGluZ1wiIGNsYXNzPVwicmVzdWx0YmxvY2tcIj5cclxuICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwiZWJvLXRhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJTZWxlY3RBbGwoKVwiIGNsYXNzPVwic2VsZWN0YWxsXCI+VjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+Qk9UPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbKG5nTW9kZWwpXT1cIkJPVFwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMVR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8xVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMU5hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8xTmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMlR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8yVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPMk5hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8yTmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPM1R5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8zVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPM05hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE8zTmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPNFR5cGU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE80VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkRPNE5hYW08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRE80TmFhbVwiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPktlbm1lcms8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiS2VubWVya1wiPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGVibyBvZiBHZXRFYm9zKGZhbHNlKVwiIGNsYXNzPVwidGFibGUtcm93XCIgKGNsaWNrKT1cIlNlbGVjdFJvdyhlYm8pXCI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImViby5pblVzZUJ5ID09ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJyb3ctY2hlY2tcIiBbKG5nTW9kZWwpXT1cImViby5zZWxlY3RlZFwiIFtjb2xvcl09XCJQcmltYXJ5XCIgKGNoYW5nZSk9XCJVcGRhdGVTbmFja0JhcigpXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRvIG9mIGViby5kT3NcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIlNob3dDZWxsKGRvLmRvVHlwZSlcIj57eyBkby5kb1R5cGUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IGRvLmRvTmFhbSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZWJvIG9mIEdldEVib3ModHJ1ZSlcIiBjbGFzcz1cInRhYmxlLXJvd1wiIChjbGljayk9XCJTZWxlY3RSb3coZWJvKVwiPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlYm8uaW5Vc2VCeSA9PSAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IGNsYXNzPVwicm93LWNoZWNrXCIgWyhuZ01vZGVsKV09XCJlYm8uc2VsZWN0ZWRcIiBbY29sb3JdPVwiUHJpbWFyeVwiIChjaGFuZ2UpPVwiVXBkYXRlU25hY2tCYXIoKVwiPjwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkbyBvZiBlYm8uZE9zXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJTaG93Q2VsbChkby5kb1R5cGUpXCI+e3sgZG8uZG9UeXBlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyBkby5kb05hYW0gfX08L3RkPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Component, Inject } from '@angular/core';
2
2
  import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
3
- import { CreateFilterRequest } from '../../../swagger/SwaggerClient';
3
+ import { CreateFilterRequest, LoginResponseModel } from '../../../swagger/SwaggerClient';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../../swagger/SwaggerClient";
6
6
  import * as i2 from "../../../services/authentication.service";
@@ -50,6 +50,7 @@ class BeheerSelectFilterDialogComponent {
50
50
  this.LoadingFilters = true;
51
51
  var requestfilter = new CreateFilterRequest();
52
52
  requestfilter.name = this.FilterNaamNieuw;
53
+ requestfilter.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
53
54
  this.FiltersApiClient.createFilter(requestfilter).subscribe((model) => {
54
55
  this.LoadingFilters = false;
55
56
  this.dialogRef.close({
@@ -98,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
98
99
  type: Inject,
99
100
  args: [MAT_DIALOG_DATA]
100
101
  }] }, { type: i2.AuthenticationService }, { type: i3.MatLegacyDialogRef }]; } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFzQyxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQWdGLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUVuSixNQUthLGlDQUFpQztJQWlCbEM7SUFDd0I7SUFDekI7SUFDQTtJQW5CRixjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLGdCQUFnQixDQUFtQjtJQUVuQyxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLGNBQWMsQ0FBUztJQUV2QixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLEdBQUcsR0FBWSxLQUFLLENBQUM7SUFDckIsR0FBRyxHQUFZLEtBQUssQ0FBQztJQUNyQixHQUFHLEdBQVksS0FBSyxDQUFDO0lBQ3JCLEdBQUcsR0FBWSxLQUFLLENBQUM7SUFDckIsR0FBRyxHQUFZLEtBQUssQ0FBQztJQUNyQixPQUFPLEdBQVksSUFBSSxDQUFDO0lBRS9CLFlBQ1Us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TTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmLCBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3JlYXRlRmlsdGVyUmVxdWVzdCwgQ3JlYXRlRmlsdGVyUmVzcG9uc2UsIEZpbHRlcnNBcGlDbGllbnQsIEZpbHRlcnNWaWV3TW9kZWwsIExvZ2luUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJTZWxlY3RGaWx0ZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBMb2FkaW5nRmlsdGVyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBGaWx0ZXJzVmlld01vZGVsOiBGaWx0ZXJzVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgRmlsdGVyTmFhbU5pZXV3OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBGaWx0ZXJTZWxlY3RlZDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgRUJPU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBCT1Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRE8xOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERPMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBETzM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRE80OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIEtlbm1lcms6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG4gICAgcHVibGljIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgKSB7XHJcbiAgICBpZiAoZGF0YT8uRUJPU2VsZWN0ID09IHRydWUpIHtcclxuICAgICAgdGhpcy5FQk9TZWxlY3QgPSBkYXRhLkVCT1NlbGVjdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Mb2FkaW5nRmlsdGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBOaWV1d0ZpbHRlclRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ZmlsdGVyOiBDcmVhdGVGaWx0ZXJSZXF1ZXN0ID0gbmV3IENyZWF0ZUZpbHRlclJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0ZmlsdGVyLm5hbWUgPSB0aGlzLkZpbHRlck5hYW1OaWV1dztcclxuXHJcbiAgICB0aGlzLkZpbHRlcnNBcGlDbGllbnQuY3JlYXRlRmlsdGVyKHJlcXVlc3RmaWx0ZXIpLnN1YnNjcmliZSgobW9kZWw6IENyZWF0ZUZpbHRlclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBmaWx0ZXI6IG1vZGVsLmlkLFxyXG4gICAgICAgIGJvdDogdGhpcy5CT1QsXHJcbiAgICAgICAgZG8xOiB0aGlzLkRPMSxcclxuICAgICAgICBkbzI6IHRoaXMuRE8yLFxyXG4gICAgICAgIGRvMzogdGhpcy5ETzMsXHJcbiAgICAgICAgZG80OiB0aGlzLkRPNCxcclxuICAgICAgICBrZW5tZXJrOiB0aGlzLktlbm1lcmtcclxuICAgICAgfSk7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBCZXN0YWFuZFRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgZmlsdGVyOiB0aGlzLkZpbHRlclNlbGVjdGVkLFxyXG4gICAgICBib3Q6IHRoaXMuQk9ULFxyXG4gICAgICBkbzE6IHRoaXMuRE8xLFxyXG4gICAgICBkbzI6IHRoaXMuRE8yLFxyXG4gICAgICBkbzM6IHRoaXMuRE8zLFxyXG4gICAgICBkbzQ6IHRoaXMuRE80LFxyXG4gICAgICBrZW5tZXJrOiB0aGlzLktlbm1lcmtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBMb2FkRmlsdGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5nZXRGaWx0ZXJzVmlld01vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpLnN1YnNjcmliZSgobW9kZWw6IEZpbHRlcnNWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5GaWx0ZXJzVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiTG9hZGluZygpXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIiFMb2FkaW5nKClcIj5cclxuICA8ZGl2ICpuZ0lmPVwiRUJPU2VsZWN0XCIgY2xhc3M9XCJlYm8tc2VsZWN0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWJvLXNlbGVjdC1pdGVtXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJCT1RcIj5CT1Q8L21hdC1jaGVja2JveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImViby1zZWxlY3QtaXRlbVwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IFsobmdNb2RlbCldPVwiRE8xXCI+RE8xPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlYm8tc2VsZWN0LWl0ZW1cIj5cclxuICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cIkRPMlwiPkRPMjwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWJvLXNlbGVjdC1pdGVtXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJETzNcIj5ETzM8L21hdC1jaGVja2JveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImViby1zZWxlY3QtaXRlbVwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IFsobmdNb2RlbCldPVwiRE80XCI+RE80PC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlYm8tc2VsZWN0LWl0ZW1cIj5cclxuICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cIktlbm1lcmtcIj5LZW5tZXJrPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bWF0LXRhYi1ncm91cD5cclxuICAgIDxtYXQtdGFiIGxhYmVsPVwiTmlldXdlIGZpbHRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkZpbHRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRmlsdGVyTmFhbU5pZXV3XCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmlldXdGaWx0ZXJUb2V2b2VnZW4oKVwiPlRvZXZvZWdlbjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICAgIDxtYXQtdGFiIGxhYmVsPVwiQmVzdGFhbmRcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+RmlsdGVyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkZpbHRlclNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgRmlsdGVyc1ZpZXdNb2RlbC5maWx0ZXJWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImZpbHRlci5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ZmlsdGVyLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQmVzdGFhbmRUb2V2b2VnZW4oKVwiPlRvZXZvZWdlbjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICA8L21hdC10YWItZ3JvdXA+XHJcbjwvZGl2PlxyXG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvYmVoZWVyL2NvbXBvbmVudHMvYmVoZWVyLXNlbGVjdC1maWx0ZXItZGlhbG9nL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL2JlaGVlci9jb21wb25lbnRzL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFzQyxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoSSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRELGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUVuSixNQUthLGlDQUFpQztJQWlCbEM7SUFDd0I7SUFDekI7SUFDQTtJQW5CRixjQUFjLEdBQVksS0FBSyxDQUFDO0lBQ2hDLGdCQUFnQixDQUFtQjtJQUVuQyxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLGNBQWMsQ0FBUztJQUV2QixTQUFTLEdBQVksS0FBSyxDQUFDO0lBRTNCLEdBQUcsR0FBWSxLQUFLLENBQUM7SUFDckIsR0FBRyxHQUFZLEtBQUssQ0FBQztJQUNyQixHQUFHLEdBQVksS0FBSyxDQUFDO0lBQ3JCLEdBQUcsR0FBWSxLQUFLLENBQUM7SUFDckIsR0FBRyxHQUFZLEtBQUssQ0FBQztJQUNyQixPQUFPLEdBQVksSUFBSSxDQUFD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ZTsyRkFsQmQsaUNBQWlDLHVFQ1Y5Qyw4K0RBeURBOztTRC9DYSxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQXNCeEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmLCBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3JlYXRlRmlsdGVyUmVxdWVzdCwgQ3JlYXRlRmlsdGVyUmVzcG9uc2UsIEZpbHRlcnNBcGlDbGllbnQsIEZpbHRlcnNWaWV3TW9kZWwsIExvZ2luUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWhlZXItc2VsZWN0LWZpbHRlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2JlaGVlci1zZWxlY3QtZmlsdGVyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCZWhlZXJTZWxlY3RGaWx0ZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBMb2FkaW5nRmlsdGVyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBGaWx0ZXJzVmlld01vZGVsOiBGaWx0ZXJzVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgRmlsdGVyTmFhbU5pZXV3OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBGaWx0ZXJTZWxlY3RlZDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgRUJPU2VsZWN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBCT1Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRE8xOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERPMjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBETzM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRE80OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIEtlbm1lcms6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG4gICAgcHVibGljIGF1dGhlbnRpY2F0aW9uU2VydmljZTogQXV0aGVudGljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJlaGVlclNlbGVjdEZpbHRlckRpYWxvZ0NvbXBvbmVudD4sXHJcbiAgKSB7XHJcbiAgICBpZiAoZGF0YT8uRUJPU2VsZWN0ID09IHRydWUpIHtcclxuICAgICAgdGhpcy5FQk9TZWxlY3QgPSBkYXRhLkVCT1NlbGVjdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkRmlsdGVycygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRpbmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5Mb2FkaW5nRmlsdGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBOaWV1d0ZpbHRlclRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ZmlsdGVyOiBDcmVhdGVGaWx0ZXJSZXF1ZXN0ID0gbmV3IENyZWF0ZUZpbHRlclJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0ZmlsdGVyLm5hbWUgPSB0aGlzLkZpbHRlck5hYW1OaWV1dztcclxuICAgIHJlcXVlc3RmaWx0ZXIubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICB0aGlzLkZpbHRlcnNBcGlDbGllbnQuY3JlYXRlRmlsdGVyKHJlcXVlc3RmaWx0ZXIpLnN1YnNjcmliZSgobW9kZWw6IENyZWF0ZUZpbHRlclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICBmaWx0ZXI6IG1vZGVsLmlkLFxyXG4gICAgICAgIGJvdDogdGhpcy5CT1QsXHJcbiAgICAgICAgZG8xOiB0aGlzLkRPMSxcclxuICAgICAgICBkbzI6IHRoaXMuRE8yLFxyXG4gICAgICAgIGRvMzogdGhpcy5ETzMsXHJcbiAgICAgICAgZG80OiB0aGlzLkRPNCxcclxuICAgICAgICBrZW5tZXJrOiB0aGlzLktlbm1lcmtcclxuICAgICAgfSk7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBCZXN0YWFuZFRvZXZvZWdlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgZmlsdGVyOiB0aGlzLkZpbHRlclNlbGVjdGVkLFxyXG4gICAgICBib3Q6IHRoaXMuQk9ULFxyXG4gICAgICBkbzE6IHRoaXMuRE8xLFxyXG4gICAgICBkbzI6IHRoaXMuRE8yLFxyXG4gICAgICBkbzM6IHRoaXMuRE8zLFxyXG4gICAgICBkbzQ6IHRoaXMuRE80LFxyXG4gICAgICBrZW5tZXJrOiB0aGlzLktlbm1lcmtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBMb2FkRmlsdGVycygpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuRmlsdGVyc0FwaUNsaWVudC5nZXRGaWx0ZXJzVmlld01vZGVsKHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpLnN1YnNjcmliZSgobW9kZWw6IEZpbHRlcnNWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5GaWx0ZXJzVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgIGFsZXJ0KCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiTG9hZGluZygpXCI+XHJcbiAgPGFwcC1mYWItbG9hZGVyPjwvYXBwLWZhYi1sb2FkZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cIiFMb2FkaW5nKClcIj5cclxuICA8ZGl2ICpuZ0lmPVwiRUJPU2VsZWN0XCIgY2xhc3M9XCJlYm8tc2VsZWN0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWJvLXNlbGVjdC1pdGVtXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJCT1RcIj5CT1Q8L21hdC1jaGVja2JveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImViby1zZWxlY3QtaXRlbVwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IFsobmdNb2RlbCldPVwiRE8xXCI+RE8xPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlYm8tc2VsZWN0LWl0ZW1cIj5cclxuICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cIkRPMlwiPkRPMjwvbWF0LWNoZWNrYm94PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZWJvLXNlbGVjdC1pdGVtXCI+XHJcbiAgICAgIDxtYXQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJETzNcIj5ETzM8L21hdC1jaGVja2JveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImViby1zZWxlY3QtaXRlbVwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IFsobmdNb2RlbCldPVwiRE80XCI+RE80PC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlYm8tc2VsZWN0LWl0ZW1cIj5cclxuICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cIktlbm1lcmtcIj5LZW5tZXJrPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bWF0LXRhYi1ncm91cD5cclxuICAgIDxtYXQtdGFiIGxhYmVsPVwiTmlldXdlIGZpbHRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkZpbHRlcjwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwiRmlsdGVyTmFhbU5pZXV3XCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiTmlldXdGaWx0ZXJUb2V2b2VnZW4oKVwiPlRvZXZvZWdlbjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICAgIDxtYXQtdGFiIGxhYmVsPVwiQmVzdGFhbmRcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+RmlsdGVyPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cIkZpbHRlclNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgRmlsdGVyc1ZpZXdNb2RlbC5maWx0ZXJWaWV3TW9kZWxzXCIgW3ZhbHVlXT1cImZpbHRlci5pZFwiPlxyXG4gICAgICAgICAgICAgIHt7ZmlsdGVyLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYmFyIHRvb2wtYmFyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQmVzdGFhbmRUb2V2b2VnZW4oKVwiPlRvZXZvZWdlbjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXRhYj5cclxuICA8L21hdC10YWItZ3JvdXA+XHJcbjwvZGl2PlxyXG4iXX0=