@provoly/dashboard 0.22.5 → 0.22.6
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.
- package/README.md +0 -2
- package/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.d.ts +8 -4
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +7 -6
- package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +44 -30
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +3 -3
- package/esm2022/lib/core/components/about/about.component.mjs +3 -3
- package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +3 -3
- package/esm2022/lib/core/components/select/select.component.mjs +5 -4
- package/esm2022/lib/core/components/select/select.module.mjs +5 -4
- package/esm2022/lib/core/components/select-image/select-image.component.mjs +2 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +16 -1
- package/esm2022/lib/dashboard/item-utils.mjs +2 -2
- package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +1 -4
- package/esm2022/lib/dashboard/store/refresh.service.mjs +14 -9
- package/esm2022/presentation/components/presentation.component.mjs +3 -3
- package/esm2022/presentation/style/css.component.mjs +2 -2
- package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +3 -3
- package/esm2022/restitution/style/css.component.mjs +2 -2
- package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +12 -9
- package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +19 -17
- package/esm2022/toolbox/components/toolbox.component.mjs +7 -4
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +3 -3
- package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +4 -5
- package/esm2022/widgets/widget-graph/style/css.component.mjs +2 -2
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
- package/fesm2022/provoly-dashboard-admin.mjs +49 -34
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-presentation.mjs +4 -4
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +4 -4
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +29 -21
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +4 -4
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +5 -6
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2 -2
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +56 -39
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/select/select.module.d.ts +2 -1
- package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +1 -1
- package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +8 -1
- package/lib/dashboard/store/dashboard.selectors.d.ts +0 -13
- package/lib/dashboard/store/refresh.service.d.ts +3 -1
- package/package.json +7 -7
- package/presentation/style/_o-pry-presentation.scss +0 -3
- package/styles/components/_a-chip.scss +6 -0
- package/styles/components/_a-pry-select.scss +13 -0
- package/styles/components/_a-range-slider.scss +4 -5
- package/styles/components/_m-nav-links.scss +2 -7
- package/styles/components/_o-widget.scss +6 -0
- package/styles-theme/abstracts-theme/variables/_variables-colors.scss +4 -3
- package/styles-theme/base-theme/_typography.theme.scss +5 -2
- package/styles-theme/components-theme/_a-btn.theme.scss +3 -7
- package/styles-theme/components-theme/_a-label.theme.scss +1 -0
- package/styles-theme/components-theme/_a-pry-select.theme.scss +4 -6
- package/styles-theme/components-theme/_a-range-slider.theme.scss +16 -16
- package/styles-theme/components-theme/_a-table.theme.scss +2 -2
- package/styles-theme/components-theme/_m-btn-sorttable.theme.scss +3 -3
- package/styles-theme/components-theme/_m-nav-links.theme.scss +18 -0
- package/styles-theme/components-theme/_o-pry-presentation.theme.scss +9 -0
- package/styles-theme/components-theme/_o-tabs.theme.scss +1 -1
- package/styles-theme/layout-theme/_o-base-layout.theme.scss +1 -0
- package/styles-theme/main-theme.scss +1 -0
- package/toolbox/components/automate-refresh/automate-refresh.component.d.ts +3 -1
- package/toolbox/components/refresh-datasets/refresh-datasets.component.d.ts +3 -2
- package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +3 -0
- package/widgets/widget-graph/component/widget-graph.component.d.ts +0 -1
- package/widgets/widget-graph/style/_o-widget-graph.scss +14 -0
|
@@ -28,7 +28,7 @@ import * as i10 from "../datasource-selector/datasource-selector.component";
|
|
|
28
28
|
import * as i11 from "../../../../core/components/translate-id/translate-id.pipe";
|
|
29
29
|
import * as i12 from "../../../../core/i18n/i18n.pipe";
|
|
30
30
|
import * as i13 from "./resultset-size.pipe";
|
|
31
|
-
export const WIDGET_HEADER_HEIGHT =
|
|
31
|
+
export const WIDGET_HEADER_HEIGHT = 32;
|
|
32
32
|
export class PryWidgetHeaderComponent extends SubscriptionnerDirective {
|
|
33
33
|
set manifest(manifest) {
|
|
34
34
|
this.manifest$.next(manifest);
|
|
@@ -453,4 +453,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
453
453
|
}], widgetIndex: [{
|
|
454
454
|
type: Input
|
|
455
455
|
}] } });
|
|
456
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQXFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBcUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTFFLE9B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O2dCQUNQLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNGLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFTUixRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBYU0sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEdlb01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9kYXRhc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRHcmlkTGF5b3V0LCBEYXNoYm9hcmRNYW5pZmVzdCwgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL3dpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IERhdGFzZXQsIERhdGFTb3VyY2UsIE5hbWVkUXVlcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBMaWJyYXJ5VHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ltYWdlL2ltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJveE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2lkZ2V0UGxhY2VtZW50VXRpbHMgfSBmcm9tICcuLi93aWRnZXQtcGxhY2VtZW50L3dpZGdldC1wbGFjZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGV4dE1lbnVEaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLCBERUZBVUxUX1JPV1NfTlVNQkVSIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZGFzaGJvYXJkLmNvbnRhbnRzJztcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9IRUFERVJfSEVJR0hUID0gMzA7XG5cbmV4cG9ydCB0eXBlIEhlYWRlckFjdGlvbiA9IHtcbiAgaWNvbjogc3RyaW5nO1xuICBhY3Rpb246ICh0aGF0OiBQcnlXaWRnZXRIZWFkZXJDb21wb25lbnQpID0+IHZvaWQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogKHRoYXQ6IFByeVdpZGdldEhlYWRlckNvbXBvbmVudCkgPT4gYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVdpZGdldEhlYWRlckNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlTW9kYWwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRlbXBsYXRlTW9kYWwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCd0b2dnbGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRvZ2dsZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlNZW51JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvdmVybGF5TWVudSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDYXRhbG9nJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvdmVybGF5Q2F0YWxvZyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlTcG90JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvdmVybGF5U3BvdCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RvZ2dsZVBhbmVsJykgdG9nZ2xlUGFuZWwhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3MnKSBjcm9zcyE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd2YWxpZGF0ZScpIHZhbGlkYXRlITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3ZhbGlkYXRlQ2F0YWxvZycpIHZhbGlkYXRlQ2F0YWxvZyE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjYW5jZWwnKSBjYW5jZWwhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3NDYXRhbG9nJykgY3Jvc3NDYXRhbG9nITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q2F0YWxvZycpIGlucHV0Q2F0YWxvZyE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ21lbnVMaXN0JykgbWVudUxpc3QhOiBFbGVtZW50UmVmO1xuICBtYW5pZmVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldE1hbmlmZXN0IHwgbnVsbD4obnVsbCk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcGxhY2VzOiBXaWRnZXRNYW5pZmVzdFtdID0gW107XG4gIHNlbGVjdGVkSXRlbT86IEVsZW1lbnQgfCBudWxsO1xuICB1c2VkRGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG4gIG9wZW5TdWI/OiBTdWJzY3JpcHRpb247XG4gIHRhcmdldE1hbmlmZXN0PzogRGFzaGJvYXJkTWFuaWZlc3Q7XG5cbiAgQElucHV0KCkgc2V0IG1hbmlmZXN0KG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCB8IG51bGwpIHtcbiAgICB0aGlzLm1hbmlmZXN0JC5uZXh0KG1hbmlmZXN0KTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvcGVuRGF0YSQob3BlbiQ6IE9ic2VydmFibGU8dm9pZD4gfCBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgdGhpcy5vcGVuU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub3BlblN1YiA9IG9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxPcHRpb25zOiBIZWFkZXJBY3Rpb25bXSB8IG51bGwgPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyT3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCB7fSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGlzcGxheUNvdW50ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgbWFuaWZlc3RNb2RpZmllZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB3aWRnZXRJbmRleDogbnVtYmVyOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfT4oKTtcblxuICBpc0VkaXQgPSBmYWxzZTtcbiAgY2F0YWxvZ0luZm86IFdpZGdldCA9IHtcbiAgICBpZDogdjQoKSxcbiAgICBpbWFnZTogJycsXG4gICAgbmFtZTogJycsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGNvbnRlbnQ6ICcnLFxuICAgIGRhdGFzb3VyY2U6IFtdLFxuICAgIG1vZGlmaWNhdGlvbkRhdGU6ICcnXG4gIH07XG5cbiAgQElucHV0KCkgc2V0IGRhdGFzb3VyY2VJZHMoZGF0YXNvdXJjZUlkczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyQubmV4dChkYXRhc291cmNlSWRzKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB3aWRnZXRJbmRleCh3aWRnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5fd2lkZ2V0SW5kZXgkLm5leHQod2lkZ2V0SW5kZXgpO1xuICAgIHRoaXMuX3dpZGdldEluZGV4ID0gd2lkZ2V0SW5kZXg7XG4gIH1cblxuICBkaXNwbGF5Q29udGV4dE1lbnUkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBXaWRnZXRDb250ZXh0TWVudURpc3BsYXlPcHRpb25zPjtcbiAgdGFyZ2V0SW5kZXhlcyQ6IE9ic2VydmFibGU8bnVtYmVyW10+O1xuICBfd2lkZ2V0SW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBfd2lkZ2V0SW5kZXghOiBudW1iZXI7XG4gIG9wZW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWREYXRhU291cmNlSWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcblxuICB3aW5kb3dNYW5pZmVzdDogRGFzaGJvYXJkTWFuaWZlc3QgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB3aW5kb3dNYW5pZmVzdCQ6IE9ic2VydmFibGU8RGFzaGJvYXJkTWFuaWZlc3Q+O1xuICBwcml2YXRlIG1lbnVSZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIGNvbWJvUmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjb25maXJtUmVtb3ZlUmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjYXRhbG9nUmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBzcG90UmVmPzogT3ZlcmxheVJlZjtcbiAgbWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICB0eXBlOiBMaWJyYXJ5VHlwZXMgPSBMaWJyYXJ5VHlwZXMuSUxMVVNUUkFUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHRvb2xib3hNZW51U2VydmljZTogVG9vbGJveE1lbnVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy53aW5kb3dNYW5pZmVzdCQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy53aW5kb3dNYW5pZmVzdClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCBjKSA9PiBlcXVhbChwLCBjKSkpO1xuXG4gICAgdGhpcy50YXJnZXRJbmRleGVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy50YXJnZXRUZW5hbnRzSW5kZXhlcyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMud2luZG93TWFuaWZlc3QkLnN1YnNjcmliZSgobWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy53aW5kb3dNYW5pZmVzdCA9IG1hbmlmZXN0O1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZGlzcGxheUNvbnRleHRNZW51JCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmRpc3BsYXlPcHRpb25zKVxuICAgICAgLnBpcGUobWFwKChvcHRpb25zKSA9PiBvcHRpb25zLndpZGdldENvbnRleHRNZW51KSk7XG5cbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpLFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkXG4gICAgXSkucGlwZShtYXAoKFthbGxEc3MsIGRzSWRzXSkgPT4gYWxsRHNzLmZpbHRlcigoZHMpID0+IGRzSWRzLmluY2x1ZGVzKGRzLmlkKSkpKTtcbiAgfVxuXG4gIG9uQXJyb3dVcCgpIHtcbiAgICBjb25zdCBsYXN0RWxlbWVudCA9IHRoaXMubWVudUxpc3QubmF0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGxhc3RFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGZvY3VzQ2hpbGRyZW5FbGVtZW50KSB7XG4gICAgICBmb2N1c0NoaWxkcmVuRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uQXJyb3dEb3duKCkge1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHRoaXMubWVudUxpc3QubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0/Lm5leHRFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gZmlyc3RFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGZvY3VzQ2hpbGRyZW5FbGVtZW50KSB7XG4gICAgICBmb2N1c0NoaWxkcmVuRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50TGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLndpbmRvd01hbmlmZXN0Py5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gIH1cblxuICBnZXQgaGFzR3JpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGF5b3V0ICE9PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTDtcbiAgfVxuXG4gIGdldCBjdXJyZW50UGxhY2VtZW50SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VzLmZpbmRJbmRleChcbiAgICAgIChwbGFjZSkgPT5cbiAgICAgICAgdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKT8ubGF5b3V0LnggPT09IHBsYWNlLmxheW91dC54ICYmXG4gICAgICAgIHRoaXMubWFuaWZlc3QkLmdldFZhbHVlKCk/LmxheW91dC55ID09PSBwbGFjZS5sYXlvdXQueSAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQud2lkdGggPT09IHBsYWNlLmxheW91dC53aWR0aCAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQuaGVpZ2h0ID09PSBwbGFjZS5sYXlvdXQuaGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIG1lbnVPcGVuKCRldmVudD86IE1vdXNlRXZlbnQsIGZvcmNlT3Blbj86IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1lbnUgPSAhdGhpcy5tZW51O1xuICAgIGNvbnN0IG11c3RPcGVuID0gZm9yY2VPcGVuICE9PSB1bmRlZmluZWQgPyBmb3JjZU9wZW4gOiAhdGhpcy5tZW51UmVmO1xuICAgIGlmIChtdXN0T3Blbikge1xuICAgICAgdGhpcy5tZW51UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCcsXG4gICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy50b2dnbGVQYW5lbClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9mZnNldFg6IDUwLFxuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSlcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1lbnUnIH0pKTtcbiAgICAgIHRoaXMubWVudVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLm1lbnVPcGVuKCkpO1xuICAgICAgdGhpcy5tZW51UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5TWVudSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLm1lbnVMaXN0Py5uYXRpdmVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgY29uc3QgZm9jdXMgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgICAgIGZvY3VzID8gZm9jdXMuZm9jdXMoKSA6IGZvY3VzQ2hpbGRyZW5FbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVudVJlZj8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5tZW51UmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1lbnUnIH0pKTtcbiAgICAgIHRoaXMudG9nZ2xlUGFuZWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY29tYm9SZWYpIHtcbiAgICAgIHRoaXMuY29tYm9SZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLXdpZGdldF9fY2hvb3NlLXJlc3VsdHNldCddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLWNvbWJvJyB9KSk7XG4gICAgICB0aGlzLmNvbWJvUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMudG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpKTtcbiAgICAgIHRoaXMuY29tYm9SZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlucHV0Q2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21ib1JlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNvbWJvUmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLWNvbWJvJyB9KSk7XG4gICAgICB0aGlzLm1lbnVPcGVuKHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmVJbk5ld1dpbmRvdyh3aWRnZXRJbmRleDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLm1vdmVXaWRnZXQoeyB3aWRnZXRJbmRleCwgdGFyZ2V0SW5kZXggfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy50b2dnbGVFZGl0aW9uTW9kZSh7IGZvcmNlOiBmYWxzZSB9KSk7XG4gICAgdGhpcy5tZW51T3BlbigpO1xuICB9XG5cbiAgbWF4aW1pemUod2lkZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5tYXhpbWl6ZVdpZGdldCh7IHdpZGdldEluZGV4IH0pKTtcbiAgICB0aGlzLm1lbnVPcGVuKCk7XG4gIH1cblxuICBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMuX3dpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4udGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKSxcbiAgICAgICAgZGF0YXNvdXJjZTogdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkLmdldFZhbHVlKClcbiAgICAgIH0gYXMgdW5rbm93biBhcyBXaWRnZXRNYW5pZmVzdFxuICAgIH0pO1xuICAgIHRoaXMudG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpO1xuICB9XG5cbiAgdG9nZ2xlUmVtb3ZlQ29uZmlybSgkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpcm1SZW1vdmVSZWYpIHtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1vZGFsJyB9KSk7XG4gICAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy50b2dnbGVSZW1vdmVDb25maXJtKCkpO1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZU1vZGFsLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYuby1tb2RhbC13cmFwcGVyJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgIGlmICghIXBhbmVsKSB7XG4gICAgICAgICAgcGFuZWwuc3R5bGUubGVmdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gcGFuZWwuY2xpZW50V2lkdGgsICRldmVudC5jbGllbnRYIC0gMzApKSArICdweCc7XG4gICAgICAgICAgcGFuZWwuc3R5bGUudG9wID0gTWF0aC5tYXgoMCwgTWF0aC5taW4od2luZG93LmlubmVySGVpZ2h0IC0gcGFuZWwuY2xpZW50SGVpZ2h0LCAkZXZlbnQuY2xpZW50WSAtIDEwKSkgKyAncHgnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcm9zcz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudG9nZ2xlUGFuZWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctbW9kYWwnIH0pKTtcbiAgICAgIHRoaXMubWVudU9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBjb25maXJtUmVtb3ZlKCkge1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgdGhpcy5jYW5jZWxSZW1vdmVDb25maXJtKCk7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgY29uc3QgbGlzdFdpZGdldE1hbmlmZXN0cyA9IFsuLi4odGhpcy53aW5kb3dNYW5pZmVzdCB8fCB7IHdpZGdldHM6IFtdIH0pLndpZGdldHNdO1xuICAgIGxpc3RXaWRnZXRNYW5pZmVzdHMuc3BsaWNlKHRoaXMuX3dpZGdldEluZGV4LCAxKTtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZE1hbmlmZXN0KHtcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi50aGlzLndpbmRvd01hbmlmZXN0LFxuICAgICAgICAgIHdpZGdldHM6IGxpc3RXaWRnZXRNYW5pZmVzdHNcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2FuY2VsUmVtb3ZlQ29uZmlybSgpIHtcbiAgICB0aGlzLmlzRWRpdCA9IGZhbHNlO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWY/LmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVSZW1vdmVDb25maXJtKCkpO1xuICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1lbnVSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLm1lbnVSZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1lbnUnIH0pKTtcbiAgfVxuXG4gIHRvZ2dsZUNhdGFsb2coKSB7XG4gICAgaWYgKCF0aGlzLmNhdGFsb2dSZWYpIHtcbiAgICAgIHRoaXMuY2F0YWxvZ0luZm8gPSB7XG4gICAgICAgIGlkOiB2NCgpLFxuICAgICAgICBpbWFnZTogJycsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICBkYXRhc291cmNlOiBbXSxcbiAgICAgICAgbW9kaWZpY2F0aW9uRGF0ZTogJydcbiAgICAgIH07XG4gICAgICB0aGlzLmNhdGFsb2dSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1jYXRhbG9nJyB9KSk7XG4gICAgICB0aGlzLmNhdGFsb2dSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy50b2dnbGVDYXRhbG9nKCkpO1xuICAgICAgdGhpcy5jYXRhbG9nUmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5Q2F0YWxvZywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcm9zc0NhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2F0YWxvZ1JlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNhdGFsb2dSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctY2F0YWxvZycgfSkpO1xuICAgICAgdGhpcy5tZW51T3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpcm1DYXRhbG9nKCkge1xuICAgIGlmICh0aGlzLnRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyh0aGlzLmNhdGFsb2dJbmZvLm5hbWUpKSB7XG4gICAgICB0aGlzLnRvb2xib3hNZW51U2VydmljZS5hZGRUb0NhdGFsb2coXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50aGlzLmNhdGFsb2dJbmZvLFxuICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHsgLi4udGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKSwgdGl0bGU6IHRoaXMuY2F0YWxvZ0luZm8ubmFtZSB9KVxuICAgICAgICB9LFxuICAgICAgICB0aGlzLl93aWRnZXRJbmRleFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVDYXRhbG9nKCk7XG4gIH1cblxuICBleGVjdXRlQWN0aW9uKG9wdGlvbnM6IEhlYWRlckFjdGlvbikge1xuICAgIG9wdGlvbnMuYWN0aW9uKHRoaXMpO1xuICAgIHRoaXMubWVudU9wZW4oKTtcbiAgfVxuXG4gIGlzQWN0aW9uRGlzYWJsZWQob3B0aW9uOiBIZWFkZXJBY3Rpb24pIHtcbiAgICByZXR1cm4gISFvcHRpb24/LmRpc2FibGVkID8gb3B0aW9uPy5kaXNhYmxlZCh0aGlzKSA6IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlQ2hhbmdlU3BvdCgpIHtcbiAgICBpZiAoIXRoaXMuc3BvdFJlZikge1xuICAgICAgdGhpcy5wbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHsgdHlwZTogJ2ljb24nIH0gYXMgV2lkZ2V0TWFuaWZlc3QsIHRoaXMuY3VycmVudExheW91dCk7XG4gICAgICB0aGlzLnBsYWNlc01hbmlmZXN0KCk7XG5cbiAgICAgIHRoaXMuc3BvdFJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLXNwb3QnIH0pKTtcbiAgICAgIHRoaXMuc3BvdFJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlQ2hhbmdlU3BvdCgpKTtcbiAgICAgIHRoaXMuc3BvdFJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheVNwb3QsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNwb3RSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5zcG90UmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLXNwb3QnIH0pKTtcbiAgICAgIHRoaXMubWVudU9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0Nyb3NzRWxlbWVudCgpIHtcbiAgICB0aGlzLmNyb3NzPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuY3Jvc3NDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXNWYWxpZGF0aW9uKCkge1xuICAgIHRoaXMudmFsaWRhdGVDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIGlmICghdGhpcy50b29sYm94TWVudVNlcnZpY2UuaXNWYWxpZEZvckNhdGFsb2codGhpcy5jYXRhbG9nSW5mbz8ubmFtZSkpIHtcbiAgICAgIHRoaXMuY2FuY2VsPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXNJbnB1dENhdGFsb2coKSB7XG4gICAgdGhpcy5pbnB1dENhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBkaXNhYmxlVmFsaWRhdGlvbigpIHtcbiAgICBpZiAoIXRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLmlzVmFsaWRGb3JDYXRhbG9nKHRoaXMuY2F0YWxvZ0luZm8/Lm5hbWUpKSB7XG4gICAgICB0aGlzLmNyb3NzQ2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBkYXRhc291cmNlc0NoYW5nZWQoJGV2ZW50OiBEYXRhU291cmNlW10pIHtcbiAgICBjb25zdCBpZHMgPSAkZXZlbnQubWFwKChkcykgPT4gZHMuaWQpO1xuICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyQuZ2V0VmFsdWUoKSkgIT09IEpTT04uc3RyaW5naWZ5KGlkcykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlSWRzJC5uZXh0KGlkcyk7XG4gICAgfVxuICB9XG5cbiAgaXNHZW8oZHM6IE5hbWVkUXVlcnkgfCBEYXRhc2V0KSB7XG4gICAgcmV0dXJuIGRzLm1ldGFkYXRhPy5maW5kKChtKSA9PiBtLm1ldGFkYXRhRGVmLm5hbWUgPT09IEdlb01ldGFkYXRhLk5BTUVTUEFDRSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHBsYWNlc01hbmlmZXN0KCkge1xuICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQhO1xuICAgIHRoaXMudGFyZ2V0TWFuaWZlc3QgPSB7XG4gICAgICB3aWRnZXRzOiB0aGlzLnBsYWNlcy5tYXAoKHBsYWNlLCBpZHgpID0+ICh7XG4gICAgICAgIC4uLnBsYWNlLFxuICAgICAgICB0eXBlOiAnZmlsbGVyJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGluZGV4OiBlcXVhbChjdXJyZW50TGF5b3V0LCBwbGFjZS5sYXlvdXQpXG4gICAgICAgICAgICA/IC0xXG4gICAgICAgICAgICA6IHRoaXMucGxhY2VzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAocGwpID0+XG4gICAgICAgICAgICAgICAgICBwbGFjZS5sYXlvdXQueCA9PT0gcGwubGF5b3V0LnggJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLmxheW91dC55ID09PSBwbC5sYXlvdXQueSAmJlxuICAgICAgICAgICAgICAgICAgcGxhY2UubGF5b3V0LndpZHRoID09PSBwbC5sYXlvdXQud2lkdGggJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLmxheW91dC5oZWlnaHQgPT09IHBsLmxheW91dC5oZWlnaHRcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICBzb3VyY2VQbGFjZTogY3VycmVudExheW91dCxcbiAgICAgICAgICB0YXJnZXRQbGFjZTogcGxhY2UubGF5b3V0LFxuICAgICAgICAgIHdpbmRvd01hbmlmZXN0OiB0aGlzLndpbmRvd01hbmlmZXN0XG4gICAgICAgIH1cbiAgICAgIH0pKSxcbiAgICAgIGdyaWQ6IHtcbiAgICAgICAgbGF5b3V0OiB0aGlzLmN1cnJlbnRMYXlvdXQsXG4gICAgICAgIHJvd3M6IHRoaXMud2luZG93TWFuaWZlc3Q/LmdyaWQ/LnJvd3MgPz8gREVGQVVMVF9ST1dTX05VTUJFUixcbiAgICAgICAgY29sdW1uczogdGhpcy53aW5kb3dNYW5pZmVzdD8uZ3JpZD8uY29sdW1ucyA/PyBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLFxuICAgICAgICBnYXA6IDNcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9wZW5TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgPGgyIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fdGl0bGVcIiAqbmdJZj1cIihtYW5pZmVzdCQgfCBhc3luYyk/LnRpdGxlOyBlbHNlIHF1ZXJ5U2VsZWN0b3JcIj5cbiAgICAgIHt7IChtYW5pZmVzdCQgfCBhc3luYyk/LnRpdGxlIH19XG4gICAgPC9oMj5cbiAgICA8bmctdGVtcGxhdGUgI3F1ZXJ5U2VsZWN0b3I+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkcyBvZiB1c2VkRGF0YXNvdXJjZXMkIHwgYXN5bmNcIiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3F1ZXJ5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImRzLmlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnaWNvbicsIG5vRGVmYXVsdDogdHJ1ZSB9IHwgYXN5bmMgYXMgdXJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbWcgW2hlaWdodF09XCIyMFwiIFtzcmNdPVwidXJsXCIgW3dpZHRoXT1cIjIwXCIgYWx0PVwiXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9faWNvblwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9fbmFtZVwiPnt7IGRzLm5hbWUgfX08L2gzPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9fbmFtZVwiICpuZ0lmPVwiZGlzcGxheUNvdW50ICYmICFpc0dlbyhkcylcIj5cbiAgICAgICAgICAoe3sgW2RzLmlkXSB8IHJlc3VsdFNldFNpemUgfCBhc3luYyB9fSlcbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIigodXNlZERhdGFzb3VyY2VzJCB8IGFzeW5jKSA/PyBbXSkubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19uby1kYXRhXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3RpdGxlXCI+e3sgJ0Bwcnkud2lkZ2V0Lm5vRGF0YScgfCBpMThuIH19PC9oMj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIiAqbmdJZj1cImRpc3BsYXlDb250ZXh0TWVudSQgfCBhc3luYyBhcyBvcHRpb25zXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBpZD1cImRpYWxvZ19NZW51XCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51XCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwidGhpcy5tZW51XCJcbiAgICAgICN0b2dnbGVQYW5lbFxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tbW9yZVwiXG4gICAgICAoY2xpY2spPVwibWVudU9wZW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBpY29uU3ZnPVwibW9yZV9ob3JpelwiPjwvcHJ5LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLm9wZW5NZW51V2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheU1lbnU+XG4gIDxkaXYgY2xhc3M9XCJtLWNvbnRleHQtbWVudVwiICpuZ0lmPVwiZGlzcGxheUNvbnRleHRNZW51JCB8IGFzeW5jIGFzIG9wdGlvbnNcIj5cbiAgICA8dWxcbiAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RcIlxuICAgICAgI21lbnVMaXN0XG4gICAgICBpZD1cIm1lbnVcIlxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nX01lbnVcIlxuICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uQXJyb3dEb3duKClcIlxuICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkFycm93VXAoKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwibWVudU9wZW4oKVwiXG4gICAgPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIlxuICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICpuZ0lmPVwiKG1hbmlmZXN0JCB8IGFzeW5jKT8uZGF0YXNvdXJjZSAmJiAob3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zWydkYXRhc291cmNlU2VsZWN0aW9uJ10gPT09IHRydWUpXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgaWQ9XCJ0b2dnbGVBY3Rpb25zXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpXCJcbiAgICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnd2lkZ2V0JywgYWN0aW9uOiAnc2VsZWN0X25hbWVkX3F1ZXJ5JyB9XCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cInN0YWNrLWZpbGxcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLnJlYWRTZWFyY2gnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0lmPVwib3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsncGFyYW1ldGVycyddID09PSB0cnVlXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbGk+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsnd2luZG93J10gPT09IHRydWVcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0Zvcj1cImxldCB0YXJnZXRJbmRleCBvZiB0YXJnZXRJbmRleGVzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwibW92ZUluTmV3V2luZG93KF93aWRnZXRJbmRleCwgdGFyZ2V0SW5kZXgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG5cIlxuICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImxhdW5jaFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAodGFyZ2V0SW5kZXggIT09IC0xID8gJ0Bwcnkud2lkZ2V0LnRhcmdldC5leGlzdGluZycgOiAnQHByeS53aWRnZXQudGFyZ2V0Lm5ldycpXG4gICAgICAgICAgICAgICAgfCBpMThuIDogeyB0YXJnZXRJbmRleDogdGhpcy50YXJnZXRJbmRleCArIDEgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIlxuICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICpuZ0lmPVwiaGFzR3JpZCAmJiAob3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsnY2hhbmdlU3BvdCddID09PSB0cnVlKVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJtZW51aXRlbVwiIChjbGljayk9XCJ0b2dnbGVDaGFuZ2VTcG90KClcIiBjbGFzcz1cImEtYnRuXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cIm1vdmVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLmNoYW5nZVNwb3QnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0lmPVwib3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsnbWF4aW1pemUnXSA9PT0gdHJ1ZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoY2xpY2spPVwibWF4aW1pemUoX3dpZGdldEluZGV4KVwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm1lbnVPcGVuKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBpY29uU3ZnPVwiZnVsbHNjcmVlblwiPjwvcHJ5LWljb24+XG4gICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRhcmdldC5tYXhpbWl6ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cIm9wdGlvbnMgPT09IHRydWUgfHwgb3B0aW9ucyFbJ2FkZFRvQ2F0YWxvZyddID09PSB0cnVlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJtZW51aXRlbVwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwidG9nZ2xlQ2F0YWxvZygpXCIgY2xhc3M9XCJhLWJ0blwiPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImxpYnJhcnlfYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQHByeS53aWRnZXQudG9vbHRpcC5jYXRhbG9nV2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cIm9wdGlvbnMgPT09IHRydWUgfHwgb3B0aW9ucyFbJ2RlbGV0ZSddID09PSB0cnVlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1vdmVDb25maXJtKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG5cIlxuICAgICAgICAgIChrZXlkb3duLnRhYik9XCJtZW51T3BlbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImRlbGV0ZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuZGVsZXRlV2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFkZGl0aW9uYWxPcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjdXRlQWN0aW9uKG9wdGlvbilcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0FjdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBbaWNvblN2Z109XCJvcHRpb24uaWNvblwiPjwvcHJ5LWljb24+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlTW9kYWw+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm8tbW9kYWxcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJjYW5jZWxSZW1vdmVDb25maXJtKClcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgY29uZmlybSBkZWxldGUgcHJlc2VudGF0aW9uXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIiBpZD1cImRpYWxvZ190aXRsZVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC5tb2RhbFRpdGxlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAjY3Jvc3MgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImNvbmZpcm1SZW1vdmUoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmNvbXBvbmVudHMuY2hpcHNTZWxlY3Rvci5kYXRhc291cmNlLlwiXG4gICAgKGNhbmNlbCk9XCJ0b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKClcIlxuICAgICh2YWxpZGF0ZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgIChuZXh0VGFiKT1cImZvY3VzSW5wdXRDYXRhbG9nKClcIlxuICAgIChwcmV2aW91c1RhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiXG4gICAgKGl0ZW1zQ2hhbmdlZCk9XCJkYXRhc291cmNlc0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VzZWRJdGVtc109XCIodXNlZERhdGFzb3VyY2VzJCB8IGFzeW5jKSA/PyBbXVwiXG4gID48L3ByeS1kYXRhc291cmNlLXNlbGVjdG9yPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q2F0YWxvZz5cbiAgPGRpdlxuICAgIGNsYXNzPVwiby1tb2RhbFwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19DYXRhbG9nXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwidG9nZ2xlQ2F0YWxvZygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIj5cbiAgICAgICAgICB7eyAnQHByeS53aWRnZXQuZGVmaW5lQ2F0YWxvZycgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIlxuICAgICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiXG4gICAgICAgICAgI2Nyb3NzQ2F0YWxvZ1xuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMzVcIiBbd2lkdGhdPVwiMzVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cIm5hbWVcIj57eyAnQHByeS50b29sYm94LmNhdGFsb2cubGFiZWwnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJjYXRhbG9nSW5mby5uYW1lXCIgaWQ9XCJuYW1lXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHJlcXVpcmVkIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImRlc2NyaXB0aW9uXCI+e3sgJ0BwcnkudG9vbGJveC5jYXRhbG9nLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiY2F0YWxvZ0luZm8uZGVzY3JpcHRpb25cIiBpZD1cImRlc2NyaXB0aW9uXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHJlcXVpcmVkIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPHByeS1zZWxlY3QtaW1hZ2VcbiAgICAgICAgW2ljb25VcmxdPVwiY2F0YWxvZ0luZm8uaW1hZ2VcIlxuICAgICAgICAoY2hhbmdlZCk9XCJjYXRhbG9nSW5mby5pbWFnZSA9ICRldmVudFwiXG4gICAgICAgIFttb2RlXT1cInR5cGVcIlxuICAgICAgPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICAjY2FuY2VsXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJkaXNhYmxlVmFsaWRhdGlvbigpXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICN2YWxpZGF0ZUNhdGFsb2dcbiAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1DYXRhbG9nKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyhjYXRhbG9nSW5mby5uYW1lKVwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QudmFsaWRhdGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5U3BvdD5cbiAgPGRpdiBjbGFzcz1cIm8tbW9kYWwgLXBsYWNlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC50b29sdGlwLmNoYW5nZVNwb3QnIHwgaTE4biB9fVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJ0b2dnbGVDaGFuZ2VTcG90KClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cHJ5LWRhc2hib2FyZFxuICAgICAgW3N0YXRpY0Rhc2hib2FyZF09XCJ0YXJnZXRNYW5pZmVzdCFcIlxuICAgICAgW2JyZWFrcG9pbnRdPVwiMTBcIlxuICAgICAgW25vQmFja2dyb3VuZF09XCJ0cnVlXCJcbiAgICAgIFtmb3JjZU1vZGVFZGl0aW9uXT1cImZhbHNlXCJcbiAgICA+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
456
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQXFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBcUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFaEcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBYXZDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx3QkFBd0I7SUF1QnBFLElBQWEsUUFBUSxDQUFDLFFBQStCO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxLQUF1QztRQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBbUJELElBQWEsYUFBYSxDQUFDLGFBQXVCO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLFdBQW1CO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFtQkQsWUFDVSxLQUFZLEVBQ1osT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ25DLGtCQUFzQztRQUU3QyxLQUFLLEVBQUUsQ0FBQztRQUxBLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWxFL0MsY0FBUyxHQUFHLElBQUksZUFBZSxDQUF3QixJQUFJLENBQUMsQ0FBQztRQUU3RCxXQUFNLEdBQXFCLEVBQUUsQ0FBQztRQWlCckIsc0JBQWlCLEdBQTBCLEVBQUUsQ0FBQztRQUU5QyxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVuQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBcUQsQ0FBQztRQUVuRyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZ0JBQVcsR0FBVztZQUNwQixFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFdBQVcsRUFBRSxFQUFFO1lBQ2YsT0FBTyxFQUFFLEVBQUU7WUFDWCxVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQztRQWFGLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFL0MsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNELG1CQUFjLEdBQTZCLElBQUksQ0FBQztRQU9oRCxTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLFNBQUksR0FBaUIsWUFBWSxDQUFDLFlBQVksQ0FBQztRQVM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQzlCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7YUFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDbEMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQzthQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUM7WUFDM0QsSUFBSSxDQUFDLHNCQUFzQjtTQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsRUFBRTtZQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUM7U0FDOUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1NBQ2pDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO1FBQ3pFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUM3RixJQUFJLG9CQUFvQixFQUFFO1lBQ3hCLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO1FBQ0QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDbkUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztTQUMxRDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDbEM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDekUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO1FBQzdGLElBQUksb0JBQW9CLEVBQUU7WUFDeEIsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7UUFDRCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FDMUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBbUIsRUFBRSxTQUFtQjtRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLFFBQVEsR0FBRyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyRSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2hDLElBQUksYUFBYSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3RDLGFBQWEsRUFBRSxVQUFVO2dCQUN6QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTztxQkFDM0IsUUFBUSxFQUFFO3FCQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7cUJBQ3JDLGFBQWEsQ0FBQztvQkFDYjt3QkFDRSxPQUFPLEVBQUUsRUFBRTt3QkFDWCxPQUFPLEVBQUUsS0FBSzt3QkFDZCxPQUFPLEVBQUUsUUFBUTt3QkFDakIsUUFBUSxFQUFFLEtBQUs7d0JBQ2YsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO2lCQUNGLENBQUM7YUFDTCxDQUFDLENBQ0gsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDakYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDO2dCQUNwRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztvQkFDbEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO29CQUM5RixLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUM7aUJBQ3ZEO1lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2pDLElBQUksYUFBYSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzFDLGFBQWEsRUFBRSxVQUFVO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQy9FLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFdBQW1CLEVBQUUsV0FBbUI7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRLENBQUMsV0FBbUI7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzlCLFFBQVEsRUFBRTtnQkFDUixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRTthQUN0QjtTQUMvQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBbUI7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3pDLElBQUksYUFBYSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9CLGFBQWEsRUFBRSxVQUFVO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUM1RixJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFtQixDQUFDO2dCQUM5RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7b0JBQ1gsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDNUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDOUc7YUFDRjtZQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDckMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUM7WUFDdkMsUUFBUSxFQUFFO2dCQUNSLEdBQUcsSUFBSSxDQUFDLGNBQWM7Z0JBQ3RCLE9BQU8sRUFBRSxtQkFBbUI7YUFDN0I7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUc7Z0JBQ2pCLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsZ0JBQWdCLEVBQUUsRUFBRTthQUNyQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDbkMsSUFBSSxhQUFhLENBQUM7Z0JBQ2hCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsYUFBYSxFQUFFLFVBQVU7YUFDMUIsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQ2xDO2dCQUNFLEdBQUcsSUFBSSxDQUFDLFdBQVc7Z0JBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hGLEVBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBcUI7UUFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQW9CO1FBQ25DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQW9CLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzVHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNoQyxJQUFJLGFBQWEsQ0FBQztnQkFDaEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUMvQixhQUFhLEVBQUUsVUFBVTthQUMxQixDQUFDLENBQ0gsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ2xGO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUN0RSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNyQztRQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQW9CO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsRixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxFQUF3QjtRQUM1QixPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxDQUFDO0lBQzlGLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFPLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxHQUFHLEtBQUs7Z0JBQ1IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7d0JBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ0osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUNuQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ0wsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDOzRCQUM5QixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7NEJBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSzs0QkFDdEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQzNDO29CQUNMLFdBQVcsRUFBRSxhQUFhO29CQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztpQkFDcEM7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUMxQixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLG1CQUFtQjtnQkFDNUQsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sSUFBSSxzQkFBc0I7Z0JBQ3JFLEdBQUcsRUFBRSxDQUFDO2FBQ1A7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDOytHQTdiVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qix5WkFDSixXQUFXLHlHQUNOLFdBQVcsMkZBQ2xCLFdBQVcscUdBQ04sV0FBVywyR0FDUixXQUFXLHFHQUNkLFdBQVcsc3dCQ25EL0MsdXhWQTBSQTs7NEZEN09hLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSxtQkFBbUI7a0xBSWlCLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDTyxhQUFhO3NCQUEvRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0wsTUFBTTtzQkFBakQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNPLFdBQVc7c0JBQTNELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDSyxjQUFjO3NCQUFqRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRCxXQUFXO3NCQUEzRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ3JCLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkFDSixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ssUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNTLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNQLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNGLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFTUixRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBYU0sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEdlb01ldGFkYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9kYXRhc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRHcmlkTGF5b3V0LCBEYXNoYm9hcmRNYW5pZmVzdCwgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL3dpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29uZmlnQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IERhdGFzZXQsIERhdGFTb3VyY2UsIE5hbWVkUXVlcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBMaWJyYXJ5VHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ltYWdlL2ltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJveE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2lkZ2V0UGxhY2VtZW50VXRpbHMgfSBmcm9tICcuLi93aWRnZXQtcGxhY2VtZW50L3dpZGdldC1wbGFjZW1lbnQudXRpbHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29udGV4dE1lbnVEaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLCBERUZBVUxUX1JPV1NfTlVNQkVSIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZGFzaGJvYXJkLmNvbnRhbnRzJztcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9IRUFERVJfSEVJR0hUID0gMzI7XG5cbmV4cG9ydCB0eXBlIEhlYWRlckFjdGlvbiA9IHtcbiAgaWNvbjogc3RyaW5nO1xuICBhY3Rpb246ICh0aGF0OiBQcnlXaWRnZXRIZWFkZXJDb21wb25lbnQpID0+IHZvaWQ7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogKHRoYXQ6IFByeVdpZGdldEhlYWRlckNvbXBvbmVudCkgPT4gYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeVdpZGdldEhlYWRlckNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlTW9kYWwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRlbXBsYXRlTW9kYWwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCd0b2dnbGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRvZ2dsZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlNZW51JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvdmVybGF5TWVudSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDYXRhbG9nJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvdmVybGF5Q2F0YWxvZyE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlTcG90JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBvdmVybGF5U3BvdCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RvZ2dsZVBhbmVsJykgdG9nZ2xlUGFuZWwhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3MnKSBjcm9zcyE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd2YWxpZGF0ZScpIHZhbGlkYXRlITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3ZhbGlkYXRlQ2F0YWxvZycpIHZhbGlkYXRlQ2F0YWxvZyE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjYW5jZWwnKSBjYW5jZWwhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY3Jvc3NDYXRhbG9nJykgY3Jvc3NDYXRhbG9nITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q2F0YWxvZycpIGlucHV0Q2F0YWxvZyE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ21lbnVMaXN0JykgbWVudUxpc3QhOiBFbGVtZW50UmVmO1xuICBtYW5pZmVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldE1hbmlmZXN0IHwgbnVsbD4obnVsbCk7XG4gIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcGxhY2VzOiBXaWRnZXRNYW5pZmVzdFtdID0gW107XG4gIHNlbGVjdGVkSXRlbT86IEVsZW1lbnQgfCBudWxsO1xuICB1c2VkRGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG4gIG9wZW5TdWI/OiBTdWJzY3JpcHRpb247XG4gIHRhcmdldE1hbmlmZXN0PzogRGFzaGJvYXJkTWFuaWZlc3Q7XG5cbiAgQElucHV0KCkgc2V0IG1hbmlmZXN0KG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCB8IG51bGwpIHtcbiAgICB0aGlzLm1hbmlmZXN0JC5uZXh0KG1hbmlmZXN0KTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvcGVuRGF0YSQob3BlbiQ6IE9ic2VydmFibGU8dm9pZD4gfCBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgdGhpcy5vcGVuU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub3BlblN1YiA9IG9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpIGFkZGl0aW9uYWxPcHRpb25zOiBIZWFkZXJBY3Rpb25bXSB8IG51bGwgPSBbXTtcbiAgQElucHV0KCkgaGVhZGVyT3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCB7fSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGlzcGxheUNvdW50ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgbWFuaWZlc3RNb2RpZmllZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyB3aWRnZXRJbmRleDogbnVtYmVyOyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfT4oKTtcblxuICBpc0VkaXQgPSBmYWxzZTtcbiAgY2F0YWxvZ0luZm86IFdpZGdldCA9IHtcbiAgICBpZDogdjQoKSxcbiAgICBpbWFnZTogJycsXG4gICAgbmFtZTogJycsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGNvbnRlbnQ6ICcnLFxuICAgIGRhdGFzb3VyY2U6IFtdLFxuICAgIG1vZGlmaWNhdGlvbkRhdGU6ICcnXG4gIH07XG5cbiAgQElucHV0KCkgc2V0IGRhdGFzb3VyY2VJZHMoZGF0YXNvdXJjZUlkczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyQubmV4dChkYXRhc291cmNlSWRzKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB3aWRnZXRJbmRleCh3aWRnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5fd2lkZ2V0SW5kZXgkLm5leHQod2lkZ2V0SW5kZXgpO1xuICAgIHRoaXMuX3dpZGdldEluZGV4ID0gd2lkZ2V0SW5kZXg7XG4gIH1cblxuICBkaXNwbGF5Q29udGV4dE1lbnUkOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBXaWRnZXRDb250ZXh0TWVudURpc3BsYXlPcHRpb25zPjtcbiAgdGFyZ2V0SW5kZXhlcyQ6IE9ic2VydmFibGU8bnVtYmVyW10+O1xuICBfd2lkZ2V0SW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBfd2lkZ2V0SW5kZXghOiBudW1iZXI7XG4gIG9wZW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWREYXRhU291cmNlSWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcblxuICB3aW5kb3dNYW5pZmVzdDogRGFzaGJvYXJkTWFuaWZlc3QgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB3aW5kb3dNYW5pZmVzdCQ6IE9ic2VydmFibGU8RGFzaGJvYXJkTWFuaWZlc3Q+O1xuICBwcml2YXRlIG1lbnVSZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIGNvbWJvUmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjb25maXJtUmVtb3ZlUmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjYXRhbG9nUmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBzcG90UmVmPzogT3ZlcmxheVJlZjtcbiAgbWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICB0eXBlOiBMaWJyYXJ5VHlwZXMgPSBMaWJyYXJ5VHlwZXMuSUxMVVNUUkFUSU9OO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHRvb2xib3hNZW51U2VydmljZTogVG9vbGJveE1lbnVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy53aW5kb3dNYW5pZmVzdCQgPSB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy53aW5kb3dNYW5pZmVzdClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCBjKSA9PiBlcXVhbChwLCBjKSkpO1xuXG4gICAgdGhpcy50YXJnZXRJbmRleGVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy50YXJnZXRUZW5hbnRzSW5kZXhlcyk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMud2luZG93TWFuaWZlc3QkLnN1YnNjcmliZSgobWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy53aW5kb3dNYW5pZmVzdCA9IG1hbmlmZXN0O1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZGlzcGxheUNvbnRleHRNZW51JCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmRpc3BsYXlPcHRpb25zKVxuICAgICAgLnBpcGUobWFwKChvcHRpb25zKSA9PiBvcHRpb25zLndpZGdldENvbnRleHRNZW51KSk7XG5cbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpLFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkXG4gICAgXSkucGlwZShtYXAoKFthbGxEc3MsIGRzSWRzXSkgPT4gYWxsRHNzLmZpbHRlcigoZHMpID0+IGRzSWRzLmluY2x1ZGVzKGRzLmlkKSkpKTtcbiAgfVxuXG4gIG9uQXJyb3dVcCgpIHtcbiAgICBjb25zdCBsYXN0RWxlbWVudCA9IHRoaXMubWVudUxpc3QubmF0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGxhc3RFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGZvY3VzQ2hpbGRyZW5FbGVtZW50KSB7XG4gICAgICBmb2N1c0NoaWxkcmVuRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uQXJyb3dEb3duKCkge1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHRoaXMubWVudUxpc3QubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0/Lm5leHRFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gZmlyc3RFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGZvY3VzQ2hpbGRyZW5FbGVtZW50KSB7XG4gICAgICBmb2N1c0NoaWxkcmVuRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50TGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLndpbmRvd01hbmlmZXN0Py5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gIH1cblxuICBnZXQgaGFzR3JpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGF5b3V0ICE9PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTDtcbiAgfVxuXG4gIGdldCBjdXJyZW50UGxhY2VtZW50SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VzLmZpbmRJbmRleChcbiAgICAgIChwbGFjZSkgPT5cbiAgICAgICAgdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKT8ubGF5b3V0LnggPT09IHBsYWNlLmxheW91dC54ICYmXG4gICAgICAgIHRoaXMubWFuaWZlc3QkLmdldFZhbHVlKCk/LmxheW91dC55ID09PSBwbGFjZS5sYXlvdXQueSAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQud2lkdGggPT09IHBsYWNlLmxheW91dC53aWR0aCAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQuaGVpZ2h0ID09PSBwbGFjZS5sYXlvdXQuaGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIG1lbnVPcGVuKCRldmVudD86IE1vdXNlRXZlbnQsIGZvcmNlT3Blbj86IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1lbnUgPSAhdGhpcy5tZW51O1xuICAgIGNvbnN0IG11c3RPcGVuID0gZm9yY2VPcGVuICE9PSB1bmRlZmluZWQgPyBmb3JjZU9wZW4gOiAhdGhpcy5tZW51UmVmO1xuICAgIGlmIChtdXN0T3Blbikge1xuICAgICAgdGhpcy5tZW51UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCcsXG4gICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy50b2dnbGVQYW5lbClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9mZnNldFg6IDUwLFxuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSlcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1lbnUnIH0pKTtcbiAgICAgIHRoaXMubWVudVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLm1lbnVPcGVuKCkpO1xuICAgICAgdGhpcy5tZW51UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5TWVudSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLm1lbnVMaXN0Py5uYXRpdmVFbGVtZW50Py5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgY29uc3QgZm9jdXMgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgICAgIGZvY3VzID8gZm9jdXMuZm9jdXMoKSA6IGZvY3VzQ2hpbGRyZW5FbGVtZW50Py5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWVudVJlZj8uZGlzcG9zZSgpO1xuICAgICAgdGhpcy5tZW51UmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1lbnUnIH0pKTtcbiAgICAgIHRoaXMudG9nZ2xlUGFuZWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY29tYm9SZWYpIHtcbiAgICAgIHRoaXMuY29tYm9SZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLXdpZGdldF9fY2hvb3NlLXJlc3VsdHNldCddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLWNvbWJvJyB9KSk7XG4gICAgICB0aGlzLmNvbWJvUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMudG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpKTtcbiAgICAgIHRoaXMuY29tYm9SZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmlucHV0Q2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21ib1JlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNvbWJvUmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLWNvbWJvJyB9KSk7XG4gICAgICB0aGlzLm1lbnVPcGVuKHVuZGVmaW5lZCwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmVJbk5ld1dpbmRvdyh3aWRnZXRJbmRleDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLm1vdmVXaWRnZXQoeyB3aWRnZXRJbmRleCwgdGFyZ2V0SW5kZXggfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy50b2dnbGVFZGl0aW9uTW9kZSh7IGZvcmNlOiBmYWxzZSB9KSk7XG4gICAgdGhpcy5tZW51T3BlbigpO1xuICB9XG5cbiAgbWF4aW1pemUod2lkZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5tYXhpbWl6ZVdpZGdldCh7IHdpZGdldEluZGV4IH0pKTtcbiAgICB0aGlzLm1lbnVPcGVuKCk7XG4gIH1cblxuICBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMuX3dpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgLi4udGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKSxcbiAgICAgICAgZGF0YXNvdXJjZTogdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkLmdldFZhbHVlKClcbiAgICAgIH0gYXMgdW5rbm93biBhcyBXaWRnZXRNYW5pZmVzdFxuICAgIH0pO1xuICAgIHRoaXMudG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpO1xuICB9XG5cbiAgdG9nZ2xlUmVtb3ZlQ29uZmlybSgkZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpcm1SZW1vdmVSZWYpIHtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1vZGFsJyB9KSk7XG4gICAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy50b2dnbGVSZW1vdmVDb25maXJtKCkpO1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZU1vZGFsLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYuby1tb2RhbC13cmFwcGVyJykgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICAgIGlmICghIXBhbmVsKSB7XG4gICAgICAgICAgcGFuZWwuc3R5bGUubGVmdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gcGFuZWwuY2xpZW50V2lkdGgsICRldmVudC5jbGllbnRYIC0gMzApKSArICdweCc7XG4gICAgICAgICAgcGFuZWwuc3R5bGUudG9wID0gTWF0aC5tYXgoMCwgTWF0aC5taW4od2luZG93LmlubmVySGVpZ2h0IC0gcGFuZWwuY2xpZW50SGVpZ2h0LCAkZXZlbnQuY2xpZW50WSAtIDEwKSkgKyAncHgnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcm9zcz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudG9nZ2xlUGFuZWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctbW9kYWwnIH0pKTtcbiAgICAgIHRoaXMubWVudU9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBjb25maXJtUmVtb3ZlKCkge1xuICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgdGhpcy5jYW5jZWxSZW1vdmVDb25maXJtKCk7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgY29uc3QgbGlzdFdpZGdldE1hbmlmZXN0cyA9IFsuLi4odGhpcy53aW5kb3dNYW5pZmVzdCB8fCB7IHdpZGdldHM6IFtdIH0pLndpZGdldHNdO1xuICAgIGxpc3RXaWRnZXRNYW5pZmVzdHMuc3BsaWNlKHRoaXMuX3dpZGdldEluZGV4LCAxKTtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZE1hbmlmZXN0KHtcbiAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAuLi50aGlzLndpbmRvd01hbmlmZXN0LFxuICAgICAgICAgIHdpZGdldHM6IGxpc3RXaWRnZXRNYW5pZmVzdHNcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2FuY2VsUmVtb3ZlQ29uZmlybSgpIHtcbiAgICB0aGlzLmlzRWRpdCA9IGZhbHNlO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWY/LmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVSZW1vdmVDb25maXJtKCkpO1xuICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1lbnVSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLm1lbnVSZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1lbnUnIH0pKTtcbiAgfVxuXG4gIHRvZ2dsZUNhdGFsb2coKSB7XG4gICAgaWYgKCF0aGlzLmNhdGFsb2dSZWYpIHtcbiAgICAgIHRoaXMuY2F0YWxvZ0luZm8gPSB7XG4gICAgICAgIGlkOiB2NCgpLFxuICAgICAgICBpbWFnZTogJycsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGNvbnRlbnQ6ICcnLFxuICAgICAgICBkYXRhc291cmNlOiBbXSxcbiAgICAgICAgbW9kaWZpY2F0aW9uRGF0ZTogJydcbiAgICAgIH07XG4gICAgICB0aGlzLmNhdGFsb2dSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1jYXRhbG9nJyB9KSk7XG4gICAgICB0aGlzLmNhdGFsb2dSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy50b2dnbGVDYXRhbG9nKCkpO1xuICAgICAgdGhpcy5jYXRhbG9nUmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5Q2F0YWxvZywgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jcm9zc0NhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2F0YWxvZ1JlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNhdGFsb2dSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctY2F0YWxvZycgfSkpO1xuICAgICAgdGhpcy5tZW51T3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpcm1DYXRhbG9nKCkge1xuICAgIGlmICh0aGlzLnRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyh0aGlzLmNhdGFsb2dJbmZvLm5hbWUpKSB7XG4gICAgICB0aGlzLnRvb2xib3hNZW51U2VydmljZS5hZGRUb0NhdGFsb2coXG4gICAgICAgIHtcbiAgICAgICAgICAuLi50aGlzLmNhdGFsb2dJbmZvLFxuICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHsgLi4udGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKSwgdGl0bGU6IHRoaXMuY2F0YWxvZ0luZm8ubmFtZSB9KVxuICAgICAgICB9LFxuICAgICAgICB0aGlzLl93aWRnZXRJbmRleFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy50b2dnbGVDYXRhbG9nKCk7XG4gIH1cblxuICBleGVjdXRlQWN0aW9uKG9wdGlvbnM6IEhlYWRlckFjdGlvbikge1xuICAgIG9wdGlvbnMuYWN0aW9uKHRoaXMpO1xuICAgIHRoaXMubWVudU9wZW4oKTtcbiAgfVxuXG4gIGlzQWN0aW9uRGlzYWJsZWQob3B0aW9uOiBIZWFkZXJBY3Rpb24pIHtcbiAgICByZXR1cm4gISFvcHRpb24/LmRpc2FibGVkID8gb3B0aW9uPy5kaXNhYmxlZCh0aGlzKSA6IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlQ2hhbmdlU3BvdCgpIHtcbiAgICBpZiAoIXRoaXMuc3BvdFJlZikge1xuICAgICAgdGhpcy5wbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHsgdHlwZTogJ2ljb24nIH0gYXMgV2lkZ2V0TWFuaWZlc3QsIHRoaXMuY3VycmVudExheW91dCk7XG4gICAgICB0aGlzLnBsYWNlc01hbmlmZXN0KCk7XG5cbiAgICAgIHRoaXMuc3BvdFJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLXNwb3QnIH0pKTtcbiAgICAgIHRoaXMuc3BvdFJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlQ2hhbmdlU3BvdCgpKTtcbiAgICAgIHRoaXMuc3BvdFJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheVNwb3QsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNwb3RSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5zcG90UmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLXNwb3QnIH0pKTtcbiAgICAgIHRoaXMubWVudU9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c0Nyb3NzRWxlbWVudCgpIHtcbiAgICB0aGlzLmNyb3NzPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIHRoaXMuY3Jvc3NDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXNWYWxpZGF0aW9uKCkge1xuICAgIHRoaXMudmFsaWRhdGVDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIGlmICghdGhpcy50b29sYm94TWVudVNlcnZpY2UuaXNWYWxpZEZvckNhdGFsb2codGhpcy5jYXRhbG9nSW5mbz8ubmFtZSkpIHtcbiAgICAgIHRoaXMuY2FuY2VsPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgZm9jdXNJbnB1dENhdGFsb2coKSB7XG4gICAgdGhpcy5pbnB1dENhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBkaXNhYmxlVmFsaWRhdGlvbigpIHtcbiAgICBpZiAoIXRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLmlzVmFsaWRGb3JDYXRhbG9nKHRoaXMuY2F0YWxvZ0luZm8/Lm5hbWUpKSB7XG4gICAgICB0aGlzLmNyb3NzQ2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBkYXRhc291cmNlc0NoYW5nZWQoJGV2ZW50OiBEYXRhU291cmNlW10pIHtcbiAgICBjb25zdCBpZHMgPSAkZXZlbnQubWFwKChkcykgPT4gZHMuaWQpO1xuICAgIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyQuZ2V0VmFsdWUoKSkgIT09IEpTT04uc3RyaW5naWZ5KGlkcykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlSWRzJC5uZXh0KGlkcyk7XG4gICAgfVxuICB9XG5cbiAgaXNHZW8oZHM6IE5hbWVkUXVlcnkgfCBEYXRhc2V0KSB7XG4gICAgcmV0dXJuIGRzLm1ldGFkYXRhPy5maW5kKChtKSA9PiBtLm1ldGFkYXRhRGVmLm5hbWUgPT09IEdlb01ldGFkYXRhLk5BTUVTUEFDRSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHBsYWNlc01hbmlmZXN0KCkge1xuICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQhO1xuICAgIHRoaXMudGFyZ2V0TWFuaWZlc3QgPSB7XG4gICAgICB3aWRnZXRzOiB0aGlzLnBsYWNlcy5tYXAoKHBsYWNlLCBpZHgpID0+ICh7XG4gICAgICAgIC4uLnBsYWNlLFxuICAgICAgICB0eXBlOiAnZmlsbGVyJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGluZGV4OiBlcXVhbChjdXJyZW50TGF5b3V0LCBwbGFjZS5sYXlvdXQpXG4gICAgICAgICAgICA/IC0xXG4gICAgICAgICAgICA6IHRoaXMucGxhY2VzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAocGwpID0+XG4gICAgICAgICAgICAgICAgICBwbGFjZS5sYXlvdXQueCA9PT0gcGwubGF5b3V0LnggJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLmxheW91dC55ID09PSBwbC5sYXlvdXQueSAmJlxuICAgICAgICAgICAgICAgICAgcGxhY2UubGF5b3V0LndpZHRoID09PSBwbC5sYXlvdXQud2lkdGggJiZcbiAgICAgICAgICAgICAgICAgIHBsYWNlLmxheW91dC5oZWlnaHQgPT09IHBsLmxheW91dC5oZWlnaHRcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICBzb3VyY2VQbGFjZTogY3VycmVudExheW91dCxcbiAgICAgICAgICB0YXJnZXRQbGFjZTogcGxhY2UubGF5b3V0LFxuICAgICAgICAgIHdpbmRvd01hbmlmZXN0OiB0aGlzLndpbmRvd01hbmlmZXN0XG4gICAgICAgIH1cbiAgICAgIH0pKSxcbiAgICAgIGdyaWQ6IHtcbiAgICAgICAgbGF5b3V0OiB0aGlzLmN1cnJlbnRMYXlvdXQsXG4gICAgICAgIHJvd3M6IHRoaXMud2luZG93TWFuaWZlc3Q/LmdyaWQ/LnJvd3MgPz8gREVGQVVMVF9ST1dTX05VTUJFUixcbiAgICAgICAgY29sdW1uczogdGhpcy53aW5kb3dNYW5pZmVzdD8uZ3JpZD8uY29sdW1ucyA/PyBERUZBVUxUX0NPTFVNTlNfTlVNQkVSLFxuICAgICAgICBnYXA6IDNcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9wZW5TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgPGgyIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fdGl0bGVcIiAqbmdJZj1cIihtYW5pZmVzdCQgfCBhc3luYyk/LnRpdGxlOyBlbHNlIHF1ZXJ5U2VsZWN0b3JcIj5cbiAgICAgIHt7IChtYW5pZmVzdCQgfCBhc3luYyk/LnRpdGxlIH19XG4gICAgPC9oMj5cbiAgICA8bmctdGVtcGxhdGUgI3F1ZXJ5U2VsZWN0b3I+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkcyBvZiB1c2VkRGF0YXNvdXJjZXMkIHwgYXN5bmNcIiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3F1ZXJ5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImRzLmlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnaWNvbicsIG5vRGVmYXVsdDogdHJ1ZSB9IHwgYXN5bmMgYXMgdXJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbWcgW2hlaWdodF09XCIyMFwiIFtzcmNdPVwidXJsXCIgW3dpZHRoXT1cIjIwXCIgYWx0PVwiXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9faWNvblwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9fbmFtZVwiPnt7IGRzLm5hbWUgfX08L2gzPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9fbmFtZVwiICpuZ0lmPVwiZGlzcGxheUNvdW50ICYmICFpc0dlbyhkcylcIj5cbiAgICAgICAgICAoe3sgW2RzLmlkXSB8IHJlc3VsdFNldFNpemUgfCBhc3luYyB9fSlcbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIigodXNlZERhdGFzb3VyY2VzJCB8IGFzeW5jKSA/PyBbXSkubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19uby1kYXRhXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3RpdGxlXCI+e3sgJ0Bwcnkud2lkZ2V0Lm5vRGF0YScgfCBpMThuIH19PC9oMj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIiAqbmdJZj1cImRpc3BsYXlDb250ZXh0TWVudSQgfCBhc3luYyBhcyBvcHRpb25zXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBpZD1cImRpYWxvZ19NZW51XCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51XCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwidGhpcy5tZW51XCJcbiAgICAgICN0b2dnbGVQYW5lbFxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tbW9yZVwiXG4gICAgICAoY2xpY2spPVwibWVudU9wZW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBpY29uU3ZnPVwibW9yZV9ob3JpelwiPjwvcHJ5LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLm9wZW5NZW51V2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheU1lbnU+XG4gIDxkaXYgY2xhc3M9XCJtLWNvbnRleHQtbWVudVwiICpuZ0lmPVwiZGlzcGxheUNvbnRleHRNZW51JCB8IGFzeW5jIGFzIG9wdGlvbnNcIj5cbiAgICA8dWxcbiAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RcIlxuICAgICAgI21lbnVMaXN0XG4gICAgICBpZD1cIm1lbnVcIlxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nX01lbnVcIlxuICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uQXJyb3dEb3duKClcIlxuICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkFycm93VXAoKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwibWVudU9wZW4oKVwiXG4gICAgPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIlxuICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICpuZ0lmPVwiKG1hbmlmZXN0JCB8IGFzeW5jKT8uZGF0YXNvdXJjZSAmJiAob3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zWydkYXRhc291cmNlU2VsZWN0aW9uJ10gPT09IHRydWUpXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgaWQ9XCJ0b2dnbGVBY3Rpb25zXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpXCJcbiAgICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdkYXNoYm9hcmQnLCBwYWdlOiAnd2lkZ2V0JywgYWN0aW9uOiAnc2VsZWN0X25hbWVkX3F1ZXJ5JyB9XCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cInN0YWNrLWZpbGxcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLnJlYWRTZWFyY2gnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0lmPVwib3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsncGFyYW1ldGVycyddID09PSB0cnVlXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbGk+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsnd2luZG93J10gPT09IHRydWVcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0Zvcj1cImxldCB0YXJnZXRJbmRleCBvZiB0YXJnZXRJbmRleGVzJCB8IGFzeW5jXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwibW92ZUluTmV3V2luZG93KF93aWRnZXRJbmRleCwgdGFyZ2V0SW5kZXgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1idG5cIlxuICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImxhdW5jaFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAodGFyZ2V0SW5kZXggIT09IC0xID8gJ0Bwcnkud2lkZ2V0LnRhcmdldC5leGlzdGluZycgOiAnQHByeS53aWRnZXQudGFyZ2V0Lm5ldycpXG4gICAgICAgICAgICAgICAgfCBpMThuIDogeyB0YXJnZXRJbmRleDogdGhpcy50YXJnZXRJbmRleCArIDEgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIlxuICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICpuZ0lmPVwiaGFzR3JpZCAmJiAob3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsnY2hhbmdlU3BvdCddID09PSB0cnVlKVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJtZW51aXRlbVwiIChjbGljayk9XCJ0b2dnbGVDaGFuZ2VTcG90KClcIiBjbGFzcz1cImEtYnRuXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cIm1vdmVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLmNoYW5nZVNwb3QnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0lmPVwib3B0aW9ucyA9PT0gdHJ1ZSB8fCBvcHRpb25zIVsnbWF4aW1pemUnXSA9PT0gdHJ1ZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoY2xpY2spPVwibWF4aW1pemUoX3dpZGdldEluZGV4KVwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm1lbnVPcGVuKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBpY29uU3ZnPVwiZnVsbHNjcmVlblwiPjwvcHJ5LWljb24+XG4gICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRhcmdldC5tYXhpbWl6ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cIm9wdGlvbnMgPT09IHRydWUgfHwgb3B0aW9ucyFbJ2FkZFRvQ2F0YWxvZyddID09PSB0cnVlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJtZW51aXRlbVwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwidG9nZ2xlQ2F0YWxvZygpXCIgY2xhc3M9XCJhLWJ0blwiPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImxpYnJhcnlfYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQHByeS53aWRnZXQudG9vbHRpcC5jYXRhbG9nV2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cIm9wdGlvbnMgPT09IHRydWUgfHwgb3B0aW9ucyFbJ2RlbGV0ZSddID09PSB0cnVlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1vdmVDb25maXJtKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG5cIlxuICAgICAgICAgIChrZXlkb3duLnRhYik9XCJtZW51T3BlbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImRlbGV0ZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuZGVsZXRlV2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFkZGl0aW9uYWxPcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjdXRlQWN0aW9uKG9wdGlvbilcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0FjdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBbaWNvblN2Z109XCJvcHRpb24uaWNvblwiPjwvcHJ5LWljb24+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlTW9kYWw+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm8tbW9kYWxcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJjYW5jZWxSZW1vdmVDb25maXJtKClcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgY29uZmlybSBkZWxldGUgcHJlc2VudGF0aW9uXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIiBpZD1cImRpYWxvZ190aXRsZVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC5tb2RhbFRpdGxlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAjY3Jvc3MgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImNvbmZpcm1SZW1vdmUoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmNvbXBvbmVudHMuY2hpcHNTZWxlY3Rvci5kYXRhc291cmNlLlwiXG4gICAgKGNhbmNlbCk9XCJ0b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKClcIlxuICAgICh2YWxpZGF0ZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgIChuZXh0VGFiKT1cImZvY3VzSW5wdXRDYXRhbG9nKClcIlxuICAgIChwcmV2aW91c1RhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiXG4gICAgKGl0ZW1zQ2hhbmdlZCk9XCJkYXRhc291cmNlc0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VzZWRJdGVtc109XCIodXNlZERhdGFzb3VyY2VzJCB8IGFzeW5jKSA/PyBbXVwiXG4gID48L3ByeS1kYXRhc291cmNlLXNlbGVjdG9yPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q2F0YWxvZz5cbiAgPGRpdlxuICAgIGNsYXNzPVwiby1tb2RhbFwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19DYXRhbG9nXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwidG9nZ2xlQ2F0YWxvZygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIj5cbiAgICAgICAgICB7eyAnQHByeS53aWRnZXQuZGVmaW5lQ2F0YWxvZycgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIlxuICAgICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiXG4gICAgICAgICAgI2Nyb3NzQ2F0YWxvZ1xuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMzVcIiBbd2lkdGhdPVwiMzVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cIm5hbWVcIj57eyAnQHByeS50b29sYm94LmNhdGFsb2cubGFiZWwnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJjYXRhbG9nSW5mby5uYW1lXCIgaWQ9XCJuYW1lXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHJlcXVpcmVkIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImRlc2NyaXB0aW9uXCI+e3sgJ0BwcnkudG9vbGJveC5jYXRhbG9nLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiY2F0YWxvZ0luZm8uZGVzY3JpcHRpb25cIiBpZD1cImRlc2NyaXB0aW9uXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHJlcXVpcmVkIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPHByeS1zZWxlY3QtaW1hZ2VcbiAgICAgICAgW2ljb25VcmxdPVwiY2F0YWxvZ0luZm8uaW1hZ2VcIlxuICAgICAgICAoY2hhbmdlZCk9XCJjYXRhbG9nSW5mby5pbWFnZSA9ICRldmVudFwiXG4gICAgICAgIFttb2RlXT1cInR5cGVcIlxuICAgICAgPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICAjY2FuY2VsXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJkaXNhYmxlVmFsaWRhdGlvbigpXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICN2YWxpZGF0ZUNhdGFsb2dcbiAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1DYXRhbG9nKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyhjYXRhbG9nSW5mby5uYW1lKVwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QudmFsaWRhdGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5U3BvdD5cbiAgPGRpdiBjbGFzcz1cIm8tbW9kYWwgLXBsYWNlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC50b29sdGlwLmNoYW5nZVNwb3QnIHwgaTE4biB9fVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJ0b2dnbGVDaGFuZ2VTcG90KClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cHJ5LWRhc2hib2FyZFxuICAgICAgW3N0YXRpY0Rhc2hib2FyZF09XCJ0YXJnZXRNYW5pZmVzdCFcIlxuICAgICAgW2JyZWFrcG9pbnRdPVwiMTBcIlxuICAgICAgW25vQmFja2dyb3VuZF09XCJ0cnVlXCJcbiAgICAgIFtmb3JjZU1vZGVFZGl0aW9uXT1cImZhbHNlXCJcbiAgICA+PC9wcnktZGFzaGJvYXJkPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs
CHANGED
|
@@ -73,6 +73,21 @@ export class WidgetFactoryService {
|
|
|
73
73
|
: [manifest.datasource];
|
|
74
74
|
return datasourcesArray.filter(() => widgetDefinition.autoLoadDatasource === undefined || widgetDefinition.autoLoadDatasource === 'aggregate');
|
|
75
75
|
}
|
|
76
|
+
getObjectsToAutoLoad(manifest) {
|
|
77
|
+
const datasources = [];
|
|
78
|
+
const aggregates = [];
|
|
79
|
+
manifest.windows.forEach((windowManifest) => {
|
|
80
|
+
windowManifest.widgets.forEach((widgetManifest) => {
|
|
81
|
+
this.datasourcesToAutoLoad(widgetManifest).forEach((res) => {
|
|
82
|
+
if (res.datasetId) {
|
|
83
|
+
datasources.push(res);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
this.aggregatesToAutoLoad(widgetManifest).forEach((ds) => aggregates.push(ds));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
return { datasources, aggregates };
|
|
90
|
+
}
|
|
76
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetFactoryService, deps: [{ token: i0.Injector }, { token: WIDGET_DEFINITION }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
77
92
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WidgetFactoryService, providedIn: 'root' }); }
|
|
78
93
|
}
|
|
@@ -85,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
85
100
|
type: Inject,
|
|
86
101
|
args: [WIDGET_DEFINITION]
|
|
87
102
|
}] }, { type: i1.Store }]; } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZhY3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOzs7QUFJL0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUtsRixNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsUUFBa0IsRUFDQyxTQUE4QyxFQUNqRSxLQUFZO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVnRCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBc0M7WUFDcEUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUU7WUFDM0UsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7U0FDN0QsQ0FBQyxDQUFDO1FB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LENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBYyxDQUFDO1FBQ3hDLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxDQUM1QixHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLElBQUksZ0JBQWdCLENBQUMsa0JBQWtCLEtBQUssV0FBVyxDQUMvRyxDQUFDO0lBQ0osQ0FBQzsrR0FqRlUsb0JBQW9CLDBDQVVyQixpQkFBaUI7bUhBVmhCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFXSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2Utd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRGaWxsZXJDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXQtZmlsbGVyL3dpZGdldC1maWxsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldFBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0LXBsYWNlaG9sZGVyL3dpZGdldC1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0RGVmaW5pdGlvbiwgV2lkZ2V0TGF6eURlZmluaXRpb24sIFdpZGdldFN0YXRpY0RlZmluaXRpb24gfSBmcm9tICcuL3dpZGdldHMtZGVmaW5pdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhc291cmNlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGFzb3VyY2UtdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgV0lER0VUX0RFRklOSVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignV2lkZ2V0cyBkZWZpbml0aW9uJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldEZhY3RvcnlTZXJ2aWNlIHtcbiAgcmVmZXJlbmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBba2V5OiBzdHJpbmddOiBXaWRnZXREZWZpbml0aW9uIH0+KHtcbiAgICBwbGFjZWhvbGRlcjogeyBuYW1lOiAncGxhY2Vob2xkZXInLCBjb21wb25lbnQ6IFdpZGdldFBsYWNlaG9sZGVyQ29tcG9uZW50IH0sXG4gICAgZmlsbGVyOiB7IG5hbWU6ICdmaWxsZXInLCBjb21wb25lbnQ6IFdpZGdldEZpbGxlckNvbXBvbmVudCB9XG4gIH0pO1xuICBtb2R1bGVSZWZDYWNoZSA9IHt9IGFzIHsgW21hbmlmZXN0VHlwZTogc3RyaW5nXTogVHlwZTxCYXNlV2lkZ2V0Q29tcG9uZW50PiB9O1xuICBkYXRhc291cmNlczogRGF0YVNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChXSURHRVRfREVGSU5JVElPTikgcmVmZXJlbmNlOiB7IFtrZXk6IHN0cmluZ106IFdpZGdldERlZmluaXRpb24gfSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZVxuICApIHtcbiAgICB0aGlzLnB1dERlZmluaXRpb25zKHJlZmVyZW5jZSk7XG4gICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcykuc3Vic2NyaWJlKChkYXRhc291cmNlcykgPT4gKHRoaXMuZGF0YXNvdXJjZXMgPSBkYXRhc291cmNlcykpO1xuICB9XG5cbiAgcmVzb2x2ZUNvbXBvbmVudChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QpIHtcbiAgICBpZiAodGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMubW9kdWxlUmVmQ2FjaGVbbWFuaWZlc3QudHlwZV0pO1xuICAgIH1cbiAgICBpZiAoISFtYW5pZmVzdCAmJiB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKHRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpW21hbmlmZXN0LnR5cGVdLmxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gKFxuICAgICAgICAgIHRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpW21hbmlmZXN0LnR5cGVdIGFzIFdpZGdldFN0YXRpY0RlZmluaXRpb25cbiAgICAgICAgKS5jb21wb25lbnQ7XG4gICAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgICh0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSBhcyBXaWRnZXRMYXp5RGVmaW5pdGlvbikubG9hZCgpLnRoZW4oKGZuKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gZm4odGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gKFxuICAgICAgICB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVsncGxhY2Vob2xkZXInXSBhcyBXaWRnZXRTdGF0aWNEZWZpbml0aW9uXG4gICAgICApLmNvbXBvbmVudDtcbiAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHB1dERlZmluaXRpb25zKGRlZmluaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IFdpZGdldERlZmluaXRpb24gfSkge1xuICAgIHRoaXMucmVmZXJlbmNlJC5uZXh0KHtcbiAgICAgIC4uLnRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpLFxuICAgICAgLi4uZGVmaW5pdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGlzTW9kdWxlTG9hZGVkKHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZSQucGlwZShtYXAoKGNvbXBvbmVudERlZnMpID0+ICEhY29tcG9uZW50RGVmc1t0eXBlXSkpO1xuICB9XG5cbiAgZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCkge1xuICAgIGNvbnN0IHdpZGdldERlZmluaXRpb24gPSB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXTtcbiAgICBjb25zdCBkYXRhc291cmNlc0FycmF5OiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkobWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSlcbiAgICAgID8gKChtYW5pZmVzdC5kYXRhc291cmNlID8/IFtdKSBhcyBzdHJpbmdbXSlcbiAgICAgIDogKFttYW5pZmVzdC5kYXRhc291cmNlXSBhcyBzdHJpbmdbXSk7XG4gICAgcmV0dXJuIGRhdGFzb3VyY2VzQXJyYXlcbiAgICAgIC5maWx0ZXIoKGRhdGFzb3VyY2UpID0+IHtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmcgPSB0aGlzLmRhdGFzb3VyY2VzLmZpbmQoKGRzKSA9PiBkcy5pZCA9PT0gZGF0YXNvdXJjZSkhO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHdpZGdldERlZmluaXRpb24uYXV0b0xvYWREYXRhc291cmNlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICB3aWRnZXREZWZpbml0aW9uLmF1dG9Mb2FkRGF0YXNvdXJjZSA9PT0gJ2FsbCcgfHxcbiAgICAgICAgICAod2lkZ2V0RGVmaW5pdGlvbi5hdXRvTG9hZERhdGFzb3VyY2UgPT09ICdnZW8nICYmIERhdGFzb3VyY2VVdGlscy5pc0dlbyhtYXRjaGluZykpIHx8XG4gICAgICAgICAgKHdpZGdldERlZmluaXRpb24uYXV0b0xvYWREYXRhc291cmNlID09PSAnbm90LWdlbycgJiYgIURhdGFzb3VyY2VVdGlscy5pc0dlbyhtYXRjaGluZykpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICAgLm1hcCgoZHMpID0+ICh7IGRhdGFzZXRJZDogZHMsIGV4Y2x1ZGVHZW86IG1hbmlmZXN0LnR5cGUgIT09ICdtYXAnIH0pKTtcbiAgfVxuXG4gIGFnZ3JlZ2F0ZXNUb0F1dG9Mb2FkKG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCkge1xuICAgIGNvbnN0IHdpZGdldERlZmluaXRpb24gPSB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXTtcbiAgICBjb25zdCBkYXRhc291cmNlc0FycmF5OiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkobWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSlcbiAgICAgID8gKChtYW5pZmVzdC5kYXRhc291cmNlID8/IFtdKSBhcyBzdHJpbmdbXSlcbiAgICAgIDogKFttYW5pZmVzdC5kYXRhc291cmNlXSBhcyBzdHJpbmdbXSk7XG4gICAgcmV0dXJuIGRhdGFzb3VyY2VzQXJyYXkuZmlsdGVyKFxuICAgICAgKCkgPT4gd2lkZ2V0RGVmaW5pdGlvbi5hdXRvTG9hZERhdGFzb3VyY2UgPT09IHVuZGVmaW5lZCB8fCB3aWRnZXREZWZpbml0aW9uLmF1dG9Mb2FkRGF0YXNvdXJjZSA9PT0gJ2FnZ3JlZ2F0ZSdcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZhY3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOzs7QUFJL0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUtsRixNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsUUFBa0IsRUFDQyxTQUE4QyxFQUNqRSxLQUFZO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVnRCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBc0M7WUFDcEUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUU7WUFDM0UsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7U0FDN0QsQ0FBQyxDQUFDO1FB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ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdsb2JhbE1hbmlmZXN0LCBXaWRnZXRNYW5pZmVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhc2VXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0RmlsbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0LWZpbGxlci93aWRnZXQtZmlsbGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldC1wbGFjZWhvbGRlci93aWRnZXQtcGxhY2Vob2xkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldERlZmluaXRpb24sIFdpZGdldExhenlEZWZpbml0aW9uLCBXaWRnZXRTdGF0aWNEZWZpbml0aW9uIH0gZnJvbSAnLi93aWRnZXRzLWRlZmluaXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgRGF0YXNvdXJjZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhc291cmNlLXV0aWxzJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcblxuZXhwb3J0IGNvbnN0IFdJREdFVF9ERUZJTklUSU9OID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ1dpZGdldHMgZGVmaW5pdGlvbicpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRGYWN0b3J5U2VydmljZSB7XG4gIHJlZmVyZW5jZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogV2lkZ2V0RGVmaW5pdGlvbiB9Pih7XG4gICAgcGxhY2Vob2xkZXI6IHsgbmFtZTogJ3BsYWNlaG9sZGVyJywgY29tcG9uZW50OiBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCB9LFxuICAgIGZpbGxlcjogeyBuYW1lOiAnZmlsbGVyJywgY29tcG9uZW50OiBXaWRnZXRGaWxsZXJDb21wb25lbnQgfVxuICB9KTtcbiAgbW9kdWxlUmVmQ2FjaGUgPSB7fSBhcyB7IFttYW5pZmVzdFR5cGU6IHN0cmluZ106IFR5cGU8QmFzZVdpZGdldENvbXBvbmVudD4gfTtcbiAgZGF0YXNvdXJjZXM6IERhdGFTb3VyY2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoV0lER0VUX0RFRklOSVRJT04pIHJlZmVyZW5jZTogeyBba2V5OiBzdHJpbmddOiBXaWRnZXREZWZpbml0aW9uIH0sXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmVcbiAgKSB7XG4gICAgdGhpcy5wdXREZWZpbml0aW9ucyhyZWZlcmVuY2UpO1xuICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLnN1YnNjcmliZSgoZGF0YXNvdXJjZXMpID0+ICh0aGlzLmRhdGFzb3VyY2VzID0gZGF0YXNvdXJjZXMpKTtcbiAgfVxuXG4gIHJlc29sdmVDb21wb25lbnQobWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0KSB7XG4gICAgaWYgKHRoaXMubW9kdWxlUmVmQ2FjaGVbbWFuaWZlc3QudHlwZV0pIHtcbiAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICB9XG4gICAgaWYgKCEhbWFuaWZlc3QgJiYgdGhpcy5yZWZlcmVuY2UkLmdldFZhbHVlKClbbWFuaWZlc3QudHlwZV0pIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmICh0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXS5sb2FkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSA9IChcbiAgICAgICAgICB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSBhcyBXaWRnZXRTdGF0aWNEZWZpbml0aW9uXG4gICAgICAgICkuY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gb2YodGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgICAodGhpcy5yZWZlcmVuY2UkLmdldFZhbHVlKClbbWFuaWZlc3QudHlwZV0gYXMgV2lkZ2V0TGF6eURlZmluaXRpb24pLmxvYWQoKS50aGVuKChmbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSA9IGZuKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubW9kdWxlUmVmQ2FjaGVbbWFuaWZlc3QudHlwZV07XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSA9IChcbiAgICAgICAgdGhpcy5yZWZlcmVuY2UkLmdldFZhbHVlKClbJ3BsYWNlaG9sZGVyJ10gYXMgV2lkZ2V0U3RhdGljRGVmaW5pdGlvblxuICAgICAgKS5jb21wb25lbnQ7XG4gICAgICByZXR1cm4gb2YodGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwdXREZWZpbml0aW9ucyhkZWZpbml0aW9uczogeyBba2V5OiBzdHJpbmddOiBXaWRnZXREZWZpbml0aW9uIH0pIHtcbiAgICB0aGlzLnJlZmVyZW5jZSQubmV4dCh7XG4gICAgICAuLi50aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKSxcbiAgICAgIC4uLmRlZmluaXRpb25zXG4gICAgfSk7XG4gIH1cblxuICBpc01vZHVsZUxvYWRlZCh0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2UkLnBpcGUobWFwKChjb21wb25lbnREZWZzKSA9PiAhIWNvbXBvbmVudERlZnNbdHlwZV0pKTtcbiAgfVxuXG4gIGRhdGFzb3VyY2VzVG9BdXRvTG9hZChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QpIHtcbiAgICBjb25zdCB3aWRnZXREZWZpbml0aW9uID0gdGhpcy5yZWZlcmVuY2UkLmdldFZhbHVlKClbbWFuaWZlc3QudHlwZV07XG4gICAgY29uc3QgZGF0YXNvdXJjZXNBcnJheTogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KG1hbmlmZXN0LmRhdGFzb3VyY2UgPz8gW10pXG4gICAgICA/ICgobWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSkgYXMgc3RyaW5nW10pXG4gICAgICA6IChbbWFuaWZlc3QuZGF0YXNvdXJjZV0gYXMgc3RyaW5nW10pO1xuICAgIHJldHVybiBkYXRhc291cmNlc0FycmF5XG4gICAgICAuZmlsdGVyKChkYXRhc291cmNlKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nID0gdGhpcy5kYXRhc291cmNlcy5maW5kKChkcykgPT4gZHMuaWQgPT09IGRhdGFzb3VyY2UpITtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICB3aWRnZXREZWZpbml0aW9uLmF1dG9Mb2FkRGF0YXNvdXJjZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgd2lkZ2V0RGVmaW5pdGlvbi5hdXRvTG9hZERhdGFzb3VyY2UgPT09ICdhbGwnIHx8XG4gICAgICAgICAgKHdpZGdldERlZmluaXRpb24uYXV0b0xvYWREYXRhc291cmNlID09PSAnZ2VvJyAmJiBEYXRhc291cmNlVXRpbHMuaXNHZW8obWF0Y2hpbmcpKSB8fFxuICAgICAgICAgICh3aWRnZXREZWZpbml0aW9uLmF1dG9Mb2FkRGF0YXNvdXJjZSA9PT0gJ25vdC1nZW8nICYmICFEYXRhc291cmNlVXRpbHMuaXNHZW8obWF0Y2hpbmcpKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGRzKSA9PiAoeyBkYXRhc2V0SWQ6IGRzLCBleGNsdWRlR2VvOiBtYW5pZmVzdC50eXBlICE9PSAnbWFwJyB9KSk7XG4gIH1cblxuICBhZ2dyZWdhdGVzVG9BdXRvTG9hZChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QpIHtcbiAgICBjb25zdCB3aWRnZXREZWZpbml0aW9uID0gdGhpcy5yZWZlcmVuY2UkLmdldFZhbHVlKClbbWFuaWZlc3QudHlwZV07XG4gICAgY29uc3QgZGF0YXNvdXJjZXNBcnJheTogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KG1hbmlmZXN0LmRhdGFzb3VyY2UgPz8gW10pXG4gICAgICA/ICgobWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSkgYXMgc3RyaW5nW10pXG4gICAgICA6IChbbWFuaWZlc3QuZGF0YXNvdXJjZV0gYXMgc3RyaW5nW10pO1xuICAgIHJldHVybiBkYXRhc291cmNlc0FycmF5LmZpbHRlcihcbiAgICAgICgpID0+IHdpZGdldERlZmluaXRpb24uYXV0b0xvYWREYXRhc291cmNlID09PSB1bmRlZmluZWQgfHwgd2lkZ2V0RGVmaW5pdGlvbi5hdXRvTG9hZERhdGFzb3VyY2UgPT09ICdhZ2dyZWdhdGUnXG4gICAgKTtcbiAgfVxuXG4gIGdldE9iamVjdHNUb0F1dG9Mb2FkKG1hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdCkge1xuICAgIGNvbnN0IGRhdGFzb3VyY2VzOiB7IGRhdGFzZXRJZDogc3RyaW5nOyBleGNsdWRlR2VvOiBib29sZWFuIH1bXSA9IFtdO1xuICAgIGNvbnN0IGFnZ3JlZ2F0ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBtYW5pZmVzdC53aW5kb3dzLmZvckVhY2goKHdpbmRvd01hbmlmZXN0KSA9PiB7XG4gICAgICB3aW5kb3dNYW5pZmVzdC53aWRnZXRzLmZvckVhY2goKHdpZGdldE1hbmlmZXN0KSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKHdpZGdldE1hbmlmZXN0KS5mb3JFYWNoKChyZXM6IHsgZGF0YXNldElkOiBzdHJpbmc7IGV4Y2x1ZGVHZW86IGJvb2xlYW4gfSkgPT4ge1xuICAgICAgICAgIGlmIChyZXMuZGF0YXNldElkKSB7XG4gICAgICAgICAgICBkYXRhc291cmNlcy5wdXNoKHJlcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmFnZ3JlZ2F0ZXNUb0F1dG9Mb2FkKHdpZGdldE1hbmlmZXN0KS5mb3JFYWNoKChkczogc3RyaW5nKSA9PiBhZ2dyZWdhdGVzLnB1c2goZHMpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgZGF0YXNvdXJjZXMsIGFnZ3JlZ2F0ZXMgfTtcbiAgfVxufVxuIl19
|
|
@@ -94,7 +94,7 @@ export class ItemUtils {
|
|
|
94
94
|
const attrField = fields.find((f) => f.id === attr.field);
|
|
95
95
|
return attrField && !GeometricFieldTypes.includes(attrField.type);
|
|
96
96
|
})
|
|
97
|
-
.map((attr) => attr.
|
|
97
|
+
.map((attr) => attr.name));
|
|
98
98
|
}
|
|
99
99
|
static ensureItemIdHasCorrectFormat(item) {
|
|
100
100
|
if (!item.id.includes('@')) {
|
|
@@ -106,4 +106,4 @@ export class ItemUtils {
|
|
|
106
106
|
return Array.isArray(a) && Array.isArray(b) && a.length === b.length && a.every((val, index) => val === b[index]);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVMsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1qRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxTQUE0QyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTyxDQUNMLENBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUUsSUFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RFLENBQUMsQ0FBRyxJQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQTRCLENBQUMsSUFBSSxFQUFFLENBQzFGLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FDZjtpQkFDRSxHQUFHLENBQUMsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMs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SUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsSUFBVTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQVEsRUFBRSxDQUFRO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBDbGFzcyB9IGZyb20gJy4uL2NvcmUvc3RvcmUvY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkLCBHZW9tZXRyaWNGaWVsZFR5cGVzIH0gZnJvbSAnLi4vY29yZS9zdG9yZS9maWVsZC9maWVsZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9sRmVhdHVyZSB7XG4gIGdldChrZXk6IHN0cmluZyk6IGFueTtcbn1cblxuY29uc3QgaGlkZGVuRmllbGRUZXh0ID0gJyoqKioqKioqKic7XG5cbmV4cG9ydCBjbGFzcyBJdGVtVXRpbHMge1xuICBzdGF0aWMgZ2V0QXR0cmlidXRlVmFsdWUoXG4gICAgaXRlbTogSXRlbSB8IE9sRmVhdHVyZSxcbiAgICBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuICEhaXRlbS5nZXQgPyBpdGVtLmdldChhdHRyaWJ1dGUpIDogaXRlbS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChcbiAgICAgICAgICAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID8/IHt9XG4gICAgICAgICAgICA6ICgoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSkgPz8ge31cbiAgICAgICAgKS52YWx1ZXMgPz8gW11cbiAgICAgIClcbiAgICAgICAgLm1hcCgodjogQXR0cmlidXRlU2ltcGxlVmFsdWUpID0+ICh7IC4uLnYsIHZhbHVlOiB2LnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdi52YWx1ZSB9KSlcbiAgICAgICAgLnNvcnQoSXRlbVV0aWxzLnNvcnRBdHRyaWJ1dGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICFpdGVtLmhhc093blByb3BlcnR5KCdvQ2xhc3MnKVxuICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdXG4gICAgICAgIDogKGl0ZW0gYXMgSXRlbSkuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV1cbiAgICApIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShpdGVtOiBJdGVtLCBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IFZhbHVlVHlwZSB8IFZhbHVlVHlwZVtdIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gaXRlbVthdHRyaWJ1dGVdO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICByZXR1cm4gKEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10pLm1hcCgodikgPT4gdi52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIGF0dHJpYnV0ZSkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlID8gKHZhbHVlLnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdmFsdWUudmFsdWUpIDogKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydEF0dHJpYnV0ZXMoYTogQXR0cmlidXRlU2ltcGxlVmFsdWUsIGI6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJlVmlzaWJsZSA9IChiLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKSAtIChhLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKTtcbiAgICBpZiAoY29tcGFyZVZpc2libGUgIT09IDApIHtcbiAgICAgIHJldHVybiBjb21wYXJlVmlzaWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChiPy5tZXRhZGF0YSA/IChiPy5tZXRhZGF0YVsnX21vZGlmaWNhdGlvbl9kYXRlJ10gYXMgbnVtYmVyKSA/PyAwIDogMCkgLVxuICAgICAgKGE/Lm1ldGFkYXRhID8gKGE/Lm1ldGFkYXRhWydfbW9kaWZpY2F0aW9uX2RhdGUnXSBhcyBudW1iZXIpID8/IDAgOiAwKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgcGVydGluZW50VmFsdWUoaXRlbXM6IEl0ZW1bXSwgYXR0cjogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIGl0ZW1zXG4gICAgICAubWFwKChpdGVtKSA9PiBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlQ2FsY3VsYXRlZFZhbHVlKGl0ZW0sIGF0dHIpKVxuICAgICAgLmZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAubWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0xvY2F0aW9uKHR1cGxlOiBhbnlbXSkge1xuICAgIHJldHVybiAhIXR1cGxlWzBdICYmICEhdHVwbGVbMV0gJiYgdHlwZW9mIHR1cGxlWzBdID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdHVwbGVbMV0gPT09ICdudW1iZXInO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNGcm9tQXZhaWxhYmlsaXR5SW5SZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PlxuICAgICAgICAgICAgcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdLm1hcCgoaXRlbSkgPT4gWy4uLk9iamVjdC5rZXlzKGl0ZW0pLCAuLi5PYmplY3Qua2V5cyhpdGVtLmF0dHJpYnV0ZXMpXSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcbiAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AgIT09ICdhdHRyaWJ1dGVzJylcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEZpZWxkc0ZvckNsYXNzZXMoY2xhc3Nlc0lkOiBzdHJpbmdbXSwgY2xhc3NlczogQ2xhc3NbXSwgZmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGNsYXNzZXNJZFxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IGNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSBjbGFzc0lkKSBhcyBDbGFzcylcbiAgICAgICAgICAuZmlsdGVyKChvQ2xhc3MpID0+IG9DbGFzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG9DbGFzczogQ2xhc3MpID0+IG9DbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHIuZmllbGQpISkpXG4gICAgICAgICAgLm1hcCgoZmllbGRzOiBGaWVsZFtdKSA9PiBmaWVsZHMuZmlsdGVyKChmKSA9PiAhIWYpKVxuICAgICAgICAgIC5yZWR1Y2UoKHA6IEZpZWxkW10sIGM6IEZpZWxkW10pID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNMb2NhdGlvbihjbGF6ejogQ2xhc3MpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkT2JqZWN0KG9iamVjdDogSXRlbSkge1xuICAgIHJldHVybiBvYmplY3Qub0NsYXNzICYmIG9iamVjdC5vQ2xhc3MubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbVJzKFxuICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgIGNsYXNzZXM6IENsYXNzW10sXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGRlZnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH1cbiAgKTogQXR0cmlidXRlW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZGVmcyA/PyB7fTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgYXMgQ2xhc3MpXG4gICAgICAgICAgLmZpbHRlcigob0NsYXNzKSA9PiBvQ2xhc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChvQ2xhc3MpID0+XG4gICAgICAgICAgICBvQ2xhc3MuYXR0cmlidXRlcy5maWx0ZXIoKGF0dHIpID0+XG4gICAgICAgICAgICAgIEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKG9DbGFzcywgZGVmaW5pdGlvbnMsIGZpZWxkcykuaW5jbHVkZXMoYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gISFmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCkpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKGNsYXp6OiBDbGFzcywgZGVmczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LCBmaWVsZHM6IEZpZWxkW10pIHtcbiAgICByZXR1cm4gKFxuICAgICAgZGVmc1tjbGF6ei5pZCA/PyAnJ10gPz9cbiAgICAgIChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgLmZpbHRlcigoYXR0cikgPT4ge1xuICAgICAgICAgIGNvbnN0IGF0dHJGaWVsZCA9IGZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKTtcbiAgICAgICAgICByZXR1cm4gYXR0ckZpZWxkICYmICFHZW9tZXRyaWNGaWVsZFR5cGVzLmluY2x1ZGVzKGF0dHJGaWVsZC50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZW5zdXJlSXRlbUlkSGFzQ29ycmVjdEZvcm1hdChpdGVtOiBJdGVtKTogSXRlbSB7XG4gICAgaWYgKCFpdGVtLmlkLmluY2x1ZGVzKCdAJykpIHtcbiAgICAgIGl0ZW0uaWQgPSBgJHtpdGVtLm9DbGFzc31AJHtpdGVtLmlkfWA7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgc3RhdGljIHNpbXBsZUFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gYltpbmRleF0pO1xuICB9XG59XG4iXX0=
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvaXRlbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVMsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQU1qRixNQUFNLGVBQWUsR0FBRyxXQUFXLENBQUM7QUFFcEMsTUFBTSxPQUFPLFNBQVM7SUFDcEIsTUFBTSxDQUFDLGlCQUFpQixDQUN0QixJQUFzQixFQUN0QixTQUF5QztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxTQUE0QyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsYUFBYTtZQUNiLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEU7UUFDRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTyxDQUNMLENBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUUsSUFBa0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RFLENBQUMsQ0FBRyxJQUFhLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQTRCLENBQUMsSUFBSSxFQUFFLENBQzFGLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FDZjtpQkFDRSxHQUFHLENBQUMsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMs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SUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxTQUFTLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLENBQUMsQ0FBQztpQkFDRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsNEJBQTRCLENBQUMsSUFBVTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQVEsRUFBRSxDQUFRO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dHJpYnV0ZU11bHRpcGxlVmFsdWUsIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLCBJdGVtLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCB9IGZyb20gJy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBDbGFzcyB9IGZyb20gJy4uL2NvcmUvc3RvcmUvY2xhc3MvY2xhc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkLCBHZW9tZXRyaWNGaWVsZFR5cGVzIH0gZnJvbSAnLi4vY29yZS9zdG9yZS9maWVsZC9maWVsZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9sRmVhdHVyZSB7XG4gIGdldChrZXk6IHN0cmluZyk6IGFueTtcbn1cblxuY29uc3QgaGlkZGVuRmllbGRUZXh0ID0gJyoqKioqKioqKic7XG5cbmV4cG9ydCBjbGFzcyBJdGVtVXRpbHMge1xuICBzdGF0aWMgZ2V0QXR0cmlidXRlVmFsdWUoXG4gICAgaXRlbTogSXRlbSB8IE9sRmVhdHVyZSxcbiAgICBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGlmICghYXR0cmlidXRlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYXR0cmlidXRlID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuICEhaXRlbS5nZXQgPyBpdGVtLmdldChhdHRyaWJ1dGUpIDogaXRlbS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZV07XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGUubXVsdGlWYWx1ZWQpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChcbiAgICAgICAgICAoIWl0ZW0uaGFzT3duUHJvcGVydHkoJ29DbGFzcycpXG4gICAgICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdID8/IHt9XG4gICAgICAgICAgICA6ICgoaXRlbSBhcyBJdGVtKS5hdHRyaWJ1dGVzW2F0dHJpYnV0ZS50ZWNobmljYWxOYW1lXSBhcyBBdHRyaWJ1dGVNdWx0aXBsZVZhbHVlKSkgPz8ge31cbiAgICAgICAgKS52YWx1ZXMgPz8gW11cbiAgICAgIClcbiAgICAgICAgLm1hcCgodjogQXR0cmlidXRlU2ltcGxlVmFsdWUpID0+ICh7IC4uLnYsIHZhbHVlOiB2LnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdi52YWx1ZSB9KSlcbiAgICAgICAgLnNvcnQoSXRlbVV0aWxzLnNvcnRBdHRyaWJ1dGVzKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgICFpdGVtLmhhc093blByb3BlcnR5KCdvQ2xhc3MnKVxuICAgICAgICA/IChpdGVtIGFzIE9sRmVhdHVyZSkuZ2V0KCdhdHRyaWJ1dGVzJylbYXR0cmlidXRlLnRlY2huaWNhbE5hbWVdXG4gICAgICAgIDogKGl0ZW0gYXMgSXRlbSkuYXR0cmlidXRlc1thdHRyaWJ1dGUudGVjaG5pY2FsTmFtZV1cbiAgICApIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZUNhbGN1bGF0ZWRWYWx1ZShpdGVtOiBJdGVtLCBhdHRyaWJ1dGU6IEF0dHJpYnV0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IFZhbHVlVHlwZSB8IFZhbHVlVHlwZVtdIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhdHRyaWJ1dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gaXRlbVthdHRyaWJ1dGVdO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlLm11bHRpVmFsdWVkKSB7XG4gICAgICByZXR1cm4gKEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVWYWx1ZShpdGVtLCBhdHRyaWJ1dGUpIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10pLm1hcCgodikgPT4gdi52YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIGF0dHJpYnV0ZSkgYXMgQXR0cmlidXRlU2ltcGxlVmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlID8gKHZhbHVlLnZpc2libGUgPT09IGZhbHNlID8gaGlkZGVuRmllbGRUZXh0IDogdmFsdWUudmFsdWUpIDogKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIFZhbHVlVHlwZSk7XG4gIH1cblxuICBzdGF0aWMgc29ydEF0dHJpYnV0ZXMoYTogQXR0cmlidXRlU2ltcGxlVmFsdWUsIGI6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb21wYXJlVmlzaWJsZSA9IChiLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKSAtIChhLnZpc2libGUgPT09IGZhbHNlID8gLTEgOiAxKTtcbiAgICBpZiAoY29tcGFyZVZpc2libGUgIT09IDApIHtcbiAgICAgIHJldHVybiBjb21wYXJlVmlzaWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChiPy5tZXRhZGF0YSA/IChiPy5tZXRhZGF0YVsnX21vZGlmaWNhdGlvbl9kYXRlJ10gYXMgbnVtYmVyKSA/PyAwIDogMCkgLVxuICAgICAgKGE/Lm1ldGFkYXRhID8gKGE/Lm1ldGFkYXRhWydfbW9kaWZpY2F0aW9uX2RhdGUnXSBhcyBudW1iZXIpID8/IDAgOiAwKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgcGVydGluZW50VmFsdWUoaXRlbXM6IEl0ZW1bXSwgYXR0cjogQXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIGl0ZW1zXG4gICAgICAubWFwKChpdGVtKSA9PiBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlQ2FsY3VsYXRlZFZhbHVlKGl0ZW0sIGF0dHIpKVxuICAgICAgLmZpbHRlcigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAubWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgbnVtYmVyKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0xvY2F0aW9uKHR1cGxlOiBhbnlbXSkge1xuICAgIHJldHVybiAhIXR1cGxlWzBdICYmICEhdHVwbGVbMV0gJiYgdHlwZW9mIHR1cGxlWzBdID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdHVwbGVbMV0gPT09ICdudW1iZXInO1xuICB9XG5cbiAgc3RhdGljIGdldEF0dHJpYnV0ZXNGcm9tQXZhaWxhYmlsaXR5SW5SZXN1bHRTZXQocmVzdWx0U2V0OiBSZXN1bHRTZXQpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PlxuICAgICAgICAgICAgcmVzdWx0U2V0Lml0ZW1zW2NsYXNzSWRdLm1hcCgoaXRlbSkgPT4gWy4uLk9iamVjdC5rZXlzKGl0ZW0pLCAuLi5PYmplY3Qua2V5cyhpdGVtLmF0dHJpYnV0ZXMpXSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcbiAgICAgICAgICAucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBbLi4ucHJldiwgLi4uY3Vycl0sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKHByb3ApID0+IHByb3AgIT09ICdhdHRyaWJ1dGVzJylcbiAgICAgIClcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldEZpZWxkc0ZvckNsYXNzZXMoY2xhc3Nlc0lkOiBzdHJpbmdbXSwgY2xhc3NlczogQ2xhc3NbXSwgZmllbGRzOiBGaWVsZFtdKTogRmllbGRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGNsYXNzZXNJZFxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IGNsYXNzZXMuZmluZCgoY2wpID0+IGNsLmlkID09PSBjbGFzc0lkKSBhcyBDbGFzcylcbiAgICAgICAgICAuZmlsdGVyKChvQ2xhc3MpID0+IG9DbGFzcyAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG9DbGFzczogQ2xhc3MpID0+IG9DbGFzcy5hdHRyaWJ1dGVzLm1hcCgoYXR0cikgPT4gZmllbGRzLmZpbmQoKGYpID0+IGYuaWQgPT09IGF0dHIuZmllbGQpISkpXG4gICAgICAgICAgLm1hcCgoZmllbGRzOiBGaWVsZFtdKSA9PiBmaWVsZHMuZmlsdGVyKChmKSA9PiAhIWYpKVxuICAgICAgICAgIC5yZWR1Y2UoKHA6IEZpZWxkW10sIGM6IEZpZWxkW10pID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBoYXNMb2NhdGlvbihjbGF6ejogQ2xhc3MpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkT2JqZWN0KG9iamVjdDogSXRlbSkge1xuICAgIHJldHVybiBvYmplY3Qub0NsYXNzICYmIG9iamVjdC5vQ2xhc3MubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRnJvbVJzKFxuICAgIHJlc3VsdFNldDogUmVzdWx0U2V0LFxuICAgIGNsYXNzZXM6IENsYXNzW10sXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGRlZnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH1cbiAgKTogQXR0cmlidXRlW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZGVmcyA/PyB7fTtcbiAgICByZXR1cm4gW1xuICAgICAgLi4ubmV3IFNldChcbiAgICAgICAgT2JqZWN0LmtleXMocmVzdWx0U2V0Py5pdGVtcyB8fCB7fSlcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiBjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgYXMgQ2xhc3MpXG4gICAgICAgICAgLmZpbHRlcigob0NsYXNzKSA9PiBvQ2xhc3MgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChvQ2xhc3MpID0+XG4gICAgICAgICAgICBvQ2xhc3MuYXR0cmlidXRlcy5maWx0ZXIoKGF0dHIpID0+XG4gICAgICAgICAgICAgIEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKG9DbGFzcywgZGVmaW5pdGlvbnMsIGZpZWxkcykuaW5jbHVkZXMoYXR0ci50ZWNobmljYWxOYW1lKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgICAgICAgIC5maWx0ZXIoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gISFmaWVsZHMuZmluZCgoZikgPT4gZi5pZCA9PT0gYXR0ci5maWVsZCkpXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRBdHRyaWJ1dGVzRGVmaW5pdGlvbkZvckNsYXNzKGNsYXp6OiBDbGFzcywgZGVmczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9LCBmaWVsZHM6IEZpZWxkW10pIHtcbiAgICByZXR1cm4gKFxuICAgICAgZGVmc1tjbGF6ei5pZCA/PyAnJ10gPz9cbiAgICAgIChjbGF6eiA/PyB7IGF0dHJpYnV0ZXM6IFtdIH0pLmF0dHJpYnV0ZXNcbiAgICAgICAgLmZpbHRlcigoYXR0cikgPT4ge1xuICAgICAgICAgIGNvbnN0IGF0dHJGaWVsZCA9IGZpZWxkcy5maW5kKChmKSA9PiBmLmlkID09PSBhdHRyLmZpZWxkKTtcbiAgICAgICAgICByZXR1cm4gYXR0ckZpZWxkICYmICFHZW9tZXRyaWNGaWVsZFR5cGVzLmluY2x1ZGVzKGF0dHJGaWVsZC50eXBlKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm1hcCgoYXR0cikgPT4gYXR0ci5uYW1lKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZW5zdXJlSXRlbUlkSGFzQ29ycmVjdEZvcm1hdChpdGVtOiBJdGVtKTogSXRlbSB7XG4gICAgaWYgKCFpdGVtLmlkLmluY2x1ZGVzKCdAJykpIHtcbiAgICAgIGl0ZW0uaWQgPSBgJHtpdGVtLm9DbGFzc31AJHtpdGVtLmlkfWA7XG4gICAgfVxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgc3RhdGljIHNpbXBsZUFycmF5RXF1YWxzKGE6IGFueVtdLCBiOiBhbnlbXSkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGEpICYmIEFycmF5LmlzQXJyYXkoYikgJiYgYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKHZhbCwgaW5kZXgpID0+IHZhbCA9PT0gYltpbmRleF0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createFeatureSelector, createSelector } from '@ngrx/store';
|
|
2
2
|
import equal from 'fast-deep-equal/es6';
|
|
3
3
|
import { DashboardGridLayout } from '../../core/model/manifest.interface';
|
|
4
|
-
import { ManifestUtils } from './manifest-utils.class';
|
|
5
4
|
import { BASE_DISPLAY_OPTIONS } from '../../core/model/display-options.interface';
|
|
6
5
|
const NEW_WINDOW_TARGET = -1;
|
|
7
6
|
const feature = createFeatureSelector('@pry/dashboard');
|
|
@@ -11,7 +10,6 @@ const currentManifestId = createSelector(manifests, (manifests) => manifests.cur
|
|
|
11
10
|
const globalManifest = createSelector(manifests,
|
|
12
11
|
// @ts-ignore
|
|
13
12
|
(manifests) => ({ windows: [], ...manifests?.manifest } ?? { windows: [] }));
|
|
14
|
-
const manifestDatasources = createSelector(globalManifest, (manifest) => ManifestUtils.getDatasourcesUsedByManifest(manifest));
|
|
15
13
|
const staticManifest = createSelector(manifests,
|
|
16
14
|
// @ts-ignore
|
|
17
15
|
(manifests) => ({ windows: [], ...manifests?.staticManifest } ?? { windows: [] }));
|
|
@@ -90,7 +88,6 @@ export const DashboardSelectors = {
|
|
|
90
88
|
rank,
|
|
91
89
|
currentManifestId,
|
|
92
90
|
globalManifest,
|
|
93
|
-
manifestDatasources,
|
|
94
91
|
refreshRates,
|
|
95
92
|
windowManifest,
|
|
96
93
|
widgetManifest,
|
|
@@ -124,4 +121,4 @@ export const DashboardSelectors = {
|
|
|
124
121
|
displayOptions,
|
|
125
122
|
capabilities
|
|
126
123
|
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUN0RixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUd4QyxPQUFPLEVBQ0wsbUJBQW1CLEVBS3BCLE1BQU0scUNBQXFDLENBQUM7QUFLN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRWxGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFN0IsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQWlCLGdCQUFnQixDQUFDLENBQUM7QUFDeEUsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN2RixNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNwRyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN4RixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQ25DLFNBQVM7QUFDVCxhQUFhO0FBQ2IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFP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TyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixDQUFDLENBQUM7QUFDbEgsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztBQUU3RixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPO0lBQ1AsSUFBSTtJQUNKLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixjQUFjO0lBQ2QsY0FBYztJQUNkLGFBQWE7SUFDYixVQUFVO0lBQ1YsT0FBTztJQUNQLFVBQVU7SUFDVixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLGVBQWU7SUFDZixRQUFRO0lBQ1IsYUFBYTtJQUNiLGFBQWE7SUFDYixhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLFNBQVM7SUFDVCxtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxPQUFPO0lBQ1AsVUFBVTtJQUNWLFlBQVk7SUFDWixPQUFPO0lBQ1AsNkJBQTZCO0lBQzdCLDBCQUEwQjtJQUMxQixpQkFBaUI7SUFDakIsV0FBVztJQUNYLGNBQWM7SUFDZCxZQUFZO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IsIE1lbW9pemVkU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkTWFuaWZlc3QsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBXaWRnZXRMYXlvdXQsXG4gIFdpZGdldE1hbmlmZXN0XG59IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtb3JkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCwgUmVzdWx0U2V0cyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQ2VsbFBhcmFtcyB9IGZyb20gJy4vZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU3RhdGUgfSBmcm9tICcuL2Rhc2hib2FyZC5yZWR1Y2Vycyc7XG5pbXBvcnQgeyBNYW5pZmVzdFV0aWxzIH0gZnJvbSAnLi9tYW5pZmVzdC11dGlscy5jbGFzcyc7XG5pbXBvcnQgeyBCQVNFX0RJU1BMQVlfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5cbmNvbnN0IE5FV19XSU5ET1dfVEFSR0VUID0gLTE7XG5cbmNvbnN0IGZlYXR1cmUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8RGFzaGJvYXJkU3RhdGU+KCdAcHJ5L2Rhc2hib2FyZCcpO1xuY29uc3QgbWFuaWZlc3RzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/Lm1hbmlmZXN0cyk7XG5jb25zdCByYW5rID0gY3JlYXRlU2VsZWN0b3IobWFuaWZlc3RzLCAobWFuaWZlc3RzKSA9PiBtYW5pZmVzdHM/LnRlbmFudHMuaW5kZXhPZihtYW5pZmVzdHMuc2VuZGVyKSk7XG5jb25zdCBjdXJyZW50TWFuaWZlc3RJZCA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzLmN1cnJlbnRJZCk7XG5jb25zdCBnbG9iYWxNYW5pZmVzdCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBtYW5pZmVzdHMsXG4gIC8vIEB0cy1pZ25vcmVcbiAgKG1hbmlmZXN0cykgPT4gKHsgd2luZG93czogW10sIC4uLm1hbmlmZXN0cz8ubWFuaWZlc3QgfSA/PyAoeyB3aW5kb3dzOiBbXSB9IGFzIEdsb2JhbE1hbmlmZXN0KSlcbik7XG5jb25zdCBtYW5pZmVzdERhdGFzb3VyY2VzID0gY3JlYXRlU2VsZWN0b3IoZ2xvYmFsTWFuaWZlc3QsIChtYW5pZmVzdCkgPT5cbiAgTWFuaWZlc3RVdGlscy5nZXREYXRhc291cmNlc1VzZWRCeU1hbmlmZXN0KG1hbmlmZXN0KVxuKTtcbmNvbnN0IHN0YXRpY01hbmlmZXN0ID0gY3JlYXRlU2VsZWN0b3IoXG4gIG1hbmlmZXN0cyxcbiAgLy8gQHRzLWlnbm9yZVxuICAobWFuaWZlc3RzKSA9PiAoeyB3aW5kb3dzOiBbXSwgLi4ubWFuaWZlc3RzPy5zdGF0aWNNYW5pZmVzdCB9ID8/ICh7IHdpbmRvd3M6IFtdIH0gYXMgR2xvYmFsTWFuaWZlc3QpKVxuKTtcbmNvbnN0IGxvYWRpbmcgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+ICEhbWFuaWZlc3RzPy5sb2FkaW5nKTtcbmNvbnN0IHJlZnJlc2hSYXRlcyA9IGNyZWF0ZVNlbGVjdG9yKGdsb2JhbE1hbmlmZXN0LCAobWFuaWZlc3RzKSA9PiBtYW5pZmVzdHMucmVmcmVzaFJhdGVzID8/IHt9KTtcbmNvbnN0IHdpbmRvd01hbmlmZXN0ID0gY3JlYXRlU2VsZWN0b3IoXG4gIGdsb2JhbE1hbmlmZXN0LFxuICByYW5rLFxuICAobWFuaWZlc3QsIHJhbmspID0+IG1hbmlmZXN0LndpbmRvd3NbcmFua10gPz8gPERhc2hib2FyZE1hbmlmZXN0Pnsgd2lkZ2V0czogW10gfVxuKTtcbmNvbnN0IGdyaWRMYXlvdXQgPSBjcmVhdGVTZWxlY3RvcihcbiAgd2luZG93TWFuaWZlc3QsXG4gIChtYW5pZmVzdCkgPT4gKChtYW5pZmVzdC5ncmlkID8/IHt9KS5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUwpIGFzIHN0cmluZ1xuKTtcbmNvbnN0IG1lbW9pemVXaWRnZXRNYW5pZmVzdCA9IHt9IGFzIGFueTtcbmNvbnN0IHdpZGdldE1hbmlmZXN0ID0gKGluZGV4OiBudW1iZXIpID0+IHtcbiAgaWYgKCFtZW1vaXplV2lkZ2V0TWFuaWZlc3RbaW5kZXhdKSB7XG4gICAgbWVtb2l6ZVdpZGdldE1hbmlmZXN0W2luZGV4XSA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgd2luZG93TWFuaWZlc3QsXG4gICAgICAod2luZG93TWFuaWZlc3Q6IERhc2hib2FyZE1hbmlmZXN0KSA9PlxuICAgICAgICB3aW5kb3dNYW5pZmVzdC53aWRnZXRzW2luZGV4XSA/P1xuICAgICAgICAoe1xuICAgICAgICAgIHR5cGU6ICdwbGFjZWhvbGRlcicsXG4gICAgICAgICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfVxuICAgICAgICB9IGFzIFdpZGdldE1hbmlmZXN0KVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIG1lbW9pemVXaWRnZXRNYW5pZmVzdFtpbmRleF0gYXMgTWVtb2l6ZWRTZWxlY3RvcjxEYXNoYm9hcmRNYW5pZmVzdCwgV2lkZ2V0TWFuaWZlc3Q+O1xufTtcbmNvbnN0IG1hbmlmZXN0c0xpc3QgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy5saXN0KTtcbmNvbnN0IHRlbmFudHMgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy50ZW5hbnRzID8/IDxzdHJpbmdbXT5bXSk7XG5jb25zdCB0YXJnZXRUZW5hbnRzSW5kZXhlcyA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgcmFuaywgKG1hbmlmZXN0cywgcmFuaykgPT4gW1xuICBORVdfV0lORE9XX1RBUkdFVCxcbiAgLi4uKG1hbmlmZXN0cy50ZW5hbnRzID8/IChbXSBhcyBzdHJpbmdbXSkpLm1hcCgodGVuLCBpZHgpID0+IGlkeCkuZmlsdGVyKChpZHgpID0+IGlkeCAhPT0gcmFuaylcbl0pO1xuY29uc3QgcmVzdWx0cyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5yZXN1bHRzKTtcblxuY29uc3QgcmVzdWx0U2V0cyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiByZXN1bHRzLnJlc3VsdFNldHMgPz8gKHt9IGFzIFJlc3VsdFNldHMpKTtcbmNvbnN0IHJlc3VsdFNldHNQYXJhbXMgPSBjcmVhdGVTZWxlY3RvcihcbiAgcmVzdWx0cyxcbiAgKHJlc3VsdHMpID0+IHJlc3VsdHMucmVzdWx0U2V0c1BhcmFtcyA/PyAoe30gYXMgeyBbaWQ6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KVxuKTtcbmNvbnN0IG5hbWVkUXVlcmllc05hbWVzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0U2V0cywgKHN0YXRlOiBSZXN1bHRTZXRzKSA9PiBPYmplY3Qua2V5cyhzdGF0ZSkgPz8gPHN0cmluZ1tdPltdKTtcbmNvbnN0IGF2YWlsYWJsZU5hbWVkUXVlcmllcyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiB7XG4gIHJldHVybiBbLi4ubmV3IFNldChbLi4ucmVzdWx0cy5hdmFpbGFibGVEYXRhc291cmNlTmFtZXMsIC4uLk9iamVjdC5rZXlzKHJlc3VsdHMucmVzdWx0U2V0cyldKV0gPz8gPHN0cmluZ1tdPltdO1xufSk7XG5jb25zdCBkZWZhdWx0RGF0YXNvdXJjZU5hbWVzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMuZGVmYXVsdERhdGFzb3VyY2UgPz8gJ2N1cnJlbnQnKTtcbmNvbnN0IHNlbGVjdGVkSXRlbUlkcyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiByZXN1bHRzLnNlbGVjdGVkSXRlbXMgPz8gKFtdIGFzIHN0cmluZ1tdKSk7XG5jb25zdCBvYmplY3REZXRhaWxzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMub2JqZWN0RGV0YWlscyA/PyAoe30gYXMgeyBbaWQ6IHN0cmluZ106IEl0ZW0gfSkpO1xuY29uc3QgcXVpY2tPcmRlciA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PiByZXN1bHRzLnF1aWNrT3JkZXIgPz8gKHt9IGFzIHsgW2lkOiBzdHJpbmddOiBSZXN1bHRPcmRlciB9KSk7XG5jb25zdCBhbGxJdGVtcyA9IGNyZWF0ZVNlbGVjdG9yKHJlc3VsdHMsIChyZXN1bHRzKSA9PlxuICBPYmplY3Qua2V5cyhyZXN1bHRzLnJlc3VsdFNldHMpXG4gICAgLm1hcCgocnNLZXkpID0+XG4gICAgICBPYmplY3Qua2V5cyhyZXN1bHRzLnJlc3VsdFNldHNbcnNLZXldLml0ZW1zKVxuICAgICAgICAubWFwKChjbGFzc0tleSkgPT4gKHJlc3VsdHMucmVzdWx0U2V0c1tyc0tleV0gYXMgUmVzdWx0U2V0KS5pdGVtc1tjbGFzc0tleV0pXG4gICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgKVxuICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4pO1xuY29uc3QgZ2V0SXRlbXNCeUlkcyA9IChpZHM6IHN0cmluZ1tdKSA9PlxuICBjcmVhdGVTZWxlY3RvcihhbGxJdGVtcywgKGl0ZW1zKSA9PiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGlkcy5pbmNsdWRlcyhpdGVtLmlkKSkpO1xuY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RlZEl0ZW1JZHMsXG4gIGFsbEl0ZW1zLFxuICAoaXRlbU5hbWVzLCBhbGxJdGVtcykgPT4gaXRlbU5hbWVzLm1hcCgobmFtZSkgPT4gYWxsSXRlbXMuZmluZCgoaXQpID0+IGl0LmlkID09PSBuYW1lKSkgPz8gKFtdIGFzIEl0ZW1bXSlcbik7XG5jb25zdCBkYXNoYm9hcmQgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8uZGFzaGJvYXJkID8/IHt9KTtcbmNvbnN0IGRhc2hib2FyZENlbGxQYXJhbXMgPSBjcmVhdGVTZWxlY3RvcihkYXNoYm9hcmQsIChkYXNoYm9hcmQpID0+IGRhc2hib2FyZC5wYXJhbXMgPz8gPERhc2hib2FyZENlbGxQYXJhbXM+e30pO1xuY29uc3QgZGFzaGJvYXJkRWRpdGlvbk1vZGUgPSBjcmVhdGVTZWxlY3RvcihkYXNoYm9hcmQsIChkYXNoYm9hcmQpID0+IGRhc2hib2FyZC5lZGl0aW9uTW9kZSA/PyBmYWxzZSk7XG5jb25zdCBuYW1lZFF1ZXJpZXNVc2VzID0gY3JlYXRlU2VsZWN0b3IoZ2xvYmFsTWFuaWZlc3QsIChtYW5pZmVzdCkgPT5cbiAgbWFuaWZlc3Qud2luZG93c1xuICAgIC5tYXAoKHdpbmRvdywgaWR4KSA9PiAoeyB3aW5kb3dJbmRleDogaWR4LCB3aWRnZXRzOiB3aW5kb3cud2lkZ2V0cyB9KSlcbiAgICAubWFwKCh7IHdpbmRvd0luZGV4LCB3aWRnZXRzIH0pID0+XG4gICAgICB3aWRnZXRzLm1hcCgod2lkZ2V0KSA9PlxuICAgICAgICAoQXJyYXkuaXNBcnJheSh3aWRnZXQuZGF0YXNvdXJjZSkgPyB3aWRnZXQuZGF0YXNvdXJjZSA6IFt3aWRnZXQuZGF0YXNvdXJjZV0pXG4gICAgICAgICAgLmZpbHRlcigocnNOYW1lKSA9PiByc05hbWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChyc05hbWUpID0+ICh7XG4gICAgICAgICAgICByc05hbWUsXG4gICAgICAgICAgICB3aW5kb3dJbmRleCxcbiAgICAgICAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgICAgICAgbGF5b3V0OiB3aWRnZXQubGF5b3V0XG4gICAgICAgICAgfSkpXG4gICAgICApXG4gICAgKVxuICAgIC5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pXG4gICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAucmVkdWNlKFxuICAgICAgKHAsIGMpID0+ICh7IC4uLnAsIFtjLnJzTmFtZSA/PyAnJ106IFsuLi4ocFtjLnJzTmFtZSA/PyAnJ10gfHwgW10pLCB7IC4uLmMgfV0gfSksXG4gICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHsgd2luZG93SW5kZXg6IG51bWJlcjsgdHlwZTogc3RyaW5nOyBsYXlvdXQ6IFdpZGdldExheW91dDsgcnNOYW1lPzogc3RyaW5nIH1bXSB9XG4gICAgKVxuKTtcbmNvbnN0IHByZXNlbnRhdGlvbiA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5wcmVzZW50YXRpb24pO1xuY29uc3QgaXNDdXJyZW50UHJlc2VudGF0aW9uTW9kaWZpZWQgPSBjcmVhdGVTZWxlY3RvcihcbiAgcHJlc2VudGF0aW9uLFxuICBnbG9iYWxNYW5pZmVzdCxcbiAgKHN0YXRlLCBnbG9iYWwpID0+ICFlcXVhbChnbG9iYWwsIHN0YXRlLmluaXRpYWwpXG4pO1xuY29uc3QgaXNDdXJyZW50UHJlc2VudGF0aW9uT3duZXIgPSBjcmVhdGVTZWxlY3RvcihwcmVzZW50YXRpb24sIChzdGF0ZSkgPT4gISFzdGF0ZS5jdXJyZW50ICYmIHN0YXRlLmN1cnJlbnQub3duZXIpO1xuXG5jb25zdCBmaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/Lm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzID8/IFtdKTtcbmNvbnN0IGRhdGFzb3VyY2VGaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT5cbiAgc3RhdGU/Lm1hbmlmZXN0cy5tYW5pZmVzdC5maWx0ZXJzXG4gICAgPyBzdGF0ZT8ubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMucmVkdWNlKFxuICAgICAgICAob2JqOiB7IFtkYXRhc291cmNlSWQ6IHN0cmluZ106IEZpbHRlckNvbnRleHRbXSB9LCBmaWx0ZXI6IEZpbHRlcikgPT4gKFxuICAgICAgICAgIGZpbHRlci5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT5cbiAgICAgICAgICAgIChvYmpbYXR0cmlidXRlLmRhdGFzb3VyY2VdIHx8IChvYmpbYXR0cmlidXRlLmRhdGFzb3VyY2VdID0gW10pKS5wdXNoKHtcbiAgICAgICAgICAgICAgYXR0cmlidXRlOiBhdHRyaWJ1dGUuaWQsXG4gICAgICAgICAgICAgIG9wZXJhdG9yOiBmaWx0ZXIub3BlcmF0b3IgPz8gJycsXG4gICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXIudmFsdWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBvYmpcbiAgICAgICAgKSxcbiAgICAgICAge31cbiAgICAgIClcbiAgICA6IHt9XG4pO1xuY29uc3Qgd21zRmVhdHVyZXMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8ud21zRmVhdHVyZXMpO1xuY29uc3QgZGlzcGxheU9wdGlvbnMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8uZGlzcGxheSA/PyBCQVNFX0RJU1BMQVlfT1BUSU9OUyk7XG5jb25zdCBjYXBhYmlsaXRpZXMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8uY2FwYWJpbGl0aWVzKTtcblxuZXhwb3J0IGNvbnN0IERhc2hib2FyZFNlbGVjdG9ycyA9IHtcbiAgZmVhdHVyZSxcbiAgcmFuayxcbiAgY3VycmVudE1hbmlmZXN0SWQsXG4gIGdsb2JhbE1hbmlmZXN0LFxuICBtYW5pZmVzdERhdGFzb3VyY2VzLFxuICByZWZyZXNoUmF0ZXMsXG4gIHdpbmRvd01hbmlmZXN0LFxuICB3aWRnZXRNYW5pZmVzdCxcbiAgbWFuaWZlc3RzTGlzdCxcbiAgZ3JpZExheW91dCxcbiAgdGVuYW50cyxcbiAgcmVzdWx0U2V0cyxcbiAgcmVzdWx0U2V0c1BhcmFtcyxcbiAgbmFtZWRRdWVyaWVzTmFtZXMsXG4gIG5hbWVkUXVlcmllc1VzZXMsXG4gIGF2YWlsYWJsZU5hbWVkUXVlcmllcyxcbiAgZGVmYXVsdERhdGFzb3VyY2VOYW1lcyxcbiAgc2VsZWN0ZWRJdGVtSWRzLFxuICBhbGxJdGVtcyxcbiAgZ2V0SXRlbXNCeUlkcyxcbiAgc2VsZWN0ZWRJdGVtcyxcbiAgb2JqZWN0RGV0YWlscyxcbiAgdGFyZ2V0VGVuYW50c0luZGV4ZXMsXG4gIGRhc2hib2FyZCxcbiAgZGFzaGJvYXJkQ2VsbFBhcmFtcyxcbiAgZGFzaGJvYXJkRWRpdGlvbk1vZGUsXG4gIHN0YXRpY01hbmlmZXN0LFxuICBsb2FkaW5nLFxuICBxdWlja09yZGVyLFxuICBwcmVzZW50YXRpb24sXG4gIGZpbHRlcnMsXG4gIGlzQ3VycmVudFByZXNlbnRhdGlvbk1vZGlmaWVkLFxuICBpc0N1cnJlbnRQcmVzZW50YXRpb25Pd25lcixcbiAgZGF0YXNvdXJjZUZpbHRlcnMsXG4gIHdtc0ZlYXR1cmVzLFxuICBkaXNwbGF5T3B0aW9ucyxcbiAgY2FwYWJpbGl0aWVzXG59O1xuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFvQixNQUFNLGFBQWEsQ0FBQztBQUN0RixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUd4QyxPQUFPLEVBQ0wsbUJBQW1CLEVBS3BCLE1BQU0scUNBQXFDLENBQUM7QUFLN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUU3QixNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUN4RSxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZGLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3BHLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3hGLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FDbkMsU0FBUztBQUNULGFBQWE7QUFDYixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsR0FBRyxTQUFTLEVBQUUsUUFBUSxFQUFFLElB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QUMsQ0FBQztBQUNsSCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU87SUFDUCxJQUFJO0lBQ0osaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxZQUFZO0lBQ1osY0FBYztJQUNkLGNBQWM7SUFDZCxhQUFhO0lBQ2IsVUFBVTtJQUNWLE9BQU87SUFDUCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixlQUFlO0lBQ2YsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsYUFBYTtJQUNiLG9CQUFvQjtJQUNwQixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixjQUFjO0lBQ2QsT0FBTztJQUNQLFVBQVU7SUFDVixZQUFZO0lBQ1osT0FBTztJQUNQLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFDMUIsaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxjQUFjO0lBQ2QsWUFBWTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsIGNyZWF0ZVNlbGVjdG9yLCBNZW1vaXplZFNlbGVjdG9yIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuaW1wb3J0IHsgRmlsdGVyLCBGaWx0ZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIERhc2hib2FyZE1hbmlmZXN0LFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgV2lkZ2V0TGF5b3V0LFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRPcmRlciB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQsIFJlc3VsdFNldHMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1zZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhc2hib2FyZENlbGxQYXJhbXMgfSBmcm9tICcuL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IERhc2hib2FyZFN0YXRlIH0gZnJvbSAnLi9kYXNoYm9hcmQucmVkdWNlcnMnO1xuaW1wb3J0IHsgQkFTRV9ESVNQTEFZX09QVElPTlMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2Rpc3BsYXktb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5jb25zdCBORVdfV0lORE9XX1RBUkdFVCA9IC0xO1xuXG5jb25zdCBmZWF0dXJlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPERhc2hib2FyZFN0YXRlPignQHByeS9kYXNoYm9hcmQnKTtcbmNvbnN0IG1hbmlmZXN0cyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5tYW5pZmVzdHMpO1xuY29uc3QgcmFuayA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzPy50ZW5hbnRzLmluZGV4T2YobWFuaWZlc3RzLnNlbmRlcikpO1xuY29uc3QgY3VycmVudE1hbmlmZXN0SWQgPSBjcmVhdGVTZWxlY3RvcihtYW5pZmVzdHMsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy5jdXJyZW50SWQpO1xuY29uc3QgZ2xvYmFsTWFuaWZlc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgbWFuaWZlc3RzLFxuICAvLyBAdHMtaWdub3JlXG4gIChtYW5pZmVzdHMpID0+ICh7IHdpbmRvd3M6IFtdLCAuLi5tYW5pZmVzdHM/Lm1hbmlmZXN0IH0gPz8gKHsgd2luZG93czogW10gfSBhcyBHbG9iYWxNYW5pZmVzdCkpXG4pO1xuY29uc3Qgc3RhdGljTWFuaWZlc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgbWFuaWZlc3RzLFxuICAvLyBAdHMtaWdub3JlXG4gIChtYW5pZmVzdHMpID0+ICh7IHdpbmRvd3M6IFtdLCAuLi5tYW5pZmVzdHM/LnN0YXRpY01hbmlmZXN0IH0gPz8gKHsgd2luZG93czogW10gfSBhcyBHbG9iYWxNYW5pZmVzdCkpXG4pO1xuY29uc3QgbG9hZGluZyA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gISFtYW5pZmVzdHM/LmxvYWRpbmcpO1xuY29uc3QgcmVmcmVzaFJhdGVzID0gY3JlYXRlU2VsZWN0b3IoZ2xvYmFsTWFuaWZlc3QsIChtYW5pZmVzdHMpID0+IG1hbmlmZXN0cy5yZWZyZXNoUmF0ZXMgPz8ge30pO1xuY29uc3Qgd2luZG93TWFuaWZlc3QgPSBjcmVhdGVTZWxlY3RvcihcbiAgZ2xvYmFsTWFuaWZlc3QsXG4gIHJhbmssXG4gIChtYW5pZmVzdCwgcmFuaykgPT4gbWFuaWZlc3Qud2luZG93c1tyYW5rXSA/PyA8RGFzaGJvYXJkTWFuaWZlc3Q+eyB3aWRnZXRzOiBbXSB9XG4pO1xuY29uc3QgZ3JpZExheW91dCA9IGNyZWF0ZVNlbGVjdG9yKFxuICB3aW5kb3dNYW5pZmVzdCxcbiAgKG1hbmlmZXN0KSA9PiAoKG1hbmlmZXN0LmdyaWQgPz8ge30pLmxheW91dCA/PyBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTCkgYXMgc3RyaW5nXG4pO1xuY29uc3QgbWVtb2l6ZVdpZGdldE1hbmlmZXN0ID0ge30gYXMgYW55O1xuY29uc3Qgd2lkZ2V0TWFuaWZlc3QgPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICBpZiAoIW1lbW9pemVXaWRnZXRNYW5pZmVzdFtpbmRleF0pIHtcbiAgICBtZW1vaXplV2lkZ2V0TWFuaWZlc3RbaW5kZXhdID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB3aW5kb3dNYW5pZmVzdCxcbiAgICAgICh3aW5kb3dNYW5pZmVzdDogRGFzaGJvYXJkTWFuaWZlc3QpID0+XG4gICAgICAgIHdpbmRvd01hbmlmZXN0LndpZGdldHNbaW5kZXhdID8/XG4gICAgICAgICh7XG4gICAgICAgICAgdHlwZTogJ3BsYWNlaG9sZGVyJyxcbiAgICAgICAgICBsYXlvdXQ6IHsgeDogMSwgeTogMSwgd2lkdGg6IDEsIGhlaWdodDogMSB9XG4gICAgICAgIH0gYXMgV2lkZ2V0TWFuaWZlc3QpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbWVtb2l6ZVdpZGdldE1hbmlmZXN0W2luZGV4XSBhcyBNZW1vaXplZFNlbGVjdG9yPERhc2hib2FyZE1hbmlmZXN0LCBXaWRnZXRNYW5pZmVzdD47XG59O1xuY29uc3QgbWFuaWZlc3RzTGlzdCA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzLmxpc3QpO1xuY29uc3QgdGVuYW50cyA9IGNyZWF0ZVNlbGVjdG9yKG1hbmlmZXN0cywgKG1hbmlmZXN0cykgPT4gbWFuaWZlc3RzLnRlbmFudHMgPz8gPHN0cmluZ1tdPltdKTtcbmNvbnN0IHRhcmdldFRlbmFudHNJbmRleGVzID0gY3JlYXRlU2VsZWN0b3IobWFuaWZlc3RzLCByYW5rLCAobWFuaWZlc3RzLCByYW5rKSA9PiBbXG4gIE5FV19XSU5ET1dfVEFSR0VULFxuICAuLi4obWFuaWZlc3RzLnRlbmFudHMgPz8gKFtdIGFzIHN0cmluZ1tdKSkubWFwKCh0ZW4sIGlkeCkgPT4gaWR4KS5maWx0ZXIoKGlkeCkgPT4gaWR4ICE9PSByYW5rKVxuXSk7XG5jb25zdCByZXN1bHRzID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/LnJlc3VsdHMpO1xuXG5jb25zdCByZXN1bHRTZXRzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMucmVzdWx0U2V0cyA/PyAoe30gYXMgUmVzdWx0U2V0cykpO1xuY29uc3QgcmVzdWx0U2V0c1BhcmFtcyA9IGNyZWF0ZVNlbGVjdG9yKFxuICByZXN1bHRzLFxuICAocmVzdWx0cykgPT4gcmVzdWx0cy5yZXN1bHRTZXRzUGFyYW1zID8/ICh7fSBhcyB7IFtpZDogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pXG4pO1xuY29uc3QgbmFtZWRRdWVyaWVzTmFtZXMgPSBjcmVhdGVTZWxlY3RvcihyZXN1bHRTZXRzLCAoc3RhdGU6IFJlc3VsdFNldHMpID0+IE9iamVjdC5rZXlzKHN0YXRlKSA/PyA8c3RyaW5nW10+W10pO1xuY29uc3QgYXZhaWxhYmxlTmFtZWRRdWVyaWVzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFsuLi5yZXN1bHRzLmF2YWlsYWJsZURhdGFzb3VyY2VOYW1lcywgLi4uT2JqZWN0LmtleXMocmVzdWx0cy5yZXN1bHRTZXRzKV0pXSA/PyA8c3RyaW5nW10+W107XG59KTtcbmNvbnN0IGRlZmF1bHREYXRhc291cmNlTmFtZXMgPSBjcmVhdGVTZWxlY3RvcihyZXN1bHRzLCAocmVzdWx0cykgPT4gcmVzdWx0cy5kZWZhdWx0RGF0YXNvdXJjZSA/PyAnY3VycmVudCcpO1xuY29uc3Qgc2VsZWN0ZWRJdGVtSWRzID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMuc2VsZWN0ZWRJdGVtcyA/PyAoW10gYXMgc3RyaW5nW10pKTtcbmNvbnN0IG9iamVjdERldGFpbHMgPSBjcmVhdGVTZWxlY3RvcihyZXN1bHRzLCAocmVzdWx0cykgPT4gcmVzdWx0cy5vYmplY3REZXRhaWxzID8/ICh7fSBhcyB7IFtpZDogc3RyaW5nXTogSXRlbSB9KSk7XG5jb25zdCBxdWlja09yZGVyID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+IHJlc3VsdHMucXVpY2tPcmRlciA/PyAoe30gYXMgeyBbaWQ6IHN0cmluZ106IFJlc3VsdE9yZGVyIH0pKTtcbmNvbnN0IGFsbEl0ZW1zID0gY3JlYXRlU2VsZWN0b3IocmVzdWx0cywgKHJlc3VsdHMpID0+XG4gIE9iamVjdC5rZXlzKHJlc3VsdHMucmVzdWx0U2V0cylcbiAgICAubWFwKChyc0tleSkgPT5cbiAgICAgIE9iamVjdC5rZXlzKHJlc3VsdHMucmVzdWx0U2V0c1tyc0tleV0uaXRlbXMpXG4gICAgICAgIC5tYXAoKGNsYXNzS2V5KSA9PiAocmVzdWx0cy5yZXN1bHRTZXRzW3JzS2V5XSBhcyBSZXN1bHRTZXQpLml0ZW1zW2NsYXNzS2V5XSlcbiAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICApXG4gICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbik7XG5jb25zdCBnZXRJdGVtc0J5SWRzID0gKGlkczogc3RyaW5nW10pID0+XG4gIGNyZWF0ZVNlbGVjdG9yKGFsbEl0ZW1zLCAoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaWRzLmluY2x1ZGVzKGl0ZW0uaWQpKSk7XG5jb25zdCBzZWxlY3RlZEl0ZW1zID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdGVkSXRlbUlkcyxcbiAgYWxsSXRlbXMsXG4gIChpdGVtTmFtZXMsIGFsbEl0ZW1zKSA9PiBpdGVtTmFtZXMubWFwKChuYW1lKSA9PiBhbGxJdGVtcy5maW5kKChpdCkgPT4gaXQuaWQgPT09IG5hbWUpKSA/PyAoW10gYXMgSXRlbVtdKVxuKTtcbmNvbnN0IGRhc2hib2FyZCA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5kYXNoYm9hcmQgPz8ge30pO1xuY29uc3QgZGFzaGJvYXJkQ2VsbFBhcmFtcyA9IGNyZWF0ZVNlbGVjdG9yKGRhc2hib2FyZCwgKGRhc2hib2FyZCkgPT4gZGFzaGJvYXJkLnBhcmFtcyA/PyA8RGFzaGJvYXJkQ2VsbFBhcmFtcz57fSk7XG5jb25zdCBkYXNoYm9hcmRFZGl0aW9uTW9kZSA9IGNyZWF0ZVNlbGVjdG9yKGRhc2hib2FyZCwgKGRhc2hib2FyZCkgPT4gZGFzaGJvYXJkLmVkaXRpb25Nb2RlID8/IGZhbHNlKTtcbmNvbnN0IG5hbWVkUXVlcmllc1VzZXMgPSBjcmVhdGVTZWxlY3RvcihnbG9iYWxNYW5pZmVzdCwgKG1hbmlmZXN0KSA9PlxuICBtYW5pZmVzdC53aW5kb3dzXG4gICAgLm1hcCgod2luZG93LCBpZHgpID0+ICh7IHdpbmRvd0luZGV4OiBpZHgsIHdpZGdldHM6IHdpbmRvdy53aWRnZXRzIH0pKVxuICAgIC5tYXAoKHsgd2luZG93SW5kZXgsIHdpZGdldHMgfSkgPT5cbiAgICAgIHdpZGdldHMubWFwKCh3aWRnZXQpID0+XG4gICAgICAgIChBcnJheS5pc0FycmF5KHdpZGdldC5kYXRhc291cmNlKSA/IHdpZGdldC5kYXRhc291cmNlIDogW3dpZGdldC5kYXRhc291cmNlXSlcbiAgICAgICAgICAuZmlsdGVyKChyc05hbWUpID0+IHJzTmFtZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKHJzTmFtZSkgPT4gKHtcbiAgICAgICAgICAgIHJzTmFtZSxcbiAgICAgICAgICAgIHdpbmRvd0luZGV4LFxuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICAgICAgICBsYXlvdXQ6IHdpZGdldC5sYXlvdXRcbiAgICAgICAgICB9KSlcbiAgICAgIClcbiAgICApXG4gICAgLnJlZHVjZSgocCwgYykgPT4gWy4uLnAsIC4uLmNdLCBbXSlcbiAgICAucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKVxuICAgIC5yZWR1Y2UoXG4gICAgICAocCwgYykgPT4gKHsgLi4ucCwgW2MucnNOYW1lID8/ICcnXTogWy4uLihwW2MucnNOYW1lID8/ICcnXSB8fCBbXSksIHsgLi4uYyB9XSB9KSxcbiAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogeyB3aW5kb3dJbmRleDogbnVtYmVyOyB0eXBlOiBzdHJpbmc7IGxheW91dDogV2lkZ2V0TGF5b3V0OyByc05hbWU/OiBzdHJpbmcgfVtdIH1cbiAgICApXG4pO1xuY29uc3QgcHJlc2VudGF0aW9uID0gY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlOiBEYXNoYm9hcmRTdGF0ZSkgPT4gc3RhdGU/LnByZXNlbnRhdGlvbik7XG5jb25zdCBpc0N1cnJlbnRQcmVzZW50YXRpb25Nb2RpZmllZCA9IGNyZWF0ZVNlbGVjdG9yKFxuICBwcmVzZW50YXRpb24sXG4gIGdsb2JhbE1hbmlmZXN0LFxuICAoc3RhdGUsIGdsb2JhbCkgPT4gIWVxdWFsKGdsb2JhbCwgc3RhdGUuaW5pdGlhbClcbik7XG5jb25zdCBpc0N1cnJlbnRQcmVzZW50YXRpb25Pd25lciA9IGNyZWF0ZVNlbGVjdG9yKHByZXNlbnRhdGlvbiwgKHN0YXRlKSA9PiAhIXN0YXRlLmN1cnJlbnQgJiYgc3RhdGUuY3VycmVudC5vd25lcik7XG5cbmNvbnN0IGZpbHRlcnMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PiBzdGF0ZT8ubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnMgPz8gW10pO1xuY29uc3QgZGF0YXNvdXJjZUZpbHRlcnMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGU6IERhc2hib2FyZFN0YXRlKSA9PlxuICBzdGF0ZT8ubWFuaWZlc3RzLm1hbmlmZXN0LmZpbHRlcnNcbiAgICA/IHN0YXRlPy5tYW5pZmVzdHMubWFuaWZlc3QuZmlsdGVycy5yZWR1Y2UoXG4gICAgICAgIChvYmo6IHsgW2RhdGFzb3VyY2VJZDogc3RyaW5nXTogRmlsdGVyQ29udGV4dFtdIH0sIGZpbHRlcjogRmlsdGVyKSA9PiAoXG4gICAgICAgICAgZmlsdGVyLmF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cmlidXRlKSA9PlxuICAgICAgICAgICAgKG9ialthdHRyaWJ1dGUuZGF0YXNvdXJjZV0gfHwgKG9ialthdHRyaWJ1dGUuZGF0YXNvdXJjZV0gPSBbXSkpLnB1c2goe1xuICAgICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICAgICAgb3BlcmF0b3I6IGZpbHRlci5vcGVyYXRvciA/PyAnJyxcbiAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICAgIG9ialxuICAgICAgICApLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIDoge31cbik7XG5jb25zdCB3bXNGZWF0dXJlcyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy53bXNGZWF0dXJlcyk7XG5jb25zdCBkaXNwbGF5T3B0aW9ucyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5kaXNwbGF5ID8/IEJBU0VfRElTUExBWV9PUFRJT05TKTtcbmNvbnN0IGNhcGFiaWxpdGllcyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZTogRGFzaGJvYXJkU3RhdGUpID0+IHN0YXRlPy5jYXBhYmlsaXRpZXMpO1xuXG5leHBvcnQgY29uc3QgRGFzaGJvYXJkU2VsZWN0b3JzID0ge1xuICBmZWF0dXJlLFxuICByYW5rLFxuICBjdXJyZW50TWFuaWZlc3RJZCxcbiAgZ2xvYmFsTWFuaWZlc3QsXG4gIHJlZnJlc2hSYXRlcyxcbiAgd2luZG93TWFuaWZlc3QsXG4gIHdpZGdldE1hbmlmZXN0LFxuICBtYW5pZmVzdHNMaXN0LFxuICBncmlkTGF5b3V0LFxuICB0ZW5hbnRzLFxuICByZXN1bHRTZXRzLFxuICByZXN1bHRTZXRzUGFyYW1zLFxuICBuYW1lZFF1ZXJpZXNOYW1lcyxcbiAgbmFtZWRRdWVyaWVzVXNlcyxcbiAgYXZhaWxhYmxlTmFtZWRRdWVyaWVzLFxuICBkZWZhdWx0RGF0YXNvdXJjZU5hbWVzLFxuICBzZWxlY3RlZEl0ZW1JZHMsXG4gIGFsbEl0ZW1zLFxuICBnZXRJdGVtc0J5SWRzLFxuICBzZWxlY3RlZEl0ZW1zLFxuICBvYmplY3REZXRhaWxzLFxuICB0YXJnZXRUZW5hbnRzSW5kZXhlcyxcbiAgZGFzaGJvYXJkLFxuICBkYXNoYm9hcmRDZWxsUGFyYW1zLFxuICBkYXNoYm9hcmRFZGl0aW9uTW9kZSxcbiAgc3RhdGljTWFuaWZlc3QsXG4gIGxvYWRpbmcsXG4gIHF1aWNrT3JkZXIsXG4gIHByZXNlbnRhdGlvbixcbiAgZmlsdGVycyxcbiAgaXNDdXJyZW50UHJlc2VudGF0aW9uTW9kaWZpZWQsXG4gIGlzQ3VycmVudFByZXNlbnRhdGlvbk93bmVyLFxuICBkYXRhc291cmNlRmlsdGVycyxcbiAgd21zRmVhdHVyZXMsXG4gIGRpc3BsYXlPcHRpb25zLFxuICBjYXBhYmlsaXRpZXNcbn07XG4iXX0=
|