@wizishop/img-manager 15.2.37 → 15.2.39

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.
@@ -406,6 +406,7 @@ export class ImagesViewComponent {
406
406
  this.selectImgSelected();
407
407
  this.length = this.isTotalRetrieved ? this.length : data.totalRecords;
408
408
  this.tableFilters.totalItems = this.isTotalRetrieved ? this.tableFilters.totalItems : data.totalRecords;
409
+ console.log('this.tableFilters.totalItems 1', this.tableFilters.totalItems);
409
410
  this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;
410
411
  // Display Pexels if no result
411
412
  if (data.totalRecords === 0) {
@@ -432,6 +433,7 @@ export class ImagesViewComponent {
432
433
  this.isTotalRetrieved = true;
433
434
  this.length = total;
434
435
  this.tableFilters.totalItems = total;
436
+ console.log('this.tableFilters.totalItems 1', this.tableFilters.totalItems);
435
437
  },
436
438
  error: error => {
437
439
  //this.alertService.openAlert(this.errorGetTotalImg);
@@ -483,4 +485,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
483
485
  type: ViewChild,
484
486
  args: ['imgLibContainer']
485
487
  }] } });
486
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlcy12aWV3L2ltYWdlcy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZXMtdmlldy9pbWFnZXMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFtQyxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVTVELE1BQU0sT0FBTyxtQkFBbUI7SUF3STlC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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFTixtQkFBbUI7c0JBRGxCLE1BQU07Z0JBYXVCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltZ1BpY3R1cmVEVE8sIEltZ1BpY3R1cmVzRFRPLCBQYXJhbXNJbWdNYW5hZ2VyRFRPIH0gZnJvbSAnLi4vLi4vZHRvL2ltZy1tYW5hZ2VyLmR0byc7XG5pbXBvcnQgeyBJbWdNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEltZ0V2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltZy1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1NlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXItc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS9maWx0ZXJzLXRhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGljdHVyZU5hbWVVcGRhdGUgfSBmcm9tICcuLi8uLi9kdG8vcGljdHVyZS1uYW1lLXVwZGF0ZS5kdG8nO1xuaW1wb3J0IHsgZWFzZUluT3V0IH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9ucy9lYXNlSW5PdXQvZWFzZS1pbi1vdXQuYW5pbWF0aW9uJztcbmltcG9ydCB7IGluc2VydFJlbW92ZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvaW5zZXJ0UmVtb3ZlL2luc2VydC1yZW1vdmUuYW5pbWF0aW9uJztcbmltcG9ydCB7IHN0YXRlRGlzcGxheWVkLCB0YWJEaXNwbGF5ZWQgfSBmcm9tICcuLi8uLi9kdG8vZXhwb3J0LWR0b3MuYXBpJztcbmltcG9ydCB7IFJlbmFtZVBpY3R1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVuYW1lLXBpY3R1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbGVydC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1hZ2VzLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBhbmltYXRpb25zOiBbXG4gICAgZWFzZUluT3V0LFxuICAgIGluc2VydFJlbW92ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlc1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHN0YXRlRGlzcGxheWVkOiBzdGF0ZURpc3BsYXllZDtcbiAgQElucHV0KCkgdGFiRGlzcGxheWVkOiB0YWJEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIGZ1bGxTaXplOiBib29sZWFuO1xuICBASW5wdXQoKSBtYXhMZW5ndGhDYXJkU2hvdzogbnVtYmVyO1xuICBASW5wdXQoKSBuYlJvd1RvU2hvdzogbnVtYmVyO1xuICBASW5wdXQoKSBsaXN0RGlzcGxheWVkID0gZmFsc2U7IC8vIERpc3BsYXkgZm9ybWF0IGxpc3Qgb3IgbW9zYWljXG4gIEBJbnB1dCgpIG11bHRpcGxlSW1nTW9kZSA9IGZhbHNlO1xuICBAT3V0cHV0KClcbiAgc3dpdGNoRGlzcGxheVdpbmRvdzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8vIERhdGEgZmlsdGVyc1xuICB0YWJsZUZpbHRlcnM6IFRhYmxlRmlsdGVycyA9IHtcbiAgICBzb3J0OiB1bmRlZmluZWQsXG4gICAgb3JkZXI6IHVuZGVmaW5lZCxcbiAgICBzZWFyY2hWYWx1ZTogJycsXG4gICAgdG90YWxJdGVtczogMCxcbiAgICBpdGVtc1BlclBhZ2U6IDAsXG4gICAgY3VycmVudFBhZ2U6IDFcbiAgfTtcblxuICBAVmlld0NoaWxkKCdpbWdMaWJDb250YWluZXInKSBpbWdMaWJDb250YWluZXIgOiBFbGVtZW50UmVmO1xuICB3aWR0aExhcmdlQ2FyZDogbnVtYmVyID0gMjE5OyAvLyBEZWZhdWx0IHZhbHVlIG9mIGEgY2FyZCB3aWR0aCAxOTkgKyBtYXJnaW4gMjBcbiAgd2lkdGhTbWFsbENhcmQ6IG51bWJlciA9IDE2MDsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTQwICsgbWFyZ2luIDIwXG4gIG5iTWluSW1nUGVyTGluZTogbnVtYmVyO1xuICBuYk1heEltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJGYWtlSW1nOiBudW1iZXIgPSAwO1xuXG4gIGltZ0Z1bGxXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiA0MTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogNDk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDcxOSwgLy8gdGFibGV0XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC41LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMzMzM1xuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMDIzLCAvLyBkZXNrb3BcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEzOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxNTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMixcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjExMTFcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjYsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xXG4gICAgfVxuICBdO1xuXG4gIGltZ1dpZHRoQ29uZmlnOmFueSA9IFtcbiAgICB7XG4gICAgICBtYXg6IDEwMjQsXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMTk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMzMzMyxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTI5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEzOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE2NjZcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTRcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjI1LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTI1XG4gICAgfVxuICBdO1xuXG4gIGltZ1N1YnNjcmliZTogU3Vic2NyaXB0aW9uO1xuICBpbWdSZW1vdmVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nQWRkZWRFdmVudDogU3Vic2NyaXB0aW9uO1xuICBpbWdTZWxlY3Rpb25DaGFuZ2U6IFN1YnNjcmlwdGlvbjtcbiAgc2VhcmNoUXVlcnlDaGFuZ2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIGZpbHRlcnNDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwaWN0dXJlc0xpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICBzYXZlUGljdHVyZUxpc3Q6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICBpbWdTZWxlY3RlZExpc3Q6IEltZ1BpY3R1cmVEVE9bXTtcbiAgc2VhcmNoZWRWYWx1ZTogc3RyaW5nOyAvLyBWYWx1ZSBmcm9tIHRoZSBzZWFyY2ggYmFyIG9yIGltZyBhZGRlZCBieSBjYW52YVxuICBuYkltZ1RvRGVsU2VsZWN0ZWQ6IG51bWJlciA9IDA7XG4gIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHRvIGRpc2FibGUgYWN0aW9uIGR1cmluZyBzZXJ2ZXIgcmVxdWVzdFxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBpc1RvdGFsUmV0cmlldmVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgaW5pdENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XG4gIGZhaWxMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzcGxheVBleGVsc1Jlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVXNlIHdoZW4gbm8gaW1nIGZpbmQgYnkgbmFtZSwgZGlzcGxheSBpbWcgZnJvbSBQZXhlbHNcbiAgc2VhcmNoVGV4dDogc3RyaW5nO1xuICBjb25maXJtSW1nU3VwOmJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmlvdXNTZWFyY2hWYWx1ZTogc3RyaW5nO1xuXG4gIC8vIFBhZ2luYXRvciBQYXJhbXNcbiAgcGFnZUluZGV4OiBudW1iZXIgPTA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcbiAgcGFnZVNpemU6IG51bWJlciA9IDMwOyAvLyBEZWZhdWx0IHZhbHVlXG4gIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbMjUsIDUwLCAxMDAsIDI1MF07XG5cbiAgLy8gQXBpIEltZyBtYW5hZ2VyIFBhcmFtc1xuICBwYXJhbXM6UGFyYW1zSW1nTWFuYWdlckRUTztcblxuICBwcml2YXRlIGVycm9yR2V0QWxsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0QWxsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldFRvdGFsSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0VG90YWxJbWcnO1xuICBwcml2YXRlIGVycm9yR2V0SW1nID0gJ0ltZ01hbmFnZXIuSW1nTGliLmVycm9yR2V0Q2FudmFJbWcnO1xuICBwcml2YXRlIG1zZ05vSW1nRm91bmQgPSAnSW1nTWFuYWdlci5JbWdMaWIubm9JbWdGb3VuZCc7XG4gIHByaXZhdGUgZXJyb3JSZW1vdmVJbWcgPSAnSW1nTWFuYWdlci5JbWdMaXN0LmVycm9yUmVtb3ZlSW1nJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGltZ01hbmFnZXI6IEltZ01hbmFnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nRXZlbnRTZXJ2aWNlOiBJbWdFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbWdTZWxlY3Rpb25TZXJ2aWNlOiBJbWdTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyU2V0dGluZ3NTZXJ2aWNlOiBVc2VyU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuYW1lUGljdHVyZVNlcnZpY2U6IFJlbmFtZVBpY3R1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvKiBpZiAodGhpcy5tYXhMZW5ndGhDYXJkU2hvdykge1xuICAgICAgdGhpcy5yZWR1Y2VQaWN0dXJlTGlzdE1heExlbmd0aCgpO1xuICAgIH0gKi9cbiAgICB0aGlzLnNldEV2ZW50cygpO1xuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0ID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmdldEltZ1NlbGVjdGlvbigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0Rpc3BsYXkoKTtcbiAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgaWYgKCF0aGlzLnNhdmVQaWN0dXJlTGlzdCkge1xuICAgICAgdGhpcy5zYXZlUGljdHVyZUxpc3QgPSB0aGlzLnBpY3R1cmVzTGlzdDtcbiAgICB9XG4gIH1cblxuICBnZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHRydWUgOiBnbyB0byBsaXN0IGRpc3BsYXlcbiAgICogZmFsc2UgOiBnbyB0byBtb3NhaWMgZGlzcGxheVxuICAgKiBAcGFyYW0gYWN0aXZhdGVcbiAgICovXG4gIG9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKGFjdGl2YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5saXN0RGlzcGxheWVkID0gYWN0aXZhdGU7XG4gICAgdGhpcy51c2VyU2V0dGluZ3NTZXJ2aWNlLnNldFVzZXJEaXNwbGF5UHJlZmVyZW5jZShhY3RpdmF0ZSk7XG4gICAgdGhpcy5pbWdFdmVudFNlcnZpY2UuZW1pdGxpc3REaXNwbGF5ZWRDaGFuZ2UoYWN0aXZhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bCB0aGUgbnVtYmVyIG9mIGltZyBzZWxlY3RlZCBmb3IgbWFzc2UgZGVsZXRpb25cbiAgICovXG4gIG9uSW1nU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uU2hvd0ltZ1VwbG9hZGVkKCkge1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9IG51bGw7XG4gICAgdGhpcy5zZWFyY2hlZFZhbHVlID0gbnVsbDtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIG9uUmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZDogUGljdHVyZU5hbWVVcGRhdGUpIHtcbiAgICBjb25zb2xlLmxvZygnb25SZW5hbWVQaWN0dXJlIHBpY3R1cmVSZW5hbWVkJywgcGljdHVyZVJlbmFtZWQpO1xuICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2UucmVuYW1lUGljdHVyZShwaWN0dXJlUmVuYW1lZCk7XG4gIH1cblxuICByZW1vdmVMaXN0SW1nKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IGZhbHNlO1xuXG4gICAgLy8gR2V0IHRoZSBpZCBvZiB0aGUgaW1nIHRvIHJlbW92ZVxuICAgIC8vIEFuZCBhZGQgZGVsZXRlZCBwcm9wZXJ0eVxuICAgIGNvbnN0IGlkSW1nVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5waWN0dXJlc0xpc3QuZm9yRWFjaCggaW1nID0+IHtcbiAgICAgIGlmIChpbWcuZGVsU2VsZWN0ZWQpIHtcbiAgICAgICAgaW1nLmRlbGV0ZWQgPSB0cnVlO1xuICAgICAgICBpZEltZ1RvUmVtb3ZlLnB1c2goaW1nLmlkX2ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbWdNYW5hZ2VyLnJlbW92ZU11bHRpcGxlSW1nKGlkSW1nVG9SZW1vdmUpLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5yZW1vdmVJbWdTZWxlY3Rpb25CeUlkcyhpZEltZ1RvUmVtb3ZlKTtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvclJlbW92ZUltZyk7XG4gICAgICB9XG4gICAgKTtcblxuXG4gIH1cblxuICBzZWxlY3RJbWdDaG9zZW4oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwaWN0dXJlc0xpc3RTZWxlY3RlZDogSW1nUGljdHVyZURUT1tdID0gW107XG4gICAgdGhpcy5waWN0dXJlc0xpc3QubWFwKGltZyA9PiB7XG4gICAgICBpZihpbWcuZGVsU2VsZWN0ZWQpIHtcbiAgICAgICAgaW1nLmRlbFNlbGVjdGVkID1mYWxzZTtcbiAgICAgICAgaW1nLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpbWcuc2VsZWN0ZWQpIHtcbiAgICAgICAgcGljdHVyZXNMaXN0U2VsZWN0ZWQucHVzaChpbWcpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLnNldEltZ1NlbGVjdGlvbihwaWN0dXJlc0xpc3RTZWxlY3RlZCk7XG4gIH1cblxuICBkaXNwbGF5Q29uZmlybUltZ1N1cCgpe1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gdHJ1ZTtcbiAgfVxuXG4gIGNhbmNlbFN1cCgpIHtcbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0IHdoZW4gYSBpbWcgc2VsZWN0ZWQgaW4gb3JkZXIgdG8gZGVsZXRlXG4gICAqL1xuICBvblBpY3R1cmVzTGlzdENoYW5nZSgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICB9XG5cbiAgb25GaWx0ZXJzQ2hhbmdlKCkge1xuICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBkZWZhdWx0IG51bWJlciBvZiBpbWcgcGVyIHBhZ2UgdG8gZGlzcGxheSBhdCB0aGUgaW5pdGlhbGlzYXRpb25cbiAgICogVGhpcyBudW1iZXIgaXMgYmV0d2VlbiAzMCBhbmQgNTBcbiAgICovXG4gIHByaXZhdGUgc2V0TmJJbWdUb0Rpc3BsYXkoKSB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmltZ0xpYkNvbnRhaW5lci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgMzA7IC8vICsgMzBweCAtPiBsZWZ0ICsgcmlnaHQgbWFyZ2luXG4gICAgY29uc3Qgc2Nyb2xsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7XG5cbiAgICBjb25zdCBbbWF4SW1nV2lkdGhGYWN0b3IsIG1pbkltZ1dpZHRoRmFjdG9yXSA9IHRoaXMuZ2V0SW1nV2lkdGhGYWN0b3JzKCk7XG5cbiAgICBjb25zdCBtaW5JbWdXaWR0aCA9IE1hdGguZmxvb3IoY29udGFpbmVyV2lkdGggKiBtaW5JbWdXaWR0aEZhY3Rvcik7XG4gICAgY29uc3QgbWF4SW1nV2lkdGggPSBNYXRoLmNlaWwoKGNvbnRhaW5lcldpZHRoICsgc2Nyb2xsV2lkdGggKSAqIG1heEltZ1dpZHRoRmFjdG9yKTtcblxuICAgIHRoaXMubmJNYXhJbWdQZXJMaW5lID0gTWF0aC5mbG9vcihjb250YWluZXJXaWR0aCAvIG1pbkltZ1dpZHRoKTtcbiAgICB0aGlzLm5iTWluSW1nUGVyTGluZSA9IE1hdGguZmxvb3IoIChjb250YWluZXJXaWR0aCArIHNjcm9sbFdpZHRoICkgLyBtYXhJbWdXaWR0aCk7XG5cbiAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5nZXRUb3RhbEltZ1BlclBhZ2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW1nV2lkdGhGYWN0b3JzKCk6IG51bWJlcltdIHtcbiAgICBjb25zdCBzY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGxldCBtaW5XaWR0aDpudW1iZXIgPSAwO1xuICAgIGxldCBpbWdTaXplc0NvbmZpZzogbnVtYmVyW10gPSBbXTtcblxuICAgIGNvbnN0IGN1cnJlbnRJbWdXaWR0aENvbmZpZyA9IHRoaXMuZnVsbFNpemUgPyB0aGlzLmltZ0Z1bGxXaWR0aENvbmZpZyA6IHRoaXMuaW1nV2lkdGhDb25maWc7XG5cbiAgICBmb3IgKGNvbnN0IHdpZHRoQ29uZmlnIG9mIGN1cnJlbnRJbWdXaWR0aENvbmZpZykge1xuICAgICAgICBpZiAoIXdpZHRoQ29uZmlnLm1heCkge1xuICAgICAgICAgIGltZ1NpemVzQ29uZmlnID0gW3dpZHRoQ29uZmlnLmxhcmdlSW1nV2lkdGhGYWN0b3IsIHdpZHRoQ29uZmlnLnNtYWxsSW1nV2lkdGhGYWN0b3JdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5XaWR0aCA8IHNjcmVlbldpZHRoICYmIHNjcmVlbldpZHRoIDw9IHdpZHRoQ29uZmlnLm1heCkge1xuICAgICAgICAgIGltZ1NpemVzQ29uZmlnID0gW3dpZHRoQ29uZmlnLmxhcmdlSW1nV2lkdGhGYWN0b3IsIHdpZHRoQ29uZmlnLnNtYWxsSW1nV2lkdGhGYWN0b3JdO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIG1pbldpZHRoID0gd2lkdGhDb25maWcubWF4O1xuICAgIH1cbiAgICByZXR1cm4gaW1nU2l6ZXNDb25maWc7XG4gIH1cblxuICBwcml2YXRlIGdldFRvdGFsSW1nUGVyUGFnZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm5iUm93VG9TaG93KSB7XG4gICAgICBjb25zdCBuYkltZ1BlckxpbmUgPSB0aGlzLnN0YXRlRGlzcGxheWVkID09PSAnZnVsbCcgPyB0aGlzLm5iTWluSW1nUGVyTGluZSA6IHRoaXMubmJNYXhJbWdQZXJMaW5lO1xuICAgICAgcmV0dXJuIG5iSW1nUGVyTGluZSAqIHRoaXMubmJSb3dUb1Nob3c7XG4gICAgfVxuXG4gICAgbGV0IHRvdGFsID0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICB3aGlsZSAodG90YWwgPCAzMCB8fCB0b3RhbCAlIHRoaXMubmJNYXhJbWdQZXJMaW5lICE9PSAwIHx8ICB0b3RhbCAlIHRoaXMubmJNaW5JbWdQZXJMaW5lICE9PSAwKSB7XG4gICAgICB0b3RhbCArPSB0aGlzLm5iTWluSW1nUGVyTGluZTtcbiAgICB9XG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXJhbXMoKSB7XG4gICAgdGhpcy5wYXJhbXMgPSB7XG4gICAgICBsaW1pdDogdGhpcy5tYXhMZW5ndGhDYXJkU2hvdz8udG9TdHJpbmcoKSB8fCAodGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID8gdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlLnRvU3RyaW5nKCkgOiB0aGlzLnBhZ2VTaXplLnRvU3RyaW5nKCkpLFxuICAgICAgcGFnZTogdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2UudG9TdHJpbmcoKVxuICAgIH07XG4gICAgaWYgKHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLnBhcmFtcy5zZWFyY2ggPSB0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZS50b1N0cmluZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdFZhcmlhYmxlcyhsb2FkaW5nU3VjY2VzczogYm9vbGVhbikge1xuICAgIHRoaXMubmJJbWdUb0RlbFNlbGVjdGVkID0gMDtcbiAgICB0aGlzLmRpc2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZGVsTGlzdEltZ0xvYWRlciA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdENvbXBvbmVudCA9IGZhbHNlO1xuICAgIHRoaXMuZGlzcGxheVBleGVsc1Jlc3VsdHMgPSBmYWxzZTtcbiAgICB0aGlzLmZhaWxMb2FkZWQgPSAhbG9hZGluZ1N1Y2Nlc3M7XG4gICAgdGhpcy5uYkZha2VJbWcgPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJbWdTZWxlY3RlZCAoKSB7XG4gICAgaWYgKCF0aGlzLmltZ1NlbGVjdGVkTGlzdCB8fCAhdGhpcy5pbWdTZWxlY3RlZExpc3QubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaWRJbWdTbGVjdGVkTGlzdDogc3RyaW5nW10gPSBbXTtcblxuICAgIHRoaXMuaW1nU2VsZWN0ZWRMaXN0LmZvckVhY2goaW1nID0+XG4gICAgICBpZEltZ1NsZWN0ZWRMaXN0LnB1c2goaW1nLmlkX2ZpbGUpXG4gICAgKTtcblxuICAgIHRoaXMucGljdHVyZXNMaXN0LmZvckVhY2gocGljdHVyZSA9PiB7XG4gICAgICBpZiAoaWRJbWdTbGVjdGVkTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgIT09IC0xKSB7XG4gICAgICAgIHBpY3R1cmUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5UGV4ZWxzTGliICgpIHtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gdHJ1ZTtcbiAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5tc2dOb0ltZ0ZvdW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBpbWcgbGlzdCBpbiBvcmRlciB0byBmaWxsIHByb3Blcmx5IGFsbCB0aGUgbGluZSBvZiBpbWFnZXMgZGlzcGxheWVkIGluIG1vc2FpYy5cbiAgICogT3RoZXJ3aXNlLCB0aGUgc3BhY2UtYmV0d2VlbiBjc3Mgd2lsbCBkbyBhIGJhZCBkaXNwbGF5XG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZU5iSW1nRmFrZShuYkltZ0Rpc3BsYXllZDogbnVtYmVyKSB7XG4gICAgY29uc3QgbmJJbWdQZXJMaW5lID0gdGhpcy5zdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJyB8fCB0aGlzLnRhYkRpc3BsYXllZCA9PT0gJ2ltZy11cGxvYWQnID8gdGhpcy5uYk1heEltZ1BlckxpbmUgOiB0aGlzLm5iTWluSW1nUGVyTGluZTtcblxuICAgIGlmIChuYkltZ0Rpc3BsYXllZCAlIG5iSW1nUGVyTGluZSAhPT0gMCkge1xuICAgICAgdGhpcy5uYkZha2VJbWcgPSBuYkltZ1BlckxpbmUgLSBuYkltZ0Rpc3BsYXllZCAlIG5iSW1nUGVyTGluZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEltZyAoaWRfZmlsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pbWdNYW5hZ2VyLmdldFNob3BJbWcoaWRfZmlsZSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHBpY3R1cmUpID0+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaW1nQWxyZWFkeUV4aXN0KHBpY3R1cmUuaWRfZmlsZSkpIHtcbiAgICAgICAgICAvLyBjaGVjayB0aGUgaW1nIGlzIG5vdCBhbHJlYWR5IHByZXNlbnRcbiAgICAgICAgICB0aGlzLnBpY3R1cmVzTGlzdC51bnNoaWZ0KHBpY3R1cmUpO1xuICAgICAgICAgIHRoaXMubGVuZ3RoICs9IDE7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEltZyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGltZ0FscmVhZHlFeGlzdCAoaWRfZmlsZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBpbWcgb2YgdGhpcy5waWN0dXJlc0xpc3QpIHtcbiAgICAgIGlmIChpbWcuaWRfZmlsZSA9PT0gaWRfZmlsZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXROYkltZ1RvRGVsU2VsZWN0ZWQgKCkge1xuICAgIHRoaXMubmJJbWdUb0RlbFNlbGVjdGVkID0gdGhpcy5waWN0dXJlc0xpc3QuZmlsdGVyKGltZyA9PlxuICAgICAgaW1nLmRlbFNlbGVjdGVkKS5sZW5ndGg7XG5cbiAgICBpZiAoIXRoaXMubmJJbWdUb0RlbFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEV2ZW50cygpIHtcbiAgICAvLyBBZGQgYSB0aW1lciB0byByZXRyaWV2ZSBpbWcgd2hlbiB0aGUgc2VhcmNoIGJhciBvciB0aGUgcGFnaW5hdG9yIGFyZSB1c2VkXG4gICAgdGhpcy5zZWFyY2hRdWVyeUNoYW5nZWRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg0MDApKSAvLyB3YWl0IDAuNSBzZWMgYWZ0ZXIgdGhlIGxhc3QgZXZlbnQgYmVmb3JlIGVtaXR0aW5nIGxhc3QgZXZlbnRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoODAwKSkgLy8gd2FpdCAwLjggc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuX2dldEltZ0xpc3QoKTtcbiAgICB9KTtcblxuICAgIC8vIFJlbG9hZCBpbWcgd2hlbiBpbWcgaXMvYXJlIHJlbW92ZWRcbiAgICB0aGlzLmltZ1JlbW92ZWRFdmVudCA9IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmltZ1JlbW92ZWQkLnN1YnNjcmliZShpZF9maWxlID0+e1xuICAgICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgaW1nIGZyb20gQ2FudmFcbiAgICB0aGlzLmltZ0FkZGVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5nZXRJbWdBZGRlZEV2ZW50TGlzdG5lcigpLnN1YnNjcmliZShpZF9maWxlID0+e1xuICAgICAgaWYgKGlkX2ZpbGUgJiYgIXRoaXMuaW1nQWxyZWFkeUV4aXN0KGlkX2ZpbGUpKSB7XG4gICAgICAgIHRoaXMuZ2V0SW1nKGlkX2ZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5pbWdTZWxlY3Rpb25DaGFuZ2UgPSB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UuaW1nU2VsZWN0aW9uJC5zdWJzY3JpYmUoaW1nU2VsZWN0aW9uID0+e1xuICAgICAgaWYgKHRoaXMubGlzdERpc3BsYXllZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpZEZpbGVMaXN0ID0gW107XG4gICAgICBpbWdTZWxlY3Rpb24ubWFwKGltZyA9PiBpZEZpbGVMaXN0LnB1c2goaW1nLmlkX2ZpbGUpKTtcbiAgICAgIGZvciAoY29uc3QgcGljdHVyZSBvZiB0aGlzLnBpY3R1cmVzTGlzdCkge1xuICAgICAgICBpZiAoaWRGaWxlTGlzdC5pbmRleE9mKHBpY3R1cmUuaWRfZmlsZSkgPT09IC0xKSB7XG4gICAgICAgICAgcGljdHVyZS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbWdMaXN0KCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5zZXRQYXJhbXMoKTtcblxuICAgIHRoaXMucmVmcmVzaFRvdGFsSW1nTGlzdCgpO1xuXG4gICAgY29uc3QgZm9yY2VUb1VwZGF0ZSA9IHRoaXMuaXNMYXN0SW1nUmVtb3ZlZEluTGlzdCgpO1xuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nTGlzdCh0aGlzLnBhcmFtcywgZm9yY2VUb1VwZGF0ZSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5pbml0VmFyaWFibGVzKHRydWUpO1xuICAgICAgICBjb25zdCBuYkltZ0Rpc3BsYXllZCA9IGRhdGEuZGF0YS5sZW5ndGg7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlTmJJbWdGYWtlKG5iSW1nRGlzcGxheWVkKTtcbiAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMucmVuYW1lUGljdHVyZVNlcnZpY2Uuc2V0UGljdHVyZXNMaXN0KHRoaXMucGljdHVyZXNMaXN0KTtcbiAgICAgICAgdGhpcy5zZWxlY3RJbWdTZWxlY3RlZCgpO1xuXG4gICAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5pc1RvdGFsUmV0cmlldmVkID8gdGhpcy5sZW5ndGggOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IHRoaXMuaXNUb3RhbFJldHJpZXZlZCA/IHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgOiBkYXRhLnRvdGFsUmVjb3JkcztcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID0gIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgOiB0aGlzLnBhZ2VTaXplO1xuXG4gICAgICAgIC8vIERpc3BsYXkgUGV4ZWxzIGlmIG5vIHJlc3VsdFxuICAgICAgICBpZiAoZGF0YS50b3RhbFJlY29yZHMgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlQZXhlbHNMaWIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7IC8vIEluIHdpemktYWRtaW4sIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5XG5cbiAgICB9LFxuICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEFsbEltZyk7XG4gICAgICB0aGlzLmluaXRWYXJpYWJsZXMoZmFsc2UpO1xuICAgIH19KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFRvdGFsSW1nTGlzdCgpIHtcbiAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNUb3RhbFJldHJpZXZlZCAmJiBzZWFyY2hWYWx1ZSA9PT0gdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlKSB7XG4gICAgICAvLyBLZWVwIGN1cnJlbnQgdG90YWwgcmVzdWx0XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1RvdGFsUmV0cmlldmVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcFRvdGFsSW1nTGlzdCh0aGlzLnBhcmFtcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogdG90YWwgPT4ge1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICAgICAgdGhpcy5pc1RvdGFsUmV0cmlldmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSB0b3RhbDtcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IHRvdGFsO1xuICAgICAgfSxcblxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgLy90aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldFRvdGFsSW1nKTtcbiAgICAgICAgdGhpcy5pbml0VmFyaWFibGVzKGZhbHNlKTtcbiAgICB9fSk7XG4gIH1cblxuICBzd2l0Y2hEaXNwbGF5V2luZG93TW9zYWljKCkge1xuICAgIHRoaXMuc3dpdGNoRGlzcGxheVdpbmRvdy5lbWl0KHRydWUpO1xuICB9XG5cbiAgaXNMYXN0SW1nUmVtb3ZlZEluTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5waWN0dXJlc0xpc3Quc29tZShwaWN0dXJlID0+IHBpY3R1cmUuaWRfZmlsZSA9PT0gdGhpcy5pbWdFdmVudFNlcnZpY2UuaW1nUmVtb3ZlZCQuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlZC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nUmVtb3ZlZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdBZGRlZEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbWdTZWxlY3Rpb25DaGFuZ2UudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImltYWdlcy12aWV3XCIgW25nQ2xhc3NdPVwieydmdWxsU2l6ZSc6IGZ1bGxTaXplLCAnc21hbGwnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJ31cIiBbQGVhc2VJbk91dF09XCInaW4nXCI+XG4gIDwhLS0gU3ViaGVhZGVyIDogSW1nIG51bWJlciBhbmQgYWN0aW9ucyBidG4gKHN1cCBpbWcgbGlzdCwgc3dpdGNoIGZvcm1hIGRpc3BsYXkpIC0tPlxuICA8ZGl2XG4gICpuZ0lmPVwiKHN0YXRlRGlzcGxheWVkICE9PSAnc21hbGwnIHx8IHRhYkRpc3BsYXllZCA9PT0gJ2ltZy11cGxvYWQnKVwiXG4gIGNsYXNzPVwiaW1hZ2VzLXZpZXdfX2NvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsnaW1hZ2VzLXZpZXdfX2NvbnRhaW5lci0tdXBsb2FkVGFiJzogdGFiRGlzcGxheWVkID09PSAnaW1nLXVwbG9hZCcsICdpbWFnZXMtdmlld19fY29udGFpbmVyLS13aW5kb3cnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3dpbmRvdyd9XCJcbiAgPlxuXG4gICAgPGRpdiAqbmdJZj1cInRhYkRpc3BsYXllZCAhPT0gJ2ltZy11cGxvYWQnXCI+XG4gICAgICAgIDxwIGNsYXNzPVwibWFpbkNvbG9yXCIgW25nQ2xhc3NdPVwieydpbWFnZXMtdmlld19fY29udGFpbmVyX190b3RhbC0taGlkZSc6IGRpc3BsYXlQZXhlbHNSZXN1bHRzfVwiPnt7ICdJbWdNYW5hZ2VyLkltZ0xpYi5uYkltZycgfCB0cmFuc2xhdGUgfX0gOiB7e2xlbmd0aH19PC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJ1wiPlxuICAgICAgICA8cCBjbGFzcz1cIm1haW5Db2xvclwiPnt7ICdJbWdNYW5hZ2VyLkltZ0xpYi5sYXN0SW1ncycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGFzLWFkZG9ucyBzdWJIZWFkZXJBY3Rpb25zXCIgKm5nSWY9XCJ0YWJEaXNwbGF5ZWQgIT09ICdpbWctdXBsb2FkJ1wiPlxuXG4gICAgICAgIDwhLS0gRm9yIGxpc3Rmb3JtYSA6IERpc3BsYXkgYnRuIGRlbCBtdWx0aXBsZSBpbWcgJiBDb25maXJtIGFjdGlvbiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlcy12aWV3X19jb250YWluZXJfX2JveEFjdGlvblwiPlxuXG5cbiAgICAgICAgICAgIDwhLS0gU2VsZWN0IC0tPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBzdWNjZXNzIGltYWdlcy12aWV3X19jb250YWluZXJfX2JveEFjdGlvbl9faW1wb3J0XCJcbiAgICAgICAgICAgICAgQGluc2VydFJlbW92ZUFubmltXG4gICAgICAgICAgICAgICpuZ0lmPVwibGlzdERpc3BsYXllZCAmJiBuYkltZ1RvRGVsU2VsZWN0ZWQgJiYgIWNvbmZpcm1JbWdTdXAgJiYgIWRlbExpc3RJbWdMb2FkZXIgJiYgbXVsdGlwbGVJbWdNb2RlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEltZ0Nob3NlbigpXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgICAgICAgICB7eyAnSW1nTWFuYWdlci5JbWdMaWIuc2VsZWN0JyB8IHRyYW5zbGF0ZSB9fSAoe3tuYkltZ1RvRGVsU2VsZWN0ZWR9fSlcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8IS0tIERpc3BsYXkgYnRuIGRlbCBtdWx0aXBsZSBpbWcgLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwibGlzdERpc3BsYXllZCAmJiBuYkltZ1RvRGVsU2VsZWN0ZWQgJiYgIWNvbmZpcm1JbWdTdXBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGlzcGxheUNvbmZpcm1JbWdTdXAoKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGltYWdlcy12aWV3X19jb250YWluZXJfX2JveEFjdGlvbl9fZGVsQnRuIGRhbmdlclwiXG4gICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVBbm5pbVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS10aW1lc1wiPjwvaT57eyAnSW1nTWFuYWdlci5JbWdMaWIuZGVsTWx0JyB8IHRyYW5zbGF0ZSB9fSAoe3tuYkltZ1RvRGVsU2VsZWN0ZWR9fSlcbiAgICAgICAgICAgICAgICA8c3BhbiBidG5Mb2FkaW5nQW5pbSAqbmdJZj1cImRlbExpc3RJbWdMb2FkZXJcIiBjbGFzcz1cImJ0bkxvYWRpbmdBbm5pbWF0aW9uXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDwhLS0gQ29uZmlybSBhY3Rpb24gLS0+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYm94QWN0aW9uX19jb25maXJtU3VwXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbWFnZXMtdmlld19fY29udGFpbmVyX19ib3hBY3Rpb25fX2NvbmZpcm1TdXAtLXZpc2libGUnOiBjb25maXJtSW1nU3VwfVwiPlxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwibmJJbWdUb0RlbFNlbGVjdGVkID4gMVwiIGNsYXNzPVwiaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYm94QWN0aW9uX19jb25maXJtU3VwX190ZXh0XCI+e3sgJ0ltZ01hbmFnZXIuSW1nTGliLmNvbmZpcm1TdXBRdWVzdGlvbnMnIHwgdHJhbnNsYXRlOntuYkltYWdlOiBuYkltZ1RvRGVsU2VsZWN0ZWR9IH19PC9wPlxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwibmJJbWdUb0RlbFNlbGVjdGVkID09PSAxXCIgY2xhc3M9XCJpbWFnZXMtdmlld19fY29udGFpbmVyX19ib3hBY3Rpb25fX2NvbmZpcm1TdXBfX3RleHRcIj57eyAnSW1nTWFuYWdlci5JbWdMaWIuY29uZmlybVN1cFF1ZXN0aW9uJyB8IHRyYW5zbGF0ZTp7bmJJbWFnZTogbmJJbWdUb0RlbFNlbGVjdGVkfSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYm94QWN0aW9uX19jb25maXJtU3VwX19jYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWxTdXAoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyAnSW1nTWFuYWdlci5JbWdMaWIuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVMaXN0SW1nKClcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGltYWdlcy12aWV3X19jb250YWluZXJfX2RlbEJ0biBkYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nTGliLmNvbmZpcm0nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPCEtLSBTd2l0aCBtb3NhaWMvbGlzdCBmb3JtYSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnMgaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYnV0dG9uQm94XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLWxpZ2h0ZWQgaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYnV0dG9uQm94X19idG5cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpZkRpc3BsYXllZCc6ICFsaXN0RGlzcGxheWVkfVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Td2l0Y2hGb3JtYXREaXNwbGF5ZWQoZmFsc2UpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbiBpcy1zbWFsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdGhcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gaXMtbGlnaHRlZCBpbWFnZXMtdmlld19fY29udGFpbmVyX19idXR0b25Cb3hfX2J0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGlmRGlzcGxheWVkJzogbGlzdERpc3BsYXllZH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKHRydWUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1iYXJzXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG4gIDwhLS0gSW1hZ2VzIHNlY3Rpb24gLS0+XG48bmctc2Nyb2xsYmFyXG4gIGNsYXNzPVwiaW1hZ2VzLXZpZXdfX3Njcm9sbFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnaW1hZ2VzLXZpZXdfX3Njcm9sbC0taGlkZS0tbW9zYWljJzogZGlzcGxheVBleGVsc1Jlc3VsdHMgJiYgIWxpc3REaXNwbGF5ZWQsXG4gICAgJ2ltYWdlcy12aWV3X19zY3JvbGwtLWhpZGUtLXRhYmxlJzogZGlzcGxheVBleGVsc1Jlc3VsdHMgJiYgbGlzdERpc3BsYXllZCxcbiAgICAnaW1hZ2VzLXZpZXdfX3Njcm9sbC0tZnVsbCc6IHN0YXRlRGlzcGxheWVkID09PSAnZnVsbCcsXG4gICAgJ2ltYWdlcy12aWV3X19zY3JvbGwtLXNtYWxsRGlzcGxheScgOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJyAmJiB0YWJEaXNwbGF5ZWQgIT09ICdpbWctdXBsb2FkJyxcbiAgICAnaW1hZ2VzLXZpZXdfX3Njcm9sbC0tc21hbGxVcGxvYWREaXNwbGF5JyA6IHN0YXRlRGlzcGxheWVkID09PSAnc21hbGwnICYmIHRhYkRpc3BsYXllZCA9PT0gJ2ltZy11cGxvYWQnLFxuICAgICdpbWFnZXMtdmlld19fc2Nyb2xsLS13aW5kb3cnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3dpbmRvdydcbn1cIlxuPlxuICA8ZGl2ICNpbWdMaWJDb250YWluZXIgY2xhc3M9XCJpbWFnZXMtdmlld19fd3JhcHBlclwiPlxuICAgIDxkaXYgKm5nSWY9XCIhbGlzdERpc3BsYXllZCB8fCBzdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJ1wiIFtAZWFzZUluT3V0XT1cIidpbidcIj5cbiAgICAgIDxtb3NhaWMtdmlld1xuICAgICAgICBbcGljdHVyZXNMaXN0XT1cInBpY3R1cmVzTGlzdFwiXG4gICAgICAgIChwaWN0dXJlc0xpc3RDaGFuZ2UpPVwib25QaWN0dXJlc0xpc3RDaGFuZ2UoKVwiXG4gICAgICAgIFt0YWJsZUZpbHRlcnNdPVwidGFibGVGaWx0ZXJzXCJcbiAgICAgICAgKGZpbHRlcnNDaGFuZ2UpPVwib25GaWx0ZXJzQ2hhbmdlKClcIlxuICAgICAgICBbKGRpc2FibGUpXT1cImRpc2FibGVcIlxuICAgICAgICAocGljdHVyZU5hbWVDaGFuZ2UpPVwib25SZW5hbWVQaWN0dXJlKCRldmVudClcIlxuICAgICAgICAoc3dpdGNoRGlzcGxheVdpbmRvdyk9XCJzd2l0Y2hEaXNwbGF5V2luZG93TW9zYWljKClcIlxuICAgICAgICBbbmJGYWtlSW1nXT1cIm5iRmFrZUltZ1wiXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXG4gICAgICAgIFt0YWJEaXNwbGF5ZWRdPVwidGFiRGlzcGxheWVkXCJcbiAgICAgICAgW2Rpc3BsYXlQZXhlbHNSZXN1bHRzXT1cImRpc3BsYXlQZXhlbHNSZXN1bHRzXCJcbiAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICBbZnVsbFNpemVdPVwiZnVsbFNpemVcIlxuICAgICAgPlxuICAgICAgPC9tb3NhaWMtdmlldz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJsaXN0RGlzcGxheWVkICYmIHN0YXRlRGlzcGxheWVkICE9PSAnc21hbGwnXCIgW0BlYXNlSW5PdXRdPVwiJ2luJ1wiPlxuICAgICAgPHRhYmxlLXZpZXdcbiAgICAgICAgW3BpY3R1cmVzTGlzdF09XCJwaWN0dXJlc0xpc3RcIlxuICAgICAgICAocGljdHVyZXNMaXN0Q2hhbmdlKT1cIm9uUGljdHVyZXNMaXN0Q2hhbmdlKClcIlxuICAgICAgICBbdGFibGVGaWx0ZXJzXT1cInRhYmxlRmlsdGVyc1wiXG4gICAgICAgIChmaWx0ZXJzQ2hhbmdlKT1cIm9uRmlsdGVyc0NoYW5nZSgpXCJcbiAgICAgICAgWyhkaXNhYmxlKV09XCJkaXNhYmxlXCJcbiAgICAgICAgKHBpY3R1cmVOYW1lQ2hhbmdlKT1cIm9uUmVuYW1lUGljdHVyZSgkZXZlbnQpXCJcbiAgICAgICAgW2Rpc3BsYXlQZXhlbHNSZXN1bHRzXT1cImRpc3BsYXlQZXhlbHNSZXN1bHRzXCJcbiAgICAgICAgW3N0YXRlRGlzcGxheWVkXT1cInN0YXRlRGlzcGxheWVkXCJcbiAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICA8L3RhYmxlLXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L25nLXNjcm9sbGJhcj5cblxuPCEtLSBQZXhlbHMgU2VjdGlvbiAtIFdoZW4gbm8gaW1nIGZvdW5kIC0tPlxuPGRpdlxuICAqbmdJZj1cImRpc3BsYXlQZXhlbHNSZXN1bHRzXCJcbiAgY2xhc3M9XCJpbWFnZXMtdmlldy0tcGV4ZWxzXCJcbiAgW0BlYXNlSW5PdXRdPVwiJ2luJ1wiPlxuICA8cGV4ZWxzLWxpYlxuICAgIFtzZWFyY2hWYWx1ZV09XCJ0YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWVcIlxuICAgIChzaG93SW1nVXBsb2FkZWQpPVwib25TaG93SW1nVXBsb2FkZWQoKVwiXG4gICAgW2Rpc2FibGVTZWFyY2hdPVwidHJ1ZVwiXG4gID5cbiAgPC9wZXhlbHMtbGliPlxuPC9kaXY+XG4iXX0=
488
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlcy12aWV3L2ltYWdlcy12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3d6LWltZy1tYW5hZ2VyL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZXMtdmlldy9pbWFnZXMtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFtQyxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2SyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBVTVELE1BQU0sT0FBTyxtQkFBbUI7SUF3STlC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bkIsbUJBQW1CLDBjQ3hCaEMsazROQW9LQSx5c0NEakpjO1FBQ1YsU0FBUztRQUNULFlBQVk7S0FDYjsyRkFFVSxtQkFBbUI7a0JBUi9CLFNBQVM7K0JBQ0UsYUFBYSxjQUVYO3dCQUNWLFNBQVM7d0JBQ1QsWUFBWTtxQkFDYjt3U0FJUSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRU4sbUJBQW1CO3NCQURsQixNQUFNO2dCQWF1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWdQaWN0dXJlRFRPLCBJbWdQaWN0dXJlc0RUTywgUGFyYW1zSW1nTWFuYWdlckRUTyB9IGZyb20gJy4uLy4uL2R0by9pbWctbWFuYWdlci5kdG8nO1xuaW1wb3J0IHsgSW1nTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbWdFdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWctZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBJbWdTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1nLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUvZmlsdGVycy10YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBpY3R1cmVOYW1lVXBkYXRlIH0gZnJvbSAnLi4vLi4vZHRvL3BpY3R1cmUtbmFtZS11cGRhdGUuZHRvJztcbmltcG9ydCB7IGVhc2VJbk91dCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvZWFzZUluT3V0L2Vhc2UtaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBpbnNlcnRSZW1vdmUgfSBmcm9tICcuLi8uLi9hbmltYXRpb25zL2luc2VydFJlbW92ZS9pbnNlcnQtcmVtb3ZlLmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzdGF0ZURpc3BsYXllZCwgdGFiRGlzcGxheWVkIH0gZnJvbSAnLi4vLi4vZHRvL2V4cG9ydC1kdG9zLmFwaSc7XG5pbXBvcnQgeyBSZW5hbWVQaWN0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlbmFtZS1waWN0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWxlcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltYWdlcy12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlcy12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIGVhc2VJbk91dCxcbiAgICBpbnNlcnRSZW1vdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBzdGF0ZURpc3BsYXllZDogc3RhdGVEaXNwbGF5ZWQ7XG4gIEBJbnB1dCgpIHRhYkRpc3BsYXllZDogdGFiRGlzcGxheWVkO1xuICBASW5wdXQoKSBmdWxsU2l6ZTogYm9vbGVhbjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoQ2FyZFNob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbmJSb3dUb1Nob3c6IG51bWJlcjtcbiAgQElucHV0KCkgbGlzdERpc3BsYXllZCA9IGZhbHNlOyAvLyBEaXNwbGF5IGZvcm1hdCBsaXN0IG9yIG1vc2FpY1xuICBASW5wdXQoKSBtdWx0aXBsZUltZ01vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIHN3aXRjaERpc3BsYXlXaW5kb3c6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBEYXRhIGZpbHRlcnNcbiAgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnMgPSB7XG4gICAgc29ydDogdW5kZWZpbmVkLFxuICAgIG9yZGVyOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoVmFsdWU6ICcnLFxuICAgIHRvdGFsSXRlbXM6IDAsXG4gICAgaXRlbXNQZXJQYWdlOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAxXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnaW1nTGliQ29udGFpbmVyJykgaW1nTGliQ29udGFpbmVyIDogRWxlbWVudFJlZjtcbiAgd2lkdGhMYXJnZUNhcmQ6IG51bWJlciA9IDIxOTsgLy8gRGVmYXVsdCB2YWx1ZSBvZiBhIGNhcmQgd2lkdGggMTk5ICsgbWFyZ2luIDIwXG4gIHdpZHRoU21hbGxDYXJkOiBudW1iZXIgPSAxNjA7IC8vIERlZmF1bHQgdmFsdWUgb2YgYSBjYXJkIHdpZHRoIDE0MCArIG1hcmdpbiAyMFxuICBuYk1pbkltZ1BlckxpbmU6IG51bWJlcjtcbiAgbmJNYXhJbWdQZXJMaW5lOiBudW1iZXI7XG4gIG5iRmFrZUltZzogbnVtYmVyID0gMDtcblxuICBpbWdGdWxsV2lkdGhDb25maWc6YW55ID0gW1xuICAgIHtcbiAgICAgIG1heDogNDE5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDEsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC41XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDQ5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAxLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuNVxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiA3MTksIC8vIHRhYmxldFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzNcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTAyMywgLy8gZGVza29wXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTU5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjIsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMTExXG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4xNjY2LFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMVxuICAgIH1cbiAgXTtcblxuICBpbWdXaWR0aENvbmZpZzphbnkgPSBbXG4gICAge1xuICAgICAgbWF4OiAxMDI0LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xMjVcbiAgICB9LFxuICAgIHtcbiAgICAgIG1heDogMTE5OSxcbiAgICAgIGxhcmdlSW1nV2lkdGhGYWN0b3IgOiAwLjMzMzMsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4yXG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDEyOTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4zMzMzLFxuICAgICAgc21hbGxJbWdXaWR0aEZhY3RvciA6IDAuMTY2NlxuICAgIH0sXG4gICAge1xuICAgICAgbWF4OiAxMzk5LFxuICAgICAgbGFyZ2VJbWdXaWR0aEZhY3RvciA6IDAuMjUsXG4gICAgICBzbWFsbEltZ1dpZHRoRmFjdG9yIDogMC4xNjY2XG4gICAgfSxcbiAgICB7XG4gICAgICBtYXg6IDE1OTksXG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjE0XG4gICAgfSxcbiAgICB7XG4gICAgICBsYXJnZUltZ1dpZHRoRmFjdG9yIDogMC4yNSxcbiAgICAgIHNtYWxsSW1nV2lkdGhGYWN0b3IgOiAwLjEyNVxuICAgIH1cbiAgXTtcblxuICBpbWdTdWJzY3JpYmU6IFN1YnNjcmlwdGlvbjtcbiAgaW1nUmVtb3ZlZEV2ZW50OiBTdWJzY3JpcHRpb247XG4gIGltZ0FkZGVkRXZlbnQ6IFN1YnNjcmlwdGlvbjtcbiAgaW1nU2VsZWN0aW9uQ2hhbmdlOiBTdWJzY3JpcHRpb247XG4gIHNlYXJjaFF1ZXJ5Q2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBmaWx0ZXJzQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcGljdHVyZXNMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgc2F2ZVBpY3R1cmVMaXN0OiBJbWdQaWN0dXJlRFRPW10gPSBbXTtcbiAgaW1nU2VsZWN0ZWRMaXN0OiBJbWdQaWN0dXJlRFRPW107XG4gIHNlYXJjaGVkVmFsdWU6IHN0cmluZzsgLy8gVmFsdWUgZnJvbSB0aGUgc2VhcmNoIGJhciBvciBpbWcgYWRkZWQgYnkgY2FudmFcbiAgbmJJbWdUb0RlbFNlbGVjdGVkOiBudW1iZXIgPSAwO1xuICBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7IC8vIFVzZSB0byBkaXNhYmxlIGFjdGlvbiBkdXJpbmcgc2VydmVyIHJlcXVlc3RcbiAgaXNMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNUb3RhbFJldHJpZXZlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBkZWxMaXN0SW1nTG9hZGVyID0gZmFsc2U7XG4gIGluaXRDb21wb25lbnQ6IGJvb2xlYW4gPSB0cnVlO1xuICBmYWlsTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGRpc3BsYXlQZXhlbHNSZXN1bHRzOiBib29sZWFuID0gZmFsc2U7IC8vIFVzZSB3aGVuIG5vIGltZyBmaW5kIGJ5IG5hbWUsIGRpc3BsYXkgaW1nIGZyb20gUGV4ZWxzXG4gIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgY29uZmlybUltZ1N1cDpib29sZWFuID0gZmFsc2U7XG4gIHByZXZpb3VzU2VhcmNoVmFsdWU6IHN0cmluZztcblxuICAvLyBQYWdpbmF0b3IgUGFyYW1zXG4gIHBhZ2VJbmRleDogbnVtYmVyID0wO1xuICBsZW5ndGg6IG51bWJlciA9IDA7XG4gIHBhZ2VTaXplOiBudW1iZXIgPSAzMDsgLy8gRGVmYXVsdCB2YWx1ZVxuICBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzI1LCA1MCwgMTAwLCAyNTBdO1xuXG4gIC8vIEFwaSBJbWcgbWFuYWdlciBQYXJhbXNcbiAgcGFyYW1zOlBhcmFtc0ltZ01hbmFnZXJEVE87XG5cbiAgcHJpdmF0ZSBlcnJvckdldEFsbEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldEFsbEltZyc7XG4gIHByaXZhdGUgZXJyb3JHZXRUb3RhbEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldFRvdGFsSW1nJztcbiAgcHJpdmF0ZSBlcnJvckdldEltZyA9ICdJbWdNYW5hZ2VyLkltZ0xpYi5lcnJvckdldENhbnZhSW1nJztcbiAgcHJpdmF0ZSBtc2dOb0ltZ0ZvdW5kID0gJ0ltZ01hbmFnZXIuSW1nTGliLm5vSW1nRm91bmQnO1xuICBwcml2YXRlIGVycm9yUmVtb3ZlSW1nID0gJ0ltZ01hbmFnZXIuSW1nTGlzdC5lcnJvclJlbW92ZUltZyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbWdNYW5hZ2VyOiBJbWdNYW5hZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIGltZ0V2ZW50U2VydmljZTogSW1nRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW1nU2VsZWN0aW9uU2VydmljZTogSW1nU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNldHRpbmdzU2VydmljZTogVXNlclNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmFtZVBpY3R1cmVTZXJ2aWNlOiBSZW5hbWVQaWN0dXJlU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLyogaWYgKHRoaXMubWF4TGVuZ3RoQ2FyZFNob3cpIHtcbiAgICAgIHRoaXMucmVkdWNlUGljdHVyZUxpc3RNYXhMZW5ndGgoKTtcbiAgICB9ICovXG4gICAgdGhpcy5zZXRFdmVudHMoKTtcbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdCA9IHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5nZXRJbWdTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNldE5iSW1nVG9EaXNwbGF5KCk7XG4gICAgdGhpcy5fZ2V0SW1nTGlzdCgpO1xuICAgIGlmICghdGhpcy5zYXZlUGljdHVyZUxpc3QpIHtcbiAgICAgIHRoaXMuc2F2ZVBpY3R1cmVMaXN0ID0gdGhpcy5waWN0dXJlc0xpc3Q7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW1nTGlzdCgpIHtcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB0cnVlIDogZ28gdG8gbGlzdCBkaXNwbGF5XG4gICAqIGZhbHNlIDogZ28gdG8gbW9zYWljIGRpc3BsYXlcbiAgICogQHBhcmFtIGFjdGl2YXRlXG4gICAqL1xuICBvblN3aXRjaEZvcm1hdERpc3BsYXllZChhY3RpdmF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMubGlzdERpc3BsYXllZCA9IGFjdGl2YXRlO1xuICAgIHRoaXMudXNlclNldHRpbmdzU2VydmljZS5zZXRVc2VyRGlzcGxheVByZWZlcmVuY2UoYWN0aXZhdGUpO1xuICAgIHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmVtaXRsaXN0RGlzcGxheWVkQ2hhbmdlKGFjdGl2YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjdWwgdGhlIG51bWJlciBvZiBpbWcgc2VsZWN0ZWQgZm9yIG1hc3NlIGRlbGV0aW9uXG4gICAqL1xuICBvbkltZ1NlbGVjdGVkKCkge1xuICAgIHRoaXMuc2V0TmJJbWdUb0RlbFNlbGVjdGVkKCk7XG4gIH1cblxuICBvblNob3dJbWdVcGxvYWRlZCgpIHtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBudWxsO1xuICAgIHRoaXMuc2VhcmNoZWRWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5nZXRJbWdMaXN0KCk7XG4gIH1cblxuICBvblJlbmFtZVBpY3R1cmUocGljdHVyZVJlbmFtZWQ6IFBpY3R1cmVOYW1lVXBkYXRlKSB7XG4gICAgY29uc29sZS5sb2coJ29uUmVuYW1lUGljdHVyZSBwaWN0dXJlUmVuYW1lZCcsIHBpY3R1cmVSZW5hbWVkKTtcbiAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLnJlbmFtZVBpY3R1cmUocGljdHVyZVJlbmFtZWQpO1xuICB9XG5cbiAgcmVtb3ZlTGlzdEltZygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGlzYWJsZSA9IHRydWU7XG4gICAgdGhpcy5kZWxMaXN0SW1nTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmNvbmZpcm1JbWdTdXAgPSBmYWxzZTtcblxuICAgIC8vIEdldCB0aGUgaWQgb2YgdGhlIGltZyB0byByZW1vdmVcbiAgICAvLyBBbmQgYWRkIGRlbGV0ZWQgcHJvcGVydHlcbiAgICBjb25zdCBpZEltZ1RvUmVtb3ZlOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMucGljdHVyZXNMaXN0LmZvckVhY2goIGltZyA9PiB7XG4gICAgICBpZiAoaW1nLmRlbFNlbGVjdGVkKSB7XG4gICAgICAgIGltZy5kZWxldGVkID0gdHJ1ZTtcbiAgICAgICAgaWRJbWdUb1JlbW92ZS5wdXNoKGltZy5pZF9maWxlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaW1nTWFuYWdlci5yZW1vdmVNdWx0aXBsZUltZyhpZEltZ1RvUmVtb3ZlKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgICAgICB0aGlzLmltZ1NlbGVjdGlvblNlcnZpY2UucmVtb3ZlSW1nU2VsZWN0aW9uQnlJZHMoaWRJbWdUb1JlbW92ZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JSZW1vdmVJbWcpO1xuICAgICAgfVxuICAgICk7XG5cblxuICB9XG5cbiAgc2VsZWN0SW1nQ2hvc2VuKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGljdHVyZXNMaXN0U2VsZWN0ZWQ6IEltZ1BpY3R1cmVEVE9bXSA9IFtdO1xuICAgIHRoaXMucGljdHVyZXNMaXN0Lm1hcChpbWcgPT4ge1xuICAgICAgaWYoaW1nLmRlbFNlbGVjdGVkKSB7XG4gICAgICAgIGltZy5kZWxTZWxlY3RlZCA9ZmFsc2U7XG4gICAgICAgIGltZy5zZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoaW1nLnNlbGVjdGVkKSB7XG4gICAgICAgIHBpY3R1cmVzTGlzdFNlbGVjdGVkLnB1c2goaW1nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNldE5iSW1nVG9EZWxTZWxlY3RlZCgpO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uU2VydmljZS5zZXRJbWdTZWxlY3Rpb24ocGljdHVyZXNMaXN0U2VsZWN0ZWQpO1xuICB9XG5cbiAgZGlzcGxheUNvbmZpcm1JbWdTdXAoKXtcbiAgICBpZiAodGhpcy5kaXNhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29uZmlybUltZ1N1cCA9IHRydWU7XG4gIH1cblxuICBjYW5jZWxTdXAoKSB7XG4gICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgZW1pdCB3aGVuIGEgaW1nIHNlbGVjdGVkIGluIG9yZGVyIHRvIGRlbGV0ZVxuICAgKi9cbiAgb25QaWN0dXJlc0xpc3RDaGFuZ2UoKSB7XG4gICAgdGhpcy5zZXROYkltZ1RvRGVsU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIG9uRmlsdGVyc0NoYW5nZSgpIHtcbiAgICB0aGlzLmdldEltZ0xpc3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZGVmYXVsdCBudW1iZXIgb2YgaW1nIHBlciBwYWdlIHRvIGRpc3BsYXkgYXQgdGhlIGluaXRpYWxpc2F0aW9uXG4gICAqIFRoaXMgbnVtYmVyIGlzIGJldHdlZW4gMzAgYW5kIDUwXG4gICAqL1xuICBwcml2YXRlIHNldE5iSW1nVG9EaXNwbGF5KCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5pbWdMaWJDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArIDMwOyAvLyArIDMwcHggLT4gbGVmdCArIHJpZ2h0IG1hcmdpblxuICAgIGNvbnN0IHNjcm9sbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO1xuXG4gICAgY29uc3QgW21heEltZ1dpZHRoRmFjdG9yLCBtaW5JbWdXaWR0aEZhY3Rvcl0gPSB0aGlzLmdldEltZ1dpZHRoRmFjdG9ycygpO1xuXG4gICAgY29uc3QgbWluSW1nV2lkdGggPSBNYXRoLmZsb29yKGNvbnRhaW5lcldpZHRoICogbWluSW1nV2lkdGhGYWN0b3IpO1xuICAgIGNvbnN0IG1heEltZ1dpZHRoID0gTWF0aC5jZWlsKChjb250YWluZXJXaWR0aCArIHNjcm9sbFdpZHRoICkgKiBtYXhJbWdXaWR0aEZhY3Rvcik7XG5cbiAgICB0aGlzLm5iTWF4SW1nUGVyTGluZSA9IE1hdGguZmxvb3IoY29udGFpbmVyV2lkdGggLyBtaW5JbWdXaWR0aCk7XG4gICAgdGhpcy5uYk1pbkltZ1BlckxpbmUgPSBNYXRoLmZsb29yKCAoY29udGFpbmVyV2lkdGggKyBzY3JvbGxXaWR0aCApIC8gbWF4SW1nV2lkdGgpO1xuXG4gICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuZ2V0VG90YWxJbWdQZXJQYWdlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEltZ1dpZHRoRmFjdG9ycygpOiBudW1iZXJbXSB7XG4gICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBsZXQgbWluV2lkdGg6bnVtYmVyID0gMDtcbiAgICBsZXQgaW1nU2l6ZXNDb25maWc6IG51bWJlcltdID0gW107XG5cbiAgICBjb25zdCBjdXJyZW50SW1nV2lkdGhDb25maWcgPSB0aGlzLmZ1bGxTaXplID8gdGhpcy5pbWdGdWxsV2lkdGhDb25maWcgOiB0aGlzLmltZ1dpZHRoQ29uZmlnO1xuXG4gICAgZm9yIChjb25zdCB3aWR0aENvbmZpZyBvZiBjdXJyZW50SW1nV2lkdGhDb25maWcpIHtcbiAgICAgICAgaWYgKCF3aWR0aENvbmZpZy5tYXgpIHtcbiAgICAgICAgICBpbWdTaXplc0NvbmZpZyA9IFt3aWR0aENvbmZpZy5sYXJnZUltZ1dpZHRoRmFjdG9yLCB3aWR0aENvbmZpZy5zbWFsbEltZ1dpZHRoRmFjdG9yXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAobWluV2lkdGggPCBzY3JlZW5XaWR0aCAmJiBzY3JlZW5XaWR0aCA8PSB3aWR0aENvbmZpZy5tYXgpIHtcbiAgICAgICAgICBpbWdTaXplc0NvbmZpZyA9IFt3aWR0aENvbmZpZy5sYXJnZUltZ1dpZHRoRmFjdG9yLCB3aWR0aENvbmZpZy5zbWFsbEltZ1dpZHRoRmFjdG9yXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBtaW5XaWR0aCA9IHdpZHRoQ29uZmlnLm1heDtcbiAgICB9XG4gICAgcmV0dXJuIGltZ1NpemVzQ29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3RhbEltZ1BlclBhZ2UoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5uYlJvd1RvU2hvdykge1xuICAgICAgY29uc3QgbmJJbWdQZXJMaW5lID0gdGhpcy5zdGF0ZURpc3BsYXllZCA9PT0gJ2Z1bGwnID8gdGhpcy5uYk1pbkltZ1BlckxpbmUgOiB0aGlzLm5iTWF4SW1nUGVyTGluZTtcbiAgICAgIHJldHVybiBuYkltZ1BlckxpbmUgKiB0aGlzLm5iUm93VG9TaG93O1xuICAgIH1cblxuICAgIGxldCB0b3RhbCA9IHRoaXMubmJNaW5JbWdQZXJMaW5lO1xuXG4gICAgd2hpbGUgKHRvdGFsIDwgMzAgfHwgdG90YWwgJSB0aGlzLm5iTWF4SW1nUGVyTGluZSAhPT0gMCB8fCAgdG90YWwgJSB0aGlzLm5iTWluSW1nUGVyTGluZSAhPT0gMCkge1xuICAgICAgdG90YWwgKz0gdGhpcy5uYk1pbkltZ1BlckxpbmU7XG4gICAgfVxuICAgIHJldHVybiB0b3RhbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGFyYW1zKCkge1xuICAgIHRoaXMucGFyYW1zID0ge1xuICAgICAgbGltaXQ6IHRoaXMubWF4TGVuZ3RoQ2FyZFNob3c/LnRvU3RyaW5nKCkgfHwgKHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/IHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZS50b1N0cmluZygpIDogdGhpcy5wYWdlU2l6ZS50b1N0cmluZygpKSxcbiAgICAgIHBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlLnRvU3RyaW5nKClcbiAgICB9O1xuICAgIGlmICh0aGlzLnRhYmxlRmlsdGVycy5zZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5wYXJhbXMuc2VhcmNoID0gdGhpcy50YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWUudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRWYXJpYWJsZXMobG9hZGluZ1N1Y2Nlc3M6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IDA7XG4gICAgdGhpcy5kaXNhYmxlID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRlbExpc3RJbWdMb2FkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmluaXRDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLmRpc3BsYXlQZXhlbHNSZXN1bHRzID0gZmFsc2U7XG4gICAgdGhpcy5mYWlsTG9hZGVkID0gIWxvYWRpbmdTdWNjZXNzO1xuICAgIHRoaXMubmJGYWtlSW1nID0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SW1nU2VsZWN0ZWQgKCkge1xuICAgIGlmICghdGhpcy5pbWdTZWxlY3RlZExpc3QgfHwgIXRoaXMuaW1nU2VsZWN0ZWRMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlkSW1nU2xlY3RlZExpc3Q6IHN0cmluZ1tdID0gW107XG5cbiAgICB0aGlzLmltZ1NlbGVjdGVkTGlzdC5mb3JFYWNoKGltZyA9PlxuICAgICAgaWRJbWdTbGVjdGVkTGlzdC5wdXNoKGltZy5pZF9maWxlKVxuICAgICk7XG5cbiAgICB0aGlzLnBpY3R1cmVzTGlzdC5mb3JFYWNoKHBpY3R1cmUgPT4ge1xuICAgICAgaWYgKGlkSW1nU2xlY3RlZExpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpICE9PSAtMSkge1xuICAgICAgICBwaWN0dXJlLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzcGxheVBleGVsc0xpYiAoKSB7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IHRydWU7XG4gICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMubXNnTm9JbWdGb3VuZCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgaW1nIGxpc3QgaW4gb3JkZXIgdG8gZmlsbCBwcm9wZXJseSBhbGwgdGhlIGxpbmUgb2YgaW1hZ2VzIGRpc3BsYXllZCBpbiBtb3NhaWMuXG4gICAqIE90aGVyd2lzZSwgdGhlIHNwYWNlLWJldHdlZW4gY3NzIHdpbGwgZG8gYSBiYWQgZGlzcGxheVxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVOYkltZ0Zha2UobmJJbWdEaXNwbGF5ZWQ6IG51bWJlcikge1xuICAgIGNvbnN0IG5iSW1nUGVyTGluZSA9IHRoaXMuc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgfHwgdGhpcy50YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyA/IHRoaXMubmJNYXhJbWdQZXJMaW5lIDogdGhpcy5uYk1pbkltZ1BlckxpbmU7XG5cbiAgICBpZiAobmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmUgIT09IDApIHtcbiAgICAgIHRoaXMubmJGYWtlSW1nID0gbmJJbWdQZXJMaW5lIC0gbmJJbWdEaXNwbGF5ZWQgJSBuYkltZ1BlckxpbmU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbWcgKGlkX2ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuaW1nTWFuYWdlci5nZXRTaG9wSW1nKGlkX2ZpbGUpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChwaWN0dXJlKSA9PiB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmltZ0FscmVhZHlFeGlzdChwaWN0dXJlLmlkX2ZpbGUpKSB7XG4gICAgICAgICAgLy8gY2hlY2sgdGhlIGltZyBpcyBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAgICAgICAgdGhpcy5waWN0dXJlc0xpc3QudW5zaGlmdChwaWN0dXJlKTtcbiAgICAgICAgICB0aGlzLmxlbmd0aCArPSAxO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRJbWcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbWdBbHJlYWR5RXhpc3QgKGlkX2ZpbGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgaW1nIG9mIHRoaXMucGljdHVyZXNMaXN0KSB7XG4gICAgICBpZiAoaW1nLmlkX2ZpbGUgPT09IGlkX2ZpbGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TmJJbWdUb0RlbFNlbGVjdGVkICgpIHtcbiAgICB0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCA9IHRoaXMucGljdHVyZXNMaXN0LmZpbHRlcihpbWcgPT5cbiAgICAgIGltZy5kZWxTZWxlY3RlZCkubGVuZ3RoO1xuXG4gICAgaWYgKCF0aGlzLm5iSW1nVG9EZWxTZWxlY3RlZCkge1xuICAgICAgdGhpcy5jb25maXJtSW1nU3VwID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRFdmVudHMoKSB7XG4gICAgLy8gQWRkIGEgdGltZXIgdG8gcmV0cmlldmUgaW1nIHdoZW4gdGhlIHNlYXJjaCBiYXIgb3IgdGhlIHBhZ2luYXRvciBhcmUgdXNlZFxuICAgIHRoaXMuc2VhcmNoUXVlcnlDaGFuZ2VkXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNDAwKSkgLy8gd2FpdCAwLjUgc2VjIGFmdGVyIHRoZSBsYXN0IGV2ZW50IGJlZm9yZSBlbWl0dGluZyBsYXN0IGV2ZW50XG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZFxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwMCkpIC8vIHdhaXQgMC44IHNlYyBhZnRlciB0aGUgbGFzdCBldmVudCBiZWZvcmUgZW1pdHRpbmcgbGFzdCBldmVudFxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICB0aGlzLl9nZXRJbWdMaXN0KCk7XG4gICAgfSk7XG5cbiAgICAvLyBSZWxvYWQgaW1nIHdoZW4gaW1nIGlzL2FyZSByZW1vdmVkXG4gICAgdGhpcy5pbWdSZW1vdmVkRXZlbnQgPSB0aGlzLmltZ0V2ZW50U2VydmljZS5pbWdSZW1vdmVkJC5zdWJzY3JpYmUoaWRfZmlsZSA9PntcbiAgICAgIHRoaXMuZ2V0SW1nTGlzdCgpO1xuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIGltZyBmcm9tIENhbnZhXG4gICAgdGhpcy5pbWdBZGRlZEV2ZW50ID0gdGhpcy5pbWdFdmVudFNlcnZpY2UuZ2V0SW1nQWRkZWRFdmVudExpc3RuZXIoKS5zdWJzY3JpYmUoaWRfZmlsZSA9PntcbiAgICAgIGlmIChpZF9maWxlICYmICF0aGlzLmltZ0FscmVhZHlFeGlzdChpZF9maWxlKSkge1xuICAgICAgICB0aGlzLmdldEltZyhpZF9maWxlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaW1nU2VsZWN0aW9uQ2hhbmdlID0gdGhpcy5pbWdTZWxlY3Rpb25TZXJ2aWNlLmltZ1NlbGVjdGlvbiQuc3Vic2NyaWJlKGltZ1NlbGVjdGlvbiA9PntcbiAgICAgIGlmICh0aGlzLmxpc3REaXNwbGF5ZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgaWRGaWxlTGlzdCA9IFtdO1xuICAgICAgaW1nU2VsZWN0aW9uLm1hcChpbWcgPT4gaWRGaWxlTGlzdC5wdXNoKGltZy5pZF9maWxlKSk7XG4gICAgICBmb3IgKGNvbnN0IHBpY3R1cmUgb2YgdGhpcy5waWN0dXJlc0xpc3QpIHtcbiAgICAgICAgaWYgKGlkRmlsZUxpc3QuaW5kZXhPZihwaWN0dXJlLmlkX2ZpbGUpID09PSAtMSkge1xuICAgICAgICAgIHBpY3R1cmUuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW1nTGlzdCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kaXNwbGF5UGV4ZWxzUmVzdWx0cyA9IGZhbHNlO1xuICAgIHRoaXMuc2V0UGFyYW1zKCk7XG5cbiAgICB0aGlzLnJlZnJlc2hUb3RhbEltZ0xpc3QoKTtcblxuICAgIGNvbnN0IGZvcmNlVG9VcGRhdGUgPSB0aGlzLmlzTGFzdEltZ1JlbW92ZWRJbkxpc3QoKTtcbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcEltZ0xpc3QodGhpcy5wYXJhbXMsIGZvcmNlVG9VcGRhdGUpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyh0cnVlKTtcbiAgICAgICAgY29uc3QgbmJJbWdEaXNwbGF5ZWQgPSBkYXRhLmRhdGEubGVuZ3RoO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZU5iSW1nRmFrZShuYkltZ0Rpc3BsYXllZCk7XG4gICAgICAgIHRoaXMucGljdHVyZXNMaXN0ID0gZGF0YS5kYXRhO1xuICAgICAgICB0aGlzLnJlbmFtZVBpY3R1cmVTZXJ2aWNlLnNldFBpY3R1cmVzTGlzdCh0aGlzLnBpY3R1cmVzTGlzdCk7XG4gICAgICAgIHRoaXMuc2VsZWN0SW1nU2VsZWN0ZWQoKTtcblxuICAgICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuaXNUb3RhbFJldHJpZXZlZCA/IHRoaXMubGVuZ3RoIDogZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICAgIHRoaXMudGFibGVGaWx0ZXJzLnRvdGFsSXRlbXMgPSB0aGlzLmlzVG90YWxSZXRyaWV2ZWQgPyB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zIDogZGF0YS50b3RhbFJlY29yZHM7XG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zIDEnLCB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zKTtcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMuaXRlbXNQZXJQYWdlID0gIHRoaXMudGFibGVGaWx0ZXJzLml0ZW1zUGVyUGFnZSA/ICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UgOiB0aGlzLnBhZ2VTaXplO1xuXG4gICAgICAgIC8vIERpc3BsYXkgUGV4ZWxzIGlmIG5vIHJlc3VsdFxuICAgICAgICBpZiAoZGF0YS50b3RhbFJlY29yZHMgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlQZXhlbHNMaWIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7IC8vIEluIHdpemktYWRtaW4sIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5XG5cbiAgICB9LFxuICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5vcGVuQWxlcnQodGhpcy5lcnJvckdldEFsbEltZyk7XG4gICAgICB0aGlzLmluaXRWYXJpYWJsZXMoZmFsc2UpO1xuICAgIH19KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaFRvdGFsSW1nTGlzdCgpIHtcbiAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNUb3RhbFJldHJpZXZlZCAmJiBzZWFyY2hWYWx1ZSA9PT0gdGhpcy5wcmV2aW91c1NlYXJjaFZhbHVlKSB7XG4gICAgICAvLyBLZWVwIGN1cnJlbnQgdG90YWwgcmVzdWx0XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc1RvdGFsUmV0cmlldmVkID0gZmFsc2U7XG5cbiAgICB0aGlzLmltZ01hbmFnZXIuZ2V0U2hvcFRvdGFsSW1nTGlzdCh0aGlzLnBhcmFtcykucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogdG90YWwgPT4ge1xuICAgICAgICB0aGlzLnByZXZpb3VzU2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICAgICAgdGhpcy5pc1RvdGFsUmV0cmlldmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sZW5ndGggPSB0b3RhbDtcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyA9IHRvdGFsO1xuICAgICAgICBjb25zb2xlLmxvZygndGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyAxJywgdGhpcy50YWJsZUZpbHRlcnMudG90YWxJdGVtcyk7XG5cbiAgICAgIH0sXG5cbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgIC8vdGhpcy5hbGVydFNlcnZpY2Uub3BlbkFsZXJ0KHRoaXMuZXJyb3JHZXRUb3RhbEltZyk7XG4gICAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcyhmYWxzZSk7XG4gICAgfX0pO1xuICB9XG5cbiAgc3dpdGNoRGlzcGxheVdpbmRvd01vc2FpYygpIHtcbiAgICB0aGlzLnN3aXRjaERpc3BsYXlXaW5kb3cuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIGlzTGFzdEltZ1JlbW92ZWRJbkxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucGljdHVyZXNMaXN0LnNvbWUocGljdHVyZSA9PiBwaWN0dXJlLmlkX2ZpbGUgPT09IHRoaXMuaW1nRXZlbnRTZXJ2aWNlLmltZ1JlbW92ZWQkLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hRdWVyeUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmltZ1JlbW92ZWRFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nQWRkZWRFdmVudC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW1nU2VsZWN0aW9uQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbWFnZXMtdmlld1wiIFtuZ0NsYXNzXT1cInsnZnVsbFNpemUnOiBmdWxsU2l6ZSwgJ3NtYWxsJzogc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCd9XCIgW0BlYXNlSW5PdXRdPVwiJ2luJ1wiPlxuICA8IS0tIFN1YmhlYWRlciA6IEltZyBudW1iZXIgYW5kIGFjdGlvbnMgYnRuIChzdXAgaW1nIGxpc3QsIHN3aXRjaCBmb3JtYSBkaXNwbGF5KSAtLT5cbiAgPGRpdlxuICAqbmdJZj1cIihzdGF0ZURpc3BsYXllZCAhPT0gJ3NtYWxsJyB8fCB0YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJylcIlxuICBjbGFzcz1cImltYWdlcy12aWV3X19jb250YWluZXJcIlxuICBbbmdDbGFzc109XCJ7J2ltYWdlcy12aWV3X19jb250YWluZXItLXVwbG9hZFRhYic6IHRhYkRpc3BsYXllZCA9PT0gJ2ltZy11cGxvYWQnLCAnaW1hZ2VzLXZpZXdfX2NvbnRhaW5lci0td2luZG93Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICd3aW5kb3cnfVwiXG4gID5cblxuICAgIDxkaXYgKm5nSWY9XCJ0YWJEaXNwbGF5ZWQgIT09ICdpbWctdXBsb2FkJ1wiPlxuICAgICAgICA8cCBjbGFzcz1cIm1haW5Db2xvclwiIFtuZ0NsYXNzXT1cInsnaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fdG90YWwtLWhpZGUnOiBkaXNwbGF5UGV4ZWxzUmVzdWx0c31cIj57eyAnSW1nTWFuYWdlci5JbWdMaWIubmJJbWcnIHwgdHJhbnNsYXRlIH19IDoge3tsZW5ndGh9fTwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwidGFiRGlzcGxheWVkID09PSAnaW1nLXVwbG9hZCdcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJtYWluQ29sb3JcIj57eyAnSW1nTWFuYWdlci5JbWdMaWIubGFzdEltZ3MnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZpZWxkIGhhcy1hZGRvbnMgc3ViSGVhZGVyQWN0aW9uc1wiICpuZ0lmPVwidGFiRGlzcGxheWVkICE9PSAnaW1nLXVwbG9hZCdcIj5cblxuICAgICAgICA8IS0tIEZvciBsaXN0Zm9ybWEgOiBEaXNwbGF5IGJ0biBkZWwgbXVsdGlwbGUgaW1nICYgQ29uZmlybSBhY3Rpb24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZXMtdmlld19fY29udGFpbmVyX19ib3hBY3Rpb25cIj5cblxuXG4gICAgICAgICAgICA8IS0tIFNlbGVjdCAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gc3VjY2VzcyBpbWFnZXMtdmlld19fY29udGFpbmVyX19ib3hBY3Rpb25fX2ltcG9ydFwiXG4gICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVBbm5pbVxuICAgICAgICAgICAgICAqbmdJZj1cImxpc3REaXNwbGF5ZWQgJiYgbmJJbWdUb0RlbFNlbGVjdGVkICYmICFjb25maXJtSW1nU3VwICYmICFkZWxMaXN0SW1nTG9hZGVyICYmIG11bHRpcGxlSW1nTW9kZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJbWdDaG9zZW4oKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtY2hlY2tcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nTGliLnNlbGVjdCcgfCB0cmFuc2xhdGUgfX0gKHt7bmJJbWdUb0RlbFNlbGVjdGVkfX0pXG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPCEtLSBEaXNwbGF5IGJ0biBkZWwgbXVsdGlwbGUgaW1nIC0tPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cImxpc3REaXNwbGF5ZWQgJiYgbmJJbWdUb0RlbFNlbGVjdGVkICYmICFjb25maXJtSW1nU3VwXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXlDb25maXJtSW1nU3VwKClcIlxuICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpbWFnZXMtdmlld19fY29udGFpbmVyX19ib3hBY3Rpb25fX2RlbEJ0biBkYW5nZXJcIlxuICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlQW5uaW1cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtdGltZXNcIj48L2k+e3sgJ0ltZ01hbmFnZXIuSW1nTGliLmRlbE1sdCcgfCB0cmFuc2xhdGUgfX0gKHt7bmJJbWdUb0RlbFNlbGVjdGVkfX0pXG4gICAgICAgICAgICAgICAgPHNwYW4gYnRuTG9hZGluZ0FuaW0gKm5nSWY9XCJkZWxMaXN0SW1nTG9hZGVyXCIgY2xhc3M9XCJidG5Mb2FkaW5nQW5uaW1hdGlvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8IS0tIENvbmZpcm0gYWN0aW9uIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImltYWdlcy12aWV3X19jb250YWluZXJfX2JveEFjdGlvbl9fY29uZmlybVN1cFwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYm94QWN0aW9uX19jb25maXJtU3VwLS12aXNpYmxlJzogY29uZmlybUltZ1N1cH1cIj5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIm5iSW1nVG9EZWxTZWxlY3RlZCA+IDFcIiBjbGFzcz1cImltYWdlcy12aWV3X19jb250YWluZXJfX2JveEFjdGlvbl9fY29uZmlybVN1cF9fdGV4dFwiPnt7ICdJbWdNYW5hZ2VyLkltZ0xpYi5jb25maXJtU3VwUXVlc3Rpb25zJyB8IHRyYW5zbGF0ZTp7bmJJbWFnZTogbmJJbWdUb0RlbFNlbGVjdGVkfSB9fTwvcD5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cIm5iSW1nVG9EZWxTZWxlY3RlZCA9PT0gMVwiIGNsYXNzPVwiaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYm94QWN0aW9uX19jb25maXJtU3VwX190ZXh0XCI+e3sgJ0ltZ01hbmFnZXIuSW1nTGliLmNvbmZpcm1TdXBRdWVzdGlvbicgfCB0cmFuc2xhdGU6e25iSW1hZ2U6IG5iSW1nVG9EZWxTZWxlY3RlZH0gfX08L3A+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGltYWdlcy12aWV3X19jb250YWluZXJfX2JveEFjdGlvbl9fY29uZmlybVN1cF9fY2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsU3VwKClcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ0ltZ01hbmFnZXIuSW1nTGliLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTGlzdEltZygpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpbWFnZXMtdmlld19fY29udGFpbmVyX19kZWxCdG4gZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdJbWdNYW5hZ2VyLkltZ0xpYi5jb25maXJtJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDwhLS0gU3dpdGggbW9zYWljL2xpc3QgZm9ybWEgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBoYXMtYWRkb25zIGltYWdlcy12aWV3X19jb250YWluZXJfX2J1dHRvbkJveFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1saWdodGVkIGltYWdlcy12aWV3X19jb250YWluZXJfX2J1dHRvbkJveF9fYnRuXCJcbiAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aWZEaXNwbGF5ZWQnOiAhbGlzdERpc3BsYXllZH1cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3dpdGNoRm9ybWF0RGlzcGxheWVkKGZhbHNlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24gaXMtc21hbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXRoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRyb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uIGlzLWxpZ2h0ZWQgaW1hZ2VzLXZpZXdfX2NvbnRhaW5lcl9fYnV0dG9uQm94X19idG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpZkRpc3BsYXllZCc6IGxpc3REaXNwbGF5ZWR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN3aXRjaEZvcm1hdERpc3BsYXllZCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uIGlzLXNtYWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtYmFyc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cblxuICA8IS0tIEltYWdlcyBzZWN0aW9uIC0tPlxuPG5nLXNjcm9sbGJhclxuICBjbGFzcz1cImltYWdlcy12aWV3X19zY3JvbGxcIlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ2ltYWdlcy12aWV3X19zY3JvbGwtLWhpZGUtLW1vc2FpYyc6IGRpc3BsYXlQZXhlbHNSZXN1bHRzICYmICFsaXN0RGlzcGxheWVkLFxuICAgICdpbWFnZXMtdmlld19fc2Nyb2xsLS1oaWRlLS10YWJsZSc6IGRpc3BsYXlQZXhlbHNSZXN1bHRzICYmIGxpc3REaXNwbGF5ZWQsXG4gICAgJ2ltYWdlcy12aWV3X19zY3JvbGwtLWZ1bGwnOiBzdGF0ZURpc3BsYXllZCA9PT0gJ2Z1bGwnLFxuICAgICdpbWFnZXMtdmlld19fc2Nyb2xsLS1zbWFsbERpc3BsYXknIDogc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCcgJiYgdGFiRGlzcGxheWVkICE9PSAnaW1nLXVwbG9hZCcsXG4gICAgJ2ltYWdlcy12aWV3X19zY3JvbGwtLXNtYWxsVXBsb2FkRGlzcGxheScgOiBzdGF0ZURpc3BsYXllZCA9PT0gJ3NtYWxsJyAmJiB0YWJEaXNwbGF5ZWQgPT09ICdpbWctdXBsb2FkJyxcbiAgICAnaW1hZ2VzLXZpZXdfX3Njcm9sbC0td2luZG93Jzogc3RhdGVEaXNwbGF5ZWQgPT09ICd3aW5kb3cnXG59XCJcbj5cbiAgPGRpdiAjaW1nTGliQ29udGFpbmVyIGNsYXNzPVwiaW1hZ2VzLXZpZXdfX3dyYXBwZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxpc3REaXNwbGF5ZWQgfHwgc3RhdGVEaXNwbGF5ZWQgPT09ICdzbWFsbCdcIiBbQGVhc2VJbk91dF09XCInaW4nXCI+XG4gICAgICA8bW9zYWljLXZpZXdcbiAgICAgICAgW3BpY3R1cmVzTGlzdF09XCJwaWN0dXJlc0xpc3RcIlxuICAgICAgICAocGljdHVyZXNMaXN0Q2hhbmdlKT1cIm9uUGljdHVyZXNMaXN0Q2hhbmdlKClcIlxuICAgICAgICBbdGFibGVGaWx0ZXJzXT1cInRhYmxlRmlsdGVyc1wiXG4gICAgICAgIChmaWx0ZXJzQ2hhbmdlKT1cIm9uRmlsdGVyc0NoYW5nZSgpXCJcbiAgICAgICAgWyhkaXNhYmxlKV09XCJkaXNhYmxlXCJcbiAgICAgICAgKHBpY3R1cmVOYW1lQ2hhbmdlKT1cIm9uUmVuYW1lUGljdHVyZSgkZXZlbnQpXCJcbiAgICAgICAgKHN3aXRjaERpc3BsYXlXaW5kb3cpPVwic3dpdGNoRGlzcGxheVdpbmRvd01vc2FpYygpXCJcbiAgICAgICAgW25iRmFrZUltZ109XCJuYkZha2VJbWdcIlxuICAgICAgICBbc3RhdGVEaXNwbGF5ZWRdPVwic3RhdGVEaXNwbGF5ZWRcIlxuICAgICAgICBbdGFiRGlzcGxheWVkXT1cInRhYkRpc3BsYXllZFwiXG4gICAgICAgIFtkaXNwbGF5UGV4ZWxzUmVzdWx0c109XCJkaXNwbGF5UGV4ZWxzUmVzdWx0c1wiXG4gICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgW2Z1bGxTaXplXT1cImZ1bGxTaXplXCJcbiAgICAgID5cbiAgICAgIDwvbW9zYWljLXZpZXc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwibGlzdERpc3BsYXllZCAmJiBzdGF0ZURpc3BsYXllZCAhPT0gJ3NtYWxsJ1wiIFtAZWFzZUluT3V0XT1cIidpbidcIj5cbiAgICAgIDx0YWJsZS12aWV3XG4gICAgICAgIFtwaWN0dXJlc0xpc3RdPVwicGljdHVyZXNMaXN0XCJcbiAgICAgICAgKHBpY3R1cmVzTGlzdENoYW5nZSk9XCJvblBpY3R1cmVzTGlzdENoYW5nZSgpXCJcbiAgICAgICAgW3RhYmxlRmlsdGVyc109XCJ0YWJsZUZpbHRlcnNcIlxuICAgICAgICAoZmlsdGVyc0NoYW5nZSk9XCJvbkZpbHRlcnNDaGFuZ2UoKVwiXG4gICAgICAgIFsoZGlzYWJsZSldPVwiZGlzYWJsZVwiXG4gICAgICAgIChwaWN0dXJlTmFtZUNoYW5nZSk9XCJvblJlbmFtZVBpY3R1cmUoJGV2ZW50KVwiXG4gICAgICAgIFtkaXNwbGF5UGV4ZWxzUmVzdWx0c109XCJkaXNwbGF5UGV4ZWxzUmVzdWx0c1wiXG4gICAgICAgIFtzdGF0ZURpc3BsYXllZF09XCJzdGF0ZURpc3BsYXllZFwiXG4gICAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgPlxuICAgICAgPC90YWJsZS12aWV3PlxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9uZy1zY3JvbGxiYXI+XG5cbjwhLS0gUGV4ZWxzIFNlY3Rpb24gLSBXaGVuIG5vIGltZyBmb3VuZCAtLT5cbjxkaXZcbiAgKm5nSWY9XCJkaXNwbGF5UGV4ZWxzUmVzdWx0c1wiXG4gIGNsYXNzPVwiaW1hZ2VzLXZpZXctLXBleGVsc1wiXG4gIFtAZWFzZUluT3V0XT1cIidpbidcIj5cbiAgPHBleGVscy1saWJcbiAgICBbc2VhcmNoVmFsdWVdPVwidGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlXCJcbiAgICAoc2hvd0ltZ1VwbG9hZGVkKT1cIm9uU2hvd0ltZ1VwbG9hZGVkKClcIlxuICAgIFtkaXNhYmxlU2VhcmNoXT1cInRydWVcIlxuICA+XG4gIDwvcGV4ZWxzLWxpYj5cbjwvZGl2PlxuIl19
@@ -8,6 +8,9 @@ export class PagniationIsLastPage {
8
8
  * @param itemsPerPage
9
9
  */
10
10
  transform(currentPage, totalItems, itemsPerPage) {
11
+ console.log('currentPage', currentPage);
12
+ console.log('totalItems', totalItems);
13
+ console.log('itemsPerPage', itemsPerPage);
11
14
  if (!(currentPage >= 0 && totalItems >= 0 && itemsPerPage >= 0)) {
12
15
  throw new Error('currentPage or totalItems or itemsPerPage is/are missing in PagniationIsLastPage pipe.');
13
16
  }
@@ -22,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
22
25
  name: 'IsLastPage'
23
26
  }]
24
27
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbGFzdC1wYWdlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3BpcGVzL3BhZ2luYXRpb24vdG90YWwtcGFnZXMvaXMtbGFzdC1wYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsV0FBbUIsRUFBRSxVQUFrQixFQUFFLFlBQW9CO1FBQ3JFLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksVUFBVSxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1NBQzNHO1FBQ0QsT0FBTyxXQUFXLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7aUhBWlUsb0JBQW9COytHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ0lzTGFzdFBhZ2UnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ25pYXRpb25Jc0xhc3RQYWdlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSwgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgbGFzdCBwYWdlLiBPdGhlcndpc2UsIHJldHVybiBmYWxzZS5cbiAgICogQHBhcmFtIGN1cnJlbnRQYWdlXG4gICAqIEBwYXJhbSB0b3RhbEl0ZW1zXG4gICAqIEBwYXJhbSBpdGVtc1BlclBhZ2VcbiAgICovXG4gIHRyYW5zZm9ybShjdXJyZW50UGFnZTogbnVtYmVyLCB0b3RhbEl0ZW1zOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCEoY3VycmVudFBhZ2UgPj0gMCAmJiB0b3RhbEl0ZW1zID49IDAgJiYgaXRlbXNQZXJQYWdlID49IDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1cnJlbnRQYWdlIG9yIHRvdGFsSXRlbXMgb3IgaXRlbXNQZXJQYWdlIGlzL2FyZSBtaXNzaW5nIGluIFBhZ25pYXRpb25Jc0xhc3RQYWdlIHBpcGUuJyk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UGFnZSA9PT0gTWF0aC5jZWlsKHRvdGFsSXRlbXMgLyBpdGVtc1BlclBhZ2UpO1xuICB9XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbGFzdC1wYWdlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93ei1pbWctbWFuYWdlci9zcmMvbGliL3BpcGVzL3BhZ2luYXRpb24vdG90YWwtcGFnZXMvaXMtbGFzdC1wYWdlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsV0FBbUIsRUFBRSxVQUFrQixFQUFFLFlBQW9CO1FBQ3JFLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksVUFBVSxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1NBQzNHO1FBQ0QsT0FBTyxXQUFXLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7aUhBZlUsb0JBQW9COytHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ0lzTGFzdFBhZ2UnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ25pYXRpb25Jc0xhc3RQYWdlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdHJ1ZSwgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgbGFzdCBwYWdlLiBPdGhlcndpc2UsIHJldHVybiBmYWxzZS5cbiAgICogQHBhcmFtIGN1cnJlbnRQYWdlXG4gICAqIEBwYXJhbSB0b3RhbEl0ZW1zXG4gICAqIEBwYXJhbSBpdGVtc1BlclBhZ2VcbiAgICovXG4gIHRyYW5zZm9ybShjdXJyZW50UGFnZTogbnVtYmVyLCB0b3RhbEl0ZW1zOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc29sZS5sb2coJ2N1cnJlbnRQYWdlJywgY3VycmVudFBhZ2UpO1xuICAgIGNvbnNvbGUubG9nKCd0b3RhbEl0ZW1zJywgdG90YWxJdGVtcyk7XG4gICAgY29uc29sZS5sb2coJ2l0ZW1zUGVyUGFnZScsIGl0ZW1zUGVyUGFnZSk7XG4gICAgaWYgKCEoY3VycmVudFBhZ2UgPj0gMCAmJiB0b3RhbEl0ZW1zID49IDAgJiYgaXRlbXNQZXJQYWdlID49IDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1cnJlbnRQYWdlIG9yIHRvdGFsSXRlbXMgb3IgaXRlbXNQZXJQYWdlIGlzL2FyZSBtaXNzaW5nIGluIFBhZ25pYXRpb25Jc0xhc3RQYWdlIHBpcGUuJyk7XG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50UGFnZSA9PT0gTWF0aC5jZWlsKHRvdGFsSXRlbXMgLyBpdGVtc1BlclBhZ2UpO1xuICB9XG59XG4iXX0=
@@ -2075,6 +2075,9 @@ class PagniationIsLastPage {
2075
2075
  * @param itemsPerPage
2076
2076
  */
2077
2077
  transform(currentPage, totalItems, itemsPerPage) {
2078
+ console.log('currentPage', currentPage);
2079
+ console.log('totalItems', totalItems);
2080
+ console.log('itemsPerPage', itemsPerPage);
2078
2081
  if (!(currentPage >= 0 && totalItems >= 0 && itemsPerPage >= 0)) {
2079
2082
  throw new Error('currentPage or totalItems or itemsPerPage is/are missing in PagniationIsLastPage pipe.');
2080
2083
  }
@@ -3330,6 +3333,7 @@ class ImagesViewComponent {
3330
3333
  this.selectImgSelected();
3331
3334
  this.length = this.isTotalRetrieved ? this.length : data.totalRecords;
3332
3335
  this.tableFilters.totalItems = this.isTotalRetrieved ? this.tableFilters.totalItems : data.totalRecords;
3336
+ console.log('this.tableFilters.totalItems 1', this.tableFilters.totalItems);
3333
3337
  this.tableFilters.itemsPerPage = this.tableFilters.itemsPerPage ? this.tableFilters.itemsPerPage : this.pageSize;
3334
3338
  // Display Pexels if no result
3335
3339
  if (data.totalRecords === 0) {
@@ -3356,6 +3360,7 @@ class ImagesViewComponent {
3356
3360
  this.isTotalRetrieved = true;
3357
3361
  this.length = total;
3358
3362
  this.tableFilters.totalItems = total;
3363
+ console.log('this.tableFilters.totalItems 1', this.tableFilters.totalItems);
3359
3364
  },
3360
3365
  error: error => {
3361
3366
  //this.alertService.openAlert(this.errorGetTotalImg);
@@ -4121,4 +4126,3 @@ class ImgManagerConfigDto {
4121
4126
 
4122
4127
  export { ApiService, CanvaButtonApi, CanvaService, ImageNotFoundService, ImgApiDto, ImgManagerConfigDto, ImgManagerService, ImgSelectionService, RenamePictureService, WzImgManagerComponent, WzImgManagerModule };
4123
4128
  //# sourceMappingURL=wizishop-img-manager.mjs.map
4124
- //# sourceMappingURL=wizishop-img-manager.mjs.map