valtech-components 4.0.213 → 4.0.216

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 (22) hide show
  1. package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +4 -3
  2. package/esm2022/lib/version.mjs +2 -2
  3. package/fesm2022/valtech-components.mjs +4 -3
  4. package/fesm2022/valtech-components.mjs.map +1 -1
  5. package/lib/components/atoms/glow/glow.component.d.ts +1 -1
  6. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +2 -2
  7. package/lib/components/atoms/text/text.component.d.ts +1 -1
  8. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +1 -1
  9. package/lib/components/molecules/article-card/article-card.component.d.ts +1 -1
  10. package/lib/components/molecules/cta-card/cta-card.component.d.ts +1 -1
  11. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  12. package/lib/components/molecules/media-object/media-object.component.d.ts +1 -1
  13. package/lib/components/molecules/metric-card/metric-card.component.d.ts +1 -1
  14. package/lib/components/organisms/account-view/account-view.component.d.ts +1 -1
  15. package/lib/components/organisms/article/article.component.d.ts +4 -4
  16. package/lib/components/organisms/auth-cta/auth-cta.component.d.ts +1 -1
  17. package/lib/components/organisms/landing-steps/landing-steps.component.d.ts +1 -1
  18. package/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.d.ts +1 -1
  19. package/lib/components/organisms/organization-view/organization-view.component.d.ts +1 -1
  20. package/lib/version.d.ts +1 -1
  21. package/package.json +2 -2
  22. package/src/lib/services/firebase/firebase-messaging-sw.js +0 -145
@@ -142,13 +142,14 @@ export class AccountViewComponent {
142
142
  this.dangerDeleteHint = computed(() => this.tt('dangerDeleteHint'));
143
143
  this.activeOrgId = computed(() => {
144
144
  const u = this.auth.user();
145
- return u?.activeOrgId ?? u?.activeOrg ?? '';
145
+ const explicit = u?.activeOrgId ?? u?.activeOrg;
146
+ return explicit || this.orgs()[0]?.id || '';
146
147
  });
147
148
  this.activeOrgRole = computed(() => {
148
149
  const roles = this.auth.roles?.() ?? [];
149
150
  return roles[0] ?? null;
150
151
  });
151
- this.activeOrg = computed(() => this.orgs().find(o => o.id === this.activeOrgId()) ?? null);
152
+ this.activeOrg = computed(() => this.orgs().find(o => o.id === this.activeOrgId()) ?? this.orgs()[0] ?? null);
152
153
  this.logoutButtonProps = computed(() => ({
153
154
  text: this.tt('logout'),
154
155
  color: 'dark',
@@ -702,4 +703,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
702
703
  }], ctorParameters: () => [], propDecorators: { config: [{
703
704
  type: Input
704
705
  }] } });
705
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYWNjb3VudC12aWV3L2FjY291bnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUxULHE5R0FuTUMsZ0JBQWdCLDJFQUNoQixtQkFBbUIsK0VBQ25CLHVCQUF1QixtRkFDdkIsY0FBYyx5RUFDZCxhQUFhLHdFQUNiLGVBQWUsMEdBQ2YsZ0JBQWdCLG1HQUNoQix1QkFBdUIsdUhBQ3ZCLHVCQUF1Qix5SUFDdkIsMkJBQTJCLGtJQUMzQixPQUFPLDJKQUNQLFNBQVMsK09BQ1QsYUFBYTs7NEZBOFhKLG9CQUFvQjtrQkE5WWhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QiwyQkFBMkI7d0JBQzNCLE9BQU87d0JBQ1AsU0FBUzt3QkFDVCxhQUFhO3FCQUNkLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxTFQ7d0RBc05RLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgYnVzaW5lc3NPdXRsaW5lLFxuICBjaGV2cm9uRm9yd2FyZE91dGxpbmUsXG4gIG1haWxPdXRsaW5lLFxuICBwZW9wbGVPdXRsaW5lLFxuICBzd2FwSG9yaXpvbnRhbE91dGxpbmUsXG4gIHdhcm5pbmdPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdGFDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2N0YS1jYXJkL2N0YS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlRXJyb3JTdGF0ZVByb3BzIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2ZhY3RvcnknO1xuaW1wb3J0IHsgSW52aXRhdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvaW52aXRhdGlvbi1jYXJkL2ludml0YXRpb24tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9idXR0b24tZ3JvdXAvdHlwZXMnO1xuaW1wb3J0IHsgU2tlbGV0b25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1sYXlvdXQvc2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvb3JnLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JnYW5pemF0aW9uLCBQZW5kaW5nSW52aXRhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL29yZy90eXBlcyc7XG5pbXBvcnQgeyBjb25uZWN0UGFnZVJlZnJlc2ggfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wYWdlLXJlZnJlc2gvcGFnZS1yZWZyZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IENyZWF0ZU9yZ01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY3JlYXRlLW9yZy1tb2RhbC9jcmVhdGUtb3JnLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWxldGVBY2NvdW50TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9kZWxldGUtYWNjb3VudC1tb2RhbC9kZWxldGUtYWNjb3VudC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3JnSW5mb1NoZWV0Q29tcG9uZW50IH0gZnJvbSAnLi4vb3JnLWluZm8tc2hlZXQvb3JnLWluZm8tc2hlZXQuY29tcG9uZW50JztcblxuaW1wb3J0IHsgQWNjb3VudFZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFDQ09VTlRfVklFV19JMThOIH0gZnJvbSAnLi9hY2NvdW50LXZpZXcuaTE4bic7XG5cbmFkZEljb25zKHsgcGVvcGxlT3V0bGluZSwgYnVzaW5lc3NPdXRsaW5lLCBjaGV2cm9uRm9yd2FyZE91dGxpbmUsIHN3YXBIb3Jpem9udGFsT3V0bGluZSwgbWFpbE91dGxpbmUsIHdhcm5pbmdPdXRsaW5lIH0pO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5BY2NvdW50JztcbmNvbnN0IERFRkFVTFRfTUFOQUdFX09SR19ST1VURSA9ICcvYXBwL3NldHRpbmdzL29yZ2FuaXphdGlvbic7XG5cbi8qKlxuICogYHZhbC1hY2NvdW50LXZpZXdgIOKAlCB2aXN0YSBDdWVudGEgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkludml0YWNpb25lcyBwZW5kaWVudGVzKiog4oCUIGFjZXB0YXIgLyByZWNoYXphciAoYHZhbC1pbnZpdGF0aW9uLWNhcmRgKS5cbiAqICAtICoqT3JnYW5pemFjaW9uZXMqKiDigJQgY2FyZCBkZSBvcmcgYWN0aXZhICsgZW1wdHktY2FyZCArIENUQSBcIk51ZXZhIG9yZ1wiXG4gKiAgICAobW9kYWwgYHZhbC1jcmVhdGUtb3JnLW1vZGFsYCkgKyBcIlZlciB0b2Rhc1wiIChtb2RhbCBgdmFsLXN3aXRjaC1vcmctbW9kYWxgKS5cbiAqICAtICoqQ2VycmFyIGVzdGEgc2VzacOzbioqIOKAlCBgYXV0aC5sb2dvdXRXaXRoQ29uZmlybWF0aW9uKClgLlxuICogIC0gKipFbGltaW5hciBjdWVudGEqKiDigJQgbW9kYWwgYHZhbC1kZWxldGUtYWNjb3VudC1tb2RhbGAuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBObyB1c2EgZGVlcC1saW5rcztcbiAqIGBBY3RpdmF0ZWRSb3V0ZWAgc2UgaW55ZWN0YSBgeyBvcHRpb25hbDogdHJ1ZSB9YCBzb2xvIHBhcmEgbGVlciBlbCByb3V0ZSBkYXRhXG4gKiBkZSBjb25maWcuIExhIG5hdmVnYWNpw7NuIGEgbGEgb3JnIHJvdXRlIHZhIHBvciBgTmF2aWdhdGlvblNlcnZpY2VgLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5BY2NvdW50YCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hY2NvdW50LXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEN0YUNhcmRDb21wb25lbnQsXG4gICAgSW52aXRhdGlvbkNhcmRDb21wb25lbnQsXG4gICAgQ3JlYXRlT3JnTW9kYWxDb21wb25lbnQsXG4gICAgRGVsZXRlQWNjb3VudE1vZGFsQ29tcG9uZW50LFxuICAgIElvbkljb24sXG4gICAgSW9uQnV0dG9uLFxuICAgIFRpdGxlQ2FzZVBpcGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogcGFnZVRpdGxlKCkgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHBhZ2VEZXNjcmlwdGlvbigpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93UGVuZGluZ0ludml0ZXMgJiYgcGVuZGluZ0ludml0ZXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdwZW5kaW5nSW52aXRlc1RpdGxlJyksXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICAgIEBmb3IgKGludml0ZSBvZiBwZW5kaW5nSW52aXRlcygpOyB0cmFjayBpbnZpdGUub3JnSWQpIHtcbiAgICAgICAgICA8dmFsLWludml0YXRpb24tY2FyZFxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgdG9rZW46IGludml0ZS5vcmdJZCxcbiAgICAgICAgICAgICAgb3JnTmFtZTogaW52aXRlLm9yZ05hbWUsXG4gICAgICAgICAgICAgIGludml0ZXJOYW1lOiBpbnZpdGUuaW52aXRlck5hbWUsXG4gICAgICAgICAgICAgIHJvbGU6IGludml0ZS5yb2xlSWQsXG4gICAgICAgICAgICAgIGFjY2VwdGluZzogaW52aXRlQWNjZXB0aW5nKCkgPT09IGludml0ZS5vcmdJZCxcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhaW52aXRlQWNjZXB0aW5nKCksXG4gICAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0dCgnYWNjZXB0JyksXG4gICAgICAgICAgICAgIGRlY2xpbmVMYWJlbDogdHQoJ2RlY2xpbmUnKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKG9uQWNjZXB0KT1cImFjY2VwdFBlbmRpbmdJbnZpdGUoaW52aXRlKVwiXG4gICAgICAgICAgICAob25EZWNsaW5lKT1cImRlY2xpbmVQZW5kaW5nSW52aXRlKGludml0ZSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dPcmdhbml6YXRpb25zKSB7XG4gICAgICAgIDwhLS0gT3JnYW5pemF0aW9ucyAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyLXJvd1wiPlxuICAgICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBvcmdzQWN0aXZlVGl0bGUoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIEBpZiAob3Jnc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgICA8dmFsLXNrZWxldG9uLWxheW91dCBbcHJvcHNdPVwieyBwcmVzZXQ6ICdsaXN0Jywgcm93czogMyB9XCIgLz5cbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZ3NFcnJvclN0YXRlKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwib3Jnc0Vycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIEBpZiAoYWN0aXZlT3JnKCk7IGFzIG9yZykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmdzLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZCBvcmctY2FyZC0tYWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aXZlT3JnKCk/LmxvZ29VcmwgJiYgIWFjdGl2ZU9yZ0xvZ29GYWlsZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImFjdGl2ZU9yZygpIS5sb2dvVXJsIVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiYWN0aXZlT3JnKCk/Lm5hbWUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiYWN0aXZlT3JnTG9nb0ZhaWxlZC5zZXQodHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnVzaW5lc3Mtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZy1jYXJkX19ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbmFtZVwiPnt7IG9yZy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9fbWV0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtbGFiZWxcIj57eyB0dCgnb3Jnc0xhYmVsVHlwZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvcmdUeXBlTGFiZWwob3JnLnR5cGUpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZU9yZ1JvbGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWxhYmVsXCI+e3sgdHQoJ29yZ3NMYWJlbFJvbGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVPcmdSb2xlKCkgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtbGFiZWxcIj57eyB0dCgnb3Jnc0xhYmVsU3RhdHVzJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHR0KCdvcmdzU3RhdHVzQWN0aXZlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9fZW5kXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImRhcmtcIiBzaGFwZT1cInJvdW5kXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIm9uTWFuYWdlT3JnKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHR0KCdvcmdzTWFuYWdlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH0gQGVsc2UgaWYgKG9yZ3MoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkX19tYWluXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVvcGxlLW91dGxpbmVcIiBjbGFzcz1cIm9yZ3MtZW1wdHktY2FyZF9faWNvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkX190ZXh0XCI+e3sgb3Jnc0VtcHR5KCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJvcmdzLWVtcHR5LWNhcmRfX2xpbmtcIiAoY2xpY2spPVwib25Nb3JlSW5mbygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9yZ3NNb3JlSW5mbygpIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd05ld09yZ0N0YSkge1xuICAgICAgICAgICAgICAgIDwhLS0gTnVldmEgb3JnYW5pemFjaW9uOiBDVEEgY2FyZCBjb24gdGl0dWxvLCBzdWJ0aXR1bG8geSBib3RvbiAtLT5cbiAgICAgICAgICAgICAgICA8dmFsLWN0YS1jYXJkIGNsYXNzPVwib3JnLW5ldy1jdGEtY2FyZFwiIFtwcm9wc109XCJuZXdPcmdDdGFQcm9wcygpXCIgKG9uQWN0aW9uKT1cIm9uTmV3T3JnKClcIiAvPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dMb2dvdXQpIHtcbiAgICAgICAgPCEtLSBMb2dvdXQgdGhpcyBzZXNzaW9uIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogbG9nb3V0VGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogbG9nb3V0SGludCgpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwibG9nb3V0QnV0dG9uUHJvcHMoKVwiIChjbGljayk9XCJvbkxvZ291dCgpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93RGVsZXRlQWNjb3VudCkge1xuICAgICAgICA8IS0tIERlbGV0ZSBhY2NvdW50IC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb24gc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tdGl0bGUtZGFuZ2VyXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cIndhcm5pbmctb3V0bGluZVwiIGNsYXNzPVwiZGFuZ2VyLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwieyBzaXplOiAnbWVkaXVtJywgY29sb3I6ICdkYXJrJywgYm9sZDogdHJ1ZSwgY29udGVudDogZGFuZ2VyRGVsZXRlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiBkYW5nZXJEZWxldGVIaW50KCksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJkZWxldGVBY2NvdW50QnV0dG9uUHJvcHMoKVwiIChvbkNsaWNrKT1cIm9uRGVsZXRlQWNjb3VudCgpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgICA8dmFsLWNyZWF0ZS1vcmctbW9kYWxcbiAgICAgICAgW2lzT3Blbl09XCJjcmVhdGVPcmdPcGVuKClcIlxuICAgICAgICBbaTE4bk5hbWVzcGFjZV09XCInQ3JlYXRlT3JnTW9kYWwnXCJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJjcmVhdGVPcmdPcGVuLnNldChmYWxzZSlcIlxuICAgICAgICAoY3JlYXRlZCk9XCJvbk9yZ0NyZWF0ZWQoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPHZhbC1kZWxldGUtYWNjb3VudC1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cImRlbGV0ZUFjY291bnRPcGVuKClcIlxuICAgICAgICBbaTE4bk5hbWVzcGFjZV09XCInU2V0dGluZ3MuRGVsZXRlQWNjb3VudCdcIlxuICAgICAgICAoZGlzbWlzc2VkKT1cImRlbGV0ZUFjY291bnRPcGVuLnNldChmYWxzZSlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gKyAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24tYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5yb3ctYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB9XG4gICAgICAucm93LWFjdGlvbnMtLWdhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi1oZWFkZXItcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1uZXctY3RhLWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc2Vjb25kYXJ5LXRpbnQsIHJnYmEodmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeS1yZ2IsIDEzMCwgMTAxLCAyMDgpLCAwLjIpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICAgICAgcGFkZGluZzogMThweCAxNnB4IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZF9fbWFpbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmRfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZF9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3Jncy1lbXB0eS1jYXJkX19saW5rIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgfVxuICAgICAgLm9yZ3MtbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBiYWNrZ3JvdW5kIDAuMTVzLFxuICAgICAgICAgIGJvcmRlci1jb2xvciAwLjE1cztcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZDphY3RpdmUge1xuICAgICAgICBvcGFjaXR5OiAwLjc1O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkLS1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSA4JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5vcmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAub3JnLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5vcmctY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLm9yZy1jYXJkLS1hY3RpdmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm9yZy1jYXJkLS1hY3RpdmUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5vcmctY2FyZC0tYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9faWNvbiB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19ib2R5IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fbmFtZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX21ldGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDFweDtcbiAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19tZXRhLWl0ZW0ge1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX21ldGEtbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fZW5kIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24tdGl0bGUtZGFuZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICB9XG4gICAgICAuc2VjdGlvbi10aXRsZS1kYW5nZXIgdmFsLXRpdGxlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICAgIC5kYW5nZXItaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdhcm5pbmctc2hhZGUsICNkNGEwMTcpO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uLS1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLWRhbmdlcikgNCUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgbWFyZ2luOiAwIC00cHg7XG4gICAgICB9XG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLnNldHRpbmdzLXNlY3Rpb24tLWRhbmdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1kYW5nZXIpIDglLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3VudFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgb3JnU2VydmljZSA9IGluamVjdChPcmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBtb2RhbFNlcnZpY2UgPSBpbmplY3QoTW9kYWxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgYWNjb3VudENvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaEFjY291bnRSb3V0ZXNgKS4gYHJlc29sdmVkQ29uZmlnYFxuICAgKiBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cyDigJQgYEBJbnB1dGAgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogQWNjb3VudFZpZXdDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxcbiAgICBSZXF1aXJlZDxPbWl0PEFjY291bnRWaWV3Q29uZmlnLCAnb25PcmdTd2l0Y2hlZCcgfCAnb25PcmdDcmVhdGVkJyB8ICdvbkxvZ2dlZE91dCcgfCAnb25BY2NvdW50RGVsZXRlZCc+PiAmXG4gICAgICBQaWNrPEFjY291bnRWaWV3Q29uZmlnLCAnb25PcmdTd2l0Y2hlZCcgfCAnb25PcmdDcmVhdGVkJyB8ICdvbkxvZ2dlZE91dCcgfCAnb25BY2NvdW50RGVsZXRlZCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydhY2NvdW50Q29uZmlnJ10gPz8ge30pIGFzIEFjY291bnRWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogQWNjb3VudFZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93UGVuZGluZ0ludml0ZXM6IG1lcmdlZC5zaG93UGVuZGluZ0ludml0ZXMgPz8gdHJ1ZSxcbiAgICAgIHNob3dPcmdhbml6YXRpb25zOiBtZXJnZWQuc2hvd09yZ2FuaXphdGlvbnMgPz8gdHJ1ZSxcbiAgICAgIHNob3dOZXdPcmdDdGE6IG1lcmdlZC5zaG93TmV3T3JnQ3RhID8/IGZhbHNlLFxuICAgICAgc2hvd0xvZ291dDogbWVyZ2VkLnNob3dMb2dvdXQgPz8gdHJ1ZSxcbiAgICAgIHNob3dEZWxldGVBY2NvdW50OiBtZXJnZWQuc2hvd0RlbGV0ZUFjY291bnQgPz8gdHJ1ZSxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgbWFuYWdlT3JnUm91dGU6IG1lcmdlZC5tYW5hZ2VPcmdSb3V0ZSA/PyBERUZBVUxUX01BTkFHRV9PUkdfUk9VVEUsXG4gICAgICBvbk9yZ1N3aXRjaGVkOiBtZXJnZWQub25PcmdTd2l0Y2hlZCxcbiAgICAgIG9uT3JnQ3JlYXRlZDogbWVyZ2VkLm9uT3JnQ3JlYXRlZCxcbiAgICAgIG9uTG9nZ2VkT3V0OiBtZXJnZWQub25Mb2dnZWRPdXQsXG4gICAgICBvbkFjY291bnREZWxldGVkOiBtZXJnZWQub25BY2NvdW50RGVsZXRlZCxcbiAgICB9O1xuICB9KTtcblxuICAvKiogTmFtZXNwYWNlIGkxOG4gcmVzdWVsdG8gKGNhcHR1cmFkbyBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgcmVhZG9ubHkgb3JncyA9IHNpZ25hbDxPcmdhbml6YXRpb25bXT4oW10pO1xuICByZWFkb25seSBvcmdzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3Jnc0Vycm9yID0gc2lnbmFsPHVua25vd24+KG51bGwpO1xuXG4gIHJlYWRvbmx5IG9yZ3NFcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgZXJyID0gdGhpcy5vcmdzRXJyb3IoKTtcbiAgICBpZiAoIWVycikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yU3RhdGVQcm9wcyhlcnIsIHtcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIG9mZmxpbmU6IHRoaXMudHQoJ29yZ3NPZmZsaW5lVGl0bGUnKSxcbiAgICAgICAgZXJyb3I6IHRoaXMudHQoJ29yZ3NFcnJvclRpdGxlJyksXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgb2ZmbGluZTogdGhpcy50dCgnb3Jnc09mZmxpbmVIaW50JyksXG4gICAgICAgIGVycm9yOiB0aGlzLnR0KCdvcmdzRXJyb3JIaW50JyksXG4gICAgICB9LFxuICAgICAgcmV0cnlMYWJlbDogdGhpcy50dCgnb3Jnc1JldHJ5JyksXG4gICAgICBvblJldHJ5OiAoKSA9PiB0aGlzLmxvYWRPcmdzKCksXG4gICAgICByZXRyeWluZzogdGhpcy5vcmdzTG9hZGluZygpLFxuICAgIH0pO1xuICB9KTtcblxuICByZWFkb25seSBjcmVhdGVPcmdPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgZGVsZXRlQWNjb3VudE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBhY3RpdmVPcmdMb2dvRmFpbGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBwZW5kaW5nSW52aXRlcyA9IHNpZ25hbDxQZW5kaW5nSW52aXRhdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IHBlbmRpbmdJbnZpdGVzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGludml0ZUFjY2VwdGluZyA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBwYWdlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwYWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBhZ2VEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ3BhZ2VEZXNjcmlwdGlvbicpKTtcbiAgcmVhZG9ubHkgb3Jnc1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc1RpdGxlJykpO1xuICByZWFkb25seSBvcmdzQWN0aXZlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzQWN0aXZlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IG9yZ3NFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NFbXB0eScpKTtcbiAgcmVhZG9ubHkgb3Jnc01vcmVJbmZvID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc01vcmVJbmZvJykpO1xuICByZWFkb25seSBvcmdzTmV3UXVlc3Rpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzTmV3UXVlc3Rpb24nKSk7XG4gIHJlYWRvbmx5IG9yZ3NOZXdIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc05ld0hpbnQnKSk7XG4gIHJlYWRvbmx5IG5ld09yZ0N0YVByb3BzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICB0aXRsZTogdGhpcy50dCgnb3Jnc05ld1F1ZXN0aW9uJyksXG4gICAgZGVzY3JpcHRpb246IHRoaXMudHQoJ29yZ3NOZXdIaW50JyksXG4gICAgcGFkZGluZzogJzE2cHgnLFxuICAgIGJvcmRlclJhZGl1czogJzE0cHgnLFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHBvc2l0aW9uOiAncmlnaHQnLFxuICAgICAgY29sdW1uZWQ6IGZhbHNlLFxuICAgICAgYnV0dG9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogdGhpcy50dCgnb3Jnc05ld0N0YScpLFxuICAgICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAgICAgICAgICB0b2tlbjogJ2FjY291bnQtbmV3LW9yZycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0gYXMgQnV0dG9uR3JvdXBNZXRhZGF0YSxcbiAgfSkpO1xuICByZWFkb25seSBsb2dvdXRUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2xvZ291dFRpdGxlJykpO1xuICByZWFkb25seSBsb2dvdXRIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnbG9nb3V0SGludCcpKTtcbiAgcmVhZG9ubHkgZGFuZ2VyVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdkYW5nZXJUaXRsZScpKTtcbiAgcmVhZG9ubHkgZGFuZ2VyRGVsZXRlVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdkYW5nZXJEZWxldGVUaXRsZScpKTtcbiAgcmVhZG9ubHkgZGFuZ2VyRGVsZXRlSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2RhbmdlckRlbGV0ZUhpbnQnKSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnSWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdSA9IHRoaXMuYXV0aC51c2VyKCkgYXMge1xuICAgICAgYWN0aXZlT3JnSWQ/OiBzdHJpbmc7XG4gICAgICBhY3RpdmVPcmc/OiBzdHJpbmc7XG4gICAgfSB8IG51bGw7XG4gICAgcmV0dXJuIHU/LmFjdGl2ZU9yZ0lkID8/IHU/LmFjdGl2ZU9yZyA/PyAnJztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnUm9sZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCByb2xlcyA9ICh0aGlzLmF1dGggYXMgdW5rbm93biBhcyB7IHJvbGVzPzogKCkgPT4gc3RyaW5nW10gfSkucm9sZXM/LigpID8/IFtdO1xuICAgIHJldHVybiByb2xlc1swXSA/PyBudWxsO1xuICB9KTtcblxuICByZWFkb25seSBhY3RpdmVPcmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9yZ3MoKS5maW5kKG8gPT4gby5pZCA9PT0gdGhpcy5hY3RpdmVPcmdJZCgpKSA/PyBudWxsKTtcblxuICByZWFkb25seSBsb2dvdXRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ2xvZ291dCcpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ2FjY291bnQtbG9nb3V0JyxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRCdXR0b25Qcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIHRleHQ6IHRoaXMudHQoJ2RhbmdlckRlbGV0ZUN0YScpLFxuICAgIGNvbG9yOiAnZGFyaycsXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICB0b2tlbjogJ2FjY291bnQtZGVsZXRlJyxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhucywgQUNDT1VOVF9WSUVXX0kxOE4pO1xuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgICB0aGlzLmxvYWRQZW5kaW5nSW52aXRlcygpO1xuICAgIGNvbm5lY3RQYWdlUmVmcmVzaChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChbdGhpcy5sb2FkT3JncygpLCB0aGlzLmxvYWRQZW5kaW5nSW52aXRlcygpXSk7XG4gICAgfSk7XG4gIH1cblxuICBvcmdUeXBlTGFiZWwodHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICBQRVJTT05BTDogdGhpcy50dCgnb3Jnc1R5cGVQZXJzb25hbCcpLFxuICAgICAgUFJJVkFURTogdGhpcy50dCgnb3Jnc1R5cGVQcml2YXRlJyksXG4gICAgICBQVUJMSUM6IHRoaXMudHQoJ29yZ3NUeXBlUHVibGljJyksXG4gICAgICBCVVNJTkVTUzogdGhpcy50dCgnb3Jnc1R5cGVCdXNpbmVzcycpLFxuICAgIH07XG4gICAgcmV0dXJuIG1hcFt0eXBlXSA/PyB0eXBlO1xuICB9XG5cbiAgb25EZWxldGVBY2NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuZGVsZXRlQWNjb3VudE9wZW4uc2V0KHRydWUpO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbkFjY291bnREZWxldGVkPy4oKTtcbiAgfVxuXG4gIG9uTWFuYWdlT3JnKCk6IHZvaWQge1xuICAgIHRoaXMubmF2Lm5hdmlnYXRlQnlVcmwodGhpcy5yZXNvbHZlZENvbmZpZygpLm1hbmFnZU9yZ1JvdXRlKTtcbiAgfVxuXG4gIG9uTmV3T3JnKCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlT3JnT3Blbi5zZXQodHJ1ZSk7XG4gIH1cblxuICBvbk9yZ0NyZWF0ZWQobmV3T3JnOiBPcmdhbml6YXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uT3JnQ3JlYXRlZD8uKG5ld09yZyk7XG4gIH1cblxuICBvbk1vcmVJbmZvKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih7XG4gICAgICBjb21wb25lbnQ6IE9yZ0luZm9TaGVldENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdvcmdzSW5mb1RpdGxlJyksXG4gICAgICAgIHN1YnRpdGxlOiB0aGlzLnR0KCdvcmdzSW5mb1N1YnRpdGxlJyksXG4gICAgICAgIGJvZHk6IHRoaXMudHQoJ29yZ3NJbmZvQ29udGVudCcpLFxuICAgICAgICBjbG9zZUxhYmVsOiB0aGlzLnR0KCdvcmdzSW5mb0Nsb3NlJyksXG4gICAgICAgIGNsb3NlUHJvcHM6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLnR0KCdvcmdzSW5mb0Nsb3NlJyksXG4gICAgICAgICAgZmlsbDogJ291dGxpbmUnLFxuICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICBicmVha3BvaW50czogWzAsIDAuODVdLFxuICAgICAgICBpbml0aWFsQnJlYWtwb2ludDogMC44NSxcbiAgICAgICAgc2hvd0hhbmRsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBvbkxvZ291dCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dGgubG9nb3V0V2l0aENvbmZpcm1hdGlvbigpO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbkxvZ2dlZE91dD8uKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRQZW5kaW5nSW52aXRlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgdGhpcy5vcmdTZXJ2aWNlXG4gICAgICAgIC5nZXRQZW5kaW5nSW52aXRhdGlvbnMoKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiBpdGVtcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzLnNldChpdGVtcyk7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBhY2NlcHRQZW5kaW5nSW52aXRlKGludml0ZTogUGVuZGluZ0ludml0YXRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnZpdGVBY2NlcHRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChpbnZpdGUub3JnSWQpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmFjY2VwdEludml0YXRpb24oaW52aXRlLm9yZ0lkKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHQoJ2ludml0ZUFjY2VwdGVkJyksXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgZHVyYXRpb246IDM1MDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlcy51cGRhdGUobGlzdCA9PiBsaXN0LmZpbHRlcihpID0+IGkub3JnSWQgIT09IGludml0ZS5vcmdJZCkpO1xuICAgICAgICAgIHRoaXMubG9hZE9yZ3MoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwgeyBjb250ZXh0OiAnYWNjb3VudC5hY2NlcHRQZW5kaW5nSW52aXRlJyB9KTtcbiAgICAgICAgICB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQobnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQobnVsbCksXG4gICAgICB9KTtcbiAgfVxuXG4gIGRlY2xpbmVQZW5kaW5nSW52aXRlKGludml0ZTogUGVuZGluZ0ludml0YXRpb24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnZpdGVBY2NlcHRpbmcoKSkgcmV0dXJuO1xuICAgIHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChpbnZpdGUub3JnSWQpO1xuICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgLmRlY2xpbmVJbnZpdGF0aW9uKGludml0ZS5vcmdJZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCdpbnZpdGVEZWNsaW5lZCcpLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXMudXBkYXRlKGxpc3QgPT4gbGlzdC5maWx0ZXIoaSA9PiBpLm9yZ0lkICE9PSBpbnZpdGUub3JnSWQpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwgeyBjb250ZXh0OiAnYWNjb3VudC5kZWNsaW5lUGVuZGluZ0ludml0ZScgfSk7XG4gICAgICAgICAgdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KG51bGwpLFxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRPcmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMub3Jnc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMub3Jnc0Vycm9yLnNldChudWxsKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4ocmVzb2x2ZSA9PiB7XG4gICAgICB0aGlzLm9yZ1NlcnZpY2UubGlzdE15T3JncygpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IG9yZ3MgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGl2ZUlkID0gdGhpcy5hY3RpdmVPcmdJZCgpO1xuICAgICAgICAgIHRoaXMub3Jncy5zZXQoWy4uLm9yZ3NdLnNvcnQoKGEsIGIpID0+IChhLmlkID09PSBhY3RpdmVJZCA/IC0xIDogYi5pZCA9PT0gYWN0aXZlSWQgPyAxIDogMCkpKTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZU9yZ0xvZ29GYWlsZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLm9yZ3NMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLm9yZ3NFcnJvci5zZXQoZXJyKTtcbiAgICAgICAgICB0aGlzLm9yZ3NMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG59XG4iXX0=
706
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYWNjb3VudC12aWV3L2FjY291bnQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFD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b0IsMEdBNVhyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFMVCxxOUdBbk1DLGdCQUFnQiwyRUFDaEIsbUJBQW1CLCtFQUNuQix1QkFBdUIsbUZBQ3ZCLGNBQWMseUVBQ2QsYUFBYSx3RUFDYixlQUFlLDBHQUNmLGdCQUFnQixtR0FDaEIsdUJBQXVCLHVIQUN2Qix1QkFBdUIseUlBQ3ZCLDJCQUEyQixrSUFDM0IsT0FBTywySkFDUCxTQUFTLCtPQUNULGFBQWE7OzRGQThYSixvQkFBb0I7a0JBOVloQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsYUFBYTtxQkFDZCxZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUxUO3dEQXNOUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7XG4gIGJ1c2luZXNzT3V0bGluZSxcbiAgY2hldnJvbkZvcndhcmRPdXRsaW5lLFxuICBtYWlsT3V0bGluZSxcbiAgcGVvcGxlT3V0bGluZSxcbiAgc3dhcEhvcml6b250YWxPdXRsaW5lLFxuICB3YXJuaW5nT3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3RhQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jdGEtY2FyZC9jdGEtY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZUVycm9yU3RhdGVQcm9wcyB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9mYWN0b3J5JztcbmltcG9ydCB7IEludml0YXRpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2ludml0YXRpb24tY2FyZC9pbnZpdGF0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkdyb3VwTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYnV0dG9uLWdyb3VwL3R5cGVzJztcbmltcG9ydCB7IFNrZWxldG9uTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2tlbGV0b24tbGF5b3V0L3NrZWxldG9uLWxheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPcmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnL29yZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbiwgUGVuZGluZ0ludml0YXRpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmcvdHlwZXMnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBDcmVhdGVPcmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS1vcmctbW9kYWwvY3JlYXRlLW9yZy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVsZXRlQWNjb3VudE1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vZGVsZXRlLWFjY291bnQtbW9kYWwvZGVsZXRlLWFjY291bnQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE9yZ0luZm9TaGVldENvbXBvbmVudCB9IGZyb20gJy4uL29yZy1pbmZvLXNoZWV0L29yZy1pbmZvLXNoZWV0LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEFjY291bnRWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBQ0NPVU5UX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWNjb3VudC12aWV3LmkxOG4nO1xuXG5hZGRJY29ucyh7IHBlb3BsZU91dGxpbmUsIGJ1c2luZXNzT3V0bGluZSwgY2hldnJvbkZvcndhcmRPdXRsaW5lLCBzd2FwSG9yaXpvbnRhbE91dGxpbmUsIG1haWxPdXRsaW5lLCB3YXJuaW5nT3V0bGluZSB9KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWNjb3VudCc7XG5jb25zdCBERUZBVUxUX01BTkFHRV9PUkdfUk9VVEUgPSAnL2FwcC9zZXR0aW5ncy9vcmdhbml6YXRpb24nO1xuXG4vKipcbiAqIGB2YWwtYWNjb3VudC12aWV3YCDigJQgdmlzdGEgQ3VlbnRhIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuXG4gKiBQcm9tb3ZpZGEgZGVzZGUgYHNob3djYXNlYCBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS4gUmXDum5lOlxuICogIC0gKipJbnZpdGFjaW9uZXMgcGVuZGllbnRlcyoqIOKAlCBhY2VwdGFyIC8gcmVjaGF6YXIgKGB2YWwtaW52aXRhdGlvbi1jYXJkYCkuXG4gKiAgLSAqKk9yZ2FuaXphY2lvbmVzKiog4oCUIGNhcmQgZGUgb3JnIGFjdGl2YSArIGVtcHR5LWNhcmQgKyBDVEEgXCJOdWV2YSBvcmdcIlxuICogICAgKG1vZGFsIGB2YWwtY3JlYXRlLW9yZy1tb2RhbGApICsgXCJWZXIgdG9kYXNcIiAobW9kYWwgYHZhbC1zd2l0Y2gtb3JnLW1vZGFsYCkuXG4gKiAgLSAqKkNlcnJhciBlc3RhIHNlc2nDs24qKiDigJQgYGF1dGgubG9nb3V0V2l0aENvbmZpcm1hdGlvbigpYC5cbiAqICAtICoqRWxpbWluYXIgY3VlbnRhKiog4oCUIG1vZGFsIGB2YWwtZGVsZXRlLWFjY291bnQtbW9kYWxgLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci4gTm8gdXNhIGRlZXAtbGlua3M7XG4gKiBgQWN0aXZhdGVkUm91dGVgIHNlIGlueWVjdGEgYHsgb3B0aW9uYWw6IHRydWUgfWAgc29sbyBwYXJhIGxlZXIgZWwgcm91dGUgZGF0YVxuICogZGUgY29uZmlnLiBMYSBuYXZlZ2FjacOzbiBhIGxhIG9yZyByb3V0ZSB2YSBwb3IgYE5hdmlnYXRpb25TZXJ2aWNlYC5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuQWNjb3VudGApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYWNjb3VudC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICBTa2VsZXRvbkxheW91dENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDdGFDYXJkQ29tcG9uZW50LFxuICAgIEludml0YXRpb25DYXJkQ29tcG9uZW50LFxuICAgIENyZWF0ZU9yZ01vZGFsQ29tcG9uZW50LFxuICAgIERlbGV0ZUFjY291bnRNb2RhbENvbXBvbmVudCxcbiAgICBJb25JY29uLFxuICAgIElvbkJ1dHRvbixcbiAgICBUaXRsZUNhc2VQaXBlLFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd1BlbmRpbmdJbnZpdGVzICYmIHBlbmRpbmdJbnZpdGVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICBjb250ZW50OiB0dCgncGVuZGluZ0ludml0ZXNUaXRsZScpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgICBAZm9yIChpbnZpdGUgb2YgcGVuZGluZ0ludml0ZXMoKTsgdHJhY2sgaW52aXRlLm9yZ0lkKSB7XG4gICAgICAgICAgPHZhbC1pbnZpdGF0aW9uLWNhcmRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHRva2VuOiBpbnZpdGUub3JnSWQsXG4gICAgICAgICAgICAgIG9yZ05hbWU6IGludml0ZS5vcmdOYW1lLFxuICAgICAgICAgICAgICBpbnZpdGVyTmFtZTogaW52aXRlLmludml0ZXJOYW1lLFxuICAgICAgICAgICAgICByb2xlOiBpbnZpdGUucm9sZUlkLFxuICAgICAgICAgICAgICBhY2NlcHRpbmc6IGludml0ZUFjY2VwdGluZygpID09PSBpbnZpdGUub3JnSWQsXG4gICAgICAgICAgICAgIGRpc2FibGVkOiAhIWludml0ZUFjY2VwdGluZygpLFxuICAgICAgICAgICAgICBhY2NlcHRMYWJlbDogdHQoJ2FjY2VwdCcpLFxuICAgICAgICAgICAgICBkZWNsaW5lTGFiZWw6IHR0KCdkZWNsaW5lJyksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChvbkFjY2VwdCk9XCJhY2NlcHRQZW5kaW5nSW52aXRlKGludml0ZSlcIlxuICAgICAgICAgICAgKG9uRGVjbGluZSk9XCJkZWNsaW5lUGVuZGluZ0ludml0ZShpbnZpdGUpXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93T3JnYW5pemF0aW9ucykge1xuICAgICAgICA8IS0tIE9yZ2FuaXphdGlvbnMgLS0+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlci1yb3dcIj5cbiAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGVudDogb3Jnc0FjdGl2ZVRpdGxlKCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICBAaWYgKG9yZ3NMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbi1sYXlvdXQgW3Byb3BzXT1cInsgcHJlc2V0OiAnbGlzdCcsIHJvd3M6IDMgfVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChvcmdzRXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cIm9yZ3NFcnJvclN0YXRlKCkhXCIgLz5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICBAaWYgKGFjdGl2ZU9yZygpOyBhcyBvcmcpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3Jncy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWNhcmQgb3JnLWNhcmQtLWFjdGl2ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWNhcmRfX2ljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGl2ZU9yZygpPy5sb2dvVXJsICYmICFhY3RpdmVPcmdMb2dvRmFpbGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhY3RpdmVPcmcoKSEubG9nb1VybCFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImFjdGl2ZU9yZygpPy5uYW1lID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cImFjdGl2ZU9yZ0xvZ29GYWlsZWQuc2V0KHRydWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImJ1c2luZXNzLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcmctY2FyZF9fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX25hbWVcIj57eyBvcmcubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWNhcmRfX21ldGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWxhYmVsXCI+e3sgdHQoJ29yZ3NMYWJlbFR5cGUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3JnVHlwZUxhYmVsKG9yZy50eXBlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChhY3RpdmVPcmdSb2xlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmctY2FyZF9fbWV0YS1sYWJlbFwiPnt7IHR0KCdvcmdzTGFiZWxSb2xlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYWN0aXZlT3JnUm9sZSgpIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JnLWNhcmRfX21ldGEtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZy1jYXJkX19tZXRhLWxhYmVsXCI+e3sgdHQoJ29yZ3NMYWJlbFN0YXR1cycpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0dCgnb3Jnc1N0YXR1c0FjdGl2ZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3JnLWNhcmRfX2VuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJkYXJrXCIgc2hhcGU9XCJyb3VuZFwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJvbk1hbmFnZU9yZygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0dCgnb3Jnc01hbmFnZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChvcmdzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZ3MtZW1wdHktY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yZ3MtZW1wdHktY2FyZF9fbWFpblwiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlb3BsZS1vdXRsaW5lXCIgY2xhc3M9XCJvcmdzLWVtcHR5LWNhcmRfX2ljb25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9yZ3MtZW1wdHktY2FyZF9fdGV4dFwiPnt7IG9yZ3NFbXB0eSgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwib3Jncy1lbXB0eS1jYXJkX19saW5rXCIgKGNsaWNrKT1cIm9uTW9yZUluZm8oKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcmdzTW9yZUluZm8oKSB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dOZXdPcmdDdGEpIHtcbiAgICAgICAgICAgICAgICA8IS0tIE51ZXZhIG9yZ2FuaXphY2lvbjogQ1RBIGNhcmQgY29uIHRpdHVsbywgc3VidGl0dWxvIHkgYm90b24gLS0+XG4gICAgICAgICAgICAgICAgPHZhbC1jdGEtY2FyZCBjbGFzcz1cIm9yZy1uZXctY3RhLWNhcmRcIiBbcHJvcHNdPVwibmV3T3JnQ3RhUHJvcHMoKVwiIChvbkFjdGlvbik9XCJvbk5ld09yZygpXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93TG9nb3V0KSB7XG4gICAgICAgIDwhLS0gTG9nb3V0IHRoaXMgc2Vzc2lvbiAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGxvZ291dFRpdGxlKCksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGxvZ291dEhpbnQoKSxcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cImxvZ291dEJ1dHRvblByb3BzKClcIiAoY2xpY2spPVwib25Mb2dvdXQoKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0RlbGV0ZUFjY291bnQpIHtcbiAgICAgICAgPCEtLSBEZWxldGUgYWNjb3VudCAtLT5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uIHNldHRpbmdzLXNlY3Rpb24tLWRhbmdlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLXRpdGxlLWRhbmdlclwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ3YXJuaW5nLW91dGxpbmVcIiBjbGFzcz1cImRhbmdlci1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgc2l6ZTogJ21lZGl1bScsIGNvbG9yOiAnZGFyaycsIGJvbGQ6IHRydWUsIGNvbnRlbnQ6IGRhbmdlckRlbGV0ZVRpdGxlKCkgfVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogZGFuZ2VyRGVsZXRlSGludCgpLFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwiZGVsZXRlQWNjb3VudEJ1dHRvblByb3BzKClcIiAob25DbGljayk9XCJvbkRlbGV0ZUFjY291bnQoKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgICAgPHZhbC1jcmVhdGUtb3JnLW1vZGFsXG4gICAgICAgIFtpc09wZW5dPVwiY3JlYXRlT3JnT3BlbigpXCJcbiAgICAgICAgW2kxOG5OYW1lc3BhY2VdPVwiJ0NyZWF0ZU9yZ01vZGFsJ1wiXG4gICAgICAgIChkaXNtaXNzZWQpPVwiY3JlYXRlT3JnT3Blbi5zZXQoZmFsc2UpXCJcbiAgICAgICAgKGNyZWF0ZWQpPVwib25PcmdDcmVhdGVkKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDx2YWwtZGVsZXRlLWFjY291bnQtbW9kYWxcbiAgICAgICAgW2lzT3Blbl09XCJkZWxldGVBY2NvdW50T3BlbigpXCJcbiAgICAgICAgW2kxOG5OYW1lc3BhY2VdPVwiJ1NldHRpbmdzLkRlbGV0ZUFjY291bnQnXCJcbiAgICAgICAgKGRpc21pc3NlZCk9XCJkZWxldGVBY2NvdW50T3Blbi5zZXQoZmFsc2UpXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB2YWwtdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLWJvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICB9XG4gICAgICAucm93LWFjdGlvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnJvdy1hY3Rpb25zLS1nYXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24taGVhZGVyLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgIH1cbiAgICAgIC5vcmctbmV3LWN0YS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICB9XG4gICAgICAub3Jncy1lbXB0eS1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXNlY29uZGFyeS10aW50LCByZ2JhKHZhcigtLWlvbi1jb2xvci1zZWNvbmRhcnktcmdiLCAxMzAsIDEwMSwgMjA4KSwgMC4yKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgICAgIHBhZGRpbmc6IDE4cHggMTZweCAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmRfX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICB9XG4gICAgICAub3Jncy1lbXB0eS1jYXJkX19pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWVtcHR5LWNhcmRfX3RleHQge1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZ3MtZW1wdHktY2FyZF9fbGluayB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgIH1cbiAgICAgIC5vcmdzLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpO1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYmFja2dyb3VuZCAwLjE1cyxcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXM7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmQ6YWN0aXZlIHtcbiAgICAgICAgb3BhY2l0eTogMC43NTtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZC0tYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgOCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAub3JnLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm9yZy1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAub3JnLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICAgICAgfVxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5vcmctY2FyZC0tYWN0aXZlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5vcmctY2FyZC0tYWN0aXZlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAub3JnLWNhcmQtLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgMTUlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX2ljb24ge1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgMTUlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fYm9keSB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX25hbWUge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19tZXRhIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgIH1cbiAgICAgIC5vcmctY2FyZF9fbWV0YS1pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgfVxuICAgICAgLm9yZy1jYXJkX19tZXRhLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICB9XG4gICAgICAub3JnLWNhcmRfX2VuZCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLXRpdGxlLWRhbmdlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24tdGl0bGUtZGFuZ2VyIHZhbC10aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgICAuZGFuZ2VyLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLXNoYWRlLCAjZDRhMDE3KTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbi0tZGFuZ2VyIHtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1kYW5nZXIpIDQlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIG1hcmdpbjogMCAtNHB4O1xuICAgICAgfVxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5zZXR0aW5ncy1zZWN0aW9uLS1kYW5nZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLnNldHRpbmdzLXNlY3Rpb24tLWRhbmdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLnNldHRpbmdzLXNlY3Rpb24tLWRhbmdlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKSA4JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY291bnRWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIG9yZ1NlcnZpY2UgPSBpbmplY3QoT3JnU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYGFjY291bnRDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hBY2NvdW50Um91dGVzYCkuIGByZXNvbHZlZENvbmZpZ2BcbiAgICogbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMg4oCUIGBASW5wdXRgIGdhbmEgc29icmUgcm91dGUgZGF0YS5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IEFjY291bnRWaWV3Q29uZmlnO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxBY2NvdW50Vmlld0NvbmZpZywgJ29uT3JnU3dpdGNoZWQnIHwgJ29uT3JnQ3JlYXRlZCcgfCAnb25Mb2dnZWRPdXQnIHwgJ29uQWNjb3VudERlbGV0ZWQnPj4gJlxuICAgICAgUGljazxBY2NvdW50Vmlld0NvbmZpZywgJ29uT3JnU3dpdGNoZWQnIHwgJ29uT3JnQ3JlYXRlZCcgfCAnb25Mb2dnZWRPdXQnIHwgJ29uQWNjb3VudERlbGV0ZWQnPlxuICA+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnYWNjb3VudENvbmZpZyddID8/IHt9KSBhcyBBY2NvdW50Vmlld0NvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IEFjY291bnRWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1BlbmRpbmdJbnZpdGVzOiBtZXJnZWQuc2hvd1BlbmRpbmdJbnZpdGVzID8/IHRydWUsXG4gICAgICBzaG93T3JnYW5pemF0aW9uczogbWVyZ2VkLnNob3dPcmdhbml6YXRpb25zID8/IHRydWUsXG4gICAgICBzaG93TmV3T3JnQ3RhOiBtZXJnZWQuc2hvd05ld09yZ0N0YSA/PyBmYWxzZSxcbiAgICAgIHNob3dMb2dvdXQ6IG1lcmdlZC5zaG93TG9nb3V0ID8/IHRydWUsXG4gICAgICBzaG93RGVsZXRlQWNjb3VudDogbWVyZ2VkLnNob3dEZWxldGVBY2NvdW50ID8/IHRydWUsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgIG1hbmFnZU9yZ1JvdXRlOiBtZXJnZWQubWFuYWdlT3JnUm91dGUgPz8gREVGQVVMVF9NQU5BR0VfT1JHX1JPVVRFLFxuICAgICAgb25PcmdTd2l0Y2hlZDogbWVyZ2VkLm9uT3JnU3dpdGNoZWQsXG4gICAgICBvbk9yZ0NyZWF0ZWQ6IG1lcmdlZC5vbk9yZ0NyZWF0ZWQsXG4gICAgICBvbkxvZ2dlZE91dDogbWVyZ2VkLm9uTG9nZ2VkT3V0LFxuICAgICAgb25BY2NvdW50RGVsZXRlZDogbWVyZ2VkLm9uQWNjb3VudERlbGV0ZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IG9yZ3MgPSBzaWduYWw8T3JnYW5pemF0aW9uW10+KFtdKTtcbiAgcmVhZG9ubHkgb3Jnc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9yZ3NFcnJvciA9IHNpZ25hbDx1bmtub3duPihudWxsKTtcblxuICByZWFkb25seSBvcmdzRXJyb3JTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YSB8IG51bGw+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGVyciA9IHRoaXMub3Jnc0Vycm9yKCk7XG4gICAgaWYgKCFlcnIpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBjcmVhdGVFcnJvclN0YXRlUHJvcHMoZXJyLCB7XG4gICAgICB0aXRsZToge1xuICAgICAgICBvZmZsaW5lOiB0aGlzLnR0KCdvcmdzT2ZmbGluZVRpdGxlJyksXG4gICAgICAgIGVycm9yOiB0aGlzLnR0KCdvcmdzRXJyb3JUaXRsZScpLFxuICAgICAgfSxcbiAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgIG9mZmxpbmU6IHRoaXMudHQoJ29yZ3NPZmZsaW5lSGludCcpLFxuICAgICAgICBlcnJvcjogdGhpcy50dCgnb3Jnc0Vycm9ySGludCcpLFxuICAgICAgfSxcbiAgICAgIHJldHJ5TGFiZWw6IHRoaXMudHQoJ29yZ3NSZXRyeScpLFxuICAgICAgb25SZXRyeTogKCkgPT4gdGhpcy5sb2FkT3JncygpLFxuICAgICAgcmV0cnlpbmc6IHRoaXMub3Jnc0xvYWRpbmcoKSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY3JlYXRlT3JnT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGRlbGV0ZUFjY291bnRPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgYWN0aXZlT3JnTG9nb0ZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcGVuZGluZ0ludml0ZXMgPSBzaWduYWw8UGVuZGluZ0ludml0YXRpb25bXT4oW10pO1xuICByZWFkb25seSBwZW5kaW5nSW52aXRlc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBpbnZpdGVBY2NlcHRpbmcgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgcGFnZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgncGFnZVRpdGxlJykpO1xuICByZWFkb25seSBwYWdlRGVzY3JpcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdwYWdlRGVzY3JpcHRpb24nKSk7XG4gIHJlYWRvbmx5IG9yZ3NUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NUaXRsZScpKTtcbiAgcmVhZG9ubHkgb3Jnc0FjdGl2ZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc0FjdGl2ZVRpdGxlJykpO1xuICByZWFkb25seSBvcmdzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdvcmdzRW1wdHknKSk7XG4gIHJlYWRvbmx5IG9yZ3NNb3JlSW5mbyA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NNb3JlSW5mbycpKTtcbiAgcmVhZG9ubHkgb3Jnc05ld1F1ZXN0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnb3Jnc05ld1F1ZXN0aW9uJykpO1xuICByZWFkb25seSBvcmdzTmV3SGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ29yZ3NOZXdIaW50JykpO1xuICByZWFkb25seSBuZXdPcmdDdGFQcm9wcyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgdGl0bGU6IHRoaXMudHQoJ29yZ3NOZXdRdWVzdGlvbicpLFxuICAgIGRlc2NyaXB0aW9uOiB0aGlzLnR0KCdvcmdzTmV3SGludCcpLFxuICAgIHBhZGRpbmc6ICcxNnB4JyxcbiAgICBib3JkZXJSYWRpdXM6ICcxNHB4JyxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBwb3NpdGlvbjogJ3JpZ2h0JyxcbiAgICAgIGNvbHVtbmVkOiBmYWxzZSxcbiAgICAgIGJ1dHRvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IHRoaXMudHQoJ29yZ3NOZXdDdGEnKSxcbiAgICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICAgICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgICAgICAgc2l6ZTogJ2RlZmF1bHQnLFxuICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgIHN0YXRlOiAnRU5BQkxFRCcsXG4gICAgICAgICAgdG9rZW46ICdhY2NvdW50LW5ldy1vcmcnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9IGFzIEJ1dHRvbkdyb3VwTWV0YWRhdGEsXG4gIH0pKTtcbiAgcmVhZG9ubHkgbG9nb3V0VGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdsb2dvdXRUaXRsZScpKTtcbiAgcmVhZG9ubHkgbG9nb3V0SGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudHQoJ2xvZ291dEhpbnQnKSk7XG4gIHJlYWRvbmx5IGRhbmdlclRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnZGFuZ2VyVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGRhbmdlckRlbGV0ZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50dCgnZGFuZ2VyRGVsZXRlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IGRhbmdlckRlbGV0ZUhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnR0KCdkYW5nZXJEZWxldGVIaW50JykpO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ0lkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLmF1dGgudXNlcigpIGFzIHtcbiAgICAgIGFjdGl2ZU9yZ0lkPzogc3RyaW5nO1xuICAgICAgYWN0aXZlT3JnPzogc3RyaW5nO1xuICAgIH0gfCBudWxsO1xuICAgIGNvbnN0IGV4cGxpY2l0ID0gdT8uYWN0aXZlT3JnSWQgPz8gdT8uYWN0aXZlT3JnO1xuICAgIHJldHVybiBleHBsaWNpdCB8fCB0aGlzLm9yZ3MoKVswXT8uaWQgfHwgJyc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZU9yZ1JvbGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgcm9sZXMgPSAodGhpcy5hdXRoIGFzIHVua25vd24gYXMgeyByb2xlcz86ICgpID0+IHN0cmluZ1tdIH0pLnJvbGVzPy4oKSA/PyBbXTtcbiAgICByZXR1cm4gcm9sZXNbMF0gPz8gbnVsbDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlT3JnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcmdzKCkuZmluZChvID0+IG8uaWQgPT09IHRoaXMuYWN0aXZlT3JnSWQoKSkgPz8gdGhpcy5vcmdzKClbMF0gPz8gbnVsbCk7XG5cbiAgcmVhZG9ubHkgbG9nb3V0QnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdsb2dvdXQnKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgdG9rZW46ICdhY2NvdW50LWxvZ291dCcsXG4gIH0pKTtcblxuICByZWFkb25seSBkZWxldGVBY2NvdW50QnV0dG9uUHJvcHMgPSBjb21wdXRlZDxQYXJ0aWFsPEJ1dHRvbk1ldGFkYXRhPj4oKCkgPT4gKHtcbiAgICB0ZXh0OiB0aGlzLnR0KCdkYW5nZXJEZWxldGVDdGEnKSxcbiAgICBjb2xvcjogJ2RhcmsnLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgc2hhcGU6ICdyb3VuZCcsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgdG9rZW46ICdhY2NvdW50LWRlbGV0ZScsXG4gIH0pKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBucyA9IHRoaXMubnM7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMobnMsIEFDQ09VTlRfVklFV19JMThOKTtcbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgICB0aGlzLmxvYWRPcmdzKCk7XG4gICAgdGhpcy5sb2FkUGVuZGluZ0ludml0ZXMoKTtcbiAgICBjb25uZWN0UGFnZVJlZnJlc2goYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMubG9hZE9yZ3MoKSwgdGhpcy5sb2FkUGVuZGluZ0ludml0ZXMoKV0pO1xuICAgIH0pO1xuICB9XG5cbiAgb3JnVHlwZUxhYmVsKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgUEVSU09OQUw6IHRoaXMudHQoJ29yZ3NUeXBlUGVyc29uYWwnKSxcbiAgICAgIFBSSVZBVEU6IHRoaXMudHQoJ29yZ3NUeXBlUHJpdmF0ZScpLFxuICAgICAgUFVCTElDOiB0aGlzLnR0KCdvcmdzVHlwZVB1YmxpYycpLFxuICAgICAgQlVTSU5FU1M6IHRoaXMudHQoJ29yZ3NUeXBlQnVzaW5lc3MnKSxcbiAgICB9O1xuICAgIHJldHVybiBtYXBbdHlwZV0gPz8gdHlwZTtcbiAgfVxuXG4gIG9uRGVsZXRlQWNjb3VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUFjY291bnRPcGVuLnNldCh0cnVlKTtcbiAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25BY2NvdW50RGVsZXRlZD8uKCk7XG4gIH1cblxuICBvbk1hbmFnZU9yZygpOiB2b2lkIHtcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRDb25maWcoKS5tYW5hZ2VPcmdSb3V0ZSk7XG4gIH1cblxuICBvbk5ld09yZygpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZU9yZ09wZW4uc2V0KHRydWUpO1xuICB9XG5cbiAgb25PcmdDcmVhdGVkKG5ld09yZzogT3JnYW5pemF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkT3JncygpO1xuICAgIHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbk9yZ0NyZWF0ZWQ/LihuZXdPcmcpO1xuICB9XG5cbiAgb25Nb3JlSW5mbygpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oe1xuICAgICAgY29tcG9uZW50OiBPcmdJbmZvU2hlZXRDb21wb25lbnQsXG4gICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICB0aXRsZTogdGhpcy50dCgnb3Jnc0luZm9UaXRsZScpLFxuICAgICAgICBzdWJ0aXRsZTogdGhpcy50dCgnb3Jnc0luZm9TdWJ0aXRsZScpLFxuICAgICAgICBib2R5OiB0aGlzLnR0KCdvcmdzSW5mb0NvbnRlbnQnKSxcbiAgICAgICAgY2xvc2VMYWJlbDogdGhpcy50dCgnb3Jnc0luZm9DbG9zZScpLFxuICAgICAgICBjbG9zZVByb3BzOiB7XG4gICAgICAgICAgdGV4dDogdGhpcy50dCgnb3Jnc0luZm9DbG9zZScpLFxuICAgICAgICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYnJlYWtwb2ludHM6IHtcbiAgICAgICAgYnJlYWtwb2ludHM6IFswLCAwLjg1XSxcbiAgICAgICAgaW5pdGlhbEJyZWFrcG9pbnQ6IDAuODUsXG4gICAgICAgIHNob3dIYW5kbGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgb25Mb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRoLmxvZ291dFdpdGhDb25maXJtYXRpb24oKTtcbiAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Mb2dnZWRPdXQ/LigpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUGVuZGluZ0ludml0ZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5wZW5kaW5nSW52aXRlc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgIHRoaXMub3JnU2VydmljZVxuICAgICAgICAuZ2V0UGVuZGluZ0ludml0YXRpb25zKClcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogaXRlbXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlcy5zZXQoaXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYWNjZXB0UGVuZGluZ0ludml0ZShpbnZpdGU6IFBlbmRpbmdJbnZpdGF0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW52aXRlQWNjZXB0aW5nKCkpIHJldHVybjtcbiAgICB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQoaW52aXRlLm9yZ0lkKTtcbiAgICB0aGlzLm9yZ1NlcnZpY2VcbiAgICAgIC5hY2NlcHRJbnZpdGF0aW9uKGludml0ZS5vcmdJZClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCdpbnZpdGVBY2NlcHRlZCcpLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzNTAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucGVuZGluZ0ludml0ZXMudXBkYXRlKGxpc3QgPT4gbGlzdC5maWx0ZXIoaSA9PiBpLm9yZ0lkICE9PSBpbnZpdGUub3JnSWQpKTtcbiAgICAgICAgICB0aGlzLmxvYWRPcmdzKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHsgY29udGV4dDogJ2FjY291bnQuYWNjZXB0UGVuZGluZ0ludml0ZScgfSk7XG4gICAgICAgICAgdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KG51bGwpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5pbnZpdGVBY2NlcHRpbmcuc2V0KG51bGwpLFxuICAgICAgfSk7XG4gIH1cblxuICBkZWNsaW5lUGVuZGluZ0ludml0ZShpbnZpdGU6IFBlbmRpbmdJbnZpdGF0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW52aXRlQWNjZXB0aW5nKCkpIHJldHVybjtcbiAgICB0aGlzLmludml0ZUFjY2VwdGluZy5zZXQoaW52aXRlLm9yZ0lkKTtcbiAgICB0aGlzLm9yZ1NlcnZpY2VcbiAgICAgIC5kZWNsaW5lSW52aXRhdGlvbihpbnZpdGUub3JnSWQpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50dCgnaW52aXRlRGVjbGluZWQnKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBkdXJhdGlvbjogMjUwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzLnVwZGF0ZShsaXN0ID0+IGxpc3QuZmlsdGVyKGkgPT4gaS5vcmdJZCAhPT0gaW52aXRlLm9yZ0lkKSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHsgY29udGV4dDogJ2FjY291bnQuZGVjbGluZVBlbmRpbmdJbnZpdGUnIH0pO1xuICAgICAgICAgIHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHRoaXMuaW52aXRlQWNjZXB0aW5nLnNldChudWxsKSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3JncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm9yZ3NMb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLm9yZ3NFcnJvci5zZXQobnVsbCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KHJlc29sdmUgPT4ge1xuICAgICAgdGhpcy5vcmdTZXJ2aWNlLmxpc3RNeU9yZ3MoKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBvcmdzID0+IHtcbiAgICAgICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuYWN0aXZlT3JnSWQoKTtcbiAgICAgICAgICB0aGlzLm9yZ3Muc2V0KFsuLi5vcmdzXS5zb3J0KChhLCBiKSA9PiAoYS5pZCA9PT0gYWN0aXZlSWQgPyAtMSA6IGIuaWQgPT09IGFjdGl2ZUlkID8gMSA6IDApKSk7XG4gICAgICAgICAgdGhpcy5hY3RpdmVPcmdMb2dvRmFpbGVkLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5vcmdzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5vcmdzRXJyb3Iuc2V0KGVycik7XG4gICAgICAgICAgdGhpcy5vcmdzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHR0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.213';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yMTMnO1xuIl19
5
+ export const VERSION = '4.0.211';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yMTEnO1xuIl19
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.213';
59
+ const VERSION = '4.0.211';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -50170,13 +50170,14 @@ class AccountViewComponent {
50170
50170
  this.dangerDeleteHint = computed(() => this.tt('dangerDeleteHint'));
50171
50171
  this.activeOrgId = computed(() => {
50172
50172
  const u = this.auth.user();
50173
- return u?.activeOrgId ?? u?.activeOrg ?? '';
50173
+ const explicit = u?.activeOrgId ?? u?.activeOrg;
50174
+ return explicit || this.orgs()[0]?.id || '';
50174
50175
  });
50175
50176
  this.activeOrgRole = computed(() => {
50176
50177
  const roles = this.auth.roles?.() ?? [];
50177
50178
  return roles[0] ?? null;
50178
50179
  });
50179
- this.activeOrg = computed(() => this.orgs().find(o => o.id === this.activeOrgId()) ?? null);
50180
+ this.activeOrg = computed(() => this.orgs().find(o => o.id === this.activeOrgId()) ?? this.orgs()[0] ?? null);
50180
50181
  this.logoutButtonProps = computed(() => ({
50181
50182
  text: this.tt('logout'),
50182
50183
  color: 'dark',