@fundamental-ngx/core 0.36.1-rc.44 → 0.36.1-rc.46

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.
@@ -323,10 +323,18 @@ export class CalendarComponent {
323
323
  /** Function that allows to switch actually displayed list of year to next year list*/
324
324
  displayNextYearList() {
325
325
  this._yearViewComponent.loadNextYearList();
326
+ this._currentlyDisplayed = {
327
+ month: this._currentlyDisplayed.month,
328
+ year: this._yearViewComponent._firstYearInList
329
+ };
326
330
  }
327
331
  /** Function that allows to switch actually displayed list of year to previous year list*/
328
332
  displayPreviousYearList() {
329
333
  this._yearViewComponent.loadPreviousYearList();
334
+ this._currentlyDisplayed = {
335
+ month: this._currentlyDisplayed.month,
336
+ year: this._yearViewComponent._firstYearInList
337
+ };
330
338
  }
331
339
  /** Function that allows to switch actually displayed list of year to next year list*/
332
340
  displayNextYearsList() {
@@ -604,4 +612,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
604
612
  }], disableRangeEndFunction: [{
605
613
  type: Input
606
614
  }] } });
607
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdGQUF3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TixlQUFlO3NCQURkLEtBQUs7Z0JBUU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQVFOLHVCQUF1QjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgU3BlY2lhbERheVJ1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcblxuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi9tb2RlbHMvZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBDYWxlbmRhckN1cnJlbnQgfSBmcm9tICcuL21vZGVscy9jYWxlbmRhci1jdXJyZW50JztcbmltcG9ydCB7IENhbGVuZGFyWWVhckdyaWQgfSBmcm9tICcuL21vZGVscy9jYWxlbmRhci15ZWFyLWdyaWQnO1xuaW1wb3J0IHsgQWdncmVnYXRlZFllYXIgfSBmcm9tICcuL21vZGVscy9hZ2dyZWdhdGVkLXllYXInO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1kYXktdmlldy9jYWxlbmRhci1kYXktdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLW1vbnRoLXZpZXcvY2FsZW5kYXItbW9udGgtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IgfSBmcm9tICcuL2NhbGVuZGFyLWVycm9ycyc7XG5pbXBvcnQgeyBDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVEYXRlRnVuY3Rpb24sIEVzY2FwZUZvY3VzRnVuY3Rpb24sIEZvY3VzYWJsZUNhbGVuZGFyVmlldyB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGUsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3LCBOYXZpZ2F0aW9uQnV0dG9uRGlzYWJsZUZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyxcbiAgICBDb250ZW50RGVuc2l0eU1vZGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5cbmxldCBjYWxlbmRhclVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBNb250aHM6IDEgPSBKYW51YXJ5LCAxMiA9IGRlY2VtYmVyLlxuICogRGF5czogMSA9IFN1bmRheSwgNyA9IFNhdHVyZGF5XG4gKlxuICogQ2FsZW5kYXIgY29tcG9uZW50IHVzZWQgZm9yIHNlbGVjdGluZyBkYXRlcywgdHlwaWNhbGx5IHVzZWQgYnkgdGhlIERhdGVQaWNrZXIgYW5kIERhdGVUaW1lUGlja2VyIGNvbXBvbmVudHMuXG4gKiBTdXBwb3J0cyB0aGUgQW5ndWxhciBmb3JtcyBtb2R1bGUsIGVuYWJsaW5nIGZvcm0gdmFsaWRpdHksIG5nTW9kZWwsIGV0Yy5cbiAqIGBgYGh0bWxcbiAqIDxmZC1jYWxlbmRhcj48L2ZkLWNhbGVuZGFyPlxuICogYGBgXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDYWxlbmRhckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2FsZW5kYXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKHtcbiAgICAgICAgICAgIG1vZGlmaWVyczoge1xuICAgICAgICAgICAgICAgIFtDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVF06ICdmZC1jYWxlbmRhci0tY29tcGFjdCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhmb2N1c291dCknOiAnX2ZvY3VzT3V0KCRldmVudCknLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgY2xhc3M6ICdmZC1jYWxlbmRhciBmZC1oYXMtZGlzcGxheS1ibG9jaydcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50PEQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uRGVzdHJveSB7XG4gICAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBtb2RlbCBpbiBzaW5nbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkRGF0ZTogTnVsbGFibGU8RD47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHNob3cgd2VlayBudW1iZXJzIG5leHQgdG8gZGF5c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1dlZWtOdW1iZXJzID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jYWxlbmRhci0tbW9iaWxlLWxhbmRzY2FwZScpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jYWxlbmRhci0tbW9iaWxlLXBvcnRyYWl0JylcbiAgICBtb2JpbGVQb3J0cmFpdCA9IGZhbHNlO1xuXG4gICAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgRmREYXRlcyBtb2RlbCBzdGFydCBhbmQgZW5kIGluIHJhbmdlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZFJhbmdlRGF0ZTogRGF0ZVJhbmdlPEQ+O1xuXG4gICAgLyoqIEFjdHVhbGx5IHNob3duIGFjdGl2ZSB2aWV3IG9uZSBvZiAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgKi9cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZVZpZXc6IEZkQ2FsZW5kYXJWaWV3ID0gJ2RheSc7XG5cbiAgICAvKiogVGhlIGRheSBvZiB0aGUgd2VlayB0aGUgY2FsZW5kYXIgc2hvdWxkIHN0YXJ0IG9uLiAxIHJlcHJlc2VudHMgU3VuZGF5LCAyIGlzIE1vbmRheSwgMyBpcyBUdWVzZGF5LCBhbmQgc28gb24uICovXG4gICAgQElucHV0KClcbiAgICBzdGFydGluZ0RheU9mV2VlazogRGF5c09mV2VlaztcblxuICAgIC8qKiBUaGUgdHlwZSBvZiBjYWxlbmRhciwgJ3NpbmdsZScgZm9yIHNpbmdsZSBkYXRlIHNlbGVjdGlvbiBvciAncmFuZ2UnIGZvciBhIHJhbmdlIG9mIGRhdGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FsVHlwZTogQ2FsZW5kYXJUeXBlID0gJ3NpbmdsZSc7XG5cbiAgICAvKiogSWQgb2YgdGhlIGNhbGVuZGFyLiBJZiBub25lIGlzIHByb3ZpZGVkLCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBpZCA9ICdmZC1jYWxlbmRhci0nICsgY2FsZW5kYXJVbmlxdWVJZCsrO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lhbCBkYXlzIG1hcmssIGl0IGNhbiBiZSB1c2VkIGJ5IHBhc3NpbmcgYXJyYXkgb2Ygb2JqZWN0IHdpdGhcbiAgICAgKiBTcGVjaWFsIGRheSBudW1iZXIsIGxpc3QgMS0yMCBbY2xhc3M6YGZkLWNhbGVuZGFyX19zcGVjaWFsLWRheS0te3tudW1iZXJ9fWBdIGlzIGF2YWlsYWJsZSB0aGVyZTpcbiAgICAgKiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtc3R5bGVzL2NvbXBvbmVudHMvY2FsZW5kYXIuaHRtbCBjYWxlbmRhciBzcGVjaWFsIGRheXMgc2VjdGlvblxuICAgICAqIFJ1bGUgYWNjZXB0cyBtZXRob2Qgd2l0aCBEIG9iamVjdCBhcyBhIHBhcmFtZXRlci4gZXg6XG4gICAgICogYHJ1bGU6IChmZERhdGU6IEQpID0+IGZkRGF0ZS5nZXREYXkoKSA9PT0gMWAsIHdoaWNoIHdpbGwgbWFyayBhbGwgc3VuZGF5cyBhcyBzcGVjaWFsIGRheS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNwZWNpYWxEYXlzUnVsZXM6IFNwZWNpYWxEYXlSdWxlPEQ+W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiA1XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgYWdncmVnYXRlZCB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWdncmVnYXRlZFllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiAzXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byBtYXJrIGRheSBjZWxscyBvbiBob3Zlci5cbiAgICAgKiBXb3JrcyBvbmx5IG9uIHJhbmdlIG1vZGUsIHdoZW4gc3RhcnQgZGF0ZSBpcyBzZWxlY3RlZCBvbiBEYXkgVmlldy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJhbmdlSG92ZXJFZmZlY3QgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSBhY3RpdmUgdmlldyBpcyBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYWN0aXZlVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmRDYWxlbmRhclZpZXc+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZGF0ZSBpbiBzaW5nbGUgbW9kZSBpcyBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RD4gPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZmlyc3Qgb3IgbGFzdCBkYXRlIGluIHJhbmdlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVJhbmdlPEQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVJhbmdlPEQ+PigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHdoZW4gdmFsdWUgaXMgb3ZlcndyaXR0ZW4gZnJvbSBvdXRzaWRlIGFuZCB0aHJvdyBiYWNrIGlzVmFsaWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc1ZhbGlkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHdoZW4gY2FsZW5kYXIgc2hvdWxkIGJlIGNsb3NlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNsb3NlQ2FsZW5kYXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gY2xvc2UgYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjbG9zZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhckRheVZpZXdDb21wb25lbnQpXG4gICAgX2RheVZpZXdDb21wb25lbnQ6IENhbGVuZGFyRGF5Vmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudClcbiAgICBfbW9udGhWaWV3Q29tcG9uZW50OiBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50KVxuICAgIF95ZWFyVmlld0NvbXBvbmVudDogQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudClcbiAgICBfYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50OiBDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhckhlYWRlckNvbXBvbmVudClcbiAgICBfY2FsZW5kYXJIZWFkZXJDb21wb25lbnQ6IENhbGVuZGFySGVhZGVyQ29tcG9uZW50PEQ+O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIHByZXZpb3VzIGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIgaGVhZGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIHNlbGVjdGVkIGRhdGVcbiAgICAgKiBAcGFyYW0gY3VycmVudGx5RGlzcGxheWVkRGF0ZSBjdXJyZW50bHkgZGlzcGxheWVkIGRhdGVcbiAgICAgKiBAcGFyYW0gYWN0aXZlVmlldyBjdXJyZW50IHZpZXcgb2YgY2FsZW5kYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uOiBOYXZpZ2F0aW9uQnV0dG9uRGlzYWJsZUZ1bmN0aW9uPEQ+O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIG5leHQgYnV0dG9uIGluIHRoZSBjYWxlbmRhciBoZWFkZXIuXG4gICAgICogQHBhcmFtIGRhdGUgc2VsZWN0ZWQgZGF0ZVxuICAgICAqIEBwYXJhbSBjdXJyZW50bHlEaXNwbGF5ZWREYXRlIGN1cnJlbnRseSBkaXNwbGF5ZWQgZGF0ZVxuICAgICAqIEBwYXJhbSBhY3RpdmVWaWV3IGN1cnJlbnQgdmlldyBvZiBjYWxlbmRhclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbjogTmF2aWdhdGlvbkJ1dHRvbkRpc2FibGVGdW5jdGlvbjxEPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDdXJyZW50bHkgZGlzcGxheWVkIGRheXMgZGVwZW5kaW5nIG9uIG1vbnRoIGFuZCB5ZWFyXG4gICAgICovXG4gICAgX2N1cnJlbnRseURpc3BsYXllZDogQ2FsZW5kYXJDdXJyZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByZXZpb3VzQnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5leHRCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKiBUaGF0IGFsbG93cyB0byBkZWZpbmUgZnVuY3Rpb24gdGhhdCBzaG91bGQgaGFwcGVuLCB3aGVuIGZvY3VzIHNob3VsZCBub3JtYWxseSBlc2NhcGUgb2YgY29tcG9uZW50ICovXG4gICAgQElucHV0KClcbiAgICBlc2NhcGVGb2N1c0Z1bmN0aW9uOiBFc2NhcGVGb2N1c0Z1bmN0aW9uID0gKGV2ZW50PzogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJIZWFkZXJDb21wb25lbnQ/LmZvY3VzKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBjZXJ0YWluIGRhdGVzIGluIHRoZSBjYWxlbmRhci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246IERpc2FibGVEYXRlRnVuY3Rpb248RD4gPSAoKSA9PiBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBjZXJ0YWluIGRhdGVzIGluIHRoZSBjYWxlbmRhciBmb3IgdGhlIHJhbmdlIHN0YXJ0IHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgZm9yIHRoZSByYW5nZSBlbmQgc2VsZWN0aW9uLlxuICAgICAqIEBwYXJhbSBkYXRlIGRhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAoXzogRCB8IERhdGVSYW5nZTxEPikgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgLy8gVXNlIEBPcHRpb25hbCB0byBhdm9pZCBhbmd1bGFyIGluamVjdGlvbiBlcnJvciBtZXNzYWdlIGFuZCB0aHJvdyBvdXIgb3duIHdoaWNoIGlzIG1vcmUgcHJlY2lzZSBvbmVcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RhdGVUaW1lQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RBVEVfVElNRV9GT1JNQVRTJyk7XG4gICAgICAgIH1cbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuc3Vic2NyaWJlKCk7XG4gICAgICAgIC8vIHNldCBkZWZhdWx0IHZhbHVlXG4gICAgICAgIHRoaXMuX2FkYXB0ZXJTdGFydGluZ0RheU9mV2VlayA9ICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSArIDEpIGFzIERheXNPZldlZWs7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLnRvZGF5KCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0xvY2FsZUNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmVwYXJlRGlzcGxheWVkVmlldygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAnbmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbicgaW4gY2hhbmdlcyB8fFxuICAgICAgICAgICAgJ3ByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAnX2N1cnJlbnRseURpc3BsYXllZCcgaW4gY2hhbmdlc1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRXZWVrU3RhcnREYXkoKTogRGF5c09mV2VlayB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrID09PSB1bmRlZmluZWQgPyB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgOiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBwcm92aWRlcyBzdXBwb3J0IGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciB0aGF0IGFsbG93cyB0byB1c2UgWyhuZ01vZGVsKV0gb3IgZm9ybXMuXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogRGF0ZVJhbmdlPEQ+IHwgRCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IDxEPnNlbGVjdGVkO1xuXG4gICAgICAgICAgICB2YWxpZCA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gPERhdGVSYW5nZTxEPj5zZWxlY3RlZDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZC5zdGFydCkgfHwgIXRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkLmVuZCkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBzZWxlY3RlZC5zdGFydCxcbiAgICAgICAgICAgICAgICBlbmQ6IHNlbGVjdGVkLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmFsaWREYXRlQ2hhbmdlLmVtaXQodmFsaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgVmFsaWRhdG9yIEludGVyZmFjZSwgYWRkcyB2YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGZvcm1zXG4gICAgICovXG4gICAgdmFsaWRhdGUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vZGVsVmFsaWQoKVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZSBhY3RpdmUgdmlldyBjaGFuZ2UgYW5kIHRocm93cyBldmVudC5cbiAgICAgKlxuICAgICAqIEZpcmVkIGJ5IGNhbGVuZGFyIGhlYWRlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgaGFuZGxlQWN0aXZlVmlld0NoYW5nZShhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyk6IHZvaWQge1xuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gdGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBhY3RpdmVWaWV3O1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGFjdGl2ZVZpZXcpO1xuXG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9udGhWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhclZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnYWdncmVnYXRlZFllYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhcnNSYW5nZVZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCBzaW5nbGUgZGF0ZSBjaGFuZ2VkXG4gICAgICovXG4gICAgc2VsZWN0ZWREYXRlQ2hhbmdlZChkYXRlOiBEKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCByYW5nZSBkYXRlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoZGF0ZXM6IERhdGVSYW5nZTxEPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgPSB7IHN0YXJ0OiBkYXRlcy5zdGFydCwgZW5kOiBkYXRlcy5lbmQgPyBkYXRlcy5lbmQgOiBkYXRlcy5zdGFydCB9O1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VDYWxlbmRhci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIG5leHQgYXJyb3cgaWNvbiBjbGljaywgZGVwZW5kaW5nIG9uIGN1cnJlbnQgdmlldyBpdCBjaGFuZ2VzIG1vbnRoLCB5ZWFyIG9yIGxpc3Qgb2YgeWVhcnMgKi9cbiAgICBoYW5kbGVOZXh0QXJyb3dDbGljaygpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmV4dE1vbnRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmV4dFllYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyTGlzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWdncmVnYXRlZFllYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyc0xpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGhhbmRsZXMgcHJldmlvdXMgYXJyb3cgaWNvbiBjbGljaywgZGVwZW5kaW5nIG9uIGN1cnJlbnQgdmlldyBpdCBjaGFuZ2VzIG1vbnRoLCB5ZWFyIG9yIGxpc3Qgb2YgeWVhcnMgKi9cbiAgICBoYW5kbGVQcmV2aW91c0Fycm93Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzTW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzWWVhckxpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXJzTGlzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWwgdmlldyB0byBuZXh0IG1vbnRoICovXG4gICAgZGlzcGxheU5leHRNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCA9PT0gMTIpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgKyAxLCBtb250aDogMSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggKyAxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWwgdmlldyB0byBwcmV2aW91cyBtb250aCAqL1xuICAgIGRpc3BsYXlQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoIDw9IDEpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgLSAxLCBtb250aDogMTIgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhcixcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoIC0gMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gbmV4dCB5ZWFyICovXG4gICAgZGlzcGxheU5leHRZZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyICsgMSB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gcHJldmlvdXMgeWVhciAqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCwgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgLSAxIH07XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIG5leHQgeWVhciBsaXN0Ki9cbiAgICBkaXNwbGF5TmV4dFllYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5sb2FkTmV4dFllYXJMaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIHByZXZpb3VzIHllYXIgbGlzdCovXG4gICAgZGlzcGxheVByZXZpb3VzWWVhckxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50LmxvYWRQcmV2aW91c1llYXJMaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIG5leHQgeWVhciBsaXN0Ki9cbiAgICBkaXNwbGF5TmV4dFllYXJzTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50LmxvYWROZXh0WWVhcnNMaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIHByZXZpb3VzIHllYXIgbGlzdCovXG4gICAgZGlzcGxheVByZXZpb3VzWWVhcnNMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQubG9hZFByZXZpb3VzWWVhcnNMaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gY2hhbmdlIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGgveWVhciBjb25maWd1cmF0aW9uLFxuICAgICAqIHdoaWNoIGFyZSBjb25uZWN0ZWQgdG8gZGF5cyBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBzZXRDdXJyZW50bHlEaXNwbGF5ZWQoZGF0ZTogTnVsbGFibGU8RD4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aChkYXRlISksXG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoZGF0ZSEpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGluaXRpYWwgZm9jdXMgb24gb25lIG9mIHRoZSBjYWxlbmRhcidzIGVsZW1lbnRcbiAgICAgKi9cbiAgICBpbml0aWFsRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dldEFjdGl2ZUZvY3VzYWJsZVZpZXcoKT8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIGNoYW5nZXMgZnJvbSBtb250aCB2aWV3IGNoaWxkIGNvbXBvbmVudCwgY2hhbmdlcyBhY3R1YWwgdmlldyBhbmQgY2hhbmdlcyBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoXG4gICAgICovXG4gICAgaGFuZGxlTW9udGhWaWV3Q2hhbmdlKG1vbnRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyBtb250aCwgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgfTtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ2RheSc7XG4gICAgICAgIHRoaXMub25EYXlzVmlld1NlbGVjdGVkKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZlVmlldyk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRZZWFyKHllYXJTZWxlY3RlZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXknO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciA9IHllYXJTZWxlY3RlZDtcbiAgICAgICAgdGhpcy5vbkRheXNWaWV3U2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZFllYXJzKHllYXJzU2VsZWN0ZWQ6IEFnZ3JlZ2F0ZWRZZWFyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICd5ZWFyJztcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgLi4udGhpcy5fY3VycmVudGx5RGlzcGxheWVkLFxuICAgICAgICAgICAgeWVhcjogeWVhcnNTZWxlY3RlZC5zdGFydFllYXJcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vblllYXJWaWV3U2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uRGF5c1ZpZXdTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9kYXlWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Nb250aFZpZXdTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9tb250aFZpZXdDb21wb25lbnQ/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblllYXJWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5feWVhclZpZXdDb21wb25lbnQ/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblllYXJzUmFuZ2VWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBpZiBtb2RlbCBzZWxlY3RlZCBkYXRlL2RhdGVzIGhhdmUgcHJvcGVybHkgdHlwZXMgYW5kIGFyZSB2YWxpZCAqL1xuICAgIGlzTW9kZWxWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsVHlwZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2FsVHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydCkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Mb2NhbGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5sb2NhbGVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrID0gKHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRGaXJzdERheU9mV2VlaygpICsgMSkgYXMgRGF5c09mV2VlaztcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0aGF0IHNldHMgdXAgdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgdmFyaWFibGVzLCBsaWtlIHNob3duIG1vbnRoIGFuZCB5ZWFyLlxuICAgICAqIERheSBncmlkIGlzIGJhc2VkIG9uIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGggYW5kIHllYXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9wcmVwYXJlRGlzcGxheWVkVmlldygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsVHlwZSA9PT0gJ3NpbmdsZScgJiYgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZERhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIodGhpcy5zZWxlY3RlZERhdGUpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgJiYgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydCkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZCkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuZW5kKSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuZW5kKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLnRvZGF5KCk7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIodG9kYXkpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodG9kYXkpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRBY3RpdmVGb2N1c2FibGVWaWV3KCk6IEZvY3VzYWJsZUNhbGVuZGFyVmlldyB8IG51bGwge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF5Vmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSAnYWdncmVnYXRlZFllYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVkID1cbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLnByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uKHRoaXMuc2VsZWN0ZWREYXRlLCB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQsIHRoaXMuYWN0aXZlVmlldyk7XG4gICAgICAgIHRoaXMubmV4dEJ1dHRvbkRpc2FibGVkID1cbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLm5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgICAgIHRoaXMubmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbih0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLCB0aGlzLmFjdGl2ZVZpZXcpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLWNhbGVuZGFyLWhlYWRlclxuICAgIFtjdXJyZW50bHlEaXNwbGF5ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZFwiXG4gICAgW2FjdGl2ZVZpZXddPVwiYWN0aXZlVmlld1wiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbY2FsZW5kYXJZZWFyR3JpZF09XCJ5ZWFyR3JpZFwiXG4gICAgW21vYmlsZUxhbmRzY2FwZV09XCJtb2JpbGVMYW5kc2NhcGVcIlxuICAgIChjbG9zZUNsaWNrZWQpPVwiY2xvc2VDbGlja2VkLmVtaXQoKVwiXG4gICAgKG5leHRDbGlja2VkKT1cImhhbmRsZU5leHRBcnJvd0NsaWNrKClcIlxuICAgIChwcmV2aW91c0NsaWNrZWQpPVwiaGFuZGxlUHJldmlvdXNBcnJvd0NsaWNrKClcIlxuICAgIFtwcmV2aW91c0J1dHRvbkRpc2FibGVkXT1cInByZXZpb3VzQnV0dG9uRGlzYWJsZWRcIlxuICAgIFtuZXh0QnV0dG9uRGlzYWJsZWRdPVwibmV4dEJ1dHRvbkRpc2FibGVkXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuPjwvZmQtY2FsZW5kYXItaGVhZGVyPlxuPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aXZlVmlld1wiICpuZ0lmPVwiX2N1cnJlbnRseURpc3BsYXllZFwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1jYWxlbmRhcl9fY29udGVudFwiXG4gICAgICAgIFtjbGFzcy5mZC1jYWxlbmRhcl9fY29udGVudC0tZGF0ZXNdPVwiYWN0aXZlVmlldyA9PT0gJ2RheSdcIlxuICAgICAgICBbY2xhc3MuZmQtY2FsZW5kYXJfX2NvbnRlbnQtLW1vbnRoc109XCJhY3RpdmVWaWV3ID09PSAnbW9udGgnXCJcbiAgICAgICAgW2NsYXNzLmZkLWNhbGVuZGFyX19jb250ZW50LS15ZWFyc109XCJhY3RpdmVWaWV3ID09PSAneWVhcicgfHwgYWN0aXZlVmlldyA9PT0gJ2FnZ3JlZ2F0ZWRZZWFyJ1wiXG4gICAgPlxuICAgICAgICA8ZmQtY2FsZW5kYXItZGF5LXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF5J1wiXG4gICAgICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgICBbc2hvd1dlZWtOdW1iZXJzXT1cInNob3dXZWVrTnVtYmVyc1wiXG4gICAgICAgICAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgICAgICAgICAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cInNlbGVjdGVkRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRSYW5nZURhdGVdPVwic2VsZWN0ZWRSYW5nZURhdGVcIlxuICAgICAgICAgICAgKHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlKT1cInNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjdXJyZW50bHlEaXNwbGF5ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZFwiXG4gICAgICAgICAgICBbc3RhcnRpbmdEYXlPZldlZWtdPVwiZ2V0V2Vla1N0YXJ0RGF5KClcIlxuICAgICAgICAgICAgW2Rpc2FibGVGdW5jdGlvbl09XCJkaXNhYmxlRnVuY3Rpb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25cIlxuICAgICAgICAgICAgW2NhbFR5cGVdPVwiY2FsVHlwZVwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW3JhbmdlSG92ZXJFZmZlY3RdPVwicmFuZ2VIb3ZlckVmZmVjdFwiXG4gICAgICAgICAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKG5leHRNb250aFNlbGVjdCk9XCJkaXNwbGF5TmV4dE1vbnRoKClcIlxuICAgICAgICAgICAgKHByZXZpb3VzTW9udGhTZWxlY3QpPVwiZGlzcGxheVByZXZpb3VzTW9udGgoKVwiXG4gICAgICAgID48L2ZkLWNhbGVuZGFyLWRheS12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXItbW9udGgtdmlld1xuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIlxuICAgICAgICAgICAgW21vbnRoU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC5tb250aFwiXG4gICAgICAgICAgICBbeWVhcl09XCJfY3VycmVudGx5RGlzcGxheWVkLnllYXJcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKG1vbnRoQ2xpY2tlZCk9XCJoYW5kbGVNb250aFZpZXdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L2ZkLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gICAgICAgIDxmZC1jYWxlbmRhci15ZWFyLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIneWVhcidcIlxuICAgICAgICAgICAgW3llYXJTZWxlY3RlZF09XCJfY3VycmVudGx5RGlzcGxheWVkLnllYXJcIlxuICAgICAgICAgICAgW3llYXJWaWV3R3JpZF09XCJ5ZWFyR3JpZFwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW2ZvY3VzRXNjYXBlRnVuY3Rpb25dPVwiZXNjYXBlRm9jdXNGdW5jdGlvblwiXG4gICAgICAgICAgICAoeWVhckNsaWNrZWQpPVwic2VsZWN0ZWRZZWFyKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY2FsZW5kYXIteWVhci12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInYWdncmVnYXRlZFllYXInXCJcbiAgICAgICAgICAgICh5ZWFyc0NsaWNrZWQpPVwic2VsZWN0ZWRZZWFycygkZXZlbnQpXCJcbiAgICAgICAgICAgIFt5ZWFyU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICAgICAgW2FnZ3JlZ2F0ZWRZZWFyc1ZpZXdHcmlkXT1cImFnZ3JlZ2F0ZWRZZWFyR3JpZFwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW2ZvY3VzRXNjYXBlRnVuY3Rpb25dPVwiZXNjYXBlRm9jdXNGdW5jdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
615
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdGQUF3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Uzt1QkFBQyx3QkFBd0I7Z0JBS25DLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQywwQkFBMEI7Z0JBS3JDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBS3BDLDRCQUE0QjtzQkFEM0IsU0FBUzt1QkFBQyxtQ0FBbUM7Z0JBSzlDLHdCQUF3QjtzQkFEdkIsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBVWxDLDZCQUE2QjtzQkFENUIsS0FBSztnQkFVTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBdUJOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQVFOLHVCQUF1QjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgU3BlY2lhbERheVJ1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcblxuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi9tb2RlbHMvZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBDYWxlbmRhckN1cnJlbnQgfSBmcm9tICcuL21vZGVscy9jYWxlbmRhci1jdXJyZW50JztcbmltcG9ydCB7IENhbGVuZGFyWWVhckdyaWQgfSBmcm9tICcuL21vZGVscy9jYWxlbmRhci15ZWFyLWdyaWQnO1xuaW1wb3J0IHsgQWdncmVnYXRlZFllYXIgfSBmcm9tICcuL21vZGVscy9hZ2dyZWdhdGVkLXllYXInO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1kYXktdmlldy9jYWxlbmRhci1kYXktdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLW1vbnRoLXZpZXcvY2FsZW5kYXItbW9udGgtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLWhlYWRlci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IgfSBmcm9tICcuL2NhbGVuZGFyLWVycm9ycyc7XG5pbXBvcnQgeyBDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERpc2FibGVEYXRlRnVuY3Rpb24sIEVzY2FwZUZvY3VzRnVuY3Rpb24sIEZvY3VzYWJsZUNhbGVuZGFyVmlldyB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XG5pbXBvcnQgeyBDYWxlbmRhclR5cGUsIERheXNPZldlZWssIEZkQ2FsZW5kYXJWaWV3LCBOYXZpZ2F0aW9uQnV0dG9uRGlzYWJsZUZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycyxcbiAgICBDb250ZW50RGVuc2l0eU1vZGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5cbmxldCBjYWxlbmRhclVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBNb250aHM6IDEgPSBKYW51YXJ5LCAxMiA9IGRlY2VtYmVyLlxuICogRGF5czogMSA9IFN1bmRheSwgNyA9IFNhdHVyZGF5XG4gKlxuICogQ2FsZW5kYXIgY29tcG9uZW50IHVzZWQgZm9yIHNlbGVjdGluZyBkYXRlcywgdHlwaWNhbGx5IHVzZWQgYnkgdGhlIERhdGVQaWNrZXIgYW5kIERhdGVUaW1lUGlja2VyIGNvbXBvbmVudHMuXG4gKiBTdXBwb3J0cyB0aGUgQW5ndWxhciBmb3JtcyBtb2R1bGUsIGVuYWJsaW5nIGZvcm0gdmFsaWRpdHksIG5nTW9kZWwsIGV0Yy5cbiAqIGBgYGh0bWxcbiAqIDxmZC1jYWxlbmRhcj48L2ZkLWNhbGVuZGFyPlxuICogYGBgXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDYWxlbmRhckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2FsZW5kYXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKHtcbiAgICAgICAgICAgIG1vZGlmaWVyczoge1xuICAgICAgICAgICAgICAgIFtDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVF06ICdmZC1jYWxlbmRhci0tY29tcGFjdCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhmb2N1c291dCknOiAnX2ZvY3VzT3V0KCRldmVudCknLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgY2xhc3M6ICdmZC1jYWxlbmRhciBmZC1oYXMtZGlzcGxheS1ibG9jaydcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50PEQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uRGVzdHJveSB7XG4gICAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF0ZSBtb2RlbCBpbiBzaW5nbGUgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGVkRGF0ZTogTnVsbGFibGU8RD47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBzdW5kYXkvc2F0dXJkYXkgd2l0aCBgZmQtY2FsZW5kYXJfX2l0ZW0tLXdlZWtlbmRgIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYXJrV2Vla2VuZHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIHNob3cgd2VlayBudW1iZXJzIG5leHQgdG8gZGF5c1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1dlZWtOdW1iZXJzID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gbGFuZHNjYXBlIG1vZGUsIGl0IGFsc28gYWRkcyBjbG9zZSBidXR0b24gb24gcmlnaHQgc2lkZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jYWxlbmRhci0tbW9iaWxlLWxhbmRzY2FwZScpXG4gICAgbW9iaWxlTGFuZHNjYXBlID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBjYWxlbmRhciBpcyB1c2VkIGluc2lkZSBtb2JpbGUgaW4gcG9ydHJhaXQgbW9kZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1jYWxlbmRhci0tbW9iaWxlLXBvcnRyYWl0JylcbiAgICBtb2JpbGVQb3J0cmFpdCA9IGZhbHNlO1xuXG4gICAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgRmREYXRlcyBtb2RlbCBzdGFydCBhbmQgZW5kIGluIHJhbmdlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZFJhbmdlRGF0ZTogRGF0ZVJhbmdlPEQ+O1xuXG4gICAgLyoqIEFjdHVhbGx5IHNob3duIGFjdGl2ZSB2aWV3IG9uZSBvZiAnZGF5JyB8ICdtb250aCcgfCAneWVhcicgKi9cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZVZpZXc6IEZkQ2FsZW5kYXJWaWV3ID0gJ2RheSc7XG5cbiAgICAvKiogVGhlIGRheSBvZiB0aGUgd2VlayB0aGUgY2FsZW5kYXIgc2hvdWxkIHN0YXJ0IG9uLiAxIHJlcHJlc2VudHMgU3VuZGF5LCAyIGlzIE1vbmRheSwgMyBpcyBUdWVzZGF5LCBhbmQgc28gb24uICovXG4gICAgQElucHV0KClcbiAgICBzdGFydGluZ0RheU9mV2VlazogRGF5c09mV2VlaztcblxuICAgIC8qKiBUaGUgdHlwZSBvZiBjYWxlbmRhciwgJ3NpbmdsZScgZm9yIHNpbmdsZSBkYXRlIHNlbGVjdGlvbiBvciAncmFuZ2UnIGZvciBhIHJhbmdlIG9mIGRhdGVzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2FsVHlwZTogQ2FsZW5kYXJUeXBlID0gJ3NpbmdsZSc7XG5cbiAgICAvKiogSWQgb2YgdGhlIGNhbGVuZGFyLiBJZiBub25lIGlzIHByb3ZpZGVkLCBvbmUgd2lsbCBiZSBnZW5lcmF0ZWQuICovXG4gICAgQElucHV0KClcbiAgICBpZCA9ICdmZC1jYWxlbmRhci0nICsgY2FsZW5kYXJVbmlxdWVJZCsrO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lhbCBkYXlzIG1hcmssIGl0IGNhbiBiZSB1c2VkIGJ5IHBhc3NpbmcgYXJyYXkgb2Ygb2JqZWN0IHdpdGhcbiAgICAgKiBTcGVjaWFsIGRheSBudW1iZXIsIGxpc3QgMS0yMCBbY2xhc3M6YGZkLWNhbGVuZGFyX19zcGVjaWFsLWRheS0te3tudW1iZXJ9fWBdIGlzIGF2YWlsYWJsZSB0aGVyZTpcbiAgICAgKiBodHRwczovL3NhcC5naXRodWIuaW8vZnVuZGFtZW50YWwtc3R5bGVzL2NvbXBvbmVudHMvY2FsZW5kYXIuaHRtbCBjYWxlbmRhciBzcGVjaWFsIGRheXMgc2VjdGlvblxuICAgICAqIFJ1bGUgYWNjZXB0cyBtZXRob2Qgd2l0aCBEIG9iamVjdCBhcyBhIHBhcmFtZXRlci4gZXg6XG4gICAgICogYHJ1bGU6IChmZERhdGU6IEQpID0+IGZkRGF0ZS5nZXREYXkoKSA9PT0gMWAsIHdoaWNoIHdpbGwgbWFyayBhbGwgc3VuZGF5cyBhcyBzcGVjaWFsIGRheS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNwZWNpYWxEYXlzUnVsZXM6IFNwZWNpYWxEYXlSdWxlPEQ+W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiA1XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIE9iamVjdCB0byBjdXN0b21pemUgYWdncmVnYXRlZCB5ZWFyIGdyaWQsXG4gICAgICogUm93LCBDb2x1bW5zIGFuZCBtZXRob2QgdG8gZGlzcGxheSB5ZWFyIGNhbiBiZSBtb2RpZmllZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWdncmVnYXRlZFllYXJHcmlkOiBDYWxlbmRhclllYXJHcmlkID0ge1xuICAgICAgICByb3dzOiA0LFxuICAgICAgICBjb2xzOiAzXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byBtYXJrIGRheSBjZWxscyBvbiBob3Zlci5cbiAgICAgKiBXb3JrcyBvbmx5IG9uIHJhbmdlIG1vZGUsIHdoZW4gc3RhcnQgZGF0ZSBpcyBzZWxlY3RlZCBvbiBEYXkgVmlldy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJhbmdlSG92ZXJFZmZlY3QgPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSBhY3RpdmUgdmlldyBpcyBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYWN0aXZlVmlld0NoYW5nZTogRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmRDYWxlbmRhclZpZXc+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZGF0ZSBpbiBzaW5nbGUgbW9kZSBpcyBjaGFuZ2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RD4gPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgc2VsZWN0ZWQgZmlyc3Qgb3IgbGFzdCBkYXRlIGluIHJhbmdlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZVJhbmdlPEQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVJhbmdlPEQ+PigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHdoZW4gdmFsdWUgaXMgb3ZlcndyaXR0ZW4gZnJvbSBvdXRzaWRlIGFuZCB0aHJvdyBiYWNrIGlzVmFsaWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc1ZhbGlkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHdoZW4gY2FsZW5kYXIgc2hvdWxkIGJlIGNsb3NlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGNsb3NlQ2FsZW5kYXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24sIHdoZW4gY2xvc2UgYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjbG9zZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhckRheVZpZXdDb21wb25lbnQpXG4gICAgX2RheVZpZXdDb21wb25lbnQ6IENhbGVuZGFyRGF5Vmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudClcbiAgICBfbW9udGhWaWV3Q29tcG9uZW50OiBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50KVxuICAgIF95ZWFyVmlld0NvbXBvbmVudDogQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudClcbiAgICBfYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50OiBDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDxEPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYWxlbmRhckhlYWRlckNvbXBvbmVudClcbiAgICBfY2FsZW5kYXJIZWFkZXJDb21wb25lbnQ6IENhbGVuZGFySGVhZGVyQ29tcG9uZW50PEQ+O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIHByZXZpb3VzIGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIgaGVhZGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIHNlbGVjdGVkIGRhdGVcbiAgICAgKiBAcGFyYW0gY3VycmVudGx5RGlzcGxheWVkRGF0ZSBjdXJyZW50bHkgZGlzcGxheWVkIGRhdGVcbiAgICAgKiBAcGFyYW0gYWN0aXZlVmlldyBjdXJyZW50IHZpZXcgb2YgY2FsZW5kYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uOiBOYXZpZ2F0aW9uQnV0dG9uRGlzYWJsZUZ1bmN0aW9uPEQ+O1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIG5leHQgYnV0dG9uIGluIHRoZSBjYWxlbmRhciBoZWFkZXIuXG4gICAgICogQHBhcmFtIGRhdGUgc2VsZWN0ZWQgZGF0ZVxuICAgICAqIEBwYXJhbSBjdXJyZW50bHlEaXNwbGF5ZWREYXRlIGN1cnJlbnRseSBkaXNwbGF5ZWQgZGF0ZVxuICAgICAqIEBwYXJhbSBhY3RpdmVWaWV3IGN1cnJlbnQgdmlldyBvZiBjYWxlbmRhclxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbjogTmF2aWdhdGlvbkJ1dHRvbkRpc2FibGVGdW5jdGlvbjxEPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDdXJyZW50bHkgZGlzcGxheWVkIGRheXMgZGVwZW5kaW5nIG9uIG1vbnRoIGFuZCB5ZWFyXG4gICAgICovXG4gICAgX2N1cnJlbnRseURpc3BsYXllZDogQ2FsZW5kYXJDdXJyZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByZXZpb3VzQnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5leHRCdXR0b25EaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKiBUaGF0IGFsbG93cyB0byBkZWZpbmUgZnVuY3Rpb24gdGhhdCBzaG91bGQgaGFwcGVuLCB3aGVuIGZvY3VzIHNob3VsZCBub3JtYWxseSBlc2NhcGUgb2YgY29tcG9uZW50ICovXG4gICAgQElucHV0KClcbiAgICBlc2NhcGVGb2N1c0Z1bmN0aW9uOiBFc2NhcGVGb2N1c0Z1bmN0aW9uID0gKGV2ZW50PzogS2V5Ym9hcmRFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJIZWFkZXJDb21wb25lbnQ/LmZvY3VzKCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBjZXJ0YWluIGRhdGVzIGluIHRoZSBjYWxlbmRhci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlRnVuY3Rpb246IERpc2FibGVEYXRlRnVuY3Rpb248RD4gPSAoKSA9PiBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBjZXJ0YWluIGRhdGVzIGluIHRoZSBjYWxlbmRhciBmb3IgdGhlIHJhbmdlIHN0YXJ0IHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgZm9yIHRoZSByYW5nZSBlbmQgc2VsZWN0aW9uLlxuICAgICAqIEBwYXJhbSBkYXRlIGRhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAoXzogRCB8IERhdGVSYW5nZTxEPikgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgLy8gVXNlIEBPcHRpb25hbCB0byBhdm9pZCBhbmd1bGFyIGluamVjdGlvbiBlcnJvciBtZXNzYWdlIGFuZCB0aHJvdyBvdXIgb3duIHdoaWNoIGlzIG1vcmUgcHJlY2lzZSBvbmVcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGF0ZVRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RD4sXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVUaW1lRm9ybWF0czogRGF0ZVRpbWVGb3JtYXRzXG4gICAgKSB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVBZGFwdGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RhdGVUaW1lQWRhcHRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fZGF0ZVRpbWVGb3JtYXRzKSB7XG4gICAgICAgICAgICB0aHJvdyBjcmVhdGVNaXNzaW5nRGF0ZUltcGxlbWVudGF0aW9uRXJyb3IoJ0RBVEVfVElNRV9GT1JNQVRTJyk7XG4gICAgICAgIH1cbiAgICAgICAgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuc3Vic2NyaWJlKCk7XG4gICAgICAgIC8vIHNldCBkZWZhdWx0IHZhbHVlXG4gICAgICAgIHRoaXMuX2FkYXB0ZXJTdGFydGluZ0RheU9mV2VlayA9ICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSArIDEpIGFzIERheXNPZldlZWs7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLnRvZGF5KCk7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0xvY2FsZUNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmVwYXJlRGlzcGxheWVkVmlldygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAnbmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbicgaW4gY2hhbmdlcyB8fFxuICAgICAgICAgICAgJ3ByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uJyBpbiBjaGFuZ2VzIHx8XG4gICAgICAgICAgICAnX2N1cnJlbnRseURpc3BsYXllZCcgaW4gY2hhbmdlc1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRXZWVrU3RhcnREYXkoKTogRGF5c09mV2VlayB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrID09PSB1bmRlZmluZWQgPyB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgOiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBwcm92aWRlcyBzdXBwb3J0IGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciB0aGF0IGFsbG93cyB0byB1c2UgWyhuZ01vZGVsKV0gb3IgZm9ybXMuXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogRGF0ZVJhbmdlPEQ+IHwgRCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IDxEPnNlbGVjdGVkO1xuXG4gICAgICAgICAgICB2YWxpZCA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gPERhdGVSYW5nZTxEPj5zZWxlY3RlZDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZC5zdGFydCkgfHwgIXRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkLmVuZCkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBzZWxlY3RlZC5zdGFydCxcbiAgICAgICAgICAgICAgICBlbmQ6IHNlbGVjdGVkLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmFsaWREYXRlQ2hhbmdlLmVtaXQodmFsaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgVmFsaWRhdG9yIEludGVyZmFjZSwgYWRkcyB2YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGZvcm1zXG4gICAgICovXG4gICAgdmFsaWRhdGUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vZGVsVmFsaWQoKVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZSBhY3RpdmUgdmlldyBjaGFuZ2UgYW5kIHRocm93cyBldmVudC5cbiAgICAgKlxuICAgICAqIEZpcmVkIGJ5IGNhbGVuZGFyIGhlYWRlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgaGFuZGxlQWN0aXZlVmlld0NoYW5nZShhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyk6IHZvaWQge1xuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gdGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBhY3RpdmVWaWV3O1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGFjdGl2ZVZpZXcpO1xuXG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9udGhWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhclZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnYWdncmVnYXRlZFllYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhcnNSYW5nZVZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCBzaW5nbGUgZGF0ZSBjaGFuZ2VkXG4gICAgICovXG4gICAgc2VsZWN0ZWREYXRlQ2hhbmdlZChkYXRlOiBEKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCByYW5nZSBkYXRlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoZGF0ZXM6IERhdGVSYW5nZTxEPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgPSB7IHN0YXJ0OiBkYXRlcy5zdGFydCwgZW5kOiBkYXRlcy5lbmQgPyBkYXRlcy5lbmQgOiBkYXRlcy5zdGFydCB9O1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUpO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlKTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VDYWxlbmRhci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIG5leHQgYXJyb3cgaWNvbiBjbGljaywgZGVwZW5kaW5nIG9uIGN1cnJlbnQgdmlldyBpdCBjaGFuZ2VzIG1vbnRoLCB5ZWFyIG9yIGxpc3Qgb2YgeWVhcnMgKi9cbiAgICBoYW5kbGVOZXh0QXJyb3dDbGljaygpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmV4dE1vbnRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5TmV4dFllYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyTGlzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYWdncmVnYXRlZFllYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyc0xpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGhhbmRsZXMgcHJldmlvdXMgYXJyb3cgaWNvbiBjbGljaywgZGVwZW5kaW5nIG9uIGN1cnJlbnQgdmlldyBpdCBjaGFuZ2VzIG1vbnRoLCB5ZWFyIG9yIGxpc3Qgb2YgeWVhcnMgKi9cbiAgICBoYW5kbGVQcmV2aW91c0Fycm93Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzTW9udGgoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXIoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzWWVhckxpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXJzTGlzdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldE5hdmlnYXRpb25CdXR0b25zU3RhdGVzKCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWwgdmlldyB0byBuZXh0IG1vbnRoICovXG4gICAgZGlzcGxheU5leHRNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCA9PT0gMTIpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgKyAxLCBtb250aDogMSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggKyAxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWwgdmlldyB0byBwcmV2aW91cyBtb250aCAqL1xuICAgIGRpc3BsYXlQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoIDw9IDEpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgLSAxLCBtb250aDogMTIgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhcixcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoIC0gMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gbmV4dCB5ZWFyICovXG4gICAgZGlzcGxheU5leHRZZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyICsgMSB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gcHJldmlvdXMgeWVhciAqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCwgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgLSAxIH07XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIG5leHQgeWVhciBsaXN0Ki9cbiAgICBkaXNwbGF5TmV4dFllYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5sb2FkTmV4dFllYXJMaXN0KCk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsXG4gICAgICAgICAgICB5ZWFyOiB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5fZmlyc3RZZWFySW5MaXN0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIHByZXZpb3VzIHllYXIgbGlzdCovXG4gICAgZGlzcGxheVByZXZpb3VzWWVhckxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50LmxvYWRQcmV2aW91c1llYXJMaXN0KCk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsXG4gICAgICAgICAgICB5ZWFyOiB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5fZmlyc3RZZWFySW5MaXN0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIG5leHQgeWVhciBsaXN0Ki9cbiAgICBkaXNwbGF5TmV4dFllYXJzTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50LmxvYWROZXh0WWVhcnNMaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIHN3aXRjaCBhY3R1YWxseSBkaXNwbGF5ZWQgbGlzdCBvZiB5ZWFyIHRvIHByZXZpb3VzIHllYXIgbGlzdCovXG4gICAgZGlzcGxheVByZXZpb3VzWWVhcnNMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQubG9hZFByZXZpb3VzWWVhcnNMaXN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gY2hhbmdlIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGgveWVhciBjb25maWd1cmF0aW9uLFxuICAgICAqIHdoaWNoIGFyZSBjb25uZWN0ZWQgdG8gZGF5cyBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBzZXRDdXJyZW50bHlEaXNwbGF5ZWQoZGF0ZTogTnVsbGFibGU8RD4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKGRhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aChkYXRlISksXG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIoZGF0ZSEpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IGluaXRpYWwgZm9jdXMgb24gb25lIG9mIHRoZSBjYWxlbmRhcidzIGVsZW1lbnRcbiAgICAgKi9cbiAgICBpbml0aWFsRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dldEFjdGl2ZUZvY3VzYWJsZVZpZXcoKT8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIGNoYW5nZXMgZnJvbSBtb250aCB2aWV3IGNoaWxkIGNvbXBvbmVudCwgY2hhbmdlcyBhY3R1YWwgdmlldyBhbmQgY2hhbmdlcyBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoXG4gICAgICovXG4gICAgaGFuZGxlTW9udGhWaWV3Q2hhbmdlKG1vbnRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyBtb250aCwgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgfTtcbiAgICAgICAgdGhpcy5hY3RpdmVWaWV3ID0gJ2RheSc7XG4gICAgICAgIHRoaXMub25EYXlzVmlld1NlbGVjdGVkKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KHRoaXMuYWN0aXZlVmlldyk7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRZZWFyKHllYXJTZWxlY3RlZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXknO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciA9IHllYXJTZWxlY3RlZDtcbiAgICAgICAgdGhpcy5vbkRheXNWaWV3U2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZFllYXJzKHllYXJzU2VsZWN0ZWQ6IEFnZ3JlZ2F0ZWRZZWFyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICd5ZWFyJztcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgLi4udGhpcy5fY3VycmVudGx5RGlzcGxheWVkLFxuICAgICAgICAgICAgeWVhcjogeWVhcnNTZWxlY3RlZC5zdGFydFllYXJcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vblllYXJWaWV3U2VsZWN0ZWQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uRGF5c1ZpZXdTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9kYXlWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Nb250aFZpZXdTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9tb250aFZpZXdDb21wb25lbnQ/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblllYXJWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5feWVhclZpZXdDb21wb25lbnQ/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblllYXJzUmFuZ2VWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBwcm92aWRlcyBpbmZvcm1hdGlvbiBpZiBtb2RlbCBzZWxlY3RlZCBkYXRlL2RhdGVzIGhhdmUgcHJvcGVybHkgdHlwZXMgYW5kIGFyZSB2YWxpZCAqL1xuICAgIGlzTW9kZWxWYWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsVHlwZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY2FsVHlwZSA9PT0gJ3JhbmdlJykge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydCkgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Mb2NhbGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5sb2NhbGVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrID0gKHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRGaXJzdERheU9mV2VlaygpICsgMSkgYXMgRGF5c09mV2VlaztcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB0aGF0IHNldHMgdXAgdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgdmFyaWFibGVzLCBsaWtlIHNob3duIG1vbnRoIGFuZCB5ZWFyLlxuICAgICAqIERheSBncmlkIGlzIGJhc2VkIG9uIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGggYW5kIHllYXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9wcmVwYXJlRGlzcGxheWVkVmlldygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY2FsVHlwZSA9PT0gJ3NpbmdsZScgJiYgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZERhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIodGhpcy5zZWxlY3RlZERhdGUpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgJiYgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydCkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5zdGFydClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSAmJiB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZCkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuZW5kKSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuZW5kKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLnRvZGF5KCk7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldFllYXIodG9kYXkpLFxuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgodG9kYXkpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRBY3RpdmVGb2N1c2FibGVWaWV3KCk6IEZvY3VzYWJsZUNhbGVuZGFyVmlldyB8IG51bGwge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF5Vmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgY2FzZSAnYWdncmVnYXRlZFllYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVkID1cbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLnByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzQnV0dG9uRGlzYWJsZUZ1bmN0aW9uKHRoaXMuc2VsZWN0ZWREYXRlLCB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQsIHRoaXMuYWN0aXZlVmlldyk7XG4gICAgICAgIHRoaXMubmV4dEJ1dHRvbkRpc2FibGVkID1cbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLm5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgICAgIHRoaXMubmV4dEJ1dHRvbkRpc2FibGVGdW5jdGlvbih0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLCB0aGlzLmFjdGl2ZVZpZXcpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzT3V0KGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLWNhbGVuZGFyLWhlYWRlclxuICAgIFtjdXJyZW50bHlEaXNwbGF5ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZFwiXG4gICAgW2FjdGl2ZVZpZXddPVwiYWN0aXZlVmlld1wiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbY2FsZW5kYXJZZWFyR3JpZF09XCJ5ZWFyR3JpZFwiXG4gICAgW21vYmlsZUxhbmRzY2FwZV09XCJtb2JpbGVMYW5kc2NhcGVcIlxuICAgIChjbG9zZUNsaWNrZWQpPVwiY2xvc2VDbGlja2VkLmVtaXQoKVwiXG4gICAgKG5leHRDbGlja2VkKT1cImhhbmRsZU5leHRBcnJvd0NsaWNrKClcIlxuICAgIChwcmV2aW91c0NsaWNrZWQpPVwiaGFuZGxlUHJldmlvdXNBcnJvd0NsaWNrKClcIlxuICAgIFtwcmV2aW91c0J1dHRvbkRpc2FibGVkXT1cInByZXZpb3VzQnV0dG9uRGlzYWJsZWRcIlxuICAgIFtuZXh0QnV0dG9uRGlzYWJsZWRdPVwibmV4dEJ1dHRvbkRpc2FibGVkXCJcbiAgICAoYWN0aXZlVmlld0NoYW5nZSk9XCJoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlKCRldmVudClcIlxuPjwvZmQtY2FsZW5kYXItaGVhZGVyPlxuPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aXZlVmlld1wiICpuZ0lmPVwiX2N1cnJlbnRseURpc3BsYXllZFwiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmZC1jYWxlbmRhcl9fY29udGVudFwiXG4gICAgICAgIFtjbGFzcy5mZC1jYWxlbmRhcl9fY29udGVudC0tZGF0ZXNdPVwiYWN0aXZlVmlldyA9PT0gJ2RheSdcIlxuICAgICAgICBbY2xhc3MuZmQtY2FsZW5kYXJfX2NvbnRlbnQtLW1vbnRoc109XCJhY3RpdmVWaWV3ID09PSAnbW9udGgnXCJcbiAgICAgICAgW2NsYXNzLmZkLWNhbGVuZGFyX19jb250ZW50LS15ZWFyc109XCJhY3RpdmVWaWV3ID09PSAneWVhcicgfHwgYWN0aXZlVmlldyA9PT0gJ2FnZ3JlZ2F0ZWRZZWFyJ1wiXG4gICAgPlxuICAgICAgICA8ZmQtY2FsZW5kYXItZGF5LXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF5J1wiXG4gICAgICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgICBbc2hvd1dlZWtOdW1iZXJzXT1cInNob3dXZWVrTnVtYmVyc1wiXG4gICAgICAgICAgICBbbWFya1dlZWtlbmRzXT1cIm1hcmtXZWVrZW5kc1wiXG4gICAgICAgICAgICAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cInNlbGVjdGVkRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRSYW5nZURhdGVdPVwic2VsZWN0ZWRSYW5nZURhdGVcIlxuICAgICAgICAgICAgKHNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlKT1cInNlbGVjdGVkUmFuZ2VEYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtjdXJyZW50bHlEaXNwbGF5ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZFwiXG4gICAgICAgICAgICBbc3RhcnRpbmdEYXlPZldlZWtdPVwiZ2V0V2Vla1N0YXJ0RGF5KClcIlxuICAgICAgICAgICAgW2Rpc2FibGVGdW5jdGlvbl09XCJkaXNhYmxlRnVuY3Rpb25cIlxuICAgICAgICAgICAgW2Rpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZUVuZEZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uXT1cImRpc2FibGVSYW5nZVN0YXJ0RnVuY3Rpb25cIlxuICAgICAgICAgICAgW2NhbFR5cGVdPVwiY2FsVHlwZVwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW3JhbmdlSG92ZXJFZmZlY3RdPVwicmFuZ2VIb3ZlckVmZmVjdFwiXG4gICAgICAgICAgICBbc3BlY2lhbERheXNSdWxlc109XCJzcGVjaWFsRGF5c1J1bGVzXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKG5leHRNb250aFNlbGVjdCk9XCJkaXNwbGF5TmV4dE1vbnRoKClcIlxuICAgICAgICAgICAgKHByZXZpb3VzTW9udGhTZWxlY3QpPVwiZGlzcGxheVByZXZpb3VzTW9udGgoKVwiXG4gICAgICAgID48L2ZkLWNhbGVuZGFyLWRheS12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXItbW9udGgtdmlld1xuICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIlxuICAgICAgICAgICAgW21vbnRoU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC5tb250aFwiXG4gICAgICAgICAgICBbeWVhcl09XCJfY3VycmVudGx5RGlzcGxheWVkLnllYXJcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKG1vbnRoQ2xpY2tlZCk9XCJoYW5kbGVNb250aFZpZXdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L2ZkLWNhbGVuZGFyLW1vbnRoLXZpZXc+XG4gICAgICAgIDxmZC1jYWxlbmRhci15ZWFyLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIneWVhcidcIlxuICAgICAgICAgICAgW3llYXJTZWxlY3RlZF09XCJfY3VycmVudGx5RGlzcGxheWVkLnllYXJcIlxuICAgICAgICAgICAgW3llYXJWaWV3R3JpZF09XCJ5ZWFyR3JpZFwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW2ZvY3VzRXNjYXBlRnVuY3Rpb25dPVwiZXNjYXBlRm9jdXNGdW5jdGlvblwiXG4gICAgICAgICAgICAoeWVhckNsaWNrZWQpPVwic2VsZWN0ZWRZZWFyKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY2FsZW5kYXIteWVhci12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInYWdncmVnYXRlZFllYXInXCJcbiAgICAgICAgICAgICh5ZWFyc0NsaWNrZWQpPVwic2VsZWN0ZWRZZWFycygkZXZlbnQpXCJcbiAgICAgICAgICAgIFt5ZWFyU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICAgICAgW2FnZ3JlZ2F0ZWRZZWFyc1ZpZXdHcmlkXT1cImFnZ3JlZ2F0ZWRZZWFyR3JpZFwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW2ZvY3VzRXNjYXBlRnVuY3Rpb25dPVwiZXNjYXBlRm9jdXNGdW5jdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgPC9mZC1jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -15,6 +15,8 @@ import * as i0 from "@angular/core";
15
15
  */
16
16
  export class ScrollbarComponent {
17
17
  constructor() {
18
+ /** @hidden */
19
+ this._tabindex = 0;
18
20
  /** @hidden */
19
21
  this._noHorizontalScroll = false;
20
22
  /** @hidden */
@@ -66,7 +68,7 @@ export class ScrollbarComponent {
66
68
  }
67
69
  }
68
70
  ScrollbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ScrollbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
- ScrollbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ScrollbarComponent, selector: "[fd-scrollbar]", inputs: { noHorizontalScroll: "noHorizontalScroll", noVerticalScroll: "noVerticalScroll", alwaysVisible: "alwaysVisible" }, host: { properties: { "style.overflow-x": "this._overflowX", "style.overflow-y": "this._overflowY" }, classAttribute: "fd-scrollbar" }, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, styles: ["/*!\n * Fundamental Library Styles v0.25.0-rc.35\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-scrollbar{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;overflow:auto;padding:0;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-scrollbar:after,.fd-scrollbar:before{box-sizing:inherit;font-size:inherit}.fd-scrollbar::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-scrollbar::-webkit-scrollbar-corner,.fd-scrollbar::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-scrollbar::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-scrollbar::-webkit-scrollbar-thumb:active,.fd-scrollbar::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
71
+ ScrollbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ScrollbarComponent, selector: "[fd-scrollbar]", inputs: { noHorizontalScroll: "noHorizontalScroll", noVerticalScroll: "noVerticalScroll", alwaysVisible: "alwaysVisible" }, host: { properties: { "attr.tabindex": "this._tabindex", "style.overflow-x": "this._overflowX", "style.overflow-y": "this._overflowY" }, classAttribute: "fd-scrollbar" }, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, styles: ["/*!\n * Fundamental Library Styles v0.25.0-rc.35\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-scrollbar{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;overflow:auto;padding:0;scrollbar-color:var(--fdScrollbar_Thumb_Color) var(--fdScrollbar_Track_Color)}.fd-scrollbar:after,.fd-scrollbar:before{box-sizing:inherit;font-size:inherit}.fd-scrollbar::-webkit-scrollbar{height:var(--fdScrollbar_Dimension);width:var(--fdScrollbar_Dimension)}.fd-scrollbar::-webkit-scrollbar-corner,.fd-scrollbar::-webkit-scrollbar-track{background-color:var(--fdScrollbar_Track_Color)}.fd-scrollbar::-webkit-scrollbar-thumb{-webkit-box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color);background-color:transparent;border:var(--fdScrollbar_Thumb_Offset) solid transparent;border-radius:calc(var(--fdScrollbar_Thumb_Border_Radius) - var(--fdScrollbar_Thumb_Offset));box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Color)}.fd-scrollbar::-webkit-scrollbar-thumb:active,.fd-scrollbar::-webkit-scrollbar-thumb:hover{box-shadow:inset 0 0 0 var(--fdScrollbar_Dimension) var(--fdScrollbar_Thumb_Hover_Color)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
70
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ScrollbarComponent, decorators: [{
71
73
  type: Component,
72
74
  args: [{ selector: '[fd-scrollbar]', template: ` <ng-content></ng-content>`, host: {
@@ -78,6 +80,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
78
80
  type: Input
79
81
  }], alwaysVisible: [{
80
82
  type: Input
83
+ }], _tabindex: [{
84
+ type: HostBinding,
85
+ args: ['attr.tabindex']
81
86
  }], _overflowX: [{
82
87
  type: HostBinding,
83
88
  args: ['style.overflow-x']
@@ -85,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
85
90
  type: HostBinding,
86
91
  args: ['style.overflow-y']
87
92
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3Njcm9sbGJhci9zY3JvbGxiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSTVFOzs7Ozs7Ozs7OztHQVdHO0FBWUgsTUFBTSxPQUFPLGtCQUFrQjtJQVgvQjtRQTJESSxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXBDLGNBQWM7UUFDTixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsY0FBYztRQUNOLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBVWxDO0lBaEVHLDREQUE0RDtJQUM1RCxJQUNJLGtCQUFrQixDQUFDLEtBQW1CO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxJQUNJLGdCQUFnQixDQUFDLEtBQW1CO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxJQUNJLGFBQWEsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNkLElBQ0ksVUFBVTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFXRCxjQUFjO0lBQ2QsSUFBWSxTQUFTO1FBQ2pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7OytHQWhFUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwwVEFSakIsNEJBQTRCOzJGQVE3QixrQkFBa0I7a0JBWDlCLFNBQVM7K0JBRUksZ0JBQWdCLFlBQ2hCLDRCQUE0QixRQUNoQzt3QkFDRixLQUFLLEVBQUUsY0FBYztxQkFDeEIsaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFLM0Msa0JBQWtCO3NCQURyQixLQUFLO2dCQVVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRixhQUFhO3NCQURoQixLQUFLO2dCQVVGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBVzNCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmV4cG9ydCB0eXBlIFNjcm9sbGJhck92ZXJmbG93T3B0aW9ucyA9ICdhdXRvJyB8ICdzY3JvbGwnIHwgJ2hpZGRlbic7XG5cbi8qKlxuICogVGhlIHNjcm9sbGJhciBkaXJlY3RpdmUuXG4gKlxuICogQ2hpbGRyZW4gdXNhZ2U6XG4gKiBgYGBodG1sXG4gKiA8ZGl2IGZkLXNjcm9sbGJhcj5cbiAqIDxkaXYgZmQtc2Nyb2xsYmFyIG5vVmVydGljYWxTY3JvbGw+XG4gKiA8ZGl2IGZkLXNjcm9sbGJhciBbbm9WZXJ0aWNhbFNjcm9sbF09XCJ0cnVlXCI+XG4gKiA8ZGl2IGZkLXNjcm9sbGJhciBub0hvcml6b250YWxTY3JvbGw+XG4gKiA8ZGl2IGZkLXNjcm9sbGJhciBbbm9Ib3Jpem9udGFsU2Nyb2xsXT1cInRydWVcIj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLXNjcm9sbGJhcl0nLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1zY3JvbGxiYXInXG4gICAgfSxcbiAgICBzdHlsZVVybHM6IFsnLi9zY3JvbGxiYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGJhckNvbXBvbmVudCB7XG4gICAgLyoqIFdoZXRoZXIgb3ZlcmZsb3cgaG9yaXpvbnRhbCBjb250ZW50IHNob3VsZCBiZSBoaWRkZW4uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgbm9Ib3Jpem9udGFsU2Nyb2xsKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fbm9Ib3Jpem9udGFsU2Nyb2xsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IG5vSG9yaXpvbnRhbFNjcm9sbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vSG9yaXpvbnRhbFNjcm9sbDtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciBvdmVyZmxvdyB2ZXJ0aWNhbCBjb250ZW50IHNob3VsZCBiZSBoaWRkZW4uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgbm9WZXJ0aWNhbFNjcm9sbCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX25vVmVydGljYWxTY3JvbGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgbm9WZXJ0aWNhbFNjcm9sbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vVmVydGljYWxTY3JvbGw7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgc2Nyb2xsYmFycyBzaG91bGQgYmUgdmlzaWJsZSBldmVuIGlmIGNvbnRlbnQgZml0cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhbHdheXNWaXNpYmxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fYWx3YXlzVmlzaWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBhbHdheXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWx3YXlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUub3ZlcmZsb3cteCcpXG4gICAgZ2V0IF9vdmVyZmxvd1goKTogU2Nyb2xsYmFyT3ZlcmZsb3dPcHRpb25zIHtcbiAgICAgICAgaWYgKHRoaXMubm9Ib3Jpem9udGFsU2Nyb2xsKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2hpZGRlbic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmZsb3c7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm92ZXJmbG93LXknKVxuICAgIGdldCBfb3ZlcmZsb3dZKCk6IFNjcm9sbGJhck92ZXJmbG93T3B0aW9ucyB7XG4gICAgICAgIGlmICh0aGlzLm5vVmVydGljYWxTY3JvbGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnaGlkZGVuJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVyZmxvdztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25vSG9yaXpvbnRhbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ub1ZlcnRpY2FsU2Nyb2xsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Fsd2F5c1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX292ZXJmbG93KCk6IFNjcm9sbGJhck92ZXJmbG93T3B0aW9ucyB7XG4gICAgICAgIGlmICh0aGlzLmFsd2F5c1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnc2Nyb2xsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnYXV0byc7XG4gICAgfVxufVxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3Njcm9sbGJhci9zY3JvbGxiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBSTVFOzs7Ozs7Ozs7OztHQVdHO0FBWUgsTUFBTSxPQUFPLGtCQUFrQjtJQVgvQjtRQXVDSSxjQUFjO1FBRWQsY0FBUyxHQUFHLENBQUMsQ0FBQztRQXNCZCxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXBDLGNBQWM7UUFDTixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsY0FBYztRQUNOLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBVWxDO0lBcEVHLDREQUE0RDtJQUM1RCxJQUNJLGtCQUFrQixDQUFDLEtBQW1CO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxJQUNJLGdCQUFnQixDQUFDLEtBQW1CO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxJQUNJLGFBQWEsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQU1ELGNBQWM7SUFDZCxJQUNJLFVBQVU7UUFDVixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztJQUNkLElBQ0ksVUFBVTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFXRCxjQUFjO0lBQ2QsSUFBWSxTQUFTO1FBQ2pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNwQixPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7OytHQXBFUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2VkFSakIsNEJBQTRCOzJGQVE3QixrQkFBa0I7a0JBWDlCLFNBQVM7K0JBRUksZ0JBQWdCLFlBQ2hCLDRCQUE0QixRQUNoQzt3QkFDRixLQUFLLEVBQUUsY0FBYztxQkFDeEIsaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFLM0Msa0JBQWtCO3NCQURyQixLQUFLO2dCQVVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRixhQUFhO3NCQURoQixLQUFLO2dCQVVOLFNBQVM7c0JBRFIsV0FBVzt1QkFBQyxlQUFlO2dCQUt4QixVQUFVO3NCQURiLFdBQVc7dUJBQUMsa0JBQWtCO2dCQVczQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5leHBvcnQgdHlwZSBTY3JvbGxiYXJPdmVyZmxvd09wdGlvbnMgPSAnYXV0bycgfCAnc2Nyb2xsJyB8ICdoaWRkZW4nO1xuXG4vKipcbiAqIFRoZSBzY3JvbGxiYXIgZGlyZWN0aXZlLlxuICpcbiAqIENoaWxkcmVuIHVzYWdlOlxuICogYGBgaHRtbFxuICogPGRpdiBmZC1zY3JvbGxiYXI+XG4gKiA8ZGl2IGZkLXNjcm9sbGJhciBub1ZlcnRpY2FsU2Nyb2xsPlxuICogPGRpdiBmZC1zY3JvbGxiYXIgW25vVmVydGljYWxTY3JvbGxdPVwidHJ1ZVwiPlxuICogPGRpdiBmZC1zY3JvbGxiYXIgbm9Ib3Jpem9udGFsU2Nyb2xsPlxuICogPGRpdiBmZC1zY3JvbGxiYXIgW25vSG9yaXpvbnRhbFNjcm9sbF09XCJ0cnVlXCI+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1zY3JvbGxiYXJdJyxcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtc2Nyb2xsYmFyJ1xuICAgIH0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxiYXJDb21wb25lbnQge1xuICAgIC8qKiBXaGV0aGVyIG92ZXJmbG93IGhvcml6b250YWwgY29udGVudCBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG5vSG9yaXpvbnRhbFNjcm9sbCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX25vSG9yaXpvbnRhbFNjcm9sbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBub0hvcml6b250YWxTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub0hvcml6b250YWxTY3JvbGw7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgb3ZlcmZsb3cgdmVydGljYWwgY29udGVudCBzaG91bGQgYmUgaGlkZGVuLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG5vVmVydGljYWxTY3JvbGwodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9ub1ZlcnRpY2FsU2Nyb2xsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IG5vVmVydGljYWxTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub1ZlcnRpY2FsU2Nyb2xsO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHNjcm9sbGJhcnMgc2hvdWxkIGJlIHZpc2libGUgZXZlbiBpZiBjb250ZW50IGZpdHMuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYWx3YXlzVmlzaWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2Fsd2F5c1Zpc2libGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgYWx3YXlzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fsd2F5c1Zpc2libGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIF90YWJpbmRleCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUub3ZlcmZsb3cteCcpXG4gICAgZ2V0IF9vdmVyZmxvd1goKTogU2Nyb2xsYmFyT3ZlcmZsb3dPcHRpb25zIHtcbiAgICAgICAgaWYgKHRoaXMubm9Ib3Jpem9udGFsU2Nyb2xsKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2hpZGRlbic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmZsb3c7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm92ZXJmbG93LXknKVxuICAgIGdldCBfb3ZlcmZsb3dZKCk6IFNjcm9sbGJhck92ZXJmbG93T3B0aW9ucyB7XG4gICAgICAgIGlmICh0aGlzLm5vVmVydGljYWxTY3JvbGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnaGlkZGVuJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVyZmxvdztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25vSG9yaXpvbnRhbFNjcm9sbCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ub1ZlcnRpY2FsU2Nyb2xsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Fsd2F5c1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX292ZXJmbG93KCk6IFNjcm9sbGJhck92ZXJmbG93T3B0aW9ucyB7XG4gICAgICAgIGlmICh0aGlzLmFsd2F5c1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybiAnc2Nyb2xsJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAnYXV0byc7XG4gICAgfVxufVxuIl19
@@ -2516,10 +2516,18 @@ class CalendarComponent {
2516
2516
  /** Function that allows to switch actually displayed list of year to next year list*/
2517
2517
  displayNextYearList() {
2518
2518
  this._yearViewComponent.loadNextYearList();
2519
+ this._currentlyDisplayed = {
2520
+ month: this._currentlyDisplayed.month,
2521
+ year: this._yearViewComponent._firstYearInList
2522
+ };
2519
2523
  }
2520
2524
  /** Function that allows to switch actually displayed list of year to previous year list*/
2521
2525
  displayPreviousYearList() {
2522
2526
  this._yearViewComponent.loadPreviousYearList();
2527
+ this._currentlyDisplayed = {
2528
+ month: this._currentlyDisplayed.month,
2529
+ year: this._yearViewComponent._firstYearInList
2530
+ };
2523
2531
  }
2524
2532
  /** Function that allows to switch actually displayed list of year to next year list*/
2525
2533
  displayNextYearsList() {