@provoly/dashboard 0.12.7 → 0.12.9

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.
Files changed (52) hide show
  1. package/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.d.ts +2 -1
  2. package/admin/components/admin-classes/store/admin-class.effects.d.ts +2 -1
  3. package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +2 -1
  4. package/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.d.ts +2 -1
  5. package/admin/i18n/en.translations.d.ts +2 -0
  6. package/admin/i18n/fr.translations.d.ts +2 -0
  7. package/admin/store/admin.actions.d.ts +31 -1
  8. package/admin/store/admin.effects.d.ts +27 -5
  9. package/admin/store/admin.reducer.d.ts +2 -1
  10. package/admin/store/admin.selectors.d.ts +1 -0
  11. package/admin/store/admin.service.d.ts +5 -1
  12. package/esm2022/admin/components/admin-classes/admin-classes-select/admin-classes-select.component.mjs +5 -3
  13. package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +2 -1
  14. package/esm2022/admin/components/admin-classes/store/admin-class.actions.mjs +1 -1
  15. package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +5 -4
  16. package/esm2022/admin/components/admin-classes/store/admin-class.reducer.mjs +1 -1
  17. package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +2 -1
  18. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +5 -3
  19. package/esm2022/admin/components/admin-fields/admin-fields-select/admin-fields-select.component.mjs +5 -3
  20. package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +2 -1
  21. package/esm2022/admin/components/admin-predicates/admin-predicates-select/admin-predicates-select.component.mjs +3 -3
  22. package/esm2022/admin/components/admin-predicates/admin-predicates.component.mjs +1 -1
  23. package/esm2022/admin/components/admin.component.mjs +1 -1
  24. package/esm2022/admin/i18n/en.translations.mjs +3 -1
  25. package/esm2022/admin/i18n/fr.translations.mjs +3 -1
  26. package/esm2022/admin/store/admin.actions.mjs +8 -2
  27. package/esm2022/admin/store/admin.effects.mjs +6 -2
  28. package/esm2022/admin/store/admin.reducer.mjs +6 -2
  29. package/esm2022/admin/store/admin.selectors.mjs +4 -2
  30. package/esm2022/admin/store/admin.service.mjs +21 -1
  31. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +2 -2
  32. package/esm2022/dataset/components/dataset.component.mjs +2 -1
  33. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  34. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +3 -1
  35. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +3 -2
  36. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +4 -1
  37. package/esm2022/lib/core/store/data-source/data-source.service.mjs +6 -1
  38. package/esm2022/lib/dashboard/store/refresh.service.mjs +3 -2
  39. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +4 -3
  40. package/fesm2022/provoly-dashboard-admin.mjs +61 -14
  41. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  42. package/fesm2022/provoly-dashboard-dataset.mjs +2 -1
  43. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  44. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +3 -2
  45. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  46. package/fesm2022/provoly-dashboard.mjs +14 -2
  47. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  48. package/lib/core/store/class/class.interface.d.ts +11 -0
  49. package/lib/core/store/data-source/data-source.actions.d.ts +12 -0
  50. package/lib/core/store/data-source/data-source.effects.d.ts +4 -0
  51. package/lib/core/store/data-source/data-source.service.d.ts +1 -0
  52. package/package.json +1 -1
@@ -10,10 +10,11 @@ import * as i1 from "@ngrx/effects";
10
10
  import * as i2 from "../../../store/admin.service";
11
11
  import * as i3 from "@provoly/dashboard";
12
12
  export class AdminClassEffects {
13
- constructor(actions$, adminService, pryDialog) {
13
+ constructor(actions$, adminService, pryDialog, service) {
14
14
  this.actions$ = actions$;
15
15
  this.adminService = adminService;
16
16
  this.pryDialog = pryDialog;
17
+ this.service = service;
17
18
  this.updateToolbox$ = createEffect(() => this.actions$.pipe(ofType(AdminClassActions.updateToolbox), mergeMap((action) => {
18
19
  return [ClassActions.load(), AdminActions.selectComponentType({ componentType: null })];
19
20
  })));
@@ -130,10 +131,10 @@ export class AdminClassEffects {
130
131
  this.pryDialog.open(PryDialogConfirmComponent, { data });
131
132
  })), { dispatch: false });
132
133
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassEffects, deps: [{ token: i1.Actions }, { token: i2.AdminService }, { token: i3.PryDialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassEffects, deps: [{ token: i1.Actions }, { token: i2.AdminService }, { token: i3.PryDialogService }, { token: i2.AdminService }], target: i0.ɵɵFactoryTarget.Injectable }); }
134
135
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassEffects }); }
135
136
  }
136
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminClassEffects, decorators: [{
137
138
  type: Injectable
138
- }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AdminService }, { type: i3.PryDialogService }]; } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1oseUJBQXlCLEVBRzFCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBRzFELE1BQU0sT0FBTyxpQkFBaUI7SUE0TzVCLFlBQ1UsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsU0FBMkI7UUFGM0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQTlPckMsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEVBQ3ZDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsWUFBWSxDQUFD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LGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQge1xuICBDYXRlZ29yeUFjdGlvbnMsXG4gIENsYXNzQWN0aW9ucyxcbiAgUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCxcbiAgUHJ5RGlhbG9nQ29uZmlybURhdGEsXG4gIFByeURpYWxvZ1NlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWRtaW4uc2VydmljZSc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4vYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZG1pbkNsYXNzRWZmZWN0cyB7XG4gIHVwZGF0ZVRvb2xib3gkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLnVwZGF0ZVRvb2xib3gpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gW0NsYXNzQWN0aW9ucy5sb2FkKCksIEFkbWluQWN0aW9ucy5zZWxlY3RDb21wb25lbnRUeXBlKHsgY29tcG9uZW50VHlwZTogbnVsbCB9KV07XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzYXZlQ2xhc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDbGFzcyksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb24uY2xhc3MuYXR0cmlidXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCBkYXRhOiBQcnlEaWFsb2dDb25maXJtRGF0YSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiAnQHByeS5hZG1pbi5pbmZvTW9kYWxUaXRsZScsXG4gICAgICAgICAgICBtZXNzYWdlOiAnQHByeS5hZG1pbi5jbGFzc2VzLmNyZWF0ZUNsYXNzTW9kYWxNZXNzYWdlJyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFt7IGlkOiAwLCBsYWJlbDogJ0BwcnkuYWRtaW4uY2xvc2VNb2RhbGUnIH1dXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnByeURpYWxvZy5vcGVuKFByeURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIHsgZGF0YSB9KTtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hZG1pblNlcnZpY2Uuc2F2ZUNsYXNzKGFjdGlvbi5jbGFzcykucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNsYXNzU3VjY2Vzcyh7IHJvdXRlOiBhY3Rpb24ucm91dGUgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNsYXNzRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzYXZlSW50ZXJDbGFzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUludGVyQ2xhc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogYWN0aW9uLnJvdXRlIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgc2F2ZUNsYXNzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNsYXNzU3VjY2VzcyksXG4gICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24ucm91dGUgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzYXZlQXR0cmlidXRlRm9yQ2xhc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5zYXZlQXR0cmlidXRlRm9yQ2xhc3MoYWN0aW9uLmNsYXNzSWQsIGFjdGlvbi5hdHRyaWJ1dGUpLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzc1N1Y2Nlc3MoeyByb3V0ZTogYWN0aW9uLnJvdXRlIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0FkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzc0ZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNhdmVBdHRyaWJ1dGVGb3JDbGFzc1N1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzc1N1Y2Nlc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogYWN0aW9uLnJvdXRlIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlQ2xhc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUNsYXNzKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmRlbGV0ZUNsYXNzKGFjdGlvbi5pZCkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQ2xhc3NTdWNjZXNzKHsgcm91dGU6IGFjdGlvbi5yb3V0ZSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVDbGFzc0ZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZUNsYXNzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQ2xhc3NTdWNjZXNzKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBBZG1pbkNsYXNzQWN0aW9ucy51cGRhdGVUb29sYm94KCksXG4gICAgICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24ucm91dGUgfSksXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdhZGQnLFxuICAgICAgICAgICAgICAgIGljb246ICdhZGRfY29sdW1uJyxcbiAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2NsYXNzZXMnLFxuICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVBdHRyaWJ1dGVGb3JDbGFzcyksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLmFkbWluU2VydmljZS5kZWxldGVBdHRyaWJ1dGVGb3JDbGFzcyhhY3Rpb24uY2xhc3NJZCwgYWN0aW9uLmF0dHJJZCkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT5cbiAgICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2Vzcyh7XG4gICAgICAgICAgICAgIGNsYXNzSWQ6IGFjdGlvbi5jbGFzc0lkLFxuICAgICAgICAgICAgICBiYWNrUGF0aDogYWN0aW9uLmJhY2tQYXRoLFxuICAgICAgICAgICAgICBhZGRBdHRyUGF0aDogYWN0aW9uLmFkZEF0dHJQYXRoXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVBdHRyaWJ1dGVGb3JDbGFzc0ZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3NTdWNjZXNzKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBBZG1pbkNsYXNzQWN0aW9ucy51cGRhdGVUb29sYm94KCksXG4gICAgICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24uYmFja1BhdGggfSksXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdiYWNrJyxcbiAgICAgICAgICAgICAgICBpY29uOiAnYXJyb3dfYmFjaydcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24uYWRkQXR0clBhdGggfSksXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdhZGQnLFxuICAgICAgICAgICAgICAgIGljb246ICdhZGRfY29sdW1uJyxcbiAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2NsYXNzZXMnLFxuICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHNhdmVDYXRlZ29yeSQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNhdGVnb3J5KSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLnNhdmVDYXRlZ29yeShhY3Rpb24uY2F0ZWdvcnkpLnBpcGUoXG4gICAgICAgICAgbWFwKCgpID0+IEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeVN1Y2Nlc3MoKSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2F0ZWdvcnlGYWlsdXJlKHsgZXJyb3I6IGVycm9yIH0pXSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzYXZlQ2F0ZWdvcnlTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2F0ZWdvcnlTdWNjZXNzKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBDYXRlZ29yeUFjdGlvbnMubG9hZCgpO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgYmFjayQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuYmFjayksXG4gICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24ucGF0aCB9KTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIGNvbmZpcm1DbGFzc0RlbGV0aW9uJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuY29uZmlybUNsYXNzRGVsZXRpb24pLFxuICAgICAgICB0YXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGE6IFByeURpYWxvZ0NvbmZpcm1EYXRhID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdAcHJ5LmFkbWluLmNsYXNzZXMuZGVsZXRlQ2xhc3NDb25maXJtTWVzc2FnZScsXG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogMCxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0BwcnkuYWRtaW4udmFsaWRhdGUnLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVDbGFzcyh7IGlkOiBhY3Rpb24uaWQsIHJvdXRlOiBhY3Rpb24ucGF0aCB9KV1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgeyBpZDogMSwgbGFiZWw6ICdAcHJ5LmFkbWluLmNhbmNlbCcgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5wcnlEaWFsb2cub3BlbihQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LCB7IGRhdGEgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBjb25maXJtQXR0cmlidXRlRGVsZXRpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5jb25maXJtQXR0cmlidXRlRGVsZXRpb24pLFxuICAgICAgICB0YXAoKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGRhdGE6IFByeURpYWxvZ0NvbmZpcm1EYXRhID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdAcHJ5LmFkbWluLmRlbGV0ZUF0dHJpYnV0ZUNvbmZpcm1NZXNzYWdlJyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQHByeS5hZG1pbi52YWxpZGF0ZScsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3Moe1xuICAgICAgICAgICAgICAgICAgICBjbGFzc0lkOiBhY3Rpb24uY2xhc3NJZCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cklkOiBhY3Rpb24uYXR0cklkLFxuICAgICAgICAgICAgICAgICAgICBiYWNrUGF0aDogYWN0aW9uLmJhY2tQYXRoLFxuICAgICAgICAgICAgICAgICAgICBhZGRBdHRyUGF0aDogYWN0aW9uLmFkZEF0dHJQYXRoXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQHByeS5hZG1pbi5jYW5jZWwnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJ5RGlhbG9nLm9wZW4oUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgeyBkYXRhIH0pO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICB7IGRpc3BhdGNoOiBmYWxzZSB9XG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICBwcml2YXRlIGFkbWluU2VydmljZTogQWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcHJ5RGlhbG9nOiBQcnlEaWFsb2dTZXJ2aWNlXG4gICkge31cbn1cbiJdfQ==
139
+ }], ctorParameters: function () { return [{ type: i1.Actions }, { type: i2.AdminService }, { type: i3.PryDialogService }, { type: i2.AdminService }]; } });
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1oseUJBQXlCLEVBRzFCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBRzFELE1BQU0sT0FBTyxpQkFBaUI7SUE0TzVCLFlBQ1UsUUFBaUIsRUFDakIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsT0FBcUI7UUFIckIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBL08vQixtQkFBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsRUFDdkMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsT0FBTyxD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QUM7OEdBalBPLGlCQUFpQjtrSEFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIENhdGVnb3J5QWN0aW9ucyxcbiAgQ2xhc3NBY3Rpb25zLFxuICBQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LFxuICBQcnlEaWFsb2dDb25maXJtRGF0YSxcbiAgUHJ5RGlhbG9nU2VydmljZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hZG1pbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi9hZG1pbi1jbGFzcy5hY3Rpb25zJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkbWluQ2xhc3NFZmZlY3RzIHtcbiAgdXBkYXRlVG9vbGJveCQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMudXBkYXRlVG9vbGJveCksXG4gICAgICBtZXJnZU1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBbQ2xhc3NBY3Rpb25zLmxvYWQoKSwgQWRtaW5BY3Rpb25zLnNlbGVjdENvbXBvbmVudFR5cGUoeyBjb21wb25lbnRUeXBlOiBudWxsIH0pXTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHNhdmVDbGFzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNsYXNzKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKGFjdGlvbi5jbGFzcy5hdHRyaWJ1dGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGRhdGE6IFByeURpYWxvZ0NvbmZpcm1EYXRhID0ge1xuICAgICAgICAgICAgdGl0bGU6ICdAcHJ5LmFkbWluLmluZm9Nb2RhbFRpdGxlJyxcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdAcHJ5LmFkbWluLmNsYXNzZXMuY3JlYXRlQ2xhc3NNb2RhbE1lc3NhZ2UnLFxuICAgICAgICAgICAgYWN0aW9uczogW3sgaWQ6IDAsIGxhYmVsOiAnQHByeS5hZG1pbi5jbG9zZU1vZGFsZScgfV1cbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucHJ5RGlhbG9nLm9wZW4oUHJ5RGlhbG9nQ29uZmlybUNvbXBvbmVudCwgeyBkYXRhIH0pO1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmFkbWluU2VydmljZS5zYXZlQ2xhc3MoYWN0aW9uLmNsYXNzKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2xhc3NTdWNjZXNzKHsgcm91dGU6IGFjdGlvbi5yb3V0ZSB9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IFtBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2xhc3NGYWlsdXJlKHsgZXJyb3I6IGVycm9yIH0pXSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHNhdmVJbnRlckNsYXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5zYXZlSW50ZXJDbGFzcyksXG4gICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24ucm91dGUgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzYXZlQ2xhc3NTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2xhc3NTdWNjZXNzKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGFjdGlvbi5yb3V0ZSB9KTtcbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHNhdmVBdHRyaWJ1dGVGb3JDbGFzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUF0dHJpYnV0ZUZvckNsYXNzKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyhhY3Rpb24uY2xhc3NJZCwgYWN0aW9uLmF0dHJpYnV0ZSkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2Vzcyh7IHJvdXRlOiBhY3Rpb24ucm91dGUgfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUF0dHJpYnV0ZUZvckNsYXNzRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgc2F2ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUF0dHJpYnV0ZUZvckNsYXNzU3VjY2VzcyksXG4gICAgICBtYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBhY3Rpb24ucm91dGUgfSk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBkZWxldGVDbGFzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQ2xhc3MpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2UuZGVsZXRlQ2xhc3MoYWN0aW9uLmlkKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVDbGFzc1N1Y2Nlc3MoeyByb3V0ZTogYWN0aW9uLnJvdXRlIH0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0FkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUNsYXNzRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlQ2xhc3NTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVDbGFzc1N1Y2Nlc3MpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnVwZGF0ZVRvb2xib3goKSxcbiAgICAgICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGFjdGlvbi5yb3V0ZSB9KSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ2FkZCcsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2FkZF9jb2x1bW4nLFxuICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzKSxcbiAgICAgIG1lcmdlTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMuYWRtaW5TZXJ2aWNlLmRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzKGFjdGlvbi5jbGFzc0lkLCBhY3Rpb24uYXR0cklkKS5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PlxuICAgICAgICAgICAgQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3NTdWNjZXNzKHtcbiAgICAgICAgICAgICAgY2xhc3NJZDogYWN0aW9uLmNsYXNzSWQsXG4gICAgICAgICAgICAgIGJhY2tQYXRoOiBhY3Rpb24uYmFja1BhdGgsXG4gICAgICAgICAgICAgIGFkZEF0dHJQYXRoOiBhY3Rpb24uYWRkQXR0clBhdGhcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0FkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUF0dHJpYnV0ZUZvckNsYXNzRmFpbHVyZSh7IGVycm9yOiBlcnJvciB9KV0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3NTdWNjZXNzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVBdHRyaWJ1dGVGb3JDbGFzc1N1Y2Nlc3MpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnVwZGF0ZVRvb2xib3goKSxcbiAgICAgICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGFjdGlvbi5iYWNrUGF0aCB9KSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ2JhY2snLFxuICAgICAgICAgICAgICAgIGljb246ICdhcnJvd19iYWNrJ1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGFjdGlvbi5hZGRBdHRyUGF0aCB9KSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ2FkZCcsXG4gICAgICAgICAgICAgICAgaWNvbjogJ2FkZF9jb2x1bW4nLFxuICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnY2xhc3NlcycsXG4gICAgICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgc2F2ZUNhdGVnb3J5JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2F0ZWdvcnkpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5hZG1pblNlcnZpY2Uuc2F2ZUNhdGVnb3J5KGFjdGlvbi5jYXRlZ29yeSkucGlwZShcbiAgICAgICAgICBtYXAoKCkgPT4gQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUNhdGVnb3J5U3VjY2VzcygpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW0FkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeUZhaWx1cmUoeyBlcnJvcjogZXJyb3IgfSldKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNhdmVDYXRlZ29yeVN1Y2Nlc3MkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeVN1Y2Nlc3MpLFxuICAgICAgbWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIENhdGVnb3J5QWN0aW9ucy5sb2FkKCk7XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBiYWNrJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5iYWNrKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIHJldHVybiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IGFjdGlvbi5wYXRoIH0pO1xuICAgICAgfSlcbiAgICApXG4gICk7XG5cbiAgY29uZmlybUNsYXNzRGVsZXRpb24kID0gY3JlYXRlRWZmZWN0KFxuICAgICgpID0+XG4gICAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICAgIG9mVHlwZShBZG1pbkNsYXNzQWN0aW9ucy5jb25maXJtQ2xhc3NEZWxldGlvbiksXG4gICAgICAgIHRhcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YTogUHJ5RGlhbG9nQ29uZmlybURhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0BwcnkuYWRtaW4uY2xhc3Nlcy5kZWxldGVDbGFzc0NvbmZpcm1NZXNzYWdlJyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQHByeS5hZG1pbi52YWxpZGF0ZScsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW0FkbWluQ2xhc3NBY3Rpb25zLmRlbGV0ZUNsYXNzKHsgaWQ6IGFjdGlvbi5pZCwgcm91dGU6IGFjdGlvbi5wYXRoIH0pXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7IGlkOiAxLCBsYWJlbDogJ0BwcnkuYWRtaW4uY2FuY2VsJyB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnByeURpYWxvZy5vcGVuKFByeURpYWxvZ0NvbmZpcm1Db21wb25lbnQsIHsgZGF0YSB9KTtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGNvbmZpcm1BdHRyaWJ1dGVEZWxldGlvbiQgPSBjcmVhdGVFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgICAgb2ZUeXBlKEFkbWluQ2xhc3NBY3Rpb25zLmNvbmZpcm1BdHRyaWJ1dGVEZWxldGlvbiksXG4gICAgICAgIHRhcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YTogUHJ5RGlhbG9nQ29uZmlybURhdGEgPSB7XG4gICAgICAgICAgICB0aXRsZTogJ0BwcnkuYWRtaW4uZGVsZXRlQXR0cmlidXRlQ29uZmlybU1lc3NhZ2UnLFxuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IDAsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LmFkbWluLnZhbGlkYXRlJyxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICBBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzSWQ6IGFjdGlvbi5jbGFzc0lkLFxuICAgICAgICAgICAgICAgICAgICBhdHRySWQ6IGFjdGlvbi5hdHRySWQsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tQYXRoOiBhY3Rpb24uYmFja1BhdGgsXG4gICAgICAgICAgICAgICAgICAgIGFkZEF0dHJQYXRoOiBhY3Rpb24uYWRkQXR0clBhdGhcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdAcHJ5LmFkbWluLmNhbmNlbCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5wcnlEaWFsb2cub3BlbihQcnlEaWFsb2dDb25maXJtQ29tcG9uZW50LCB7IGRhdGEgfSk7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIHsgZGlzcGF0Y2g6IGZhbHNlIH1cbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgYWRtaW5TZXJ2aWNlOiBBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBZG1pblNlcnZpY2VcbiAgKSB7fVxufVxuIl19
@@ -40,4 +40,4 @@ export const classReducer = createReducer(initialClassState, on(AdminClassAction
40
40
  ...state,
41
41
  selectedAttribute: undefined
42
42
  })));
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBVXRELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFvQjtJQUNoRCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUN2QyxpQkFBaUIsRUFDakIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsR0FBRyxLQUFLO0lBQ1IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLO0NBQzVCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELEdBQUcsS0FBSztJQUNSLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELEdBQUcsS0FBSztJQUNSLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxZQUFZO0NBQ3ZDLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsR0FBRyxLQUFLO0lBQ1IsaUJBQWlCLEVBQUUsU0FBUztDQUM3QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUs7Q0FDekIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsU0FBUztDQUN0QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLEdBQUcsS0FBSztJQUNSLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEQsR0FBRyxLQUFLO0lBQ1IsVUFBVSxFQUFFLFNBQVM7Q0FDdEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxHQUFHLEtBQUs7SUFDUixpQkFBaUIsRUFBRSxTQUFTO0NBQzdCLENBQUMsQ0FBQyxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEF0dHJpYnV0ZUV4dGVuZGVkLCBDbGFzcyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzQWN0aW9ucyB9IGZyb20gJy4vYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBjbGFzc2VzRmVhdHVyZUtleSA9ICdAcHJ5L2FkbWluL2NsYXNzZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkbWluQ2xhc3NTdGF0ZSB7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIHNlbGVjdGVkQ2xhc3M/OiBDbGFzcztcbiAgc2VsZWN0ZWRBdHRyaWJ1dGU/OiBBdHRyaWJ1dGVFeHRlbmRlZDtcbiAgaW50ZXJDbGFzcz86IENsYXNzO1xuICBvcGVuTW9kYWw6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsQ2xhc3NTdGF0ZTogQWRtaW5DbGFzc1N0YXRlID0ge1xuICBsb2FkaW5nOiBmYWxzZSxcbiAgb3Blbk1vZGFsOiBmYWxzZVxufTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzUmVkdWNlciA9IGNyZWF0ZVJlZHVjZXIoXG4gIGluaXRpYWxDbGFzc1N0YXRlLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5zZWxlY3RDbGFzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc2VsZWN0ZWRDbGFzczogYWN0aW9uLmNsYXp6XG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMudW5zZWxlY3RDbGFzcywgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc2VsZWN0ZWRDbGFzczogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuc2VsZWN0QXR0cmlidXRlLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZEF0dHJpYnV0ZTogYWN0aW9uLmF0dHJFeHRlbmRlZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnVuc2VsZWN0QXR0cmlidXRlLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZEF0dHJpYnV0ZTogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuc2F2ZUludGVyQ2xhc3MsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGludGVyQ2xhc3M6IGFjdGlvbi5jbGFzc1xuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDbGFzc1N1Y2Nlc3MsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGludGVyQ2xhc3M6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLmJhY2ssIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpbnRlckNsYXNzOiB1bmRlZmluZWQsXG4gICAgc2VsZWN0ZWRDbGFzczogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMucmVzZXRJbnRlckNsYXNzLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaW50ZXJDbGFzczogdW5kZWZpbmVkXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMub3Blbk1vZGFsLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgb3Blbk1vZGFsOiB0cnVlXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuY2xvc2VNb2RhbCwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG9wZW5Nb2RhbDogZmFsc2VcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5kZWxldGVBdHRyaWJ1dGVGb3JDbGFzcywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQXR0cmlidXRlOiB1bmRlZmluZWRcbiAgfSkpXG4pO1xuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tY2xhc3MucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9zdG9yZS9hZG1pbi1jbGFzcy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBVXRELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFvQjtJQUNoRCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUN2QyxpQkFBaUIsRUFDakIsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsR0FBRyxLQUFLO0lBQ1IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLO0NBQzVCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELEdBQUcsS0FBSztJQUNSLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELEdBQUcsS0FBSztJQUNSLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxZQUFZO0NBQ3ZDLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUQsR0FBRyxLQUFLO0lBQ1IsaUJBQWlCLEVBQUUsU0FBUztDQUM3QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RCxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsTUFBTSxDQUFDLEtBQUs7Q0FDekIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxHQUFHLEtBQUs7SUFDUixVQUFVLEVBQUUsU0FBUztDQUN0QixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLEdBQUcsS0FBSztJQUNSLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEQsR0FBRyxLQUFLO0lBQ1IsVUFBVSxFQUFFLFNBQVM7Q0FDdEIsQ0FBQyxDQUFDLEVBQ0gsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxHQUFHLEtBQUs7SUFDUixTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDLENBQUMsRUFDSCxFQUFFLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLEdBQUcsS0FBSztJQUNSLFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUMsQ0FBQyxFQUNILEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxHQUFHLEtBQUs7SUFDUixpQkFBaUIsRUFBRSxTQUFTO0NBQzdCLENBQUMsQ0FBQyxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZWR1Y2VyLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEFzc29jaWF0aW9ucywgQXR0cmlidXRlRXh0ZW5kZWQsIENsYXNzfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc0FjdGlvbnMgfSBmcm9tICcuL2FkbWluLWNsYXNzLmFjdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgY2xhc3Nlc0ZlYXR1cmVLZXkgPSAnQHByeS9hZG1pbi9jbGFzc2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBBZG1pbkNsYXNzU3RhdGUge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBzZWxlY3RlZENsYXNzPzogQ2xhc3M7XG4gIHNlbGVjdGVkQXR0cmlidXRlPzogQXR0cmlidXRlRXh0ZW5kZWQ7XG4gIGludGVyQ2xhc3M/OiBDbGFzcztcbiAgb3Blbk1vZGFsOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbENsYXNzU3RhdGU6IEFkbWluQ2xhc3NTdGF0ZSA9IHtcbiAgbG9hZGluZzogZmFsc2UsXG4gIG9wZW5Nb2RhbDogZmFsc2Vcbn07XG5cbmV4cG9ydCBjb25zdCBjbGFzc1JlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKFxuICBpbml0aWFsQ2xhc3NTdGF0ZSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuc2VsZWN0Q2xhc3MsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQ2xhc3M6IGFjdGlvbi5jbGF6elxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnVuc2VsZWN0Q2xhc3MsIChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHNlbGVjdGVkQ2xhc3M6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnNlbGVjdEF0dHJpYnV0ZSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc2VsZWN0ZWRBdHRyaWJ1dGU6IGFjdGlvbi5hdHRyRXh0ZW5kZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy51bnNlbGVjdEF0dHJpYnV0ZSwgKHN0YXRlLCBhY3Rpb24pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgc2VsZWN0ZWRBdHRyaWJ1dGU6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpbnRlckNsYXNzOiBhY3Rpb24uY2xhc3NcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5zYXZlQ2xhc3NTdWNjZXNzLCAoc3RhdGUsIGFjdGlvbikgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBpbnRlckNsYXNzOiB1bmRlZmluZWRcbiAgfSkpLFxuICBvbihBZG1pbkNsYXNzQWN0aW9ucy5iYWNrLCAoc3RhdGUpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaW50ZXJDbGFzczogdW5kZWZpbmVkLFxuICAgIHNlbGVjdGVkQ2xhc3M6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLnJlc2V0SW50ZXJDbGFzcywgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGludGVyQ2xhc3M6IHVuZGVmaW5lZFxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLm9wZW5Nb2RhbCwgKHN0YXRlKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIG9wZW5Nb2RhbDogdHJ1ZVxuICB9KSksXG4gIG9uKEFkbWluQ2xhc3NBY3Rpb25zLmNsb3NlTW9kYWwsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBvcGVuTW9kYWw6IGZhbHNlXG4gIH0pKSxcbiAgb24oQWRtaW5DbGFzc0FjdGlvbnMuZGVsZXRlQXR0cmlidXRlRm9yQ2xhc3MsIChzdGF0ZSkgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzZWxlY3RlZEF0dHJpYnV0ZTogdW5kZWZpbmVkXG4gIH0pKVxuKTtcbiJdfQ==
@@ -63,6 +63,7 @@ export class AdminDatasetComponent {
63
63
  this.labelDatasetSelected = $event;
64
64
  }
65
65
  selectDataset(dataset) {
66
+ this.store.dispatch(AdminActions.fetchDatasetAssociations({ id: dataset.id }));
66
67
  this.store.dispatch(DataSourceActions.dataset.selectDataset({ dataset }));
67
68
  this.store.dispatch(AdminActions.selectComponentType({ componentType: 'AdminSelectDatasetComponent' }));
68
69
  }
@@ -76,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
76
77
  type: ViewChild,
77
78
  args: ['input']
78
79
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tZGF0YXNldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZGF0YXNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRSxPQUFPLEVBQ0wsWUFBWSxFQUVaLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxZQUNVLEtBQTZCLEVBQzdCLGdCQUFnQyxFQUNoQyxNQUFjLEVBQ2QsS0FBcUI7UUFIckIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFkL0IsZUFBVSxHQUFJLE1BQU0sQ0FBQztRQUNyQixrQkFBYSxHQUFJLEtBQUssQ0FBQztRQUN2QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUNsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBVzFCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxL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QUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7OEdBMUVVLHFCQUFxQjtrR0FBckIscUJBQXFCLHlKQ25CbEMsZ2hGQXdFQTs7MkZEckRhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxtQkFBbUI7MktBSVQsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzc0FjdGlvbnMsXG4gIERhdGFzZXQsXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBEYXRhU291cmNlU3RhdGUsXG4gIFByeUkxOG5TZXJ2aWNlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IElDb25maWdIZWFkZXIgfSBmcm9tICcuLi9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvbGlzdC1tZXRhZGF0YS9wcnktbGlzdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRtaW4tZGF0YXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1kYXRhc2V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkRhdGFzZXRDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZjtcbiAgZGF0YXNldExpc3QkOiBPYnNlcnZhYmxlPERhdGFzZXRbXT47XG4gIHNlbGVjdGVkRGF0YXNldCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgc29ydEFjdGl2ZT8gPSAnbmFtZSc7XG4gIHNvcnREaXJlY3Rpb24/ID0gJ2FzYyc7XG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgY29uZmlnSGVhZGVyOiBBcnJheTxJQ29uZmlnSGVhZGVyPjtcbiAgbGFiZWxEYXRhc2V0U2VsZWN0ZWQ6IHN0cmluZyA9ICcnO1xuICBlZGl0T3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdmFsaWRhdGVBY3Rpb246ICgpID0+IHZvaWQ7XG4gIGNhbmNlbEFjdGlvbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxEYXRhU291cmNlU3RhdGU+LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnZhbGlkYXRlQWN0aW9uID0gKCkgPT4gdGhpcy52YWxpZGF0ZU5hbWUodGhpcy5sYWJlbERhdGFzZXRTZWxlY3RlZCk7XG4gICAgdGhpcy5jYW5jZWxBY3Rpb24gPSAoKSA9PiB0aGlzLmNhbmNlbEVkaXRpb24oKTtcbiAgICB0aGlzLmNvbmZpZ0hlYWRlciA9IFtcbiAgICAgIHsgaGVhZGVyVHlwZTogJ2xhYmVsJywgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LmFkbWluLmRhdGFzZXQubmFtZScpIH0sXG4gICAgICB7IGhlYWRlclR5cGU6ICdsYWJlbCcsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5hZG1pbi5kYXRhc2V0Lm9DbGFzcycpIH0sXG4gICAgICB7IGhlYWRlclR5cGU6ICdsYWJlbCcsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5hZG1pbi5kYXRhc2V0LnR5cGUnKSB9XG4gICAgXTtcbiAgICB0aGlzLmRhdGFzZXRMaXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhc2V0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuc2VsZWN0ZWREYXRhc2V0SWQpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSk7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIEFkbWluQWN0aW9ucy5tYWluQWN0aW9ucyh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb246IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQub3Blbk5ld0RhdGFzZXQoeyByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgbGFiZWw6ICdhZGQnLFxuICAgICAgICAgICAgaWNvbjogJ2FkZF9jb2x1bW4nLFxuICAgICAgICAgICAgbW9kdWxlQWNjZXNzOiAnYWRtaW4nLFxuICAgICAgICAgICAgcGFnZUFjY2VzczogJ21ldGFkYXRhX3J1bGVzJyxcbiAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2FuY2VsRWRpdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUVkaXRpb25EYXRhc2V0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVuc2VsZWN0RGF0YXNldCgpKTtcbiAgfVxuXG4gIHRvZ2dsZUVkaXRpb25EYXRhc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdE9wZW5lZCA9ICF0aGlzLmVkaXRPcGVuZWQ7XG4gICAgaWYgKHRoaXMuZWRpdE9wZW5lZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSwgMTApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlTmFtZShuZXdMYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVFZGl0aW9uRGF0YXNldCgpO1xuICB9XG5cbiAgY2hhbmdlVmFsdWUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmxhYmVsRGF0YXNldFNlbGVjdGVkID0gJGV2ZW50O1xuICB9XG5cbiAgc2VsZWN0RGF0YXNldChkYXRhc2V0OiBEYXRhc2V0KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnNlbGVjdERhdGFzZXQoeyBkYXRhc2V0IH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQWN0aW9ucy5zZWxlY3RDb21wb25lbnRUeXBlKHsgY29tcG9uZW50VHlwZTogJ0FkbWluU2VsZWN0RGF0YXNldENvbXBvbmVudCcgfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1iYXNlLWNvbnRhaW5lclwiPlxuICA8aDEgY2xhc3M9XCJhLWgxXCI+e3sgJ0BwcnkuYWRtaW4uZGF0YXNldC50aXRsZScgfCBpMThuIH19PC9oMT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGFzZXRMaXN0JCB8IGFzeW5jIGFzIGRhdGFzZXRMaXN0XCI+XG4gICAgPHRhYmxlXG4gICAgICBjbGFzcz1cImEtdGFibGVcIlxuICAgICAgcHJ5U29ydFRhYmxlXG4gICAgICBwcnlTb3J0QWN0aXZlPVwibmFtZVwiXG4gICAgICBwcnlTb3J0RGlyZWN0aW9uPVwiYXNjXCJcbiAgICAgIChwcnlTb3J0Q2hhbmdlKT1cInNvcnRBY3RpdmUgPSAkZXZlbnQuYWN0aXZlOyBzb3J0RGlyZWN0aW9uID0gJGV2ZW50LmRpcmVjdGlvblwiXG4gICAgPlxuICAgICAgPGNhcHRpb24+XG4gICAgICAgIHt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4uZGF0YXNldC50aXRsZScgfCBpMThuXG4gICAgICAgIH19LFxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFjdGlvbi5zb3J0YWJsZUNvbHVtbkhlYWRlcicgfCBpMThuXG4gICAgICAgIH19XG4gICAgICA8L2NhcHRpb24+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+PC90aD5cbiAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbmYgb2YgY29uZmlnSGVhZGVyXCIgW3ByeVNvcnRIZWFkZXJdPVwiY29uZi5sYWJlbFwiPnt7IGNvbmYubGFiZWwgfX08L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keT5cbiAgICAgICAgPHRyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGFzZXQgb2YgZGF0YXNldExpc3QgfCBwcnlTb3J0RGF0YTogc29ydEFjdGl2ZSA6IHNvcnREaXJlY3Rpb25cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3REYXRhc2V0KGRhdGFzZXQpXCJcbiAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwiKHNlbGVjdGVkRGF0YXNldCQgfCBhc3luYykgPT09IGRhdGFzZXQuaWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHRkIGNsYXNzPVwidmlldy1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGlkPVwiYnV0dG9uLWRhdGFzZXQtICsge3sgZGF0YXNldC5pZCB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIlxuICAgICAgICAgICAgICB0aXRsZT1cInt7ICdAcHJ5LmFjdGlvbi52aWV3RGV0YWlscycgfCBpMThuIH19XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIoc2VsZWN0ZWREYXRhc2V0JCB8IGFzeW5jKSA9PT0gZGF0YXNldC5pZFwiXG4gICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXBcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIncGFuZWwtZGF0YXNldC0nICsgZGF0YXNldC5pZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyBkYXRhc2V0Lm5hbWUgfX0sIHt7ICdAcHJ5LmFjdGlvbi52aWV3RGV0YWlscycgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImV5ZVwiIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+e3sgZGF0YXNldC5uYW1lIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgZGF0YXNldC5vQ2xhc3MgfCB0cmFuc2xhdGVJZDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmMgfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyAnQHByeS5hZG1pbi5kYXRhc2V0LicgKyBkYXRhc2V0LnR5cGUgfCBpMThuIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPHByeS1tb2RhbFxuICBbdGl0bGVNb2RhbF09XCInQHByeS50b29sYm94LnJlbmFtZScgfCBpMThuXCJcbiAgW3ZhbGlkYXRlTGFiZWxdPVwiJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jaGVjaycgfCBpMThuXCJcbiAgW3ZhbGlkYXRlQWN0aW9uXT1cInZhbGlkYXRlQWN0aW9uXCJcbiAgW2NhbmNlbExhYmVsXT1cIidAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4blwiXG4gIFtjYW5jZWxBY3Rpb25dPVwiY2FuY2VsQWN0aW9uXCJcbiAgW29wZW5lZF09XCJ0aGlzLmVkaXRPcGVuZWRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZmllbGRfX2lucHV0XCI+XG4gICAgPHNwYW4+e3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5uYW1lJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgPGlucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwidmFsaWRhdGVOYW1lKGlucHV0LnZhbHVlKVwiXG4gICAgICBbbmdNb2RlbF09XCJsYWJlbERhdGFzZXRTZWxlY3RlZFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICNpbnB1dFxuICAgIC8+XG4gIDwvZGl2PlxuPC9wcnktbW9kYWw+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tZGF0YXNldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZGF0YXNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRSxPQUFPLEVBQ0wsWUFBWSxFQUVaLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxZQUNVLEtBQTZCLEVBQzdCLGdCQUFnQyxFQUNoQyxNQUFjLEVBQ2QsS0FBcUI7UUFIckIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDN0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtRQUNoQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFkL0IsZUFBVSxHQUFJLE1BQU0sQ0FBQztRQUNyQixrQkFBYSxHQUFJLEtBQUssQ0FBQztRQUN2QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUNsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBVzFCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxL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QUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFHLENBQUM7OEdBM0VVLHFCQUFxQjtrR0FBckIscUJBQXFCLHlKQ25CbEMsZ2hGQXdFQTs7MkZEckRhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDRSxtQkFBbUI7MktBSVQsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBDbGFzc0FjdGlvbnMsXG4gIERhdGFzZXQsXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBEYXRhU291cmNlU3RhdGUsXG4gIFByeUkxOG5TZXJ2aWNlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IElDb25maWdIZWFkZXIgfSBmcm9tICcuLi9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvbGlzdC1tZXRhZGF0YS9wcnktbGlzdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRtaW4tZGF0YXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1kYXRhc2V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkRhdGFzZXRDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZjtcbiAgZGF0YXNldExpc3QkOiBPYnNlcnZhYmxlPERhdGFzZXRbXT47XG4gIHNlbGVjdGVkRGF0YXNldCQ6IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgc29ydEFjdGl2ZT8gPSAnbmFtZSc7XG4gIHNvcnREaXJlY3Rpb24/ID0gJ2FzYyc7XG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgY29uZmlnSGVhZGVyOiBBcnJheTxJQ29uZmlnSGVhZGVyPjtcbiAgbGFiZWxEYXRhc2V0U2VsZWN0ZWQ6IHN0cmluZyA9ICcnO1xuICBlZGl0T3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgdmFsaWRhdGVBY3Rpb246ICgpID0+IHZvaWQ7XG4gIGNhbmNlbEFjdGlvbjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxEYXRhU291cmNlU3RhdGU+LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQubG9hZERhdGFzZXQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcbiAgICB0aGlzLnZhbGlkYXRlQWN0aW9uID0gKCkgPT4gdGhpcy52YWxpZGF0ZU5hbWUodGhpcy5sYWJlbERhdGFzZXRTZWxlY3RlZCk7XG4gICAgdGhpcy5jYW5jZWxBY3Rpb24gPSAoKSA9PiB0aGlzLmNhbmNlbEVkaXRpb24oKTtcbiAgICB0aGlzLmNvbmZpZ0hlYWRlciA9IFtcbiAgICAgIHsgaGVhZGVyVHlwZTogJ2xhYmVsJywgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LmFkbWluLmRhdGFzZXQubmFtZScpIH0sXG4gICAgICB7IGhlYWRlclR5cGU6ICdsYWJlbCcsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5hZG1pbi5kYXRhc2V0Lm9DbGFzcycpIH0sXG4gICAgICB7IGhlYWRlclR5cGU6ICdsYWJlbCcsIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS5hZG1pbi5kYXRhc2V0LnR5cGUnKSB9XG4gICAgXTtcbiAgICB0aGlzLmRhdGFzZXRMaXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZGF0YXNldHMpO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhc2V0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuc2VsZWN0ZWREYXRhc2V0SWQpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSk7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIEFkbWluQWN0aW9ucy5tYWluQWN0aW9ucyh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb246IERhdGFTb3VyY2VBY3Rpb25zLmRhdGFzZXQub3Blbk5ld0RhdGFzZXQoeyByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgbGFiZWw6ICdhZGQnLFxuICAgICAgICAgICAgaWNvbjogJ2FkZF9jb2x1bW4nLFxuICAgICAgICAgICAgbW9kdWxlQWNjZXNzOiAnYWRtaW4nLFxuICAgICAgICAgICAgcGFnZUFjY2VzczogJ21ldGFkYXRhX3J1bGVzJyxcbiAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2FuY2VsRWRpdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUVkaXRpb25EYXRhc2V0KCk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVuc2VsZWN0RGF0YXNldCgpKTtcbiAgfVxuXG4gIHRvZ2dsZUVkaXRpb25EYXRhc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdE9wZW5lZCA9ICF0aGlzLmVkaXRPcGVuZWQ7XG4gICAgaWYgKHRoaXMuZWRpdE9wZW5lZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSwgMTApO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlTmFtZShuZXdMYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVFZGl0aW9uRGF0YXNldCgpO1xuICB9XG5cbiAgY2hhbmdlVmFsdWUoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmxhYmVsRGF0YXNldFNlbGVjdGVkID0gJGV2ZW50O1xuICB9XG5cbiAgc2VsZWN0RGF0YXNldChkYXRhc2V0OiBEYXRhc2V0KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMuZmV0Y2hEYXRhc2V0QXNzb2NpYXRpb25zKHsgaWQ6IGRhdGFzZXQuaWQgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5zZWxlY3REYXRhc2V0KHsgZGF0YXNldCB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMuc2VsZWN0Q29tcG9uZW50VHlwZSh7IGNvbXBvbmVudFR5cGU6ICdBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQnIH0pKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tYmFzZS1jb250YWluZXJcIj5cbiAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4biB9fTwvaDE+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhc2V0TGlzdCQgfCBhc3luYyBhcyBkYXRhc2V0TGlzdFwiPlxuICAgIDx0YWJsZVxuICAgICAgY2xhc3M9XCJhLXRhYmxlXCJcbiAgICAgIHByeVNvcnRUYWJsZVxuICAgICAgcHJ5U29ydEFjdGl2ZT1cIm5hbWVcIlxuICAgICAgcHJ5U29ydERpcmVjdGlvbj1cImFzY1wiXG4gICAgICAocHJ5U29ydENoYW5nZSk9XCJzb3J0QWN0aXZlID0gJGV2ZW50LmFjdGl2ZTsgc29ydERpcmVjdGlvbiA9ICRldmVudC5kaXJlY3Rpb25cIlxuICAgID5cbiAgICAgIDxjYXB0aW9uPlxuICAgICAgICB7e1xuICAgICAgICAgICdAcHJ5LmFkbWluLmRhdGFzZXQudGl0bGUnIHwgaTE4blxuICAgICAgICB9fSxcbiAgICAgICAge3tcbiAgICAgICAgICAnQHByeS5hY3Rpb24uc29ydGFibGVDb2x1bW5IZWFkZXInIHwgaTE4blxuICAgICAgICB9fVxuICAgICAgPC9jYXB0aW9uPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHI+XG4gICAgICAgICAgPHRoPjwvdGg+XG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb25mIG9mIGNvbmZpZ0hlYWRlclwiIFtwcnlTb3J0SGVhZGVyXT1cImNvbmYubGFiZWxcIj57eyBjb25mLmxhYmVsIH19PC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHk+XG4gICAgICAgIDx0clxuICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRhc2V0IG9mIGRhdGFzZXRMaXN0IHwgcHJ5U29ydERhdGE6IHNvcnRBY3RpdmUgOiBzb3J0RGlyZWN0aW9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0YXNldChkYXRhc2V0KVwiXG4gICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cIihzZWxlY3RlZERhdGFzZXQkIHwgYXN5bmMpID09PSBkYXRhc2V0LmlkXCJcbiAgICAgICAgPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cInZpZXctZGV0YWlsc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBpZD1cImJ1dHRvbi1kYXRhc2V0LSArIHt7IGRhdGFzZXQuaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQHByeS5hY3Rpb24udmlld0RldGFpbHMnIHwgaTE4biB9fVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiKHNlbGVjdGVkRGF0YXNldCQgfCBhc3luYykgPT09IGRhdGFzZXQuaWRcIlxuICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3BhbmVsLWRhdGFzZXQtJyArIGRhdGFzZXQuaWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgZGF0YXNldC5uYW1lIH19LCB7eyAnQHByeS5hY3Rpb24udmlld0RldGFpbHMnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJleWVcIiBbd2lkdGhdPVwiMTVcIiBbaGVpZ2h0XT1cIjE1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFzZXQubmFtZSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFzZXQub0NsYXNzIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgJ0BwcnkuYWRtaW4uZGF0YXNldC4nICsgZGF0YXNldC50eXBlIHwgaTE4biB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxwcnktbW9kYWxcbiAgW3RpdGxlTW9kYWxdPVwiJ0BwcnkudG9vbGJveC5yZW5hbWUnIHwgaTE4blwiXG4gIFt2YWxpZGF0ZUxhYmVsXT1cIidAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2hlY2snIHwgaTE4blwiXG4gIFt2YWxpZGF0ZUFjdGlvbl09XCJ2YWxpZGF0ZUFjdGlvblwiXG4gIFtjYW5jZWxMYWJlbF09XCInQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG5cIlxuICBbY2FuY2VsQWN0aW9uXT1cImNhbmNlbEFjdGlvblwiXG4gIFtvcGVuZWRdPVwidGhpcy5lZGl0T3BlbmVkXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZpZWxkX19pbnB1dFwiPlxuICAgIDxzcGFuPnt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QubmFtZScgfCBpMThuIH19PC9zcGFuPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgKGtleXVwLmVudGVyKT1cInZhbGlkYXRlTmFtZShpbnB1dC52YWx1ZSlcIlxuICAgICAgW25nTW9kZWxdPVwibGFiZWxEYXRhc2V0U2VsZWN0ZWRcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlVmFsdWUoJGV2ZW50KVwiXG4gICAgICAjaW5wdXRcbiAgICAvPlxuICA8L2Rpdj5cbjwvcHJ5LW1vZGFsPlxuIl19
@@ -7,6 +7,7 @@ import { MetadataActions } from '../../admin-metadata/store/metadata.action';
7
7
  import { MetadataSelectors } from '../../admin-metadata/store/metadata.selector';
8
8
  import { AdminDatasetActions } from '../store/admin-dataset.actions';
9
9
  import { AdminDatasetSelectors } from '../store/admin-dataset.selector';
10
+ import { AdminSelectors } from "../../../store/admin.selectors";
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@ngrx/store";
12
13
  import * as i2 from "@angular/router";
@@ -30,6 +31,7 @@ export class AdminSelectDatasetComponent extends SubscriptionnerDirective {
30
31
  this.store.dispatch(MetadataActions.loadMetadata());
31
32
  this.selectedDataset$ = this.store.select(DataSourceSelectors.selectedDataset);
32
33
  this.datasetMetadata$ = this.store.select(DataSourceSelectors.selectedDatasetMetadata);
34
+ this.associations$ = this.store.select(AdminSelectors.selectedAssociation);
33
35
  this.metadata$ = this.store.select(MetadataSelectors.metadata);
34
36
  this.editable$ = this.store.select(AdminDatasetSelectors.editable);
35
37
  this.compId = nextCompId++;
@@ -146,10 +148,10 @@ export class AdminSelectDatasetComponent extends SubscriptionnerDirective {
146
148
  this.tab = number;
147
149
  }
148
150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n [id]=\"'tab-' + compId + '-1'\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.id' | i18n }} :\n <strong>{{ dataset.id }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.name' | i18n }} :\n <strong>{{ dataset.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.oClass' | i18n }} :\n <strong>{{ dataset.oClass | translateId: { type: 'class', output: 'name' } | async }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.type' | i18n }} :\n <strong>{{ '@pry.admin.dataset.' + dataset.type | i18n }}</strong>\n </p>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of datasetMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.metadataDef.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"(editable$ | async) ?? false\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{\n '@pry.action.choiceInList' | i18n\n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslateIdPipe, name: "translateId" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
151
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of datasetMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.metadataDef.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"(editable$ | async) ?? false\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{\n '@pry.action.choiceInList' | i18n\n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
150
152
  }
151
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
152
154
  type: Component,
153
- args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n [id]=\"'tab-' + compId + '-1'\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.details' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.id' | i18n }} :\n <strong>{{ dataset.id }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.name' | i18n }} :\n <strong>{{ dataset.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.oClass' | i18n }} :\n <strong>{{ dataset.oClass | translateId: { type: 'class', output: 'name' } | async }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.dataset.type' | i18n }} :\n <strong>{{ '@pry.admin.dataset.' + dataset.type | i18n }}</strong>\n </p>\n </div>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of datasetMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.metadataDef.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"(editable$ | async) ?? false\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{\n '@pry.action.choiceInList' | i18n\n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
155
+ args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <div class=\"o-tabs\">\n <div class=\"o-tabs__list\" role=\"tablist\" [attr.aria-labelledby]=\"'tab-title-' + compId\">\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-0'\"\n [attr.aria-selected]=\"tab === 0\"\n [attr.tabindex]=\"tab === 0 ? 0 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-0'\"\n (click)=\"switch(0)\"\n >\n {{ '@pry.admin.metadata.title' | i18n }}\n </button>\n <button\n type=\"button\"\n class=\"o-tabs__list__btn\"\n role=\"tab\"\n [id]=\"'tab-' + compId + '-1'\"\n [attr.aria-selected]=\"tab === 1\"\n [attr.tabindex]=\"tab === 1 ? 1 : -1\"\n [attr.aria-controls]=\"'tabpanel-' + compId + '-1'\"\n (click)=\"switch(1)\"\n >\n {{ '@pry.admin.classes.associations' | i18n }}\n </button>\n </div>\n\n <div class=\"o-tabs__panels\">\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 0\"\n [id]=\"'tabpanel-' + compId + '-0'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-0'\"\n tabindex=\"0\"\n >\n <div class=\"o-tabs__panels__item__content o-tabs__panels__item__content--profil\">\n <div *ngFor=\"let metadata of datasetMetadata$ | async\">\n <div class=\"o-tabs__panels__item__content\">\n <div class=\"o-tabs__panels__item__content__actions\">\n <div class=\"o-tabs__panels__item__content__actions__text\">\n <span class=\"o-tabs__panels__item__content__actions__text__label\"\n >{{ metadata.metadataDef.name }} :</span\n >\n <span class=\"o-tabs__panels__item__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panels__item__content__actions__buttons\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.edit' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\"\n >{{ '@pry.action.delete' | i18n }} {{ metadata.metadataDef.name }}</span\n >\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <ng-container *ngIf=\"form.value.metadata\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"a-pry-select\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n [itemsAsOption]=\"true\"\n bindLabel=\"name\"\n [readonly]=\"(editable$ | async) ?? false\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid\n ? 'metadata-label metadata-error'\n : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid\n ? 'form-date-label form-date-error'\n : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{\n '@pry.action.choiceInList' | i18n\n }}</label>\n <pry-select\n id=\"list\"\n class=\"a-pry-select\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"\n ((editable$ | async) ? '@pry.admin.userInfo.editMetadata' : '@pry.admin.userInfo.addMetadata')\n | i18n\n \"\n ></button>\n </div>\n </form>\n </ng-container>\n </ng-container>\n </div>\n <div\n class=\"o-tabs__panels__item\"\n [class.is-hidden]=\"tab !== 1\"\n [id]=\"'tabpanel-' + compId + '-1'\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + compId + '-1'\"\n tabindex=\"1\"\n >\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <div *ngFor=\"let association of associations.associations\">\n <p class=\"a-p\">\n {{ '@pry.admin.classes.name' | i18n }} :\n <strong>{{ association.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.classes.type' | i18n }} :\n <strong>{{ association.type }}</strong>\n </p>\n </div>\n <p *ngIf=\"associations.usedElsewhere === true\" class=\"a-p\">\n <strong>{{ '@pry.admin.classes.usedElsewhere' | i18n }}</strong>\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
154
156
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.FormBuilder }]; } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tc2VsZWN0LWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BFLE9BQU8sRUFHTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBRW5CLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBRXhFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQU1uQixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsd0JBQXdCO2FBQ2hFLE9BQUUsR0FBRyw2QkFBNkIsQ0FBQztJQWMxQyxZQUNVLEtBQWlCLEVBQ2pCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixXQUF3QjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUxBLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBZmxDLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pCLDJCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUM1QixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBS2hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFTYixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFFM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FDeEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7b0JBQy9FLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztpQkFDdkIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixZQUFZLENBQUMsV0FBVyxDQUFDO29CQUN2QixPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7NEJBQzNELEtBQUssRUFBRSxNQUFNOzRCQUNiLElBQUksRUFBRSxNQUFNOzRCQUNaLFlBQVksRUFBRSxPQUFPOzRCQUNyQixVQUFVLEVBQUUsU0FBUzs0QkFDckIsWUFBWSxFQUFFLE9BQU87eUJBQ3RCO3dCQUNEOzRCQUNFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7Z0NBQzFELElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtnQ0FDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtnQ0FDekYsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7NkJBQ3BHLENBQUM7NEJBQ0YsS0FBSyxFQUFFLFFBQVE7NEJBQ2YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsWUFBWSxFQUFFLE9BQU87NEJBQ3JCLFVBQVUsRUFBRSxTQUFTOzRCQUNyQixZQUFZLEVBQUUsT0FBTzt5QkFDdEI7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUNILENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFDLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO3FCQUNsQixDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbkYsR0FBRyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNsQyxJQUFJLGtCQUFrQixHQUFHLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkUsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDdkIsT0FBTyxFQUFFO2dCQUNQO29CQUNFLE1BQU0sRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUN2RCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsWUFBWSxFQUFFLE9BQU87b0JBQ3JCLFVBQVUsRUFBRSxnQkFBZ0I7b0JBQzVCLFlBQVksRUFBRSxPQUFPO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDekIsSUFBSSxPQUFPLEdBQUc7Z0JBQ1osU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUM3QyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2FBQ2hDLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFtQjtRQUM5QixJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkc7aUJBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ2xFO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQXlCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQzlHLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLGVBQWdDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUM7UUFFckQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDcEIsQ0FBQzs4R0E5SlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsdUZDekJ4QyxrNFhBMlFBOzsyRkRsUGEsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGF0YXNldCxcbiAgRGF0YXNldE1ldGFkYXRhLFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgSU1ldGFkYXRhLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IE1ldGFkYXRhQWN0aW9ucyB9IGZyb20gJy4uLy4uL2FkbWluLW1ldGFkYXRhL3N0b3JlL21ldGFkYXRhLmFjdGlvbic7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL2FkbWluLW1ldGFkYXRhL3N0b3JlL21ldGFkYXRhLnNlbGVjdG9yJztcbmltcG9ydCB7IEFkbWluRGF0YXNldEFjdGlvbnMgfSBmcm9tICcuLi9zdG9yZS9hZG1pbi1kYXRhc2V0LmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5EYXRhc2V0U2VsZWN0b3JzIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tZGF0YXNldC5zZWxlY3Rvcic7XG5cbmxldCBuZXh0Q29tcElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLXNlbGVjdC1kYXRhc2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBpZCA9ICdBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQnO1xuICBjb21wSWQ6IG51bWJlcjtcbiAgc2VsZWN0ZWREYXRhc2V0JDogT2JzZXJ2YWJsZTxEYXRhc2V0IHwgbnVsbD47XG4gIHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgY3VycmVudFR5cGVUcmFuc2xhdGlvbiA9ICcnO1xuICB0YWI6IG51bWJlciA9IDA7XG4gIGRhdGFzZXRNZXRhZGF0YSQ6IE9ic2VydmFibGU8RGF0YXNldE1ldGFkYXRhW10+O1xuICBtZXRhZGF0YSQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBhdmFpbGFibGVNZXRhZGF0YSQ/OiBPYnNlcnZhYmxlPElNZXRhZGF0YVtdPjtcbiAgZm9ybTogRm9ybUdyb3VwO1xuICBpc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICBlZGl0YWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGRhdGFzZXRJZCA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRNZXRhZGF0YSgpKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YXNldCQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLnNlbGVjdGVkRGF0YXNldCk7XG4gICAgdGhpcy5kYXRhc2V0TWV0YWRhdGEkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5zZWxlY3RlZERhdGFzZXRNZXRhZGF0YSk7XG4gICAgdGhpcy5tZXRhZGF0YSQgPSB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSk7XG4gICAgdGhpcy5lZGl0YWJsZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pbkRhdGFzZXRTZWxlY3RvcnMuZWRpdGFibGUpO1xuICAgIHRoaXMuY29tcElkID0gbmV4dENvbXBJZCsrO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBtZXRhZGF0YTogW3t9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdmFsdWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignXlsrLV0/WzAtOV0qJCcpXV1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YXNldCQuc3Vic2NyaWJlKChkYXRhc2V0KSA9PiB7XG4gICAgICAgIGlmIChkYXRhc2V0KSB7XG4gICAgICAgICAgdGhpcy5kYXRhc2V0SWQgPSBkYXRhc2V0LmlkO1xuICAgICAgICAgIGNvbnN0IGVkaXRQYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnZGF0YXNldCcsICdlZGl0JywgZGF0YXNldC5pZF0sIHtcbiAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBlZGl0UGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdkYXRhc2V0JyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LmNvbmZpcm1EYXRhU291cmNlRGVsZXRpb24oe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBkYXRhc2V0LmlkLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZTogdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnZGF0YXNldCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgYWRkUm91dGU6IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ2RhdGFzZXQnLCAnbmV3J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KS50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgIGljb246ICdkZWxldGUnLFxuICAgICAgICAgICAgICAgICAgbW9kdWxlQWNjZXNzOiAnYWRtaW4nLFxuICAgICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2RhdGFzZXQnLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGFzZXQkLnN1YnNjcmliZSgoZGF0YXNldCkgPT4ge1xuICAgICAgICBpZiAoZGF0YXNldCkge1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTWV0YWRhdGEkPy5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IG1ldGFbMF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vbk1ldGFDaGFuZ2UobWV0YVswXSk7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHZhbHVlOiAnJyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuYXZhaWxhYmxlTWV0YWRhdGEkID0gY29tYmluZUxhdGVzdChbdGhpcy5kYXRhc2V0TWV0YWRhdGEkLCB0aGlzLm1ldGFkYXRhJF0pLnBpcGUoXG4gICAgICBtYXAoKFtkYXRhc2V0TWV0YWRhdGEsIG1ldGFEZWZzXSkgPT4ge1xuICAgICAgICBsZXQgZGF0YXNldE1ldGFkYXRhSWRzID0gZGF0YXNldE1ldGFkYXRhPy5tYXAoKHUpID0+IHUubWV0YWRhdGFEZWYuaWQpO1xuICAgICAgICByZXR1cm4gbWV0YURlZnMuZmlsdGVyKChtZXRhKSA9PiAhZGF0YXNldE1ldGFkYXRhSWRzPy5pbmNsdWRlcyhtZXRhLmlkKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9zZVBhbmVsKCkge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdkYXRhc2V0JywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVuc2VsZWN0RGF0YXNldCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQWN0aW9ucy50b2dnbGVQYW5lbCh7IHBhbmVsT3BlbjogZmFsc2UgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgIGxhYmVsOiAnYWRkJyxcbiAgICAgICAgICAgIGljb246ICdhZGRfY29sdW1uJyxcbiAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdtZXRhZGF0YV9ydWxlcycsXG4gICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFkZERhdGFzZXRNZXRhZGF0YSgpIHtcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmlzU3VibWl0dGVkID0gZmFsc2U7XG4gICAgICBsZXQgcGF5bG9hZCA9IHtcbiAgICAgICAgZGF0YXNldElkOiB0aGlzLmRhdGFzZXRJZCxcbiAgICAgICAgbWV0YWRhdGFJZDogdGhpcy5mb3JtLnZhbHVlWydtZXRhZGF0YSddWydpZCddLFxuICAgICAgICB2YWx1ZTogdGhpcy5mb3JtLnZhbHVlWyd2YWx1ZSddXG4gICAgICB9O1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkRhdGFzZXRBY3Rpb25zLmFkZERhdGFzZXRNZXRhZGF0YShwYXlsb2FkKSk7XG4gICAgfVxuICB9XG5cbiAgb25NZXRhQ2hhbmdlKG1ldGFkYXRhOiBJTWV0YWRhdGEpIHtcbiAgICBpZiAobWV0YWRhdGEpIHtcbiAgICAgIGlmIChtZXRhZGF0YS50eXBlID09PSAnSU5URUdFUicpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd2YWx1ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybignXlsrLV0/WzAtOV0qJCcpXSk7XG4gICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUgPT09ICdET1VCTEUnKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ1srLV0/KFswLTldKlsuXSk/WzAtOV0rJyldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGE6IERhdGFzZXRNZXRhZGF0YSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBBZG1pbkRhdGFzZXRBY3Rpb25zLmRlbGV0ZURhdGFzZXRNZXRhZGF0YSh7IGRhdGFzZXRJZDogdGhpcy5kYXRhc2V0SWQsIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhRGVmLmlkIH0pXG4gICAgKTtcbiAgfVxuXG4gIGVkaXRNZXRhZGF0YShjdXJyZW50TWV0YWRhdGE6IERhdGFzZXRNZXRhZGF0YSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5EYXRhc2V0QWN0aW9ucy5pc0VkaXRhYmxlKHsgZWRpdGFibGU6IHRydWUgfSkpO1xuICAgIGxldCB2YWx1ZSA9IGN1cnJlbnRNZXRhZGF0YS52YWx1ZTtcbiAgICBsZXQgZGF0YXNldE1ldGFkYXRhRGVmID0gY3VycmVudE1ldGFkYXRhLm1ldGFkYXRhRGVmO1xuXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgbWV0YWRhdGE6IGRhdGFzZXRNZXRhZGF0YURlZixcbiAgICAgIHZhbHVlOiB2YWx1ZVxuICAgIH0pO1xuICAgIHRoaXMub25NZXRhQ2hhbmdlKGRhdGFzZXRNZXRhZGF0YURlZik7XG4gIH1cblxuICBzd2l0Y2gobnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhYiA9IG51bWJlcjtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cInNlbGVjdGVkRGF0YXNldCQgfCBhc3luYyBhcyBkYXRhc2V0XCJcbiAgW2lkXT1cIidwYW5lbC1kYXRhc2V0LScgKyBkYXRhc2V0LmlkXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIididXR0b24tZGF0YXNldC0nICsgZGF0YXNldC5pZFwiXG4gIGNsYXNzPVwiby1wYW5lbFwiXG4+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cIm8tcGFuZWxfX2hlYWRlclwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlUGFuZWwoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLmNsb3NlUGFuZWwnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGgzIFtpZF09XCIndGFiLXRpdGxlLScgKyBjb21wSWRcIiBjbGFzcz1cImEtaDNcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEuZGV0YWlscycgfCBpMThuIH19XG4gICAgICA8L2gzPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm8tdGFic1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fbGlzdFwiIHJvbGU9XCJ0YWJsaXN0XCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItdGl0bGUtJyArIGNvbXBJZFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX2xpc3RfX2J0blwiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgW2lkXT1cIid0YWItJyArIGNvbXBJZCArICctMCdcIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidGFiID09PSAwXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDAgPyAwIDogLTFcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoKDApXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLm1ldGFkYXRhLnRpdGxlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiby10YWJzX19saXN0X19idG5cIlxuICAgICAgICAgIFtpZF09XCIndGFiLScgKyBjb21wSWQgKyAnLTEnXCJcbiAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInRhYiA9PT0gMVwiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiID09PSAxID8gMCA6IC0xXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0xJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInN3aXRjaCgxKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5kZXRhaWxzJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlkZGVuXT1cInRhYiAhPT0gMVwiXG4gICAgICAgICAgW2lkXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudFwiPlxuICAgICAgICAgICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7ICdAcHJ5LmFkbWluLnByb3BlcnRpZXMnIHwgaTE4biB9fTwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5kYXRhc2V0LmlkJyB8IGkxOG4gfX0gOlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IGRhdGFzZXQuaWQgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmRhdGFzZXQubmFtZScgfCBpMThuIH19IDpcbiAgICAgICAgICAgICAgPHN0cm9uZz57eyBkYXRhc2V0Lm5hbWUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiYS1wXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmRhdGFzZXQub0NsYXNzJyB8IGkxOG4gfX0gOlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IGRhdGFzZXQub0NsYXNzIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5kYXRhc2V0LnR5cGUnIHwgaTE4biB9fSA6XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgJ0BwcnkuYWRtaW4uZGF0YXNldC4nICsgZGF0YXNldC50eXBlIHwgaTE4biB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5pcy1oaWRkZW5dPVwidGFiICE9PSAwXCJcbiAgICAgICAgICBbaWRdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50IG8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50LS1wcm9maWxcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG1ldGFkYXRhIG9mIGRhdGFzZXRNZXRhZGF0YSQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRfX2FjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudF9fYWN0aW9uc19fdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50X19hY3Rpb25zX190ZXh0X19sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IG1ldGFkYXRhLm1ldGFkYXRhRGVmLm5hbWUgfX0gOjwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRfX2FjdGlvbnNfX3RleHRfX3ZhbHVlXCI+e3sgbWV0YWRhdGEudmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50X19hY3Rpb25zX19idXR0b25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnYWRtaW4nLCBwYWdlOiAnZGF0YXNldCcsIGFjdGlvbjogJ3dyaXRlJyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgJ0BwcnkuYWN0aW9uLmVkaXQnIHwgaTE4biB9fSB7eyBtZXRhZGF0YS5tZXRhZGF0YURlZi5uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3ZnPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdE1ldGFkYXRhKG1ldGFkYXRhKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID57eyAnQHByeS5hY3Rpb24uZGVsZXRlJyB8IGkxOG4gfX0ge3sgbWV0YWRhdGEubWV0YWRhdGFEZWYubmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3ZnPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVNZXRhZGF0YShtZXRhZGF0YSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2RhdGFzZXQnLCBhY3Rpb246ICd3cml0ZScgfVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWUubWV0YWRhdGFcIj5cbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJvLWZvcm0gLWJvcmRlci10b3BcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwiYWRkRGF0YXNldE1ldGFkYXRhKClcIj5cbiAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+XG4gICAgICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24uZWRpdFByb2ZpbCcgfCBpMThuIH19PC9sZWdlbmQ+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm1ldGFkYXRhXCIgaWQ9XCJtZXRhZGF0YS1sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiPkRhdGE8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWV0YWRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtZXRhZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImF2YWlsYWJsZU1ldGFkYXRhJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1ldGFDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNBc09wdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiKGVkaXRhYmxlJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ21ldGFkYXRhJyk/LmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnbWV0YWRhdGEtbGFiZWwgbWV0YWRhdGEtZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJ21ldGFkYXRhLWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ21ldGFkYXRhJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwibWV0YWRhdGEtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIGZvcj1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdEQVRFJzsgZWxzZSBpbnB1dExpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImZvcm1fZGF0ZS1sYWJlbFwiIGZvcj1cImZvcm1fZGF0ZVwiIGNsYXNzPVwiYS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLnNlbGVjdERhdGUnIHwgaTE4biB9fSAqXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZvcm1fZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnZm9ybS1kYXRlLWxhYmVsIGZvcm0tZGF0ZS1lcnJvcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdmb3JtLWRhdGUtbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmb3JtX2RhdGUtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZm9ybV9kYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRMaXN0PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnTElTVCc7IGVsc2UgaW5wdXRUZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwibGlzdC1sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImxpc3RcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnQHByeS5hY3Rpb24uY2hvaWNlSW5MaXN0JyB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsnYWxsb3dlZFZhbHVlcyddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibGlzdC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRUZXh0PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwidGV4dC1sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi50ZXh0JyB8IGkxOG4gfX0gKlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWQgPyAndGV4dC1sYWJlbCB0ZXh0LWVycm9yJyA6ICd0ZXh0LWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidGVzdC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLmdldCgndmFsdWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZ2V0KCd2YWx1ZScpPy5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnRE9VQkxFJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmVudmlyb25tZW50LmZvcm1hdERvdWJsZScgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdJTlRFR0VSJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmVudmlyb25tZW50LmZvcm1hdEludCcgfCBpMThuIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC1lbmRcIj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICgoZWRpdGFibGUkIHwgYXN5bmMpID8gJ0BwcnkuYWRtaW4udXNlckluZm8uZWRpdE1ldGFkYXRhJyA6ICdAcHJ5LmFkbWluLnVzZXJJbmZvLmFkZE1ldGFkYXRhJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgaTE4blxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tc2VsZWN0LWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BFLE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBRW5CLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQUU5RCxJQUFJLFVBQVUsR0FBRyxDQUFD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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQXNzb2NpYXRpb25zLFxuICBEYXRhc2V0LFxuICBEYXRhc2V0TWV0YWRhdGEsXG4gIERhdGFTb3VyY2VBY3Rpb25zLFxuICBEYXRhU291cmNlU2VsZWN0b3JzLFxuICBJTWV0YWRhdGEsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zIH0gZnJvbSAnLi4vLi4vYWRtaW4tbWV0YWRhdGEvc3RvcmUvbWV0YWRhdGEuYWN0aW9uJztcbmltcG9ydCB7IE1ldGFkYXRhU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vYWRtaW4tbWV0YWRhdGEvc3RvcmUvbWV0YWRhdGEuc2VsZWN0b3InO1xuaW1wb3J0IHsgQWRtaW5EYXRhc2V0QWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLWRhdGFzZXQuYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbkRhdGFzZXRTZWxlY3RvcnMgfSBmcm9tICcuLi9zdG9yZS9hZG1pbi1kYXRhc2V0LnNlbGVjdG9yJztcbmltcG9ydCB7QWRtaW5TZWxlY3RvcnN9IGZyb20gXCIuLi8uLi8uLi9zdG9yZS9hZG1pbi5zZWxlY3RvcnNcIjtcblxubGV0IG5leHRDb21wSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRtaW4tc2VsZWN0LWRhdGFzZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tc2VsZWN0LWRhdGFzZXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluU2VsZWN0RGF0YXNldENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgc3RhdGljIGlkID0gJ0FkbWluU2VsZWN0RGF0YXNldENvbXBvbmVudCc7XG4gIGNvbXBJZDogbnVtYmVyO1xuICBzZWxlY3RlZERhdGFzZXQkOiBPYnNlcnZhYmxlPERhdGFzZXQgfCBudWxsPjtcbiAgYXNzb2NpYXRpb25zJDogT2JzZXJ2YWJsZTxBc3NvY2lhdGlvbnMgfCB1bmRlZmluZWQ+O1xuICBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGN1cnJlbnRUeXBlVHJhbnNsYXRpb24gPSAnJztcbiAgdGFiOiBudW1iZXIgPSAwO1xuICBkYXRhc2V0TWV0YWRhdGEkOiBPYnNlcnZhYmxlPERhdGFzZXRNZXRhZGF0YVtdPjtcbiAgbWV0YWRhdGEkOiBPYnNlcnZhYmxlPElNZXRhZGF0YVtdPjtcbiAgYXZhaWxhYmxlTWV0YWRhdGEkPzogT2JzZXJ2YWJsZTxJTWV0YWRhdGFbXT47XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcbiAgZWRpdGFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBkYXRhc2V0SWQgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5sb2FkTWV0YWRhdGEoKSk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5zZWxlY3RlZERhdGFzZXQpO1xuICAgIHRoaXMuZGF0YXNldE1ldGFkYXRhJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuc2VsZWN0ZWREYXRhc2V0TWV0YWRhdGEpO1xuICAgIHRoaXMuYXNzb2NpYXRpb25zJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluU2VsZWN0b3JzLnNlbGVjdGVkQXNzb2NpYXRpb24pO1xuICAgIHRoaXMubWV0YWRhdGEkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpO1xuICAgIHRoaXMuZWRpdGFibGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5EYXRhc2V0U2VsZWN0b3JzLmVkaXRhYmxlKTtcbiAgICB0aGlzLmNvbXBJZCA9IG5leHRDb21wSWQrKztcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgbWV0YWRhdGE6IFt7fSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHZhbHVlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bKy1dP1swLTldKiQnKV1dXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGFzZXQkLnN1YnNjcmliZSgoZGF0YXNldCkgPT4ge1xuICAgICAgICBpZiAoZGF0YXNldCkge1xuICAgICAgICAgIHRoaXMuZGF0YXNldElkID0gZGF0YXNldC5pZDtcbiAgICAgICAgICBjb25zdCBlZGl0UGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ2RhdGFzZXQnLCAnZWRpdCcsIGRhdGFzZXQuaWRdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIEFkbWluQWN0aW9ucy5tYWluQWN0aW9ucyh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhY3Rpb246IEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogZWRpdFBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICBpY29uOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnZGF0YXNldCcsXG4gICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGF0YVNvdXJjZURlbGV0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YXNldC5pZCxcbiAgICAgICAgICAgICAgICAgICAgcm91dGU6IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ2RhdGFzZXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFkZFJvdXRlOiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdkYXRhc2V0JywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICBpY29uOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdkYXRhc2V0JyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhc2V0JC5zdWJzY3JpYmUoKGRhdGFzZXQpID0+IHtcbiAgICAgICAgaWYgKGRhdGFzZXQpIHtcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZU1ldGFkYXRhJD8uc3Vic2NyaWJlKChtZXRhKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhWzBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub25NZXRhQ2hhbmdlKG1ldGFbMF0pO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyB2YWx1ZTogJycgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmF2YWlsYWJsZU1ldGFkYXRhJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGF0YXNldE1ldGFkYXRhJCwgdGhpcy5tZXRhZGF0YSRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YXNldE1ldGFkYXRhLCBtZXRhRGVmc10pID0+IHtcbiAgICAgICAgbGV0IGRhdGFzZXRNZXRhZGF0YUlkcyA9IGRhdGFzZXRNZXRhZGF0YT8ubWFwKCh1KSA9PiB1Lm1ldGFkYXRhRGVmLmlkKTtcbiAgICAgICAgcmV0dXJuIG1ldGFEZWZzLmZpbHRlcigobWV0YSkgPT4gIWRhdGFzZXRNZXRhZGF0YUlkcz8uaW5jbHVkZXMobWV0YS5pZCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2VQYW5lbCgpIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnZGF0YXNldCcsICduZXcnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMudG9nZ2xlUGFuZWwoeyBwYW5lbE9wZW46IGZhbHNlIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSksXG4gICAgICAgICAgICBsYWJlbDogJ2FkZCcsXG4gICAgICAgICAgICBpY29uOiAnYWRkX2NvbHVtbicsXG4gICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICBwYWdlQWNjZXNzOiAnbWV0YWRhdGFfcnVsZXMnLFxuICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBhZGREYXRhc2V0TWV0YWRhdGEoKSB7XG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICAgIGRhdGFzZXRJZDogdGhpcy5kYXRhc2V0SWQsXG4gICAgICAgIG1ldGFkYXRhSWQ6IHRoaXMuZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsnaWQnXSxcbiAgICAgICAgdmFsdWU6IHRoaXMuZm9ybS52YWx1ZVsndmFsdWUnXVxuICAgICAgfTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5EYXRhc2V0QWN0aW9ucy5hZGREYXRhc2V0TWV0YWRhdGEocGF5bG9hZCkpO1xuICAgIH1cbiAgfVxuXG4gIG9uTWV0YUNoYW5nZShtZXRhZGF0YTogSU1ldGFkYXRhKSB7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0lOVEVHRVInKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15bKy1dP1swLTldKiQnKV0pO1xuICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlID09PSAnRE9VQkxFJykge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCdbKy1dPyhbMC05XSpbLl0pP1swLTldKycpXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZU1ldGFkYXRhKG1ldGFkYXRhOiBEYXRhc2V0TWV0YWRhdGEpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQWRtaW5EYXRhc2V0QWN0aW9ucy5kZWxldGVEYXRhc2V0TWV0YWRhdGEoeyBkYXRhc2V0SWQ6IHRoaXMuZGF0YXNldElkLCBtZXRhZGF0YUlkOiBtZXRhZGF0YS5tZXRhZGF0YURlZi5pZCB9KVxuICAgICk7XG4gIH1cblxuICBlZGl0TWV0YWRhdGEoY3VycmVudE1ldGFkYXRhOiBEYXRhc2V0TWV0YWRhdGEpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluRGF0YXNldEFjdGlvbnMuaXNFZGl0YWJsZSh7IGVkaXRhYmxlOiB0cnVlIH0pKTtcbiAgICBsZXQgdmFsdWUgPSBjdXJyZW50TWV0YWRhdGEudmFsdWU7XG4gICAgbGV0IGRhdGFzZXRNZXRhZGF0YURlZiA9IGN1cnJlbnRNZXRhZGF0YS5tZXRhZGF0YURlZjtcblxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIG1ldGFkYXRhOiBkYXRhc2V0TWV0YWRhdGFEZWYsXG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9KTtcbiAgICB0aGlzLm9uTWV0YUNoYW5nZShkYXRhc2V0TWV0YWRhdGFEZWYpO1xuICB9XG5cbiAgc3dpdGNoKG51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy50YWIgPSBudW1iZXI7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJzZWxlY3RlZERhdGFzZXQkIHwgYXN5bmMgYXMgZGF0YXNldFwiXG4gIFtpZF09XCIncGFuZWwtZGF0YXNldC0nICsgZGF0YXNldC5pZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInYnV0dG9uLWRhdGFzZXQtJyArIGRhdGFzZXQuaWRcIlxuICBjbGFzcz1cIm8tcGFuZWxcIlxuPlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJvLXBhbmVsX19oZWFkZXJcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjbG9zZVBhbmVsKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5jbG9zZVBhbmVsJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxoMyBbaWRdPVwiJ3RhYi10aXRsZS0nICsgY29tcElkXCIgY2xhc3M9XCJhLWgzXCI+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLm1ldGFkYXRhLmRldGFpbHMnIHwgaTE4biB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX2xpc3RcIiByb2xlPVwidGFibGlzdFwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLXRpdGxlLScgKyBjb21wSWRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiby10YWJzX19saXN0X19idG5cIlxuICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgIFtpZF09XCIndGFiLScgKyBjb21wSWQgKyAnLTAnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInRhYiA9PT0gMFwiXG4gICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiID09PSAwID8gMCA6IC0xXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cInN3aXRjaCgwKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5tZXRhZGF0YS50aXRsZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX2xpc3RfX2J0blwiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgW2lkXT1cIid0YWItJyArIGNvbXBJZCArICctMSdcIlxuICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwidGFiID09PSAxXCJcbiAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWIgPT09IDEgPyAxIDogLTFcIlxuICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RhYnBhbmVsLScgKyBjb21wSWQgKyAnLTEnXCJcbiAgICAgICAgICAoY2xpY2spPVwic3dpdGNoKDEpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuYXNzb2NpYXRpb25zJyB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlkZGVuXT1cInRhYiAhPT0gMFwiXG4gICAgICAgICAgW2lkXT1cIid0YWJwYW5lbC0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ3RhYi0nICsgY29tcElkICsgJy0wJ1wiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudCBvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudC0tcHJvZmlsXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBtZXRhZGF0YSBvZiBkYXRhc2V0TWV0YWRhdGEkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50X19hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRfX2FjdGlvbnNfX3RleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudF9fYWN0aW9uc19fdGV4dF9fbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgID57eyBtZXRhZGF0YS5tZXRhZGF0YURlZi5uYW1lIH19IDo8L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50X19hY3Rpb25zX190ZXh0X192YWx1ZVwiPnt7IG1ldGFkYXRhLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbV9fY29udGVudF9fYWN0aW9uc19fYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2RhdGFzZXQnLCBhY3Rpb246ICd3cml0ZScgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIGFyaWEtcHJlc3NlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7ICdAcHJ5LmFjdGlvbi5lZGl0JyB8IGkxOG4gfX0ge3sgbWV0YWRhdGEubWV0YWRhdGFEZWYubmFtZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN2Zz1cImVkaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRNZXRhZGF0YShtZXRhZGF0YSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgJ0BwcnkuYWN0aW9uLmRlbGV0ZScgfCBpMThuIH19IHt7IG1ldGFkYXRhLm1ldGFkYXRhRGVmLm5hbWUgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN2Zz1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTWV0YWRhdGEobWV0YWRhdGEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdkYXRhc2V0JywgYWN0aW9uOiAnd3JpdGUnIH1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlLm1ldGFkYXRhXCI+XG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiby1mb3JtIC1ib3JkZXItdG9wXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cImFkZERhdGFzZXRNZXRhZGF0YSgpXCI+XG4gICAgICAgICAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLmVkaXRQcm9maWwnIHwgaTE4biB9fTwvbGVnZW5kPlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtZXRhZGF0YVwiIGlkPVwibWV0YWRhdGEtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIj5EYXRhPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1ldGFkYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0YWRhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJhdmFpbGFibGVNZXRhZGF0YSQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25NZXRhQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIihlZGl0YWJsZSQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ21ldGFkYXRhLWxhYmVsIG1ldGFkYXRhLWVycm9yJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdtZXRhZGF0YS1sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbWV0YWRhdGEnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1ldGFkYXRhLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJtZXRhZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnREFURSc7IGVsc2UgaW5wdXRMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmb3JtX2RhdGUtbGFiZWxcIiBmb3I9XCJmb3JtX2RhdGVcIiBjbGFzcz1cImEtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5zZWxlY3REYXRlJyB8IGkxOG4gfX0gKlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJmb3JtX2RhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2Zvcm0tZGF0ZS1sYWJlbCBmb3JtLWRhdGUtZXJyb3InXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZm9ybS1kYXRlLWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZm9ybV9kYXRlLWVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cImZvcm1fZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0TGlzdD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0xJU1QnOyBlbHNlIGlucHV0VGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImxpc3QtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJsaXN0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BwcnkuYWN0aW9uLmNob2ljZUluTGlzdCcgfCBpMThuXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ2FsbG93ZWRWYWx1ZXMnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT1cImxpc3QtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0VGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cInRleHQtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24udGV4dCcgfCBpMThuIH19ICpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj4oe3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fSk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkID8gJ3RleHQtbGFiZWwgdGV4dC1lcnJvcicgOiAndGV4dC1sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInRlc3QtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS5nZXQoJ3ZhbHVlJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLmdldCgndmFsdWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0RPVUJMRSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5lbnZpcm9ubWVudC5mb3JtYXREb3VibGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnSU5URUdFUidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5lbnZpcm9ubWVudC5mb3JtYXRJbnQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9maWVsZHNldD5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtZW5kXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAoKGVkaXRhYmxlJCB8IGFzeW5jKSA/ICdAcHJ5LmFkbWluLnVzZXJJbmZvLmVkaXRNZXRhZGF0YScgOiAnQHByeS5hZG1pbi51c2VySW5mby5hZGRNZXRhZGF0YScpXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGkxOG5cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJvLXRhYnNfX3BhbmVsc19faXRlbVwiXG4gICAgICAgICAgW2NsYXNzLmlzLWhpZGRlbl09XCJ0YWIgIT09IDFcIlxuICAgICAgICAgIFtpZF09XCIndGFicGFuZWwtJyArIGNvbXBJZCArICctMSdcIlxuICAgICAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItJyArIGNvbXBJZCArICctMSdcIlxuICAgICAgICAgIHRhYmluZGV4PVwiMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXNzb2NpYXRpb25zJCB8IGFzeW5jIGFzIGFzc29jaWF0aW9uc1wiIGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cImEtaDRcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmFzc29jaWF0aW9ucycgfCBpMThuIH19PC9oND5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFzc29jaWF0aW9uIG9mIGFzc29jaWF0aW9ucy5hc3NvY2lhdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj5cbiAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLm5hbWUnIHwgaTE4biB9fSA6XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBhc3NvY2lhdGlvbi5uYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhLXBcIj5cbiAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLnR5cGUnIHwgaTE4biB9fSA6XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBhc3NvY2lhdGlvbi50eXBlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHAgKm5nSWY9XCJhc3NvY2lhdGlvbnMudXNlZEVsc2V3aGVyZSA9PT0gdHJ1ZVwiIGNsYXNzPVwiYS1wXCI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy51c2VkRWxzZXdoZXJlJyB8IGkxOG4gfX08L3N0cm9uZz5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==