@pepperi-addons/ngx-composite-lib 0.4.2-beta.51 → 0.4.2-beta.53

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.
@@ -7,6 +7,7 @@ import { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';
7
7
  import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
8
8
  import { PepIconModule, pepIconArrowRightAlt } from '@pepperi-addons/ngx-lib/icon';
9
9
  import { PepSnackBarModule } from '@pepperi-addons/ngx-lib/snack-bar';
10
+ import { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@pepperi-addons/ngx-lib/icon";
12
13
  const pepIcons = [
@@ -26,7 +27,16 @@ PepFileStatusPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
26
27
  PepIconModule,
27
28
  PepDialogModule,
28
29
  PepSnackBarModule], exports: [FileStatusPanelComponent] });
29
- PepFileStatusPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFileStatusPanelModule, imports: [CommonModule,
30
+ PepFileStatusPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFileStatusPanelModule, providers: [
31
+ {
32
+ provide: MatSnackBarRef,
33
+ useValue: {}
34
+ },
35
+ {
36
+ provide: MAT_SNACK_BAR_DATA,
37
+ useValue: {} // Add any data you wish to test if it is passed/used correctly
38
+ }
39
+ ], imports: [CommonModule,
30
40
  PepTopBarModule,
31
41
  PepTextboxModule,
32
42
  PepButtonModule,
@@ -48,7 +58,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
48
58
  PepDialogModule,
49
59
  PepSnackBarModule
50
60
  ],
51
- exports: [FileStatusPanelComponent]
61
+ exports: [FileStatusPanelComponent],
62
+ providers: [
63
+ {
64
+ provide: MatSnackBarRef,
65
+ useValue: {}
66
+ },
67
+ {
68
+ provide: MAT_SNACK_BAR_DATA,
69
+ useValue: {} // Add any data you wish to test if it is passed/used correctly
70
+ }
71
+ ]
52
72
  }]
53
73
  }], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdGF0dXMtcGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZmlsZS1zdGF0dXMtcGFuZWwvZmlsZS1zdGF0dXMtcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUV0RSxNQUFNLFFBQVEsR0FBRztJQUNiLG9CQUFvQjtDQUN2QixDQUFBO0FBa0JELE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsWUFDWSxlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7cUhBTFEsd0JBQXdCO3NIQUF4Qix3QkFBd0IsaUJBZDdCLHdCQUF3QixhQUd4QixZQUFZO1FBQ1osZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGVBQWU7UUFDZixpQkFBaUIsYUFFWCx3QkFBd0I7c0hBR3pCLHdCQUF3QixZQVg3QixZQUFZO1FBQ1osZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsYUFBYTtRQUNiLGVBQWU7UUFDZixpQkFBaUI7MkZBS1osd0JBQXdCO2tCQWhCcEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1Ysd0JBQXdCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsaUJBQWlCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZpbGVTdGF0dXNQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vZmlsZS1zdGF0dXMtcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFRleHRib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi90ZXh0Ym94JztcbmltcG9ydCB7IFBlcFRvcEJhck1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3RvcC1iYXInO1xuaW1wb3J0IHsgUGVwRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZGlhbG9nJztcbmltcG9ydCB7IFBlcEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBQZXBJY29uTW9kdWxlLCBQZXBJY29uUmVnaXN0cnksIHBlcEljb25BcnJvd1JpZ2h0QWx0IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5pbXBvcnQgeyBQZXBTbmFja0Jhck1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NuYWNrLWJhcic7XG5cbmNvbnN0IHBlcEljb25zID0gW1xuICAgIHBlcEljb25BcnJvd1JpZ2h0QWx0LFxuXVxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWxlU3RhdHVzUGFuZWxDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQZXBUb3BCYXJNb2R1bGUsXG4gICAgICAgIFBlcFRleHRib3hNb2R1bGUsXG4gICAgICAgIFBlcEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwRGlhbG9nTW9kdWxlLFxuICAgICAgICBQZXBTbmFja0Jhck1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW0ZpbGVTdGF0dXNQYW5lbENvbXBvbmVudF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBQZXBGaWxlU3RhdHVzUGFuZWxNb2R1bGUgeyBcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBwZXBJY29uUmVnaXN0cnk6IFBlcEljb25SZWdpc3RyeSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5wZXBJY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhwZXBJY29ucyk7XG4gICAgfVxufSJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdGF0dXMtcGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZmlsZS1zdGF0dXMtcGFuZWwvZmlsZS1zdGF0dXMtcGFuZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFFakYsTUFBTSxRQUFRLEdBQUc7SUFDYixvQkFBb0I7Q0FDdkIsQ0FBQTtBQTRCRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQ1ksZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRXhDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7O3FIQUxRLHdCQUF3QjtzSEFBeEIsd0JBQXdCLGlCQXhCN0Isd0JBQXdCLGFBR3hCLFlBQVk7UUFDWixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsZUFBZTtRQUNmLGlCQUFpQixhQUVYLHdCQUF3QjtzSEFhekIsd0JBQXdCLGFBWnZCO1FBQ047WUFDQSxPQUFPLEVBQUUsY0FBYztZQUN2QixRQUFRLEVBQUUsRUFBRTtTQUNYO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFFBQVEsRUFBRSxFQUFFLENBQUMsK0RBQStEO1NBQy9FO0tBQ0osWUFsQkcsWUFBWTtRQUNaLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGFBQWE7UUFDYixlQUFlO1FBQ2YsaUJBQWlCOzJGQWVaLHdCQUF3QjtrQkExQnBDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ25DLFNBQVMsRUFBQzt3QkFDTjs0QkFDQSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsUUFBUSxFQUFFLEVBQUU7eUJBQ1g7d0JBQ0Q7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsUUFBUSxFQUFFLEVBQUUsQ0FBQywrREFBK0Q7eUJBQy9FO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGaWxlU3RhdHVzUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2ZpbGUtc3RhdHVzLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBUZXh0Ym94TW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvdGV4dGJveCc7XG5pbXBvcnQgeyBQZXBUb3BCYXJNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi90b3AtYmFyJztcbmltcG9ydCB7IFBlcERpYWxvZ01vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwSWNvbk1vZHVsZSwgUGVwSWNvblJlZ2lzdHJ5LCBwZXBJY29uQXJyb3dSaWdodEFsdCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwU25hY2tCYXJNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbmFjay1iYXInO1xuaW1wb3J0IHsgTUFUX1NOQUNLX0JBUl9EQVRBLCBNYXRTbmFja0JhclJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbmNvbnN0IHBlcEljb25zID0gW1xuICAgIHBlcEljb25BcnJvd1JpZ2h0QWx0LFxuXVxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGaWxlU3RhdHVzUGFuZWxDb21wb25lbnRcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQZXBUb3BCYXJNb2R1bGUsXG4gICAgICAgIFBlcFRleHRib3hNb2R1bGUsXG4gICAgICAgIFBlcEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwRGlhbG9nTW9kdWxlLFxuICAgICAgICBQZXBTbmFja0Jhck1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW0ZpbGVTdGF0dXNQYW5lbENvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOltcbiAgICAgICAge1xuICAgICAgICBwcm92aWRlOiBNYXRTbmFja0JhclJlZixcbiAgICAgICAgdXNlVmFsdWU6IHt9XG4gICAgICAgIH0sIFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBNQVRfU05BQ0tfQkFSX0RBVEEsXG4gICAgICAgICAgICB1c2VWYWx1ZToge30gLy8gQWRkIGFueSBkYXRhIHlvdSB3aXNoIHRvIHRlc3QgaWYgaXQgaXMgcGFzc2VkL3VzZWQgY29ycmVjdGx5XG4gICAgICAgIH1cbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgUGVwRmlsZVN0YXR1c1BhbmVsTW9kdWxlIHsgXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcGVwSWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnksXG4gICAgKSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMocGVwSWNvbnMpO1xuICAgIH1cbn0iXX0=
@@ -320,6 +320,7 @@ export class GenericListComponent {
320
320
  this._loaderService.hide();
321
321
  // Set the total count
322
322
  this.totalRowCount = data?.totalCount || 0;
323
+ this.setEmptyState();
323
324
  if (data) {
324
325
  this._dataView = data.dataView;
325
326
  if (data.items?.length > 0 && !data.isPepRowData) {
@@ -513,4 +514,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
513
514
  }], listLoad: [{
514
515
  type: Output
515
516
  }] } });
516
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtbGlzdC9nZW5lcmljLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0L2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUlILE9BQU8sRUFDUCxTQUFTLEVBSVosTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFFSCxnQkFBZ0IsRUFJaEIsaUJBQWlCLEVBS3BCLE1BQU0sOEJBQThCLENBQUM7QUF5QnRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWMvRCxNQUFNLE9BQU8sb0JBQW9CO0lBNEo3QixZQUNZLHFCQUE4QyxFQUM5QyxjQUFnQyxFQUNoQyxjQUFnQyxFQUNoQyxVQUE0QixFQUM1QixtQkFBMEMsRUFDMUMsZUFBa0M7UUFMbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQUM5QyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFDMUMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBeEp0QyxnQkFB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S0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsTUFBTTtnQkFJUCxXQUFXO3NCQURWLE1BQU07Z0JBSVAsbUJBQW1CO3NCQURsQixNQUFNO2dCQUlQLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBQZXBEYXRhQ29udmVydG9yU2VydmljZSxcbiAgICBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgIE9iamVjdHNEYXRhUm93LFxuICAgIFBlcEd1aWQsXG4gICAgVUlDb250cm9sLFxuICAgIFBlcExvYWRlclNlcnZpY2UsXG4gICAgUGVwUm93RGF0YSxcbiAgICBQZXBTZXNzaW9uU2VydmljZVxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElQZXBGb3JtRmllbGRDbGlja0V2ZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZm9ybSc7XG5pbXBvcnQge1xuICAgIFBlcExpc3RDb21wb25lbnQsXG4gICAgUGVwU2VsZWN0aW9uRGF0YSxcbiAgICBJUGVwTGlzdExvYWRQYWdlRXZlbnQsXG4gICAgUGVwTGlzdFNlbGVjdGlvblR5cGUsXG4gICAgSVBlcExpc3RTb3J0aW5nQ2hhbmdlRXZlbnQsXG4gICAgREVGQVVMVF9QQUdFX1NJWkUsXG4gICAgSVBlcExpc3RMb2FkSXRlbXNFdmVudCxcbiAgICBQZXBMaXN0VGFibGVWaWV3VHlwZSxcbiAgICBJUGVwTGlzdFNvcnRpbmdEYXRhLFxuICAgIElQZXBMaXN0U3RhcnRJbmRleENoYW5nZUV2ZW50XG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2xpc3QnO1xuaW1wb3J0IHtcbiAgICBQZXBNZW51SXRlbSxcbiAgICBJUGVwTWVudUl0ZW1DbGlja0V2ZW50LFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9tZW51JztcbmltcG9ydCB7IElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZm9ybSc7XG5pbXBvcnQge1xuICAgIFBlcEJyZWFkQ3J1bWJJdGVtLFxuICAgIElQZXBCcmVhZENydW1iSXRlbUNsaWNrRXZlbnRcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnJlYWQtY3J1bWJzJztcbmltcG9ydCB7IElQZXBTZWFyY2hDbGlja0V2ZW50LCBQZXBTZWFyY2hDb21wb25lbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWFyY2gnO1xuXG5pbXBvcnQge1xuICAgIERhdGFWaWV3LFxuICAgIEdyaWREYXRhVmlld1xufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvcGFwaS1zZGsvZGlzdC9lbnRpdGllcy9kYXRhLXZpZXcnO1xuaW1wb3J0IHtcbiAgICBJUGVwR2VuZXJpY0xpc3RJbml0RGF0YSxcbiAgICBJUGVwR2VuZXJpY0xpc3REYXRhU291cmNlLFxuICAgIElQZXBHZW5lcmljTGlzdFBhZ2VyLFxuICAgIElQZXBHZW5lcmljTGlzdEFjdGlvbnMsXG4gICAgSVBlcEdlbmVyaWNMaXN0U21hcnRGaWx0ZXIsXG4gICAgSVBlcFNtYXJ0RmlsdGVycyxcbiAgICBJUGVwR2VuZXJpY0xpc3RFbXB0eVN0YXRlXG59IGZyb20gJy4vZ2VuZXJpYy1saXN0Lm1vZGVsJztcbmltcG9ydCB7IFBlcEdlbmVyaWNMaXN0U2VydmljZSB9IGZyb20gJy4vZ2VuZXJpYy1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVZpZXdDb252ZXJ0ZXIgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvZGF0YS12aWV3cyc7XG5pbXBvcnQge1xuICAgIElQZXBTbWFydEZpbHRlckRhdGEsXG4gICAgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQsXG4gICAgUGVwU21hcnRGaWx0ZXJzQ29tcG9uZW50XG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWdlbmVyaWMtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5zY3NzJywgJy4vZ2VuZXJpYy1saXN0LmNvbXBvbmVudC50aGVtZS5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUGVwR2VuZXJpY0xpc3RTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBHZW5lcmljTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoJykgc2VhcmNoOiBQZXBTZWFyY2hDb21wb25lbnQgfCB1bmRlZmluZWQ7XG4gICAgQFZpZXdDaGlsZCgnc21hcnRGaWx0ZXJzQ29tcG9uZW50Jykgc21hcnRGaWx0ZXJzQ29tcG9uZW50OiBQZXBTbWFydEZpbHRlcnNDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBwcml2YXRlIF9wZXBMaXN0Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuICAgIEBWaWV3Q2hpbGQoJ3BlcExpc3RDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgICBzZXQgcGVwTGlzdENvbnRhaW5lcih2YWw6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgdGhpcy5fcGVwTGlzdENvbnRhaW5lciA9IHZhbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kYXRhU291cmNlOiBJUGVwR2VuZXJpY0xpc3REYXRhU291cmNlID0ge1xuICAgICAgICBpbml0OiBhc3luYyAocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGF0YVZpZXc6IHtcbiAgICAgICAgICAgICAgICAgICAgVHlwZTogJ0dyaWQnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0b3RhbENvdW50OiAtMSxcbiAgICAgICAgICAgICAgICBpdGVtczogW11cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBASW5wdXQoKVxuICAgIHNldCBkYXRhU291cmNlKHZhbDogSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLl9kYXRhU291cmNlID0gdmFsO1xuICAgICAgICB0aGlzLl9zb3J0aW5nID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmluaXRTZWFyY2goKTtcbiAgICAgICAgdGhpcy5pbml0U21hcnRTZWFyY2goKTtcbiAgICAgICAgdGhpcy5pbml0TGlzdCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgYWN0aW9uczogSVBlcEdlbmVyaWNMaXN0QWN0aW9ucyA9IHtcbiAgICAgICAgZ2V0OiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW11cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBASW5wdXQoKVxuICAgIHV1aWRNYXBwaW5nID0gJ2tleSc7XG5cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGFkZFBhZGRpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgdGl0bGUgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgZGVzY3JpcHRpb24gPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgaW5saW5lID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dTZWFyY2ggPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbm9EYXRhRm91bmRNc2cgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgZW1wdHlTdGF0ZTogSVBlcEdlbmVyaWNMaXN0RW1wdHlTdGF0ZSB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uVHlwZTogUGVwTGlzdFNlbGVjdGlvblR5cGUgPSAnbXVsdGknO1xuXG4gICAgQElucHV0KClcbiAgICBzdXBwb3J0U29ydGluZyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzb3J0aW5nOiBJUGVwTGlzdFNvcnRpbmdEYXRhIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KClcbiAgICBjYWNoZVNpemUgPSAtMTtcblxuICAgIEBJbnB1dCgpXG4gICAgaGlkZVNlbGVjdEFsbCA9IGZhbHNlO1xuICAgIFxuICAgIEBJbnB1dCgpXG4gICAgcGFnZXI6IElQZXBHZW5lcmljTGlzdFBhZ2VyID0ge1xuICAgICAgICB0eXBlOiAnc2Nyb2xsJ1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgdGFibGVWaWV3VHlwZTogUGVwTGlzdFRhYmxlVmlld1R5cGUgPSAncmVndWxhcic7XG5cbiAgICBASW5wdXQoKVxuICAgIHplYnJhU3RyaXBlcyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgc21hcnRGaWx0ZXIodmFsOiBJUGVwR2VuZXJpY0xpc3RTbWFydEZpbHRlcikge1xuICAgICAgICB0aGlzLnNtYXJ0RmlsdGVycyA9IHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5jb252ZXJ0VG9TbWFydEZpbHRlcih2YWwpO1xuICAgICAgICB0aGlzLl9hcHBsaWVkRmlsdGVycyA9IHRoaXMuc21hcnRGaWx0ZXJzLmRhdGEgfHwgW107XG4gICAgICAgIHRoaXMuc2hvd1NtYXJ0RmlsdGVyID0gdGhpcy5zbWFydEZpbHRlcnMuZmllbGRzLmxlbmd0aCA+IDA7IFxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RvcEJhciA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBicmVhZENydW1ic0l0ZW1zOiBQZXBCcmVhZENydW1iSXRlbVtdID0gbmV3IEFycmF5PFBlcEJyZWFkQ3J1bWJJdGVtPigpO1xuXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RBbGwgPSBmYWxzZVxuXG4gICAgQElucHV0KClcbiAgICBzY3JvbGxQb3NpdGlvbiA9IDBcblxuICAgIEBPdXRwdXQoKVxuICAgIGZpZWxkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRDbGlja0V2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgYnJlYWRDcnVtYkl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEJyZWFkQ3J1bWJJdGVtQ2xpY2tFdmVudD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHN0YXJ0SW5kZXhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBMaXN0U3RhcnRJbmRleENoYW5nZUV2ZW50PigpXG5cbiAgICBAT3V0cHV0KClcbiAgICBsaXN0TG9hZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgc2V0IHBlcExpc3QodmFsOiBQZXBMaXN0Q29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMuX3BlcExpc3QgPSB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IHBlcExpc3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXBMaXN0O1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc2l6ZSQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgICBwcml2YXRlIF9sb2FkZXIkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBwcml2YXRlIF9kYXRhVmlldzogRGF0YVZpZXcgPSB7XG4gICAgICAgIFR5cGU6ICdHcmlkJ1xuICAgIH07XG4gICAgcHJpdmF0ZSBfcGVwTGlzdDogYW55O1xuICAgIG9uTG9hZCA9IHRydWU7XG4gICAgbGlzdElucHV0czogYW55O1xuICAgIHRvdGFsUm93Q291bnQgPSAtMTtcbiAgICBzZWFyY2hTdHJpbmcgPSAnJztcbiAgICBzaG93U21hcnRGaWx0ZXIgPSBmYWxzZTtcbiAgICBzaG93RW1wdHlTdGF0ZSA9IGZhbHNlO1xuICAgIHNtYXJ0RmlsdGVyczogSVBlcFNtYXJ0RmlsdGVycyA9IHtcbiAgICAgICAgZmllbGRzOiBbXSxcbiAgICAgICAgZGF0YTogW10sXG4gICAgICAgIHRpdGxlOiAnRmlsdGVycydcbiAgICB9O1xuICAgIHByaXZhdGUgX2FwcGxpZWRGaWx0ZXJzOiBJUGVwU21hcnRGaWx0ZXJEYXRhW10gPSBbXTtcbiAgICBwcml2YXRlIF9zb3J0aW5nOiBJUGVwTGlzdFNvcnRpbmdDaGFuZ2VFdmVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIG1lbnVIYW5kbGVyczogeyBba2V5OiBzdHJpbmddOiAob2JqOiBhbnkpID0+IFByb21pc2U8dm9pZD4gfSA9IHt9O1xuICAgIG1lbnVBY3Rpb25zOiBBcnJheTxQZXBNZW51SXRlbT4gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kYXRhQ29udmVydG9yU2VydmljZTogUGVwRGF0YUNvbnZlcnRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2xheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2xvYWRlclNlcnZpY2U6IFBlcExvYWRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfZ2VuZXJpY0xpc3RTZXJ2aWNlOiBQZXBHZW5lcmljTGlzdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3Nlc3Npb25TZXJ2aWNlOiBQZXBTZXNzaW9uU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLl9yZXNpemUkID0gdGhpcy5fbGF5b3V0U2VydmljZS5vblJlc2l6ZSQucGlwZSgpLnN1YnNjcmliZSgoc2l6ZSkgPT4geyAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gICAgICAgICAgICBcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2xvYWRlciQgPSB0aGlzLl9sb2FkZXJTZXJ2aWNlLm9uQ2hhbmdlZCQuc3Vic2NyaWJlKChzdGF0dXM6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIC8vXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdExpc3QoKSB7XG4gICAgICAgIHRoaXMub25Mb2FkID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7IC8vbWFraW5nIHN1cmUgYWxsIGlucHV0IGRhdGEgaXMgYXZhaWxhYmxlXG4gICAgICAgICAgICBpZiAodGhpcy5fZGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgICAgIC8vbWVyZ2Ugc2VsZWN0b3IgaW5wdXRzIHdpdGggY2FsbGJhY2sgaW5wdXRzXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkVGFibGVJbnB1dHMoKTtcblxuICAgICAgICAgICAgICAgIGxldCBmcm9tSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGxldCB0b0luZGV4ID0gMDtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpc3RJbnB1dHMucGFnZXIudHlwZSA9PT0gJ3BhZ2VzJykge1xuICAgICAgICAgICAgICAgICAgICBmcm9tSW5kZXggPSB0aGlzLmxpc3RJbnB1dHMucGFnZXIuc2l6ZSAqIHRoaXMubGlzdElucHV0cy5wYWdlci5pbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdG9JbmRleCA9IGZyb21JbmRleCArICh0aGlzLmxpc3RJbnB1dHMucGFnZXIuc2l6ZSB8fCBERUZBVUxUX1BBR0VfU0laRSkgLSAxO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRvSW5kZXggPSAxMDA7Ly9UTyBETyAtIGdldCB2YWx1ZSBmcm9tIC0gdGhpcy5jdXN0b21MaXN0LmdldFRvcEl0ZW1zKClcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5sb2FkRGF0YShmcm9tSW5kZXgsIHRvSW5kZXgpO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpc3RJbnB1dHM/LmVtcHR5U3RhdGU/LnNob3cgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFbXB0eVN0YXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMub25Mb2FkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy9zaG93IGVtcHR5IHN0YXRlXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0VtcHR5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpc3RJbnB1dHMuZW1wdHlTdGF0ZS50aXRsZSkgeyAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnR0VORVJJQ19MSVNULkVNUFRZX1NUQVRFLlRJVExFJykuc3Vic2NyaWJlKHRleHQgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RJbnB1dHMuZW1wdHlTdGF0ZS50aXRsZSA9IHRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubGlzdElucHV0cy5lbXB0eVN0YXRlLmRlc2NyaXB0aW9uKSB7ICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2xhdGUuZ2V0KCdHRU5FUklDX0xJU1QuRU1QVFlfU1RBVEUuREVTQ1JJUFRJT04nKS5zdWJzY3JpYmUodGV4dCA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdElucHV0cy5lbXB0eVN0YXRlLmRlc2NyaXB0aW9uID0gdGV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wZXBMaXN0Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGVwTGlzdENvbnRhaW5lci5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGVwTGlzdENvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgUGVwTGlzdENvbXBvbmVudCB9ID0gYXdhaXQgaW1wb3J0KCdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9saXN0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9wZXBMaXN0Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChQZXBMaXN0Q29tcG9uZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXBMaXN0ID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uudmlld1R5cGUgPSB0aGlzLl9nZW5lcmljTGlzdFNlcnZpY2UuZ2V0TGlzdFZpZXdUeXBlKHRoaXMuX2RhdGFWaWV3LlR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnRhYmxlVmlld1R5cGUgPSB0aGlzLmxpc3RJbnB1dHMudGFibGVWaWV3VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS56ZWJyYVN0cmlwZXMgPSB0aGlzLmxpc3RJbnB1dHMuemVicmFTdHJpcGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5sb2NrSXRlbUlubmVyRXZlbnRzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zdXBwb3J0U29ydGluZyA9IHRoaXMubGlzdElucHV0cy5zdXBwb3J0U29ydGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zb3J0aW5nID0gdGhpcy5saXN0SW5wdXRzLnNvcnRpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY2FjaGVTaXplID0gdGhpcy5saXN0SW5wdXRzLmNhY2hlU2l6ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdGlvblR5cGVGb3JBY3Rpb25zID0gdGhpcy5saXN0SW5wdXRzLnNlbGVjdGlvblR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuaGlkZUFsbFNlbGVjdGlvbkluTXVsdGkgPSB0aGlzLmxpc3RJbnB1dHMuaGlkZVNlbGVjdEFsbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNob3dDYXJkU2VsZWN0aW9uID0gdGhpcy5saXN0SW5wdXRzLnNlbGVjdGlvblR5cGUgIT09ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYWdlclR5cGUgPSB0aGlzLmxpc3RJbnB1dHMucGFnZXIudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpc3RJbnB1dHMucGFnZXIudHlwZSA9PT0gJ3BhZ2VzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYWdlU2l6ZSA9IHRoaXMubGlzdElucHV0cy5wYWdlcj8uc2l6ZSB8fCBERUZBVUxUX1BBR0VfU0laRTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFnZUluZGV4ID0gdGhpcy5saXN0SW5wdXRzLnBhZ2VyPy5pbmRleCB8fCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3Rpb25UeXBlID09IFwibXVsdGlcIiAmJiB0aGlzLnNlbGVjdEFsbCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KCdBbGxTZWxlY3RlZCcsIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uubm9EYXRhRm91bmRNc2cgPSB0aGlzLmxpc3RJbnB1dHMubm9EYXRhRm91bmRNc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc3RhcnRJbmRleENoYW5nZS5zdWJzY3JpYmUoJGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0SW5kZXhDaGFuZ2UuZW1pdCgkZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpZWxkQ2xpY2suc3Vic2NyaWJlKCgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ3VzdG9taXplRmllbGRDbGljaygkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWRJdGVtc0NoYW5nZS5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3RlZEl0ZW1zQ2hhbmdlZCgkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubG9hZEl0ZW1zLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvYWRJdGVtcygkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubG9hZFBhZ2Uuc3Vic2NyaWJlKCgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTG9hZFBhZ2UoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZCgkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc29ydGluZ0NoYW5nZS5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25Tb3J0aW5nQ2hhbmdlKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5saXN0TG9hZC5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZWxlY3RlZEl0ZW1zQ2hhbmdlZCh0aGlzLl9wZXBMaXN0LnNlbGVjdGVkSXRlbXMubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTGlzdExvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnZlcnRlZExpc3Q6IE9iamVjdHNEYXRhUm93W10gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWRMaXN0ID0gdGhpcy5fZGF0YUNvbnZlcnRvclNlcnZpY2UuY29udmVydExpc3REYXRhKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUNvbnRyb2wgPSB0aGlzLmdldFVpQ29udHJvbChEYXRhVmlld0NvbnZlcnRlci50b1VJQ29udHJvbERhdGEodGhpcy5fZGF0YVZpZXcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5fZ2VuZXJpY0xpc3RTZXJ2aWNlLmdldFNlbGVjdGVkSXRlbXMoY29udmVydGVkTGlzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2V0U2VsZWN0ZWRJZHMoc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5pbml0TGlzdERhdGEodWlDb250cm9sLCB0aGlzLnRvdGFsUm93Q291bnQsIGNvbnZlcnRlZExpc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNjcm9sbFRvSW5kZXgodGhpcy5zY3JvbGxQb3NpdGlvbilcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb2FkcyBpbnB1dHMgaW4gY2FzZSB0aGV5IGFyZSBwcm92aWRlZCBhbmQgbWVyZ2Ugd2l0aCBzZWxlY3RvciBpbnB1dHNcbiAgICAgKiBAcmV0dXJucyBtZXJnZWQgcGVwLWxpc3QgaW5wdXRzXG4gICAgICovXG4gICAgcHJpdmF0ZSBsb2FkVGFibGVJbnB1dHMoKSB7XG4gICAgICAgIHRoaXMubGlzdElucHV0cyA9IHtcbiAgICAgICAgICAgIHN1cHBvcnRTb3J0aW5nOiB0aGlzLnN1cHBvcnRTb3J0aW5nLFxuICAgICAgICAgICAgc29ydGluZzogdGhpcy5zb3J0aW5nLFxuICAgICAgICAgICAgY2FjaGVTaXplOiB0aGlzLmNhY2hlU2l6ZSxcbiAgICAgICAgICAgIGhpZGVTZWxlY3RBbGw6IHRoaXMuaGlkZVNlbGVjdEFsbCxcbiAgICAgICAgICAgIHNlbGVjdGlvblR5cGU6IHRoaXMuc2VsZWN0aW9uVHlwZSxcbiAgICAgICAgICAgIHBhZ2VyOiB0aGlzLnBhZ2VyLFxuICAgICAgICAgICAgbm9EYXRhRm91bmRNc2c6IHRoaXMubm9EYXRhRm91bmRNc2csXG4gICAgICAgICAgICB0YWJsZVZpZXdUeXBlOiB0aGlzLnRhYmxlVmlld1R5cGUsXG4gICAgICAgICAgICB6ZWJyYVN0cmlwZXM6IHRoaXMuemVicmFTdHJpcGVzLFxuICAgICAgICAgICAgZW1wdHlTdGF0ZTogdGhpcy5lbXB0eVN0YXRlLFxuICAgICAgICAgICAgc2VsZWN0QWxsOiB0aGlzLnNlbGVjdEFsbFxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5fZGF0YVNvdXJjZS5pbnB1dHMpIHtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuX2RhdGFTb3VyY2UuaW5wdXRzKS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZ2VuZXJpY0xpc3RTZXJ2aWNlLmhhc1Byb3BlcnR5KHRoaXMubGlzdElucHV0cywgaXRlbVswXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0SW5wdXRzW2l0ZW1bMF1dID0gaXRlbVsxXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGRldGVtaW5lcyB3aGV0aGVyIGVtcHR5IHN0YXRlIGlzIHRvIGJlIGRpc3BsYXllZFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0RW1wdHlTdGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zaG93RW1wdHlTdGF0ZSA9IHRoaXMudG90YWxSb3dDb3VudCA9PT0gMCAmJlxuICAgICAgICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPT09ICcnICYmXG4gICAgICAgICAgICB0aGlzLl9hcHBsaWVkRmlsdGVycy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVaUNvbnRyb2woZGF0YTogYW55KTogVUlDb250cm9sIHtcbiAgICAgICAgY29uc3QgdWlDb250cm9sID0gbmV3IFVJQ29udHJvbCgpO1xuICAgICAgICB1aUNvbnRyb2wuQ29udHJvbEZpZWxkcyA9IFtdO1xuXG4gICAgICAgIGlmIChkYXRhPy5Db250cm9sRmllbGRzKSB7XG4gICAgICAgICAgICB1aUNvbnRyb2wuQ29udHJvbEZpZWxkcyA9IGRhdGEuQ29udHJvbEZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+IHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5jb252ZXJ0VG9VaUNvbnRyb2xGaWVsZChmaWVsZCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVpQ29udHJvbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRNZW51SXRlbXMoKTogdm9pZCB7IC8vVE9ET1xuICAgICAgICBpZiAodGhpcy5saXN0SW5wdXRzLnNlbGVjdGlvblR5cGUgIT09ICdub25lJykge1xuICAgICAgICAgICAgdGhpcy5nZXRNZW51QWN0aW9ucygpLnRoZW4oXG4gICAgICAgICAgICAgICAgeCA9PiB0aGlzLm1lbnVBY3Rpb25zID0geFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZ2V0TWVudUFjdGlvbnMoKTogUHJvbWlzZTxQZXBNZW51SXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IHJlczogUGVwTWVudUl0ZW1bXSA9IFtdO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldE1lbnVPYmplY3RzKCk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IHRoaXMuYWN0aW9ucy5nZXQocmVzdWx0LmRhdGEpO1xuICAgICAgICAgICAgdGhpcy5tZW51SGFuZGxlcnMgPSB7fTtcbiAgICAgICAgICAgIGFjdGlvbnM/LmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXVpZCA9IFBlcEd1aWQubmV3R3VpZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUhhbmRsZXJzW3V1aWRdID0gaXRlbS5oYW5kbGVyO1xuICAgICAgICAgICAgICAgIHJlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiB1dWlkLFxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtLnRpdGxlXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWVudU9iamVjdHMoKSB7XG4gICAgICAgIGNvbnN0IG1lbnVPYmplY3RzOiBhbnkgPSB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGRhdGE6IG5ldyBQZXBTZWxlY3Rpb25EYXRhKClcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodGhpcy5wZXBMaXN0KSB7XG4gICAgICAgICAgICBtZW51T2JqZWN0cy5zdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgIG1lbnVPYmplY3RzLmRhdGEgPSB0aGlzLnBlcExpc3QuZ2V0U2VsZWN0ZWRJdGVtc0RhdGEoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZW51T2JqZWN0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gJyc7XG4gICAgICAgIHRoaXMuc2VhcmNoPy5pbml0U2VhcmNoKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U21hcnRTZWFyY2goKSB7XG4gICAgICAgIHRoaXMuX2FwcGxpZWRGaWx0ZXJzID0gW107XG4gICAgICAgIHRoaXMuc21hcnRGaWx0ZXJzQ29tcG9uZW50Py5jbGVhckZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWREYXRhKGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpOiBQcm9taXNlPFBlcFJvd0RhdGFbXT4ge1xuICAgICAgICB0aGlzLl9sb2FkZXJTZXJ2aWNlLnNob3coKTtcbiAgICAgICAgbGV0IGNvbnZlcmVkRGF0YTogUGVwUm93RGF0YVtdID0gW107XG4gICAgICAgIGNvbnN0IGRhdGE6IElQZXBHZW5lcmljTGlzdEluaXREYXRhID0gYXdhaXQgdGhpcy5fZGF0YVNvdXJjZS5pbml0KHtcbiAgICAgICAgICAgIHNlYXJjaFN0cmluZzogdGhpcy5zZWFyY2hTdHJpbmcgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmlsdGVyczogdGhpcy5fYXBwbGllZEZpbHRlcnMubGVuZ3RoID8gdGhpcy5fYXBwbGllZEZpbHRlcnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBzb3J0aW5nOiB0aGlzLl9zb3J0aW5nIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZyb21JbmRleDogZnJvbUluZGV4LFxuICAgICAgICAgICAgdG9JbmRleDogdG9JbmRleFxuICAgICAgICB9KTsgICAgICAgIFxuICAgICAgICB0aGlzLl9sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcblxuICAgICAgICAvLyBTZXQgdGhlIHRvdGFsIGNvdW50XG4gICAgICAgIHRoaXMudG90YWxSb3dDb3VudCA9IGRhdGE/LnRvdGFsQ291bnQgfHwgMDtcblxuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVZpZXcgPSBkYXRhLmRhdGFWaWV3O1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5pdGVtcz8ubGVuZ3RoID4gMCAmJiAhZGF0YS5pc1BlcFJvd0RhdGEpIHsgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgY29udmVyZWREYXRhID0gZGF0YS5pdGVtcy5tYXAoaXRlbSA9PiB0aGlzLl9nZW5lcmljTGlzdFNlcnZpY2UuY29udmVydFRvUGVwUm93RGF0YShpdGVtLCBkYXRhLmRhdGFWaWV3LCB0aGlzLnV1aWRNYXBwaW5nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udmVyZWREYXRhO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBhc3luYyB1cGRhdGVEYXRhTGlzdChmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyLCBwYWdlSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IFByb21pc2U8UGVwUm93RGF0YVtdPiB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhU291cmNlLnVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGVyU2VydmljZS5zaG93KCk7XG4gICAgICAgICAgICBsZXQgY29udmVyZWREYXRhOiBQZXBSb3dEYXRhW10gPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFMaXN0ID0gYXdhaXQgdGhpcy5fZGF0YVNvdXJjZS51cGRhdGUoe1xuICAgICAgICAgICAgICAgIHNlYXJjaFN0cmluZzogdGhpcy5zZWFyY2hTdHJpbmcgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IHRoaXMuX2FwcGxpZWRGaWx0ZXJzLmxlbmd0aCA/IHRoaXMuX2FwcGxpZWRGaWx0ZXJzIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHNvcnRpbmc6IHRoaXMuX3NvcnRpbmcgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGZyb21JbmRleDogZnJvbUluZGV4LFxuICAgICAgICAgICAgICAgIHRvSW5kZXg6IHRvSW5kZXgsXG4gICAgICAgICAgICAgICAgcGFnZUluZGV4OiBwYWdlSW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fbG9hZGVyU2VydmljZS5oaWRlKCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhTGlzdD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnZlcmVkRGF0YSA9IGRhdGFMaXN0Lm1hcChpdGVtID0+IHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5jb252ZXJ0VG9QZXBSb3dEYXRhKGl0ZW0sIHRoaXMuX2RhdGFWaWV3LCB0aGlzLnV1aWRNYXBwaW5nKSk7XG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgcmV0dXJuIGNvbnZlcmVkRGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvYWRzIHZpcnR1YWwgc2Nyb2xsIGl0ZW1zIGZyb20gYXBpXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBvbkxvYWRJdGVtcyhldmVudDogSVBlcExpc3RMb2FkSXRlbXNFdmVudCkge1xuICAgICAgICBjb25zdCBsaXN0ID0gYXdhaXQgdGhpcy51cGRhdGVEYXRhTGlzdChldmVudC5mcm9tSW5kZXgsIGV2ZW50LnRvSW5kZXgpO1xuICAgICAgICBjb25zdCBjb252ZXJ0ZWRMaXN0ID0gdGhpcy5fZGF0YUNvbnZlcnRvclNlcnZpY2UuY29udmVydExpc3REYXRhKGxpc3QpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5fZ2VuZXJpY0xpc3RTZXJ2aWNlLmdldFNlbGVjdGVkSXRlbXMoY29udmVydGVkTGlzdCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGVwTGlzdC5zZXRTZWxlY3RlZElkcyhzZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBlcExpc3QudXBkYXRlSXRlbXMoY29udmVydGVkTGlzdCwgZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGxvYWRzIHBhZ2luZyBidWxrIGZyb20gYXBpXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBvbkxvYWRQYWdlKGV2ZW50OiBJUGVwTGlzdExvYWRQYWdlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgZnJvbUluZGV4ID0gZXZlbnQucGFnZUluZGV4ICogZXZlbnQucGFnZVNpemU7XG4gICAgICAgIGNvbnN0IHRvSW5kZXggPSBNYXRoLm1pbihmcm9tSW5kZXggKyBldmVudC5wYWdlU2l6ZSAtIDEsIHRoaXMudG90YWxSb3dDb3VudCAtIDEpO1xuICAgICAgICBjb25zdCBsaXN0ID0gYXdhaXQgdGhpcy51cGRhdGVEYXRhTGlzdChmcm9tSW5kZXgsIHRvSW5kZXgsIGV2ZW50LnBhZ2VJbmRleCk7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZExpc3QgPSB0aGlzLl9kYXRhQ29udmVydG9yU2VydmljZS5jb252ZXJ0TGlzdERhdGEobGlzdCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLl9nZW5lcmljTGlzdFNlcnZpY2UuZ2V0U2VsZWN0ZWRJdGVtcyhjb252ZXJ0ZWRMaXN0KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5wZXBMaXN0LnNldFNlbGVjdGVkSWRzKHNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGVwTGlzdC51cGRhdGVQYWdlKGNvbnZlcnRlZExpc3QsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBnZXRJdGVtQnlJZChpZDogc3RyaW5nKTogT2JqZWN0c0RhdGFSb3cgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucGVwTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BlcExpc3QuZ2V0SXRlbURhdGFCeUlEKGlkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRJdGVtcygpOiBQZXBTZWxlY3Rpb25EYXRhIHwgbnVsbCB7XG4gICAgICAgIGlmICh0aGlzLnBlcExpc3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wZXBMaXN0LmdldFNlbGVjdGVkSXRlbXNEYXRhKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFBhZ2VJbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVwTGlzdC5wYWdlSW5kZXg7XG4gICAgfVxuXG4gICAgb25BY3Rpb25JdGVtQ2xpY2tlZChhY3Rpb246IElQZXBNZW51SXRlbUNsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRNZW51T2JqZWN0cygpO1xuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUhhbmRsZXJzW2FjdGlvbi5zb3VyY2Uua2V5XShyZXN1bHQuZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlYXJjaENoYW5nZWQoZXZlbnQ6IElQZXBTZWFyY2hDbGlja0V2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gZXZlbnQudmFsdWU7XG4gICAgICAgIHRoaXMuaW5pdExpc3QoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGVkSXRlbXNDaGFuZ2VkKHNlbGVjdGVkUm93c0NvdW50OiBudW1iZXIpIHtcbiAgICAgICAgLy9sb2FkaW5nIG1lbnUgaXRlbXMgYWZ0ZXIgcGVwLWxpc3Qgc2VsZWN0ZWQgaXRlbXMgYXJlIHVwZGF0ZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRNZW51SXRlbXMoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgb25DdXN0b21pemVGaWVsZENsaWNrKGZpZWxkQ2xpY2tFdmVudDogSVBlcEZvcm1GaWVsZENsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5maWVsZENsaWNrLmVtaXQoZmllbGRDbGlja0V2ZW50KTtcbiAgICB9XG5cbiAgICBvbkJyZWFkQ3J1bWJJdGVtQ2xpY2soZXZlbnQ6IElQZXBCcmVhZENydW1iSXRlbUNsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5icmVhZENydW1iSXRlbUNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2VkKGV2ZW50OiBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudCkge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uU29ydGluZ0NoYW5nZShldmVudDogSVBlcExpc3RTb3J0aW5nQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fc29ydGluZyA9IGV2ZW50O1xuICAgICAgICB0aGlzLmluaXRMaXN0KCk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXJzQ2hhbmdlKGZpbHRlcnM6IElQZXBTbWFydEZpbHRlckRhdGFbXSkge1xuICAgICAgICB0aGlzLl9hcHBsaWVkRmlsdGVycyA9IGZpbHRlcnM7XG4gICAgICAgIHRoaXMuaW5pdExpc3QoKTtcbiAgICB9XG5cbiAgICBvbkxpc3RMb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpc3RMb2FkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3Jlc2l6ZSQpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fbG9hZGVyJCkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGVyJC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiaW5saW5lXCIgY2xhc3M9XCJpbmxpbmUtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnYWRkLXBhZGRpbmcnOiBhZGRQYWRkaW5nLCAnd2l0aC1zbWFydC1maWx0ZXJzJzogc2hvd1NtYXJ0RmlsdGVyIH1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFyZWFcIiA+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93VG9wQmFyXCIgY2xhc3M9XCJpbmxpbmUtdG9wLWJhci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b3BCYXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1kZXNjcmlwdGlvblwiPnt7ZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJyZWFkQ3J1bWJzSXRlbXMubGVuZ3RoXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnJlYWRDcnVtYnNUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NtYXJ0RmlsdGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzbWFydEZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvbkxvYWRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48cGVwLXBhZ2UtbGF5b3V0ICpuZ0lmPVwiIWlubGluZVwiIGNsYXNzPVwibm9uZS1pbmxpbmVcIiBbYWRkUGFkZGluZ109XCJhZGRQYWRkaW5nXCIgW3Nob3dTaGFkb3ddPVwic2hvd1NtYXJ0RmlsdGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dTbWFydEZpbHRlclwiIHBlcC1zaWRlLWFyZWE+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzbWFydEZpbHRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dUb3BCYXJcIiBwZXAtdG9wLWFyZWE+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b3BCYXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXNjcmlwdGlvblwiIHBlcC10b3AtYXJlYT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZGVzY3JpcHRpb25cIj57e2Rlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNJdGVtcy5sZW5ndGhcIiBwZXAtdG9wLWFyZWE+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJicmVhZENydW1ic1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cIiFvbkxvYWRcIiBwZXAtbWFpbi1hcmVhIGNsYXNzPVwibWFpbi1hcmVhLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L3BlcC1wYWdlLWxheW91dD5cblxuPG5nLXRlbXBsYXRlICN0b3BCYXJUZW1wbGF0ZT5cbiAgICA8cGVwLXRvcC1iYXIgW3RpdGxlXT1cInRpdGxlXCIgW2lubGluZV09XCJpbmxpbmVcIj5cbiAgICAgICAgPGRpdiBoZWFkZXItc3RhcnQtY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LWJ1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBoZWFkZXItZW5kLWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHQtYnV0dG9uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIDxkaXYgZm9vdGVyLXN0YXJ0LWNvbnRlbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGVmdC1ib3R0b20tYXJlYV1cIj48L25nLWNvbnRlbnQ+ICAgICAgICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZvb3Rlci1lbmQtY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyaWdodC1ib3R0b20tYXJlYV1cIj48L25nLWNvbnRlbnQ+ICAgICBcbiAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICA8cGVwLWxpc3QtYWN0aW9ucyAqbmdJZj1cIm1lbnVBY3Rpb25zLmxlbmd0aCA+IDBcIiBbc2l6ZVR5cGVdPVwiaW5saW5lID8gJ3NtJyA6ICdtZCdcIiBbYWN0aW9uc109XCJtZW51QWN0aW9uc1wiXG4gICAgICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25JdGVtQ2xpY2tlZCgkZXZlbnQpXCI+PC9wZXAtbGlzdC1hY3Rpb25zPlxuICAgICAgICA8cGVwLWxpc3QtdG90YWwgW3NpemVUeXBlXT1cImlubGluZSA/ICdzbScgOiAnbWQnXCIgW3RvdGFsUm93c109XCJ0b3RhbFJvd0NvdW50XCI+XG4gICAgICAgIDwvcGVwLWxpc3QtdG90YWw+XG4gICAgICAgIDxwZXAtc2VhcmNoICNzZWFyY2ggKm5nSWY9XCJzaG93U2VhcmNoXCIgW3ZhbHVlXT1cInNlYXJjaFN0cmluZ1wiIFtzaXplVHlwZV09XCJpbmxpbmUgPyAnc20nIDogJ21kJ1wiXG4gICAgICAgICAgICAoc2VhcmNoKT1cIm9uU2VhcmNoQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgIDwvcGVwLXNlYXJjaD5cbiAgICA8L3BlcC10b3AtYmFyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzbWFydEZpbHRlclRlbXBsYXRlPiAgICBcbiAgICA8cGVwLXNpZGUtYmFyICNzaWRlTmF2IFtuZ0NsYXNzXT1cInsnc21hcnQtZmlsdGVyLWFyZWEnOiBpbmxpbmV9XCI+IFxuICAgICAgICA8cGVwLXNtYXJ0LWZpbHRlcnMgI3NtYXJ0RmlsdGVyc0NvbXBvbmVudCBbdGl0bGVdPVwic21hcnRGaWx0ZXJzLnRpdGxlXCIgW2ZpZWxkc109XCJzbWFydEZpbHRlcnMuZmllbGRzXCJcbiAgICAgICAgICAgIFtmaWx0ZXJzXT1cInNtYXJ0RmlsdGVycy5kYXRhXCIgKGZpbHRlcnNDaGFuZ2UpPVwib25GaWx0ZXJzQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPC9wZXAtc21hcnQtZmlsdGVycz5cbiAgICA8L3BlcC1zaWRlLWJhcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYnJlYWRDcnVtYnNUZW1wbGF0ZT5cbiAgICA8cGVwLWJyZWFkLWNydW1icyBjbGFzcz1cImJyZWFkLWNydW1ic1wiIFtpdGVtc109XCJicmVhZENydW1ic0l0ZW1zXCIgW2FkZFNwYWNpbmddPVwidHJ1ZVwiIFtkaXNwbGF5VHlwZV09XCInaXRlbXMnXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkJyZWFkQ3J1bWJJdGVtQ2xpY2soJGV2ZW50KVwiPjwvcGVwLWJyZWFkLWNydW1icz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFRlbXBsYXRlPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RW1wdHlTdGF0ZVwiIGNsYXNzPVwibGlzdC1lbXB0eS1zdGF0ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1lbXB0eS10aXRsZVwiPnt7IGxpc3RJbnB1dHMuZW1wdHlTdGF0ZS50aXRsZSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1lbXB0eS1kZXNjclwiPnt7IGxpc3RJbnB1dHMuZW1wdHlTdGF0ZS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICA8cGVwLWljb24gbmFtZT1cImxlYWZfc2tpbnlcIiBjbGFzcz1cImxlYWYtc2tpbnlcIj48L3BlcC1pY29uPlxuICAgICAgICA8cGVwLWljb24gbmFtZT1cImxlYWZfcm91bmRcIiBjbGFzcz1cImxlYWYtcm91bmRcIj48L3BlcC1pY29uPlxuICAgICAgICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cImxlYWYtc2tpbnlcIj5cbiAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwibGVhZl9za2lueVwiPjwvcGVwLWljb24+XG4gICAgICAgIDwvbWF0LWljb24+IC0tPlxuICAgICAgICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cImxlYWYtcm91bmRcIj5cbiAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwibGVhZl9yb3VuZFwiPjwvcGVwLWljb24+XG4gICAgICAgIDwvbWF0LWljb24+IC0tPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhc2hvd0VtcHR5U3RhdGVcIiBjbGFzcz1cImxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgI3BlcExpc3RDb250YWluZXI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
517
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2dlbmVyaWMtbGlzdC9nZW5lcmljLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWNvbXBvc2l0ZS1saWIvZ2VuZXJpYy1saXN0L2dlbmVyaWMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUlILE9BQU8sRUFDUCxTQUFTLEVBSVosTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFFSCxnQkFBZ0IsRUFJaEIsaUJBQWlCLEVBS3BCLE1BQU0sOEJBQThCLENBQUM7QUF5QnRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWMvRCxNQUFNLE9BQU8sb0JBQW9CO0lBNEo3QixZQUNZLHFCQUE4QyxFQUM5QyxjQUFnQyxFQUNoQyxjQUFnQyxFQUNoQyxVQUE0QixFQUM1QixtQkFBMEMsRUFDMUMsZUFBa0M7UUFMbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF5QjtRQUM5QyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFDMUMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBeEp0QyxnQkFB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QVc7c0JBRGQsS0FBSztnQkFRTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFJUCxnQkFBZ0I7c0JBRGYsTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gICAgUGVwRGF0YUNvbnZlcnRvclNlcnZpY2UsXG4gICAgUGVwTGF5b3V0U2VydmljZSxcbiAgICBPYmplY3RzRGF0YVJvdyxcbiAgICBQZXBHdWlkLFxuICAgIFVJQ29udHJvbCxcbiAgICBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgIFBlcFJvd0RhdGEsXG4gICAgUGVwU2Vzc2lvblNlcnZpY2Vcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2Zvcm0nO1xuaW1wb3J0IHtcbiAgICBQZXBMaXN0Q29tcG9uZW50LFxuICAgIFBlcFNlbGVjdGlvbkRhdGEsXG4gICAgSVBlcExpc3RMb2FkUGFnZUV2ZW50LFxuICAgIFBlcExpc3RTZWxlY3Rpb25UeXBlLFxuICAgIElQZXBMaXN0U29ydGluZ0NoYW5nZUV2ZW50LFxuICAgIERFRkFVTFRfUEFHRV9TSVpFLFxuICAgIElQZXBMaXN0TG9hZEl0ZW1zRXZlbnQsXG4gICAgUGVwTGlzdFRhYmxlVmlld1R5cGUsXG4gICAgSVBlcExpc3RTb3J0aW5nRGF0YSxcbiAgICBJUGVwTGlzdFN0YXJ0SW5kZXhDaGFuZ2VFdmVudFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9saXN0JztcbmltcG9ydCB7XG4gICAgUGVwTWVudUl0ZW0sXG4gICAgSVBlcE1lbnVJdGVtQ2xpY2tFdmVudCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvbWVudSc7XG5pbXBvcnQgeyBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2Zvcm0nO1xuaW1wb3J0IHtcbiAgICBQZXBCcmVhZENydW1iSXRlbSxcbiAgICBJUGVwQnJlYWRDcnVtYkl0ZW1DbGlja0V2ZW50XG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2JyZWFkLWNydW1icyc7XG5pbXBvcnQgeyBJUGVwU2VhcmNoQ2xpY2tFdmVudCwgUGVwU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2VhcmNoJztcblxuaW1wb3J0IHtcbiAgICBEYXRhVmlldyxcbiAgICBHcmlkRGF0YVZpZXdcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL3BhcGktc2RrL2Rpc3QvZW50aXRpZXMvZGF0YS12aWV3JztcbmltcG9ydCB7XG4gICAgSVBlcEdlbmVyaWNMaXN0SW5pdERhdGEsXG4gICAgSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSxcbiAgICBJUGVwR2VuZXJpY0xpc3RQYWdlcixcbiAgICBJUGVwR2VuZXJpY0xpc3RBY3Rpb25zLFxuICAgIElQZXBHZW5lcmljTGlzdFNtYXJ0RmlsdGVyLFxuICAgIElQZXBTbWFydEZpbHRlcnMsXG4gICAgSVBlcEdlbmVyaWNMaXN0RW1wdHlTdGF0ZVxufSBmcm9tICcuL2dlbmVyaWMtbGlzdC5tb2RlbCc7XG5pbXBvcnQgeyBQZXBHZW5lcmljTGlzdFNlcnZpY2UgfSBmcm9tICcuL2dlbmVyaWMtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFWaWV3Q29udmVydGVyIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL2RhdGEtdmlld3MnO1xuaW1wb3J0IHtcbiAgICBJUGVwU21hcnRGaWx0ZXJEYXRhLFxuICAgIFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkLFxuICAgIFBlcFNtYXJ0RmlsdGVyc0NvbXBvbmVudFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1nZW5lcmljLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2dlbmVyaWMtbGlzdC5jb21wb25lbnQuc2NzcycsICcuL2dlbmVyaWMtbGlzdC5jb21wb25lbnQudGhlbWUuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1BlcEdlbmVyaWNMaXN0U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ3NlYXJjaCcpIHNlYXJjaDogUGVwU2VhcmNoQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuICAgIEBWaWV3Q2hpbGQoJ3NtYXJ0RmlsdGVyc0NvbXBvbmVudCcpIHNtYXJ0RmlsdGVyc0NvbXBvbmVudDogUGVwU21hcnRGaWx0ZXJzQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgcHJpdmF0ZSBfcGVwTGlzdENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZDtcbiAgICBAVmlld0NoaWxkKCdwZXBMaXN0Q29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gICAgc2V0IHBlcExpc3RDb250YWluZXIodmFsOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHRoaXMuX3BlcExpc3RDb250YWluZXIgPSB2YWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogSVBlcEdlbmVyaWNMaXN0RGF0YVNvdXJjZSA9IHtcbiAgICAgICAgaW5pdDogYXN5bmMgKHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGFWaWV3OiB7XG4gICAgICAgICAgICAgICAgICAgIFR5cGU6ICdHcmlkJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdG90YWxDb3VudDogLTEsXG4gICAgICAgICAgICAgICAgaXRlbXM6IFtdXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQElucHV0KClcbiAgICBzZXQgZGF0YVNvdXJjZSh2YWw6IElQZXBHZW5lcmljTGlzdERhdGFTb3VyY2UpIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZSA9IHZhbDtcbiAgICAgICAgdGhpcy5fc29ydGluZyA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5pbml0U2VhcmNoKCk7XG4gICAgICAgIHRoaXMuaW5pdFNtYXJ0U2VhcmNoKCk7XG4gICAgICAgIHRoaXMuaW5pdExpc3QoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGFjdGlvbnM6IElQZXBHZW5lcmljTGlzdEFjdGlvbnMgPSB7XG4gICAgICAgIGdldDogYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFtdXG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgQElucHV0KClcbiAgICB1dWlkTWFwcGluZyA9ICdrZXknO1xuXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBhZGRQYWRkaW5nID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHRpdGxlID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGRlc2NyaXB0aW9uID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGlubGluZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93U2VhcmNoID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIG5vRGF0YUZvdW5kTXNnID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGVtcHR5U3RhdGU6IElQZXBHZW5lcmljTGlzdEVtcHR5U3RhdGUgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvblR5cGU6IFBlcExpc3RTZWxlY3Rpb25UeXBlID0gJ211bHRpJztcblxuICAgIEBJbnB1dCgpXG4gICAgc3VwcG9ydFNvcnRpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc29ydGluZzogSVBlcExpc3RTb3J0aW5nRGF0YSB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpXG4gICAgY2FjaGVTaXplID0gLTE7XG5cbiAgICBASW5wdXQoKVxuICAgIGhpZGVTZWxlY3RBbGwgPSBmYWxzZTtcbiAgICBcbiAgICBASW5wdXQoKVxuICAgIHBhZ2VyOiBJUGVwR2VuZXJpY0xpc3RQYWdlciA9IHtcbiAgICAgICAgdHlwZTogJ3Njcm9sbCdcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHRhYmxlVmlld1R5cGU6IFBlcExpc3RUYWJsZVZpZXdUeXBlID0gJ3JlZ3VsYXInO1xuXG4gICAgQElucHV0KClcbiAgICB6ZWJyYVN0cmlwZXMgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNtYXJ0RmlsdGVyKHZhbDogSVBlcEdlbmVyaWNMaXN0U21hcnRGaWx0ZXIpIHtcbiAgICAgICAgdGhpcy5zbWFydEZpbHRlcnMgPSB0aGlzLl9nZW5lcmljTGlzdFNlcnZpY2UuY29udmVydFRvU21hcnRGaWx0ZXIodmFsKTtcbiAgICAgICAgdGhpcy5fYXBwbGllZEZpbHRlcnMgPSB0aGlzLnNtYXJ0RmlsdGVycy5kYXRhIHx8IFtdO1xuICAgICAgICB0aGlzLnNob3dTbWFydEZpbHRlciA9IHRoaXMuc21hcnRGaWx0ZXJzLmZpZWxkcy5sZW5ndGggPiAwOyBcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dUb3BCYXIgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYnJlYWRDcnVtYnNJdGVtczogUGVwQnJlYWRDcnVtYkl0ZW1bXSA9IG5ldyBBcnJheTxQZXBCcmVhZENydW1iSXRlbT4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0QWxsID0gZmFsc2VcblxuICAgIEBJbnB1dCgpXG4gICAgc2Nyb2xsUG9zaXRpb24gPSAwXG5cbiAgICBAT3V0cHV0KClcbiAgICBmaWVsZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGJyZWFkQ3J1bWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBCcmVhZENydW1iSXRlbUNsaWNrRXZlbnQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzdGFydEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwTGlzdFN0YXJ0SW5kZXhDaGFuZ2VFdmVudD4oKVxuXG4gICAgQE91dHB1dCgpXG4gICAgbGlzdExvYWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIHNldCBwZXBMaXN0KHZhbDogUGVwTGlzdENvbXBvbmVudCkge1xuICAgICAgICB0aGlzLl9wZXBMaXN0ID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBwZXBMaXN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVwTGlzdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNpemUkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgcHJpdmF0ZSBfbG9hZGVyJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgcHJpdmF0ZSBfZGF0YVZpZXc6IERhdGFWaWV3ID0ge1xuICAgICAgICBUeXBlOiAnR3JpZCdcbiAgICB9O1xuICAgIHByaXZhdGUgX3BlcExpc3Q6IGFueTtcbiAgICBvbkxvYWQgPSB0cnVlO1xuICAgIGxpc3RJbnB1dHM6IGFueTtcbiAgICB0b3RhbFJvd0NvdW50ID0gLTE7XG4gICAgc2VhcmNoU3RyaW5nID0gJyc7XG4gICAgc2hvd1NtYXJ0RmlsdGVyID0gZmFsc2U7XG4gICAgc2hvd0VtcHR5U3RhdGUgPSBmYWxzZTtcbiAgICBzbWFydEZpbHRlcnM6IElQZXBTbWFydEZpbHRlcnMgPSB7XG4gICAgICAgIGZpZWxkczogW10sXG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgICB0aXRsZTogJ0ZpbHRlcnMnXG4gICAgfTtcbiAgICBwcml2YXRlIF9hcHBsaWVkRmlsdGVyczogSVBlcFNtYXJ0RmlsdGVyRGF0YVtdID0gW107XG4gICAgcHJpdmF0ZSBfc29ydGluZzogSVBlcExpc3RTb3J0aW5nQ2hhbmdlRXZlbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBtZW51SGFuZGxlcnM6IHsgW2tleTogc3RyaW5nXTogKG9iajogYW55KSA9PiBQcm9taXNlPHZvaWQ+IH0gPSB7fTtcbiAgICBtZW51QWN0aW9uczogQXJyYXk8UGVwTWVudUl0ZW0+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGF0YUNvbnZlcnRvclNlcnZpY2U6IFBlcERhdGFDb252ZXJ0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9sYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9sb2FkZXJTZXJ2aWNlOiBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2dlbmVyaWNMaXN0U2VydmljZTogUGVwR2VuZXJpY0xpc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9zZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fcmVzaXplJCA9IHRoaXMuX2xheW91dFNlcnZpY2Uub25SZXNpemUkLnBpcGUoKS5zdWJzY3JpYmUoKHNpemUpID0+IHsgICAgICAgICAgICBcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9sb2FkZXIkID0gdGhpcy5fbG9hZGVyU2VydmljZS5vbkNoYW5nZWQkLnN1YnNjcmliZSgoc3RhdHVzOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAvL1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGluaXRMaXN0KCkge1xuICAgICAgICB0aGlzLm9uTG9hZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4geyAvL21ha2luZyBzdXJlIGFsbCBpbnB1dCBkYXRhIGlzIGF2YWlsYWJsZVxuICAgICAgICAgICAgaWYgKHRoaXMuX2RhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAvL21lcmdlIHNlbGVjdG9yIGlucHV0cyB3aXRoIGNhbGxiYWNrIGlucHV0c1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZFRhYmxlSW5wdXRzKCk7XG5cbiAgICAgICAgICAgICAgICBsZXQgZnJvbUluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgdG9JbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0SW5wdXRzLnBhZ2VyLnR5cGUgPT09ICdwYWdlcycpIHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbUluZGV4ID0gdGhpcy5saXN0SW5wdXRzLnBhZ2VyLnNpemUgKiB0aGlzLmxpc3RJbnB1dHMucGFnZXIuaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRvSW5kZXggPSBmcm9tSW5kZXggKyAodGhpcy5saXN0SW5wdXRzLnBhZ2VyLnNpemUgfHwgREVGQVVMVF9QQUdFX1NJWkUpIC0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b0luZGV4ID0gMTAwOy8vVE8gRE8gLSBnZXQgdmFsdWUgZnJvbSAtIHRoaXMuY3VzdG9tTGlzdC5nZXRUb3BJdGVtcygpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoZnJvbUluZGV4LCB0b0luZGV4KTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0SW5wdXRzPy5lbXB0eVN0YXRlPy5zaG93ID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RW1wdHlTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9uTG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vc2hvdyBlbXB0eSBzdGF0ZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNob3dFbXB0eVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5saXN0SW5wdXRzLmVtcHR5U3RhdGUudGl0bGUpIHsgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0dFTkVSSUNfTElTVC5FTVBUWV9TVEFURS5USVRMRScpLnN1YnNjcmliZSh0ZXh0ID0+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0SW5wdXRzLmVtcHR5U3RhdGUudGl0bGUgPSB0ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpc3RJbnB1dHMuZW1wdHlTdGF0ZS5kZXNjcmlwdGlvbikgeyAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnR0VORVJJQ19MSVNULkVNUFRZX1NUQVRFLkRFU0NSSVBUSU9OJykuc3Vic2NyaWJlKHRleHQgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RJbnB1dHMuZW1wdHlTdGF0ZS5kZXNjcmlwdGlvbiA9IHRleHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcGVwTGlzdENvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3BlcExpc3RDb250YWluZXIubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BlcExpc3RDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IFBlcExpc3RDb21wb25lbnQgfSA9IGF3YWl0IGltcG9ydCgnQHBlcHBlcmktYWRkb25zL25neC1saWIvbGlzdCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5fcGVwTGlzdENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoUGVwTGlzdENvbXBvbmVudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVwTGlzdCA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZpZXdUeXBlID0gdGhpcy5fZ2VuZXJpY0xpc3RTZXJ2aWNlLmdldExpc3RWaWV3VHlwZSh0aGlzLl9kYXRhVmlldy5UeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS50YWJsZVZpZXdUeXBlID0gdGhpcy5saXN0SW5wdXRzLnRhYmxlVmlld1R5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuemVicmFTdHJpcGVzID0gdGhpcy5saXN0SW5wdXRzLnplYnJhU3RyaXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubG9ja0l0ZW1Jbm5lckV2ZW50cyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc3VwcG9ydFNvcnRpbmcgPSB0aGlzLmxpc3RJbnB1dHMuc3VwcG9ydFNvcnRpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc29ydGluZyA9IHRoaXMubGlzdElucHV0cy5zb3J0aW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNhY2hlU2l6ZSA9IHRoaXMubGlzdElucHV0cy5jYWNoZVNpemU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3Rpb25UeXBlRm9yQWN0aW9ucyA9IHRoaXMubGlzdElucHV0cy5zZWxlY3Rpb25UeXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmhpZGVBbGxTZWxlY3Rpb25Jbk11bHRpID0gdGhpcy5saXN0SW5wdXRzLmhpZGVTZWxlY3RBbGw7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93Q2FyZFNlbGVjdGlvbiA9IHRoaXMubGlzdElucHV0cy5zZWxlY3Rpb25UeXBlICE9PSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFnZXJUeXBlID0gdGhpcy5saXN0SW5wdXRzLnBhZ2VyLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0SW5wdXRzLnBhZ2VyLnR5cGUgPT09ICdwYWdlcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFnZVNpemUgPSB0aGlzLmxpc3RJbnB1dHMucGFnZXI/LnNpemUgfHwgREVGQVVMVF9QQUdFX1NJWkU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhZ2VJbmRleCA9IHRoaXMubGlzdElucHV0cy5wYWdlcj8uaW5kZXggfHwgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuc2VsZWN0aW9uVHlwZSA9PSBcIm11bHRpXCIgJiYgdGhpcy5zZWxlY3RBbGwpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nlc3Npb25TZXJ2aWNlLnNldE9iamVjdCgnQWxsU2VsZWN0ZWQnLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm5vRGF0YUZvdW5kTXNnID0gdGhpcy5saXN0SW5wdXRzLm5vRGF0YUZvdW5kTXNnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnN0YXJ0SW5kZXhDaGFuZ2Uuc3Vic2NyaWJlKCRldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydEluZGV4Q2hhbmdlLmVtaXQoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZENsaWNrLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkN1c3RvbWl6ZUZpZWxkQ2xpY2soJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdGVkSXRlbXNDaGFuZ2Uuc3Vic2NyaWJlKCgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0ZWRJdGVtc0NoYW5nZWQoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxvYWRJdGVtcy5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25Mb2FkSXRlbXMoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxvYWRQYWdlLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkxvYWRQYWdlKCRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQoJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNvcnRpbmdDaGFuZ2Uuc3Vic2NyaWJlKCgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU29ydGluZ0NoYW5nZSgkZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubGlzdExvYWQuc3Vic2NyaWJlKCgkZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0ZWRJdGVtc0NoYW5nZWQodGhpcy5fcGVwTGlzdC5zZWxlY3RlZEl0ZW1zLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkxpc3RMb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb252ZXJ0ZWRMaXN0OiBPYmplY3RzRGF0YVJvd1tdID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkTGlzdCA9IHRoaXMuX2RhdGFDb252ZXJ0b3JTZXJ2aWNlLmNvbnZlcnRMaXN0RGF0YShkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlDb250cm9sID0gdGhpcy5nZXRVaUNvbnRyb2woRGF0YVZpZXdDb252ZXJ0ZXIudG9VSUNvbnRyb2xEYXRhKHRoaXMuX2RhdGFWaWV3KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKGNvbnZlcnRlZExpc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZEl0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNldFNlbGVjdGVkSWRzKHNlbGVjdGVkSXRlbXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuaW5pdExpc3REYXRhKHVpQ29udHJvbCwgdGhpcy50b3RhbFJvd0NvdW50LCBjb252ZXJ0ZWRMaXN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zY3JvbGxUb0luZGV4KHRoaXMuc2Nyb2xsUG9zaXRpb24pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZHMgaW5wdXRzIGluIGNhc2UgdGhleSBhcmUgcHJvdmlkZWQgYW5kIG1lcmdlIHdpdGggc2VsZWN0b3IgaW5wdXRzXG4gICAgICogQHJldHVybnMgbWVyZ2VkIHBlcC1saXN0IGlucHV0c1xuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZFRhYmxlSW5wdXRzKCkge1xuICAgICAgICB0aGlzLmxpc3RJbnB1dHMgPSB7XG4gICAgICAgICAgICBzdXBwb3J0U29ydGluZzogdGhpcy5zdXBwb3J0U29ydGluZyxcbiAgICAgICAgICAgIHNvcnRpbmc6IHRoaXMuc29ydGluZyxcbiAgICAgICAgICAgIGNhY2hlU2l6ZTogdGhpcy5jYWNoZVNpemUsXG4gICAgICAgICAgICBoaWRlU2VsZWN0QWxsOiB0aGlzLmhpZGVTZWxlY3RBbGwsXG4gICAgICAgICAgICBzZWxlY3Rpb25UeXBlOiB0aGlzLnNlbGVjdGlvblR5cGUsXG4gICAgICAgICAgICBwYWdlcjogdGhpcy5wYWdlcixcbiAgICAgICAgICAgIG5vRGF0YUZvdW5kTXNnOiB0aGlzLm5vRGF0YUZvdW5kTXNnLFxuICAgICAgICAgICAgdGFibGVWaWV3VHlwZTogdGhpcy50YWJsZVZpZXdUeXBlLFxuICAgICAgICAgICAgemVicmFTdHJpcGVzOiB0aGlzLnplYnJhU3RyaXBlcyxcbiAgICAgICAgICAgIGVtcHR5U3RhdGU6IHRoaXMuZW1wdHlTdGF0ZSxcbiAgICAgICAgICAgIHNlbGVjdEFsbDogdGhpcy5zZWxlY3RBbGxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGFTb3VyY2UuaW5wdXRzKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl9kYXRhU291cmNlLmlucHV0cykuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5oYXNQcm9wZXJ0eSh0aGlzLmxpc3RJbnB1dHMsIGl0ZW1bMF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdElucHV0c1tpdGVtWzBdXSA9IGl0ZW1bMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBkZXRlbWluZXMgd2hldGhlciBlbXB0eSBzdGF0ZSBpcyB0byBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldEVtcHR5U3RhdGUoKSB7XG4gICAgICAgIHRoaXMuc2hvd0VtcHR5U3RhdGUgPSB0aGlzLnRvdGFsUm93Q291bnQgPT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID09PSAnJyAmJlxuICAgICAgICAgICAgdGhpcy5fYXBwbGllZEZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VWlDb250cm9sKGRhdGE6IGFueSk6IFVJQ29udHJvbCB7XG4gICAgICAgIGNvbnN0IHVpQ29udHJvbCA9IG5ldyBVSUNvbnRyb2woKTtcbiAgICAgICAgdWlDb250cm9sLkNvbnRyb2xGaWVsZHMgPSBbXTtcblxuICAgICAgICBpZiAoZGF0YT8uQ29udHJvbEZpZWxkcykge1xuICAgICAgICAgICAgdWlDb250cm9sLkNvbnRyb2xGaWVsZHMgPSBkYXRhLkNvbnRyb2xGaWVsZHMubWFwKChmaWVsZDogYW55KSA9PiB0aGlzLl9nZW5lcmljTGlzdFNlcnZpY2UuY29udmVydFRvVWlDb250cm9sRmllbGQoZmllbGQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1aUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkTWVudUl0ZW1zKCk6IHZvaWQgeyAvL1RPRE9cbiAgICAgICAgaWYgKHRoaXMubGlzdElucHV0cy5zZWxlY3Rpb25UeXBlICE9PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TWVudUFjdGlvbnMoKS50aGVuKFxuICAgICAgICAgICAgICAgIHggPT4gdGhpcy5tZW51QWN0aW9ucyA9IHhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldE1lbnVBY3Rpb25zKCk6IFByb21pc2U8UGVwTWVudUl0ZW1bXT4ge1xuICAgICAgICBjb25zdCByZXM6IFBlcE1lbnVJdGVtW10gPSBbXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRNZW51T2JqZWN0cygpO1xuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCB0aGlzLmFjdGlvbnMuZ2V0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMubWVudUhhbmRsZXJzID0ge307XG4gICAgICAgICAgICBhY3Rpb25zPy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHV1aWQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVIYW5kbGVyc1t1dWlkXSA9IGl0ZW0uaGFuZGxlcjtcbiAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGtleTogdXVpZCxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogaXRlbS50aXRsZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1lbnVPYmplY3RzKCkge1xuICAgICAgICBjb25zdCBtZW51T2JqZWN0czogYW55ID0ge1xuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiBuZXcgUGVwU2VsZWN0aW9uRGF0YSgpXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMucGVwTGlzdCkge1xuICAgICAgICAgICAgbWVudU9iamVjdHMuc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgICBtZW51T2JqZWN0cy5kYXRhID0gdGhpcy5wZXBMaXN0LmdldFNlbGVjdGVkSXRlbXNEYXRhKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWVudU9iamVjdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U2VhcmNoKCkge1xuICAgICAgICB0aGlzLnNlYXJjaFN0cmluZyA9ICcnO1xuICAgICAgICB0aGlzLnNlYXJjaD8uaW5pdFNlYXJjaCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNtYXJ0U2VhcmNoKCkge1xuICAgICAgICB0aGlzLl9hcHBsaWVkRmlsdGVycyA9IFtdO1xuICAgICAgICB0aGlzLnNtYXJ0RmlsdGVyc0NvbXBvbmVudD8uY2xlYXJGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkRGF0YShmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogUHJvbWlzZTxQZXBSb3dEYXRhW10+IHtcbiAgICAgICAgdGhpcy5fbG9hZGVyU2VydmljZS5zaG93KCk7XG4gICAgICAgIGxldCBjb252ZXJlZERhdGE6IFBlcFJvd0RhdGFbXSA9IFtdO1xuICAgICAgICBjb25zdCBkYXRhOiBJUGVwR2VuZXJpY0xpc3RJbml0RGF0YSA9IGF3YWl0IHRoaXMuX2RhdGFTb3VyY2UuaW5pdCh7XG4gICAgICAgICAgICBzZWFyY2hTdHJpbmc6IHRoaXMuc2VhcmNoU3RyaW5nIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGZpbHRlcnM6IHRoaXMuX2FwcGxpZWRGaWx0ZXJzLmxlbmd0aCA/IHRoaXMuX2FwcGxpZWRGaWx0ZXJzIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc29ydGluZzogdGhpcy5fc29ydGluZyB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICBmcm9tSW5kZXg6IGZyb21JbmRleCxcbiAgICAgICAgICAgIHRvSW5kZXg6IHRvSW5kZXhcbiAgICAgICAgfSk7ICAgICAgICBcbiAgICAgICAgdGhpcy5fbG9hZGVyU2VydmljZS5oaWRlKCk7XG5cbiAgICAgICAgLy8gU2V0IHRoZSB0b3RhbCBjb3VudFxuICAgICAgICB0aGlzLnRvdGFsUm93Q291bnQgPSBkYXRhPy50b3RhbENvdW50IHx8IDA7XG4gICAgICAgIHRoaXMuc2V0RW1wdHlTdGF0ZSgpO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhVmlldyA9IGRhdGEuZGF0YVZpZXc7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLml0ZW1zPy5sZW5ndGggPiAwICYmICFkYXRhLmlzUGVwUm93RGF0YSkgeyAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBjb252ZXJlZERhdGEgPSBkYXRhLml0ZW1zLm1hcChpdGVtID0+IHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5jb252ZXJ0VG9QZXBSb3dEYXRhKGl0ZW0sIGRhdGEuZGF0YVZpZXcsIHRoaXMudXVpZE1hcHBpbmcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb252ZXJlZERhdGE7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGFzeW5jIHVwZGF0ZURhdGFMaXN0KGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIsIHBhZ2VJbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKTogUHJvbWlzZTxQZXBSb3dEYXRhW10+IHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGFTb3VyY2UudXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkZXJTZXJ2aWNlLnNob3coKTtcbiAgICAgICAgICAgIGxldCBjb252ZXJlZERhdGE6IFBlcFJvd0RhdGFbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3QgZGF0YUxpc3QgPSBhd2FpdCB0aGlzLl9kYXRhU291cmNlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgc2VhcmNoU3RyaW5nOiB0aGlzLnNlYXJjaFN0cmluZyB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogdGhpcy5fYXBwbGllZEZpbHRlcnMubGVuZ3RoID8gdGhpcy5fYXBwbGllZEZpbHRlcnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgc29ydGluZzogdGhpcy5fc29ydGluZyB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZnJvbUluZGV4OiBmcm9tSW5kZXgsXG4gICAgICAgICAgICAgICAgdG9JbmRleDogdG9JbmRleCxcbiAgICAgICAgICAgICAgICBwYWdlSW5kZXg6IHBhZ2VJbmRleFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcblxuICAgICAgICAgICAgaWYgKGRhdGFMaXN0Py5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29udmVyZWREYXRhID0gZGF0YUxpc3QubWFwKGl0ZW0gPT4gdGhpcy5fZ2VuZXJpY0xpc3RTZXJ2aWNlLmNvbnZlcnRUb1BlcFJvd0RhdGEoaXRlbSwgdGhpcy5fZGF0YVZpZXcsIHRoaXMudXVpZE1hcHBpbmcpKTtcbiAgICAgICAgICAgIH0gXG4gICAgICAgICAgICByZXR1cm4gY29udmVyZWREYXRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZHMgdmlydHVhbCBzY3JvbGwgaXRlbXMgZnJvbSBhcGlcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIG9uTG9hZEl0ZW1zKGV2ZW50OiBJUGVwTGlzdExvYWRJdGVtc0V2ZW50KSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBhd2FpdCB0aGlzLnVwZGF0ZURhdGFMaXN0KGV2ZW50LmZyb21JbmRleCwgZXZlbnQudG9JbmRleCk7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlZExpc3QgPSB0aGlzLl9kYXRhQ29udmVydG9yU2VydmljZS5jb252ZXJ0TGlzdERhdGEobGlzdCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLl9nZW5lcmljTGlzdFNlcnZpY2UuZ2V0U2VsZWN0ZWRJdGVtcyhjb252ZXJ0ZWRMaXN0KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5wZXBMaXN0LnNldFNlbGVjdGVkSWRzKHNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucGVwTGlzdC51cGRhdGVJdGVtcyhjb252ZXJ0ZWRMaXN0LCBldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9hZHMgcGFnaW5nIGJ1bGsgZnJvbSBhcGlcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIG9uTG9hZFBhZ2UoZXZlbnQ6IElQZXBMaXN0TG9hZFBhZ2VFdmVudCkge1xuICAgICAgICBjb25zdCBmcm9tSW5kZXggPSBldmVudC5wYWdlSW5kZXggKiBldmVudC5wYWdlU2l6ZTtcbiAgICAgICAgY29uc3QgdG9JbmRleCA9IE1hdGgubWluKGZyb21JbmRleCArIGV2ZW50LnBhZ2VTaXplIC0gMSwgdGhpcy50b3RhbFJvd0NvdW50IC0gMSk7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBhd2FpdCB0aGlzLnVwZGF0ZURhdGFMaXN0KGZyb21JbmRleCwgdG9JbmRleCwgZXZlbnQucGFnZUluZGV4KTtcbiAgICAgICAgY29uc3QgY29udmVydGVkTGlzdCA9IHRoaXMuX2RhdGFDb252ZXJ0b3JTZXJ2aWNlLmNvbnZlcnRMaXN0RGF0YShsaXN0KTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuX2dlbmVyaWNMaXN0U2VydmljZS5nZXRTZWxlY3RlZEl0ZW1zKGNvbnZlcnRlZExpc3QpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnBlcExpc3Quc2V0U2VsZWN0ZWRJZHMoc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wZXBMaXN0LnVwZGF0ZVBhZ2UoY29udmVydGVkTGlzdCwgZXZlbnQpO1xuICAgIH1cblxuICAgIGdldEl0ZW1CeUlkKGlkOiBzdHJpbmcpOiBPYmplY3RzRGF0YVJvdyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5wZXBMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGVwTGlzdC5nZXRJdGVtRGF0YUJ5SUQoaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTZWxlY3RlZEl0ZW1zKCk6IFBlcFNlbGVjdGlvbkRhdGEgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMucGVwTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BlcExpc3QuZ2V0U2VsZWN0ZWRJdGVtc0RhdGEoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGFnZUluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wZXBMaXN0LnBhZ2VJbmRleDtcbiAgICB9XG5cbiAgICBvbkFjdGlvbkl0ZW1DbGlja2VkKGFjdGlvbjogSVBlcE1lbnVJdGVtQ2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmdldE1lbnVPYmplY3RzKCk7XG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5tZW51SGFuZGxlcnNbYWN0aW9uLnNvdXJjZS5rZXldKHJlc3VsdC5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoQ2hhbmdlZChldmVudDogSVBlcFNlYXJjaENsaWNrRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPSBldmVudC52YWx1ZTtcbiAgICAgICAgdGhpcy5pbml0TGlzdCgpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0ZWRJdGVtc0NoYW5nZWQoc2VsZWN0ZWRSb3dzQ291bnQ6IG51bWJlcikge1xuICAgICAgICAvL2xvYWRpbmcgbWVudSBpdGVtcyBhZnRlciBwZXAtbGlzdCBzZWxlY3RlZCBpdGVtcyBhcmUgdXBkYXRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZE1lbnVJdGVtcygpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBvbkN1c3RvbWl6ZUZpZWxkQ2xpY2soZmllbGRDbGlja0V2ZW50OiBJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudCkge1xuICAgICAgICB0aGlzLmZpZWxkQ2xpY2suZW1pdChmaWVsZENsaWNrRXZlbnQpO1xuICAgIH1cblxuICAgIG9uQnJlYWRDcnVtYkl0ZW1DbGljayhldmVudDogSVBlcEJyZWFkQ3J1bWJJdGVtQ2xpY2tFdmVudCkge1xuICAgICAgICB0aGlzLmJyZWFkQ3J1bWJJdGVtQ2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZWQoZXZlbnQ6IElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50KSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25Tb3J0aW5nQ2hhbmdlKGV2ZW50OiBJUGVwTGlzdFNvcnRpbmdDaGFuZ2VFdmVudCkge1xuICAgICAgICB0aGlzLl9zb3J0aW5nID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuaW5pdExpc3QoKTtcbiAgICB9XG5cbiAgICBvbkZpbHRlcnNDaGFuZ2UoZmlsdGVyczogSVBlcFNtYXJ0RmlsdGVyRGF0YVtdKSB7XG4gICAgICAgIHRoaXMuX2FwcGxpZWRGaWx0ZXJzID0gZmlsdGVycztcbiAgICAgICAgdGhpcy5pbml0TGlzdCgpO1xuICAgIH1cblxuICAgIG9uTGlzdExvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdExvYWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5fcmVzaXplJCkge1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplJC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9sb2FkZXIkKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkZXIkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJpbmxpbmVcIiBjbGFzcz1cImlubGluZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdhZGQtcGFkZGluZyc6IGFkZFBhZGRpbmcsICd3aXRoLXNtYXJ0LWZpbHRlcnMnOiBzaG93U21hcnRGaWx0ZXIgfVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYXJlYVwiID5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dUb3BCYXJcIiBjbGFzcz1cImlubGluZS10b3AtYmFyLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWRlc2NyaXB0aW9uXCI+e3tkZXNjcmlwdGlvbn19PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnJlYWRDcnVtYnNJdGVtcy5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJicmVhZENydW1ic1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U21hcnRGaWx0ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNtYXJ0RmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9uTG9hZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGlzdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbjxwZXAtcGFnZS1sYXlvdXQgKm5nSWY9XCIhaW5saW5lXCIgY2xhc3M9XCJub25lLWlubGluZVwiIFthZGRQYWRkaW5nXT1cImFkZFBhZGRpbmdcIiBbc2hvd1NoYWRvd109XCJzaG93U21hcnRGaWx0ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NtYXJ0RmlsdGVyXCIgcGVwLXNpZGUtYXJlYT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNtYXJ0RmlsdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1RvcEJhclwiIHBlcC10b3AtYXJlYT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvcEJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlc2NyaXB0aW9uXCIgcGVwLXRvcC1hcmVhPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1kZXNjcmlwdGlvblwiPnt7ZGVzY3JpcHRpb259fTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJicmVhZENydW1ic0l0ZW1zLmxlbmd0aFwiIHBlcC10b3AtYXJlYT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyZWFkQ3J1bWJzVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2ICpuZ0lmPVwiIW9uTG9hZFwiIHBlcC1tYWluLWFyZWEgY2xhc3M9XCJtYWluLWFyZWEtY29udGFpbmVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvcGVwLXBhZ2UtbGF5b3V0PlxuXG48bmctdGVtcGxhdGUgI3RvcEJhclRlbXBsYXRlPlxuICAgIDxwZXAtdG9wLWJhciBbdGl0bGVdPVwidGl0bGVcIiBbaW5saW5lXT1cImlubGluZVwiPlxuICAgICAgICA8ZGl2IGhlYWRlci1zdGFydC1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnQtYnV0dG9uc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGhlYWRlci1lbmQtY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltyaWdodC1idXR0b25zXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gPGRpdiBmb290ZXItc3RhcnQtY29udGVudD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LWJvdHRvbS1hcmVhXVwiPjwvbmctY29udGVudD4gICAgICAgICAgICAgICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZm9vdGVyLWVuZC1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0LWJvdHRvbS1hcmVhXVwiPjwvbmctY29udGVudD4gICAgIFxuICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDxwZXAtbGlzdC1hY3Rpb25zICpuZ0lmPVwibWVudUFjdGlvbnMubGVuZ3RoID4gMFwiIFtzaXplVHlwZV09XCJpbmxpbmUgPyAnc20nIDogJ21kJ1wiIFthY3Rpb25zXT1cIm1lbnVBY3Rpb25zXCJcbiAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJvbkFjdGlvbkl0ZW1DbGlja2VkKCRldmVudClcIj48L3BlcC1saXN0LWFjdGlvbnM+XG4gICAgICAgIDxwZXAtbGlzdC10b3RhbCBbc2l6ZVR5cGVdPVwiaW5saW5lID8gJ3NtJyA6ICdtZCdcIiBbdG90YWxSb3dzXT1cInRvdGFsUm93Q291bnRcIj5cbiAgICAgICAgPC9wZXAtbGlzdC10b3RhbD5cbiAgICAgICAgPHBlcC1zZWFyY2ggI3NlYXJjaCAqbmdJZj1cInNob3dTZWFyY2hcIiBbdmFsdWVdPVwic2VhcmNoU3RyaW5nXCIgW3NpemVUeXBlXT1cImlubGluZSA/ICdzbScgOiAnbWQnXCJcbiAgICAgICAgICAgIChzZWFyY2gpPVwib25TZWFyY2hDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9wZXAtc2VhcmNoPlxuICAgIDwvcGVwLXRvcC1iYXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NtYXJ0RmlsdGVyVGVtcGxhdGU+ICAgIFxuICAgIDxwZXAtc2lkZS1iYXIgI3NpZGVOYXYgW25nQ2xhc3NdPVwieydzbWFydC1maWx0ZXItYXJlYSc6IGlubGluZX1cIj4gXG4gICAgICAgIDxwZXAtc21hcnQtZmlsdGVycyAjc21hcnRGaWx0ZXJzQ29tcG9uZW50IFt0aXRsZV09XCJzbWFydEZpbHRlcnMudGl0bGVcIiBbZmllbGRzXT1cInNtYXJ0RmlsdGVycy5maWVsZHNcIlxuICAgICAgICAgICAgW2ZpbHRlcnNdPVwic21hcnRGaWx0ZXJzLmRhdGFcIiAoZmlsdGVyc0NoYW5nZSk9XCJvbkZpbHRlcnNDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8L3BlcC1zbWFydC1maWx0ZXJzPlxuICAgIDwvcGVwLXNpZGUtYmFyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNicmVhZENydW1ic1RlbXBsYXRlPlxuICAgIDxwZXAtYnJlYWQtY3J1bWJzIGNsYXNzPVwiYnJlYWQtY3J1bWJzXCIgW2l0ZW1zXT1cImJyZWFkQ3J1bWJzSXRlbXNcIiBbYWRkU3BhY2luZ109XCJ0cnVlXCIgW2Rpc3BsYXlUeXBlXT1cIidpdGVtcydcIlxuICAgICAgICAoaXRlbUNsaWNrKT1cIm9uQnJlYWRDcnVtYkl0ZW1DbGljaygkZXZlbnQpXCI+PC9wZXAtYnJlYWQtY3J1bWJzPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0VGVtcGxhdGU+XG4gICAgPGRpdiAqbmdJZj1cInNob3dFbXB0eVN0YXRlXCIgY2xhc3M9XCJsaXN0LWVtcHR5LXN0YXRlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWVtcHR5LXRpdGxlXCI+e3sgbGlzdElucHV0cy5lbXB0eVN0YXRlLnRpdGxlIH19PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWVtcHR5LWRlc2NyXCI+e3sgbGlzdElucHV0cy5lbXB0eVN0YXRlLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgIDxwZXAtaWNvbiBuYW1lPVwibGVhZl9za2lueVwiIGNsYXNzPVwibGVhZi1za2lueVwiPjwvcGVwLWljb24+XG4gICAgICAgIDxwZXAtaWNvbiBuYW1lPVwibGVhZl9yb3VuZFwiIGNsYXNzPVwibGVhZi1yb3VuZFwiPjwvcGVwLWljb24+XG4gICAgICAgIDwhLS0gPG1hdC1pY29uIGNsYXNzPVwibGVhZi1za2lueVwiPlxuICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJsZWFmX3NraW55XCI+PC9wZXAtaWNvbj5cbiAgICAgICAgPC9tYXQtaWNvbj4gLS0+XG4gICAgICAgIDwhLS0gPG1hdC1pY29uIGNsYXNzPVwibGVhZi1yb3VuZFwiPlxuICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJsZWFmX3JvdW5kXCI+PC9wZXAtaWNvbj5cbiAgICAgICAgPC9tYXQtaWNvbj4gLS0+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFzaG93RW1wdHlTdGF0ZVwiIGNsYXNzPVwibGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAjcGVwTGlzdENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -106,7 +106,7 @@ export class RichTextComponent {
106
106
  }
107
107
  }
108
108
  RichTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: RichTextComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.PepAddonBlockLoaderService }, { token: i2.RichTextService }], target: i0.ɵɵFactoryTarget.Component });
109
- RichTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: RichTextComponent, selector: "pep-rich-text", inputs: { key: "key", value: "value", label: "label", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", xAlignment: "xAlignment", sanitize: "sanitize", rowSpan: "rowSpan", visible: "visible", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderEnlargeButton: "renderEnlargeButton", layoutType: "layoutType", inlineMode: "inlineMode", useAssetsForImages: "useAssetsForImages", toolbarOptions: "toolbarOptions" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<pep-rich-html-textarea [key]=\"key\" \n [value]=\"value\"\n [label]=\"label\" \n [mandatory]=\"mandatory\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maxFieldCharacters]=\"maxFieldCharacters\" \n [xAlignment]=\"xAlignment\" \n [toolbarOptions]=\"toolbarOptions\"\n [rowSpan]=\"rowSpan\" \n [visible]=\"visible\"\n \n [isActive]=\"isActive\"\n [showTitle]=\"showTitle\"\n [renderTitle]=\"renderTitle\"\n [renderEnlargeButton]=\"renderEnlargeButton\"\n [layoutType]=\"layoutType\"\n [inlineMode]=\"inlineMode\"\n (editorCreated)=\"onEditorOpen($event)\"\n (valueChange)=\"valueChanged($event)\">\n</pep-rich-html-textarea>\n<pep-button [sizeType]=\"'sm'\" [classNames]=\"'pep-spacing-element quill-editor-image-btn'\" \n [iconName]=\"'system_image'\" (buttonClick)=\"openAssetsPickerDialog()\">\n</pep-button>", styles: ["::ng-deep .quill-editor-image-btn{display:none;width:2.5rem!important}\n"], dependencies: [{ kind: "component", type: i3.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i4.PepRichHtmlTextareaComponent, selector: "pep-rich-html-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "xAlignment", "sanitize", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "renderEnlargeButton", "layoutType", "inlineMode", "toolbarOptions"], outputs: ["valueChange", "editorCreated"] }] });
109
+ RichTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: RichTextComponent, selector: "pep-rich-text", inputs: { key: "key", value: "value", label: "label", mandatory: "mandatory", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", xAlignment: "xAlignment", sanitize: "sanitize", rowSpan: "rowSpan", visible: "visible", isActive: "isActive", showTitle: "showTitle", renderTitle: "renderTitle", renderEnlargeButton: "renderEnlargeButton", layoutType: "layoutType", inlineMode: "inlineMode", useAssetsForImages: "useAssetsForImages", toolbarOptions: "toolbarOptions" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<pep-rich-html-textarea [key]=\"key\" \n [value]=\"value\"\n [label]=\"label\" \n [mandatory]=\"mandatory\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maxFieldCharacters]=\"maxFieldCharacters\" \n [xAlignment]=\"xAlignment\" \n [toolbarOptions]=\"toolbarOptions\"\n [rowSpan]=\"rowSpan\" \n [visible]=\"visible\"\n \n [isActive]=\"isActive\"\n [showTitle]=\"showTitle\"\n [renderTitle]=\"renderTitle\"\n [renderEnlargeButton]=\"renderEnlargeButton\"\n [layoutType]=\"layoutType\"\n [inlineMode]=\"inlineMode\"\n (editorCreated)=\"onEditorOpen($event)\"\n (valueChange)=\"valueChanged($event)\">\n</pep-rich-html-textarea>\n<pep-button [sizeType]=\"'sm'\" [classNames]=\"'pep-spacing-element quill-editor-image-btn'\" \n [iconName]=\"'system_image'\" (buttonClick)=\"openAssetsPickerDialog()\">\n</pep-button>", styles: ["::ng-deep .quill-editor-image-btn{display:none;width:2.5rem!important}\n"], dependencies: [{ kind: "component", type: i3.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i4.PepRichHtmlTextareaComponent, selector: "pep-rich-html-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "renderEnlargeButton", "layoutType", "inlineMode", "toolbarOptions"], outputs: ["valueChange"] }] });
110
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: RichTextComponent, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: 'pep-rich-text', template: "<pep-rich-html-textarea [key]=\"key\" \n [value]=\"value\"\n [label]=\"label\" \n [mandatory]=\"mandatory\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [maxFieldCharacters]=\"maxFieldCharacters\" \n [xAlignment]=\"xAlignment\" \n [toolbarOptions]=\"toolbarOptions\"\n [rowSpan]=\"rowSpan\" \n [visible]=\"visible\"\n \n [isActive]=\"isActive\"\n [showTitle]=\"showTitle\"\n [renderTitle]=\"renderTitle\"\n [renderEnlargeButton]=\"renderEnlargeButton\"\n [layoutType]=\"layoutType\"\n [inlineMode]=\"inlineMode\"\n (editorCreated)=\"onEditorOpen($event)\"\n (valueChange)=\"valueChanged($event)\">\n</pep-rich-html-textarea>\n<pep-button [sizeType]=\"'sm'\" [classNames]=\"'pep-spacing-element quill-editor-image-btn'\" \n [iconName]=\"'system_image'\" (buttonClick)=\"openAssetsPickerDialog()\">\n</pep-button>", styles: ["::ng-deep .quill-editor-image-btn{display:none;width:2.5rem!important}\n"] }]
@@ -3,7 +3,7 @@ import { EventEmitter, Component, Inject, Output, NgModule } from '@angular/core
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/material/snack-bar';
6
- import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
6
+ import { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';
7
7
  import * as i1$1 from '@pepperi-addons/ngx-lib/icon';
8
8
  import { pepIconArrowRightAlt, PepIconModule } from '@pepperi-addons/ngx-lib/icon';
9
9
  import * as i4 from '@pepperi-addons/ngx-lib/snack-bar';
@@ -60,7 +60,16 @@ PepFileStatusPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0"
60
60
  PepIconModule,
61
61
  PepDialogModule,
62
62
  PepSnackBarModule], exports: [FileStatusPanelComponent] });
63
- PepFileStatusPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFileStatusPanelModule, imports: [CommonModule,
63
+ PepFileStatusPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepFileStatusPanelModule, providers: [
64
+ {
65
+ provide: MatSnackBarRef,
66
+ useValue: {}
67
+ },
68
+ {
69
+ provide: MAT_SNACK_BAR_DATA,
70
+ useValue: {} // Add any data you wish to test if it is passed/used correctly
71
+ }
72
+ ], imports: [CommonModule,
64
73
  PepTopBarModule,
65
74
  PepTextboxModule,
66
75
  PepButtonModule,
@@ -82,7 +91,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
82
91
  PepDialogModule,
83
92
  PepSnackBarModule
84
93
  ],
85
- exports: [FileStatusPanelComponent]
94
+ exports: [FileStatusPanelComponent],
95
+ providers: [
96
+ {
97
+ provide: MatSnackBarRef,
98
+ useValue: {}
99
+ },
100
+ {
101
+ provide: MAT_SNACK_BAR_DATA,
102
+ useValue: {} // Add any data you wish to test if it is passed/used correctly
103
+ }
104
+ ]
86
105
  }]
87
106
  }], ctorParameters: function () { return [{ type: i1$1.PepIconRegistry }]; } });
88
107
 
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-composite-lib-file-status-panel.mjs","sources":["../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.component.ts","../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.component.html","../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.module.ts","../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.model.ts","../../../projects/ngx-composite-lib/file-status-panel/public-api.ts","../../../projects/ngx-composite-lib/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.ts"],"sourcesContent":["import { Component, OnInit, Injectable, Input, Output, EventEmitter, Optional, Inject } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PepSnackBarData } from '@pepperi-addons/ngx-lib/snack-bar';\nimport { FileStatus } from './file-status-panel.model';\n\n@Component({\n selector: 'pep-file-status-panel',\n templateUrl: './file-status-panel.component.html',\n styleUrls: ['./file-status-panel.component.scss']\n})\nexport class FileStatusPanelComponent implements OnInit {\n // @Input() title = '';\n // @Input() filesList: Array<FileStatus> = [];\n \n @Output()\n closeClick: EventEmitter<void> = new EventEmitter<void>();\n \n constructor(\n @Inject(MAT_SNACK_BAR_DATA) public data: PepSnackBarData,\n public snackBarRef: MatSnackBarRef<FileStatusPanelComponent>\n ) {\n //\n }\n\n ngOnInit() {\n //\n }\n\n onCloseClicked(event: any): void {\n this.closeClick.emit();\n }\n\n\n}","<pep-snack-bar class=\"upload-panel-contnainer\" [snackBarRef]=\"snackBarRef\" [title]=\"data.title\" (closeClick)=\"onCloseClicked($event)\" >\n <div pep-snack-bar-content class=\"panel-content\">\n <ul *ngIf=\"data.content.length\">\n <li *ngFor=\"let file of data.content\">\n <ng-container *ngIf=\"file?.status !== 'hidden'\">\n <span class=\"color-dimmed body-sm ellipsis\">{{file.name}}</span>\n <pep-icon class=\"pep-spacing-element\" name=\"arrow_right_alt\"></pep-icon>\n <span class=\"body-sm\" title=\"{{file.statusMessage}}\">{{file.status}}</span>\n </ng-container>\n </li>\n </ul>\n </div>\n</pep-snack-bar>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileStatusPanelComponent } from './file-status-panel.component';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepIconModule, PepIconRegistry, pepIconArrowRightAlt } from '@pepperi-addons/ngx-lib/icon';\nimport { PepSnackBarModule } from '@pepperi-addons/ngx-lib/snack-bar';\n\nconst pepIcons = [\n pepIconArrowRightAlt,\n]\n\n@NgModule({\n declarations: [\n FileStatusPanelComponent\n ],\n imports: [\n CommonModule,\n PepTopBarModule,\n PepTextboxModule,\n PepButtonModule,\n PepIconModule,\n PepDialogModule,\n PepSnackBarModule\n ],\n exports: [FileStatusPanelComponent]\n})\n\nexport class PepFileStatusPanelModule { \n constructor(\n private pepIconRegistry: PepIconRegistry,\n ) {\n this.pepIconRegistry.registerIcons(pepIcons);\n }\n}","export type FileStatusType = 'uploading' | 'downloading' | 'done' | 'failed' | 'hidden' | 'deleting';\r\n\r\nexport class FileStatus {\r\n key = 0;\r\n name = '';\r\n status: FileStatusType = 'uploading';\r\n statusMessage? = '';\r\n}","/*\n * Public API Surface of ngx-composite-lib/file-status-panel\n */\nexport * from './file-status-panel.module';\nexport * from './file-status-panel.component';\nexport * from './file-status-panel.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1"],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-composite-lib-file-status-panel.mjs","sources":["../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.component.ts","../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.component.html","../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.module.ts","../../../projects/ngx-composite-lib/file-status-panel/file-status-panel.model.ts","../../../projects/ngx-composite-lib/file-status-panel/public-api.ts","../../../projects/ngx-composite-lib/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.ts"],"sourcesContent":["import { Component, OnInit, Injectable, Input, Output, EventEmitter, Optional, Inject } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PepSnackBarData } from '@pepperi-addons/ngx-lib/snack-bar';\nimport { FileStatus } from './file-status-panel.model';\n\n@Component({\n selector: 'pep-file-status-panel',\n templateUrl: './file-status-panel.component.html',\n styleUrls: ['./file-status-panel.component.scss']\n})\nexport class FileStatusPanelComponent implements OnInit {\n // @Input() title = '';\n // @Input() filesList: Array<FileStatus> = [];\n \n @Output()\n closeClick: EventEmitter<void> = new EventEmitter<void>();\n \n constructor(\n @Inject(MAT_SNACK_BAR_DATA) public data: PepSnackBarData,\n public snackBarRef: MatSnackBarRef<FileStatusPanelComponent>\n ) {\n //\n }\n\n ngOnInit() {\n //\n }\n\n onCloseClicked(event: any): void {\n this.closeClick.emit();\n }\n\n\n}","<pep-snack-bar class=\"upload-panel-contnainer\" [snackBarRef]=\"snackBarRef\" [title]=\"data.title\" (closeClick)=\"onCloseClicked($event)\" >\n <div pep-snack-bar-content class=\"panel-content\">\n <ul *ngIf=\"data.content.length\">\n <li *ngFor=\"let file of data.content\">\n <ng-container *ngIf=\"file?.status !== 'hidden'\">\n <span class=\"color-dimmed body-sm ellipsis\">{{file.name}}</span>\n <pep-icon class=\"pep-spacing-element\" name=\"arrow_right_alt\"></pep-icon>\n <span class=\"body-sm\" title=\"{{file.statusMessage}}\">{{file.status}}</span>\n </ng-container>\n </li>\n </ul>\n </div>\n</pep-snack-bar>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FileStatusPanelComponent } from './file-status-panel.component';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepTopBarModule } from '@pepperi-addons/ngx-lib/top-bar';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepIconModule, PepIconRegistry, pepIconArrowRightAlt } from '@pepperi-addons/ngx-lib/icon';\nimport { PepSnackBarModule } from '@pepperi-addons/ngx-lib/snack-bar';\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\n\nconst pepIcons = [\n pepIconArrowRightAlt,\n]\n\n@NgModule({\n declarations: [\n FileStatusPanelComponent\n ],\n imports: [\n CommonModule,\n PepTopBarModule,\n PepTextboxModule,\n PepButtonModule,\n PepIconModule,\n PepDialogModule,\n PepSnackBarModule\n ],\n exports: [FileStatusPanelComponent],\n providers:[\n {\n provide: MatSnackBarRef,\n useValue: {}\n }, \n {\n provide: MAT_SNACK_BAR_DATA,\n useValue: {} // Add any data you wish to test if it is passed/used correctly\n }\n ]\n})\n\nexport class PepFileStatusPanelModule { \n constructor(\n private pepIconRegistry: PepIconRegistry,\n ) {\n this.pepIconRegistry.registerIcons(pepIcons);\n }\n}","export type FileStatusType = 'uploading' | 'downloading' | 'done' | 'failed' | 'hidden' | 'deleting';\r\n\r\nexport class FileStatus {\r\n key = 0;\r\n name = '';\r\n status: FileStatusType = 'uploading';\r\n statusMessage? = '';\r\n}","/*\n * Public API Surface of ngx-composite-lib/file-status-panel\n */\nexport * from './file-status-panel.module';\nexport * from './file-status-panel.component';\nexport * from './file-status-panel.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1"],"mappings":"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"}
@@ -486,6 +486,7 @@ class GenericListComponent {
486
486
  this._loaderService.hide();
487
487
  // Set the total count
488
488
  this.totalRowCount = (data === null || data === void 0 ? void 0 : data.totalCount) || 0;
489
+ this.setEmptyState();
489
490
  if (data) {
490
491
  this._dataView = data.dataView;
491
492
  if (((_a = data.items) === null || _a === void 0 ? void 0 : _a.length) > 0 && !data.isPepRowData) {