valtech-components 4.0.183 → 4.0.185

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.
@@ -96,10 +96,8 @@ export class SwitchOrgModalComponent {
96
96
  }
97
97
  loadOrgs() {
98
98
  this.loading.set(true);
99
- this.orgService
100
- .listMyOrgs()
101
- .pipe(take(1))
102
- .subscribe({
99
+ const source$ = this.auth.isSuperAdmin() ? this.orgService.listAllOrgs() : this.orgService.listMyOrgs();
100
+ source$.pipe(take(1)).subscribe({
103
101
  next: orgs => {
104
102
  const activeId = this.activeOrgId();
105
103
  this.orgs.set([...orgs].sort((a, b) => (a.id === activeId ? -1 : b.id === activeId ? 1 : 0)));
@@ -361,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
361
359
  }], i18nNamespace: [{
362
360
  type: Input
363
361
  }] } });
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUVoRSxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBRS9DLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0FBRWxFOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQXFTSCxNQUFNLE9BQU8sdUJBQXVCO0lBbUN4QixXQUFXLENBQUMsS0FBYTtRQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFzQkQ7UUE1RFEsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JDLFdBQU0sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQWM3QywyREFBMkQ7UUFDbEQsa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQUVsQyxTQUFJLEdBQUcsTUFBTSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQUNsQyxZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLFVBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxNQUFNLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBRWhDLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTNELCtEQUErRDtRQUM1QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEQsOEVBQThFO1FBQzNELGdCQUFXLEdBQUcsTUFBTSxDQUFjLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQVE3QyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRU0sZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUdoQixDQUFDO1lBQ1QsT0FBTyxDQUFDLEVBQUUsV0FBVyxJQUFJLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRU0saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztRQUdELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFpQjtRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakIsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVU7YUFDWixVQUFVLEVBQUU7YUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsQ0FBQyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0F0SFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsME9BcFJ4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUdULHFyRkFySEMsU0FBUyxvR0FDVCxVQUFVLG1GQUNWLFVBQVUsOEVBQ1YsU0FBUyxvUEFDVCxVQUFVLHdLQUNWLFVBQVUseUdBQ1YsT0FBTywySkFDUCxnQkFBZ0IsMkVBQ2hCLG1CQUFtQiwrRUFDbkIsa0JBQWtCLDRJQUNsQixjQUFjOzs0RkFzUkwsdUJBQXVCO2tCQXBTbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsY0FBYztxQkFDZixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5R1Q7d0RBbUxRLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIElvbkJ1dHRvbixcbiAgSW9uQnV0dG9ucyxcbiAgSW9uQ29udGVudCxcbiAgSW9uSGVhZGVyLFxuICBJb25JY29uLFxuICBJb25TcGlubmVyLFxuICBJb25Ub29sYmFyLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgYWRkT3V0bGluZSwgYnVzaW5lc3NPdXRsaW5lLCBjaGVja21hcmtDaXJjbGVPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hiYXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvc2VhcmNoYmFyL3NlYXJjaGJhci5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBPcmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL29yZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy90eXBlcyc7XG5pbXBvcnQgeyBPcmdTd2l0Y2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9vcmctc3dpdGNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTV0lUQ0hfT1JHX01PREFMX0kxOE4gfSBmcm9tICcuL3N3aXRjaC1vcmctbW9kYWwuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLlN3aXRjaE9yZyc7XG5cbmFkZEljb25zKHsgYWRkT3V0bGluZSwgYnVzaW5lc3NPdXRsaW5lLCBjaGVja21hcmtDaXJjbGVPdXRsaW5lIH0pO1xuXG4vKipcbiAqIGB2YWwtc3dpdGNoLW9yZy1tb2RhbGAg4oCUIG1vZGFsIGRlIGNhbWJpbyBkZSBvcmdhbml6YWNpw7NuIGFjdGl2YSAob3JnYW5pc21cbiAqIGNvbXBhcnRpZG8pLiBQcm9tb3ZpZG8gZGVzZGUgYHNob3djYXNlYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gUmV1c2FkbyBwb3JcbiAqIGxhIHZpc3RhIEN1ZW50YSAoeSBmdXR1cmFzIHZpc3RhcyBvcmctYXdhcmUpLlxuICpcbiAqIExpc3RhIGxhcyBvcmdhbml6YWNpb25lcyBkZWwgdXNlciAodsOtYSBgT3JnU2VydmljZS5saXN0TXlPcmdzYCksIHBlcm1pdGUgYnVzY2FyXG4gKiBwb3Igbm9tYnJlLCB5IGNhbWJpYSBsYSBvcmcgYWN0aXZhIGNvbiBgT3JnU3dpdGNoU2VydmljZS5zd2l0Y2hUb2AuIExhIG9yZ1xuICogYWN0dWFsIHF1ZWRhIHByaW1lcmEgeSBkZXNoYWJpbGl0YWRhLlxuICpcbiAqIEFiaWVydG8gdsOtYSBgTW9kYWxTZXJ2aWNlYCDigJQgcmVjaWJlIGBfbW9kYWxSZWZgIHBvciBgY29tcG9uZW50UHJvcHNgICsgY2FsbGJhY2tcbiAqIGBvblN1Y2Nlc3NgLiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSk6IHNpbiBgaW9uLXRpdGxlYCwgYm90w7NuIENlcnJhciB0ZXh0byBlblxuICogYHNsb3Q9ZW5kYCwgdMOtdHVsby9zdWJ0w610dWxvIGVuIGVsIGJvZHkgY29uIGB2YWwtZGlzcGxheWAvYHZhbC10aXRsZWAuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogYFNldHRpbmdzLlN3aXRjaE9yZ2AuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1zd2l0Y2gtb3JnLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkhlYWRlcixcbiAgICBJb25Ub29sYmFyLFxuICAgIElvbkJ1dHRvbnMsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkNvbnRlbnQsXG4gICAgSW9uU3Bpbm5lcixcbiAgICBJb25JY29uLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBTZWFyY2hiYXJDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiB0KCd0aXRsZScpLCBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnIH1cIiAvPlxuICAgICAgPHZhbC10aXRsZVxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRlbnQ6IHQoJ3N1YnRpdGxlJyksXG4gICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICBjb2xvcjogJycsXG4gICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgIH1cIlxuICAgICAgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItc3RyaXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItc3RyaXBfX2F2YXRhclwiPlxuICAgICAgICAgIEBpZiAodXNlcigpPy5hdmF0YXJVcmwgJiYgIXVzZXJBdmF0YXJGYWlsZWQoKSkge1xuICAgICAgICAgICAgPGltZyBbc3JjXT1cInVzZXIoKSEuYXZhdGFyVXJsIVwiIFthbHRdPVwidXNlcigpPy5uYW1lID8/ICcnXCIgKGVycm9yKT1cInVzZXJBdmF0YXJGYWlsZWQuc2V0KHRydWUpXCIgLz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuPnt7IHVzZXJJbml0aWFscygpIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXN0cmlwX19pbmZvXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXN0cmlwX19uYW1lXCI+e3sgdXNlcigpPy5uYW1lIHx8IHVzZXIoKT8uZW1haWwgfHwgJycgfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLXN0cmlwX19lbWFpbFwiPnt7IHVzZXIoKT8uZW1haWwgfHwgJycgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwidXNlci1zdHJpcF9fcHJvZmlsZS1idG5cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uUHJvZmlsZSgpXCI+XG4gICAgICAgICAge3sgdCgncHJvZmlsZScpIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtc2VjdGlvblwiPlxuICAgICAgICA8dmFsLXNlYXJjaGJhclxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogdCgnc2VhcmNoUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgIGRlYm91bmNlOiAyMDAsXG4gICAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAnbmV2ZXInLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChmaWx0ZXJFdmVudCk9XCJvblF1ZXJ5Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuXG4gICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1zdGF0ZVwiPlxuICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKGZpbHRlcmVkT3JncygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHZhcmlhbnQ6ICdlbXB0eScsXG4gICAgICAgICAgICAgIHRpdGxlOiB0KCdub1Jlc3VsdHMnKSxcbiAgICAgICAgICAgICAgaWNvbjogJ2J1c2luZXNzLW91dGxpbmUnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZ3MtbGlzdFwiPlxuICAgICAgICAgICAgQGZvciAob3JnIG9mIGZpbHRlcmVkT3JncygpOyB0cmFjayBvcmcuaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwib3JnLXJvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLm9yZy1yb3ctLWFjdGl2ZV09XCJvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIXN3aXRjaGluZ0lkKCkgfHwgb3JnLmlkID09PSBhY3RpdmVPcmdJZCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3Qob3JnKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19faWNvblwiPlxuICAgICAgICAgICAgICAgICAgQGlmIChvcmcubG9nb1VybCAmJiAhZmFpbGVkTG9nb3MoKS5oYXMob3JnLmlkKSkge1xuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwib3JnLmxvZ29VcmxcIiBbYWx0XT1cIm9yZy5uYW1lXCIgKGVycm9yKT1cIm9uTG9nb0Vycm9yKG9yZy5pZClcIiAvPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnVzaW5lc3Mtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1yb3dfX2JvZHlcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLXJvd19fbmFtZVwiPnt7IG9yZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X190eXBlXCI+e3sgb3JnLnR5cGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1yb3dfX2VuZFwiPlxuICAgICAgICAgICAgICAgICAgQGlmIChzd2l0Y2hpbmdJZCgpID09PSBvcmcuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGNsYXNzPVwib3JnLXJvd19fc3Bpbm5lclwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X19jdXJyZW50XCI+e3sgdCgnY3VycmVudCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGUtb3V0bGluZVwiIGNsYXNzPVwib3JnLXJvd19fY2hlY2tcIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAob25DcmVhdGVPcmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1vcmctY3RhXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiZGFya1wiIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwib25DcmVhdGVOZXcoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhZGQtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICB7eyB0KCduZXdPcmcnKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9pb24tY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnN3aXRjaC1zZWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnN3aXRjaC1zdGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDA7XG4gICAgICB9XG4gICAgICAub3Jncy1saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAub3JnLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLFxuICAgICAgICAgIG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93Om5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cbiAgICAgIC5vcmctcm93OmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3ctLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2ljb24ge1xuICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMDgpO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2JvZHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX3R5cGUge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC43KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19lbmQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fY3VycmVudCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC43KTtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19jaGVjayB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX3NwaW5uZXIge1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2ljb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDAgNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMSk7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fYXZhdGFyIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjEpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2F2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19pbmZvIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19uYW1lIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2VtYWlsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjYpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19wcm9maWxlLWJ0biB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogNnB4IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG4gICAgICB9XG4gICAgICAubmV3LW9yZy1jdGEge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xKTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hPcmdNb2RhbENvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgb3JnU2VydmljZSA9IGluamVjdChPcmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTd2l0Y2ggPSBpbmplY3QoT3JnU3dpdGNoU2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIC8qKiBJbnllY3RhZG8gcG9yIGBNb2RhbFNlcnZpY2Uub3BlbmAg4oCUIHJlZmVyZW5jaWEgcGFyYSBjZXJyYXIgZGVzZGUgZGVudHJvLiAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIC8qKiBDYWxsYmFjayB0cmFzIHVuIHN3aXRjaCBleGl0b3NvIChwYXNhZG8gcG9yIGBjb21wb25lbnRQcm9wc2ApLiAqL1xuICBASW5wdXQoKSBvblN1Y2Nlc3M/OiAoKSA9PiB2b2lkO1xuXG4gIC8qKiBDYWxsYmFjayBhbCBoYWNlciBjbGljIGVuIFwiTWkgcGVyZmlsXCIgKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uUHJvZmlsZUNsaWNrPzogKCkgPT4gdm9pZDtcblxuICAvKiogQ2FsbGJhY2sgYWwgaGFjZXIgY2xpYyBlbiBcIk51ZXZhIG9yZ2FuaXphY2nDs25cIi4gU2kgZXN0w6EgcHJlc2VudGUsIG11ZXN0cmEgZWwgQ1RBLiAqL1xuICBASW5wdXQoKSBvbkNyZWF0ZU9yZz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIGNvbiBxdWUgbGEgdmlzdGEgcmVzdWVsdmUgc3VzIHRleHRvcy4gKi9cbiAgQElucHV0KCkgaTE4bk5hbWVzcGFjZSA9IERFRkFVTFRfTkFNRVNQQUNFO1xuXG4gIHJlYWRvbmx5IG9yZ3MgPSBzaWduYWw8T3JnYW5pemF0aW9uW10+KFtdKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHF1ZXJ5ID0gc2lnbmFsKCcnKTtcbiAgcmVhZG9ubHkgc3dpdGNoaW5nSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVzZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF1dGgudXNlcigpKTtcblxuICAvKiogQXZhdGFyIGRlIHVzdWFyaW8gcXVlIGZhbGzDsyBhbCBjYXJnYXIg4oaSIGNhZSBhIGluaWNpYWxlcy4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHVzZXJBdmF0YXJGYWlsZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBJRHMgZGUgb3JncyBjdXlvIGxvZ28gZmFsbMOzIGFsIGNhcmdhciDihpIgY2FlbiBhbCDDrWNvbm8gYnVzaW5lc3Mtb3V0bGluZS4gKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZhaWxlZExvZ29zID0gc2lnbmFsPFNldDxzdHJpbmc+PihuZXcgU2V0KCkpO1xuXG4gIHByb3RlY3RlZCBvbkxvZ29FcnJvcihvcmdJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dCA9IG5ldyBTZXQodGhpcy5mYWlsZWRMb2dvcygpKTtcbiAgICBuZXh0LmFkZChvcmdJZCk7XG4gICAgdGhpcy5mYWlsZWRMb2dvcy5zZXQobmV4dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlckluaXRpYWxzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLnVzZXIoKT8ubmFtZSA/PyB0aGlzLnVzZXIoKT8uZW1haWwgPz8gJz8nO1xuICAgIHJldHVybiBuYW1lLnNsaWNlKDAsIDIpLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0lkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHtcbiAgICAgIGFjdGl2ZU9yZ0lkPzogc3RyaW5nO1xuICAgICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICAgIH0gfCBudWxsO1xuICAgIHJldHVybiB1Py5hY3RpdmVPcmdJZCA/PyB1Py5hY3RpdmVPcmcgPz8gJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZpbHRlcmVkT3JncyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBxID0gdGhpcy5xdWVyeSgpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLm9yZ3MoKTtcbiAgICBpZiAoIXEpIHJldHVybiBsaXN0O1xuICAgIHJldHVybiBsaXN0LmZpbHRlcihvID0+IG8ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpKTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoREVGQVVMVF9OQU1FU1BBQ0UsIFNXSVRDSF9PUkdfTU9EQUxfSTE4Tik7XG4gICAgdGhpcy5sb2FkT3JncygpO1xuICB9XG5cbiAgb25RdWVyeUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5xdWVyeS5zZXQodmFsdWUgPz8gJycpO1xuICB9XG5cbiAgYXN5bmMgb25TZWxlY3Qob3JnOiBPcmdhbml6YXRpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zd2l0Y2hpbmdJZCgpIHx8IG9yZy5pZCA9PT0gdGhpcy5hY3RpdmVPcmdJZCgpKSByZXR1cm47XG4gICAgdGhpcy5zd2l0Y2hpbmdJZC5zZXQob3JnLmlkKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5vcmdTd2l0Y2guc3dpdGNoVG8ob3JnLmlkKTtcbiAgICAgIHRoaXMub25TdWNjZXNzPy4oKTtcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnYWNjb3VudC5zd2l0Y2hPcmcnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3N3aXRjaEVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5pMThuTmFtZXNwYWNlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnN3aXRjaGluZ0lkLnNldChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcmdzKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5vcmdTZXJ2aWNlXG4gICAgICAubGlzdE15T3JncygpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IG9yZ3MgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgICAgICAgIHRoaXMub3Jncy5zZXQoWy4uLm9yZ3NdLnNvcnQoKGEsIGIpID0+IChhLmlkID09PSBhY3RpdmVJZCA/IC0xIDogYi5pZCA9PT0gYWN0aXZlSWQgPyAxIDogMCkpKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMubG9hZGluZy5zZXQoZmFsc2UpLFxuICAgICAgfSk7XG4gIH1cblxuICBvblByb2ZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgdGhpcy5vblByb2ZpbGVDbGljaz8uKCk7XG4gIH1cblxuICBvbkNyZWF0ZU5ldygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB0aGlzLm9uQ3JlYXRlT3JnPy4oKTtcbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MobnVsbCwgJ2NhbmNlbCcpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgdGhpcy5pMThuTmFtZXNwYWNlKTtcbiAgfVxufVxuIl19
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N3aXRjaC1vcmctbW9kYWwvc3dpdGNoLW9yZy1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFB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LE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQXBIVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwwT0FwUnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5R1QscXJGQXJIQyxTQUFTLG9HQUNULFVBQVUsbUZBQ1YsVUFBVSw4RUFDVixTQUFTLG9QQUNULFVBQVUsd0tBQ1YsVUFBVSx5R0FDVixPQUFPLDJKQUNQLGdCQUFnQiwyRUFDaEIsbUJBQW1CLCtFQUNuQixrQkFBa0IsNElBQ2xCLGNBQWM7OzRGQXNSTCx1QkFBdUI7a0JBcFNuQyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixjQUFjO3FCQUNmLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlHVDt3REFtTFEsU0FBUztzQkFBakIsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSW9uQnV0dG9uLFxuICBJb25CdXR0b25zLFxuICBJb25Db250ZW50LFxuICBJb25IZWFkZXIsXG4gIElvbkljb24sXG4gIElvblNwaW5uZXIsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhZGRPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL3R5cGVzJztcbmltcG9ydCB7IE9yZ1N3aXRjaFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL29yZy1zd2l0Y2guc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFNXSVRDSF9PUkdfTU9EQUxfSTE4TiB9IGZyb20gJy4vc3dpdGNoLW9yZy1tb2RhbC5pMThuJztcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuU3dpdGNoT3JnJztcblxuYWRkSWNvbnMoeyBhZGRPdXRsaW5lLCBidXNpbmVzc091dGxpbmUsIGNoZWNrbWFya0NpcmNsZU91dGxpbmUgfSk7XG5cbi8qKlxuICogYHZhbC1zd2l0Y2gtb3JnLW1vZGFsYCDigJQgbW9kYWwgZGUgY2FtYmlvIGRlIG9yZ2FuaXphY2nDs24gYWN0aXZhIChvcmdhbmlzbVxuICogY29tcGFydGlkbykuIFByb21vdmlkbyBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZXVzYWRvIHBvclxuICogbGEgdmlzdGEgQ3VlbnRhICh5IGZ1dHVyYXMgdmlzdGFzIG9yZy1hd2FyZSkuXG4gKlxuICogTGlzdGEgbGFzIG9yZ2FuaXphY2lvbmVzIGRlbCB1c2VyICh2w61hIGBPcmdTZXJ2aWNlLmxpc3RNeU9yZ3NgKSwgcGVybWl0ZSBidXNjYXJcbiAqIHBvciBub21icmUsIHkgY2FtYmlhIGxhIG9yZyBhY3RpdmEgY29uIGBPcmdTd2l0Y2hTZXJ2aWNlLnN3aXRjaFRvYC4gTGEgb3JnXG4gKiBhY3R1YWwgcXVlZGEgcHJpbWVyYSB5IGRlc2hhYmlsaXRhZGEuXG4gKlxuICogQWJpZXJ0byB2w61hIGBNb2RhbFNlcnZpY2VgIOKAlCByZWNpYmUgYF9tb2RhbFJlZmAgcG9yIGBjb21wb25lbnRQcm9wc2AgKyBjYWxsYmFja1xuICogYG9uU3VjY2Vzc2AuIEhlYWRlciBjYW7Ds25pY28gKFJlZ2xhICM1KTogc2luIGBpb24tdGl0bGVgLCBib3TDs24gQ2VycmFyIHRleHRvIGVuXG4gKiBgc2xvdD1lbmRgLCB0w610dWxvL3N1YnTDrXR1bG8gZW4gZWwgYm9keSBjb24gYHZhbC1kaXNwbGF5YC9gdmFsLXRpdGxlYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWwgbmFtZXNwYWNlXG4gKiBgU2V0dGluZ3MuU3dpdGNoT3JnYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN3aXRjaC1vcmctbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRvb2xiYXIsXG4gICAgSW9uQnV0dG9ucyxcbiAgICBJb25CdXR0b24sXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25TcGlubmVyLFxuICAgIElvbkljb24sXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNlYXJjaGJhckNvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjbG9zZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgPC9pb24tdG9vbGJhcj5cbiAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IHQoJ3RpdGxlJyksIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8dmFsLXRpdGxlXG4gICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgY29udGVudDogdCgnc3VidGl0bGUnKSxcbiAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgIGNvbG9yOiAnJyxcbiAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1zdHJpcF9fYXZhdGFyXCI+XG4gICAgICAgICAgQGlmICh1c2VyKCk/LmF2YXRhclVybCAmJiAhdXNlckF2YXRhckZhaWxlZCgpKSB7XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwidXNlcigpIS5hdmF0YXJVcmwhXCIgW2FsdF09XCJ1c2VyKCk/Lm5hbWUgPz8gJydcIiAoZXJyb3IpPVwidXNlckF2YXRhckZhaWxlZC5zZXQodHJ1ZSlcIiAvPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHNwYW4+e3sgdXNlckluaXRpYWxzKCkgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItc3RyaXBfX2luZm9cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItc3RyaXBfX25hbWVcIj57eyB1c2VyKCk/Lm5hbWUgfHwgdXNlcigpPy5lbWFpbCB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItc3RyaXBfX2VtYWlsXCI+e3sgdXNlcigpPy5lbWFpbCB8fCAnJyB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ1c2VyLXN0cmlwX19wcm9maWxlLWJ0blwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25Qcm9maWxlKClcIj5cbiAgICAgICAgICB7eyB0KCdwcm9maWxlJykgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1zZWN0aW9uXCI+XG4gICAgICAgIDx2YWwtc2VhcmNoYmFyXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdzZWFyY2hQbGFjZWhvbGRlcicpLFxuICAgICAgICAgICAgZGVib3VuY2U6IDIwMCxcbiAgICAgICAgICAgIHNob3dDYW5jZWxCdXR0b246ICduZXZlcicsXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKGZpbHRlckV2ZW50KT1cIm9uUXVlcnlDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXN0YXRlXCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAoZmlsdGVyZWRPcmdzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgdmFyaWFudDogJ2VtcHR5JyxcbiAgICAgICAgICAgICAgdGl0bGU6IHQoJ25vUmVzdWx0cycpLFxuICAgICAgICAgICAgICBpY29uOiAnYnVzaW5lc3Mtb3V0bGluZScsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChvcmcgb2YgZmlsdGVyZWRPcmdzKCk7IHRyYWNrIG9yZy5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvcmctcm93XCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mub3JnLXJvdy0tYWN0aXZlXT1cIm9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhc3dpdGNoaW5nSWQoKSB8fCBvcmcuaWQgPT09IGFjdGl2ZU9yZ0lkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChvcmcpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctcm93X19pY29uXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKG9yZy5sb2dvVXJsICYmICFmYWlsZWRMb2dvcygpLmhhcyhvcmcuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJvcmcubG9nb1VybFwiIFthbHRdPVwib3JnLm5hbWVcIiAoZXJyb3IpPVwib25Mb2dvRXJyb3Iob3JnLmlkKVwiIC8+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJidXNpbmVzcy1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctcm93X19uYW1lXCI+e3sgb3JnLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX3R5cGVcIj57eyBvcmcudHlwZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLXJvd19fZW5kXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKHN3aXRjaGluZ0lkKCkgPT09IG9yZy5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgY2xhc3M9XCJvcmctcm93X19zcGlubmVyXCIgLz5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZy5pZCA9PT0gYWN0aXZlT3JnSWQoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1yb3dfX2N1cnJlbnRcIj57eyB0KCdjdXJyZW50JykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgY2xhc3M9XCJvcmctcm93X19jaGVja1wiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChvbkNyZWF0ZU9yZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibmV3LW9yZy1jdGFcIj5cbiAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJvbkNyZWF0ZU5ldygpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImFkZC1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgIHt7IHQoJ25ld09yZycpIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2lvbi1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuc3dpdGNoLXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICAuc3dpdGNoLXN0YXRlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcikpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsXG4gICAgICAgICAgb3BhY2l0eSAwLjE1cyBlYXNlO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3c6bm90KDpkaXNhYmxlZCk6YWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgfVxuICAgICAgLm9yZy1yb3c6ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICB9XG4gICAgICAub3JnLXJvdy0tYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19faWNvbiB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4wOCk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fYm9keSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fdHlwZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjcpO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2VuZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5vcmctcm93X19jdXJyZW50IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc0cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjcpO1xuICAgICAgfVxuICAgICAgLm9yZy1yb3dfX2NoZWNrIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19fc3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLXJvd19faWNvbiBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMCA0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEodmFyKC0taW9uLWNvbG9yLWRhcmstcmdiKSwgMC4xKTtcbiAgICAgIH1cbiAgICAgIC51c2VyLXN0cmlwX19hdmF0YXIge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuMSk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX2luZm8ge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAudXNlci1zdHJpcF9fZW1haWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWlvbi1jb2xvci1kYXJrLXJnYiksIDAuNik7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgICAgLnVzZXItc3RyaXBfX3Byb2ZpbGUtYnRuIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiA2cHggMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbiAgICAgIH1cbiAgICAgIC5uZXctb3JnLWN0YSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IpLCAwLjEpO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaE9yZ01vZGFsQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBvcmdTZXJ2aWNlID0gaW5qZWN0KE9yZ1NlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1N3aXRjaCA9IGluamVjdChPcmdTd2l0Y2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG5cbiAgLyoqIElueWVjdGFkbyBwb3IgYE1vZGFsU2VydmljZS5vcGVuYCDigJQgcmVmZXJlbmNpYSBwYXJhIGNlcnJhciBkZXNkZSBkZW50cm8uICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIENhbGxiYWNrIHRyYXMgdW4gc3dpdGNoIGV4aXRvc28gKHBhc2FkbyBwb3IgYGNvbXBvbmVudFByb3BzYCkuICovXG4gIEBJbnB1dCgpIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQ7XG5cbiAgLyoqIENhbGxiYWNrIGFsIGhhY2VyIGNsaWMgZW4gXCJNaSBwZXJmaWxcIiAocGFzYWRvIHBvciBgY29tcG9uZW50UHJvcHNgKS4gKi9cbiAgQElucHV0KCkgb25Qcm9maWxlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuXG4gIC8qKiBDYWxsYmFjayBhbCBoYWNlciBjbGljIGVuIFwiTnVldmEgb3JnYW5pemFjacOzblwiLiBTaSBlc3TDoSBwcmVzZW50ZSwgbXVlc3RyYSBlbCBDVEEuICovXG4gIEBJbnB1dCgpIG9uQ3JlYXRlT3JnPzogKCkgPT4gdm9pZDtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gY29uIHF1ZSBsYSB2aXN0YSByZXN1ZWx2ZSBzdXMgdGV4dG9zLiAqL1xuICBASW5wdXQoKSBpMThuTmFtZXNwYWNlID0gREVGQVVMVF9OQU1FU1BBQ0U7XG5cbiAgcmVhZG9ubHkgb3JncyA9IHNpZ25hbDxPcmdhbml6YXRpb25bXT4oW10pO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgcXVlcnkgPSBzaWduYWwoJycpO1xuICByZWFkb25seSBzd2l0Y2hpbmdJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXV0aC51c2VyKCkpO1xuXG4gIC8qKiBBdmF0YXIgZGUgdXN1YXJpbyBxdWUgZmFsbMOzIGFsIGNhcmdhciDihpIgY2FlIGEgaW5pY2lhbGVzLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXNlckF2YXRhckZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIElEcyBkZSBvcmdzIGN1eW8gbG9nbyBmYWxsw7MgYWwgY2FyZ2FyIOKGkiBjYWVuIGFsIMOtY29ubyBidXNpbmVzcy1vdXRsaW5lLiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFpbGVkTG9nb3MgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG5cbiAgcHJvdGVjdGVkIG9uTG9nb0Vycm9yKG9yZ0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0ID0gbmV3IFNldCh0aGlzLmZhaWxlZExvZ29zKCkpO1xuICAgIG5leHQuYWRkKG9yZ0lkKTtcbiAgICB0aGlzLmZhaWxlZExvZ29zLnNldChuZXh0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSB1c2VySW5pdGlhbHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMudXNlcigpPy5uYW1lID8/IHRoaXMudXNlcigpPy5lbWFpbCA/PyAnPyc7XG4gICAgcmV0dXJuIG5hbWUuc2xpY2UoMCwgMikudG9VcHBlckNhc2UoKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyZWRPcmdzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnF1ZXJ5KCkudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMub3JncygpO1xuICAgIGlmICghcSkgcmV0dXJuIGxpc3Q7XG4gICAgcmV0dXJuIGxpc3QuZmlsdGVyKG8gPT4gby5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSkpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhERUZBVUxUX05BTUVTUEFDRSwgU1dJVENIX09SR19NT0RBTF9JMThOKTtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gIH1cblxuICBvblF1ZXJ5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnF1ZXJ5LnNldCh2YWx1ZSA/PyAnJyk7XG4gIH1cblxuICBhc3luYyBvblNlbGVjdChvcmc6IE9yZ2FuaXphdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnN3aXRjaGluZ0lkKCkgfHwgb3JnLmlkID09PSB0aGlzLmFjdGl2ZU9yZ0lkKCkpIHJldHVybjtcbiAgICB0aGlzLnN3aXRjaGluZ0lkLnNldChvcmcuaWQpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLm9yZ1N3aXRjaC5zd2l0Y2hUbyhvcmcuaWQpO1xuICAgICAgdGhpcy5vblN1Y2Nlc3M/LigpO1xuICAgICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdhY2NvdW50LnN3aXRjaE9yZycsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc3dpdGNoRXJyb3InLFxuICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLmkxOG5OYW1lc3BhY2UsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3dpdGNoaW5nSWQuc2V0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZE9yZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcbiAgICBjb25zdCBzb3VyY2UkID0gdGhpcy5hdXRoLmlzU3VwZXJBZG1pbigpID8gdGhpcy5vcmdTZXJ2aWNlLmxpc3RBbGxPcmdzKCkgOiB0aGlzLm9yZ1NlcnZpY2UubGlzdE15T3JncygpO1xuICAgIHNvdXJjZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogb3JncyA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgICAgICB0aGlzLm9yZ3Muc2V0KFsuLi5vcmdzXS5zb3J0KChhLCBiKSA9PiAoYS5pZCA9PT0gYWN0aXZlSWQgPyAtMSA6IGIuaWQgPT09IGFjdGl2ZUlkID8gMSA6IDApKSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIG9uUHJvZmlsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3MoKTtcbiAgICB0aGlzLm9uUHJvZmlsZUNsaWNrPy4oKTtcbiAgfVxuXG4gIG9uQ3JlYXRlTmV3KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzcygpO1xuICAgIHRoaXMub25DcmVhdGVPcmc/LigpO1xuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhudWxsLCAnY2FuY2VsJyk7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLmkxOG5OYW1lc3BhY2UpO1xuICB9XG59XG4iXX0=