@ieeesa-npm/groups 0.15.25 → 0.15.27

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.
@@ -141,7 +141,7 @@ export class InterestedRostersComponent {
141
141
  this.totalRecords = 0;
142
142
  this.paginatorConfig = { ...this.paginatorConfig, totalRecords: 0 };
143
143
  this.isLoading = false;
144
- this.groupsService.handleErrors(error);
144
+ this.groupsService.handleErrors(error, false);
145
145
  this.cdr.detectChanges();
146
146
  },
147
147
  });
@@ -380,4 +380,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
380
380
  type: Inject,
381
381
  args: [MAT_DIALOG_DATA]
382
382
  }] }]; } });
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3RlZC1yb3N0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJlc3RlZC1yb3N0ZXJzL2ludGVyZXN0ZWQtcm9zdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0ZWQtcm9zdGVycy9pbnRlcmVzdGVkLXJvc3RlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd2RixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUlkLGVBQWUsR0FDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQVNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7OztBQVFoRzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQVNILE1BQU0sT0FBTywwQkFBMEI7SUE0Q3JDO0lBQ0UsMENBQTBDO0lBQ2xDLE1BQWlCO0lBQ3pCLDBDQUEwQztJQUNsQyxhQUE0QjtJQUNwQywwQ0FBMEM7SUFDbEMsR0FBc0I7SUFDOUIsMENBQTBDO0lBQ0UsS0FBdUI7UUFOM0QsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUVqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU1QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUVjLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBbkRyRSw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFNBQVMsQ0FBQztRQUMzQixVQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLENBQUM7UUFFbkQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFMUM7Ozs7V0FJRztRQUNILHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFFeEMsWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDakMsY0FBUyxHQUF1QixFQUFFLENBQUM7UUFDbkMsaUJBQVksR0FBbUMsRUFBRSxDQUFDO1FBRWxELGdGQUFnRjtRQUNoRixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixvQkFBZSxHQUFvQjtZQUNqQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEQsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsZUFBZTtZQUM1QyxZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDO1FBQ0YsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLHdCQUFtQixHQUFHLGFBQWEsQ0FBQztRQUNwQywrQkFBMEIsR0FBc0IsTUFBTSxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUM7UUFFeEQsMEVBQTBFO1FBQzFFLGlCQUFZLEdBQWlCO1lBQzNCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsY0FBYyxFQUFFLEtBQUs7WUFDckIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsY0FBYyxFQUFFLEtBQUs7U0FDdEIsQ0FBQztRQUVGLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFXZixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxxQkFBcUI7UUFDM0IsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sT0FBTyxHQUFvQztZQUMvQyxPQUFPLEVBQUU7Z0JBQ1AsbUJBQW1CLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO2dCQUM1RCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO2dCQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNsQztTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYTthQUNmLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7YUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxFQUFFLFlBQVksSUFBSSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUc7b0JBQ3JCLEdBQUcsSUFBSSxDQUFDLGVBQWU7b0JBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDaEMsQ0FBQztnQkFDRixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUN2QixDQUFDO2dCQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFnQjtRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixHQUFHLElBQUksQ0FBQyxlQUFlO1lBQ3ZCLGNBQWMsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFXO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUM7UUFDeEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ssV0FBVyxDQUFDLElBQStCO1FBQ2pELE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVU7WUFDNUIsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNO1lBQ3BCLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUM7WUFDbEUsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1lBQ3RELFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU07Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsSUFBSSxJQUFJO2dCQUN2QyxDQUFDLENBQUMsSUFBSTtTQUNULENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQUMsV0FBbUI7UUFDM0MsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLFdBQVc7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxzQkFBc0I7UUFDNUIsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTO1lBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxTQUFTLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxhQUFhO2FBQ2YsaUJBQWlCLENBQUMsU0FBUyxDQUFDO2FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7cUJBQ2xFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxtQkFBbUIsQ0FBQyxLQUduQjtRQUNDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUM3QixNQUFNLE9BQU8sR0FDWCxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLE9BQU8sQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEVBQUUsRUFBWSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFaEQsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUN0QyxtREFBbUQ7UUFDbkQsR0FBRyxDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFFbEQsTUFBTSxPQUFPLEdBQTZCO1lBQ3hDLE9BQU8sRUFBRTtnQkFDUCxPQUFPO2dCQUNQLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtnQkFDbEIsTUFBTTthQUNQO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhO2FBQ2YseUJBQXlCLENBQUMsT0FBTyxDQUFDO2FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLGlFQUFpRTtnQkFDakUsR0FBRyxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsZUFBZSxDQUFDLEdBQXFCO1FBQ25DLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtZQUFFLE9BQU87UUFDN0IsTUFBTSxhQUFhLEdBQUc7WUFDcEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUs7WUFDckMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUztZQUNqQyxZQUFZLEVBQUUsb0JBQW9CO1lBQ2xDLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGtCQUFrQixFQUFFLDBCQUEwQjtZQUM5QyxTQUFTLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDekIscUJBQXFCLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUNyRCxhQUFhLEVBQUUsZUFBZTtTQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQy9CLElBQUksRUFBRSxhQUFhO1lBQ25CLFVBQVUsRUFBRSxDQUFDLHFCQUFxQixFQUFFLGtDQUFrQyxDQUFDO1lBQ3ZFLEtBQUssRUFBRSxPQUFPO1lBQ2QsUUFBUSxFQUFFLE1BQU07WUFDaEIsU0FBUyxFQUFFLE1BQU07WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSyxpQkFBaUI7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQjtnQkFDRSxFQUFFLEVBQUUsQ0FBQztnQkFDTCxTQUFTLEVBQUUsTUFBTTtnQkFDakIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJO2dCQUN0QixVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSTthQUNqQztZQUNEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSxPQUFPO2dCQUNsQixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUs7Z0JBQ3ZCLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDaEMsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLO2FBQ2xDO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsU0FBUyxFQUFFLGNBQWM7Z0JBQ3pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWTtnQkFDOUIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUNoQyw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDNUQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsQ0FBQztnQkFDTCxTQUFTLEVBQUUsYUFBYTtnQkFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxXQUFXO2dCQUM3QixVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLGdCQUFnQixFQUFFLElBQUk7Z0JBQ3RCLDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVzthQUN4QztZQUNEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSxhQUFhO2dCQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVc7Z0JBQzdCLFVBQVUsRUFBRSxlQUFlLENBQUMsUUFBUTtnQkFDcEMsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXO2dCQUN2QyxlQUFlLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtnQkFDeEMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxzQkFBc0I7Z0JBQ3ZELDhEQUE4RDtnQkFDOUQsY0FBYyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDO29CQUMvRCxJQUFJO2FBQ1A7WUFDRDtnQkFDRSxFQUFFLEVBQUUsQ0FBQztnQkFDTCxTQUFTLEVBQUUsTUFBTTtnQkFDakIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJO2dCQUN0QixVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVM7Z0JBQ3JDLFNBQVMsRUFBRSxDQUFDLEdBQXFCLEVBQUUsRUFBRSxDQUNuQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7YUFDakU7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0F4V1UsMEJBQTBCLHlHQW9EZixlQUFlO21HQXBEMUIsMEJBQTBCLHFGQ3BFdkMseTJCQWtCQSxtekNENkNZLFlBQVksK0JBQUUsa0JBQWtCLDRpREFBa0IsZUFBZTs7NEZBS2hFLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsaUJBRzdELGlCQUFpQixDQUFDLElBQUk7OzBCQXNEbEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5qZWN0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNb2RhbFR5cGUsIFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BpZWVlc2EtbnBtL21vZGVscyc7XHJcbmltcG9ydCB7XHJcbiAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIE1vZGFsQ29tcG9uZW50LFxyXG4gIFBhZ2luYXRvckNvbmZpZyxcclxuICBUYWJsZUFjdGlvbnMsXHJcbiAgVGFibGVDb2x1bW5TY2hlbWEsXHJcbiAgVGFibGVDb2x1bW5UeXBlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgR3JvdXBJbmZvIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dyb3VwLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIEdyb3VwSW50ZXJlc3RSZXNwb25zZVZpZXcsXHJcbiAgSW50ZXJlc3RlZFJvc3RlcixcclxuICBJbnRlcmVzdGVkUm9zdGVyc1JlcXVlc3RQYXlsb2FkLFxyXG4gIFVwZGF0ZU1lbWJlckxldmVsUGF5bG9hZCxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvaW50ZXJlc3QtcmVzcG9uc2UubW9kZWwnO1xyXG5pbXBvcnQgeyBHcm91cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ3JvdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbnRlcmVzdFJlc3BvbnNlc0NvbXBvbmVudCB9IGZyb20gJy4uL2ludGVyZXN0LXJlc3BvbnNlcy9pbnRlcmVzdC1yZXNwb25zZXMuY29tcG9uZW50JztcclxuXHJcbi8vIEdyb3VwcyBtYXkgY29tcGlsZSBhZ2FpbnN0IHB1Ymxpc2hlZCBQcmVzZW50YXRpb24gdHlwZXMgd2l0aG91dCB0aGUgcm93LWxhYmVsIGNhbGxiYWNrLlxyXG50eXBlIEludGVyZXN0ZWRSb3N0ZXJDb2x1bW5TY2hlbWEgPSBUYWJsZUNvbHVtblNjaGVtYSAmIHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBhcmlhTGFiZWw/OiAocm93OiBJbnRlcmVzdGVkUm9zdGVyKSA9PiBzdHJpbmc7XHJcbn07XHJcblxyXG4vKipcclxuICogXCJJbnRlcmVzdGVkIFJvc3RlcnNcIiB0YWIgb2YgdGhlIFJvc3RlciBJbnRlcmVzdHMgZGlhbG9nIChTUDNNLTQyOCkuIExpc3RzIHRoZVxyXG4gKiB1c2VycyB3aG8gZXhwcmVzc2VkIGludGVyZXN0IGluIHRoZSBncm91cCBhbmQgbGV0cyBhIEdyb3VwIEFkbWluIHJldmlldyBlYWNoXHJcbiAqIHJlcXVlc3RlcidzIHN1Ym1pdHRlZCByZXNwb25zZXMgYW5kIHNldC9vdmVycmlkZSB0aGVpciBtZW1iZXJzaGlwIGxldmVsIGZyb21cclxuICogdGhlIFJvc3RlciBNYW5hZ2VtZW50IHNjcmVlbi5cclxuICpcclxuICogVGhlIGxpc3QgaXMgcmVuZGVyZWQgdGhyb3VnaCB0aGUgc2hhcmVkIHtAbGluayBEYXRhVGFibGVDb21wb25lbnR9OiB0aGVcclxuICogTmFtZS9FbWFpbC9BZmZpbGlhdGlvbnMvU3VibWl0dGVkIE9uIGNvbHVtbnMgYXJlIHBsYWluIFRFWFQsIE1lbWJlciBMZXZlbCBpc1xyXG4gKiB0aGUgcmV1c2FibGUgdGFibGUncyBEUk9QRE9XTiBjb2x1bW4gKGFuIGlubGluZSB7QGNvZGUgaWVlZXNhLXNlbGVjdH0pIGFuZFxyXG4gKiBGb3JtIGlzIGEgTElOSyB0aGF0IG9wZW5zIHRoZSBcIlZpZXcgUmVzcG9uc2VzXCIgZGlhbG9nLiBUaGUgTWVtYmVyIExldmVsXHJcbiAqIG9wdGlvbnMgYXJlIHNvdXJjZWQgZnJvbSB0aGUgcm9sZXMgQVBJXHJcbiAqICh7QGxpbmsgR3JvdXBzU2VydmljZS5nZXRHcm91cFR5cGVSb2xlc30pIGZpbHRlcmVkIHRvIHRoZSBcIk1lbWJlciBMZXZlbFwiIHJvbGVcclxuICogdHlwZS4gSW50ZXJlc3RlZC1yb3N0ZXIgcm93cyBhcmUgbG9hZGVkIGZyb21cclxuICoge0BsaW5rIEdyb3Vwc1NlcnZpY2UuZ2V0SW50ZXJlc3RSZXNwb25zZXNCeUdyb3VwfSBhbmQgZWFjaCByZXF1ZXN0ZXIncyBzdG9yZWRcclxuICogZm9ybSByZXNwb25zZXMgYXJlIGxvYWRlZCBvbiBkZW1hbmQgZnJvbVxyXG4gKiB7QGxpbmsgR3JvdXBzU2VydmljZS5nZXRJbnRlcmVzdFJlc3BvbnNlc30gdXNpbmcgdGhlIHJvdydzIGBpbnRlcmVzdElkYC4gQWxsXHJcbiAqIGRpc3BsYXkgdGV4dCBpcyBzb3VyY2VkIGZyb20gY29uc3RhbnRzLmpzb24uXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1pbnRlcmVzdGVkLXJvc3RlcnMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGF0YVRhYmxlQ29tcG9uZW50LCBNb2RhbENvbXBvbmVudCwgTWF0RGlhbG9nTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJlc3RlZC1yb3N0ZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnRlcmVzdGVkLXJvc3RlcnMuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJlc3RlZFJvc3RlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IGNvbnN0YW50cztcclxuICB0ZXh0cyA9IHRoaXMuY29uc3RhbnRzPy5yb3N0ZXJJbnRlcmVzdHM/LmludGVyZXN0ZWRSb3N0ZXJzO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWVtYmVyLWxldmVsIGRyb3Bkb3duIG9wdGlvbnMsIHNvdXJjZWQgZnJvbSB0aGUgcm9sZXMgQVBJXHJcbiAgKiAoe0Bjb2RlIEdFVCAvZ3JvdXBzL2NvbmZpZy9yb2xlc0J5R3JvdXBUeXBlL3tncm91cFR5cGV9fSkgZmlsdGVyZWQgdG8gdGhlIFwiTWVtYmVyIExldmVsXCIgcm9sZSB0eXBlLlxyXG4gICAqIEVhY2ggb3B0aW9uIGlzIHtAY29kZSB7IGlkOiByb2xlSWQsIG5hbWU6IHJvbGVOYW1lIH19LlxyXG4gICAqL1xyXG4gIG1lbWJlckxldmVsT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuXHJcbiAgcm9zdGVyczogSW50ZXJlc3RlZFJvc3RlcltdID0gW107XHJcbiAgdGFibGVEYXRhOiBJbnRlcmVzdGVkUm9zdGVyW10gPSBbXTtcclxuICBjb2x1bW5TY2hlbWE6IEludGVyZXN0ZWRSb3N0ZXJDb2x1bW5TY2hlbWFbXSA9IFtdO1xyXG5cclxuICAvKiogVG90YWwgaW50ZXJlc3RlZC1yb3N0ZXIgcm93cyByZXBvcnRlZCBieSB0aGUgYmFja2VuZCAoZm9yIHBhZ2luZy9jb3VudHMpLiAqL1xyXG4gIHRvdGFsUmVjb3JkcyA9IDA7XHJcblxyXG4gIHBhZ2luYXRvckNvbmZpZzogUGFnaW5hdG9yQ29uZmlnID0ge1xyXG4gICAgcmVjb3Jkc1BlclBhZ2U6IHRoaXMudGV4dHM/LnBhZ2VTaXplT3B0aW9ucz8uWzBdLFxyXG4gICAgcGFnZVNpemVPcHRpb25zOiB0aGlzLnRleHRzPy5wYWdlU2l6ZU9wdGlvbnMsXHJcbiAgICB0b3RhbFJlY29yZHM6IDAsXHJcbiAgfTtcclxuICBwYWdlSW5kZXggPSAwO1xyXG4gIGRlZmF1bHRTb3J0ZWRDb2x1bW4gPSAnc3VibWl0dGVkT24nO1xyXG4gIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uOiBTb3J0WydkaXJlY3Rpb24nXSA9ICdkZXNjJztcclxuICBwcml2YXRlIHNvcnRlZEJ5ID0gdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uO1xyXG4gIHByaXZhdGUgc29ydGVkT3JkZXJCeSA9IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb247XHJcblxyXG4gIC8qKiBSZWFkLW9ubHkgdGFibGUg4oCUIG5vIHNlYXJjaCAvIGZpbHRlciAvIGFkZCAvIGVkaXQgLyBkZWxldGUgYWN0aW9ucy4gKi9cclxuICB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9ucyA9IHtcclxuICAgIGlzUGFnaW5hdGlvbk5lZWRlZDogdHJ1ZSxcclxuICAgIGlzU2VhcmNoTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRmlsdGVyTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzQWRkTmVlZGVkOiBmYWxzZSxcclxuICAgIGlzRWRpdE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0RlbGV0ZU5lZWRlZDogZmFsc2UsXHJcbiAgfTtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGdyb3Vwc1NlcnZpY2U6IEdyb3Vwc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBncm91cDogR3JvdXBJbmZvIHwgbnVsbFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIHRoZSByZXVzYWJsZS10YWJsZSBjb2x1bW4gc2NoZW1hIGFuZCBsb2FkcyB0aGUgaW50ZXJlc3RlZC1yb3N0ZXJcclxuICAgKiBsaXN0IGZvciB0aGUgY3VycmVudCBncm91cCBmcm9tIHRoZSBiYWNrZW5kLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkTWVtYmVyTGV2ZWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmJ1aWxkQ29sdW1uU2NoZW1hKCk7XHJcbiAgICB0aGlzLmxvYWRJbnRlcmVzdGVkUm9zdGVycygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYW5zIHVwIGluLWZsaWdodCBzdWJzY3JpcHRpb25zIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyB0aGUgY3VycmVudCBncm91cCBpZCBmcm9tIHRoZSBkaWFsb2cgZGF0YSAoZmFsbGluZyBiYWNrIHRvIHRoZVxyXG4gICAqIHNlcnZpY2UncyBzZWxlY3RlZCBncm91cCkgYW5kIGxvYWRzIHRoZSBpbnRlcmVzdGVkLXJvc3RlciByb3dzIGZvciBpdC4gTWFwc1xyXG4gICAqIGVhY2ggYmFja2VuZCB7QGxpbmsgR3JvdXBJbnRlcmVzdFJlc3BvbnNlVmlld30gb250byB0aGUgZmxhdHRlbmVkXHJcbiAgICoge0BsaW5rIEludGVyZXN0ZWRSb3N0ZXJ9IHNoYXBlIHRoZSByZXVzYWJsZSB0YWJsZSBiaW5kcyB0by4gT24gZmFpbHVyZSB0aGVcclxuICAgKiB0YWJsZSBpcyBjbGVhcmVkIGFuZCB0aGUgZXJyb3IgaXMgZGVsZWdhdGVkIHRvIEdyb3Vwc1NlcnZpY2UgZm9yIGFsZXJ0aW5nLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbG9hZEludGVyZXN0ZWRSb3N0ZXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZ3JvdXBJZCA9XHJcbiAgICAgIHRoaXMuZ3JvdXA/Lmdyb3VwSWQgPz9cclxuICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwSWQ7XHJcbiAgICBpZiAoIWdyb3VwSWQpIHJldHVybjtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHBheWxvYWQ6IEludGVyZXN0ZWRSb3N0ZXJzUmVxdWVzdFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBzZWFyY2hCeU5hbWVPckVtYWlsOiAnJyxcclxuICAgICAgICBvZmZzZXQ6IHRoaXMucGFnZUluZGV4ICogdGhpcy5wYWdpbmF0b3JDb25maWcucmVjb3Jkc1BlclBhZ2UsXHJcbiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdG9yQ29uZmlnLnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHNvcnRlZEJ5OiB0aGlzLnNvcnRlZEJ5LFxyXG4gICAgICAgIHNvcnRlZE9yZGVyQnk6IHRoaXMuc29ydGVkT3JkZXJCeSxcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldEludGVyZXN0UmVzcG9uc2VzQnlHcm91cChncm91cElkLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSByZXNwb25zZT8udG90YWxSZWNvcmRzID8/IDA7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5wYWdpbmF0b3JDb25maWcsXHJcbiAgICAgICAgICAgIHRvdGFsUmVjb3JkczogdGhpcy50b3RhbFJlY29yZHMsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdGhpcy5yb3N0ZXJzID0gKHJlc3BvbnNlPy5kYXRhID8/IFtdKS5tYXAoKHZpZXcpID0+XHJcbiAgICAgICAgICAgIHRoaXMubWFwVG9Sb3N0ZXIodmlldylcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMucm9zdGVycztcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvc3RlcnMgPSBbXTtcclxuICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgICAgICAgICB0aGlzLnBhZ2luYXRvckNvbmZpZyA9IHsgLi4udGhpcy5wYWdpbmF0b3JDb25maWcsIHRvdGFsUmVjb3JkczogMCB9O1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25QYWdpbmF0aW9uQ2hhbmdlKGV2ZW50OiBQYWdlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gICAgdGhpcy5wYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICAgIC4uLnRoaXMucGFnaW5hdG9yQ29uZmlnLFxyXG4gICAgICByZWNvcmRzUGVyUGFnZTogZXZlbnQucGFnZVNpemUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5sb2FkSW50ZXJlc3RlZFJvc3RlcnMoKTtcclxuICB9XHJcblxyXG4gIG9uU29ydENoYW5nZShldmVudDogU29ydCk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3J0ZWRCeSA9IGV2ZW50LmRpcmVjdGlvbiA/IGV2ZW50LmFjdGl2ZSA6IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbjtcclxuICAgIHRoaXMuc29ydGVkT3JkZXJCeSA9IGV2ZW50LmRpcmVjdGlvbiB8fCB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uO1xyXG4gICAgdGhpcy5wYWdlSW5kZXggPSAwO1xyXG4gICAgdGhpcy5sb2FkSW50ZXJlc3RlZFJvc3RlcnMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcHMgYSBiYWNrZW5kIHtAbGluayBHcm91cEludGVyZXN0UmVzcG9uc2VWaWV3fSB0byB0aGUgZmxhdHRlbmVkXHJcbiAgICoge0BsaW5rIEludGVyZXN0ZWRSb3N0ZXJ9IHJvdyB0aGUgdGFibGUgcmVuZGVyczogYWZmaWxpYXRpb24gb3JnIG5hbWVzIGFyZVxyXG4gICAqIGpvaW5lZCBpbnRvIHRoZSBhZmZpbGlhdGlvbnMgbGlzdCwgdGhlIGFzc2lnbmVkIG1lbWJlcnNoaXAgbGV2ZWwgKGlmIGFueSlcclxuICAgKiBiZWNvbWVzIHRoZSByb2xlIG5hbWUg4oCUIHdoaWNoIHRoZSBNZW1iZXIgTGV2ZWwgZHJvcGRvd24gYmluZHMgYXMgaXRzXHJcbiAgICogcHJlLXNlbGVjdGVkIHZhbHVlIOKAlCB0aGUgc3VibWl0dGVkIHRpbWVzdGFtcCBpcyBmb3JtYXR0ZWQgZm9yIGRpc3BsYXksIGFuZFxyXG4gICAqIHRoZSBpbnRlcmVzdCBpZCBpcyBjYXJyaWVkIHRocm91Z2ggZm9yIHRoZSByZXNwb25zZXMgZGlhbG9nIGFuZCB0aGUgbGV2ZWxcclxuICAgKiBvdmVycmlkZS5cclxuICAgKiBAcGFyYW0ge0dyb3VwSW50ZXJlc3RSZXNwb25zZVZpZXd9IHZpZXdcclxuICAgKiBAcmV0dXJuIHtJbnRlcmVzdGVkUm9zdGVyfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFwVG9Sb3N0ZXIodmlldzogR3JvdXBJbnRlcmVzdFJlc3BvbnNlVmlldyk6IEludGVyZXN0ZWRSb3N0ZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaW50ZXJlc3RJZDogdmlldz8uaW50ZXJlc3RJZCxcclxuICAgICAgdXNlcklkOiB2aWV3Py51c2VySWQsXHJcbiAgICAgIG5hbWU6IHZpZXc/Lm5hbWUsXHJcbiAgICAgIGVtYWlsOiB2aWV3Py5lbWFpbCxcclxuICAgICAgYWZmaWxpYXRpb25zOiAodmlldz8uYWZmaWxpYXRpb24gPz8gW10pLm1hcCgob3JnKSA9PiBvcmc/Lm9yZ05hbWUpLFxyXG4gICAgICBzdWJtaXR0ZWRPbjogdGhpcy5mb3JtYXRTdWJtaXR0ZWRPbih2aWV3Py5zdWJtaXR0ZWRPbiksXHJcbiAgICAgIG1lbWJlckxldmVsOiB2aWV3Py5tZW1iZXJMZXZlbD8ubGVuZ3RoXHJcbiAgICAgICAgPyB2aWV3Lm1lbWJlckxldmVsWzBdPy5yb2xlTmFtZSA/PyBudWxsXHJcbiAgICAgICAgOiBudWxsLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgdGhlIGJhY2tlbmQgc3VibWl0dGVkIHRpbWVzdGFtcCAoSVNPIGRhdGUgc3RyaW5nKSBmb3IgZGlzcGxheSxcclxuICAgKiBmYWxsaW5nIGJhY2sgdG8gdGhlIHJhdyB2YWx1ZSB3aGVuIGl0IGlzIG5vdCBhIHBhcnNlYWJsZSBkYXRlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdWJtaXR0ZWRPblxyXG4gICAqIEByZXR1cm4ge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RlZFJvc3RlcnNDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGZvcm1hdFN1Ym1pdHRlZE9uKHN1Ym1pdHRlZE9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFzdWJtaXR0ZWRPbikgcmV0dXJuICcnO1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHN1Ym1pdHRlZE9uKTtcclxuICAgIHJldHVybiBpc05hTihkYXRlLmdldFRpbWUoKSlcclxuICAgICAgPyBzdWJtaXR0ZWRPblxyXG4gICAgICA6IGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCdlbi1VUycpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgdGhlIE1lbWJlciBMZXZlbCBkcm9wZG93biBvcHRpb25zIGZyb20gdGhlIHJvbGVzIEFQSVxyXG4gICogKHtAY29kZSBHRVQgL2dyb3Vwcy9jb25maWcvcm9sZXNCeUdyb3VwVHlwZS97Z3JvdXBUeXBlfX0pLCBrZWVwaW5nIG9ubHkgcm9sZXMgd2hvc2VcclxuICAgKiB7QGNvZGUgcm9sZVR5cGVOYW1lfSBpcyBcIk1lbWJlciBMZXZlbFwiIGFuZCBtYXBwaW5nIGVhY2ggdG8gYVxyXG4gICAqIHtAbGluayBTZWxlY3RPcHRpb259ICh7QGNvZGUgeyBpZDogcm9sZUlkLCBuYW1lOiByb2xlTmFtZSB9fSkuXHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsb2FkTWVtYmVyTGV2ZWxPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZ3JvdXBUeXBlID1cclxuICAgICAgdGhpcy5ncm91cD8uZ3JvdXBUeXBlID8/XHJcbiAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cFR5cGU7XHJcbiAgICBpZiAoIWdyb3VwVHlwZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVSb2xlcyhncm91cFR5cGUpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZW1iZXJMZXZlbE9wdGlvbnMgPSAodGhpcy5ncm91cHNTZXJ2aWNlLmdldE1lbWJlclR5cGVzKCkgPz8gW10pXHJcbiAgICAgICAgICAgIC5tYXAoKHJvbGUpID0+ICh7IGlkOiByb2xlLnJvbGVJZCwgbmFtZTogcm9sZS5yb2xlTmFtZSB9KSk7XHJcbiAgICAgICAgICB0aGlzLmJ1aWxkQ29sdW1uU2NoZW1hKCk7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmdyb3Vwc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcnNpc3RzIHRoZSBtZW1iZXJzaGlwLWxldmVsIG92ZXJyaWRlIHdoZW4gdGhlIGFkbWluIHBpY2tzIGEgdmFsdWUgaW4gYVxyXG4gICAqIHJvdydzIE1lbWJlciBMZXZlbCBkcm9wZG93biAoYm91bmQgdG8gdGhlIHJldXNhYmxlIHRhYmxlJ3NcclxuICAgKiBgcm93RHJvcGRvd25DaGFuZ2VgIG91dHB1dCkuIEJ1aWxkcyB0aGUgcmVxdWVzdCBmcm9tIHRoZSBkaWFsb2cncyBjdXJyZW50XHJcbiAgICogZ3JvdXAgaWQsIHRoZSByb3cncyB1c2VyIGlkIGFuZCB0aGUgc2VsZWN0ZWQgb3B0aW9uJ3MgaWQgKHRoZSByb2xlIGlkKSwgYW5kXHJcbiAgICogcG9zdHMgaXQgdG8gdGhlIGJhY2tlbmQuIFRoZSByb3cncyBkaXNwbGF5ZWQgbGV2ZWwgaXMgdXBkYXRlZCBvcHRpbWlzdGljYWxseVxyXG4gICAqIGFuZCByZXZlcnRlZCBpZiB0aGUgc2F2ZSBmYWlscy5cclxuICAgKiBAcGFyYW0ge3sgcm93OiBJbnRlcmVzdGVkUm9zdGVyOyBvcHRpb246IFNlbGVjdE9wdGlvbiB9fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uTWVtYmVyTGV2ZWxDaGFuZ2UoZXZlbnQ6IHtcclxuICAgIHJvdzogSW50ZXJlc3RlZFJvc3RlcjtcclxuICAgIG9wdGlvbjogU2VsZWN0T3B0aW9uO1xyXG4gIH0pOiB2b2lkIHtcclxuICAgIGNvbnN0IHJvdyA9IGV2ZW50Py5yb3c7XHJcbiAgICBjb25zdCBvcHRpb24gPSBldmVudD8ub3B0aW9uO1xyXG4gICAgY29uc3QgZ3JvdXBJZCA9XHJcbiAgICAgIHRoaXMuZ3JvdXA/Lmdyb3VwSWQgPz9cclxuICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwSWQ7XHJcbiAgICBjb25zdCByb2xlSWQgPSBvcHRpb24/LmlkIGFzIHN0cmluZztcclxuICAgIGlmICghcm93Py51c2VySWQgfHwgIWdyb3VwSWQgfHwgIXJvbGVJZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHByZXZpb3VzTGV2ZWwgPSByb3cubWVtYmVyTGV2ZWw7XHJcbiAgICAvLyBPcHRpbWlzdGljYWxseSByZWZsZWN0IHRoZSBzZWxlY3Rpb24gaW4gdGhlIHJvdy5cclxuICAgIHJvdy5tZW1iZXJMZXZlbCA9IG9wdGlvbj8ubmFtZSA/PyByb3cubWVtYmVyTGV2ZWw7XHJcblxyXG4gICAgY29uc3QgcGF5bG9hZDogVXBkYXRlTWVtYmVyTGV2ZWxQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgZ3JvdXBJZCxcclxuICAgICAgICB1c2VySWQ6IHJvdy51c2VySWQsXHJcbiAgICAgICAgcm9sZUlkLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZ3JvdXBzU2VydmljZVxyXG4gICAgICAudXBkYXRlSW50ZXJlc3RNZW1iZXJMZXZlbChwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIC8vIFJldmVydCB0aGUgb3B0aW1pc3RpYyBjaGFuZ2Ugb24gZmFpbHVyZSBhbmQgc3VyZmFjZSB0aGUgZXJyb3IuXHJcbiAgICAgICAgICByb3cubWVtYmVyTGV2ZWwgPSBwcmV2aW91c0xldmVsO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLmhhbmRsZUVycm9ycyhlcnJvcik7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVucyB0aGUgXCJWaWV3IFJlc3BvbnNlc1wiIGRpYWxvZyBmb3IgYSByb3N0ZXIgcm93IChib3VuZCB0byB0aGUgcmV1c2FibGVcclxuICAgKiB0YWJsZSdzIExJTksgb3V0cHV0KSB1c2luZyB0aGUgc2hhcmVkIHtAbGluayBNb2RhbENvbXBvbmVudH0uIFRoZSBtb2RhbFxyXG4gICAqIHN1cHBsaWVzIHRoZSB0aXRsZSByb3cgYW5kIFggY2xvc2U7IHRoZSByZXF1ZXN0ZXIncyBzdG9yZWQgaW50ZXJlc3QtZm9ybVxyXG4gICAqIHJlc3BvbnNlcyBhcmUgcmVuZGVyZWQgYnkge0BsaW5rIEludGVyZXN0UmVzcG9uc2VzQ29tcG9uZW50fSwgd2hpY2ggbG9hZHNcclxuICAgKiB0aGVtIGZyb20gdGhlIGJhY2tlbmQgdXNpbmcgdGhlIHJvdydzIHtAY29kZSBpbnRlcmVzdElkfSBwYXNzZWQgdmlhIHRoZVxyXG4gICAqIE1vZGFsQ29tcG9uZW50IGR5bmFtaWMtaW5wdXQgcGF0dGVybi5cclxuICAgKiBAcGFyYW0ge0ludGVyZXN0ZWRSb3N0ZXJ9IHJvd1xyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRm9ybUxpbmtDbGljayhyb3c6IEludGVyZXN0ZWRSb3N0ZXIpOiB2b2lkIHtcclxuICAgIGlmICghcm93Py5pbnRlcmVzdElkKSByZXR1cm47XHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICBoZWFkaW5nOiB0aGlzLnRleHRzPy5yZXNwb25zZXM/LnRpdGxlLFxyXG4gICAgICBzdWJIZWFkaW5nOiB0aGlzLmdyb3VwPy5ncm91cE5hbWUsXHJcbiAgICAgIGhlYWRpbmdDbGFzczogJ2llZWVzYS10aXRsZS1sZy0yNCcsXHJcbiAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgIGNvbXBvbmVudFJlZmVyZW5jZTogSW50ZXJlc3RSZXNwb25zZXNDb21wb25lbnQsXHJcbiAgICAgIG1vZGFsVHlwZTogTW9kYWxUeXBlLkZPUk0sXHJcbiAgICAgIGRhdGEyRHluYW1pY0NvbXBvbmVudDogeyBpbnRlcmVzdElkOiByb3cuaW50ZXJlc3RJZCB9LFxyXG4gICAgICBkYXRhSW5wdXROYW1lOiAnY29tcG9uZW50RGF0YScsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kaWFsb2cub3BlbihNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiBkaWFsb2dPcHRpb25zLFxyXG4gICAgICBwYW5lbENsYXNzOiBbJ2llZWVzYS1tb2RhbC1kaWFsb2cnLCAnaWVlZXNhLWludGVyZXN0LXJlc3BvbnNlcy1kaWFsb2cnXSxcclxuICAgICAgd2lkdGg6ICc4MDBweCcsXHJcbiAgICAgIG1heFdpZHRoOiAnOTV2dycsXHJcbiAgICAgIG1heEhlaWdodDogJzkwdmgnLFxyXG4gICAgICBhcmlhTW9kYWw6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHJldXNhYmxlLXRhYmxlIGNvbHVtbnMgZm9yIHRoZSBJbnRlcmVzdGVkIFJvc3RlcnMgbGlzdC4gRXZlcnlcclxuICAgKiBgY2VsbERhdGFgL2BzZWxlY3RlZE9wdGlvbmAgaXMgYSBgKHJvdykgPT4gLi4uYCBhY2Nlc3NvciwgbWF0Y2hpbmcgdGhlXHJcbiAgICogc2hhcmVkIHRhYmxlJ3MgY29udHJhY3QuIE1lbWJlciBMZXZlbCBpcyB0aGUgRFJPUERPV04gY29sdW1uIHNlZWRlZCB3aXRoIHRoZVxyXG4gICAqIGNvbmZpZ3VyZWQgbGV2ZWxzIHBsdXMgXCJOb25lXCI7IEZvcm0gaXMgYSBMSU5LIHRoYXQgb3BlbnMgdGhlIHJlc3BvbnNlc1xyXG4gICAqIGRpYWxvZy5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RlZFJvc3RlcnNDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkQ29sdW1uU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMudGV4dHM/LmNvbHVtbnM7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ25hbWUnLFxyXG4gICAgICAgIGhlYWRpbmc6IGNvbHVtbnM/Lm5hbWUsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAocm93OiBhbnkpID0+IHJvdy5uYW1lLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnZW1haWwnLFxyXG4gICAgICAgIGhlYWRpbmc6IGNvbHVtbnM/LmVtYWlsLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKHJvdzogYW55KSA9PiByb3cuZW1haWwsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMyxcclxuICAgICAgICBjb2x1bW5EZWY6ICdhZmZpbGlhdGlvbnMnLFxyXG4gICAgICAgIGhlYWRpbmc6IGNvbHVtbnM/LmFmZmlsaWF0aW9ucyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAocm93OiBhbnkpID0+IChyb3cuYWZmaWxpYXRpb25zIHx8IFtdKS5qb2luKCcsICcpLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDQsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnc3VibWl0dGVkT24nLFxyXG4gICAgICAgIGhlYWRpbmc6IGNvbHVtbnM/LnN1Ym1pdHRlZE9uLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIGlzU29ydGFibGVDb2x1bW46IHRydWUsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKHJvdzogYW55KSA9PiByb3cuc3VibWl0dGVkT24sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6ICdtZW1iZXJMZXZlbCcsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8ubWVtYmVyTGV2ZWwsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkRST1BET1dOLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChyb3c6IGFueSkgPT4gcm93Lm1lbWJlckxldmVsLFxyXG4gICAgICAgIGRyb3Bkb3duT3B0aW9uczogdGhpcy5tZW1iZXJMZXZlbE9wdGlvbnMsXHJcbiAgICAgICAgZHJvcGRvd25QbGFjZWhvbGRlcjogdGhpcy50ZXh0cz8ubWVtYmVyTGV2ZWxQbGFjZWhvbGRlcixcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uOiAocm93OiBhbnkpID0+XHJcbiAgICAgICAgICB0aGlzLm1lbWJlckxldmVsT3B0aW9ucy5maW5kKChvKSA9PiBvLm5hbWUgPT09IHJvdy5tZW1iZXJMZXZlbCkgPz9cclxuICAgICAgICAgIG51bGwsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNixcclxuICAgICAgICBjb2x1bW5EZWY6ICdmb3JtJyxcclxuICAgICAgICBoZWFkaW5nOiBjb2x1bW5zPy5mb3JtLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5MSU5LLFxyXG4gICAgICAgIGNlbGxEYXRhOiAoKSA9PiB0aGlzLnRleHRzPy52aWV3TGFiZWwsXHJcbiAgICAgICAgYXJpYUxhYmVsOiAocm93OiBJbnRlcmVzdGVkUm9zdGVyKSA9PlxyXG4gICAgICAgICAgYCR7dGhpcy50ZXh0cz8udmlld0FyaWFMYWJlbFByZWZpeH0gJHtyb3c/Lm5hbWUgPz8gJyd9YC50cmltKCksXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cImllZWVzYS1pbnRlcmVzdGVkLXJvc3RlcnNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHRzPy5yZWdpb25BcmlhTGFiZWxcIj5cclxuICA8cCBjbGFzcz1cImllZWVzYS1pbnRlcmVzdGVkLXJvc3RlcnNfX2NvdW50XCI+e3sgdG90YWxSZWNvcmRzIH19IHt7IHRleHRzPy5jb3VudFN1ZmZpeCB9fTwvcD5cclxuICA8aWVlZXNhLWRhdGEtdGFibGVcclxuICAgIFt0YWJsZURhdGFJbmZvXT1cInRhYmxlRGF0YVwiXHJcbiAgICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gICAgW3RhYmxlQWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxyXG4gICAgW3BhZ2luYXRvckNvbmZpZ109XCJwYWdpbmF0b3JDb25maWdcIlxyXG4gICAgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIlxyXG4gICAgW3BhZ2VTaXplXT1cInBhZ2luYXRvckNvbmZpZy5yZWNvcmRzUGVyUGFnZVwiXHJcbiAgICBbZGVmYXVsdFNvcnRlZENvbHVtbl09XCJkZWZhdWx0U29ydGVkQ29sdW1uXCJcclxuICAgIFtkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbl09XCJkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvblwiXHJcbiAgICBbaXNDbGVhclNvcnROZWVkZWRdPVwiZmFsc2VcIlxyXG4gICAgKHBhZ2luYXRpb25DaGFuZ2UpPVwib25QYWdpbmF0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKHNvcnRDaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKHJvd0xpbmspPVwib25Gb3JtTGlua0NsaWNrKCRldmVudClcIlxyXG4gICAgKHJvd0Ryb3Bkb3duQ2hhbmdlKT1cIm9uTWVtYmVyTGV2ZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPjwvaWVlZXNhLWRhdGEtdGFibGU+XHJcbjwvc2VjdGlvbj5cclxuIl19
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3RlZC1yb3N0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvaW50ZXJlc3RlZC1yb3N0ZXJzL2ludGVyZXN0ZWQtcm9zdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL2ludGVyZXN0ZWQtcm9zdGVycy9pbnRlcmVzdGVkLXJvc3RlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUd2RixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsY0FBYyxFQUlkLGVBQWUsR0FDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQVNwRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7OztBQVFoRzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQVNILE1BQU0sT0FBTywwQkFBMEI7SUE0Q3JDO0lBQ0UsMENBQTBDO0lBQ2xDLE1BQWlCO0lBQ3pCLDBDQUEwQztJQUNsQyxhQUE0QjtJQUNwQywwQ0FBMEM7SUFDbEMsR0FBc0I7SUFDOUIsMENBQTBDO0lBQ0UsS0FBdUI7UUFOM0QsV0FBTSxH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ZSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3hDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsc0JBQXNCO2dCQUN2RCw4REFBOEQ7Z0JBQzlELGNBQWMsRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQztvQkFDL0QsSUFBSTthQUNQO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSTtnQkFDdEIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUNoQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTO2dCQUNyQyxTQUFTLEVBQUUsQ0FBQyxHQUFxQixFQUFFLEVBQUUsQ0FDbkMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLG1CQUFtQixJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO2FBQ2pFO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBeFdVLDBCQUEwQix5R0FvRGYsZUFBZTttR0FwRDFCLDBCQUEwQixxRkNwRXZDLHkyQkFrQkEsbXpDRDZDWSxZQUFZLCtCQUFFLGtCQUFrQiw0aURBQWtCLGVBQWU7OzRGQUtoRSwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLGlCQUc3RCxpQkFBaUIsQ0FBQyxJQUFJOzswQkFzRGxDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEluamVjdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTW9kYWxUeXBlLCBTZWxlY3RPcHRpb24gfSBmcm9tICdAaWVlZXNhLW5wbS9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBNb2RhbENvbXBvbmVudCxcclxuICBQYWdpbmF0b3JDb25maWcsXHJcbiAgVGFibGVBY3Rpb25zLFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEdyb3VwSW5mbyB9IGZyb20gJy4uLy4uL21vZGVscy9ncm91cC1pbmZvLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBHcm91cEludGVyZXN0UmVzcG9uc2VWaWV3LFxyXG4gIEludGVyZXN0ZWRSb3N0ZXIsXHJcbiAgSW50ZXJlc3RlZFJvc3RlcnNSZXF1ZXN0UGF5bG9hZCxcclxuICBVcGRhdGVNZW1iZXJMZXZlbFBheWxvYWQsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2ludGVyZXN0LXJlc3BvbnNlLm1vZGVsJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW50ZXJlc3RSZXNwb25zZXNDb21wb25lbnQgfSBmcm9tICcuLi9pbnRlcmVzdC1yZXNwb25zZXMvaW50ZXJlc3QtcmVzcG9uc2VzLmNvbXBvbmVudCc7XHJcblxyXG4vLyBHcm91cHMgbWF5IGNvbXBpbGUgYWdhaW5zdCBwdWJsaXNoZWQgUHJlc2VudGF0aW9uIHR5cGVzIHdpdGhvdXQgdGhlIHJvdy1sYWJlbCBjYWxsYmFjay5cclxudHlwZSBJbnRlcmVzdGVkUm9zdGVyQ29sdW1uU2NoZW1hID0gVGFibGVDb2x1bW5TY2hlbWEgJiB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgYXJpYUxhYmVsPzogKHJvdzogSW50ZXJlc3RlZFJvc3RlcikgPT4gc3RyaW5nO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFwiSW50ZXJlc3RlZCBSb3N0ZXJzXCIgdGFiIG9mIHRoZSBSb3N0ZXIgSW50ZXJlc3RzIGRpYWxvZyAoU1AzTS00MjgpLiBMaXN0cyB0aGVcclxuICogdXNlcnMgd2hvIGV4cHJlc3NlZCBpbnRlcmVzdCBpbiB0aGUgZ3JvdXAgYW5kIGxldHMgYSBHcm91cCBBZG1pbiByZXZpZXcgZWFjaFxyXG4gKiByZXF1ZXN0ZXIncyBzdWJtaXR0ZWQgcmVzcG9uc2VzIGFuZCBzZXQvb3ZlcnJpZGUgdGhlaXIgbWVtYmVyc2hpcCBsZXZlbCBmcm9tXHJcbiAqIHRoZSBSb3N0ZXIgTWFuYWdlbWVudCBzY3JlZW4uXHJcbiAqXHJcbiAqIFRoZSBsaXN0IGlzIHJlbmRlcmVkIHRocm91Z2ggdGhlIHNoYXJlZCB7QGxpbmsgRGF0YVRhYmxlQ29tcG9uZW50fTogdGhlXHJcbiAqIE5hbWUvRW1haWwvQWZmaWxpYXRpb25zL1N1Ym1pdHRlZCBPbiBjb2x1bW5zIGFyZSBwbGFpbiBURVhULCBNZW1iZXIgTGV2ZWwgaXNcclxuICogdGhlIHJldXNhYmxlIHRhYmxlJ3MgRFJPUERPV04gY29sdW1uIChhbiBpbmxpbmUge0Bjb2RlIGllZWVzYS1zZWxlY3R9KSBhbmRcclxuICogRm9ybSBpcyBhIExJTksgdGhhdCBvcGVucyB0aGUgXCJWaWV3IFJlc3BvbnNlc1wiIGRpYWxvZy4gVGhlIE1lbWJlciBMZXZlbFxyXG4gKiBvcHRpb25zIGFyZSBzb3VyY2VkIGZyb20gdGhlIHJvbGVzIEFQSVxyXG4gKiAoe0BsaW5rIEdyb3Vwc1NlcnZpY2UuZ2V0R3JvdXBUeXBlUm9sZXN9KSBmaWx0ZXJlZCB0byB0aGUgXCJNZW1iZXIgTGV2ZWxcIiByb2xlXHJcbiAqIHR5cGUuIEludGVyZXN0ZWQtcm9zdGVyIHJvd3MgYXJlIGxvYWRlZCBmcm9tXHJcbiAqIHtAbGluayBHcm91cHNTZXJ2aWNlLmdldEludGVyZXN0UmVzcG9uc2VzQnlHcm91cH0gYW5kIGVhY2ggcmVxdWVzdGVyJ3Mgc3RvcmVkXHJcbiAqIGZvcm0gcmVzcG9uc2VzIGFyZSBsb2FkZWQgb24gZGVtYW5kIGZyb21cclxuICoge0BsaW5rIEdyb3Vwc1NlcnZpY2UuZ2V0SW50ZXJlc3RSZXNwb25zZXN9IHVzaW5nIHRoZSByb3cncyBgaW50ZXJlc3RJZGAuIEFsbFxyXG4gKiBkaXNwbGF5IHRleHQgaXMgc291cmNlZCBmcm9tIGNvbnN0YW50cy5qc29uLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtaW50ZXJlc3RlZC1yb3N0ZXJzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudCwgTW9kYWxDb21wb25lbnQsIE1hdERpYWxvZ01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyZXN0ZWQtcm9zdGVycy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW50ZXJlc3RlZC1yb3N0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBjb25zdGFudHM7XHJcbiAgdGV4dHMgPSB0aGlzLmNvbnN0YW50cz8ucm9zdGVySW50ZXJlc3RzPy5pbnRlcmVzdGVkUm9zdGVycztcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lbWJlci1sZXZlbCBkcm9wZG93biBvcHRpb25zLCBzb3VyY2VkIGZyb20gdGhlIHJvbGVzIEFQSVxyXG4gICogKHtAY29kZSBHRVQgL2dyb3Vwcy9jb25maWcvcm9sZXNCeUdyb3VwVHlwZS97Z3JvdXBUeXBlfX0pIGZpbHRlcmVkIHRvIHRoZSBcIk1lbWJlciBMZXZlbFwiIHJvbGUgdHlwZS5cclxuICAgKiBFYWNoIG9wdGlvbiBpcyB7QGNvZGUgeyBpZDogcm9sZUlkLCBuYW1lOiByb2xlTmFtZSB9fS5cclxuICAgKi9cclxuICBtZW1iZXJMZXZlbE9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XHJcblxyXG4gIHJvc3RlcnM6IEludGVyZXN0ZWRSb3N0ZXJbXSA9IFtdO1xyXG4gIHRhYmxlRGF0YTogSW50ZXJlc3RlZFJvc3RlcltdID0gW107XHJcbiAgY29sdW1uU2NoZW1hOiBJbnRlcmVzdGVkUm9zdGVyQ29sdW1uU2NoZW1hW10gPSBbXTtcclxuXHJcbiAgLyoqIFRvdGFsIGludGVyZXN0ZWQtcm9zdGVyIHJvd3MgcmVwb3J0ZWQgYnkgdGhlIGJhY2tlbmQgKGZvciBwYWdpbmcvY291bnRzKS4gKi9cclxuICB0b3RhbFJlY29yZHMgPSAwO1xyXG5cclxuICBwYWdpbmF0b3JDb25maWc6IFBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgIHJlY29yZHNQZXJQYWdlOiB0aGlzLnRleHRzPy5wYWdlU2l6ZU9wdGlvbnM/LlswXSxcclxuICAgIHBhZ2VTaXplT3B0aW9uczogdGhpcy50ZXh0cz8ucGFnZVNpemVPcHRpb25zLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gIH07XHJcbiAgcGFnZUluZGV4ID0gMDtcclxuICBkZWZhdWx0U29ydGVkQ29sdW1uID0gJ3N1Ym1pdHRlZE9uJztcclxuICBkZWZhdWx0Q29sdW1uU29ydERpcmVjdGlvbjogU29ydFsnZGlyZWN0aW9uJ10gPSAnZGVzYyc7XHJcbiAgcHJpdmF0ZSBzb3J0ZWRCeSA9IHRoaXMuZGVmYXVsdFNvcnRlZENvbHVtbjtcclxuICBwcml2YXRlIHNvcnRlZE9yZGVyQnkgPSB0aGlzLmRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uO1xyXG5cclxuICAvKiogUmVhZC1vbmx5IHRhYmxlIOKAlCBubyBzZWFyY2ggLyBmaWx0ZXIgLyBhZGQgLyBlZGl0IC8gZGVsZXRlIGFjdGlvbnMuICovXHJcbiAgdGFibGVBY3Rpb25zOiBUYWJsZUFjdGlvbnMgPSB7XHJcbiAgICBpc1BhZ2luYXRpb25OZWVkZWQ6IHRydWUsXHJcbiAgICBpc1NlYXJjaE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0ZpbHRlck5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0FkZE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0VkaXROZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNEZWxldGVOZWVkZWQ6IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBncm91cHNTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZ3JvdXA6IEdyb3VwSW5mbyB8IG51bGxcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkcyB0aGUgcmV1c2FibGUtdGFibGUgY29sdW1uIHNjaGVtYSBhbmQgbG9hZHMgdGhlIGludGVyZXN0ZWQtcm9zdGVyXHJcbiAgICogbGlzdCBmb3IgdGhlIGN1cnJlbnQgZ3JvdXAgZnJvbSB0aGUgYmFja2VuZC5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RlZFJvc3RlcnNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZE1lbWJlckxldmVsT3B0aW9ucygpO1xyXG4gICAgdGhpcy5idWlsZENvbHVtblNjaGVtYSgpO1xyXG4gICAgdGhpcy5sb2FkSW50ZXJlc3RlZFJvc3RlcnMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFucyB1cCBpbi1mbGlnaHQgc3Vic2NyaXB0aW9ucyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzb2x2ZXMgdGhlIGN1cnJlbnQgZ3JvdXAgaWQgZnJvbSB0aGUgZGlhbG9nIGRhdGEgKGZhbGxpbmcgYmFjayB0byB0aGVcclxuICAgKiBzZXJ2aWNlJ3Mgc2VsZWN0ZWQgZ3JvdXApIGFuZCBsb2FkcyB0aGUgaW50ZXJlc3RlZC1yb3N0ZXIgcm93cyBmb3IgaXQuIE1hcHNcclxuICAgKiBlYWNoIGJhY2tlbmQge0BsaW5rIEdyb3VwSW50ZXJlc3RSZXNwb25zZVZpZXd9IG9udG8gdGhlIGZsYXR0ZW5lZFxyXG4gICAqIHtAbGluayBJbnRlcmVzdGVkUm9zdGVyfSBzaGFwZSB0aGUgcmV1c2FibGUgdGFibGUgYmluZHMgdG8uIE9uIGZhaWx1cmUgdGhlXHJcbiAgICogdGFibGUgaXMgY2xlYXJlZCBhbmQgdGhlIGVycm9yIGlzIGRlbGVnYXRlZCB0byBHcm91cHNTZXJ2aWNlIGZvciBhbGVydGluZy5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RlZFJvc3RlcnNDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGxvYWRJbnRlcmVzdGVkUm9zdGVycygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGdyb3VwSWQgPVxyXG4gICAgICB0aGlzLmdyb3VwPy5ncm91cElkID8/XHJcbiAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5nZXRTZWxlY3RlZEdyb3VwSW5mbygpPy5ncm91cElkO1xyXG4gICAgaWYgKCFncm91cElkKSByZXR1cm47XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBJbnRlcmVzdGVkUm9zdGVyc1JlcXVlc3RQYXlsb2FkID0ge1xyXG4gICAgICBwYXlsb2FkOiB7XHJcbiAgICAgICAgc2VhcmNoQnlOYW1lT3JFbWFpbDogJycsXHJcbiAgICAgICAgb2Zmc2V0OiB0aGlzLnBhZ2VJbmRleCAqIHRoaXMucGFnaW5hdG9yQ29uZmlnLnJlY29yZHNQZXJQYWdlLFxyXG4gICAgICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRvckNvbmZpZy5yZWNvcmRzUGVyUGFnZSxcclxuICAgICAgICBzb3J0ZWRCeTogdGhpcy5zb3J0ZWRCeSxcclxuICAgICAgICBzb3J0ZWRPcmRlckJ5OiB0aGlzLnNvcnRlZE9yZGVyQnksXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC5nZXRJbnRlcmVzdFJlc3BvbnNlc0J5R3JvdXAoZ3JvdXBJZCwgcGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzcG9uc2U/LnRvdGFsUmVjb3JkcyA/PyAwO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcgPSB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMucGFnaW5hdG9yQ29uZmlnLFxyXG4gICAgICAgICAgICB0b3RhbFJlY29yZHM6IHRoaXMudG90YWxSZWNvcmRzLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMucm9zdGVycyA9IChyZXNwb25zZT8uZGF0YSA/PyBbXSkubWFwKCh2aWV3KSA9PlxyXG4gICAgICAgICAgICB0aGlzLm1hcFRvUm9zdGVyKHZpZXcpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnJvc3RlcnM7XHJcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yb3N0ZXJzID0gW107XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSAwO1xyXG4gICAgICAgICAgdGhpcy5wYWdpbmF0b3JDb25maWcgPSB7IC4uLnRoaXMucGFnaW5hdG9yQ29uZmlnLCB0b3RhbFJlY29yZHM6IDAgfTtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmdyb3Vwc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yLCBmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2luYXRpb25DaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlSW5kZXggPSBldmVudC5wYWdlSW5kZXg7XHJcbiAgICB0aGlzLnBhZ2luYXRvckNvbmZpZyA9IHtcclxuICAgICAgLi4udGhpcy5wYWdpbmF0b3JDb25maWcsXHJcbiAgICAgIHJlY29yZHNQZXJQYWdlOiBldmVudC5wYWdlU2l6ZSxcclxuICAgIH07XHJcbiAgICB0aGlzLmxvYWRJbnRlcmVzdGVkUm9zdGVycygpO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0Q2hhbmdlKGV2ZW50OiBTb3J0KTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRlZEJ5ID0gZXZlbnQuZGlyZWN0aW9uID8gZXZlbnQuYWN0aXZlIDogdGhpcy5kZWZhdWx0U29ydGVkQ29sdW1uO1xyXG4gICAgdGhpcy5zb3J0ZWRPcmRlckJ5ID0gZXZlbnQuZGlyZWN0aW9uIHx8IHRoaXMuZGVmYXVsdENvbHVtblNvcnREaXJlY3Rpb247XHJcbiAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XHJcbiAgICB0aGlzLmxvYWRJbnRlcmVzdGVkUm9zdGVycygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFwcyBhIGJhY2tlbmQge0BsaW5rIEdyb3VwSW50ZXJlc3RSZXNwb25zZVZpZXd9IHRvIHRoZSBmbGF0dGVuZWRcclxuICAgKiB7QGxpbmsgSW50ZXJlc3RlZFJvc3Rlcn0gcm93IHRoZSB0YWJsZSByZW5kZXJzOiBhZmZpbGlhdGlvbiBvcmcgbmFtZXMgYXJlXHJcbiAgICogam9pbmVkIGludG8gdGhlIGFmZmlsaWF0aW9ucyBsaXN0LCB0aGUgYXNzaWduZWQgbWVtYmVyc2hpcCBsZXZlbCAoaWYgYW55KVxyXG4gICAqIGJlY29tZXMgdGhlIHJvbGUgbmFtZSDigJQgd2hpY2ggdGhlIE1lbWJlciBMZXZlbCBkcm9wZG93biBiaW5kcyBhcyBpdHNcclxuICAgKiBwcmUtc2VsZWN0ZWQgdmFsdWUg4oCUIHRoZSBzdWJtaXR0ZWQgdGltZXN0YW1wIGlzIGZvcm1hdHRlZCBmb3IgZGlzcGxheSwgYW5kXHJcbiAgICogdGhlIGludGVyZXN0IGlkIGlzIGNhcnJpZWQgdGhyb3VnaCBmb3IgdGhlIHJlc3BvbnNlcyBkaWFsb2cgYW5kIHRoZSBsZXZlbFxyXG4gICAqIG92ZXJyaWRlLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbnRlcmVzdFJlc3BvbnNlVmlld30gdmlld1xyXG4gICAqIEByZXR1cm4ge0ludGVyZXN0ZWRSb3N0ZXJ9XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYXBUb1Jvc3Rlcih2aWV3OiBHcm91cEludGVyZXN0UmVzcG9uc2VWaWV3KTogSW50ZXJlc3RlZFJvc3RlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpbnRlcmVzdElkOiB2aWV3Py5pbnRlcmVzdElkLFxyXG4gICAgICB1c2VySWQ6IHZpZXc/LnVzZXJJZCxcclxuICAgICAgbmFtZTogdmlldz8ubmFtZSxcclxuICAgICAgZW1haWw6IHZpZXc/LmVtYWlsLFxyXG4gICAgICBhZmZpbGlhdGlvbnM6ICh2aWV3Py5hZmZpbGlhdGlvbiA/PyBbXSkubWFwKChvcmcpID0+IG9yZz8ub3JnTmFtZSksXHJcbiAgICAgIHN1Ym1pdHRlZE9uOiB0aGlzLmZvcm1hdFN1Ym1pdHRlZE9uKHZpZXc/LnN1Ym1pdHRlZE9uKSxcclxuICAgICAgbWVtYmVyTGV2ZWw6IHZpZXc/Lm1lbWJlckxldmVsPy5sZW5ndGhcclxuICAgICAgICA/IHZpZXcubWVtYmVyTGV2ZWxbMF0/LnJvbGVOYW1lID8/IG51bGxcclxuICAgICAgICA6IG51bGwsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0cyB0aGUgYmFja2VuZCBzdWJtaXR0ZWQgdGltZXN0YW1wIChJU08gZGF0ZSBzdHJpbmcpIGZvciBkaXNwbGF5LFxyXG4gICAqIGZhbGxpbmcgYmFjayB0byB0aGUgcmF3IHZhbHVlIHdoZW4gaXQgaXMgbm90IGEgcGFyc2VhYmxlIGRhdGUuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1Ym1pdHRlZE9uXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZm9ybWF0U3VibWl0dGVkT24oc3VibWl0dGVkT246IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXN1Ym1pdHRlZE9uKSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoc3VibWl0dGVkT24pO1xyXG4gICAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKVxyXG4gICAgICA/IHN1Ym1pdHRlZE9uXHJcbiAgICAgIDogZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLVVTJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgTWVtYmVyIExldmVsIGRyb3Bkb3duIG9wdGlvbnMgZnJvbSB0aGUgcm9sZXMgQVBJXHJcbiAgKiAoe0Bjb2RlIEdFVCAvZ3JvdXBzL2NvbmZpZy9yb2xlc0J5R3JvdXBUeXBlL3tncm91cFR5cGV9fSksIGtlZXBpbmcgb25seSByb2xlcyB3aG9zZVxyXG4gICAqIHtAY29kZSByb2xlVHlwZU5hbWV9IGlzIFwiTWVtYmVyIExldmVsXCIgYW5kIG1hcHBpbmcgZWFjaCB0byBhXHJcbiAgICoge0BsaW5rIFNlbGVjdE9wdGlvbn0gKHtAY29kZSB7IGlkOiByb2xlSWQsIG5hbWU6IHJvbGVOYW1lIH19KS5cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RlZFJvc3RlcnNDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIGxvYWRNZW1iZXJMZXZlbE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBncm91cFR5cGUgPVxyXG4gICAgICB0aGlzLmdyb3VwPy5ncm91cFR5cGUgPz9cclxuICAgICAgdGhpcy5ncm91cHNTZXJ2aWNlLmdldFNlbGVjdGVkR3JvdXBJbmZvKCk/Lmdyb3VwVHlwZTtcclxuICAgIGlmICghZ3JvdXBUeXBlKSByZXR1cm47XHJcbiAgICB0aGlzLmdyb3Vwc1NlcnZpY2VcclxuICAgICAgLmdldEdyb3VwVHlwZVJvbGVzKGdyb3VwVHlwZSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1lbWJlckxldmVsT3B0aW9ucyA9ICh0aGlzLmdyb3Vwc1NlcnZpY2UuZ2V0TWVtYmVyVHlwZXMoKSA/PyBbXSlcclxuICAgICAgICAgICAgLm1hcCgocm9sZSkgPT4gKHsgaWQ6IHJvbGUucm9sZUlkLCBuYW1lOiByb2xlLnJvbGVOYW1lIH0pKTtcclxuICAgICAgICAgIHRoaXMuYnVpbGRDb2x1bW5TY2hlbWEoKTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuZ3JvdXBzU2VydmljZS5oYW5kbGVFcnJvcnMoZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyc2lzdHMgdGhlIG1lbWJlcnNoaXAtbGV2ZWwgb3ZlcnJpZGUgd2hlbiB0aGUgYWRtaW4gcGlja3MgYSB2YWx1ZSBpbiBhXHJcbiAgICogcm93J3MgTWVtYmVyIExldmVsIGRyb3Bkb3duIChib3VuZCB0byB0aGUgcmV1c2FibGUgdGFibGUnc1xyXG4gICAqIGByb3dEcm9wZG93bkNoYW5nZWAgb3V0cHV0KS4gQnVpbGRzIHRoZSByZXF1ZXN0IGZyb20gdGhlIGRpYWxvZydzIGN1cnJlbnRcclxuICAgKiBncm91cCBpZCwgdGhlIHJvdydzIHVzZXIgaWQgYW5kIHRoZSBzZWxlY3RlZCBvcHRpb24ncyBpZCAodGhlIHJvbGUgaWQpLCBhbmRcclxuICAgKiBwb3N0cyBpdCB0byB0aGUgYmFja2VuZC4gVGhlIHJvdydzIGRpc3BsYXllZCBsZXZlbCBpcyB1cGRhdGVkIG9wdGltaXN0aWNhbGx5XHJcbiAgICogYW5kIHJldmVydGVkIGlmIHRoZSBzYXZlIGZhaWxzLlxyXG4gICAqIEBwYXJhbSB7eyByb3c6IEludGVyZXN0ZWRSb3N0ZXI7IG9wdGlvbjogU2VsZWN0T3B0aW9uIH19IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NZW1iZXJMZXZlbENoYW5nZShldmVudDoge1xyXG4gICAgcm93OiBJbnRlcmVzdGVkUm9zdGVyO1xyXG4gICAgb3B0aW9uOiBTZWxlY3RPcHRpb247XHJcbiAgfSk6IHZvaWQge1xyXG4gICAgY29uc3Qgcm93ID0gZXZlbnQ/LnJvdztcclxuICAgIGNvbnN0IG9wdGlvbiA9IGV2ZW50Py5vcHRpb247XHJcbiAgICBjb25zdCBncm91cElkID1cclxuICAgICAgdGhpcy5ncm91cD8uZ3JvdXBJZCA/P1xyXG4gICAgICB0aGlzLmdyb3Vwc1NlcnZpY2UuZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBJZDtcclxuICAgIGNvbnN0IHJvbGVJZCA9IG9wdGlvbj8uaWQgYXMgc3RyaW5nO1xyXG4gICAgaWYgKCFyb3c/LnVzZXJJZCB8fCAhZ3JvdXBJZCB8fCAhcm9sZUlkKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgcHJldmlvdXNMZXZlbCA9IHJvdy5tZW1iZXJMZXZlbDtcclxuICAgIC8vIE9wdGltaXN0aWNhbGx5IHJlZmxlY3QgdGhlIHNlbGVjdGlvbiBpbiB0aGUgcm93LlxyXG4gICAgcm93Lm1lbWJlckxldmVsID0gb3B0aW9uPy5uYW1lID8/IHJvdy5tZW1iZXJMZXZlbDtcclxuXHJcbiAgICBjb25zdCBwYXlsb2FkOiBVcGRhdGVNZW1iZXJMZXZlbFBheWxvYWQgPSB7XHJcbiAgICAgIHBheWxvYWQ6IHtcclxuICAgICAgICBncm91cElkLFxyXG4gICAgICAgIHVzZXJJZDogcm93LnVzZXJJZCxcclxuICAgICAgICByb2xlSWQsXHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5ncm91cHNTZXJ2aWNlXHJcbiAgICAgIC51cGRhdGVJbnRlcmVzdE1lbWJlckxldmVsKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgLy8gUmV2ZXJ0IHRoZSBvcHRpbWlzdGljIGNoYW5nZSBvbiBmYWlsdXJlIGFuZCBzdXJmYWNlIHRoZSBlcnJvci5cclxuICAgICAgICAgIHJvdy5tZW1iZXJMZXZlbCA9IHByZXZpb3VzTGV2ZWw7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB0aGlzLmdyb3Vwc1NlcnZpY2UuaGFuZGxlRXJyb3JzKGVycm9yKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIHRoZSBcIlZpZXcgUmVzcG9uc2VzXCIgZGlhbG9nIGZvciBhIHJvc3RlciByb3cgKGJvdW5kIHRvIHRoZSByZXVzYWJsZVxyXG4gICAqIHRhYmxlJ3MgTElOSyBvdXRwdXQpIHVzaW5nIHRoZSBzaGFyZWQge0BsaW5rIE1vZGFsQ29tcG9uZW50fS4gVGhlIG1vZGFsXHJcbiAgICogc3VwcGxpZXMgdGhlIHRpdGxlIHJvdyBhbmQgWCBjbG9zZTsgdGhlIHJlcXVlc3RlcidzIHN0b3JlZCBpbnRlcmVzdC1mb3JtXHJcbiAgICogcmVzcG9uc2VzIGFyZSByZW5kZXJlZCBieSB7QGxpbmsgSW50ZXJlc3RSZXNwb25zZXNDb21wb25lbnR9LCB3aGljaCBsb2Fkc1xyXG4gICAqIHRoZW0gZnJvbSB0aGUgYmFja2VuZCB1c2luZyB0aGUgcm93J3Mge0Bjb2RlIGludGVyZXN0SWR9IHBhc3NlZCB2aWEgdGhlXHJcbiAgICogTW9kYWxDb21wb25lbnQgZHluYW1pYy1pbnB1dCBwYXR0ZXJuLlxyXG4gICAqIEBwYXJhbSB7SW50ZXJlc3RlZFJvc3Rlcn0gcm93XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0ZWRSb3N0ZXJzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Gb3JtTGlua0NsaWNrKHJvdzogSW50ZXJlc3RlZFJvc3Rlcik6IHZvaWQge1xyXG4gICAgaWYgKCFyb3c/LmludGVyZXN0SWQpIHJldHVybjtcclxuICAgIGNvbnN0IGRpYWxvZ09wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRpbmc6IHRoaXMudGV4dHM/LnJlc3BvbnNlcz8udGl0bGUsXHJcbiAgICAgIHN1YkhlYWRpbmc6IHRoaXMuZ3JvdXA/Lmdyb3VwTmFtZSxcclxuICAgICAgaGVhZGluZ0NsYXNzOiAnaWVlZXNhLXRpdGxlLWxnLTI0JyxcclxuICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgY29tcG9uZW50UmVmZXJlbmNlOiBJbnRlcmVzdFJlc3BvbnNlc0NvbXBvbmVudCxcclxuICAgICAgbW9kYWxUeXBlOiBNb2RhbFR5cGUuRk9STSxcclxuICAgICAgZGF0YTJEeW5hbWljQ29tcG9uZW50OiB7IGludGVyZXN0SWQ6IHJvdy5pbnRlcmVzdElkIH0sXHJcbiAgICAgIGRhdGFJbnB1dE5hbWU6ICdjb21wb25lbnREYXRhJyxcclxuICAgIH07XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKE1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IGRpYWxvZ09wdGlvbnMsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnaWVlZXNhLW1vZGFsLWRpYWxvZycsICdpZWVlc2EtaW50ZXJlc3QtcmVzcG9uc2VzLWRpYWxvZyddLFxyXG4gICAgICB3aWR0aDogJzgwMHB4JyxcclxuICAgICAgbWF4V2lkdGg6ICc5NXZ3JyxcclxuICAgICAgbWF4SGVpZ2h0OiAnOTB2aCcsXHJcbiAgICAgIGFyaWFNb2RhbDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgcmV1c2FibGUtdGFibGUgY29sdW1ucyBmb3IgdGhlIEludGVyZXN0ZWQgUm9zdGVycyBsaXN0LiBFdmVyeVxyXG4gICAqIGBjZWxsRGF0YWAvYHNlbGVjdGVkT3B0aW9uYCBpcyBhIGAocm93KSA9PiAuLi5gIGFjY2Vzc29yLCBtYXRjaGluZyB0aGVcclxuICAgKiBzaGFyZWQgdGFibGUncyBjb250cmFjdC4gTWVtYmVyIExldmVsIGlzIHRoZSBEUk9QRE9XTiBjb2x1bW4gc2VlZGVkIHdpdGggdGhlXHJcbiAgICogY29uZmlndXJlZCBsZXZlbHMgcGx1cyBcIk5vbmVcIjsgRm9ybSBpcyBhIExJTksgdGhhdCBvcGVucyB0aGUgcmVzcG9uc2VzXHJcbiAgICogZGlhbG9nLlxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdGVkUm9zdGVyc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYnVpbGRDb2x1bW5TY2hlbWEoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb2x1bW5zID0gdGhpcy50ZXh0cz8uY29sdW1ucztcclxuICAgIHRoaXMuY29sdW1uU2NoZW1hID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDEsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnbmFtZScsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8ubmFtZSxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICBpc1NvcnRhYmxlQ29sdW1uOiB0cnVlLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChyb3c6IGFueSkgPT4gcm93Lm5hbWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMixcclxuICAgICAgICBjb2x1bW5EZWY6ICdlbWFpbCcsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8uZW1haWwsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAocm93OiBhbnkpID0+IHJvdy5lbWFpbCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAzLFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ2FmZmlsaWF0aW9ucycsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8uYWZmaWxpYXRpb25zLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChyb3c6IGFueSkgPT4gKHJvdy5hZmZpbGlhdGlvbnMgfHwgW10pLmpvaW4oJywgJyksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNCxcclxuICAgICAgICBjb2x1bW5EZWY6ICdzdWJtaXR0ZWRPbicsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8uc3VibWl0dGVkT24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgaXNTb3J0YWJsZUNvbHVtbjogdHJ1ZSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAocm93OiBhbnkpID0+IHJvdy5zdWJtaXR0ZWRPbixcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA1LFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ21lbWJlckxldmVsJyxcclxuICAgICAgICBoZWFkaW5nOiBjb2x1bW5zPy5tZW1iZXJMZXZlbCxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuRFJPUERPV04sXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKHJvdzogYW55KSA9PiByb3cubWVtYmVyTGV2ZWwsXHJcbiAgICAgICAgZHJvcGRvd25PcHRpb25zOiB0aGlzLm1lbWJlckxldmVsT3B0aW9ucyxcclxuICAgICAgICBkcm9wZG93blBsYWNlaG9sZGVyOiB0aGlzLnRleHRzPy5tZW1iZXJMZXZlbFBsYWNlaG9sZGVyLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgc2VsZWN0ZWRPcHRpb246IChyb3c6IGFueSkgPT5cclxuICAgICAgICAgIHRoaXMubWVtYmVyTGV2ZWxPcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gcm93Lm1lbWJlckxldmVsKSA/P1xyXG4gICAgICAgICAgbnVsbCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA2LFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ2Zvcm0nLFxyXG4gICAgICAgIGhlYWRpbmc6IGNvbHVtbnM/LmZvcm0sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLkxJTkssXHJcbiAgICAgICAgY2VsbERhdGE6ICgpID0+IHRoaXMudGV4dHM/LnZpZXdMYWJlbCxcclxuICAgICAgICBhcmlhTGFiZWw6IChyb3c6IEludGVyZXN0ZWRSb3N0ZXIpID0+XHJcbiAgICAgICAgICBgJHt0aGlzLnRleHRzPy52aWV3QXJpYUxhYmVsUHJlZml4fSAke3Jvdz8ubmFtZSA/PyAnJ31gLnRyaW0oKSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0ZWQtcm9zdGVyc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwidGV4dHM/LnJlZ2lvbkFyaWFMYWJlbFwiPlxyXG4gIDxwIGNsYXNzPVwiaWVlZXNhLWludGVyZXN0ZWQtcm9zdGVyc19fY291bnRcIj57eyB0b3RhbFJlY29yZHMgfX0ge3sgdGV4dHM/LmNvdW50U3VmZml4IH19PC9wPlxyXG4gIDxpZWVlc2EtZGF0YS10YWJsZVxyXG4gICAgW3RhYmxlRGF0YUluZm9dPVwidGFibGVEYXRhXCJcclxuICAgIFtjb2x1bW5TY2hlbWFJbmZvXT1cImNvbHVtblNjaGVtYVwiXHJcbiAgICBbdGFibGVBY3Rpb25zXT1cInRhYmxlQWN0aW9uc1wiXHJcbiAgICBbcGFnaW5hdG9yQ29uZmlnXT1cInBhZ2luYXRvckNvbmZpZ1wiXHJcbiAgICBbcGFnZUluZGV4XT1cInBhZ2VJbmRleFwiXHJcbiAgICBbcGFnZVNpemVdPVwicGFnaW5hdG9yQ29uZmlnLnJlY29yZHNQZXJQYWdlXCJcclxuICAgIFtkZWZhdWx0U29ydGVkQ29sdW1uXT1cImRlZmF1bHRTb3J0ZWRDb2x1bW5cIlxyXG4gICAgW2RlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXCJcclxuICAgIFtpc0NsZWFyU29ydE5lZWRlZF09XCJmYWxzZVwiXHJcbiAgICAocGFnaW5hdGlvbkNoYW5nZSk9XCJvblBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAoc29ydENoYW5nZSk9XCJvblNvcnRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAocm93TGluayk9XCJvbkZvcm1MaW5rQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAocm93RHJvcGRvd25DaGFuZ2UpPVwib25NZW1iZXJMZXZlbENoYW5nZSgkZXZlbnQpXCJcclxuICA+PC9pZWVlc2EtZGF0YS10YWJsZT5cclxuPC9zZWN0aW9uPlxyXG4iXX0=