myrta-ui 17.1.29 → 17.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -115,8 +115,8 @@ export class PdfViewerComponent {
115
115
  }
116
116
  });
117
117
  }
118
- onPageChange($event) {
119
- this.page = $event || 1;
118
+ onPageChange(event) {
119
+ this.page = event || 1;
120
120
  }
121
121
  onNextPage() {
122
122
  if (this.page < this.pageCount) {
@@ -149,13 +149,13 @@ export class PdfViewerComponent {
149
149
  onZoomLevelSelect(item) {
150
150
  this.selectedZoom = item;
151
151
  }
152
- onZoomChange($event) {
153
- const existingOption = this.zoomOptions.find(x => x.value === $event);
152
+ onZoomChange(event) {
153
+ const existingOption = this.zoomOptions.find(x => x.value === event);
154
154
  if (existingOption) {
155
155
  this.selectedZoom = { ...existingOption };
156
156
  return;
157
157
  }
158
- const fixedValue = Math.round(Number($event));
158
+ const fixedValue = Math.round(Number(event));
159
159
  this.selectedZoom = { value: fixedValue, label: `${fixedValue}%` };
160
160
  }
161
161
  onRotate(direction) {
@@ -215,15 +215,16 @@ export class PdfViewerComponent {
215
215
  findPrevious() {
216
216
  this._pdfViewerService.findPrevious();
217
217
  }
218
- onUpdateMatchCase($event) {
219
- this.totalFound = $event.total;
220
- this.currentFind = $event.current;
218
+ onUpdateMatchCase(event) {
219
+ this.totalFound = event.total;
220
+ this.currentFind = event.current;
221
+ this.searchQuery = event.query;
221
222
  }
222
- onFindStateChanged($event) {
223
- this.findState = $event;
223
+ onFindStateChanged(event) {
224
+ this.findState = event;
224
225
  }
225
- onSidebarVisibleChange($event) {
226
- this.sidebarVisible = $event;
226
+ onSidebarVisibleChange(event) {
227
+ this.sidebarVisible = event;
227
228
  }
228
229
  onHandToolClick() {
229
230
  this.handTool = !this.handTool;
@@ -326,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
326
327
  type: HostListener,
327
328
  args: ['document:keydown', ['$event']]
328
329
  }] } });
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFLTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCw2QkFBNkIsRUFHOUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQWMsV0FBVyxFQUFnQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBc0I3RSxNQUFNLE9BQU8sa0JBQWtCO0lBaUVuQjtJQUNBO0lBQ0E7SUFDQTtJQW5FSCxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBYyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3pDLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDdkIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1Qsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQzdCLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDdEIsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLFlBQVksR0FBOEMsRUFBQyxLQUFLLEVBQUUsTUFB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ZUFBZSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQzNEOzRCQUNELEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDOzRCQUNuRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs0QkFDcEQsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7eUJBQ3JELENBQUM7cUJBQ0gsYUFDVSxDQUFDLGNBQWMsQ0FBQyxtQkFDVix1QkFBdUIsQ0FBQyxNQUFNO2lMQTRCdEMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFb0MsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyw2QkFBNkI7Z0JBQ2pCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFHckIsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbHRpcC9zZXJ2aWNlcy90b29sdGlwLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEZpbmRSZXN1bHRNYXRjaGVzQ291bnQsXHJcbiAgRmluZFN0YXRlLFxyXG4gIE5neEV4dGVuZGVkUGRmVmlld2VyQ29tcG9uZW50LFxyXG4gIE5neEV4dGVuZGVkUGRmVmlld2VyU2VydmljZSxcclxuICBQYWdlc0xvYWRlZEV2ZW50XHJcbn0gZnJvbSAnbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXInO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxudHlwZSBSb3RhdGlvblR5cGUgPSAwIHwgOTAgfCAxODAgfCAyNzA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1wZGYtdmlld2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGRmLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcGRmLXZpZXdlci5jb21wb25lbnQubGVzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZScsIFtcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJ29wZW4nLFxyXG4gICAgICAgIHN0eWxlKHtoZWlnaHQ6ICcqJywgcGFkZGluZzogJyonLCAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnfSlcclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoJ2Nsb3NlZCcsIHN0eWxlKHtoZWlnaHQ6IDAsIHBhZGRpbmc6IDAsICdtYXJnaW4tYm90dG9tJzogMH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgICAgdHJhbnNpdGlvbignY2xvc2VkID0+IG9wZW4nLCBbYW5pbWF0ZSgnMC41cyBlYXNlJyldKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVG9vbHRpcFNlcnZpY2VdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGRmVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIHB1YmxpYyBzZWFyY2hRdWVyeSA9ICcnO1xyXG4gIHB1YmxpYyBmaW5kU3RhdGU6IEZpbmRTdGF0ZSA9IEZpbmRTdGF0ZS5QRU5ESU5HO1xyXG4gIHB1YmxpYyB0b3RhbEZvdW5kOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBjdXJyZW50RmluZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGFnZSA9IDE7XHJcbiAgcHVibGljIGlzU2VhcmNoUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgcHVibGljIHNpZGViYXJWaXNpYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgcGFnZUNvdW50ID0gMTtcclxuICBwdWJsaWMgc2VsZWN0ZWRab29tOiB7IHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGxhYmVsOiBzdHJpbmcgfSA9IHt2YWx1ZTogJ2F1dG8nLCBsYWJlbDogJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4J307XHJcbiAgcHVibGljIHpvb21PcHRpb25zID0gW1xyXG4gICAge3ZhbHVlOiAnYXV0bycsIGxhYmVsOiAn0JDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LgnfSxcclxuICAgIHt2YWx1ZTogJ3BhZ2UtYWN0dWFsJywgbGFiZWw6ICfQoNC10LDQu9GM0L3Ri9C5INGA0LDQt9C80LXRgCd9LFxyXG4gICAge3ZhbHVlOiAncGdlLWZpdCcsIGxhYmVsOiAn0J/QviDRgNCw0LfQvNC10YDRgyDRgdGC0YDQsNC90LjRhtGLJ30sXHJcbiAgICB7dmFsdWU6ICdwYWdlLXdpZHRoJywgbGFiZWw6ICfQn9C+INGI0LjRgNC40L3QtSDRgdGC0YDQsNC90LjRhtGLJ30sXHJcbiAgICB7dmFsdWU6IDUwLCBsYWJlbDogJzUwJSd9LFxyXG4gICAge3ZhbHVlOiAxMDAsIGxhYmVsOiAnMTAwJSd9LFxyXG4gICAge3ZhbHVlOiAxMjUsIGxhYmVsOiAnMTI1JSd9LFxyXG4gICAge3ZhbHVlOiAxNTAsIGxhYmVsOiAnMTUwJSd9LFxyXG4gICAge3ZhbHVlOiAyMDAsIGxhYmVsOiAnMjAwJSd9LFxyXG4gICAge3ZhbHVlOiAzMDAsIGxhYmVsOiAnMzAwJSd9LFxyXG4gICAge3ZhbHVlOiA0MDAsIGxhYmVsOiAnNDAwJSd9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyByb3RhdGlvbjogUm90YXRpb25UeXBlID0gMDtcclxuXHJcbiAgQElucHV0KCkgc2hvd1NpZGViYXJCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dIYW5kVG9vbEJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhhbmRUb29sID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RmluZGJhckJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1JvdGF0ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd1ByaW50QnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RG93bmxvYWRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dFeHBhbmRCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRab29tOiBudW1iZXIgfCAnYXV0bycgfCAncGFnZS1hY3R1YWwnIHwgJ3BnZS1maXQnIHwgJ3BhZ2Utd2lkdGgnID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZU5hbWUgPSAnJztcclxuICBASW5wdXQoKSBzcmMgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZChOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudCkgcGRmVmlld2VyITogTmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZmluZE1lbnUnKSBmaW5kTWVudTogRWxlbWVudFJlZiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdwJyAmJiAhdGhpcy5zaG93UHJpbnRCdXR0b24pIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpZ25vcmVLZXlzKCk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGlnbm9yZWRLZXlzID0gW107XHJcblxyXG4gICAgaWYgKCF0aGlzLnNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgaWdub3JlZEtleXMucHVzaCgnUicsICdTaGlmdCtSJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2hvd0Rvd25sb2FkQnV0dG9uKSB7XHJcbiAgICAgIGlnbm9yZWRLZXlzLnB1c2goJ0NUUkwrUycpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNob3dTaWRlYmFyQnV0dG9uKSB7XHJcbiAgICAgIGlnbm9yZWRLZXlzLnB1c2goJ0Y0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlnbm9yZWRLZXlzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wZGZWaWV3ZXJTZXJ2aWNlOiBOZ3hFeHRlbmRlZFBkZlZpZXdlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnRcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0Wm9vbSddICYmIGNoYW5nZXNbJ2RlZmF1bHRab29tJ10uY3VycmVudFZhbHVlICE9IGNoYW5nZXNbJ2RlZmF1bHRab29tJ10ucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICB0aGlzLmluaXRab29tKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0Wm9vbSgpIHtcclxuICAgIGNvbnN0IGV4aXN0aW5nVmFsdWUgPSB0aGlzLnpvb21PcHRpb25zLmZpbmQoeCA9PiB4LnZhbHVlID09PSB0aGlzLmRlZmF1bHRab29tKTtcclxuXHJcbiAgICBpZiAoZXhpc3RpbmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHsuLi5leGlzdGluZ1ZhbHVlfTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0ge3ZhbHVlOiB0aGlzLmRlZmF1bHRab29tLCBsYWJlbDogYCR7dGhpcy5kZWZhdWx0Wm9vbX0lYH07XHJcbiAgfVxyXG5cclxuICBpbml0U2VhcmNoKCkge1xyXG4gICAgaWYgKHRoaXMuc2hvd0ZpbmRiYXJCdXR0b24pIHtcclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2YnICYmIGV2ZW50LmN0cmxLZXkpIHtcclxuICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFNlYXJjaCgpO1xyXG4gICAgdGhpcy5pbml0Wm9vbSgpO1xyXG5cclxuICAgIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZSkge1xyXG4gICAgICAgIGNvbnN0IGlzSW5NZW51ID0gdGhpcy5maW5kTWVudT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXHJcbiAgICAgICAgICB8fCAoZXZlbnQudGFyZ2V0IGFzIGFueSkuaWQgPT09ICdmaW5kTmV4dCdcclxuICAgICAgICAgIHx8IChldmVudC50YXJnZXQgYXMgYW55KS5pZCA9PT0gJ2ZpbmRQcmV2aW91cyc7XHJcblxyXG4gICAgICAgIGNvbnN0IGlzRmluZEJ1dHRvbiA9IChldmVudC50YXJnZXQgYXMgYW55KS5jbGFzc0xpc3QuY29udGFpbnMoJ21yeC1wZGYtdmlld2VyX19maW5kLWJ1dHRvbicpO1xyXG5cclxuICAgICAgICBpZiAoIWlzSW5NZW51ICYmICFpc0ZpbmRCdXR0b24pIHtcclxuICAgICAgICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlQ2hhbmdlKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2UgPSAkZXZlbnQgfHwgMTtcclxuICB9XHJcblxyXG4gIG9uTmV4dFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5wYWdlIDwgdGhpcy5wYWdlQ291bnQpIHtcclxuICAgICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlICsgMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTGFzdFBhZ2UoKSB7XHJcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLnBhZ2VDb3VudDtcclxuICB9XHJcblxyXG4gIG9uUGFnZXNMb2FkZWQoJGV2ZW50OiBQYWdlc0xvYWRlZEV2ZW50KSB7XHJcbiAgICBjb25zdCB2aWV3T3V0bGluZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2aWV3T3V0bGluZScpO1xyXG4gICAgY29uc3Qgdmlld1RodW1ibmFpbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN2aWV3VGh1bWJuYWlsJyk7XHJcblxyXG4gICAgdGhpcy5wYWdlQ291bnQgPSAkZXZlbnQucGFnZXNDb3VudDtcclxuXHJcbiAgICBpZiAodmlld091dGxpbmUpIHtcclxuICAgICAgKHZpZXdPdXRsaW5lIGFzIGFueSkudGl0bGUgPSAnJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh2aWV3VGh1bWJuYWlsLCAnZGlzcGxheScsICdub25lJyk7XHJcbiAgICBpZiAodmlld1RodW1ibmFpbCkge1xyXG5cclxuICAgICAgKHZpZXdUaHVtYm5haWwgYXMgYW55KS50aXRsZSA9ICd0ZXN0JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHpvb21DbGljayhpbmNyZWFzZTogYm9vbGVhbikge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IDEwMCwgbGFiZWw6ICcxMDAlJ307XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGluY3JlYXNlID8gdGhpcy5zZWxlY3RlZFpvb20udmFsdWUgKz0gMjAgOiB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSAtPSAyMDtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogbmV3VmFsdWUsIGxhYmVsOiBgJHtuZXdWYWx1ZX0lYH07XHJcbiAgfVxyXG5cclxuICBvblpvb21MZXZlbFNlbGVjdChpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0gaXRlbTtcclxuICB9XHJcblxyXG4gIG9uWm9vbUNoYW5nZSgkZXZlbnQ6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgY29uc3QgZXhpc3RpbmdPcHRpb24gPSB0aGlzLnpvb21PcHRpb25zLmZpbmQoeCA9PiB4LnZhbHVlID09PSAkZXZlbnQpO1xyXG5cclxuICAgIGlmIChleGlzdGluZ09wdGlvbikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHsuLi5leGlzdGluZ09wdGlvbn07XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaXhlZFZhbHVlID0gTWF0aC5yb3VuZChOdW1iZXIoJGV2ZW50KSk7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7dmFsdWU6IGZpeGVkVmFsdWUsIGxhYmVsOiBgJHtmaXhlZFZhbHVlfSVgfTtcclxuICB9XHJcblxyXG4gIG9uUm90YXRlKGRpcmVjdGlvbjogbnVtYmVyKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMucm90YXRpb247XHJcblxyXG4gICAgaWYgKGRpcmVjdGlvbiA8IDApIHtcclxuICAgICAgZGF0YSAtPSA5MDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRhdGEgKz0gOTA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEgPj0gMzYwKSB7XHJcbiAgICAgIHRoaXMucm90YXRpb24gPSBkYXRhIC0gMzYwIGFzIFJvdGF0aW9uVHlwZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChkYXRhIDwgMCkge1xyXG4gICAgICB0aGlzLnJvdGF0aW9uID0gMzYwICsgZGF0YSBhcyBSb3RhdGlvblR5cGU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvdGF0aW9uID0gZGF0YSBhcyBSb3RhdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICBvblByaW50Q2xpY2soKSB7XHJcbiAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLnByaW50KCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHByaW50RGlhbG9nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGlhbG9nI3ByaW50U2VydmljZURpYWxvZycpO1xyXG4gICAgICBjb25zdCBwcm9ncmVzc1RleHQgPSBwcmludERpYWxvZz8ucXVlcnlTZWxlY3RvcignLnJvdyBzcGFuJyk7XHJcbiAgICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IHByaW50RGlhbG9nPy5xdWVyeVNlbGVjdG9yKCcjcHJpbnRDYW5jZWwgc3BhbicpO1xyXG5cclxuICAgICAgaWYgKHByb2dyZXNzVGV4dCkge1xyXG4gICAgICAgIHByb2dyZXNzVGV4dC50ZXh0Q29udGVudCA9ICfQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNC+0LrRg9C80LXQvdGC0LAg0Log0L/QtdGH0LDRgtC4Li4uJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNhbmNlbEJ1dHRvbikge1xyXG4gICAgICAgIGNhbmNlbEJ1dHRvbi50ZXh0Q29udGVudCA9ICfQntGC0LzQtdC90LAnO1xyXG4gICAgICB9XHJcbiAgICB9LCAxKTtcclxuICB9XHJcblxyXG4gIG9uU2lkZWJhclZpZXdDbGljaygpIHtcclxuICAgIHRoaXMuc2lkZWJhclZpc2libGUgPSAhdGhpcy5zaWRlYmFyVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kTW9kZUNsaWNrKCkge1xyXG4gICAgY29uc3QgcGRmVmlld2VyQXBwbGljYXRpb24gPSAod2luZG93IGFzIGFueSkuUERGVmlld2VyQXBwbGljYXRpb247XHJcblxyXG4gICAgaWYgKHBkZlZpZXdlckFwcGxpY2F0aW9uPy5wZGZWaWV3ZXIpIHtcclxuICAgICAgcGRmVmlld2VyQXBwbGljYXRpb24ucmVxdWVzdFByZXNlbnRhdGlvbk1vZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2xpY2soKSB7XHJcbiAgICB0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlID0gIXRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGU7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCgkZXZlbnQ6IHN0cmluZykge1xyXG4gICAgaWYgKCRldmVudCkge1xyXG4gICAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmZpbmQoJGV2ZW50LCB7aGlnaGxpZ2h0QWxsOiB0cnVlfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgnJywge30pO1xyXG4gIH1cclxuXHJcbiAgZmluZE5leHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmZpbmROZXh0KCk7XHJcbiAgfVxyXG5cclxuICBmaW5kUHJldmlvdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmZpbmRQcmV2aW91cygpO1xyXG4gIH1cclxuXHJcbiAgb25VcGRhdGVNYXRjaENhc2UoJGV2ZW50OiBGaW5kUmVzdWx0TWF0Y2hlc0NvdW50KSB7XHJcbiAgICB0aGlzLnRvdGFsRm91bmQgPSAkZXZlbnQudG90YWw7XHJcbiAgICB0aGlzLmN1cnJlbnRGaW5kID0gJGV2ZW50LmN1cnJlbnQ7XHJcbiAgfVxyXG5cclxuICBvbkZpbmRTdGF0ZUNoYW5nZWQoJGV2ZW50OiBGaW5kU3RhdGUpIHtcclxuICAgIHRoaXMuZmluZFN0YXRlID0gJGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgb25TaWRlYmFyVmlzaWJsZUNoYW5nZSgkZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2lkZWJhclZpc2libGUgPSAkZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRUb29sQ2xpY2soKSB7XHJcbiAgICB0aGlzLmhhbmRUb29sID0gIXRoaXMuaGFuZFRvb2w7XHJcbiAgfVxyXG5cclxuICBvbkRvd25sb2FkQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kb3dubG9hZEZpbGVOYW1lKSB7XHJcbiAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSh0aGlzLmRvd25sb2FkRmlsZU5hbWUpLnRoZW4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuXHJcbiAgICAgIGhlYWRlcnMuc2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJywgJ9Cf0LXRh9Cw0YLQvdCw0Y8g0YTQvtGA0LzQsCDQt9Cw0Y/QstC60Lgg0YHQviDRiNGC0LDQvNC/0L7QvC5wZGYnKTtcclxuXHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0KHRoaXMuc3JjLCB7cmVzcG9uc2VUeXBlOiAnYmxvYicsIG9ic2VydmU6ICdyZXNwb25zZScsfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPEJsb2I+KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb24gPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpO1xyXG5cclxuICAgICAgICAgIGlmICghY29udGVudERpc3Bvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSgnZG9jdW1lbnQucGRmJykudGhlbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgZW5jb2RpbmdGaWxlTmFtZSA9IGNvbnRlbnREaXNwb3NpdGlvbi5tYXRjaCgvZmlsZW5hbWVcXCpcXHMqPVxccyooW147XSspL2kpO1xyXG5cclxuICAgICAgICAgIGlmIChlbmNvZGluZ0ZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gZW5jb2RpbmdGaWxlTmFtZVsxXS5zcGxpdCgnXFwnXFwnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZW5jb2RpbmcgPSBwYXJ0c1swXS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gcGFydHNbMV07XHJcblxyXG4gICAgICAgICAgICAgIGlmIChlbmNvZGluZyA9PT0gJ3V0Zi04Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlKGRlY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZSkpLnRoZW4oKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBzaW1wbGVGaWxlTmFtZSA9IGNvbnRlbnREaXNwb3NpdGlvbi5tYXRjaCgvZmlsZW5hbWVcXHMqPVxccypbXCInXT8oW147XCInXSspL2kpO1xyXG5cclxuICAgICAgICAgIGlmIChzaW1wbGVGaWxlTmFtZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUoc2ltcGxlRmlsZU5hbWVbMV0pLnRoZW4oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSgnZG9jdW1lbnQucGRmJykudGhlbigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZG93bmxvYWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBhd2FpdCB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmdldEN1cnJlbnREb2N1bWVudEFzQmxvYigpO1xyXG4gICAgY29uc3Qgb2JqZWN0VXJsOiBzdHJpbmcgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcblxyXG4gICAgYS5ocmVmID0gb2JqZWN0VXJsO1xyXG4gICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcblxyXG4gICAgYS5jbGljaygpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcblxyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2N1c3RvbVRvb2xiYXI+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX190b29sYmFyXCIgaWQ9XCJ0b29sYmFyVmlld2VyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGctMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGctMVwiPlxyXG4gICAgICAgIEBpZiAoc2hvd1NpZGViYXJCdXR0b24pIHtcclxuICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1idXJnZXInXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgKG1yeENsaWNrKT1cIm9uU2lkZWJhclZpZXdDbGljaygpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtcngtaWNvbi1idXR0b24tLXRvZ2dsZWQnOiBzaWRlYmFyVmlzaWJsZX1cIlxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGML9GB0LrRgNGL0YLRjCDQsdC+0LrQvtCy0YPRjiDQv9Cw0L3QtdC70YwnXCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoc2hvd0ZpbmRiYXJCdXR0b24pIHtcclxuICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1zZWFyY2gnXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgKG1yeENsaWNrKT1cIm9uU2VhcmNoQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTIgbXJ4LXBkZi12aWV3ZXJfX2ZpbmQtYnV0dG9uJ1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbXJ4LWljb24tYnV0dG9uLS10b2dnbGVkJzogaXNTZWFyY2hQYW5lbFZpc2libGV9XCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1J1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKGlzU2VhcmNoUGFuZWxWaXNpYmxlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX19maW5kYmFyIGctMVwiICNmaW5kTWVudT5cclxuICAgICAgICAgIDxtcngtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCJmaW5kU3RhdGUgPT09IDEgPyAnbXJ4LWlucHV0LWVycm9yJyA6JycrJ3NlYXJjaFRleHQnXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQndCw0LnRgtC4INCyINC00L7QutGD0LzQtdC90YLQtS4uLlwiXHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFF1ZXJ5XCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9tcngtaW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidwLTEnXCJcclxuICAgICAgICAgICAgICAobXJ4Q2xpY2spPVwiZmluZFByZXZpb3VzKClcIlxyXG4gICAgICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWNoZXZyb24tcmlnaHQnXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3AtMSdcIlxyXG4gICAgICAgICAgICAgIChtcnhDbGljayk9XCJmaW5kTmV4dCgpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBAaWYgKGZpbmRTdGF0ZSA9PT0gMCB8fCBmaW5kU3RhdGUgPT09IDIpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX19maW5kYmFyLXJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgIHt7IGN1cnJlbnRGaW5kIH19INC40Lcge3sgdG90YWxGb3VuZCB9fSDRgdC+0LLQv9Cw0LTQtdC90LjQuVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoZmluZFN0YXRlID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1uZWdhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vd3JhcFwiPtCk0YDQsNC30LAg0L3QtSDQvdCw0LnQtNC10L3QsDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJfX3Rvb2xiYXItLW5hdlwiPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24taW4tdGhlLWVuZC1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C10YDQstCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25QYWdlQ2hhbmdlKDEpXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLWxlZnQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0YDQtdC00YvQtNGD0YnQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUGFnZUNoYW5nZShwYWdlIC0gMSB8fCAxKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIid3cHgtNTYnXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cInBhZ2VcIlxyXG4gICAgICAgICAgW251bWJlclR5cGVdPVwiJ2ludCdcIlxyXG4gICAgICAgICAgW21pblZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgW21heFZhbHVlXT1cInBhZ2VDb3VudFwiXHJcbiAgICAgICAgICBbaXNBdXRvQ29ycmVjdGluZ1ZhbHVlXT1cInRydWVcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+0LjQtyB7eyBwYWdlQ291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLXJpZ2h0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbk5leHRQYWdlKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Ch0LvQtdC00YPRjtGJ0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1pbi10aGUtZW5kLXJpZ2h0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkxhc3RQYWdlKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7RgdC70LXQtNC90Y/RjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayhmYWxzZSlcIlxyXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tbWludXMnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cIifQo9C80LXQvdGM0YjQuNGC0YwnXCJcclxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayh0cnVlKVwiXHJcbiAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1wbHVzJ1wiXHJcbiAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICBbdG9vbHRpcF09XCIn0KPQstC10LvQuNGH0LjRgtGMJ1wiXHJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3dweC0xNTYnXCJcclxuICAgICAgICBbaXRlbXNdPVwiem9vbU9wdGlvbnNcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uWm9vbUxldmVsU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkWm9vbVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICA8L21yeC1pbnB1dC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgIEBpZiAoc2hvd0hhbmRUb29sQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1mYy10ZXh0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J21yeC1pY29uLWJ1dHRvbi0tdG9nZ2xlZCc6ICFoYW5kVG9vbH1cIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25IYW5kVG9vbENsaWNrKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLXJlbG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoMSlcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7QstC10YDQvdGD0YLRjCDQv9C+INGH0LDRgdC+0LLQvtC5INGB0YLRgNC10LvQutC1J1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93Um90YXRlQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1yZXR1cm4nXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUm90YXRlKC0xKVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QvtCy0LXRgNC90YPRgtGMINC/0YDQvtGC0LjQsiDRh9Cw0YHQvtCy0L7QuSDRgdGC0YDQtdC70LrQuCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0V4cGFuZEJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYXJyb3ctZXhwYW5kJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkV4cGFuZE1vZGVDbGljaygpXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGMINC90LAg0LLQtdGB0Ywg0Y3QutGA0LDQvSdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd1ByaW50QnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1wcmludCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QtdGH0LDRgtGMJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblByaW50Q2xpY2soKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0Rvd25sb2FkQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1kb3dubG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0KHQutCw0YfQsNGC0YwnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uRG93bmxvYWRDbGljaygpXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5neC1leHRlbmRlZC1wZGYtdmlld2VyXHJcbiAgI3BkZlZpZXdlclxyXG4gIGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJcIlxyXG4gIFtzcmNdPVwic3JjXCJcclxuICBbcGFnZV09XCJwYWdlXCJcclxuICBbc2lkZWJhclZpc2libGVdPVwic2hvd1NpZGViYXJCdXR0b24gJiYgc2lkZWJhclZpc2libGVcIlxyXG4gIFtjdXN0b21Ub29sYmFyXT1cImN1c3RvbVRvb2xiYXJcIlxyXG4gIFtzaG93U2lkZWJhckJ1dHRvbl09XCJ0cnVlXCJcclxuICBbc2hvd1JvdGF0ZUJ1dHRvbl09XCJzaG93Um90YXRlQnV0dG9uXCJcclxuICBbc2hvd0Rvd25sb2FkQnV0dG9uXT1cInNob3dEb3dubG9hZEJ1dHRvblwiXHJcbiAgW2lnbm9yZUtleXNdPVwiaWdub3JlS2V5c1wiXHJcbiAgW3pvb21dPVwic2VsZWN0ZWRab29tLnZhbHVlXCJcclxuICBbdGV4dExheWVyXT1cInRydWVcIlxyXG4gIFtoYW5kVG9vbF09XCJoYW5kVG9vbFwiXHJcbiAgW3JvdGF0aW9uXT1cInJvdGF0aW9uXCJcclxuICAoem9vbUNoYW5nZSk9XCJvblpvb21DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gIChwYWdlc0xvYWRlZCk9XCJvblBhZ2VzTG9hZGVkKCRldmVudClcIlxyXG4gICh1cGRhdGVGaW5kU3RhdGUpPVwib25GaW5kU3RhdGVDaGFuZ2VkKCRldmVudClcIlxyXG4gIChzaWRlYmFyVmlzaWJsZUNoYW5nZSk9XCJvblNpZGViYXJWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxyXG4gICh1cGRhdGVGaW5kTWF0Y2hlc0NvdW50KT1cIm9uVXBkYXRlTWF0Y2hDYXNlKCRldmVudClcIlxyXG4+PC9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcj5cclxuIl19
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvcGRmLXZpZXdlci9wZGYtdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFLTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUVMLFNBQVMsRUFDVCw2QkFBNkIsRUFHOUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQWMsV0FBVyxFQUFnQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7O0FBc0I3RSxNQUFNLE9BQU8sa0JBQWtCO0lBaUVuQjtJQUNBO0lBQ0E7SUFDQTtJQW5FSCxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLFNBQVMsR0FBYyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3pDLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDdkIsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUN4QixJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ1Qsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQzdCLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDdEIsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNkLFlBQVksR0FBOEMsRUFBQyxLQUFLLEVBQUUsTUFB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LEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUMzRDs0QkFDRCxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzs0QkFDbkUsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7NEJBQ3BELFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO3lCQUNyRCxDQUFDO3FCQUNILGFBQ1UsQ0FBQyxjQUFjLENBQUMsbUJBQ1YsdUJBQXVCLENBQUMsTUFBTTtpTEE0QnRDLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRW9DLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsNkJBQTZCO2dCQUNqQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBR3JCLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUb29sdGlwU2VydmljZSB9IGZyb20gJy4uL3Rvb2x0aXAvc2VydmljZXMvdG9vbHRpcC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGaW5kUmVzdWx0TWF0Y2hlc0NvdW50LFxyXG4gIEZpbmRTdGF0ZSxcclxuICBOZ3hFeHRlbmRlZFBkZlZpZXdlckNvbXBvbmVudCxcclxuICBOZ3hFeHRlbmRlZFBkZlZpZXdlclNlcnZpY2UsXHJcbiAgUGFnZXNMb2FkZWRFdmVudFxyXG59IGZyb20gJ25neC1leHRlbmRlZC1wZGYtdmlld2VyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbnR5cGUgUm90YXRpb25UeXBlID0gMCB8IDkwIHwgMTgwIHwgMjcwO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtcGRmLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BkZi12aWV3ZXIuY29tcG9uZW50Lmxlc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdvcGVuQ2xvc2UnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICdvcGVuJyxcclxuICAgICAgICBzdHlsZSh7aGVpZ2h0OiAnKicsIHBhZGRpbmc6ICcqJywgJ21hcmdpbi1ib3R0b20nOiAnOHB4J30pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKCdjbG9zZWQnLCBzdHlsZSh7aGVpZ2h0OiAwLCBwYWRkaW5nOiAwLCAnbWFyZ2luLWJvdHRvbSc6IDB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ29wZW4gPT4gY2xvc2VkJywgW2FuaW1hdGUoJzAuNXMgZWFzZScpXSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW2FuaW1hdGUoJzAuNXMgZWFzZScpXSksXHJcbiAgICBdKSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1Rvb2x0aXBTZXJ2aWNlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZlZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBwdWJsaWMgc2VhcmNoUXVlcnkgPSAnJztcclxuICBwdWJsaWMgZmluZFN0YXRlOiBGaW5kU3RhdGUgPSBGaW5kU3RhdGUuUEVORElORztcclxuICBwdWJsaWMgdG90YWxGb3VuZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgY3VycmVudEZpbmQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHBhZ2UgPSAxO1xyXG4gIHB1YmxpYyBpc1NlYXJjaFBhbmVsVmlzaWJsZSA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaWRlYmFyVmlzaWJsZSA9IHRydWU7XHJcbiAgcHVibGljIHBhZ2VDb3VudCA9IDE7XHJcbiAgcHVibGljIHNlbGVjdGVkWm9vbTogeyB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBsYWJlbDogc3RyaW5nIH0gPSB7dmFsdWU6ICdhdXRvJywgbGFiZWw6ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCd9O1xyXG4gIHB1YmxpYyB6b29tT3B0aW9ucyA9IFtcclxuICAgIHt2YWx1ZTogJ2F1dG8nLCBsYWJlbDogJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4J30sXHJcbiAgICB7dmFsdWU6ICdwYWdlLWFjdHVhbCcsIGxhYmVsOiAn0KDQtdCw0LvRjNC90YvQuSDRgNCw0LfQvNC10YAnfSxcclxuICAgIHt2YWx1ZTogJ3BnZS1maXQnLCBsYWJlbDogJ9Cf0L4g0YDQsNC30LzQtdGA0YMg0YHRgtGA0LDQvdC40YbRiyd9LFxyXG4gICAge3ZhbHVlOiAncGFnZS13aWR0aCcsIGxhYmVsOiAn0J/QviDRiNC40YDQuNC90LUg0YHRgtGA0LDQvdC40YbRiyd9LFxyXG4gICAge3ZhbHVlOiA1MCwgbGFiZWw6ICc1MCUnfSxcclxuICAgIHt2YWx1ZTogMTAwLCBsYWJlbDogJzEwMCUnfSxcclxuICAgIHt2YWx1ZTogMTI1LCBsYWJlbDogJzEyNSUnfSxcclxuICAgIHt2YWx1ZTogMTUwLCBsYWJlbDogJzE1MCUnfSxcclxuICAgIHt2YWx1ZTogMjAwLCBsYWJlbDogJzIwMCUnfSxcclxuICAgIHt2YWx1ZTogMzAwLCBsYWJlbDogJzMwMCUnfSxcclxuICAgIHt2YWx1ZTogNDAwLCBsYWJlbDogJzQwMCUnfSxcclxuICBdO1xyXG5cclxuICBwdWJsaWMgcm90YXRpb246IFJvdGF0aW9uVHlwZSA9IDA7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dTaWRlYmFyQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93SGFuZFRvb2xCdXR0b24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBoYW5kVG9vbCA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0ZpbmRiYXJCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dSb3RhdGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dQcmludEJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgc2hvd0Rvd25sb2FkQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RXhwYW5kQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkZWZhdWx0Wm9vbTogbnVtYmVyIHwgJ2F1dG8nIHwgJ3BhZ2UtYWN0dWFsJyB8ICdwZ2UtZml0JyB8ICdwYWdlLXdpZHRoJyA9ICdhdXRvJztcclxuICBASW5wdXQoKSBkb3dubG9hZEZpbGVOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgc3JjID0gJyc7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTmd4RXh0ZW5kZWRQZGZWaWV3ZXJDb21wb25lbnQpIHBkZlZpZXdlciE6IE5neEV4dGVuZGVkUGRmVmlld2VyQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbmRNZW51JykgZmluZE1lbnU6IEVsZW1lbnRSZWYgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKChldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkpICYmIGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAncCcgJiYgIXRoaXMuc2hvd1ByaW50QnV0dG9uKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaWdub3JlS2V5cygpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBpZ25vcmVkS2V5cyA9IFtdO1xyXG5cclxuICAgIGlmICghdGhpcy5zaG93Um90YXRlQnV0dG9uKSB7XHJcbiAgICAgIGlnbm9yZWRLZXlzLnB1c2goJ1InLCAnU2hpZnQrUicpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNob3dEb3dubG9hZEJ1dHRvbikge1xyXG4gICAgICBpZ25vcmVkS2V5cy5wdXNoKCdDVFJMK1MnKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zaG93U2lkZWJhckJ1dHRvbikge1xyXG4gICAgICBpZ25vcmVkS2V5cy5wdXNoKCdGNCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpZ25vcmVkS2V5cztcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGRmVmlld2VyU2VydmljZTogTmd4RXh0ZW5kZWRQZGZWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snZGVmYXVsdFpvb20nXSAmJiBjaGFuZ2VzWydkZWZhdWx0Wm9vbSddLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzWydkZWZhdWx0Wm9vbSddLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbml0Wm9vbSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdFpvb20oKSB7XHJcbiAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gdGhpcy56b29tT3B0aW9ucy5maW5kKHggPT4geC52YWx1ZSA9PT0gdGhpcy5kZWZhdWx0Wm9vbSk7XHJcblxyXG4gICAgaWYgKGV4aXN0aW5nVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFpvb20gPSB7Li4uZXhpc3RpbmdWYWx1ZX07XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogdGhpcy5kZWZhdWx0Wm9vbSwgbGFiZWw6IGAke3RoaXMuZGVmYXVsdFpvb219JWB9O1xyXG4gIH1cclxuXHJcbiAgaW5pdFNlYXJjaCgpIHtcclxuICAgIGlmICh0aGlzLnNob3dGaW5kYmFyQnV0dG9uKSB7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdmJyAmJiBldmVudC5jdHJsS2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRTZWFyY2goKTtcclxuICAgIHRoaXMuaW5pdFpvb20oKTtcclxuXHJcbiAgICB0aGlzLl9yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUpIHtcclxuICAgICAgICBjb25zdCBpc0luTWVudSA9IHRoaXMuZmluZE1lbnU/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxyXG4gICAgICAgICAgfHwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmlkID09PSAnZmluZE5leHQnXHJcbiAgICAgICAgICB8fCAoZXZlbnQudGFyZ2V0IGFzIGFueSkuaWQgPT09ICdmaW5kUHJldmlvdXMnO1xyXG5cclxuICAgICAgICBjb25zdCBpc0ZpbmRCdXR0b24gPSAoZXZlbnQudGFyZ2V0IGFzIGFueSkuY2xhc3NMaXN0LmNvbnRhaW5zKCdtcngtcGRmLXZpZXdlcl9fZmluZC1idXR0b24nKTtcclxuXHJcbiAgICAgICAgaWYgKCFpc0luTWVudSAmJiAhaXNGaW5kQnV0dG9uKSB7XHJcbiAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWxWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLl9yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnBhZ2UgPSBldmVudCB8fCAxO1xyXG4gIH1cclxuXHJcbiAgb25OZXh0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2UgPCB0aGlzLnBhZ2VDb3VudCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSB0aGlzLnBhZ2UgKyAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25MYXN0UGFnZSgpIHtcclxuICAgIHRoaXMucGFnZSA9IHRoaXMucGFnZUNvdW50O1xyXG4gIH1cclxuXHJcbiAgb25QYWdlc0xvYWRlZCgkZXZlbnQ6IFBhZ2VzTG9hZGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHZpZXdPdXRsaW5lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ZpZXdPdXRsaW5lJyk7XHJcbiAgICBjb25zdCB2aWV3VGh1bWJuYWlsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ZpZXdUaHVtYm5haWwnKTtcclxuXHJcbiAgICB0aGlzLnBhZ2VDb3VudCA9ICRldmVudC5wYWdlc0NvdW50O1xyXG5cclxuICAgIGlmICh2aWV3T3V0bGluZSkge1xyXG4gICAgICAodmlld091dGxpbmUgYXMgYW55KS50aXRsZSA9ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHZpZXdUaHVtYm5haWwsICdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgIGlmICh2aWV3VGh1bWJuYWlsKSB7XHJcblxyXG4gICAgICAodmlld1RodW1ibmFpbCBhcyBhbnkpLnRpdGxlID0gJ3Rlc3QnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgem9vbUNsaWNrKGluY3JlYXNlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogMTAwLCBsYWJlbDogJzEwMCUnfTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5jcmVhc2UgPyB0aGlzLnNlbGVjdGVkWm9vbS52YWx1ZSArPSAyMCA6IHRoaXMuc2VsZWN0ZWRab29tLnZhbHVlIC09IDIwO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRab29tID0ge3ZhbHVlOiBuZXdWYWx1ZSwgbGFiZWw6IGAke25ld1ZhbHVlfSVgfTtcclxuICB9XHJcblxyXG4gIG9uWm9vbUxldmVsU2VsZWN0KGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFpvb20gPSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgb25ab29tQ2hhbmdlKGV2ZW50OiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIGNvbnN0IGV4aXN0aW5nT3B0aW9uID0gdGhpcy56b29tT3B0aW9ucy5maW5kKHggPT4geC52YWx1ZSA9PT0gZXZlbnQpO1xyXG5cclxuICAgIGlmIChleGlzdGluZ09wdGlvbikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHsuLi5leGlzdGluZ09wdGlvbn07XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaXhlZFZhbHVlID0gTWF0aC5yb3VuZChOdW1iZXIoZXZlbnQpKTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkWm9vbSA9IHt2YWx1ZTogZml4ZWRWYWx1ZSwgbGFiZWw6IGAke2ZpeGVkVmFsdWV9JWB9O1xyXG4gIH1cclxuXHJcbiAgb25Sb3RhdGUoZGlyZWN0aW9uOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRhID0gdGhpcy5yb3RhdGlvbjtcclxuXHJcbiAgICBpZiAoZGlyZWN0aW9uIDwgMCkge1xyXG4gICAgICBkYXRhIC09IDkwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YSArPSA5MDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YSA+PSAzNjApIHtcclxuICAgICAgdGhpcy5yb3RhdGlvbiA9IGRhdGEgLSAzNjAgYXMgUm90YXRpb25UeXBlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGRhdGEgPCAwKSB7XHJcbiAgICAgIHRoaXMucm90YXRpb24gPSAzNjAgKyBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm90YXRpb24gPSBkYXRhIGFzIFJvdGF0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIG9uUHJpbnRDbGljaygpIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UucHJpbnQoKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgcHJpbnREaWFsb2cgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaWFsb2cjcHJpbnRTZXJ2aWNlRGlhbG9nJyk7XHJcbiAgICAgIGNvbnN0IHByb2dyZXNzVGV4dCA9IHByaW50RGlhbG9nPy5xdWVyeVNlbGVjdG9yKCcucm93IHNwYW4nKTtcclxuICAgICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcHJpbnREaWFsb2c/LnF1ZXJ5U2VsZWN0b3IoJyNwcmludENhbmNlbCBzcGFuJyk7XHJcblxyXG4gICAgICBpZiAocHJvZ3Jlc3NUZXh0KSB7XHJcbiAgICAgICAgcHJvZ3Jlc3NUZXh0LnRleHRDb250ZW50ID0gJ9Cf0L7QtNCz0L7RgtC+0LLQutCwINC00L7QutGD0LzQtdC90YLQsCDQuiDQv9C10YfQsNGC0LguLi4nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY2FuY2VsQnV0dG9uKSB7XHJcbiAgICAgICAgY2FuY2VsQnV0dG9uLnRleHRDb250ZW50ID0gJ9Ce0YLQvNC10L3QsCc7XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgb25TaWRlYmFyVmlld0NsaWNrKCkge1xyXG4gICAgdGhpcy5zaWRlYmFyVmlzaWJsZSA9ICF0aGlzLnNpZGViYXJWaXNpYmxlO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmRNb2RlQ2xpY2soKSB7XHJcbiAgICBjb25zdCBwZGZWaWV3ZXJBcHBsaWNhdGlvbiA9ICh3aW5kb3cgYXMgYW55KS5QREZWaWV3ZXJBcHBsaWNhdGlvbjtcclxuXHJcbiAgICBpZiAocGRmVmlld2VyQXBwbGljYXRpb24/LnBkZlZpZXdlcikge1xyXG4gICAgICBwZGZWaWV3ZXJBcHBsaWNhdGlvbi5yZXF1ZXN0UHJlc2VudGF0aW9uTW9kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hDbGljaygpIHtcclxuICAgIHRoaXMuaXNTZWFyY2hQYW5lbFZpc2libGUgPSAhdGhpcy5pc1NlYXJjaFBhbmVsVmlzaWJsZTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoKCRldmVudDogc3RyaW5nKSB7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZCgkZXZlbnQsIHtoaWdobGlnaHRBbGw6IHRydWV9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcGRmVmlld2VyU2VydmljZS5maW5kKCcnLCB7fSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTmV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZE5leHQoKTtcclxuICB9XHJcblxyXG4gIGZpbmRQcmV2aW91cygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BkZlZpZXdlclNlcnZpY2UuZmluZFByZXZpb3VzKCk7XHJcbiAgfVxyXG5cclxuICBvblVwZGF0ZU1hdGNoQ2FzZShldmVudDogRmluZFJlc3VsdE1hdGNoZXNDb3VudCkge1xyXG4gICAgdGhpcy50b3RhbEZvdW5kID0gZXZlbnQudG90YWw7XHJcbiAgICB0aGlzLmN1cnJlbnRGaW5kID0gZXZlbnQuY3VycmVudDtcclxuICAgIHRoaXMuc2VhcmNoUXVlcnkgPSBldmVudC5xdWVyeVxyXG4gIH1cclxuXHJcbiAgb25GaW5kU3RhdGVDaGFuZ2VkKGV2ZW50OiBGaW5kU3RhdGUpIHtcclxuICAgIHRoaXMuZmluZFN0YXRlID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvblNpZGViYXJWaXNpYmxlQ2hhbmdlKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNpZGViYXJWaXNpYmxlID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBvbkhhbmRUb29sQ2xpY2soKSB7XHJcbiAgICB0aGlzLmhhbmRUb29sID0gIXRoaXMuaGFuZFRvb2w7XHJcbiAgfVxyXG5cclxuICBvbkRvd25sb2FkQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5kb3dubG9hZEZpbGVOYW1lKSB7XHJcbiAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSh0aGlzLmRvd25sb2FkRmlsZU5hbWUpLnRoZW4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcclxuXHJcbiAgICAgIGhlYWRlcnMuc2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJywgJ9Cf0LXRh9Cw0YLQvdCw0Y8g0YTQvtGA0LzQsCDQt9Cw0Y/QstC60Lgg0YHQviDRiNGC0LDQvNC/0L7QvC5wZGYnKTtcclxuXHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0KHRoaXMuc3JjLCB7cmVzcG9uc2VUeXBlOiAnYmxvYicsIG9ic2VydmU6ICdyZXNwb25zZScsfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZTogSHR0cFJlc3BvbnNlPEJsb2I+KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb24gPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpO1xyXG5cclxuICAgICAgICAgIGlmICghY29udGVudERpc3Bvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSgnZG9jdW1lbnQucGRmJykudGhlbigpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgZW5jb2RpbmdGaWxlTmFtZSA9IGNvbnRlbnREaXNwb3NpdGlvbi5tYXRjaCgvZmlsZW5hbWVcXCpcXHMqPVxccyooW147XSspL2kpO1xyXG5cclxuICAgICAgICAgIGlmIChlbmNvZGluZ0ZpbGVOYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gZW5jb2RpbmdGaWxlTmFtZVsxXS5zcGxpdCgnXFwnXFwnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZW5jb2RpbmcgPSBwYXJ0c1swXS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gcGFydHNbMV07XHJcblxyXG4gICAgICAgICAgICAgIGlmIChlbmNvZGluZyA9PT0gJ3V0Zi04Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZG93bmxvYWRGaWxlKGRlY29kZVVSSUNvbXBvbmVudChmaWxlTmFtZSkpLnRoZW4oKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBjb25zdCBzaW1wbGVGaWxlTmFtZSA9IGNvbnRlbnREaXNwb3NpdGlvbi5tYXRjaCgvZmlsZW5hbWVcXHMqPVxccypbXCInXT8oW147XCInXSspL2kpO1xyXG5cclxuICAgICAgICAgIGlmIChzaW1wbGVGaWxlTmFtZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9kb3dubG9hZEZpbGUoc2ltcGxlRmlsZU5hbWVbMV0pLnRoZW4oKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuX2Rvd25sb2FkRmlsZSgnZG9jdW1lbnQucGRmJykudGhlbigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZG93bmxvYWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBhd2FpdCB0aGlzLl9wZGZWaWV3ZXJTZXJ2aWNlLmdldEN1cnJlbnREb2N1bWVudEFzQmxvYigpO1xyXG4gICAgY29uc3Qgb2JqZWN0VXJsOiBzdHJpbmcgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgY29uc3QgYTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcblxyXG4gICAgYS5ocmVmID0gb2JqZWN0VXJsO1xyXG4gICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcblxyXG4gICAgYS5jbGljaygpO1xyXG5cclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcblxyXG4gICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgI2N1c3RvbVRvb2xiYXI+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX190b29sYmFyXCIgaWQ9XCJ0b29sYmFyVmlld2VyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGctMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGctMVwiPlxyXG4gICAgICAgIEBpZiAoc2hvd1NpZGViYXJCdXR0b24pIHtcclxuICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1idXJnZXInXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgKG1yeENsaWNrKT1cIm9uU2lkZWJhclZpZXdDbGljaygpXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydtcngtaWNvbi1idXR0b24tLXRvZ2dsZWQnOiBzaWRlYmFyVmlzaWJsZX1cIlxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGML9GB0LrRgNGL0YLRjCDQsdC+0LrQvtCy0YPRjiDQv9Cw0L3QtdC70YwnXCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoc2hvd0ZpbmRiYXJCdXR0b24pIHtcclxuICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1zZWFyY2gnXCJcclxuICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgICAgKG1yeENsaWNrKT1cIm9uU2VhcmNoQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTIgbXJ4LXBkZi12aWV3ZXJfX2ZpbmQtYnV0dG9uJ1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbXJ4LWljb24tYnV0dG9uLS10b2dnbGVkJzogaXNTZWFyY2hQYW5lbFZpc2libGV9XCJcclxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cd0LDQudGC0Lgg0LIg0LTQvtC60YPQvNC10L3RgtC1J1wiXHJcbiAgICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICBAaWYgKGlzU2VhcmNoUGFuZWxWaXNpYmxlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX19maW5kYmFyIGctMVwiICNmaW5kTWVudT5cclxuICAgICAgICAgIDxtcngtaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCJmaW5kU3RhdGUgPT09IDEgPyAnbXJ4LWlucHV0LWVycm9yJyA6JycrJ3NlYXJjaFRleHQnXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQndCw0LnRgtC4INCyINC00L7QutGD0LzQtdC90YLQtS4uLlwiXHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cInNlYXJjaFF1ZXJ5XCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2goJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9tcngtaW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidwLTEnXCJcclxuICAgICAgICAgICAgICAobXJ4Q2xpY2spPVwiZmluZFByZXZpb3VzKClcIlxyXG4gICAgICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLWNoZXZyb24tcmlnaHQnXCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3AtMSdcIlxyXG4gICAgICAgICAgICAgIChtcnhDbGljayk9XCJmaW5kTmV4dCgpXCJcclxuICAgICAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBAaWYgKGZpbmRTdGF0ZSA9PT0gMCB8fCBmaW5kU3RhdGUgPT09IDIpIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1wZGYtdmlld2VyX19maW5kYmFyLXJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgIHt7IGN1cnJlbnRGaW5kIH19INC40Lcge3sgdG90YWxGb3VuZCB9fSDRgdC+0LLQv9Cw0LTQtdC90LjQuVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoZmluZFN0YXRlID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1uZWdhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG5vd3JhcFwiPtCk0YDQsNC30LAg0L3QtSDQvdCw0LnQtNC10L3QsDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJfX3Rvb2xiYXItLW5hdlwiPlxyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24taW4tdGhlLWVuZC1sZWZ0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C10YDQstCw0Y8g0YHRgtGA0LDQvdC40YbQsCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25QYWdlQ2hhbmdlKDEpXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLWxlZnQnXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0YDQtdC00YvQtNGD0YnQsNGPINGB0YLRgNCw0L3QuNGG0LAnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUGFnZUNoYW5nZShwYWdlIC0gMSB8fCAxKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIid3cHgtNTYnXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cInBhZ2VcIlxyXG4gICAgICAgICAgW251bWJlclR5cGVdPVwiJ2ludCdcIlxyXG4gICAgICAgICAgW21pblZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgW21heFZhbHVlXT1cInBhZ2VDb3VudFwiXHJcbiAgICAgICAgICBbaXNBdXRvQ29ycmVjdGluZ1ZhbHVlXT1cInRydWVcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJteC0xXCI+0LjQtyB7eyBwYWdlQ291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1jaGV2cm9uLXJpZ2h0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbk5leHRQYWdlKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Ch0LvQtdC00YPRjtGJ0LDRjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1pbi10aGUtZW5kLXJpZ2h0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkxhc3RQYWdlKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7RgdC70LXQtNC90Y/RjyDRgdGC0YDQsNC90LjRhtCwJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayhmYWxzZSlcIlxyXG4gICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tbWludXMnXCJcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cIifQo9C80LXQvdGM0YjQuNGC0YwnXCJcclxuICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgKG1yeENsaWNrKT1cInpvb21DbGljayh0cnVlKVwiXHJcbiAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1wbHVzJ1wiXHJcbiAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICBbdG9vbHRpcF09XCIn0KPQstC10LvQuNGH0LjRgtGMJ1wiXHJcbiAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3dweC0xNTYnXCJcclxuICAgICAgICBbaXRlbXNdPVwiem9vbU9wdGlvbnNcIlxyXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uWm9vbUxldmVsU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkWm9vbVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiPlxyXG4gICAgICA8L21yeC1pbnB1dC1zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgIEBpZiAoc2hvd0hhbmRUb29sQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1mYy10ZXh0J1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J21yeC1pY29uLWJ1dHRvbi0tdG9nZ2xlZCc6ICFoYW5kVG9vbH1cIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25IYW5kVG9vbENsaWNrKClcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgID48L21yeC1pY29uLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHNob3dSb3RhdGVCdXR0b24pIHtcclxuICAgICAgICA8bXJ4LWljb24tYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbkNsYXNzXT1cIidpY29uLXJlbG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICAobXJ4Q2xpY2spPVwib25Sb3RhdGUoMSlcIlxyXG4gICAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ3B5LTEgcHgtMidcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBdPVwiJ9Cf0L7QstC10YDQvdGD0YLRjCDQv9C+INGH0LDRgdC+0LLQvtC5INGB0YLRgNC10LvQutC1J1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93Um90YXRlQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1yZXR1cm4nXCJcclxuICAgICAgICAgIFtzaXplXT1cIidtZWRpdW0nXCJcclxuICAgICAgICAgIFtzdGF0ZV09XCInZGVmYXVsdCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uUm90YXRlKC0xKVwiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QvtCy0LXRgNC90YPRgtGMINC/0YDQvtGC0LjQsiDRh9Cw0YHQvtCy0L7QuSDRgdGC0YDQtdC70LrQuCdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0V4cGFuZEJ1dHRvbikge1xyXG4gICAgICAgIDxtcngtaWNvbi1idXR0b25cclxuICAgICAgICAgIFtpY29uQ2xhc3NdPVwiJ2ljb24tYXJyb3ctZXhwYW5kJ1wiXHJcbiAgICAgICAgICBbc2l6ZV09XCInbWVkaXVtJ1wiXHJcbiAgICAgICAgICBbc3RhdGVdPVwiJ2RlZmF1bHQnXCJcclxuICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidweS0xIHB4LTInXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvbkV4cGFuZE1vZGVDbGljaygpXCJcclxuICAgICAgICAgIFt0b29sdGlwXT1cIifQn9C+0LrQsNC30LDRgtGMINC90LAg0LLQtdGB0Ywg0Y3QutGA0LDQvSdcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBQb3NpdGlvbl09XCInYm90dG9tLXN0YXJ0J1wiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd1ByaW50QnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1wcmludCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0J/QtdGH0LDRgtGMJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIidib3R0b20tc3RhcnQnXCJcclxuICAgICAgICAgIChtcnhDbGljayk9XCJvblByaW50Q2xpY2soKVwiXHJcbiAgICAgICAgPjwvbXJ4LWljb24tYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0Rvd25sb2FkQnV0dG9uKSB7XHJcbiAgICAgICAgPG1yeC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25DbGFzc109XCInaWNvbi1kb3dubG9hZCdcIlxyXG4gICAgICAgICAgW3NpemVdPVwiJ21lZGl1bSdcIlxyXG4gICAgICAgICAgW3N0YXRlXT1cIidkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCIncHktMSBweC0yJ1wiXHJcbiAgICAgICAgICBbdG9vbHRpcF09XCIn0KHQutCw0YfQsNGC0YwnXCJcclxuICAgICAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ2JvdHRvbS1zdGFydCdcIlxyXG4gICAgICAgICAgKG1yeENsaWNrKT1cIm9uRG93bmxvYWRDbGljaygpXCJcclxuICAgICAgICA+PC9tcngtaWNvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5neC1leHRlbmRlZC1wZGYtdmlld2VyXHJcbiAgI3BkZlZpZXdlclxyXG4gIGNsYXNzPVwibXJ4LXBkZi12aWV3ZXJcIlxyXG4gIFtzcmNdPVwic3JjXCJcclxuICBbcGFnZV09XCJwYWdlXCJcclxuICBbc2lkZWJhclZpc2libGVdPVwic2hvd1NpZGViYXJCdXR0b24gJiYgc2lkZWJhclZpc2libGVcIlxyXG4gIFtjdXN0b21Ub29sYmFyXT1cImN1c3RvbVRvb2xiYXJcIlxyXG4gIFtzaG93U2lkZWJhckJ1dHRvbl09XCJ0cnVlXCJcclxuICBbc2hvd1JvdGF0ZUJ1dHRvbl09XCJzaG93Um90YXRlQnV0dG9uXCJcclxuICBbc2hvd0Rvd25sb2FkQnV0dG9uXT1cInNob3dEb3dubG9hZEJ1dHRvblwiXHJcbiAgW2lnbm9yZUtleXNdPVwiaWdub3JlS2V5c1wiXHJcbiAgW3pvb21dPVwic2VsZWN0ZWRab29tLnZhbHVlXCJcclxuICBbdGV4dExheWVyXT1cInRydWVcIlxyXG4gIFtoYW5kVG9vbF09XCJoYW5kVG9vbFwiXHJcbiAgW3JvdGF0aW9uXT1cInJvdGF0aW9uXCJcclxuICAoem9vbUNoYW5nZSk9XCJvblpvb21DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gIChwYWdlc0xvYWRlZCk9XCJvblBhZ2VzTG9hZGVkKCRldmVudClcIlxyXG4gICh1cGRhdGVGaW5kU3RhdGUpPVwib25GaW5kU3RhdGVDaGFuZ2VkKCRldmVudClcIlxyXG4gIChzaWRlYmFyVmlzaWJsZUNoYW5nZSk9XCJvblNpZGViYXJWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxyXG4gICh1cGRhdGVGaW5kTWF0Y2hlc0NvdW50KT1cIm9uVXBkYXRlTWF0Y2hDYXNlKCRldmVudClcIlxyXG4+PC9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcj5cclxuIl19
@@ -19055,8 +19055,8 @@ class PdfViewerComponent {
19055
19055
  }
19056
19056
  });
19057
19057
  }
19058
- onPageChange($event) {
19059
- this.page = $event || 1;
19058
+ onPageChange(event) {
19059
+ this.page = event || 1;
19060
19060
  }
19061
19061
  onNextPage() {
19062
19062
  if (this.page < this.pageCount) {
@@ -19089,13 +19089,13 @@ class PdfViewerComponent {
19089
19089
  onZoomLevelSelect(item) {
19090
19090
  this.selectedZoom = item;
19091
19091
  }
19092
- onZoomChange($event) {
19093
- const existingOption = this.zoomOptions.find(x => x.value === $event);
19092
+ onZoomChange(event) {
19093
+ const existingOption = this.zoomOptions.find(x => x.value === event);
19094
19094
  if (existingOption) {
19095
19095
  this.selectedZoom = { ...existingOption };
19096
19096
  return;
19097
19097
  }
19098
- const fixedValue = Math.round(Number($event));
19098
+ const fixedValue = Math.round(Number(event));
19099
19099
  this.selectedZoom = { value: fixedValue, label: `${fixedValue}%` };
19100
19100
  }
19101
19101
  onRotate(direction) {
@@ -19155,15 +19155,16 @@ class PdfViewerComponent {
19155
19155
  findPrevious() {
19156
19156
  this._pdfViewerService.findPrevious();
19157
19157
  }
19158
- onUpdateMatchCase($event) {
19159
- this.totalFound = $event.total;
19160
- this.currentFind = $event.current;
19158
+ onUpdateMatchCase(event) {
19159
+ this.totalFound = event.total;
19160
+ this.currentFind = event.current;
19161
+ this.searchQuery = event.query;
19161
19162
  }
19162
- onFindStateChanged($event) {
19163
- this.findState = $event;
19163
+ onFindStateChanged(event) {
19164
+ this.findState = event;
19164
19165
  }
19165
- onSidebarVisibleChange($event) {
19166
- this.sidebarVisible = $event;
19166
+ onSidebarVisibleChange(event) {
19167
+ this.sidebarVisible = event;
19167
19168
  }
19168
19169
  onHandToolClick() {
19169
19170
  this.handTool = !this.handTool;