@dsivd/prestations-ng 14.5.6 → 14.5.9-beta2

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.
@@ -125,9 +125,9 @@ export class FoehnPageComponent {
125
125
  this.applicationInfoService.currentEtapeInfo
126
126
  ]).pipe(debounceTime(0), // without debounceTime, the outcome is less effective...
127
127
  map(([formInitialization, sessionInfoData, currentEtapeInfo]) => {
128
- const isConnected = !!sessionInfoData && !!sessionInfoData.context;
128
+ const isConnectedCyberOrIam = !!sessionInfoData;
129
129
  const isLastPage = this.foehnNavigationService.isLastFormPage();
130
- if (isConnected ||
130
+ if (isConnectedCyberOrIam ||
131
131
  !currentEtapeInfo.deployeeCyber ||
132
132
  !!formInitialization ||
133
133
  isLastPage) {
@@ -206,4 +206,4 @@ export class DisplayLoginMessagesData {
206
206
  this.displayShouldLoginMessage = displayShouldLoginMessage;
207
207
  }
208
208
  }
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBS1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt6RCxNQUFNLHFCQUFxQixHQUN2QixrSEFBa0gsQ0FBQztBQUN2SCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ3ZELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUM7QUFNekQsTUFBTSxPQUFPLGtCQUFrQjtJQXdFM0IsWUFDWSxhQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUM5QyxzQkFBOEMsRUFDOUMsa0JBQXNDLEVBQ3RDLGlCQUF5QyxFQUN6QyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLG9CQUEwQztRQVYxQyxrQkFBYSxHQUFiLGFBQWEsQ0FBTztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FB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QURiLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFXTiw0QkFBNEI7c0JBRDNCLEtBQUs7Z0JBT04sMEJBQTBCO3NCQUR6QixLQUFLO2dCQU9OLHdCQUF3QjtzQkFEdkIsS0FBSztnQkFPTixtQ0FBbUM7c0JBRGxDLEtBQUs7O0FBZ01WLE1BQU0sT0FBTyx3QkFBd0I7SUFJakMsWUFDSSw2QkFBc0MsRUFDdEMseUJBQWtDO1FBRWxDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyw2QkFBNkIsQ0FBQztRQUNuRSxJQUFJLENBQUMseUJBQXlCLEdBQUcseUJBQXlCLENBQUM7SUFDL0QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb290ZXJMaW5rIH0gZnJvbSAnLi4vZm9laG4tZm9vdGVyL2Zvb3Rlci1saW5rLnR5cGUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEZvZWhuUGFnZVNlcnZpY2UgfSBmcm9tICcuL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTdXBwb3J0QWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLXN1cHBvcnQtYWxlcnQvc3VwcG9ydC1hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXRhcGVJbmZvIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mbyc7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5Db25maXJtTW9kYWxDb250ZW50IH0gZnJvbSAnLi4vZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLWNvbnRlbnQnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkV2ZW50U2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHN1cHBvcnRlZEJyb3dzZXJzIH0gZnJvbSAnLi4vc3VwcG9ydGVkLWJyb3dzZXInO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuUGFnZU1vZGFsU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS1tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5cbmNvbnN0IExFQVZJTkdfQUxFUlRfQ09OVEVOVCA9XG4gICAgJ0NlIGNoYW5nZW1lbnQgZGUgcGFnZSBlbnRyYWluZSB1bmUgcGVydGUgZGVzIGRvbm7DqWVzIG5vbiBzYXV2ZWdhcmTDqWVzLjxici8+U291aGFpdGV6LXZvdXMgcXVhbmQgbcOqbWUgY29udGludWVyID8nO1xuY29uc3QgTEVBVklOR19BTEVSVF9PSyA9ICdQb3Vyc3VpdnJlIHNhbnMgc2F1dmVnYXJkZXInO1xuY29uc3QgTEVBVklOR19BTEVSVF9DQU5DRUwgPSAnUmV0b3VybmVyIMOgIGxhIHByZXN0YXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZvZWhuLXBhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1wYWdlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb2VoblBhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGFwcFRpdGxlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGZvb3RlckxpbmtzOiBGb290ZXJMaW5rW107XG5cbiAgICBASW5wdXQoKVxuICAgIG5ldmVyQ29ubmVjdGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBzdXBwb3J0QWxlcnRFbmFibGVkID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc3VwcG9ydEFsZXJ0VXJsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGV0YXBlSWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgdXNlckNvbm5lY3RlZEFzRGlzcGxheWVkID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgY29uZmlybUxlYXZpbmdBbGVydDogRm9laG5Db25maXJtTW9kYWxDb250ZW50ID0ge1xuICAgICAgICBodG1sQ29udGVudDogTEVBVklOR19BTEVSVF9DT05URU5ULFxuICAgICAgICBva0J1dHRvbkxhYmVsOiBMRUFWSU5HX0FMRVJUX09LLFxuICAgICAgICBjYW5jZWxCdXR0b25MYWJlbDogTEVBVklOR19BTEVSVF9DQU5DRUxcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgQ29udGFjdCBsaW5rIGluIHRoZSBmb290ZXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RGVmYXVsdENvbnRhY3RGb290ZXJMaW5rID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIElmIHNldCB0byAnZmFsc2UnLCBoaWRlIHRoZSBkZWZhdWx0IEd1aWRlIGxpbmsgaW4gdGhlIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0R3VpZGVGb290ZXJMaW5rID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIElmIHNldCB0byAnZmFsc2UnLCBoaWRlIHRoZSBkZWZhdWx0IFRlcm1zIG9mIHVzZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRUZXJtT2ZVc2VMaW5rID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIElmIHNldCB0byAnZmFsc2UnLCBoaWRlIHRoZSBkZWZhdWx0IFNlY3VyaXR5IEJlc3QgUHJhY3RpY2UgbGluay5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rID0gdHJ1ZTtcblxuICAgIHBhZ2VUaXRsZTogc3RyaW5nO1xuXG4gICAgaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBkaXNwbGF5VXNlckNhdGVnb3J5OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgZGlzcGxheUxvZ2luTWVzc2FnZXM6IE9ic2VydmFibGU8RGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhPjtcblxuICAgIGlzQnJvd3NlclN1cHBvcnRlZDogYm9vbGVhbjtcblxuICAgIGlzQXBwbGVQbGF0Zm9ybTogYm9vbGVhbjtcblxuICAgIGJyb3dzZXJMaW5rVGl0bGVQcmVmaXggPVxuICAgICAgICAnTGllbiBwb3VyIGxlIHTDqWzDqWNoYXJnZW1lbnQgZHUgbmF2aWdhdGV1ciBpbnRlcm5ldCc7XG5cbiAgICBicm93c2VyTm90U3VwcG9ydGVkQnlwYXNzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGJsb2NrZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF90aXRsZVNlcnZpY2U6IFRpdGxlLFxuICAgICAgICBwcml2YXRlIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc3VwcG9ydEFsZXJ0U2VydmljZTogU3VwcG9ydEFsZXJ0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2Vobk5hdmlnYXRpb25TZXJ2aWNlOiBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYnJlYWRjcnVtYlNlcnZpY2U6IEJyZWFkY3J1bWJFdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvLFxuICAgICAgICBwcml2YXRlIGZvZWhuUGFnZU1vZGFsU2VydmljZTogRm9laG5QYWdlTW9kYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNka0RpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmhhc0Jsb2NraW5nU3VwcG9ydEFsZXJ0ID0gc3VwcG9ydEFsZXJ0U2VydmljZS5nZXRIYXNBdExlYXN0T25lQmxvY2tpbmdBbGVydCgpO1xuXG4gICAgICAgIHRoaXMuYmxvY2tlZFN1YnNjcmlwdGlvbiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLmZvZWhuUGFnZU9ic2VydmFibGUoKSxcbiAgICAgICAgICAgIC8vIEVuc3VyZXMgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHZhbHVlIGluIHRoZSBvYnNlcnZhYmxlLlxuICAgICAgICAgICAgbWVyZ2Uob2YoZmFsc2UpLCB0aGlzLmhhc0Jsb2NraW5nU3VwcG9ydEFsZXJ0KVxuICAgICAgICBdKS5zdWJzY3JpYmUoKFt0aXRsZSwgYmxvY2tlZF0pID0+IHtcbiAgICAgICAgICAgIGlmIChibG9ja2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUoJ1ByZXN0YXRpb24gaW5kaXNwb25pYmxlJyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRpdGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pc0Jyb3dzZXJTdXBwb3J0ZWQgPSBzdXBwb3J0ZWRCcm93c2Vycy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICB0aGlzLmlzQXBwbGVQbGF0Zm9ybSA9IC8oTWFjfGlQaG9uZXxpUG9kfGlQYWQpL2kudGVzdChcbiAgICAgICAgICAgIG5hdmlnYXRvci5wbGF0Zm9ybVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNCcm93c2VyU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICBjb25zdCBwYWdlVGl0bGUgPSAnTmF2aWdhdGV1ciBub24gc3VwcG9ydMOpJztcbiAgICAgICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5zZXRQYWdlVGl0bGUocGFnZVRpdGxlKTtcbiAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uuc2V0Q3VycmVudEJyZWFkY3J1bWIoe1xuICAgICAgICAgICAgICAgIHVybDogbnVsbCxcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBwYWdlVGl0bGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNJbml0aWFsU3RlcCA9IHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5jdXJyZW50RXRhcGVJbmZvLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRFdGFwZUluZm86IEV0YXBlSW5mbykgPT5cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyAmJlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvLmlkTWV0aWVyRXRhcGUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvLmlkTWV0aWVyUHJlc3RhdGlvblxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIGNvbnN0IG5hdmlnYXRpb25VcGRhdGU6IE9ic2VydmFibGU8YW55PiA9IG9mICh0cnVlKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uVXBkYXRlOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gRW5zdXJlcyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmFsdWUgaW4gdGhlIG9ic2VydmFibGUuXG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25BbmRJbml0ID0gbWVyZ2Uob2YodHJ1ZSksIG5hdmlnYXRpb25VcGRhdGUpO1xuICAgICAgICBjb25zdCBmb3JtVHJhbnNtaXR0ZWQgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZS5mb3JtVHJhbnNtaXR0ZWRPYnNlcnZhYmxlKClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmRpc3BsYXlVc2VyQ2F0ZWdvcnkgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIGlzSW5pdGlhbFN0ZXAsXG4gICAgICAgICAgICB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaGFzQmVlbkluaXRpYWxpemVkKCksXG4gICAgICAgICAgICBmb3JtVHJhbnNtaXR0ZWQsXG4gICAgICAgICAgICBuYXZpZ2F0aW9uQW5kSW5pdFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLCAvLyB3aXRob3V0IGRlYm91bmNlVGltZSwgdGhlIG91dGNvbWUgaXMgbGVzcyBlZmZlY3RpdmUuLi5cbiAgICAgICAgICAgIG1hcCgoW2luaXRpYWxTdGVwLCBuYXZTZXJ2aWNlSW5pdGlhbGl6ZWQsIGJhY2tlbmRSZXNwb25zZV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobmF2U2VydmljZUluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzRmlyc3RQYWdlID0gdGhpcy5mb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmlzRmlyc3RGb3JtUGFnZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0xhc3RQYWdlID0gdGhpcy5mb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmlzTGFzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ3VycmVudFJvdXRlRGVmaW5lZCA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuZ2V0Q3VycmVudFJvdXRlSW5kZXgoKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvZWhuUGFnZVNlcnZpY2UuaXNVc2VyQ2F0ZWdvcnlWaXNpYmxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xhc3RQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyQ29ubmVjdGVkQXNEaXNwbGF5ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsU3RlcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV2ZXJDb25uZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnRSb3V0ZURlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBmb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlID0gbWVyZ2UoXG4gICAgICAgICAgICBvZih1bmRlZmluZWQpLFxuICAgICAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxvZ2luTWVzc2FnZXMgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIGZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUsXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGEsXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuY3VycmVudEV0YXBlSW5mb1xuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLCAvLyB3aXRob3V0IGRlYm91bmNlVGltZSwgdGhlIG91dGNvbWUgaXMgbGVzcyBlZmZlY3RpdmUuLi5cbiAgICAgICAgICAgIG1hcCgoW2Zvcm1Jbml0aWFsaXphdGlvbiwgc2Vzc2lvbkluZm9EYXRhLCBjdXJyZW50RXRhcGVJbmZvXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ29ubmVjdGVkID1cbiAgICAgICAgICAgICAgICAgICAgISFzZXNzaW9uSW5mb0RhdGEgJiYgISFzZXNzaW9uSW5mb0RhdGEuY29udGV4dDtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0xhc3RQYWdlID0gdGhpcy5mb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmlzTGFzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBpc0Nvbm5lY3RlZCB8fFxuICAgICAgICAgICAgICAgICAgICAhY3VycmVudEV0YXBlSW5mby5kZXBsb3llZUN5YmVyIHx8XG4gICAgICAgICAgICAgICAgICAgICEhZm9ybUluaXRpYWxpemF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2VcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEoZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERpc3BsYXlMb2dpbk1lc3NhZ2VzRGF0YShcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbz8uZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUsXG4gICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV0YXBlSWRDaGFuZ2UgPSBjaGFuZ2VzLmV0YXBlSWQ7XG4gICAgICAgIGlmIChldGFwZUlkQ2hhbmdlICYmIGV0YXBlSWRDaGFuZ2UuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2Uuc2V0Q3VycmVudEV0YXBlSWQoZXRhcGVJZENoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXBwVGl0bGVDaGFuZ2UgPSBjaGFuZ2VzLmFwcFRpdGxlO1xuICAgICAgICBpZiAoYXBwVGl0bGVDaGFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlU2VydmljZS5zZXRUaXRsZShhcHBUaXRsZUNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmJsb2NrZWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2tlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvZWhuUGFnZU1vZGFsU2VydmljZS5idWlsZFNlbGZSZWRpcmVjdGlvblRocm91Z2hDeWJlckxvZ2luKCk7XG4gICAgfVxuXG4gICAgZ2V0RnVsbExvZ2luTWVzc2FnZShcbiAgICAgICAgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGU6IGJvb2xlYW5cbiAgICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICBpZiAoZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleSgndXNlLWxvZ2luLnRleHQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleShcbiAgICAgICAgICAgICAgICAgICAgJ3VzZS1sb2dpbi50ZXh0LmRlY2lzaW9uLWVsZWN0cm9uaXF1ZS1hdmFpbGFibGUnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgIChbbG9naW5Nc2csIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlTXNnXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGAke2xvZ2luTXNnfTxici8+PGJyLz4ke2RlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlTXNnfWBcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNka0RpY3Rpb25hcnlTZXJ2aWNlLmdldEtleSgndXNlLWxvZ2luLnRleHQnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhZ2VUaXRsZSh0aXRsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVRpdGxlID0gdGl0bGU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhIHtcbiAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlOiBib29sZWFuLFxuICAgICAgICBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlOiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGUgPSBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlID0gZGlzcGxheVNob3VsZExvZ2luTWVzc2FnZTtcbiAgICB9XG59XG4iLCI8Zm9laG4taGVhZGVyXG4gICAgaWQ9XCJmb2Vobl9oZWFkZXJcIlxuICAgIFt0aXRsZV09XCJhcHBUaXRsZVwiXG4gICAgW25ldmVyQ29ubmVjdGVkXT1cIm5ldmVyQ29ubmVjdGVkXCJcbj48L2ZvZWhuLWhlYWRlcj5cbjxmb2Vobi1ncm93bCBpZD1cImZvZWhuX2dyb3dsXCI+PC9mb2Vobi1ncm93bD5cbjxkaXYgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWdyYXlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxmb2Vobi1icmVhZGNydW1iXG4gICAgICAgICAgICBbbmV2ZXJDb25uZWN0ZWRdPVwibmV2ZXJDb25uZWN0ZWRcIlxuICAgICAgICAgICAgW2NvbmZpcm1MZWF2aW5nQWxlcnRdPVwiY29uZmlybUxlYXZpbmdBbGVydFwiXG4gICAgICAgID48L2ZvZWhuLWJyZWFkY3J1bWI+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxtYWluIGlkPVwibWFpblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2ZC1iZy1wYXR0ZXJuLWdyYXlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPCEtLSBGaXggYW5ub3lpbmcgZmxpY2tlcmluZyB3aGVuIHRoZSBwYWdlIGxvYWRzIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgxIG10LTBcIiAqbmdJZj1cIiFwYWdlVGl0bGVcIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgIDxoMVxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0wXCJcbiAgICAgICAgICAgICAgICBpZD1cInBhZ2UtdGl0bGVcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiISFwYWdlVGl0bGVcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicGFnZVRpdGxlXCJcbiAgICAgICAgICAgID48L2gxPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxzZWN0aW9uXG4gICAgICAgICpuZ0lmPVwiIWlzQnJvd3NlclN1cHBvcnRlZFwiXG4gICAgICAgIGNsYXNzPVwiY29udGFpbmVyIGFsZXJ0IGFsZXJ0LWRhbmdlclwiXG4gICAgICAgIGlkPVwiYnJvd3Nlcl9ub3Rfc3VwcG9ydGVkX2Jsb2NrXCJcbiAgICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwiYWxlcnQtaGVhZGluZ1wiPlxuICAgICAgICAgICAgPHN0cm9uZz5cbiAgICAgICAgICAgICAgICBDZXR0ZSBwcmVzdGF0aW9uIG7igJllc3QgcGFzIGNvbXBhdGlibGUgYXZlYyB2b3RyZSBuYXZpZ2F0ZXVyLlxuICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+XG4gICAgICAgICAgICBOb3VzIHZvdXMgaW52aXRvbnMgw6AgdXRpbGlzZXIgdW5lIHZlcnNpb24gcsOpY2VudGUgZGVcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNBcHBsZVBsYXRmb3JtXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIEVkZ2UnXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vZnItY2gvd2luZG93cy9taWNyb3NvZnQtZWRnZVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBFZGdlXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAsXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FwcGxlUGxhdGZvcm1cIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgU2FmYXJpJ1wiXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3N1cHBvcnQuYXBwbGUuY29tL2Rvd25sb2Fkcy9zYWZhcmlcIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgU2FmYXJpXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAsXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIEZpcmVmb3gnXCJcbiAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubW96aWxsYS5vcmcvZnIvZmlyZWZveC9cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgRmlyZWZveFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD48L2ZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgb3VcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImJyb3dzZXJMaW5rVGl0bGVQcmVmaXggKyAnIENocm9tZSdcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5nb29nbGUuY29tL2ludGwvZnIvY2hyb21lL1wiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBDaHJvbWVcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj4obGllbiBleHRlcm5lKTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIC5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYnJvd3Nlcl9ub3Rfc3VwcG9ydGVkX2J5cGFzc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxvYXQtcmlnaHQgYnRuIGJ0bi1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFicm93c2VyTm90U3VwcG9ydGVkQnlwYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MgPSB0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENvbnRpbnVlciBhdmVjIGNlIG5hdmlnYXRldXJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG5cbiAgICA8c2RrLXN1cHBvcnQtYWxlcnQtY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwic3VwcG9ydEFsZXJ0RW5hYmxlZFwiXG4gICAgICAgIFtldGFwZUlkXT1cImV0YXBlSWRcIlxuICAgICAgICBbc3VwcG9ydEFsZXJ0VXJsXT1cInN1cHBvcnRBbGVydFVybFwiXG4gICAgPjwvc2RrLXN1cHBvcnQtYWxlcnQtY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICEoaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQgfCBhc3luYykgJiZcbiAgICAgICAgICAgIChpc0Jyb3dzZXJTdXBwb3J0ZWQgfHwgYnJvd3Nlck5vdFN1cHBvcnRlZEJ5cGFzcylcbiAgICAgICAgXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgbXQtNVwiIGlkPVwicGFnZV9jb250ZW50XCI+XG4gICAgICAgICAgICA8Zm9laG4tdXNlci1jb25uZWN0ZWQtYXNcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXlVc2VyQ2F0ZWdvcnkgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC9mb2Vobi11c2VyLWNvbm5lY3RlZC1hcz5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXlMb2dpbk1lc3NhZ2VzIHwgYXN5bmMgYXMgZGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhLmRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImRpc3BsYXlMb2dpbk1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0RnVsbExvZ2luTWVzc2FnZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhLmRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBtci0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwiZ2V0RnVsbExvZ2luVXJsKCkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ3VzZS1sb2dpbi5idXR0b24udGV4dCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9tYWluPlxuPGZvZWhuLWZvb3RlclxuICAgIGlkPVwiZm9laG5fZm9vdGVyXCJcbiAgICBbbGlua3NdPVwiZm9vdGVyTGlua3NcIlxuICAgIFtzaG93RGVmYXVsdENvbnRhY3RMaW5rXT1cInNob3dEZWZhdWx0Q29udGFjdEZvb3RlckxpbmtcIlxuICAgIFtzaG93RGVmYXVsdEd1aWRlTGlua109XCJzaG93RGVmYXVsdEd1aWRlRm9vdGVyTGlua1wiXG4gICAgW3Nob3dEZWZhdWx0VGVybU9mVXNlTGlua109XCJzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmtcIlxuICAgIFtzaG93RGVmYXVsdFNlY3VyaXR5QmVzdFByYWN0aWNlTGlua109XCJzaG93RGVmYXVsdFNlY3VyaXR5QmVzdFByYWN0aWNlTGlua1wiXG4+PC9mb2Vobi1mb290ZXI+XG48Zm9laG4tcGFnZS1tb2RhbD48L2ZvZWhuLXBhZ2UtbW9kYWw+XG48Zm9laG4tY29uZmlybS1tb2RhbD48L2ZvZWhuLWNvbmZpcm0tbW9kYWw+XG4iXX0=
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tcGFnZS9mb2Vobi1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBS1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUt6RCxNQUFNLHFCQUFxQixHQUN2QixrSEFBa0gsQ0FBQztBQUN2SCxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ3ZELE1BQU0sb0JBQW9CLEdBQUcsMkJBQTJCLENBQUM7QUFNekQsTUFBTSxPQUFPLGtCQUFrQjtJQXdFM0IsWUFDWSxhQUFvQixFQUNwQixnQkFBa0MsRUFDbEMsbUJBQXdDLEVBQ3hDLHNCQUE4QyxFQUM5QyxzQkFBOEMsRUFDOUMsa0JBQXNDLEVBQ3RDLGlCQUF5QyxFQUN6QyxNQUFjLEVBQ2QsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLG9CQUEwQztRQVYxQyxrQkFBYSxHQUFiLGFBQWEsQ0FBTztRQUNwQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FB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RGxCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQVdOLDRCQUE0QjtzQkFEM0IsS0FBSztnQkFPTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBT04sd0JBQXdCO3NCQUR2QixLQUFLO2dCQU9OLG1DQUFtQztzQkFEbEMsS0FBSzs7QUErTFYsTUFBTSxPQUFPLHdCQUF3QjtJQUlqQyxZQUNJLDZCQUFzQyxFQUN0Qyx5QkFBa0M7UUFFbEMsSUFBSSxDQUFDLDZCQUE2QixHQUFHLDZCQUE2QixDQUFDO1FBQ25FLElBQUksQ0FBQyx5QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztJQUMvRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvb3RlckxpbmsgfSBmcm9tICcuLi9mb2Vobi1mb290ZXIvZm9vdGVyLWxpbmsudHlwZSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4vZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cHBvcnRBbGVydFNlcnZpY2UgfSBmcm9tICcuLi9zZGstc3VwcG9ydC1hbGVydC9zdXBwb3J0LWFsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFdGFwZUluZm8gfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgfSBmcm9tICcuLi9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwtY29udGVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tYnJlYWRjcnVtYi9icmVhZGNydW1iLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgc3VwcG9ydGVkQnJvd3NlcnMgfSBmcm9tICcuLi9zdXBwb3J0ZWQtYnJvd3Nlcic7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuY29uc3QgTEVBVklOR19BTEVSVF9DT05URU5UID1cbiAgICAnQ2UgY2hhbmdlbWVudCBkZSBwYWdlIGVudHJhaW5lIHVuZSBwZXJ0ZSBkZXMgZG9ubsOpZXMgbm9uIHNhdXZlZ2FyZMOpZXMuPGJyLz5Tb3VoYWl0ZXotdm91cyBxdWFuZCBtw6ptZSBjb250aW51ZXIgPyc7XG5jb25zdCBMRUFWSU5HX0FMRVJUX09LID0gJ1BvdXJzdWl2cmUgc2FucyBzYXV2ZWdhcmRlcic7XG5jb25zdCBMRUFWSU5HX0FMRVJUX0NBTkNFTCA9ICdSZXRvdXJuZXIgw6AgbGEgcHJlc3RhdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLXBhZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuUGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgYXBwVGl0bGU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZm9vdGVyTGlua3M6IEZvb3RlckxpbmtbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgbmV2ZXJDb25uZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHN1cHBvcnRBbGVydEVuYWJsZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzdXBwb3J0QWxlcnRVcmw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZXRhcGVJZDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICB1c2VyQ29ubmVjdGVkQXNEaXNwbGF5ZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBjb25maXJtTGVhdmluZ0FsZXJ0OiBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgPSB7XG4gICAgICAgIGh0bWxDb250ZW50OiBMRUFWSU5HX0FMRVJUX0NPTlRFTlQsXG4gICAgICAgIG9rQnV0dG9uTGFiZWw6IExFQVZJTkdfQUxFUlRfT0ssXG4gICAgICAgIGNhbmNlbEJ1dHRvbkxhYmVsOiBMRUFWSU5HX0FMRVJUX0NBTkNFTFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBJZiBzZXQgdG8gJ2ZhbHNlJywgaGlkZSB0aGUgZGVmYXVsdCBDb250YWN0IGxpbmsgaW4gdGhlIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dEZWZhdWx0Q29udGFjdEZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgR3VpZGUgbGluayBpbiB0aGUgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRHdWlkZUZvb3RlckxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgVGVybXMgb2YgdXNlIGxpbmsuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RGVmYXVsdFRlcm1PZlVzZUxpbmsgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSWYgc2V0IHRvICdmYWxzZScsIGhpZGUgdGhlIGRlZmF1bHQgU2VjdXJpdHkgQmVzdCBQcmFjdGljZSBsaW5rLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0RlZmF1bHRTZWN1cml0eUJlc3RQcmFjdGljZUxpbmsgPSB0cnVlO1xuXG4gICAgcGFnZVRpdGxlOiBzdHJpbmc7XG5cbiAgICBoYXNCbG9ja2luZ1N1cHBvcnRBbGVydDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGRpc3BsYXlVc2VyQ2F0ZWdvcnk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBkaXNwbGF5TG9naW5NZXNzYWdlczogT2JzZXJ2YWJsZTxEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGE+O1xuXG4gICAgaXNCcm93c2VyU3VwcG9ydGVkOiBib29sZWFuO1xuXG4gICAgaXNBcHBsZVBsYXRmb3JtOiBib29sZWFuO1xuXG4gICAgYnJvd3NlckxpbmtUaXRsZVByZWZpeCA9XG4gICAgICAgICdMaWVuIHBvdXIgbGUgdMOpbMOpY2hhcmdlbWVudCBkdSBuYXZpZ2F0ZXVyIGludGVybmV0JztcblxuICAgIGJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3MgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYmxvY2tlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3RpdGxlU2VydmljZTogVGl0bGUsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzdXBwb3J0QWxlcnRTZXJ2aWNlOiBTdXBwb3J0QWxlcnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZvZWhuTmF2aWdhdGlvblNlcnZpY2U6IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYkV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlTW9kYWxTZXJ2aWNlOiBGb2VoblBhZ2VNb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2RrRGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQgPSBzdXBwb3J0QWxlcnRTZXJ2aWNlLmdldEhhc0F0TGVhc3RPbmVCbG9ja2luZ0FsZXJ0KCk7XG5cbiAgICAgICAgdGhpcy5ibG9ja2VkU3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2UuZm9laG5QYWdlT2JzZXJ2YWJsZSgpLFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgdmFsdWUgaW4gdGhlIG9ic2VydmFibGUuXG4gICAgICAgICAgICBtZXJnZShvZihmYWxzZSksIHRoaXMuaGFzQmxvY2tpbmdTdXBwb3J0QWxlcnQpXG4gICAgICAgIF0pLnN1YnNjcmliZSgoW3RpdGxlLCBibG9ja2VkXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGJsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSgnUHJlc3RhdGlvbiBpbmRpc3BvbmlibGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlzQnJvd3NlclN1cHBvcnRlZCA9IHN1cHBvcnRlZEJyb3dzZXJzLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG4gICAgICAgIHRoaXMuaXNBcHBsZVBsYXRmb3JtID0gLyhNYWN8aVBob25lfGlQb2R8aVBhZCkvaS50ZXN0KFxuICAgICAgICAgICAgbmF2aWdhdG9yLnBsYXRmb3JtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXJTdXBwb3J0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VUaXRsZSA9ICdOYXZpZ2F0ZXVyIG5vbiBzdXBwb3J0w6knO1xuICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZShwYWdlVGl0bGUpO1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZXRDdXJyZW50QnJlYWRjcnVtYih7XG4gICAgICAgICAgICAgICAgdXJsOiBudWxsLFxuICAgICAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHBhZ2VUaXRsZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0luaXRpYWxTdGVwID0gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm8ucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvKSA9PlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvICYmXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJFdGFwZSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gY29uc3QgbmF2aWdhdGlvblVwZGF0ZTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YgKHRydWUpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25VcGRhdGU6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBFbnN1cmVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSB2YWx1ZSBpbiB0aGUgb2JzZXJ2YWJsZS5cbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbkFuZEluaXQgPSBtZXJnZShvZih0cnVlKSwgbmF2aWdhdGlvblVwZGF0ZSk7XG4gICAgICAgIGNvbnN0IGZvcm1UcmFuc21pdHRlZCA9IG1lcmdlKFxuICAgICAgICAgICAgb2YodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1UcmFuc21pdHRlZE9ic2VydmFibGUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVVzZXJDYXRlZ29yeSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNJbml0aWFsU3RlcCxcbiAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5oYXNCZWVuSW5pdGlhbGl6ZWQoKSxcbiAgICAgICAgICAgIGZvcm1UcmFuc21pdHRlZCxcbiAgICAgICAgICAgIG5hdmlnYXRpb25BbmRJbml0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgbWFwKChbaW5pdGlhbFN0ZXAsIG5hdlNlcnZpY2VJbml0aWFsaXplZCwgYmFja2VuZFJlc3BvbnNlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuYXZTZXJ2aWNlSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNGaXJzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNGaXJzdEZvcm1QYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdFBhZ2UgPSB0aGlzLmZvZWhuTmF2aWdhdGlvblNlcnZpY2UuaXNMYXN0Rm9ybVBhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdXJyZW50Um91dGVEZWZpbmVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRDdXJyZW50Um91dGVJbmRleCgpICE9PVxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9laG5QYWdlU2VydmljZS5pc1VzZXJDYXRlZ29yeVZpc2libGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0ZpcnN0UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTGFzdFBhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDb25uZWN0ZWRBc0Rpc3BsYXllZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxTdGVwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXZlckNvbm5lY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRSZXNwb25zZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudFJvdXRlRGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZS5mb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5TG9naW5NZXNzYWdlcyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkluZm8uZGF0YSxcbiAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5jdXJyZW50RXRhcGVJbmZvXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksIC8vIHdpdGhvdXQgZGVib3VuY2VUaW1lLCB0aGUgb3V0Y29tZSBpcyBsZXNzIGVmZmVjdGl2ZS4uLlxuICAgICAgICAgICAgbWFwKChbZm9ybUluaXRpYWxpemF0aW9uLCBzZXNzaW9uSW5mb0RhdGEsIGN1cnJlbnRFdGFwZUluZm9dKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlck9ySWFtID0gISFzZXNzaW9uSW5mb0RhdGE7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNMYXN0UGFnZSA9IHRoaXMuZm9laG5OYXZpZ2F0aW9uU2VydmljZS5pc0xhc3RGb3JtUGFnZSgpO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWRDeWJlck9ySWFtIHx8XG4gICAgICAgICAgICAgICAgICAgICFjdXJyZW50RXRhcGVJbmZvLmRlcGxveWVlQ3liZXIgfHxcbiAgICAgICAgICAgICAgICAgICAgISFmb3JtSW5pdGlhbGl6YXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgaXNMYXN0UGFnZVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERpc3BsYXlMb2dpbk1lc3NhZ2VzRGF0YShmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGlzcGxheUxvZ2luTWVzc2FnZXNEYXRhKFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvPy5kZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZSxcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXRhcGVJZENoYW5nZSA9IGNoYW5nZXMuZXRhcGVJZDtcbiAgICAgICAgaWYgKGV0YXBlSWRDaGFuZ2UgJiYgZXRhcGVJZENoYW5nZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5zZXRDdXJyZW50RXRhcGVJZChldGFwZUlkQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcHBUaXRsZUNoYW5nZSA9IGNoYW5nZXMuYXBwVGl0bGU7XG4gICAgICAgIGlmIChhcHBUaXRsZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fdGl0bGVTZXJ2aWNlLnNldFRpdGxlKGFwcFRpdGxlQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYmxvY2tlZFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5ibG9ja2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRGdWxsTG9naW5VcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9laG5QYWdlTW9kYWxTZXJ2aWNlLmJ1aWxkU2VsZlJlZGlyZWN0aW9uVGhyb3VnaEN5YmVyTG9naW4oKTtcbiAgICB9XG5cbiAgICBnZXRGdWxsTG9naW5NZXNzYWdlKFxuICAgICAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhblxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmIChkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2RrRGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5KCd1c2UtbG9naW4udGV4dCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2RrRGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5KFxuICAgICAgICAgICAgICAgICAgICAndXNlLWxvZ2luLnRleHQuZGVjaXNpb24tZWxlY3Ryb25pcXVlLWF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgKFtsb2dpbk1zZywgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGVNc2ddKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7bG9naW5Nc2d9PGJyLz48YnIvPiR7ZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGVNc2d9YFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2RrRGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5KCd1c2UtbG9naW4udGV4dCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGUgPSB0aXRsZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEge1xuICAgIGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlOiBib29sZWFuO1xuICAgIGRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2U6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGU6IGJvb2xlYW4sXG4gICAgICAgIGRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2U6IGJvb2xlYW5cbiAgICApIHtcbiAgICAgICAgdGhpcy5kZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZSA9IGRlY2lzaW9uRWxlY3Ryb25pcXVlQXZhaWxhYmxlO1xuICAgICAgICB0aGlzLmRpc3BsYXlTaG91bGRMb2dpbk1lc3NhZ2UgPSBkaXNwbGF5U2hvdWxkTG9naW5NZXNzYWdlO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1oZWFkZXJcbiAgICBpZD1cImZvZWhuX2hlYWRlclwiXG4gICAgW3RpdGxlXT1cImFwcFRpdGxlXCJcbiAgICBbbmV2ZXJDb25uZWN0ZWRdPVwibmV2ZXJDb25uZWN0ZWRcIlxuPjwvZm9laG4taGVhZGVyPlxuPGZvZWhuLWdyb3dsIGlkPVwiZm9laG5fZ3Jvd2xcIj48L2ZvZWhuLWdyb3dsPlxuPGRpdiBjbGFzcz1cInZkLWJnLXBhdHRlcm4tZ3JheVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPGZvZWhuLWJyZWFkY3J1bWJcbiAgICAgICAgICAgIFtuZXZlckNvbm5lY3RlZF09XCJuZXZlckNvbm5lY3RlZFwiXG4gICAgICAgICAgICBbY29uZmlybUxlYXZpbmdBbGVydF09XCJjb25maXJtTGVhdmluZ0FsZXJ0XCJcbiAgICAgICAgPjwvZm9laG4tYnJlYWRjcnVtYj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPG1haW4gaWQ9XCJtYWluXCI+XG4gICAgPGRpdiBjbGFzcz1cInZkLWJnLXBhdHRlcm4tZ3JheVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8IS0tIEZpeCBhbm5veWluZyBmbGlja2VyaW5nIHdoZW4gdGhlIHBhZ2UgbG9hZHMgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaDEgbXQtMFwiICpuZ0lmPVwiIXBhZ2VUaXRsZVwiPiZuYnNwOzwvZGl2PlxuICAgICAgICAgICAgPGgxXG4gICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTBcIlxuICAgICAgICAgICAgICAgIGlkPVwicGFnZS10aXRsZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhIXBhZ2VUaXRsZVwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJwYWdlVGl0bGVcIlxuICAgICAgICAgICAgPjwvaDE+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPHNlY3Rpb25cbiAgICAgICAgKm5nSWY9XCIhaXNCcm93c2VyU3VwcG9ydGVkXCJcbiAgICAgICAgY2xhc3M9XCJjb250YWluZXIgYWxlcnQgYWxlcnQtZGFuZ2VyXCJcbiAgICAgICAgaWQ9XCJicm93c2VyX25vdF9zdXBwb3J0ZWRfYmxvY2tcIlxuICAgICAgICByb2xlPVwiYWxlcnRcIlxuICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJhbGVydC1oZWFkaW5nXCI+XG4gICAgICAgICAgICA8c3Ryb25nPlxuICAgICAgICAgICAgICAgIENldHRlIHByZXN0YXRpb24gbuKAmWVzdCBwYXMgY29tcGF0aWJsZSBhdmVjIHZvdHJlIG5hdmlnYXRldXIuXG4gICAgICAgICAgICA8L3N0cm9uZz5cbiAgICAgICAgPC9wPlxuICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj5cbiAgICAgICAgICAgIE5vdXMgdm91cyBpbnZpdG9ucyDDoCB1dGlsaXNlciB1bmUgdmVyc2lvbiByw6ljZW50ZSBkZVxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FwcGxlUGxhdGZvcm1cIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgRWRnZSdcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS9mci1jaC93aW5kb3dzL21pY3Jvc29mdC1lZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEVkZ2VcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICxcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQXBwbGVQbGF0Zm9ybVwiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJicm93c2VyTGlua1RpdGxlUHJlZml4ICsgJyBTYWZhcmknXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vc3VwcG9ydC5hcHBsZS5jb20vZG93bmxvYWRzL3NhZmFyaVwiXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBTYWZhcmlcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+PC9mb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICxcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgRmlyZWZveCdcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5tb3ppbGxhLm9yZy9mci9maXJlZm94L1wiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBGaXJlZm94XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+KGxpZW4gZXh0ZXJuZSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWV4dGVybmFsLWxpbmstYWx0PjwvZm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICBvdVxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiYnJvd3NlckxpbmtUaXRsZVByZWZpeCArICcgQ2hyb21lJ1wiXG4gICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vaW50bC9mci9jaHJvbWUvXCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENocm9tZVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPihsaWVuIGV4dGVybmUpPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1leHRlcm5hbC1saW5rLWFsdD48L2ZvZWhuLWljb24tZXh0ZXJuYWwtbGluay1hbHQ+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgLlxuICAgICAgICA8L3A+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJicm93c2VyX25vdF9zdXBwb3J0ZWRfYnlwYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdC1yaWdodCBidG4gYnRuLWRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWJyb3dzZXJOb3RTdXBwb3J0ZWRCeXBhc3NcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYnJvd3Nlck5vdFN1cHBvcnRlZEJ5cGFzcyA9IHRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQ29udGludWVyIGF2ZWMgY2UgbmF2aWdhdGV1clxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cblxuICAgIDxzZGstc3VwcG9ydC1hbGVydC1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJzdXBwb3J0QWxlcnRFbmFibGVkXCJcbiAgICAgICAgW2V0YXBlSWRdPVwiZXRhcGVJZFwiXG4gICAgICAgIFtzdXBwb3J0QWxlcnRVcmxdPVwic3VwcG9ydEFsZXJ0VXJsXCJcbiAgICA+PC9zZGstc3VwcG9ydC1hbGVydC1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgIShoYXNCbG9ja2luZ1N1cHBvcnRBbGVydCB8IGFzeW5jKSAmJlxuICAgICAgICAgICAgKGlzQnJvd3NlclN1cHBvcnRlZCB8fCBicm93c2VyTm90U3VwcG9ydGVkQnlwYXNzKVxuICAgICAgICBcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgaWQ9XCJwYWdlX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxmb2Vobi11c2VyLWNvbm5lY3RlZC1hc1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheVVzZXJDYXRlZ29yeSB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L2ZvZWhuLXVzZXItY29ubmVjdGVkLWFzPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGlzcGxheUxvZ2luTWVzc2FnZXMgfCBhc3luYyBhcyBkaXNwbGF5TG9naW5NZXNzYWdlc0RhdGFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEuZGlzcGxheVNob3VsZExvZ2luTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZGlzcGxheUxvZ2luTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRGdWxsTG9naW5NZXNzYWdlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TG9naW5NZXNzYWdlc0RhdGEuZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LXN0YXJ0IG1yLTIgbWItMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJnZXRGdWxsTG9naW5VcmwoKSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAndXNlLWxvZ2luLmJ1dHRvbi50ZXh0JyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG48L21haW4+XG48Zm9laG4tZm9vdGVyXG4gICAgaWQ9XCJmb2Vobl9mb290ZXJcIlxuICAgIFtsaW5rc109XCJmb290ZXJMaW5rc1wiXG4gICAgW3Nob3dEZWZhdWx0Q29udGFjdExpbmtdPVwic2hvd0RlZmF1bHRDb250YWN0Rm9vdGVyTGlua1wiXG4gICAgW3Nob3dEZWZhdWx0R3VpZGVMaW5rXT1cInNob3dEZWZhdWx0R3VpZGVGb290ZXJMaW5rXCJcbiAgICBbc2hvd0RlZmF1bHRUZXJtT2ZVc2VMaW5rXT1cInNob3dEZWZhdWx0VGVybU9mVXNlTGlua1wiXG4gICAgW3Nob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rXT1cInNob3dEZWZhdWx0U2VjdXJpdHlCZXN0UHJhY3RpY2VMaW5rXCJcbj48L2ZvZWhuLWZvb3Rlcj5cbjxmb2Vobi1wYWdlLW1vZGFsPjwvZm9laG4tcGFnZS1tb2RhbD5cbjxmb2Vobi1jb25maXJtLW1vZGFsPjwvZm9laG4tY29uZmlybS1tb2RhbD5cbiJdfQ==
@@ -30,11 +30,13 @@ export class GesdemActionRecoveryRegistrationComponent {
30
30
  this.isVisible = false;
31
31
  }
32
32
  ngOnInit() {
33
- this.isConnected = this.sessionInfoService.data.pipe(map(sessionInfo => !!sessionInfo && !!sessionInfo.context));
33
+ this.isConnectedCyber = this.sessionInfoService.data.pipe(map(sessionInfo => !!sessionInfo && !!sessionInfo.context));
34
+ const isConnectedIamAcv = this.sessionInfoService.data.pipe(map(sessionInfo => !!sessionInfo && !sessionInfo.context));
34
35
  this.canContinueLater = combineLatest([
35
36
  this.appInfoService.currentEtapeInfo,
36
- this.isConnected
37
- ]).pipe(map(([currentEtapeInfo, isConnected]) => this.canContinueLaterForEtape(currentEtapeInfo, isConnected)));
37
+ this.isConnectedCyber,
38
+ isConnectedIamAcv
39
+ ]).pipe(map(([currentEtapeInfo, isConnectedCyber, connectedIamAcv]) => this.canContinueLaterForEtape(currentEtapeInfo, isConnectedCyber, connectedIamAcv)));
38
40
  }
39
41
  get isModalVisible() {
40
42
  return this.isVisible;
@@ -42,11 +44,11 @@ export class GesdemActionRecoveryRegistrationComponent {
42
44
  open() {
43
45
  this.gesdemEventService
44
46
  .formSentObservable()
45
- .pipe(first(), filter(resp => !!resp.meta.reference), switchMap(() => this.isConnected))
46
- .subscribe(isConnected => {
47
+ .pipe(first(), filter(resp => !!resp.meta.reference), switchMap(() => this.isConnectedCyber))
48
+ .subscribe(isConnectedCyber => {
47
49
  this.mailSent = false;
48
50
  this.isVisible = true;
49
- if (!isConnected) {
51
+ if (!isConnectedCyber) {
50
52
  this.actionRecoveryService
51
53
  .getDefaultRecoveryValue(this.reference)
52
54
  // eslint-disable-next-line rxjs/no-nested-subscribe
@@ -93,10 +95,13 @@ export class GesdemActionRecoveryRegistrationComponent {
93
95
  ? this.gesdemService.lastResponse.meta.reference
94
96
  : null;
95
97
  }
96
- canContinueLaterForEtape(currentEtapeInfo, isConnected) {
98
+ canContinueLaterForEtape(currentEtapeInfo, isConnectedCyber, isConnectedIamAcv) {
99
+ if (isConnectedIamAcv) {
100
+ return false;
101
+ }
97
102
  // If not connected, take the "reprisePossible" flag from CatPrest
98
103
  // into account.
99
- if (!isConnected) {
104
+ if (!isConnectedCyber) {
100
105
  return currentEtapeInfo && currentEtapeInfo.reprisePossible;
101
106
  }
102
107
  // If connected, only display the button if the current step if the initial
@@ -107,7 +112,7 @@ export class GesdemActionRecoveryRegistrationComponent {
107
112
  }
108
113
  }
109
114
  GesdemActionRecoveryRegistrationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GesdemActionRecoveryRegistrationComponent, deps: [{ token: i1.GesdemActionRecoveryService }, { token: i2.ValidationHandlerService }, { token: i3.FoehnPageService }, { token: i4.GesdemEventService }, { token: i5.GesdemHandlerService }, { token: i6.ApplicationInfoService }, { token: i7.SessionInfo }], target: i0.ɵɵFactoryTarget.Component });
110
- GesdemActionRecoveryRegistrationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GesdemActionRecoveryRegistrationComponent, selector: "gesdem-action-recovery-registration", inputs: { continueLaterLabel: "continueLaterLabel" }, viewQueries: [{ propertyName: "modalTrigger", first: true, predicate: ["modalTrigger"], descendants: true }, { propertyName: "form", first: true, predicate: FoehnFormComponent, descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n id=\"continueLaterButton\"\n class=\"btn btn-link pr-0 pl-0 no-text-transform\"\n *ngIf=\"canContinueLater | async\"\n (click)=\"open()\"\n #modalTrigger\n>\n {{ continueLaterLabel }}\n</button>\n\n<foehn-modal\n id=\"action-recovery-registration-modal\"\n [modalHeaderText]=\"'Informations pour la reprise de la demande'\"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n>\n <ng-container *ngIf=\"isConnected | async; else notConnectedContent\">\n <p>\n Vos donn\u00E9es ont \u00E9t\u00E9 sauvegard\u00E9es, vous pouvez acc\u00E9der \u00E0 cette\n demande dans la liste de\n <a href=\"/100002/demandes/search/MINE/INITIAL\">\n vos demandes en brouillon\n </a>\n .\n </p>\n </ng-container>\n <ng-template #notConnectedContent>\n <div class=\"alert alert-info\">\n <p *ngIf=\"!mailSent\">\n Les informations demand\u00E9es sont uniquement utilis\u00E9es pour vous\n permettre d'effectuer la reprise de demande.\n </p>\n\n <div *ngIf=\"mailSent\">\n <p>\n Un message contenant le lien de reprise de la demande a \u00E9t\u00E9\n envoy\u00E9 \u00E0 votre email.\n </p>\n <p>\n Vous pouvez cliquer sur ce lien pour reprendre la demande en\n saisissant le code qui sera envoy\u00E9 \u00E0 votre t\u00E9l\u00E9phone.\n </p>\n </div>\n </div>\n\n <foehn-form *ngIf=\"!mailSent\" [shouldDisplayAlertSummary]=\"false\">\n <foehn-input-text\n label=\"Email\"\n helpText=\"Par exemple, john@doe.ch\"\n [(model)]=\"model.email\"\n name=\"email\"\n required=\"true\"\n ></foehn-input-text>\n\n <foehn-input-phone\n label=\"Num\u00E9ro de t\u00E9l\u00E9phone mobile\"\n [acceptInternational]=\"true\"\n [acceptMobilePhone]=\"true\"\n [acceptPhone]=\"false\"\n [(model)]=\"model.mobile\"\n name=\"mobile\"\n required=\"true\"\n ></foehn-input-phone>\n </foehn-form>\n </ng-template>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ml-md-auto mr-md-2 mb-2 mt-2\">\n <button (click)=\"close()\" class=\"btn btn-secondary w-100\">\n Fermer\n </button>\n </div>\n <div\n *ngIf=\"!(isConnected | async)\"\n class=\"ml-md-0 mr-md-2 mb-2 mt-2\"\n >\n <button\n type=\"submit\"\n (click)=\"sendAndClose()\"\n class=\"btn btn-success w-100\"\n *ngIf=\"!mailSent\"\n >\n Sauvegarder\n </button>\n </div>\n </div>\n </div>\n</foehn-modal>\n", styles: [".no-text-transform{text-transform:none;cursor:pointer}\n"], components: [{ type: i8.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "modalFooterText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { type: i9.FoehnFormComponent, selector: "foehn-form", inputs: ["shouldDisplayAlertSummary"] }, { type: i10.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }, { type: i11.FoehnInputPhoneComponent, selector: "foehn-input-phone", inputs: ["acceptInternational", "acceptMobilePhone", "acceptPhone"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i12.AsyncPipe } });
115
+ GesdemActionRecoveryRegistrationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GesdemActionRecoveryRegistrationComponent, selector: "gesdem-action-recovery-registration", inputs: { continueLaterLabel: "continueLaterLabel" }, viewQueries: [{ propertyName: "modalTrigger", first: true, predicate: ["modalTrigger"], descendants: true }, { propertyName: "form", first: true, predicate: FoehnFormComponent, descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n id=\"continueLaterButton\"\n class=\"btn btn-link pr-0 pl-0 no-text-transform\"\n *ngIf=\"canContinueLater | async\"\n (click)=\"open()\"\n #modalTrigger\n>\n {{ continueLaterLabel }}\n</button>\n\n<foehn-modal\n id=\"action-recovery-registration-modal\"\n [modalHeaderText]=\"'Informations pour la reprise de la demande'\"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n>\n <ng-container *ngIf=\"isConnectedCyber | async; else notConnectedContent\">\n <p>\n Vos donn\u00E9es ont \u00E9t\u00E9 sauvegard\u00E9es, vous pouvez acc\u00E9der \u00E0 cette\n demande dans la liste de\n <a href=\"/100002/demandes/search/MINE/INITIAL\">\n vos demandes en brouillon\n </a>\n .\n </p>\n </ng-container>\n <ng-template #notConnectedContent>\n <div class=\"alert alert-info\">\n <p *ngIf=\"!mailSent\">\n Les informations demand\u00E9es sont uniquement utilis\u00E9es pour vous\n permettre d'effectuer la reprise de demande.\n </p>\n\n <div *ngIf=\"mailSent\">\n <p>\n Un message contenant le lien de reprise de la demande a \u00E9t\u00E9\n envoy\u00E9 \u00E0 votre email.\n </p>\n <p>\n Vous pouvez cliquer sur ce lien pour reprendre la demande en\n saisissant le code qui sera envoy\u00E9 \u00E0 votre t\u00E9l\u00E9phone.\n </p>\n </div>\n </div>\n\n <foehn-form *ngIf=\"!mailSent\" [shouldDisplayAlertSummary]=\"false\">\n <foehn-input-text\n label=\"Email\"\n helpText=\"Par exemple, john@doe.ch\"\n [(model)]=\"model.email\"\n name=\"email\"\n required=\"true\"\n ></foehn-input-text>\n\n <foehn-input-phone\n label=\"Num\u00E9ro de t\u00E9l\u00E9phone mobile\"\n [acceptInternational]=\"true\"\n [acceptMobilePhone]=\"true\"\n [acceptPhone]=\"false\"\n [(model)]=\"model.mobile\"\n name=\"mobile\"\n required=\"true\"\n ></foehn-input-phone>\n </foehn-form>\n </ng-template>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ml-md-auto mr-md-2 mb-2 mt-2\">\n <button (click)=\"close()\" class=\"btn btn-secondary w-100\">\n Fermer\n </button>\n </div>\n <div\n *ngIf=\"!(isConnectedCyber | async)\"\n class=\"ml-md-0 mr-md-2 mb-2 mt-2\"\n >\n <button\n type=\"submit\"\n (click)=\"sendAndClose()\"\n class=\"btn btn-success w-100\"\n *ngIf=\"!mailSent\"\n >\n Sauvegarder\n </button>\n </div>\n </div>\n </div>\n</foehn-modal>\n", styles: [".no-text-transform{text-transform:none;cursor:pointer}\n"], components: [{ type: i8.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "modalFooterText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { type: i9.FoehnFormComponent, selector: "foehn-form", inputs: ["shouldDisplayAlertSummary"] }, { type: i10.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }, { type: i11.FoehnInputPhoneComponent, selector: "foehn-input-phone", inputs: ["acceptInternational", "acceptMobilePhone", "acceptPhone"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i12.AsyncPipe } });
111
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GesdemActionRecoveryRegistrationComponent, decorators: [{
112
117
  type: Component,
113
118
  args: [{
@@ -125,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
125
130
  type: ViewChild,
126
131
  args: [FoehnFormComponent]
127
132
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSTNFLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBV2pELE1BQU0sT0FBTyx5Q0FBeUM7SUFrQmxELFlBQ1kscUJBQWtELEVBQ2xELGlCQUEyQyxFQUMzQyxnQkFBa0MsRUFDbEMsa0JBQXNDLEVBQ3RDLGFBQW1DLEVBQ25DLGNBQXNDLEVBQ3RDLGtCQUErQjtRQU4vQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTZCO1FBQ2xELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFD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USxFQUFFLHFDQUFxQztvQkFDL0MsV0FBVyxFQUFFLHNEQUFzRDtvQkFDbkUsU0FBUyxFQUFFLENBQUMscURBQXFELENBQUM7aUJBQ3JFOzJUQUdHLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYztnQkFJekIsSUFBSTtzQkFESCxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXByaXNlSW5mbyB9IGZyb20gJy4uL3JlcHJpc2UtaW5mbyc7XG5pbXBvcnQgeyBHZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9laG4tZm9ybS9mb2Vobi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uLy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXRhcGVJbmZvIH0gZnJvbSAnLi4vLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mbyc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR2VzZGVtQWN0aW9uUmVjb3ZlcnlSZWdpc3RyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgY29udGludWVMYXRlckxhYmVsOiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdtb2RhbFRyaWdnZXInKVxuICAgIG1vZGFsVHJpZ2dlcjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoRm9laG5Gb3JtQ29tcG9uZW50KVxuICAgIGZvcm06IEZvZWhuRm9ybUNvbXBvbmVudDtcblxuICAgIG1vZGVsID0gbmV3IFJlcHJpc2VJbmZvKCk7XG4gICAgbWFpbFNlbnQgPSBmYWxzZTtcblxuICAgIGNhbkNvbnRpbnVlTGF0ZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNDb25uZWN0ZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWN0aW9uUmVjb3ZlcnlTZXJ2aWNlOiBHZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvbkhhbmRsZXI6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcEluZm9TZXJ2aWNlOiBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlc3Npb25JbmZvU2VydmljZTogU2Vzc2lvbkluZm9cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZCA9IHRoaXMuc2Vzc2lvbkluZm9TZXJ2aWNlLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChzZXNzaW9uSW5mbyA9PiAhIXNlc3Npb25JbmZvICYmICEhc2Vzc2lvbkluZm8uY29udGV4dClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhbkNvbnRpbnVlTGF0ZXIgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuYXBwSW5mb1NlcnZpY2UuY3VycmVudEV0YXBlSW5mbyxcbiAgICAgICAgICAgIHRoaXMuaXNDb25uZWN0ZWRcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2N1cnJlbnRFdGFwZUluZm8sIGlzQ29ubmVjdGVkXSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbkNvbnRpbnVlTGF0ZXJGb3JFdGFwZShjdXJyZW50RXRhcGVJbmZvLCBpc0Nvbm5lY3RlZClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNNb2RhbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBvcGVuKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1TZW50T2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIGZpbHRlcihyZXNwID0+ICEhcmVzcC5tZXRhLnJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuaXNDb25uZWN0ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGlzQ29ubmVjdGVkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haWxTZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25SZWNvdmVyeVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXREZWZhdWx0UmVjb3ZlcnlWYWx1ZSh0aGlzLnJlZmVyZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzL25vLW5lc3RlZC1zdWJzY3JpYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVwcmlzZUluZm8gPT4gKHRoaXMubW9kZWwgPSByZXByaXNlSW5mbykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5yZXF1ZXN0Rm9ybVNhdmUoKTtcbiAgICB9XG5cbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmlsaXR5U3RhdHVzKGZhbHNlKTtcbiAgICB9XG5cbiAgICBzZW5kQW5kQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uUmVjb3ZlcnlTZXJ2aWNlXG4gICAgICAgICAgICAucmVnaXN0ZXJGb3JSZWNvdmVyeSh0aGlzLnJlZmVyZW5jZSwgdGhpcy5tb2RlbClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcChlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyLnVwZGF0ZUVycm9ycyhbXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5lcnIsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmZvY3VzRmlyc3RJbkVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFpbFNlbnQgPSAhZXJyLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIC8vIFN0b3JlIHRoZSBwcmV2aW91cyB2YWx1ZSB0byBoYW5kbGUgdHJhbnNpdGlvbnMgZnJvbSBvbmUgc3RhdGUgdG8gYW5vdGhlci5cbiAgICAgICAgY29uc3Qgd2FzT3BlbiA9IHRoaXMuaXNWaXNpYmxlO1xuXG4gICAgICAgIC8vIEluIGNhc2UgdGhlIG1vZGFsIGlzIGNsb3NlZCBieSBhbm90aGVyIG1lYW4uXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gc3RhdHVzO1xuXG4gICAgICAgIC8vIEZvY3VzIGJhY2sgb24gdGhlIHRyaWdnZXIuIE5vIG5lZWQgZm9yIGEgc2V0VGltZW91dCBhcyB0aGUgdHJpZ2dlciBzaG91bGQgc3RpbGwgYmUgaW4gdGhlIERPTS5cbiAgICAgICAgLy8gT25seSBkb2VzIGl0IHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBmcm9tIGEgb3BlbiBzdGF0ZSB0byBhdm9pZCB0byBzZXRcbiAgICAgICAgLy8gdGhlIGZvY3VzIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgIGlmICh3YXNPcGVuICYmICF0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLm1vZGFsVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFRyaWdnZXIubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHJlZmVyZW5jZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZVxuICAgICAgICAgICAgPyB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYW5Db250aW51ZUxhdGVyRm9yRXRhcGUoXG4gICAgICAgIGN1cnJlbnRFdGFwZUluZm86IEV0YXBlSW5mbyxcbiAgICAgICAgaXNDb25uZWN0ZWQ6IGJvb2xlYW5cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgLy8gSWYgbm90IGNvbm5lY3RlZCwgdGFrZSB0aGUgXCJyZXByaXNlUG9zc2libGVcIiBmbGFnIGZyb20gQ2F0UHJlc3RcbiAgICAgICAgLy8gaW50byBhY2NvdW50LlxuICAgICAgICBpZiAoIWlzQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEV0YXBlSW5mbyAmJiBjdXJyZW50RXRhcGVJbmZvLnJlcHJpc2VQb3NzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGNvbm5lY3RlZCwgb25seSBkaXNwbGF5IHRoZSBidXR0b24gaWYgdGhlIGN1cnJlbnQgc3RlcCBpZiB0aGUgaW5pdGlhbFxuICAgICAgICAvLyBzdGVwLlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyAmJlxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mby5pZE1ldGllckV0YXBlID09PVxuICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGlkPVwiY29udGludWVMYXRlckJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHItMCBwbC0wIG5vLXRleHQtdHJhbnNmb3JtXCJcbiAgICAqbmdJZj1cImNhbkNvbnRpbnVlTGF0ZXIgfCBhc3luY1wiXG4gICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgI21vZGFsVHJpZ2dlclxuPlxuICAgIHt7IGNvbnRpbnVlTGF0ZXJMYWJlbCB9fVxuPC9idXR0b24+XG5cbjxmb2Vobi1tb2RhbFxuICAgIGlkPVwiYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi1tb2RhbFwiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCInSW5mb3JtYXRpb25zIHBvdXIgbGEgcmVwcmlzZSBkZSBsYSBkZW1hbmRlJ1wiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzTW9kYWxWaXNpYmxlXCJcbiAgICAoaXNNb2RhbFZpc2libGVDaGFuZ2UpPVwidXBkYXRlVmlzaWJpbGl0eVN0YXR1cygkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb25uZWN0ZWQgfCBhc3luYzsgZWxzZSBub3RDb25uZWN0ZWRDb250ZW50XCI+XG4gICAgICAgIDxwPlxuICAgICAgICAgICAgVm9zIGRvbm7DqWVzIG9udCDDqXTDqSBzYXV2ZWdhcmTDqWVzLCB2b3VzIHBvdXZleiBhY2PDqWRlciDDoCBjZXR0ZVxuICAgICAgICAgICAgZGVtYW5kZSBkYW5zIGxhIGxpc3RlIGRlXG4gICAgICAgICAgICA8YSBocmVmPVwiLzEwMDAwMi9kZW1hbmRlcy9zZWFyY2gvTUlORS9JTklUSUFMXCI+XG4gICAgICAgICAgICAgICAgdm9zIGRlbWFuZGVzIGVuIGJyb3VpbGxvblxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgLlxuICAgICAgICA8L3A+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNub3RDb25uZWN0ZWRDb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiPlxuICAgICAgICAgICAgPHAgKm5nSWY9XCIhbWFpbFNlbnRcIj5cbiAgICAgICAgICAgICAgICBMZXMgaW5mb3JtYXRpb25zIGRlbWFuZMOpZXMgc29udCB1bmlxdWVtZW50IHV0aWxpc8OpZXMgcG91ciB2b3VzXG4gICAgICAgICAgICAgICAgcGVybWV0dHJlIGQnZWZmZWN0dWVyIGxhIHJlcHJpc2UgZGUgZGVtYW5kZS5cbiAgICAgICAgICAgIDwvcD5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1haWxTZW50XCI+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFVuIG1lc3NhZ2UgY29udGVuYW50IGxlIGxpZW4gZGUgcmVwcmlzZSBkZSBsYSBkZW1hbmRlIGEgw6l0w6lcbiAgICAgICAgICAgICAgICAgICAgZW52b3nDqSDDoCB2b3RyZSBlbWFpbC5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIFZvdXMgcG91dmV6IGNsaXF1ZXIgc3VyIGNlIGxpZW4gcG91ciByZXByZW5kcmUgbGEgZGVtYW5kZSBlblxuICAgICAgICAgICAgICAgICAgICBzYWlzaXNzYW50IGxlIGNvZGUgcXVpIHNlcmEgZW52b3nDqSDDoCB2b3RyZSB0w6lsw6lwaG9uZS5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGZvZWhuLWZvcm0gKm5nSWY9XCIhbWFpbFNlbnRcIiBbc2hvdWxkRGlzcGxheUFsZXJ0U3VtbWFyeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgPGZvZWhuLWlucHV0LXRleHRcbiAgICAgICAgICAgICAgICBsYWJlbD1cIkVtYWlsXCJcbiAgICAgICAgICAgICAgICBoZWxwVGV4dD1cIlBhciBleGVtcGxlLCBqb2huQGRvZS5jaFwiXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWwuZW1haWxcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LXRleHQ+XG5cbiAgICAgICAgICAgIDxmb2Vobi1pbnB1dC1waG9uZVxuICAgICAgICAgICAgICAgIGxhYmVsPVwiTnVtw6lybyBkZSB0w6lsw6lwaG9uZSBtb2JpbGVcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRJbnRlcm5hdGlvbmFsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRNb2JpbGVQaG9uZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0UGhvbmVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsLm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LXBob25lPlxuICAgICAgICA8L2ZvZWhuLWZvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtbWQtZmxleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLW1kLWF1dG8gbXItbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB3LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICBGZXJtZXJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIShpc0Nvbm5lY3RlZCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtbC1tZC0wIG1yLW1kLTIgbWItMiBtdC0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VuZEFuZENsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIW1haWxTZW50XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIFNhdXZlZ2FyZGVyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBSTNFLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBV2pELE1BQU0sT0FBTyx5Q0FBeUM7SUFrQmxELFlBQ1kscUJBQWtELEVBQ2xELGlCQUEyQyxFQUMzQyxnQkFBa0MsRUFDbEMsa0JBQXNDLEVBQ3RDLGFBQW1DLEVBQ25DLGNBQXNDLEVBQ3RDLGtCQUErQjtRQU4vQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTZCO1FBQ2xELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFD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QkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7U0FDL0Q7UUFFRCwyRUFBMkU7UUFDM0UsUUFBUTtRQUNSLE9BQU8sQ0FDSCxnQkFBZ0I7WUFDaEIsZ0JBQWdCLENBQUMsYUFBYTtnQkFDMUIsZ0JBQWdCLENBQUMsa0JBQWtCLENBQzFDLENBQUM7SUFDTixDQUFDOztzSUFqSlEseUNBQXlDOzBIQUF6Qyx5Q0FBeUMsc1FBT3ZDLGtCQUFrQixnREMzQmpDLHVwR0EwRkE7MkZEdEVhLHlDQUF5QztrQkFOckQsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxxQ0FBcUM7b0JBQy9DLFdBQVcsRUFBRSxzREFBc0Q7b0JBQ25FLFNBQVMsRUFBRSxDQUFDLHFEQUFxRCxDQUFDO2lCQUNyRTsyVEFHRyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGNBQWM7Z0JBSXpCLElBQUk7c0JBREgsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwcmlzZUluZm8gfSBmcm9tICcuLi9yZXByaXNlLWluZm8nO1xuaW1wb3J0IHsgR2VzZGVtQWN0aW9uUmVjb3ZlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWZvcm0vZm9laG4tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi8uLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEV0YXBlSW5mbyB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEdlc2RlbUFjdGlvblJlY292ZXJ5UmVnaXN0cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGNvbnRpbnVlTGF0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZCgnbW9kYWxUcmlnZ2VyJylcbiAgICBtb2RhbFRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKEZvZWhuRm9ybUNvbXBvbmVudClcbiAgICBmb3JtOiBGb2VobkZvcm1Db21wb25lbnQ7XG5cbiAgICBtb2RlbCA9IG5ldyBSZXByaXNlSW5mbygpO1xuICAgIG1haWxTZW50ID0gZmFsc2U7XG5cbiAgICBjYW5Db250aW51ZUxhdGVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzQ29ubmVjdGVkQ3liZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWN0aW9uUmVjb3ZlcnlTZXJ2aWNlOiBHZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvbkhhbmRsZXI6IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcEluZm9TZXJ2aWNlOiBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHNlc3Npb25JbmZvU2VydmljZTogU2Vzc2lvbkluZm9cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyID0gdGhpcy5zZXNzaW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHNlc3Npb25JbmZvID0+ICEhc2Vzc2lvbkluZm8gJiYgISFzZXNzaW9uSW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGlzQ29ubmVjdGVkSWFtQWN2ID0gdGhpcy5zZXNzaW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHNlc3Npb25JbmZvID0+ICEhc2Vzc2lvbkluZm8gJiYgIXNlc3Npb25JbmZvLmNvbnRleHQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jYW5Db250aW51ZUxhdGVyID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmFwcEluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm8sXG4gICAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkQ3liZXIsXG4gICAgICAgICAgICBpc0Nvbm5lY3RlZElhbUFjdlxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbY3VycmVudEV0YXBlSW5mbywgaXNDb25uZWN0ZWRDeWJlciwgY29ubmVjdGVkSWFtQWN2XSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbkNvbnRpbnVlTGF0ZXJGb3JFdGFwZShcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWRDeWJlcixcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGVkSWFtQWN2XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc01vZGFsVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlO1xuICAgIH1cblxuICAgIG9wZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAuZm9ybVNlbnRPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKHJlc3AgPT4gISFyZXNwLm1ldGEucmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5pc0Nvbm5lY3RlZEN5YmVyKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShpc0Nvbm5lY3RlZEN5YmVyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haWxTZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICghaXNDb25uZWN0ZWRDeWJlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGlvblJlY292ZXJ5U2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldERlZmF1bHRSZWNvdmVyeVZhbHVlKHRoaXMucmVmZXJlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMvbm8tbmVzdGVkLXN1YnNjcmliZVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXByaXNlSW5mbyA9PiAodGhpcy5tb2RlbCA9IHJlcHJpc2VJbmZvKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLnJlcXVlc3RGb3JtU2F2ZSgpO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoZmFsc2UpO1xuICAgIH1cblxuICAgIHNlbmRBbmRDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpb25SZWNvdmVyeVNlcnZpY2VcbiAgICAgICAgICAgIC5yZWdpc3RlckZvclJlY292ZXJ5KHRoaXMucmVmZXJlbmNlLCB0aGlzLm1vZGVsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyLnNob3VsZERpc3BsYXlFcnJvcnModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXIudXBkYXRlRXJyb3JzKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVycixcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UuZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZm9jdXNGaXJzdEluRXJyb3IoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWlsU2VudCA9ICFlcnIubGVuZ3RoO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmlzaWJpbGl0eVN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgLy8gU3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIHRvIGhhbmRsZSB0cmFuc2l0aW9ucyBmcm9tIG9uZSBzdGF0ZSB0byBhbm90aGVyLlxuICAgICAgICBjb25zdCB3YXNPcGVuID0gdGhpcy5pc1Zpc2libGU7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgbW9kYWwgaXMgY2xvc2VkIGJ5IGFub3RoZXIgbWVhbi5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBzdGF0dXM7XG5cbiAgICAgICAgLy8gRm9jdXMgYmFjayBvbiB0aGUgdHJpZ2dlci4gTm8gbmVlZCBmb3IgYSBzZXRUaW1lb3V0IGFzIHRoZSB0cmlnZ2VyIHNob3VsZCBzdGlsbCBiZSBpbiB0aGUgRE9NLlxuICAgICAgICAvLyBPbmx5IGRvZXMgaXQgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIGZyb20gYSBvcGVuIHN0YXRlIHRvIGF2b2lkIHRvIHNldFxuICAgICAgICAvLyB0aGUgZm9jdXMgd2hlbiB0aGUgcGFnZSBsb2Fkcy5cbiAgICAgICAgaWYgKHdhc09wZW4gJiYgIXRoaXMuaXNWaXNpYmxlICYmIHRoaXMubW9kYWxUcmlnZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGFsVHJpZ2dlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgcmVmZXJlbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlXG4gICAgICAgICAgICA/IHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UubWV0YS5yZWZlcmVuY2VcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkNvbnRpbnVlTGF0ZXJGb3JFdGFwZShcbiAgICAgICAgY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvLFxuICAgICAgICBpc0Nvbm5lY3RlZEN5YmVyOiBib29sZWFuLFxuICAgICAgICBpc0Nvbm5lY3RlZElhbUFjdjogYm9vbGVhblxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNDb25uZWN0ZWRJYW1BY3YpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vdCBjb25uZWN0ZWQsIHRha2UgdGhlIFwicmVwcmlzZVBvc3NpYmxlXCIgZmxhZyBmcm9tIENhdFByZXN0XG4gICAgICAgIC8vIGludG8gYWNjb3VudC5cbiAgICAgICAgaWYgKCFpc0Nvbm5lY3RlZEN5YmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEV0YXBlSW5mbyAmJiBjdXJyZW50RXRhcGVJbmZvLnJlcHJpc2VQb3NzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGNvbm5lY3RlZCwgb25seSBkaXNwbGF5IHRoZSBidXR0b24gaWYgdGhlIGN1cnJlbnQgc3RlcCBpZiB0aGUgaW5pdGlhbFxuICAgICAgICAvLyBzdGVwLlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyAmJlxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mby5pZE1ldGllckV0YXBlID09PVxuICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGlkPVwiY29udGludWVMYXRlckJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHItMCBwbC0wIG5vLXRleHQtdHJhbnNmb3JtXCJcbiAgICAqbmdJZj1cImNhbkNvbnRpbnVlTGF0ZXIgfCBhc3luY1wiXG4gICAgKGNsaWNrKT1cIm9wZW4oKVwiXG4gICAgI21vZGFsVHJpZ2dlclxuPlxuICAgIHt7IGNvbnRpbnVlTGF0ZXJMYWJlbCB9fVxuPC9idXR0b24+XG5cbjxmb2Vobi1tb2RhbFxuICAgIGlkPVwiYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi1tb2RhbFwiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCInSW5mb3JtYXRpb25zIHBvdXIgbGEgcmVwcmlzZSBkZSBsYSBkZW1hbmRlJ1wiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzTW9kYWxWaXNpYmxlXCJcbiAgICAoaXNNb2RhbFZpc2libGVDaGFuZ2UpPVwidXBkYXRlVmlzaWJpbGl0eVN0YXR1cygkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jOyBlbHNlIG5vdENvbm5lY3RlZENvbnRlbnRcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgICBWb3MgZG9ubsOpZXMgb250IMOpdMOpIHNhdXZlZ2FyZMOpZXMsIHZvdXMgcG91dmV6IGFjY8OpZGVyIMOgIGNldHRlXG4gICAgICAgICAgICBkZW1hbmRlIGRhbnMgbGEgbGlzdGUgZGVcbiAgICAgICAgICAgIDxhIGhyZWY9XCIvMTAwMDAyL2RlbWFuZGVzL3NlYXJjaC9NSU5FL0lOSVRJQUxcIj5cbiAgICAgICAgICAgICAgICB2b3MgZGVtYW5kZXMgZW4gYnJvdWlsbG9uXG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAuXG4gICAgICAgIDwvcD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI25vdENvbm5lY3RlZENvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCI+XG4gICAgICAgICAgICA8cCAqbmdJZj1cIiFtYWlsU2VudFwiPlxuICAgICAgICAgICAgICAgIExlcyBpbmZvcm1hdGlvbnMgZGVtYW5kw6llcyBzb250IHVuaXF1ZW1lbnQgdXRpbGlzw6llcyBwb3VyIHZvdXNcbiAgICAgICAgICAgICAgICBwZXJtZXR0cmUgZCdlZmZlY3R1ZXIgbGEgcmVwcmlzZSBkZSBkZW1hbmRlLlxuICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWFpbFNlbnRcIj5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVW4gbWVzc2FnZSBjb250ZW5hbnQgbGUgbGllbiBkZSByZXByaXNlIGRlIGxhIGRlbWFuZGUgYSDDqXTDqVxuICAgICAgICAgICAgICAgICAgICBlbnZvecOpIMOgIHZvdHJlIGVtYWlsLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVm91cyBwb3V2ZXogY2xpcXVlciBzdXIgY2UgbGllbiBwb3VyIHJlcHJlbmRyZSBsYSBkZW1hbmRlIGVuXG4gICAgICAgICAgICAgICAgICAgIHNhaXNpc3NhbnQgbGUgY29kZSBxdWkgc2VyYSBlbnZvecOpIMOgIHZvdHJlIHTDqWzDqXBob25lLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Zm9laG4tZm9ybSAqbmdJZj1cIiFtYWlsU2VudFwiIFtzaG91bGREaXNwbGF5QWxlcnRTdW1tYXJ5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICA8Zm9laG4taW5wdXQtdGV4dFxuICAgICAgICAgICAgICAgIGxhYmVsPVwiRW1haWxcIlxuICAgICAgICAgICAgICAgIGhlbHBUZXh0PVwiUGFyIGV4ZW1wbGUsIGpvaG5AZG9lLmNoXCJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbC5lbWFpbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInRydWVcIlxuICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtdGV4dD5cblxuICAgICAgICAgICAgPGZvZWhuLWlucHV0LXBob25lXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJOdW3DqXJvIGRlIHTDqWzDqXBob25lIG1vYmlsZVwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdEludGVybmF0aW9uYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdE1vYmlsZVBob25lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRQaG9uZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWwubW9iaWxlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwibW9iaWxlXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD1cInRydWVcIlxuICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtcGhvbmU+XG4gICAgICAgIDwvZm9laG4tZm9ybT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBtb2RhbC1mb290ZXIgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1tZC1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtbWQtYXV0byBtci1tZC0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIEZlcm1lclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtbWQtMCBtci1tZC0yIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRBbmRDbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3Mgdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFtYWlsU2VudFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBTYXV2ZWdhcmRlclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cbiJdfQ==
@@ -105,7 +105,7 @@ export class GesdemConfirmationComponent {
105
105
  this.dictionaryService.changeLanguage(languageCode);
106
106
  }
107
107
  // Whether the user has a context we consider it as connected.
108
- this.isConnected = this._sessionInfo.data.pipe(map(userInfo => !!userInfo && !!userInfo.context));
108
+ this.isConnectedCyber = this._sessionInfo.data.pipe(map(userInfo => !!userInfo && !!userInfo.context));
109
109
  if (this.setPageTitle) {
110
110
  this.pageTitleSubscription = this.dictionaryService
111
111
  .getKey('gesdem-confirmation.title')
@@ -156,7 +156,7 @@ export class GesdemConfirmationComponent {
156
156
  }
157
157
  }
158
158
  GesdemConfirmationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GesdemConfirmationComponent, deps: [{ token: i1.GesdemHandlerService }, { token: i2.FoehnPageService }, { token: i3.ActivatedRoute }, { token: i4.SdkDictionaryService }, { token: i5.Location }], target: i0.ɵɵFactoryTarget.Component });
159
- GesdemConfirmationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GesdemConfirmationComponent, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", baseUrlPdf: "baseUrlPdf" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnected | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight\"\n *ngIf=\"(isConnected | async) && hasConnectedContent()\"\n >\n <span class=\"sr-only\">\n Information suite \u00E0 la transmission de votre demande\n </span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n \"\n ></p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n Vous pouvez consulter votre demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/TREATED\">\n Mes nouvelles demandes trait\u00E9es\n </a>\n .\n </p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n Vous pouvez suivre l'avancement du traitement de votre\n demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/IN_PROGRESS\">\n Mes demandes en cours de traitement\n </a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\"\n *ngIf=\"!(isConnected | async)\"\n >\n <div class=\"ml-0 mr-md-auto mr-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n title=\"T\u00E9l\u00E9charger le PDF\"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"mr-0 ml-md-auto mb-2 mt-2\"\n *ngIf=\"closeLink | async as link\"\n >\n <a\n [href]=\"link\"\n id=\"terminerBtn\"\n class=\"btn btn-primary w-100\"\n title=\"Terminer\"\n >\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p class=\"h2\">Demande en cours</p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n Vous pouvez reprendre votre demande en cliquant sur le lien\n ci-dessous\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">Reprendre ma demande</a>\n </p>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: i6.FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": i7.SdkDictionaryPipe, "async": i5.AsyncPipe } });
159
+ GesdemConfirmationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: GesdemConfirmationComponent, selector: "gesdem-confirmation", inputs: { reference: "reference", setPageTitle: "setPageTitle", hasEmailSent: "hasEmailSent", closeHref: "closeHref", showDownloadPdfRecapButton: "showDownloadPdfRecapButton", showLinkToMyDemandes: "showLinkToMyDemandes", demandeIsClosedOnTransmit: "demandeIsClosedOnTransmit", actionStatut: "actionStatut", connectedConfirmationMessage: "connectedConfirmationMessage", connectedConfirmationMessageIfAbandoned: "connectedConfirmationMessageIfAbandoned", downloadPdfRecapButtonText: "downloadPdfRecapButtonText", closeButtonText: "closeButtonText", baseUrlPdf: "baseUrlPdf" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container mt-5\" *ngIf=\"reference && !isInProgress\">\n <div\n class=\"alert text-center mb-2\"\n [ngClass]=\"isTransferred ? 'alert-success' : 'alert-danger'\"\n >\n <p class=\"h2\">\n {{\n isTransferred\n ? (successLabelDicoKey | fromDictionary)\n : ('gesdem-confirmation.abort-label' | fromDictionary)\n }}\n </p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemande\" class=\"h4 d-block mt-3\">{{ reference }}</dd>\n </dl>\n <p *ngIf=\"hasEmailSent && !(isConnectedCyber | async)\">\n {{ 'gesdem-confirmation.mail-sent.label' | fromDictionary }}\n </p>\n </div>\n\n <span\n [innerHTML]=\"'gesdem-confirmation.extra-content' | fromDictionary\"\n ></span>\n\n <ng-content></ng-content>\n\n <div\n class=\"col-md-12 vd-highlight\"\n *ngIf=\"(isConnectedCyber | async) && hasConnectedContent()\"\n >\n <span class=\"sr-only\">\n Information suite \u00E0 la transmission de votre demande\n </span>\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p\n [innerHTML]=\"\n isTransferred\n ? connectedConfirmationMessage\n : connectedConfirmationMessageIfAbandoned\n \"\n ></p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n (demandeIsClosedOnTransmit || isAbandoned)\n \"\n >\n Vous pouvez consulter votre demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/TREATED\">\n Mes nouvelles demandes trait\u00E9es\n </a>\n .\n </p>\n <p\n *ngIf=\"\n showLinkToMyDemandes &&\n !demandeIsClosedOnTransmit &&\n !isAbandoned\n \"\n >\n Vous pouvez suivre l'avancement du traitement de votre\n demande en cliquant sur :\n <a href=\"/100002/demandes/search/MINE/IN_PROGRESS\">\n Mes demandes en cours de traitement\n </a>\n .\n </p>\n </div>\n </div>\n </div>\n\n <div\n class=\"col-md-12 list-unstyled d-md-flex p-0 mt-4\"\n *ngIf=\"!(isConnectedCyber | async)\"\n >\n <div class=\"ml-0 mr-md-auto mr-md-2 mb-2 mt-2\">\n <a\n *ngIf=\"showDownloadPdfRecapButton\"\n [href]=\"urlPdf\"\n id=\"telechargerBtn\"\n class=\"btn btn-secondary w-100\"\n title=\"T\u00E9l\u00E9charger le PDF\"\n >\n {{ downloadPdfRecapButtonText | fromDictionary }}\n </a>\n </div>\n\n <div\n class=\"mr-0 ml-md-auto mb-2 mt-2\"\n *ngIf=\"closeLink | async as link\"\n >\n <a\n [href]=\"link\"\n id=\"terminerBtn\"\n class=\"btn btn-primary w-100\"\n title=\"Terminer\"\n >\n {{ closeButtonText | fromDictionary }}\n </a>\n </div>\n </div>\n</div>\n\n<div class=\"container mt-5\" *ngIf=\"reference && isInProgress\">\n <div class=\"alert alert-info text-center mb-2\">\n <p class=\"h2\">Demande en cours</p>\n <dl>\n <dt class=\"font-weight-light\">\n {{\n 'gesdem-confirmation.reference-title.label' | fromDictionary\n }}\n </dt>\n <dd id=\"numDemandeEnCours\" class=\"h4 d-block mt-3\">\n {{ reference }}\n </dd>\n </dl>\n </div>\n\n <div class=\"col-md-12 vd-highlight\">\n <div class=\"row\">\n <div class=\"col-md-1\">\n <foehn-icon-info-circle class=\"h3\"></foehn-icon-info-circle>\n </div>\n <div class=\"col-md-11\">\n <p>\n Vous pouvez reprendre votre demande en cliquant sur le lien\n ci-dessous\n </p>\n <p>\n <a [routerLink]=\"firstPageLink\">Reprendre ma demande</a>\n </p>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: i6.FoehnIconInfoCircleComponent, selector: "foehn-icon-info-circle" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }], pipes: { "fromDictionary": i7.SdkDictionaryPipe, "async": i5.AsyncPipe } });
160
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: GesdemConfirmationComponent, decorators: [{
161
161
  type: Component,
162
162
  args: [{
@@ -191,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
191
191
  }], baseUrlPdf: [{
192
192
  type: Input
193
193
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZ2VzZGVtLWNvbmZpcm1hdGlvbi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9nZXNkZW0tY29uZmlybWF0aW9uL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBTVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7O0FBU2hGLE1BQU0sT0FBTywyQkFBMkI7SUF3RHBDLFlBQ2MsYUFBbUMsRUFDbkMsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLGlCQUF1QyxFQUN2QyxRQUFrQjtRQUpsQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMs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QUNuRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQzNCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUM7U0FDM0M7UUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hELENBQUM7O3dIQWpPUSwyQkFBMkI7NEdBQTNCLDJCQUEyQixncEJDNUJ4QyxtMUpBZ0pBOzJGRHBIYSwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsc0NBQXNDO2lCQUN0RDtpT0FJRyxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sMEJBQTBCO3NCQUR6QixLQUFLO2dCQUlOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFJTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLDRCQUE0QjtzQkFEM0IsS0FBSztnQkFLTix1Q0FBdUM7c0JBRHRDLEtBQUs7Z0JBS04sMEJBQTBCO3NCQUR6QixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJyZWFkY3J1bWJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1icmVhZGNydW1iL2JyZWFkY3J1bWItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1uYXZpZ2F0aW9uL2ZvZWhuLW5hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25TdGF0dXQsIEdlc2RlbVN0YXR1dFV0aWxzIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1zdGF0dXQtdXRpbHMnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2dlc2RlbS1jb25maXJtYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHZXNkZW1Db25maXJtYXRpb25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgcmVmZXJlbmNlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldFBhZ2VUaXRsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGhhc0VtYWlsU2VudCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZUhyZWY6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b24gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93TGlua1RvTXlEZW1hbmRlcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWN0aW9uU3RhdHV0ID0gQWN0aW9uU3RhdHV0LlRSQU5TRkVSUkVEO1xuXG4gICAgQElucHV0KClcbiAgICBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlID1cbiAgICAgICAgJ1ZvdXMgYXZleiBlZmZlY3R1w6kgbGEgcHJlbWnDqHJlIMOpdGFwZSBkZSB2b3RyZSBkw6ltYXJjaGUgYXZlYyBzdWNjw6hzICEnO1xuXG4gICAgQElucHV0KClcbiAgICBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgPVxuICAgICAgICBcIkxhIGRlbWFuZGUgw6AgbGFxdWVsbGUgdm91cyBlc3NheWV6IGQnYWNjw6lkZXIgYSDDqXTDqSBhYmFuZG9ubsOpZS5cIjtcblxuICAgIEBJbnB1dCgpXG4gICAgZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VCdXR0b25UZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGJhc2VVcmxQZGYgPSAnYXBpL2RvY3VtZW50L3BkZi8nO1xuXG4gICAgaXNDb25uZWN0ZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZmlyc3RQYWdlTGluayA9ICcvJztcbiAgICB1cmxQZGY6IHN0cmluZztcbiAgICBjbG9zZUxpbmsgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgICBwcm90ZWN0ZWQgX2JyZWFkY3J1bWJFdmVudFNlcnZpY2U6IEJyZWFkY3J1bWJFdmVudFNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9mb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvO1xuICAgIHByb3RlY3RlZCBfbmF2aWdhdGlvbjogRm9laG5OYXZpZ2F0aW9uU2VydmljZTtcblxuICAgIHByaXZhdGUgZGF0YVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcGFnZVRpdGxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGxvY2F0aW9uOiBMb2NhdGlvblxuICAgICkge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iRXZlbnRTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgQnJlYWRjcnVtYkV2ZW50U2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuUGFnZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9zZXNzaW9uSW5mbyA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChTZXNzaW9uSW5mbyk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoRm9laG5OYXZpZ2F0aW9uU2VydmljZSk7XG5cbiAgICAgICAgY29uc3Qgcm91dGUgPSBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlLmdldFJvb3RSb3V0ZVJlY3Vyc2l2ZShcbiAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlLnNuYXBzaG90XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24uaW5pdFJvdXRlKHJvdXRlKTtcblxuICAgICAgICAvLyBPdmVycmlkZSBmcm9tIHRoZSByb3V0aW5nLlxuICAgICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcm91dGVEYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0VtYWlsU2VudCA9IHJvdXRlRGF0YS5oYXNFbWFpbFNlbnQgfHwgdGhpcy5oYXNFbWFpbFNlbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmsubmV4dChcbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlSHJlZiB8fCB0aGlzLmNsb3NlTGluay5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b24gPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b24gfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbjtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dMaW5rVG9NeURlbWFuZGVzID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLnNob3dMaW5rVG9NeURlbWFuZGVzIHx8IHRoaXMuc2hvd0xpbmtUb015RGVtYW5kZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5kZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0O1xuICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5kb3dubG9hZC1wZGYtcmVjYXAtYnV0dG9uJztcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VVcmxQZGYgPSByb3V0ZURhdGEuYmFzZVVybFBkZiB8fCB0aGlzLmJhc2VVcmxQZGY7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvblRleHQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY2xvc2VCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4aXQtYnV0dG9uJztcblxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgY2xvc2VMaW5rIGlmIG5vdCBieSBASW5wdXQgYW5kIG5vdCBieSByb3V0ZSBkYXRhXG4gICAgICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5vbkV0YXBlSWRDaGFuZ2UoKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy9uby1uZXN0ZWQtc3Vic2NyaWJlXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoZXRhcGVJZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2xvc2VMaW5rLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGluay5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0ke2V0YXBlSWR9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmNsb3NlSHJlZjtcbiAgICAgICAgaWYgKGNoYW5nZSAmJiBjaGFuZ2UuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTGluay5uZXh0KGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhc3RSZXNwb25zZSA9IHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U7XG4gICAgICAgIGlmIChsYXN0UmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlID0gbGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXQgPVxuICAgICAgICAgICAgICAgIEFjdGlvblN0YXR1dFtsYXN0UmVzcG9uc2UubWV0YS5zdGF0dXQgYXMgQWN0aW9uU3RhdHV0XTtcbiAgICAgICAgICAgIHRoaXMudXJsUGRmID0gdGhpcy5iYXNlVXJsUGRmICsgdGhpcy5yZWZlcmVuY2U7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50QWN0aW9uID0gbGFzdFJlc3BvbnNlLm1ldGEuY3VycmVudEFjdGlvbjtcbiAgICAgICAgICAgIGlmICghIWN1cnJlbnRBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVybFBkZiArPSBgLSR7Y3VycmVudEFjdGlvbn1gO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvY2F0aW9uLnBhdGgoKS5pbmNsdWRlcyhgLyR7dGhpcy5yZWZlcmVuY2V9L2ApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZ1bGxSZWZlcmVuY2VVcmwgPSB0aGlzLmxvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAucGF0aCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLnJlZmVyZW5jZX0tJHtjdXJyZW50QWN0aW9ufWBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb24ucmVwbGFjZVN0YXRlKGZ1bGxSZWZlcmVuY2VVcmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VDb2RlID0gbGFzdFJlc3BvbnNlLmZvcm0ubGFuZ3VhZ2U7XG4gICAgICAgICAgICB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlQ29kZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXaGV0aGVyIHRoZSB1c2VyIGhhcyBhIGNvbnRleHQgd2UgY29uc2lkZXIgaXQgYXMgY29ubmVjdGVkLlxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkID0gdGhpcy5fc2Vzc2lvbkluZm8uZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJJbmZvID0+ICEhdXNlckluZm8gJiYgISF1c2VySW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnNldFBhZ2VUaXRsZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldEtleSgnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZScpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh0aXRsZSA9PiB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZSh0aXRsZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maXJzdFBhZ2VMaW5rID0gdGhpcy5nZXRGaXJzdFBhZ2VMaW5rKCk7XG5cbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZS5za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYXNDb25uZWN0ZWRDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNDb25mTWVzc2FnZSA9XG4gICAgICAgICAgICB0aGlzLmlzVHJhbnNmZXJyZWQgJiYgISF0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgICAgIGNvbnN0IGhhc0FiYW5kb25lZENvbmZNZXNzYWdlID1cbiAgICAgICAgICAgICF0aGlzLmlzVHJhbnNmZXJyZWQgJiZcbiAgICAgICAgICAgICEhdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGhhc0NvbmZNZXNzYWdlIHx8XG4gICAgICAgICAgICBoYXNBYmFuZG9uZWRDb25mTWVzc2FnZSB8fFxuICAgICAgICAgICAgISF0aGlzLnNob3dMaW5rVG9NeURlbWFuZGVzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzVHJhbnNmZXJyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0YXR1dCAmJiB0aGlzLmFjdGlvblN0YXR1dCA9PT0gQWN0aW9uU3RhdHV0LlRSQU5TRkVSUkVEXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQWJhbmRvbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXQgJiYgdGhpcy5hY3Rpb25TdGF0dXQgPT09IEFjdGlvblN0YXR1dC5BQkFORE9ORURcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNJblByb2dyZXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIUdlc2RlbVN0YXR1dFV0aWxzLmlzRmluYWwodGhpcy5hY3Rpb25TdGF0dXQpO1xuICAgIH1cblxuICAgIGdldCBzdWNjZXNzTGFiZWxEaWNvS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RBY3Rpb24gPVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8uY3VycmVudEFjdGlvbiA9PT0gMTtcbiAgICAgICAgcmV0dXJuIGlzRmlyc3RBY3Rpb25cbiAgICAgICAgICAgID8gJ2dlc2RlbS1jb25maXJtYXRpb24uc3VjY2Vzcy1sYWJlbCdcbiAgICAgICAgICAgIDogJ2dlc2RlbS1jb25maXJtYXRpb24ubmV4dC1zdGVwLnN1Y2Nlc3MtbGFiZWwnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rmlyc3RQYWdlTGluaygpOiBzdHJpbmcge1xuICAgICAgICBsZXQgbGluayA9ICcvJztcbiAgICAgICAgY29uc3QgZmlyc3RQYWdlID0gdGhpcy5fbmF2aWdhdGlvbi5nZXRGaXJzdFJvdXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4KSB7XG4gICAgICAgICAgICBsaW5rICs9IGAke3RoaXMuZ2VzZGVtU2VydmljZS5wcmVmaXh9L2A7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7bGluayArIHRoaXMucmVmZXJlbmNlfS8ke2ZpcnN0UGFnZS5wYXRofWA7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgKm5nSWY9XCJyZWZlcmVuY2UgJiYgIWlzSW5Qcm9ncmVzc1wiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhbGVydCB0ZXh0LWNlbnRlciBtYi0yXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNUcmFuc2ZlcnJlZCA/ICdhbGVydC1zdWNjZXNzJyA6ICdhbGVydC1kYW5nZXInXCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwiaDJcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgaXNUcmFuc2ZlcnJlZFxuICAgICAgICAgICAgICAgICAgICA/IChzdWNjZXNzTGFiZWxEaWNvS2V5IHwgZnJvbURpY3Rpb25hcnkpXG4gICAgICAgICAgICAgICAgICAgIDogKCdnZXNkZW0tY29uZmlybWF0aW9uLmFib3J0LWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGw+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmb250LXdlaWdodC1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZVwiIGNsYXNzPVwiaDQgZC1ibG9jayBtdC0zXCI+e3sgcmVmZXJlbmNlIH19PC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICAgICAgPHAgKm5nSWY9XCJoYXNFbWFpbFNlbnQgJiYgIShpc0Nvbm5lY3RlZCB8IGFzeW5jKVwiPlxuICAgICAgICAgICAge3sgJ2dlc2RlbS1jb25maXJtYXRpb24ubWFpbC1zZW50LmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxzcGFuXG4gICAgICAgIFtpbm5lckhUTUxdPVwiJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgPjwvc3Bhbj5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb2wtbWQtMTIgdmQtaGlnaGxpZ2h0XCJcbiAgICAgICAgKm5nSWY9XCIoaXNDb25uZWN0ZWQgfCBhc3luYykgJiYgaGFzQ29ubmVjdGVkQ29udGVudCgpXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgSW5mb3JtYXRpb24gc3VpdGUgw6AgbGEgdHJhbnNtaXNzaW9uIGRlIHZvdHJlIGRlbWFuZGVcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIj5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1pbmZvLWNpcmNsZSBjbGFzcz1cImgzXCI+PC9mb2Vobi1pY29uLWluZm8tY2lyY2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhbnNmZXJyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMaW5rVG9NeURlbWFuZGVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCB8fCBpc0FiYW5kb25lZClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIFZvdXMgcG91dmV6IGNvbnN1bHRlciB2b3RyZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciA6XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvMTAwMDAyL2RlbWFuZGVzL3NlYXJjaC9NSU5FL1RSRUFURURcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1lcyBub3V2ZWxsZXMgZGVtYW5kZXMgdHJhaXTDqWVzXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xpbmtUb015RGVtYW5kZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFkZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhaXNBYmFuZG9uZWRcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIFZvdXMgcG91dmV6IHN1aXZyZSBsJ2F2YW5jZW1lbnQgZHUgdHJhaXRlbWVudCBkZSB2b3RyZVxuICAgICAgICAgICAgICAgICAgICBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciA6XG4gICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIvMTAwMDAyL2RlbWFuZGVzL3NlYXJjaC9NSU5FL0lOX1BST0dSRVNTXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBNZXMgZGVtYW5kZXMgZW4gY291cnMgZGUgdHJhaXRlbWVudFxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIC5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY29sLW1kLTEyIGxpc3QtdW5zdHlsZWQgZC1tZC1mbGV4IHAtMCBtdC00XCJcbiAgICAgICAgKm5nSWY9XCIhKGlzQ29ubmVjdGVkIHwgYXN5bmMpXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0wIG1yLW1kLWF1dG8gbXItbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsUGRmXCJcbiAgICAgICAgICAgICAgICBpZD1cInRlbGVjaGFyZ2VyQnRuXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlTDqWzDqWNoYXJnZXIgbGUgUERGXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBkb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibXItMCBtbC1tZC1hdXRvIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICAqbmdJZj1cImNsb3NlTGluayB8IGFzeW5jIGFzIGxpbmtcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtcIlxuICAgICAgICAgICAgICAgIGlkPVwidGVybWluZXJCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlRlcm1pbmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjbG9zZUJ1dHRvblRleHQgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIG10LTVcIiAqbmdJZj1cInJlZmVyZW5jZSAmJiBpc0luUHJvZ3Jlc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mbyB0ZXh0LWNlbnRlciBtYi0yXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiaDJcIj5EZW1hbmRlIGVuIGNvdXJzPC9wPlxuICAgICAgICA8ZGw+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmb250LXdlaWdodC1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZUVuQ291cnNcIiBjbGFzcz1cImg0IGQtYmxvY2sgbXQtM1wiPlxuICAgICAgICAgICAgICAgIHt7IHJlZmVyZW5jZSB9fVxuICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdmQtaGlnaGxpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMVwiPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWluZm8tY2lyY2xlIGNsYXNzPVwiaDNcIj48L2ZvZWhuLWljb24taW5mby1jaXJjbGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTFcIj5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVm91cyBwb3V2ZXogcmVwcmVuZHJlIHZvdHJlIGRlbWFuZGUgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW5cbiAgICAgICAgICAgICAgICAgICAgY2ktZGVzc291c1xuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiZmlyc3RQYWdlTGlua1wiPlJlcHJlbmRyZSBtYSBkZW1hbmRlPC9hPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZ2VzZGVtLWNvbmZpcm1hdGlvbi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9nZXNkZW0tY29uZmlybWF0aW9uL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBTVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7O0FBU2hGLE1BQU0sT0FBTywyQkFBMkI7SUF3RHBDLFlBQ2MsYUFBbUMsRUFDbkMsZ0JBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLGlCQUF1QyxFQUN2QyxRQUFrQjtRQUpsQixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMs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O1FBQ25ELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDM0IsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztTQUMzQztRQUVELE9BQU8sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEQsQ0FBQzs7d0hBak9RLDJCQUEyQjs0R0FBM0IsMkJBQTJCLGdwQkM1QnhDLGsySkFnSkE7MkZEcEhhLDJCQUEyQjtrQkFMdkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSxzQ0FBc0M7aUJBQ3REO2lPQUlHLFNBQVM7c0JBRFIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQUlOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sNEJBQTRCO3NCQUQzQixLQUFLO2dCQUtOLHVDQUF1QztzQkFEdEMsS0FBSztnQkFLTiwwQkFBMEI7c0JBRHpCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYkV2ZW50U2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvZWhuUGFnZVNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5OYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLW5hdmlnYXRpb24vZm9laG4tbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblN0YXR1dCwgR2VzZGVtU3RhdHV0VXRpbHMgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLXN0YXR1dC11dGlscyc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZ2VzZGVtLWNvbmZpcm1hdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdlc2RlbUNvbmZpcm1hdGlvbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICByZWZlcmVuY2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0UGFnZVRpdGxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaGFzRW1haWxTZW50ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlSHJlZjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dMaW5rVG9NeURlbWFuZGVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25TdGF0dXQgPSBBY3Rpb25TdGF0dXQuVFJBTlNGRVJSRUQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAnVm91cyBhdmV6IGVmZmVjdHXDqSBsYSBwcmVtacOocmUgw6l0YXBlIGRlIHZvdHJlIGTDqW1hcmNoZSBhdmVjIHN1Y2PDqHMgISc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZCA9XG4gICAgICAgIFwiTGEgZGVtYW5kZSDDoCBsYXF1ZWxsZSB2b3VzIGVzc2F5ZXogZCdhY2PDqWRlciBhIMOpdMOpIGFiYW5kb25uw6llLlwiO1xuXG4gICAgQElucHV0KClcbiAgICBkb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZUJ1dHRvblRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgYmFzZVVybFBkZiA9ICdhcGkvZG9jdW1lbnQvcGRmLyc7XG5cbiAgICBpc0Nvbm5lY3RlZEN5YmVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZpcnN0UGFnZUxpbmsgPSAnLyc7XG4gICAgdXJsUGRmOiBzdHJpbmc7XG4gICAgY2xvc2VMaW5rID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gICAgcHJvdGVjdGVkIF9icmVhZGNydW1iRXZlbnRTZXJ2aWNlOiBCcmVhZGNydW1iRXZlbnRTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX3Nlc3Npb25JbmZvOiBTZXNzaW9uSW5mbztcbiAgICBwcm90ZWN0ZWQgX25hdmlnYXRpb246IEZvZWhuTmF2aWdhdGlvblNlcnZpY2U7XG5cbiAgICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHBhZ2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBsb2NhdGlvbjogTG9jYXRpb25cbiAgICApIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIEJyZWFkY3J1bWJFdmVudFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChGb2VoblBhZ2VTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fc2Vzc2lvbkluZm8gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoU2Vzc2lvbkluZm8pO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuTmF2aWdhdGlvblNlcnZpY2UpO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlID0gRm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRSb290Um91dGVSZWN1cnNpdmUoXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmluaXRSb3V0ZShyb3V0ZSk7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgZnJvbSB0aGUgcm91dGluZy5cbiAgICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZShcbiAgICAgICAgICAgIHJvdXRlRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNFbWFpbFNlbnQgPSByb3V0ZURhdGEuaGFzRW1haWxTZW50IHx8IHRoaXMuaGFzRW1haWxTZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rLm5leHQoXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jbG9zZUhyZWYgfHwgdGhpcy5jbG9zZUxpbmsuZ2V0VmFsdWUoKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZDtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dEb3dubG9hZFBkZlJlY2FwQnV0dG9uID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLnNob3dEb3dubG9hZFBkZlJlY2FwQnV0dG9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b247XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93TGlua1RvTXlEZW1hbmRlcyA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcyB8fCB0aGlzLnNob3dMaW5rVG9NeURlbWFuZGVzO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5kZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdDtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlVXJsUGRmID0gcm91dGVEYXRhLmJhc2VVcmxQZGYgfHwgdGhpcy5iYXNlVXJsUGRmO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbic7XG5cbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IGNsb3NlTGluayBpZiBub3QgYnkgQElucHV0IGFuZCBub3QgYnkgcm91dGUgZGF0YVxuICAgICAgICAgICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAub25FdGFwZUlkQ2hhbmdlKClcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMvbm8tbmVzdGVkLXN1YnNjcmliZVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV0YXBlSWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNsb3NlTGluay5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmsubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGh0dHBzOi8vd3d3LnZkLmNoL2dvLnRvP3ByZXN0YXRpb249JHtldGFwZUlkfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5jbG9zZUhyZWY7XG4gICAgICAgIGlmIChjaGFuZ2UgJiYgY2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmsubmV4dChjaGFuZ2UuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0UmVzcG9uc2UgPSB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlO1xuICAgICAgICBpZiAobGFzdFJlc3BvbnNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSA9IGxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHV0ID1cbiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXRbbGFzdFJlc3BvbnNlLm1ldGEuc3RhdHV0IGFzIEFjdGlvblN0YXR1dF07XG4gICAgICAgICAgICB0aGlzLnVybFBkZiA9IHRoaXMuYmFzZVVybFBkZiArIHRoaXMucmVmZXJlbmNlO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEFjdGlvbiA9IGxhc3RSZXNwb25zZS5tZXRhLmN1cnJlbnRBY3Rpb247XG4gICAgICAgICAgICBpZiAoISFjdXJyZW50QWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cmxQZGYgKz0gYC0ke2N1cnJlbnRBY3Rpb259YDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhdGlvbi5wYXRoKCkuaW5jbHVkZXMoYC8ke3RoaXMucmVmZXJlbmNlfS9gKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmdWxsUmVmZXJlbmNlVXJsID0gdGhpcy5sb2NhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLnBhdGgoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5yZWZlcmVuY2V9LSR7Y3VycmVudEFjdGlvbn1gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShmdWxsUmVmZXJlbmNlVXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSA9IGxhc3RSZXNwb25zZS5mb3JtLmxhbmd1YWdlO1xuICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5jaGFuZ2VMYW5ndWFnZShsYW5ndWFnZUNvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hldGhlciB0aGUgdXNlciBoYXMgYSBjb250ZXh0IHdlIGNvbnNpZGVyIGl0IGFzIGNvbm5lY3RlZC5cbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyID0gdGhpcy5fc2Vzc2lvbkluZm8uZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJJbmZvID0+ICEhdXNlckluZm8gJiYgISF1c2VySW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnNldFBhZ2VUaXRsZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldEtleSgnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZScpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh0aXRsZSA9PiB0aGlzLl9mb2VoblBhZ2VTZXJ2aWNlLnNldFBhZ2VUaXRsZSh0aXRsZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maXJzdFBhZ2VMaW5rID0gdGhpcy5nZXRGaXJzdFBhZ2VMaW5rKCk7XG5cbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZS5za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRhU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYXNDb25uZWN0ZWRDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBoYXNDb25mTWVzc2FnZSA9XG4gICAgICAgICAgICB0aGlzLmlzVHJhbnNmZXJyZWQgJiYgISF0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgICAgIGNvbnN0IGhhc0FiYW5kb25lZENvbmZNZXNzYWdlID1cbiAgICAgICAgICAgICF0aGlzLmlzVHJhbnNmZXJyZWQgJiZcbiAgICAgICAgICAgICEhdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQ7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGhhc0NvbmZNZXNzYWdlIHx8XG4gICAgICAgICAgICBoYXNBYmFuZG9uZWRDb25mTWVzc2FnZSB8fFxuICAgICAgICAgICAgISF0aGlzLnNob3dMaW5rVG9NeURlbWFuZGVzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzVHJhbnNmZXJyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0YXR1dCAmJiB0aGlzLmFjdGlvblN0YXR1dCA9PT0gQWN0aW9uU3RhdHV0LlRSQU5TRkVSUkVEXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQWJhbmRvbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXQgJiYgdGhpcy5hY3Rpb25TdGF0dXQgPT09IEFjdGlvblN0YXR1dC5BQkFORE9ORURcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNJblByb2dyZXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIUdlc2RlbVN0YXR1dFV0aWxzLmlzRmluYWwodGhpcy5hY3Rpb25TdGF0dXQpO1xuICAgIH1cblxuICAgIGdldCBzdWNjZXNzTGFiZWxEaWNvS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RBY3Rpb24gPVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8uY3VycmVudEFjdGlvbiA9PT0gMTtcbiAgICAgICAgcmV0dXJuIGlzRmlyc3RBY3Rpb25cbiAgICAgICAgICAgID8gJ2dlc2RlbS1jb25maXJtYXRpb24uc3VjY2Vzcy1sYWJlbCdcbiAgICAgICAgICAgIDogJ2dlc2RlbS1jb25maXJtYXRpb24ubmV4dC1zdGVwLnN1Y2Nlc3MtbGFiZWwnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rmlyc3RQYWdlTGluaygpOiBzdHJpbmcge1xuICAgICAgICBsZXQgbGluayA9ICcvJztcbiAgICAgICAgY29uc3QgZmlyc3RQYWdlID0gdGhpcy5fbmF2aWdhdGlvbi5nZXRGaXJzdFJvdXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4KSB7XG4gICAgICAgICAgICBsaW5rICs9IGAke3RoaXMuZ2VzZGVtU2VydmljZS5wcmVmaXh9L2A7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7bGluayArIHRoaXMucmVmZXJlbmNlfS8ke2ZpcnN0UGFnZS5wYXRofWA7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgKm5nSWY9XCJyZWZlcmVuY2UgJiYgIWlzSW5Qcm9ncmVzc1wiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhbGVydCB0ZXh0LWNlbnRlciBtYi0yXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNUcmFuc2ZlcnJlZCA/ICdhbGVydC1zdWNjZXNzJyA6ICdhbGVydC1kYW5nZXInXCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwiaDJcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgaXNUcmFuc2ZlcnJlZFxuICAgICAgICAgICAgICAgICAgICA/IChzdWNjZXNzTGFiZWxEaWNvS2V5IHwgZnJvbURpY3Rpb25hcnkpXG4gICAgICAgICAgICAgICAgICAgIDogKCdnZXNkZW0tY29uZmlybWF0aW9uLmFib3J0LWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGw+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmb250LXdlaWdodC1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZVwiIGNsYXNzPVwiaDQgZC1ibG9jayBtdC0zXCI+e3sgcmVmZXJlbmNlIH19PC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICAgICAgPHAgKm5nSWY9XCJoYXNFbWFpbFNlbnQgJiYgIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCI+XG4gICAgICAgICAgICB7eyAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5tYWlsLXNlbnQubGFiZWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW5cbiAgICAgICAgW2lubmVySFRNTF09XCInZ2VzZGVtLWNvbmZpcm1hdGlvbi5leHRyYS1jb250ZW50JyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICA+PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbC1tZC0xMiB2ZC1oaWdobGlnaHRcIlxuICAgICAgICAqbmdJZj1cIihpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpICYmIGhhc0Nvbm5lY3RlZENvbnRlbnQoKVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgIEluZm9ybWF0aW9uIHN1aXRlIMOgIGxhIHRyYW5zbWlzc2lvbiBkZSB2b3RyZSBkZW1hbmRlXG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xXCI+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWljb24taW5mby1jaXJjbGUgY2xhc3M9XCJoM1wiPjwvZm9laG4taWNvbi1pbmZvLWNpcmNsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMVwiPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1RyYW5zZmVycmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWRcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93TGlua1RvTXlEZW1hbmRlcyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgfHwgaXNBYmFuZG9uZWQpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBWb3VzIHBvdXZleiBjb25zdWx0ZXIgdm90cmUgZGVtYW5kZSBlbiBjbGlxdWFudCBzdXIgOlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiLzEwMDAwMi9kZW1hbmRlcy9zZWFyY2gvTUlORS9UUkVBVEVEXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBNZXMgbm91dmVsbGVzIGRlbWFuZGVzIHRyYWl0w6llc1xuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIC5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMaW5rVG9NeURlbWFuZGVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWlzQWJhbmRvbmVkXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBWb3VzIHBvdXZleiBzdWl2cmUgbCdhdmFuY2VtZW50IGR1IHRyYWl0ZW1lbnQgZGUgdm90cmVcbiAgICAgICAgICAgICAgICAgICAgZGVtYW5kZSBlbiBjbGlxdWFudCBzdXIgOlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiLzEwMDAwMi9kZW1hbmRlcy9zZWFyY2gvTUlORS9JTl9QUk9HUkVTU1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgTWVzIGRlbWFuZGVzIGVuIGNvdXJzIGRlIHRyYWl0ZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbC1tZC0xMiBsaXN0LXVuc3R5bGVkIGQtbWQtZmxleCBwLTAgbXQtNFwiXG4gICAgICAgICpuZ0lmPVwiIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0wIG1yLW1kLWF1dG8gbXItbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsUGRmXCJcbiAgICAgICAgICAgICAgICBpZD1cInRlbGVjaGFyZ2VyQnRuXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlTDqWzDqWNoYXJnZXIgbGUgUERGXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBkb3dubG9hZFBkZlJlY2FwQnV0dG9uVGV4dCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibXItMCBtbC1tZC1hdXRvIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICAqbmdJZj1cImNsb3NlTGluayB8IGFzeW5jIGFzIGxpbmtcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtocmVmXT1cImxpbmtcIlxuICAgICAgICAgICAgICAgIGlkPVwidGVybWluZXJCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlRlcm1pbmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBjbG9zZUJ1dHRvblRleHQgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIG10LTVcIiAqbmdJZj1cInJlZmVyZW5jZSAmJiBpc0luUHJvZ3Jlc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mbyB0ZXh0LWNlbnRlciBtYi0yXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiaDJcIj5EZW1hbmRlIGVuIGNvdXJzPC9wPlxuICAgICAgICA8ZGw+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmb250LXdlaWdodC1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZUVuQ291cnNcIiBjbGFzcz1cImg0IGQtYmxvY2sgbXQtM1wiPlxuICAgICAgICAgICAgICAgIHt7IHJlZmVyZW5jZSB9fVxuICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdmQtaGlnaGxpZ2h0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMVwiPlxuICAgICAgICAgICAgICAgIDxmb2Vobi1pY29uLWluZm8tY2lyY2xlIGNsYXNzPVwiaDNcIj48L2ZvZWhuLWljb24taW5mby1jaXJjbGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTFcIj5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgVm91cyBwb3V2ZXogcmVwcmVuZHJlIHZvdHJlIGRlbWFuZGUgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW5cbiAgICAgICAgICAgICAgICAgICAgY2ktZGVzc291c1xuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiZmlyc3RQYWdlTGlua1wiPlJlcHJlbmRyZSBtYSBkZW1hbmRlPC9hPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19