@sap/open.fe 1.98.0 → 1.99.0
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/package.json +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +10 -8
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.99.json +18 -0
- package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +376 -405
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +385 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +228 -181
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.ts +171 -0
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker-dbg.js +104 -121
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.ts +98 -0
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +2072 -2399
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +2078 -0
- package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +83 -125
- package/packages/sap.fe.core/src/sap/fe/core/PageController.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +101 -0
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +985 -823
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +838 -0
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +50 -35
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.ts +29 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +172 -164
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +166 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +96 -54
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +63 -0
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1575 -1664
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +1706 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +558 -608
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +593 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +544 -514
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +532 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft-dbg.js +16 -19
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.ts +12 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +1073 -1215
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +1162 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +101 -105
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +102 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +51 -209
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +276 -9
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +5 -4
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +44 -43
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +98 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +14 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +6 -2
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +8 -20
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +4 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +39 -26
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +11 -8
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +16 -16
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +17 -13
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +5 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +4 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +16 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +250 -146
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +300 -167
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +115 -56
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +467 -32
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +6 -6
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +13 -5
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +13 -6
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +26 -15
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +39 -28
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +43 -28
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +314 -355
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +27 -15
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +62 -59
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState-dbg.js +80 -84
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.ts +81 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +61 -48
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +51 -56
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +3 -4
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +24 -16
- package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +228 -225
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper-dbg.js +209 -132
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +331 -313
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +65 -67
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper-dbg.js +1 -5
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +23 -26
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +630 -649
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +3 -3
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +17 -5
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +23 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +13 -4
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +14 -5
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +11 -2
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +427 -341
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +268 -202
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +405 -300
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +148 -81
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +986 -899
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +35 -81
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +460 -487
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +9 -8
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -3
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
- package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper-dbg.js +8 -8
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +138 -72
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +139 -71
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +31 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +33 -2
- package/packages/sap.fe.core/src/sap/fe/core/type/Email-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/type/Email.ts +4 -6
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controls/FileEditor.js +15 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +2 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/chartFilterBar.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/chartFilterBar.view.xml +22 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/RootEntity.json +252 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/service.cds +141 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/localService/status.json +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartFilterBar/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartFilterBar.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.view.xml +186 -122
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/FieldFormatOptions.cds +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/RootEntity.json +2 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +15 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/service.cds +36 -5
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/FormSample.view.xml +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/localService/FormSample.cds +72 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/localService/RootEntity.json +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/form/formSample/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formSample.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.js +72 -43
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.ts +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.view.xml +12 -3
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +4 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/TableFilterBar.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/TableFilterBar.view.xml +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/RootEntity.json +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/localService/service.cds +94 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableFilterBar/manifest.json +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableFilterBar.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +694 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +819 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AppStateHandler.spec.js +51 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/AppStateHandler.spec.ts +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +26 -15
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +28 -15
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +202 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +54 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +5 -11
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +8 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +736 -619
- package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +703 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +89 -85
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +97 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +492 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +509 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +895 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +908 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +209 -353
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +222 -362
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +508 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +440 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +10 -10
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +286 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +179 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +200 -21
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +168 -17
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +26 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +355 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +287 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +542 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +588 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +371 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +469 -6
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageAvatar.spec.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageAvatar.spec.ts +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.js +12 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.ts +8 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +436 -45
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +565 -33
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +136 -78
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +315 -199
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +307 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +49 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +51 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService2.cds +107 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/ComplexType.cds +39 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +187 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +226 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/computedDefaultValueService.cds +99 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +25 -5
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +18 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +4 -2
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/DynamicAnnotationPathHelper.spec.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/DynamicAnnotationPathHelper.spec.ts +39 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ExcelFormatHelper.spec.js +20 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ExcelFormatHelper.spec.ts +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +3 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +712 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +613 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +344 -225
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +347 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +439 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +378 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +123 -0
- package/packages/sap.fe.core/test/sap/fe/core/{qunit/helpers/SemanticDateOperators.qunit.js → jest/helpers/SemanticDateOperators.spec.ts} +10 -21
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticKeyHelper.spec.js +215 -0
- package/packages/sap.fe.core/test/sap/fe/core/{qunit/helpers/SemanticKeyHelper.qunit.js → jest/helpers/SemanticKeyHelper.spec.ts} +58 -55
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +125 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +142 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +263 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/CacheHandlerTest.spec.js +871 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/CacheHandlerTest.spec.ts +899 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/NavigationServiceFactory.spec.js +46 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/NavigationServiceFactory.spec.ts +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +120 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.ts +96 -7
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/ShellServicesFactory.spec.js +86 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/ShellServicesFactory.spec.ts +72 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +16 -44
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +22 -60
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +4 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +9 -3
- package/packages/sap.fe.core/test/sap/fe/core/jest/type/ComplexType.spec.js +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/type/ComplexType.spec.ts +51 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -105
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.98.json +0 -11
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +534 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +14 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +15 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +9 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +37 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +27 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +4 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata-dbg.js +17 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.ts +17 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +35 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +41 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +50 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +65 -75
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +55 -51
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +83 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.ts +29 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +11 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata-dbg.js +2 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +99 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.ts +32 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +67 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +60 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +26 -34
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +6 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +38 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +78 -92
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +55 -68
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +41 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +125 -31
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +16 -42
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +13 -39
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +0 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +142 -129
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +120 -61
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/form/AddressSection.fragment.xml +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper-dbg.js +1 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +23 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +29 -17
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +45 -54
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +16 -22
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +14 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +4 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +4 -145
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +32 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +81 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +64 -30
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +58 -36
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter-dbg.js +4 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.ts +19 -20
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +13 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +3 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +17 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +10 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +53 -62
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +16 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +157 -178
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +16 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +14 -6
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper-dbg.js +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/BulletMicroChart.fragment.xml +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ComparisonMicroChart.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +277 -209
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +5 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +17 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +0 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +27 -18
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +196 -139
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +12 -14
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +13 -15
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +113 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.js +32 -20
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.ts +24 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +15 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +18 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonHelper.spec.js +69 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonHelper.spec.ts +32 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +6 -180
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +6 -177
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +1 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +51 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +48 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +133 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormContainerAPI.spec.js +34 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormContainerAPI.spec.ts +23 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormMacro.spec.js +49 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormMacro.spec.ts +41 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +105 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +53 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.js +15 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.ts +13 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +2 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +3 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +14 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +18 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +140 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +144 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +445 -635
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +528 -719
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +83 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +101 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.ts +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartMacro.spec.ts.snap +75 -7
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/CollectionField.spec.ts.snap +26 -11
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +42 -304
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +6 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +12 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormMacro.spec.ts.snap +150 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/KPITag.spec.ts.snap +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MicroChart.spec.ts.snap +39 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +4 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +125 -51
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1455 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Chart.cds +56 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +12 -59
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Form.cds +129 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/MicroChart.cds +14 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +55 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +10 -4
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +15 -8
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +12 -34
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +21 -38
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +54 -14
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +17 -7
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +18 -11
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +26 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +145 -17
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +176 -18
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +813 -111
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/data/tabledelegate.cds +9 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +0 -56
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +0 -321
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +10 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelperForTemplate.qunit.js +1 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableRuntime.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +130 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +343 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +0 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +3 -3
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
- package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +4 -4
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +8 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +11 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +114 -29
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +10 -10
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +7 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +75 -53
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +14 -23
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +3 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +8 -45
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +17 -67
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +24 -12
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +5 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Heading.fragment.xml +33 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +17 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +18 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +3 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +3 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +7 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +24 -22
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +14 -30
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +26 -8
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +27 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +25 -7
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +24 -6
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +127 -113
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.js +59 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +54 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +85 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +89 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +482 -259
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +442 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/AnnotationHelper.spec.js +99 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/AnnotationHelper.spec.ts +82 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Heading.spec.js +50 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Heading.spec.ts +32 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Heading.spec.ts.snap +43 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Sections.spec.ts.snap +9 -7
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +2 -2
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +4 -3
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +335 -0
- package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks-dbg.js +66 -0
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks.js +5 -0
- package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +77 -0
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +78 -22
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +66 -22
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +6 -4
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +44 -21
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +28 -8
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +1 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +14 -2
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions-dbg.js +16 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +0 -19
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +3 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +4 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner-dbg.js +6 -3
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -2
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +39 -20
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +4 -4
- package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +65 -28
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.js +0 -115
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.ts +0 -95
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/ExcelFormatHelper.qunit.js +0 -19
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/StableIdHelper.qunit.js +0 -301
- package/packages/sap.fe.core/test/sap/fe/core/qunit/services/CacheHandlerTest.qunit.js +0 -924
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +0 -46
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +0 -6
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +0 -94
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +0 -70
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +0 -68
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +0 -65
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +0 -607
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit-dbg.js +0 -96
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit.js +0 -6
|
@@ -841,4 +841,4 @@ sap.ui.define(["sap/fe/macros/ChartDelegate", "sap/fe/macros/CommonHelper", "sap
|
|
|
841
841
|
});
|
|
842
842
|
});
|
|
843
843
|
}, false);
|
|
844
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0RGVsZWdhdGUuc3BlYy50cyJdLCJuYW1lcyI6WyJzcHlSZXF1ZXN0cyIsImplc3QiLCJmbiIsImRlc2NyaWJlIiwibW9ja01vZGVsIiwiTW9ja01vZGVsIiwib1ZhbHVlcyIsIiRraW5kIiwibW9ja01ldGFNb2RlbCIsIk1vY2tNZXRhTW9kZWwiLCJzRW50aXR5U2V0Iiwic1RhcmdldENvbGxlY3Rpb25QYXRoIiwic2V0TWV0YU1vZGVsIiwibW9ja01kY0NoYXJ0IiwiZ2V0RGVsZWdhdGUiLCJnZXRJdGVtcyIsImdldE1vZGVsIiwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlIiwiZGF0YSIsInNQcm9wIiwiQ2hhcnREZWxlZ2F0ZSIsIl9nZXRMYXlvdXRPcHRpb25zRm9yVHlwZSIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwib01vY2tCaW5kaW5nSW5mb0Zyb21TdGF0ZSIsInNweU9uIiwibW9ja0ltcGxlbWVudGF0aW9uIiwiYWZ0ZXJBbGwiLCJpdCIsIm1vY2tSZXR1cm5WYWx1ZSIsInBheWxvYWQiLCJjb250ZXh0UGF0aCIsInBhcmFtZXRlcnMiLCIkJGdyb3VwSWQiLCJleHBlY3QiLCJfZ2V0QmluZGluZ0luZm8iLCJ0b01hdGNoU25hcHNob3QiLCJvUHJvcGVydHlBbm5vdGF0aW9ucyIsIm9GaWx0ZXJSZXN0cmljdGlvbnNJbmZvIiwiZmlsdGVyYWJsZSIsInByb3BlcnR5SW5mbyIsIm9Tb3J0UmVzdHJpY3Rpb25zSW5mbyIsInNvcnRhYmxlIiwibUtub3duQWdncmVnYXRhYmxlUHJvcHMiLCJza2V5IiwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUiLCJtQ3VzdG9tQWdncmVnYXRlcyIsIm1FbnRpdHlTZXRBbm5vdGF0aW9ucyIsIm9NZXRhTW9kZWxNb2NrIiwib01vY2tDb250ZXh0IiwiZ2V0UGF0aCIsIm9Nb2NrUGFyc2VDdXN0b21EYXRhIiwiQ29tbW9uSGVscGVyIiwiYVByb3BlcnRpZXMiLCJfaGFuZGxlUHJvcGVydHkiLCJjYWxsIiwidG9FcXVhbCIsImdldE1ldGFNb2RlbCIsIm9Nb2NrQ3JlYXRlUHJvcGVydHlJbmZvc0ZvckFnZ3JlZ2F0YWJsZSIsImFBZ2dyZWdhdGVQcm9wZXJ0aWVzIiwiYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJKU09OIiwic3RyaW5naWZ5Iiwib01vY2tSZXF1ZXN0T2JqZWN0Iiwib01vY2tIYW5kbGVQcm9wZXJ0eSIsIm9Nb2NrTW9kZWwiLCJvTW9ja0xvZ0Vycm9yIiwib01vY2tNZXRhTW9kZWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm9Nb2NrRmV0Y2hDcml0aWNhbGl0eSIsIk9EYXRhTWV0YU1vZGVsVXRpbCIsIkxvZyIsImdldEtleSIsImlzQSIsIl9jcmVhdGVQcm9wZXJ0eUluZm9zIiwibW9jayIsImNhbGxzIiwibGVuZ3RoIiwidG9CZSIsIm9Nb2NrQ3JlYXRlUHJvcGVydHlJbmZvcyIsIm9Nb2NrTURDQ2hhcnREYXRhIiwib01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UiLCJvYmoxIiwib0NoYXJ0RGVsZWdhdGUiLCJvTW9ja0V2ZW50IiwiZ2V0U291cmNlIiwib01vY2tEYXRhIiwicmVzb2x2ZXIiLCJvTW9ja0dldE1vZGVsRm9yQ2hhcnREZWxlZ2F0ZSIsImFQcm9wcyIsImZldGNoUHJvcGVydGllcyIsInRoZW4iLCJ0b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFDQSxNQUFNQSxXQUFXLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQUFwQjtBQUNBQyxFQUFBQSxRQUFRLENBQUMsZUFBRCxFQUFrQixZQUFXO0FBQ3BDLFFBQU1DLFNBQVMsR0FBRyxJQUFJQyxTQUFKLEVBQWxCO0FBQ0EsUUFBTUMsT0FBTyxHQUFHO0FBQ2YsZ0NBQTBCO0FBQ3pCQyxRQUFBQSxLQUFLLEVBQUU7QUFEa0IsT0FEWDtBQUlmLHNDQUFnQztBQUMvQkEsUUFBQUEsS0FBSyxFQUFFO0FBRHdCLE9BSmpCO0FBT2Ysc0NBQWdDO0FBQy9CQSxRQUFBQSxLQUFLLEVBQUU7QUFEd0IsT0FQakI7QUFVZix1Q0FBaUM7QUFDaENBLFFBQUFBLEtBQUssRUFBRTtBQUR5QixPQVZsQjtBQWFmLGlEQUEyQyxZQWI1QjtBQWNmLGlEQUEyQyxZQWQ1QjtBQWVmLGtEQUE0QyxhQWY3QjtBQWdCZix1Q0FBaUM7QUFDaEMsaURBQXlDO0FBRFQsT0FoQmxCO0FBbUJmLHVDQUFpQztBQUNoQyxnREFBd0M7QUFDdkMsbUJBQVM7QUFEOEIsU0FEUjtBQUloQyxpREFBeUM7QUFKVCxPQW5CbEI7QUF5QmYsd0NBQWtDO0FBQ2pDLGlEQUF5QztBQURSLE9BekJuQjtBQTRCZixxQkFBZSxZQTVCQTtBQTZCZix1Q0FBaUMsb0JBN0JsQjtBQThCZixpQ0FBMkI7QUE5QlosS0FBaEI7QUFnQ0EsUUFBTUMsYUFBYSxHQUFHLElBQUlDLGFBQUosQ0FBa0JILE9BQWxCLENBQXRCO0FBQ0EsUUFBSUksVUFBVSxHQUFHLEVBQWpCO0FBQUEsUUFDQ0MscUJBQXFCLEdBQUcsRUFEekI7QUFFQVAsSUFBQUEsU0FBUyxDQUFDUSxZQUFWLENBQXVCSixhQUF2QjtBQUNBLFFBQU1LLFlBQVksR0FBRztBQUNwQkMsTUFBQUEsV0FBVyxFQUFFYixJQUFJLENBQUNDLEVBQUwsRUFETztBQUVwQmEsTUFBQUEsUUFBUSxFQUFFZCxJQUFJLENBQUNDLEVBQUwsRUFGVTtBQUdwQmMsTUFBQUEsUUFBUSxFQUFFZixJQUFJLENBQUNDLEVBQUwsQ0FBUTtBQUFBLGVBQU1FLFNBQU47QUFBQSxPQUFSLENBSFU7QUFJcEJhLE1BQUFBLHdCQUF3QixFQUFFaEIsSUFBSSxDQUFDQyxFQUFMLEVBSk47QUFLcEJnQixNQUFBQSxJQUFJLEVBQUVqQixJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3RCLFlBQUlBLEtBQUssS0FBSyxXQUFkLEVBQTJCO0FBQzFCLGlCQUFPVCxVQUFQO0FBQ0EsU0FGRCxNQUVPLElBQUlTLEtBQUssS0FBSyxXQUFkLEVBQTJCO0FBQ2pDLGlCQUFPLGtCQUFQO0FBQ0EsU0FGTSxNQUVBLElBQUlBLEtBQUssS0FBSyxVQUFkLEVBQTBCO0FBQ2hDLGlCQUFPLFVBQVA7QUFDQSxTQUZNLE1BRUEsSUFBSUEsS0FBSyxLQUFLLHNCQUFkLEVBQXNDO0FBQzVDLGlCQUFPUixxQkFBUDtBQUNBLFNBRk0sTUFFQTtBQUNOLGlCQUFPLGdCQUFQO0FBQ0E7QUFDRCxPQVpLO0FBTGMsS0FBckI7QUFtQkFTLElBQUFBLGFBQWEsQ0FBQ0Msd0JBQWQsR0FBeUNwQixJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3pELFVBQUlBLEtBQUssS0FBSyxXQUFkLEVBQTJCO0FBQzFCLGVBQU8sQ0FDTjtBQUFFLGlCQUFPLFVBQVQ7QUFBcUIsa0JBQVE7QUFBN0IsU0FETSxFQUVOO0FBQUUsaUJBQU8sV0FBVDtBQUFzQixrQkFBUTtBQUE5QixTQUZNLEVBR047QUFBRSxpQkFBTyxRQUFUO0FBQW1CLGtCQUFRO0FBQTNCLFNBSE0sQ0FBUDtBQUtBLE9BTkQsTUFNTztBQUNOLFNBQ0M7QUFBRSxpQkFBTyxPQUFUO0FBQWtCLGtCQUFRO0FBQTFCLFNBREQsRUFFQztBQUFFLGlCQUFPLE9BQVQ7QUFBa0Isa0JBQVE7QUFBMUIsU0FGRCxFQUdDO0FBQUUsaUJBQU8sT0FBVDtBQUFrQixrQkFBUTtBQUExQixTQUhEO0FBS0E7QUFDRCxLQWR3QyxDQUF6QztBQWVBaEIsSUFBQUEsUUFBUSxDQUFDLGlCQUFELEVBQW9CLFlBQVc7QUFDdENtQixNQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNoQnJCLFFBQUFBLElBQUksQ0FBQ3NCLGFBQUw7QUFDQSxZQUFNQyx5QkFBeUIsR0FBR3ZCLElBQUksQ0FBQ3dCLEtBQUwsQ0FBV0wsYUFBWCxFQUEwQiwwQkFBMUIsQ0FBbEM7QUFDQUksUUFBQUEseUJBQXlCLENBQUNFLGtCQUExQixDQUE2QztBQUFBLGlCQUFNMUIsV0FBVyxFQUFqQjtBQUFBLFNBQTdDO0FBQ0EsT0FKUyxDQUFWO0FBS0EyQixNQUFBQSxRQUFRLENBQUMsWUFBTTtBQUNkMUIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRk8sQ0FBUjtBQUdBSyxNQUFBQSxFQUFFLENBQUMsbUVBQUQsRUFBc0UsWUFBVztBQUNsRmpCLFFBQUFBLHFCQUFxQixHQUFHLG1CQUF4QjtBQUNBRCxRQUFBQSxVQUFVLEdBQUcsa0JBQWI7QUFDQUcsUUFBQUEsWUFBWSxDQUFDQyxXQUFiLENBQXlCZSxlQUF6QixDQUF5QztBQUN4Q0MsVUFBQUEsT0FBTyxFQUFFO0FBQ1JDLFlBQUFBLFdBQVcsRUFBRSxtQkFETDtBQUVSQyxZQUFBQSxVQUFVLEVBQUU7QUFBRUMsY0FBQUEsU0FBUyxFQUFFO0FBQWI7QUFGSjtBQUQrQixTQUF6QztBQU1BQyxRQUFBQSxNQUFNLENBQUNkLGFBQWEsQ0FBQ2UsZUFBZCxDQUE4QnRCLFlBQTlCLENBQUQsQ0FBTixDQUFvRHVCLGVBQXBEO0FBQ0EsT0FWQyxDQUFGO0FBWUFSLE1BQUFBLEVBQUUsQ0FBQyx1RUFBRCxFQUEwRSxZQUFXO0FBQ3RGakIsUUFBQUEscUJBQXFCLEdBQUcseUJBQXhCO0FBQ0FELFFBQUFBLFVBQVUsR0FBRyxnQkFBYjtBQUNBRyxRQUFBQSxZQUFZLENBQUNDLFdBQWIsQ0FBeUJlLGVBQXpCLENBQXlDO0FBQ3hDQyxVQUFBQSxPQUFPLEVBQUU7QUFDUkMsWUFBQUEsV0FBVyxFQUFFLE9BREw7QUFFUkMsWUFBQUEsVUFBVSxFQUFFO0FBQUVDLGNBQUFBLFNBQVMsRUFBRTtBQUFiO0FBRko7QUFEK0IsU0FBekM7QUFNQUMsUUFBQUEsTUFBTSxDQUFDZCxhQUFhLENBQUNlLGVBQWQsQ0FBOEJ0QixZQUE5QixDQUFELENBQU4sQ0FBb0R1QixlQUFwRDtBQUNBLE9BVkMsQ0FBRjtBQVdBLEtBaENPLENBQVI7QUFrQ0FqQyxJQUFBQSxRQUFRLENBQUMscUNBQUQsRUFBd0MsWUFBVztBQUMxRG1CLE1BQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2hCckIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRlMsQ0FBVjtBQUdBSSxNQUFBQSxRQUFRLENBQUMsWUFBTTtBQUNkMUIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRk8sQ0FBUjtBQUdBSyxNQUFBQSxFQUFFLENBQUMsMkVBQUQsRUFBOEUsWUFBVztBQUMxRixZQUFNUyxvQkFBb0IsR0FBRztBQUM1QixvREFBMEMsSUFEZDtBQUU1QixtRUFBeUQsQ0FBQyxLQUFELEVBQVEsS0FBUixFQUFlLFNBQWYsRUFBMEIsS0FBMUIsQ0FGN0I7QUFHNUIsb0VBQTBELFNBSDlCO0FBSTVCLGdEQUFzQztBQUFFLHFCQUFTO0FBQVgsV0FKVjtBQUs1QixtREFBeUMsYUFMYjtBQU01QiwwREFBZ0Q7QUFDL0MscUJBQVMsc0NBRHNDO0FBRS9DLHFCQUFTO0FBQ1IsdUJBQVM7QUFERDtBQUZzQztBQU5wQixTQUE3QjtBQWFBLFlBQU1DLHVCQUF1QixHQUFHO0FBQy9CLHdCQUFjO0FBQ2JDLFlBQUFBLFVBQVUsRUFBRTtBQURDLFdBRGlCO0FBSS9CQyxVQUFBQSxZQUFZLEVBQUU7QUFKaUIsU0FBaEM7QUFNQSxZQUFNQyxxQkFBcUIsR0FBRztBQUM3Qix3QkFBYztBQUNiQyxZQUFBQSxRQUFRLEVBQUU7QUFERztBQURlLFNBQTlCO0FBS0EsWUFBTUMsdUJBQXVCLEdBQUc7QUFDL0Isd0JBQWM7QUFDYixtQkFBTztBQUNOLHNCQUFRLFlBREY7QUFFTix1QkFBUztBQUZILGFBRE07QUFLYixtQkFBTztBQUNOLHNCQUFRLFlBREY7QUFFTix1QkFBUztBQUZIO0FBTE07QUFEaUIsU0FBaEM7QUFZQSxZQUFNQyxJQUFJLEdBQUcsWUFBYjtBQUVBVixRQUFBQSxNQUFNLENBQ0xkLGFBQWEsQ0FBQ3lCLG1DQUFkLENBQ0NELElBREQsRUFFQ1Asb0JBRkQsRUFHQ0MsdUJBSEQsRUFJQ0cscUJBSkQsRUFLQ0UsdUJBTEQsRUFNQyxFQU5ELENBREssQ0FBTixDQVNFUCxlQVRGO0FBVUEsT0FqREMsQ0FBRjtBQW1EQVIsTUFBQUEsRUFBRSxDQUFDLGlFQUFELEVBQW9FLFlBQVc7QUFDaEYsWUFBTVMsb0JBQW9CLEdBQUc7QUFDNUIsd0RBQThDLElBRGxCO0FBRTVCLCtDQUFxQztBQUNwQywyQkFBZTtBQURxQixXQUZUO0FBSzVCLG1EQUF5QyxjQUxiO0FBTTVCLDBEQUFnRDtBQUMvQyxxQkFBUyxzQ0FEc0M7QUFFL0MscUJBQVM7QUFDUix1QkFBUztBQUREO0FBRnNDO0FBTnBCLFNBQTdCO0FBYUEsWUFBTUMsdUJBQXVCLEdBQUc7QUFDL0JFLFVBQUFBLFlBQVksRUFBRTtBQURpQixTQUFoQztBQUdBLFlBQU1DLHFCQUFxQixHQUFHO0FBQzdCRCxVQUFBQSxZQUFZLEVBQUU7QUFEZSxTQUE5QjtBQUdBLFlBQU1NLGlCQUFpQixHQUFHO0FBQ3pCLHlCQUFlO0FBQ2Qsb0JBQVEsYUFETTtBQUVkLHFCQUFTLGdDQUZLO0FBR2Qsd0JBQVksSUFIRTtBQUlkLHlCQUFhLE1BSkM7QUFLZCx1Q0FBMkI7QUFMYixXQURVO0FBUXpCLHNDQUE0QjtBQUMzQixvQkFBUSwwQkFEbUI7QUFFM0IscUJBQVMsNkNBRmtCO0FBRzNCLHdCQUFZLElBSGU7QUFJM0IseUJBQWEsTUFKYztBQUszQix1Q0FBMkI7QUFMQTtBQVJILFNBQTFCO0FBZ0JBLFlBQU1GLElBQUksR0FBRyxhQUFiO0FBQ0FWLFFBQUFBLE1BQU0sQ0FDTGQsYUFBYSxDQUFDeUIsbUNBQWQsQ0FDQ0QsSUFERCxFQUVDUCxvQkFGRCxFQUdDQyx1QkFIRCxFQUlDRyxxQkFKRCxFQUtDLEVBTEQsRUFNQ0ssaUJBTkQsQ0FESyxDQUFOLENBU0VWLGVBVEY7QUFVQSxPQS9DQyxDQUFGO0FBZ0RBLEtBMUdPLENBQVI7QUE0R0FqQyxJQUFBQSxRQUFRLENBQUMsaUJBQUQsRUFBb0IsWUFBVztBQUN0QyxVQUFJNEMscUJBQUo7QUFDQXpCLE1BQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2hCckIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBd0IsUUFBQUEscUJBQXFCLEdBQUc7QUFDdkIseURBQStDLEVBRHhCO0FBRXZCLDJEQUFpRDtBQUYxQixTQUF4QjtBQUlBLE9BTlMsQ0FBVjtBQU9BcEIsTUFBQUEsUUFBUSxDQUFDLFlBQU07QUFDZDFCLFFBQUFBLElBQUksQ0FBQ3NCLGFBQUw7QUFDQSxPQUZPLENBQVI7QUFHQUssTUFBQUEsRUFBRSxDQUFDLHdDQUFEO0FBQUEsWUFBNEQ7QUFDN0QsY0FBTW9CLGNBQWMsR0FBRyxJQUFJdkMsYUFBSixFQUF2QjtBQUNBLGNBQUl3QyxZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU04QyxjQUFOO0FBQUEsYUFBUixDQURRO0FBRWxCRSxZQUFBQSxPQUFPLEVBQUVqRCxJQUFJLENBQUNDLEVBQUw7QUFGUyxXQUFuQjtBQUlBLGNBQU1pRCxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFVBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFlBQU07QUFDN0MsbUJBQU8sRUFBUDtBQUNBLFdBRkQ7QUFHQXVCLFVBQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQnJCLGVBQXJCLENBQXFDLHdCQUFyQztBQUNBLGNBQUl3QixXQUFlLEdBQUcsRUFBdEI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsRUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUNtQixXQUFELENBQU4sQ0FBb0JHLE9BQXBCLENBQTRCLEVBQTVCO0FBYjZEO0FBYzdELFNBZEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQWdCQTVCLE1BQUFBLEVBQUUsQ0FBQyx3RUFBRDtBQUFBLFlBQTRGO0FBQzdGLGNBQUlxQixZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU1XLFlBQVksQ0FBQ0csUUFBYixHQUF3QnlDLFlBQXhCLEVBQU47QUFBQSxhQUFSLENBRFE7QUFFbEJQLFlBQUFBLE9BQU8sRUFBRWpELElBQUksQ0FBQ0MsRUFBTDtBQUZTLFdBQW5CO0FBSUEsY0FBTWlELG9CQUFvQixHQUFHbEQsSUFBSSxDQUFDd0IsS0FBTCxDQUFXMkIsWUFBWCxFQUF5QixpQkFBekIsQ0FBN0I7QUFDQUQsVUFBQUEsb0JBQW9CLENBQUN6QixrQkFBckIsQ0FBd0MsWUFBTTtBQUM3QyxtQkFBTztBQUNOLHVCQUFTLDZDQURIO0FBRU4sd0NBQTBCLENBQ3pCO0FBQ0MseUJBQVMsbURBRFY7QUFFQyw0QkFBWTtBQUNYLG1DQUFpQjtBQUROO0FBRmIsZUFEeUIsQ0FGcEI7QUFVTixxQ0FBdUIsQ0FDdEI7QUFDQyxpQ0FBaUI7QUFEbEIsZUFEc0I7QUFWakIsYUFBUDtBQWdCQSxXQWpCRDtBQWtCQXVCLFVBQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQnJCLGVBQXJCLENBQXFDLDhCQUFyQztBQUNBLGNBQU02Qix1Q0FBdUMsR0FBR3pELElBQUksQ0FBQ3dCLEtBQUwsQ0FBV0wsYUFBWCxFQUEwQixxQ0FBMUIsQ0FBaEQ7QUFDQSxjQUFNdUMsb0JBQXlCLEdBQUcsQ0FDakM7QUFDQyxvQkFBUSxZQURUO0FBRUMsNEJBQWdCLFlBRmpCO0FBR0MscUJBQVMsb0JBSFY7QUFJQyx3QkFBWSxJQUpiO0FBS0MsMEJBQWMsSUFMZjtBQU1DLHlCQUFhLEtBTmQ7QUFPQyw0QkFBZ0IsSUFQakI7QUFRQyxpQ0FBcUIsS0FSdEI7QUFTQyw2QkFBaUIsQ0FBQyxDQVRuQjtBQVVDLG9CQUFRLGNBVlQ7QUFXQyw4QkFBa0IsQ0FDakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQURpQixFQUtqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBTGlCLEVBU2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFUaUIsQ0FYbkI7QUF5QkMsb0JBQVEsT0F6QlQ7QUEwQkMseUJBQWE7QUExQmQsV0FEaUMsRUE2QmpDO0FBQ0Msb0JBQVEsWUFEVDtBQUVDLDRCQUFnQixZQUZqQjtBQUdDLHFCQUFTLG9CQUhWO0FBSUMsd0JBQVksSUFKYjtBQUtDLDBCQUFjLElBTGY7QUFNQyx5QkFBYSxLQU5kO0FBT0MsNEJBQWdCLElBUGpCO0FBUUMsaUNBQXFCLEtBUnRCO0FBU0MsNkJBQWlCLENBQUMsQ0FUbkI7QUFVQyxvQkFBUSxjQVZUO0FBV0MsOEJBQWtCLENBQ2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFEaUIsRUFLakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQUxpQixFQVNqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBVGlCLENBWG5CO0FBeUJDLG9CQUFRLE9BekJUO0FBMEJDLHlCQUFhO0FBMUJkLFdBN0JpQyxDQUFsQztBQTBEQUQsVUFBQUEsdUNBQXVDLENBQUNoQyxrQkFBeEMsQ0FBMkQsWUFBTTtBQUNoRSxtQkFBT2lDLG9CQUFQO0FBQ0EsV0FGRDtBQUdBLGNBQUlOLFdBQWUsR0FBRyxFQUF0Qjs7QUFDQWpDLFVBQUFBLGFBQWEsQ0FBQ2tDLGVBQWQsQ0FBOEJDLElBQTlCLENBQW1DTixZQUFuQyxFQUFpRHBDLFlBQWpELEVBQStEa0MscUJBQS9ELEVBQXNGLEVBQXRGLEVBQTBGLEVBQTFGLEVBQThGTSxXQUE5RixFQUEyRyxFQUEzRzs7QUFDQW5CLFVBQUFBLE1BQU0sQ0FBQ21CLFdBQUQsQ0FBTixDQUFvQkcsT0FBcEIsQ0FBNEJHLG9CQUE1QjtBQXpGNkY7QUEwRjdGLFNBMUZDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUE0RkEvQixNQUFBQSxFQUFFLENBQUMscUVBQUQ7QUFBQSxZQUF5RjtBQUMxRnRCLFVBQUFBLE9BQU8sQ0FBQyxhQUFELENBQVAsR0FBeUIsWUFBekI7QUFDQSxjQUFNMEMsY0FBYyxHQUFHLElBQUl2QyxhQUFKLENBQWtCSCxPQUFsQixDQUF2QjtBQUNBLGNBQUkyQyxZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU04QyxjQUFOO0FBQUEsYUFBUixDQURRO0FBRWxCRSxZQUFBQSxPQUFPLEVBQUVqRCxJQUFJLENBQUNDLEVBQUw7QUFGUyxXQUFuQjtBQUlBLGNBQU1pRCxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFVBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFlBQU07QUFDN0MsbUJBQU87QUFDTix1QkFBUyw2Q0FESDtBQUVOLHdDQUEwQixDQUN6QjtBQUNDLHlCQUFTLG1EQURWO0FBRUMsNEJBQVk7QUFDWCxtQ0FBaUI7QUFETjtBQUZiLGVBRHlCLENBRnBCO0FBVU4scUNBQXVCLENBQ3RCO0FBQ0MsaUNBQWlCO0FBRGxCLGVBRHNCO0FBVmpCLGFBQVA7QUFnQkEsV0FqQkQ7QUFrQkF1QixVQUFBQSxZQUFZLENBQUNDLE9BQWIsQ0FBcUJyQixlQUFyQixDQUFxQyw4QkFBckM7QUFDQSxjQUFNK0Isb0JBQXlCLEdBQUcsQ0FDakM7QUFDQyxvQkFBUSxZQURUO0FBRUMsNEJBQWdCLFlBRmpCO0FBR0MscUJBQVMsYUFIVjtBQUlDLHdCQUFZLElBSmI7QUFLQywwQkFBYyxJQUxmO0FBTUMseUJBQWEsSUFOZDtBQU9DLDRCQUFnQixLQVBqQjtBQVFDLDZCQUFpQixDQUFDLENBUm5CO0FBU0MsdUJBQVcsWUFUWjtBQVVDLG9CQUFRLFdBVlQ7QUFXQyw4QkFBa0IsQ0FDakI7QUFDQyxxQkFBTyxVQURSO0FBRUMsc0JBQVE7QUFGVCxhQURpQixFQUtqQjtBQUNDLHFCQUFPLFdBRFI7QUFFQyxzQkFBUTtBQUZULGFBTGlCLEVBU2pCO0FBQ0MscUJBQU8sUUFEUjtBQUVDLHNCQUFRO0FBRlQsYUFUaUIsQ0FYbkI7QUF5QkMsb0JBQVEsVUF6QlQ7QUEwQkMsMkJBQWUsVUExQmhCO0FBMkJDLDRCQUFnQjtBQTNCakIsV0FEaUMsQ0FBbEM7QUErQkEsY0FBSVAsV0FBZ0IsR0FBRyxFQUF2Qjs7QUFDQWpDLFVBQUFBLGFBQWEsQ0FBQ2tDLGVBQWQsQ0FBOEJDLElBQTlCLENBQW1DTixZQUFuQyxFQUFpRHBDLFlBQWpELEVBQStEa0MscUJBQS9ELEVBQXNGLEVBQXRGLEVBQTBGLEVBQTFGLEVBQThGTSxXQUE5RixFQUEyRyxVQUEzRzs7QUFDQW5CLFVBQUFBLE1BQU0sQ0FBQzJCLElBQUksQ0FBQ0MsU0FBTCxDQUFlVCxXQUFXLENBQUMsQ0FBRCxDQUExQixDQUFELENBQU4sQ0FBdUNHLE9BQXZDLENBQStDSyxJQUFJLENBQUNDLFNBQUwsQ0FBZUYsb0JBQW9CLENBQUMsQ0FBRCxDQUFuQyxDQUEvQztBQTVEMEY7QUE2RDFGLFNBN0RDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUErREFoQyxNQUFBQSxFQUFFLENBQUMsb0ZBQUQ7QUFBQSxZQUF3RztBQUN6R3RCLFVBQUFBLE9BQU8sQ0FBQyxhQUFELENBQVAsR0FBeUIsWUFBekI7QUFDQUEsVUFBQUEsT0FBTyxDQUFDLCtCQUFELENBQVAsR0FBMkM7QUFDMUMsc0RBQTBDLElBREE7QUFFMUMscUVBQXlELENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FGZjtBQUcxQyxzRUFBMEQsS0FIaEI7QUFJMUMscURBQXlDO0FBSkMsV0FBM0M7QUFNQSxjQUFNMEMsY0FBYyxHQUFHLElBQUl2QyxhQUFKLENBQWtCSCxPQUFsQixDQUF2QjtBQUNBLGNBQUkyQyxZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU04QyxjQUFOO0FBQUEsYUFBUixDQURRO0FBRWxCRSxZQUFBQSxPQUFPLEVBQUVqRCxJQUFJLENBQUNDLEVBQUw7QUFGUyxXQUFuQjtBQUlBLGNBQU1pRCxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFVBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFlBQU07QUFDN0MsbUJBQU87QUFDTix1QkFBUztBQURILGFBQVA7QUFHQSxXQUpEO0FBS0F1QixVQUFBQSxZQUFZLENBQUNDLE9BQWIsQ0FBcUJyQixlQUFyQixDQUFxQyw4QkFBckM7QUFDQXZCLFVBQUFBLE9BQU8sQ0FBQyxhQUFELENBQVAsR0FBeUIsWUFBekI7QUFDQUEsVUFBQUEsT0FBTyxDQUFDLCtCQUFELENBQVAsR0FBMkM7QUFDMUMsc0RBQTBDLElBREE7QUFFMUMscUVBQXlELENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FGZjtBQUcxQyxzRUFBMEQsS0FIaEI7QUFJMUMscURBQXlDO0FBSkMsV0FBM0M7QUFNQSxjQUFNb0QsdUNBQXVDLEdBQUd6RCxJQUFJLENBQUN3QixLQUFMLENBQVdMLGFBQVgsRUFBMEIscUNBQTFCLENBQWhEO0FBQ0EsY0FBTXVDLG9CQUF5QixHQUFHLENBQ2pDO0FBQ0Msb0JBQVEsWUFEVDtBQUVDLDRCQUFnQixZQUZqQjtBQUdDLHFCQUFTLG9CQUhWO0FBSUMsd0JBQVksSUFKYjtBQUtDLDBCQUFjLElBTGY7QUFNQyx5QkFBYSxLQU5kO0FBT0MsNEJBQWdCLElBUGpCO0FBUUMsaUNBQXFCLEtBUnRCO0FBU0MsNkJBQWlCLENBQUMsQ0FUbkI7QUFVQyxvQkFBUSxjQVZUO0FBV0MsOEJBQWtCLENBQ2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFEaUIsRUFLakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQUxpQixFQVNqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBVGlCLENBWG5CO0FBeUJDLG9CQUFRLE9BekJUO0FBMEJDLHlCQUFhO0FBMUJkLFdBRGlDLEVBNkJqQztBQUNDLG9CQUFRLFlBRFQ7QUFFQyw0QkFBZ0IsWUFGakI7QUFHQyxxQkFBUyxvQkFIVjtBQUlDLHdCQUFZLElBSmI7QUFLQywwQkFBYyxJQUxmO0FBTUMseUJBQWEsS0FOZDtBQU9DLDRCQUFnQixJQVBqQjtBQVFDLGlDQUFxQixLQVJ0QjtBQVNDLDZCQUFpQixDQUFDLENBVG5CO0FBVUMsb0JBQVEsY0FWVDtBQVdDLDhCQUFrQixDQUNqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBRGlCLEVBS2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFMaUIsRUFTakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQVRpQixDQVhuQjtBQXlCQyxvQkFBUSxPQXpCVDtBQTBCQyx5QkFBYTtBQTFCZCxXQTdCaUMsQ0FBbEM7QUEwREFELFVBQUFBLHVDQUF1QyxDQUFDaEMsa0JBQXhDLENBQTJELFlBQU07QUFDaEUsbUJBQU9pQyxvQkFBUDtBQUNBLFdBRkQ7QUFHQSxjQUFJTixXQUFlLEdBQUcsRUFBdEI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsRUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUNtQixXQUFELENBQU4sQ0FBb0JHLE9BQXBCLENBQTRCRyxvQkFBNUI7QUEzRnlHO0FBNEZ6RyxTQTVGQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBOEZBL0IsTUFBQUEsRUFBRSxDQUFDLGlGQUFEO0FBQUEsWUFBcUc7QUFDdEd0QixVQUFBQSxPQUFPLENBQUMsYUFBRCxDQUFQLEdBQXlCLFlBQXpCO0FBQ0FBLFVBQUFBLE9BQU8sQ0FBQywrQkFBRCxDQUFQLEdBQTJDO0FBQzFDLG9EQUF3QztBQUN2Qyx1QkFBUztBQUQ4QixhQURFO0FBSTFDLHFEQUF5QyxhQUpDO0FBSzFDLG1EQUF1QztBQUxHLFdBQTNDO0FBT0EsY0FBTTBDLGNBQWMsR0FBRyxJQUFJdkMsYUFBSixDQUFrQkgsT0FBbEIsQ0FBdkI7QUFDQSxjQUFJMkMsWUFBWSxHQUFHO0FBQ2xCakMsWUFBQUEsUUFBUSxFQUFFZixJQUFJLENBQUNDLEVBQUwsQ0FBUTtBQUFBLHFCQUFNOEMsY0FBTjtBQUFBLGFBQVIsQ0FEUTtBQUVsQkUsWUFBQUEsT0FBTyxFQUFFakQsSUFBSSxDQUFDQyxFQUFMO0FBRlMsV0FBbkI7QUFJQSxjQUFNaUQsb0JBQW9CLEdBQUdsRCxJQUFJLENBQUN3QixLQUFMLENBQVcyQixZQUFYLEVBQXlCLGlCQUF6QixDQUE3QjtBQUNBRCxVQUFBQSxvQkFBb0IsQ0FBQ3pCLGtCQUFyQixDQUF3QyxZQUFNO0FBQzdDLG1CQUFPO0FBQ04sdUJBQVMsNkNBREg7QUFFTix3Q0FBMEIsQ0FDekI7QUFDQyx5QkFBUyxtREFEVjtBQUVDLDRCQUFZO0FBQ1gsbUNBQWlCO0FBRE47QUFGYixlQUR5QixDQUZwQjtBQVVOLHFDQUF1QixDQUN0QjtBQUNDLGlDQUFpQjtBQURsQixlQURzQjtBQVZqQixhQUFQO0FBZ0JBLFdBakJEO0FBa0JBdUIsVUFBQUEsWUFBWSxDQUFDQyxPQUFiLENBQXFCckIsZUFBckIsQ0FBcUMsOEJBQXJDO0FBQ0EsY0FBTStCLG9CQUF5QixHQUFHLENBQ2pDO0FBQ0Msb0JBQVEsWUFEVDtBQUVDLDRCQUFnQixZQUZqQjtBQUdDLHFCQUFTLGFBSFY7QUFJQyx3QkFBWSxJQUpiO0FBS0MsMEJBQWMsSUFMZjtBQU1DLHlCQUFhLElBTmQ7QUFPQyw0QkFBZ0IsS0FQakI7QUFRQyw2QkFBaUIsQ0FBQyxDQVJuQjtBQVNDLHVCQUFXLFlBVFo7QUFVQyxvQkFBUSxXQVZUO0FBV0MsOEJBQWtCLENBQ2pCO0FBQ0MscUJBQU8sVUFEUjtBQUVDLHNCQUFRO0FBRlQsYUFEaUIsRUFLakI7QUFDQyxxQkFBTyxXQURSO0FBRUMsc0JBQVE7QUFGVCxhQUxpQixFQVNqQjtBQUNDLHFCQUFPLFFBRFI7QUFFQyxzQkFBUTtBQUZULGFBVGlCLENBWG5CO0FBeUJDLG9CQUFRLFVBekJUO0FBMEJDLDJCQUFlLFVBMUJoQjtBQTJCQyw0QkFBZ0I7QUEzQmpCLFdBRGlDLENBQWxDO0FBK0JBLGNBQUlQLFdBQWdCLEdBQUcsRUFBdkI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsVUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUMyQixJQUFJLENBQUNDLFNBQUwsQ0FBZVQsV0FBVyxDQUFDLENBQUQsQ0FBMUIsQ0FBRCxDQUFOLENBQXVDRyxPQUF2QyxDQUErQ0ssSUFBSSxDQUFDQyxTQUFMLENBQWVGLG9CQUFvQixDQUFDLENBQUQsQ0FBbkMsQ0FBL0M7QUFuRXNHO0FBb0V0RyxTQXBFQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBc0VBaEMsTUFBQUEsRUFBRSxDQUFDLG1FQUFEO0FBQUEsWUFBdUY7QUFDeEZ0QixVQUFBQSxPQUFPLENBQUMsYUFBRCxDQUFQLEdBQXlCLGFBQXpCO0FBQ0EsY0FBSTBDLGNBQWMsR0FBRyxJQUFJdkMsYUFBSixDQUFrQkgsT0FBbEIsQ0FBckI7QUFDQSxjQUFJMkMsWUFBWSxHQUFHO0FBQ2xCakMsWUFBQUEsUUFBUSxFQUFFZixJQUFJLENBQUNDLEVBQUwsQ0FBUTtBQUFBLHFCQUFNOEMsY0FBTjtBQUFBLGFBQVIsQ0FEUTtBQUVsQkUsWUFBQUEsT0FBTyxFQUFFakQsSUFBSSxDQUFDQyxFQUFMO0FBRlMsV0FBbkI7QUFJQSxjQUFNaUQsb0JBQW9CLEdBQUdsRCxJQUFJLENBQUN3QixLQUFMLENBQVcyQixZQUFYLEVBQXlCLGlCQUF6QixDQUE3QjtBQUNBRCxVQUFBQSxvQkFBb0IsQ0FBQ3pCLGtCQUFyQixDQUF3QyxZQUFNO0FBQzdDLG1CQUFPO0FBQ04sdUJBQVMsNkNBREg7QUFFTix3Q0FBMEIsQ0FDekI7QUFDQyx5QkFBUyxtREFEVjtBQUVDLDRCQUFZO0FBQ1gsbUNBQWlCO0FBRE47QUFGYixlQUR5QixDQUZwQjtBQVVOLHFDQUF1QixDQUN0QjtBQUNDLGlDQUFpQjtBQURsQixlQURzQjtBQVZqQixhQUFQO0FBZ0JBLFdBakJEO0FBa0JBdUIsVUFBQUEsWUFBWSxDQUFDQyxPQUFiLENBQXFCckIsZUFBckIsQ0FBcUMsK0JBQXJDO0FBQ0EsY0FBSXdCLFdBQWdCLEdBQUcsRUFBdkI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsRUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUNtQixXQUFELENBQU4sQ0FBb0JHLE9BQXBCLENBQTRCLEVBQTVCO0FBN0J3RjtBQThCeEYsU0E5QkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQStCQSxLQTFYTyxDQUFSO0FBNFhBckQsSUFBQUEsUUFBUSxDQUFDLHNCQUFELEVBQXlCLFlBQVc7QUFDM0MsVUFBSTRELGtCQUFKO0FBQ0EsVUFBSUMsbUJBQUo7QUFDQSxVQUFJQyxVQUFKO0FBQ0EsVUFBSUMsYUFBSjtBQUNBNUMsTUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDaEJyQixRQUFBQSxJQUFJLENBQUNzQixhQUFMO0FBQ0EwQyxRQUFBQSxVQUFVLEdBQUdwRCxZQUFZLENBQUNHLFFBQWIsRUFBYjtBQUNBLFlBQU1tRCxjQUFjLEdBQUdGLFVBQVUsQ0FBQ1IsWUFBWCxFQUF2QjtBQUNBTSxRQUFBQSxrQkFBa0IsR0FBRzlELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzBDLGNBQVgsRUFBMkIsZUFBM0IsQ0FBckI7QUFDQUosUUFBQUEsa0JBQWtCLENBQUNyQyxrQkFBbkIsQ0FBc0MsVUFBQ1AsS0FBRCxFQUFnQjtBQUNyRCxpQkFBTyxJQUFJaUQsT0FBSixDQUFZLFVBQVNDLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQzVDLGdCQUFJbkQsS0FBSyxLQUFLLG9CQUFkLEVBQW9DO0FBQ25Da0QsY0FBQUEsT0FBTyxDQUFDO0FBQ1AseUJBQVMsWUFERjtBQUVQLHdCQUFRLENBQUMsSUFBRCxDQUZEO0FBR1Asc0JBQU07QUFDTCwyQkFBUyxVQURKO0FBRUwsMkJBQVMsV0FGSjtBQUdMLCtCQUFhO0FBSFIsaUJBSEM7QUFRUCwwQkFBVTtBQUNULDJCQUFTLFVBREE7QUFFVCwyQkFBUztBQUZBLGlCQVJIO0FBWVAsK0JBQWU7QUFDZCwyQkFBUyxVQURLO0FBRWQsMkJBQVMsYUFGSztBQUdkLGdDQUFjLEVBSEE7QUFJZCw0QkFBVTtBQUpJLGlCQVpSO0FBa0JQLDhCQUFjO0FBQ2IsMkJBQVMsVUFESTtBQUViLDJCQUFTLGFBRkk7QUFHYixnQ0FBYyxFQUhEO0FBSWIsNEJBQVU7QUFKRztBQWxCUCxlQUFELENBQVA7QUF5QkEsYUExQkQsTUEwQk87QUFDTkEsY0FBQUEsT0FBTyxDQUFDO0FBQ1AseUVBQXlELGFBRGxEO0FBRVAseUVBQXlELGFBRmxEO0FBR1AsNERBQTRDO0FBQzNDLDJCQUFTLDZDQURrQztBQUUzQyx5Q0FBdUIsQ0FDdEI7QUFDQyxxQ0FBaUI7QUFEbEIsbUJBRHNCLEVBSXRCO0FBQ0MscUNBQWlCO0FBRGxCLG1CQUpzQixDQUZvQjtBQVUzQyw0Q0FBMEIsQ0FDekI7QUFDQyw2QkFBUyxtREFEVjtBQUVDLGdDQUFZO0FBQ1gsdUNBQWlCO0FBRE47QUFGYixtQkFEeUIsRUFPekI7QUFDQyw2QkFBUyxtREFEVjtBQUVDLGdDQUFZO0FBQ1gsdUNBQWlCO0FBRE47QUFGYixtQkFQeUI7QUFWaUI7QUFIckMsZUFBRCxDQUFQO0FBNkJBO0FBQ0QsV0ExRE0sQ0FBUDtBQTJEQSxTQTVERDtBQTZEQTNELFFBQUFBLFVBQVUsR0FBRyxrQkFBYjtBQUNBLFlBQU15QyxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFFBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFVBQUFQLEtBQUssRUFBSTtBQUNoRCxjQUFJQSxLQUFLLEtBQUssa0JBQWQsRUFBa0M7QUFDakMsbUJBQU87QUFDTiw2QkFBZTtBQUNkLHdCQUFRLGFBRE07QUFFZCx5QkFBUyxnQ0FGSztBQUdkLDRCQUFZLElBSEU7QUFJZCw2QkFBYSxNQUpDO0FBS2QsMkNBQTJCO0FBTGI7QUFEVCxhQUFQO0FBU0EsV0FWRCxNQVVPO0FBQ04sbUJBQU87QUFDTiw0QkFBYztBQUNiLHdCQUFRLFlBREs7QUFFYixnQ0FBZ0IsWUFGSDtBQUdiLHFDQUFxQixLQUhSO0FBSWIseUJBQVMsb0JBSkk7QUFLYiw0QkFBWSxJQUxDO0FBTWIsNkJBQWEsTUFOQTtBQU9iLDBCQUFVO0FBUEc7QUFEUixhQUFQO0FBV0E7QUFDRCxTQXhCRDtBQXlCQSxZQUFNb0QscUJBQXFCLEdBQUd0RSxJQUFJLENBQUN3QixLQUFMLENBQVcrQyxrQkFBWCxFQUErQixrQkFBL0IsQ0FBOUI7QUFDQUQsUUFBQUEscUJBQXFCLENBQUM3QyxrQkFBdEIsQ0FBeUMsWUFBTTtBQUM5QyxpQkFBTyxJQUFJMEMsT0FBSixDQUFZLFVBQVNDLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQzVDRCxZQUFBQSxPQUFPLENBQUMsRUFBRCxDQUFQO0FBQ0EsV0FGTSxDQUFQO0FBR0EsU0FKRDtBQUtBSCxRQUFBQSxhQUFhLEdBQUdqRSxJQUFJLENBQUN3QixLQUFMLENBQVdnRCxHQUFYLEVBQWdCLE9BQWhCLENBQWhCO0FBQ0FQLFFBQUFBLGFBQWEsQ0FBQ3hDLGtCQUFkLENBQWlDLFlBQU07QUFDdEMsaUJBQU8sRUFBUDtBQUNBLFNBRkQ7QUFHQXNDLFFBQUFBLG1CQUFtQixHQUFHL0QsSUFBSSxDQUFDd0IsS0FBTCxDQUFXTCxhQUFYLEVBQTBCLGlCQUExQixDQUF0QjtBQUNBNEMsUUFBQUEsbUJBQW1CLENBQUN0QyxrQkFBcEIsQ0FBdUMsWUFBTTtBQUM1QyxpQkFBTyxJQUFJMEMsT0FBSixDQUFZLFVBQVNDLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQzVDRCxZQUFBQSxPQUFPLENBQUMsRUFBRCxDQUFQO0FBQ0EsV0FGTSxDQUFQO0FBR0EsU0FKRDtBQUtBLE9BN0dTLENBQVY7QUE4R0ExQyxNQUFBQSxRQUFRLENBQUMsWUFBTTtBQUNkMUIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRk8sQ0FBUjtBQUdBSyxNQUFBQSxFQUFFLENBQUMsMkRBQUQ7QUFBQSxZQUErRTtBQUNoRmYsVUFBQUEsWUFBWSxDQUFDRSxRQUFiLENBQXNCYyxlQUF0QixDQUFzQyxDQUNyQztBQUNDNkMsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxhQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssZ0NBQWQsRUFBZ0Q7QUFDL0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQURxQyxFQVdyQztBQUNDdUQsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxhQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssOEJBQWQsRUFBOEM7QUFDN0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQVhxQyxDQUF0QztBQURnRixpQ0F1QjFFQyxhQUFhLENBQUN3RCxvQkFBZCxDQUFtQy9ELFlBQW5DLEVBQWlEb0QsVUFBakQsQ0F2QjBFO0FBd0JoRi9CLFlBQUFBLE1BQU0sQ0FBQ2dDLGFBQWEsQ0FBQ1csSUFBZCxDQUFtQkMsS0FBbkIsQ0FBeUJDLE1BQTFCLENBQU4sQ0FBd0NDLElBQXhDLENBQTZDLENBQTdDO0FBQ0E5QyxZQUFBQSxNQUFNLENBQUM4QixtQkFBbUIsQ0FBQ2EsSUFBcEIsQ0FBeUJDLEtBQXpCLENBQStCQyxNQUFoQyxDQUFOLENBQThDQyxJQUE5QyxDQUFtRCxDQUFuRDtBQXpCZ0Y7QUEwQmhGLFNBMUJDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUEyQkFwRCxNQUFBQSxFQUFFLENBQUMsZ0VBQUQ7QUFBQSxZQUFvRjtBQUNyRmYsVUFBQUEsWUFBWSxDQUFDRSxRQUFiLENBQXNCYyxlQUF0QixDQUFzQyxDQUNyQztBQUNDNkMsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxRQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssZ0NBQWQsRUFBZ0Q7QUFDL0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQURxQyxFQVdyQztBQUNDdUQsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxhQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssOEJBQWQsRUFBOEM7QUFDN0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQVhxQyxDQUF0QztBQURxRixpQ0F1Qi9FQyxhQUFhLENBQUN3RCxvQkFBZCxDQUFtQy9ELFlBQW5DLEVBQWlEb0QsVUFBakQsQ0F2QitFO0FBd0JyRi9CLFlBQUFBLE1BQU0sQ0FBQzhCLG1CQUFtQixDQUFDYSxJQUFwQixDQUF5QkMsS0FBekIsQ0FBK0JDLE1BQWhDLENBQU4sQ0FBOENDLElBQTlDLENBQW1ELENBQW5EO0FBeEJxRjtBQXlCckYsU0F6QkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQTBCQSxLQTNLTyxDQUFSO0FBNktBN0UsSUFBQUEsUUFBUSxDQUFDLGlCQUFELEVBQW9CLFlBQVc7QUFDdEMsVUFBSThFLHdCQUFKO0FBQ0EsVUFBSUMsaUJBQUo7QUFDQSxVQUFJQyw2QkFBSjtBQUNBN0QsTUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDaEJyQixRQUFBQSxJQUFJLENBQUNzQixhQUFMO0FBQ0EwRCxRQUFBQSx3QkFBd0IsR0FBR2hGLElBQUksQ0FBQ3dCLEtBQUwsQ0FBV0wsYUFBWCxFQUEwQixzQkFBMUIsQ0FBM0I7QUFDQTZELFFBQUFBLHdCQUF3QixDQUFDdkQsa0JBQXpCLENBQTRDLFlBQU07QUFDakQsaUJBQU8sSUFBSTBDLE9BQUosQ0FBWSxVQUFTQyxPQUFULEVBQWtCQyxNQUFsQixFQUEwQjtBQUM1Q0QsWUFBQUEsT0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNBLFdBRk0sQ0FBUDtBQUdBLFNBSkQ7QUFLQWMsUUFBQUEsNkJBQTZCLEdBQUdsRixJQUFJLENBQUN3QixLQUFMLENBQVdaLFlBQVgsRUFBeUIsMEJBQXpCLENBQWhDO0FBQ0FzRSxRQUFBQSw2QkFBNkIsQ0FBQ3pELGtCQUE5QixDQUFpRCxVQUFDMEQsSUFBRCxFQUFZbEYsRUFBWixFQUFxQm1GLGNBQXJCLEVBQTZDO0FBQzdGLGlCQUFPLElBQUlqQixPQUFKLENBQVksVUFBU0MsT0FBVCxFQUFrQkMsTUFBbEIsRUFBMEI7QUFDNUMsZ0JBQU1nQixVQUFVLEdBQUc7QUFDbEJDLGNBQUFBLFNBQVMsRUFBRSxZQUFXO0FBQ3JCLHVCQUFPLEVBQVA7QUFDQTtBQUhpQixhQUFuQjtBQUtBLGdCQUFNQyxTQUFTLEdBQUc7QUFDakJDLGNBQUFBLFFBQVEsRUFBRSxZQUFXO0FBQ3BCLHVCQUFPLEVBQVA7QUFDQTtBQUhnQixhQUFsQjtBQUtBdkYsWUFBQUEsRUFBRSxDQUFDcUQsSUFBSCxDQUFRbkMsYUFBUixFQUF1QmtFLFVBQXZCLEVBQW1DRSxTQUFuQztBQUNBbkIsWUFBQUEsT0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNBLFdBYk0sQ0FBUDtBQWNBLFNBZkQ7QUFnQkFhLFFBQUFBLGlCQUFpQixHQUFHakYsSUFBSSxDQUFDd0IsS0FBTCxDQUFXWixZQUFYLEVBQXlCLE1BQXpCLENBQXBCO0FBQ0EsT0ExQlMsQ0FBVjtBQTJCQWMsTUFBQUEsUUFBUSxDQUFDLFlBQU07QUFDZDFCLFFBQUFBLElBQUksQ0FBQ3NCLGFBQUw7QUFDQSxPQUZPLENBQVI7QUFHQUssTUFBQUEsRUFBRSxDQUFDLG1EQUFELEVBQXNELFlBQVc7QUFDbEUsWUFBTThELDZCQUE2QixHQUFHekYsSUFBSSxDQUFDd0IsS0FBTCxDQUFXTCxhQUFYLEVBQTBCLFdBQTFCLENBQXRDO0FBQ0FzRSxRQUFBQSw2QkFBNkIsQ0FBQ2hFLGtCQUE5QixDQUFpRCxZQUFNO0FBQ3RELGlCQUFPLEVBQVA7QUFDQSxTQUZEO0FBR0EsWUFBTWlFLE1BQU0sR0FBR3ZFLGFBQWEsQ0FBQ3dFLGVBQWQsQ0FBOEIvRSxZQUE5QixFQUE0Q2dGLElBQTVDLENBQWlELFlBQVc7QUFDMUUzRCxVQUFBQSxNQUFNLENBQUN5RCxNQUFELENBQU4sQ0FBZW5DLE9BQWYsQ0FBdUIsRUFBdkI7QUFDQXRCLFVBQUFBLE1BQU0sQ0FBQ2dELGlCQUFELENBQU4sQ0FBMEJZLHdCQUExQixDQUFtRCx1QkFBbkQsRUFBNEUsRUFBNUU7QUFDQTVELFVBQUFBLE1BQU0sQ0FBQytDLHdCQUF3QixDQUFDSixJQUF6QixDQUE4QkMsS0FBOUIsQ0FBb0NDLE1BQXJDLENBQU4sQ0FBbURDLElBQW5ELENBQXdELENBQXhEO0FBQ0E5QyxVQUFBQSxNQUFNLENBQUNpRCw2QkFBNkIsQ0FBQ04sSUFBOUIsQ0FBbUNDLEtBQW5DLENBQXlDQyxNQUExQyxDQUFOLENBQXdEQyxJQUF4RCxDQUE2RCxDQUE3RDtBQUNBLFNBTGMsQ0FBZjtBQU1BLE9BWEMsQ0FBRjtBQWFBcEQsTUFBQUEsRUFBRSxDQUFDLCtDQUFEO0FBQUEsWUFBbUU7QUFDcEUsY0FBTThELDZCQUE2QixHQUFHekYsSUFBSSxDQUFDd0IsS0FBTCxDQUFXTCxhQUFYLEVBQTBCLFdBQTFCLENBQXRDO0FBQ0FzRSxVQUFBQSw2QkFBNkIsQ0FBQ2hFLGtCQUE5QixDQUFpRCxZQUFNO0FBQ3RELG1CQUFPLElBQVA7QUFDQSxXQUZEO0FBRm9FLGlDQUsvQ04sYUFBYSxDQUFDd0UsZUFBZCxDQUE4Qi9FLFlBQTlCLENBTCtDLGlCQUs5RDhFLE1BTDhEO0FBT3BFekQsWUFBQUEsTUFBTSxDQUFDeUQsTUFBRCxDQUFOLENBQWVuQyxPQUFmLENBQXVCLEVBQXZCO0FBQ0F0QixZQUFBQSxNQUFNLENBQUNnRCxpQkFBRCxDQUFOLENBQTBCWSx3QkFBMUIsQ0FBbUQsdUJBQW5ELEVBQTRFLEVBQTVFO0FBQ0E1RCxZQUFBQSxNQUFNLENBQUMrQyx3QkFBd0IsQ0FBQ0osSUFBekIsQ0FBOEJDLEtBQTlCLENBQW9DQyxNQUFyQyxDQUFOLENBQW1EQyxJQUFuRCxDQUF3RCxDQUF4RDtBQUNBOUMsWUFBQUEsTUFBTSxDQUFDaUQsNkJBQTZCLENBQUNOLElBQTlCLENBQW1DQyxLQUFuQyxDQUF5Q0MsTUFBMUMsQ0FBTixDQUF3REMsSUFBeEQsQ0FBNkQsQ0FBN0Q7QUFWb0U7QUFXcEUsU0FYQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBWUEsS0EzRE8sQ0FBUjtBQTREQSxHQTN6Qk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnREZWxlZ2F0ZSwgQ29tbW9uSGVscGVyLCBPRGF0YU1ldGFNb2RlbFV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IHsgTW9ja01ldGFNb2RlbCwgTW9ja01vZGVsIH0gZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCB7IExvZyB9IGZyb20gXCJzYXAvYmFzZVwiO1xuY29uc3Qgc3B5UmVxdWVzdHMgPSBqZXN0LmZuKCk7XG5kZXNjcmliZShcIkNoYXJ0RGVsZWdhdGVcIiwgZnVuY3Rpb24oKSB7XG5cdGNvbnN0IG1vY2tNb2RlbCA9IG5ldyBNb2NrTW9kZWwoKTtcblx0Y29uc3Qgb1ZhbHVlcyA9IHtcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlLyRLZXlcIjoge1xuXHRcdFx0JGtpbmQ6IFwiS2V5XCJcblx0XHR9LFxuXHRcdFwiL1NhbGVzT3JkZXJNYW5hZ2UvTmV0UHJpY2luZ1wiOiB7XG5cdFx0XHQka2luZDogXCJQcm9wZXJ0eVwiXG5cdFx0fSxcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJcIjoge1xuXHRcdFx0JGtpbmQ6IFwiUHJvcGVydHlcIlxuXHRcdH0sXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9Tb2xkVG9QYXJ0eVwiOiB7XG5cdFx0XHQka2luZDogXCJQcm9wZXJ0eVwiXG5cdFx0fSxcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdAc2FwdWkubmFtZVwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJAc2FwdWkubmFtZVwiOiBcIlNhbGVzT3JkZXJcIixcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL1NvbGRUb1BhcnR5QHNhcHVpLm5hbWVcIjogXCJTb2xkVG9QYXJ0eVwiLFxuXHRcdFwiL1NhbGVzT3JkZXJNYW5hZ2UvTmV0UHJpY2luZ0BcIjoge1xuXHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiTmV0IFByaWNpbmdcIlxuXHRcdH0sXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9TYWxlc09yZGVyQFwiOiB7XG5cdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dFwiOiB7XG5cdFx0XHRcdFwiJFBhdGhcIjogXCJTYWxlc09yZGVyVGV4dFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiU2FsZXMgT3JkZXJcIlxuXHRcdH0sXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9Tb2xkVG9QYXJ0eUBcIjoge1xuXHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiU29sZFRvUGFydHlcIlxuXHRcdH0sXG5cdFx0XCJAc2FwdWkubmFtZVwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL19JdGVtLyRraW5kXCI6IFwiTmF2aWdhdGlvblByb3BlcnR5XCIsXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS8ka2luZFwiOiBcIkVudGl0eVNldFwiXG5cdH07XG5cdGNvbnN0IG1vY2tNZXRhTW9kZWwgPSBuZXcgTW9ja01ldGFNb2RlbChvVmFsdWVzKTtcblx0bGV0IHNFbnRpdHlTZXQgPSBcIlwiLFxuXHRcdHNUYXJnZXRDb2xsZWN0aW9uUGF0aCA9IFwiXCI7XG5cdG1vY2tNb2RlbC5zZXRNZXRhTW9kZWwobW9ja01ldGFNb2RlbCk7XG5cdGNvbnN0IG1vY2tNZGNDaGFydCA9IHtcblx0XHRnZXREZWxlZ2F0ZTogamVzdC5mbigpLFxuXHRcdGdldEl0ZW1zOiBqZXN0LmZuKCksXG5cdFx0Z2V0TW9kZWw6IGplc3QuZm4oKCkgPT4gbW9ja01vZGVsKSxcblx0XHRhdHRhY2hNb2RlbENvbnRleHRDaGFuZ2U6IGplc3QuZm4oKSxcblx0XHRkYXRhOiBqZXN0LmZuKHNQcm9wID0+IHtcblx0XHRcdGlmIChzUHJvcCA9PT0gXCJlbnRpdHlTZXRcIikge1xuXHRcdFx0XHRyZXR1cm4gc0VudGl0eVNldDtcblx0XHRcdH0gZWxzZSBpZiAoc1Byb3AgPT09IFwiY3VzdG9tQWdnXCIpIHtcblx0XHRcdFx0cmV0dXJuIFwiQ3VzdG9tQWdncmVnYXRlc1wiO1xuXHRcdFx0fSBlbHNlIGlmIChzUHJvcCA9PT0gXCJ0cmFuc0FnZ1wiKSB7XG5cdFx0XHRcdHJldHVybiBcIlRyYW5zQWdnXCI7XG5cdFx0XHR9IGVsc2UgaWYgKHNQcm9wID09PSBcInRhcmdldENvbGxlY3Rpb25QYXRoXCIpIHtcblx0XHRcdFx0cmV0dXJuIHNUYXJnZXRDb2xsZWN0aW9uUGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBcIkFwcGx5U3VwcG9ydGVkXCI7XG5cdFx0XHR9XG5cdFx0fSlcblx0fTtcblx0Q2hhcnREZWxlZ2F0ZS5fZ2V0TGF5b3V0T3B0aW9uc0ZvclR5cGUgPSBqZXN0LmZuKHNQcm9wID0+IHtcblx0XHRpZiAoc1Byb3AgPT09IFwiZ3JvdXBhYmxlXCIpIHtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJjYXRlZ29yeVwiLCBcInRleHRcIjogXCJDYXRlZ29yeVwiIH0sXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJjYXRlZ29yeTJcIiwgXCJ0ZXh0XCI6IFwiQ2F0ZWdvcnkgMlwiIH0sXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJzZXJpZXNcIiwgXCJ0ZXh0XCI6IFwiU2VyaWVzXCIgfVxuXHRcdFx0XTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0W1xuXHRcdFx0XHR7IFwia2V5XCI6IFwiYXhpczFcIiwgXCJ0ZXh0XCI6IFwiQXhpcyAxXCIgfSxcblx0XHRcdFx0eyBcImtleVwiOiBcImF4aXMyXCIsIFwidGV4dFwiOiBcIkF4aXMgMlwiIH0sXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJheGlzM1wiLCBcInRleHRcIjogXCJBeGlzIDNcIiB9XG5cdFx0XHRdO1xuXHRcdH1cblx0fSk7XG5cdGRlc2NyaWJlKFwiX2dldEJpbmRpbmdJbmZvXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdFx0amVzdC5jbGVhckFsbE1vY2tzKCk7XG5cdFx0XHRjb25zdCBvTW9ja0JpbmRpbmdJbmZvRnJvbVN0YXRlID0gamVzdC5zcHlPbihDaGFydERlbGVnYXRlLCBcIl9nZXRCaW5kaW5nSW5mb0Zyb21TdGF0ZVwiKTtcblx0XHRcdG9Nb2NrQmluZGluZ0luZm9Gcm9tU3RhdGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHNweVJlcXVlc3RzKCkpO1xuXHRcdH0pO1xuXHRcdGFmdGVyQWxsKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwiY2hlY2sgYmluZGluZyBpbmZvIG9mIHRoZSBjaGFydCB3aGVuIGNvbGxlY3Rpb24gcGF0aCBpcyBlbnRpdHlzZXRcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHRzVGFyZ2V0Q29sbGVjdGlvblBhdGggPSBcIi9TYWxlc09yZGVyTWFuYWdlXCI7XG5cdFx0XHRzRW50aXR5U2V0ID0gXCJTYWxlc09yZGVyTWFuYWdlXCI7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0RGVsZWdhdGUubW9ja1JldHVyblZhbHVlKHtcblx0XHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRcdGNvbnRleHRQYXRoOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIsXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogeyAkJGdyb3VwSWQ6IFwiJGF1dG8ud29ya2Vyc1wiIH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRleHBlY3QoQ2hhcnREZWxlZ2F0ZS5fZ2V0QmluZGluZ0luZm8obW9ja01kY0NoYXJ0KSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIGJpbmRpbmcgaW5mbyBvZiB0aGUgY2hhcnQgd2hlbiBjb2xsZWN0aW9uIHBhdGggaXMgbm90IGVudGl0eXNldFwiLCBmdW5jdGlvbigpIHtcblx0XHRcdHNUYXJnZXRDb2xsZWN0aW9uUGF0aCA9IFwiL1NhbGVzT3JkZXJNYW5hZ2UvX0l0ZW1cIjtcblx0XHRcdHNFbnRpdHlTZXQgPSBcIlNhbGVzT3JkZXJJdGVtXCI7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0RGVsZWdhdGUubW9ja1JldHVyblZhbHVlKHtcblx0XHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRcdGNvbnRleHRQYXRoOiBcIl9JdGVtXCIsXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogeyAkJGdyb3VwSWQ6IFwiJGF1dG8ud29ya2Vyc1wiIH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRleHBlY3QoQ2hhcnREZWxlZ2F0ZS5fZ2V0QmluZGluZ0luZm8obW9ja01kY0NoYXJ0KSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGVcIiwgZnVuY3Rpb24oKSB7XG5cdFx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0XHRqZXN0LmNsZWFyQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRhZnRlckFsbCgoKSA9PiB7XG5cdFx0XHRqZXN0LmNsZWFyQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcImNoZWNrIF9jcmVhdGVQcm9wZXJ0eUluZm9zRm9yQWdncmVnYXRhYmxlIGZvciB0cmFuc2Zvcm1hdGlvbmFsIGFnZ3JlZ2F0ZXNcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlBbm5vdGF0aW9ucyA9IHtcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFnZ3JlZ2F0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuU3VwcG9ydGVkQWdncmVnYXRpb25NZXRob2RzXCI6IFtcIm1pblwiLCBcIm1heFwiLCBcImF2ZXJhZ2VcIiwgXCJzdW1cIl0sXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5SZWNvbW1lbmRlZEFnZ3JlZ2F0aW9uTWV0aG9kXCI6IFwiYXZlcmFnZVwiLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuTWVhc3VyZXMuVjEuSVNPQ3VycmVuY3lcIjogeyBcIiRQYXRoXCI6IFwiVHJhbnNhY3Rpb25DdXJyZW5jeVwiIH0sXG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiOiBcIk5ldCBQcmljaW5nXCIsXG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZERlZmF1bHRcIjoge1xuXHRcdFx0XHRcdFwiJFR5cGVcIjogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcIlZhbHVlXCI6IHtcblx0XHRcdFx0XHRcdFwiJFBhdGhcIjogXCJOZXRQcmljaW5nXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBvRmlsdGVyUmVzdHJpY3Rpb25zSW5mbyA9IHtcblx0XHRcdFx0XCJOZXRQcmljaW5nXCI6IHtcblx0XHRcdFx0XHRmaWx0ZXJhYmxlOiB0cnVlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHByb3BlcnR5SW5mbzoge31cblx0XHRcdH07XG5cdFx0XHRjb25zdCBvU29ydFJlc3RyaWN0aW9uc0luZm8gPSB7XG5cdFx0XHRcdFwiTmV0UHJpY2luZ1wiOiB7XG5cdFx0XHRcdFx0c29ydGFibGU6IHRydWVcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG1Lbm93bkFnZ3JlZ2F0YWJsZVByb3BzID0ge1xuXHRcdFx0XHRcIk5ldFByaWNpbmdcIjoge1xuXHRcdFx0XHRcdFwibWluXCI6IHtcblx0XHRcdFx0XHRcdFwibmFtZVwiOiBcIm1pblByaWNpbmdcIixcblx0XHRcdFx0XHRcdFwibGFiZWxcIjogXCJNaW5pbWFsIE5ldCBBbW91bnRcIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XCJtYXhcIjoge1xuXHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwibWF4UHJpY2luZ1wiLFxuXHRcdFx0XHRcdFx0XCJsYWJlbFwiOiBcIk1heGltYWwgTmV0IEFtb3VudFwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc2tleSA9IFwiTmV0UHJpY2luZ1wiO1xuXG5cdFx0XHRleHBlY3QoXG5cdFx0XHRcdENoYXJ0RGVsZWdhdGUuX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUoXG5cdFx0XHRcdFx0c2tleSxcblx0XHRcdFx0XHRvUHJvcGVydHlBbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRvRmlsdGVyUmVzdHJpY3Rpb25zSW5mbyxcblx0XHRcdFx0XHRvU29ydFJlc3RyaWN0aW9uc0luZm8sXG5cdFx0XHRcdFx0bUtub3duQWdncmVnYXRhYmxlUHJvcHMsXG5cdFx0XHRcdFx0e31cblx0XHRcdFx0KVxuXHRcdFx0KS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUgZm9yIGN1c3RvbSBhZ2dyZWdhdGVzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29uc3Qgb1Byb3BlcnR5QW5ub3RhdGlvbnMgPSB7XG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MS5NZWFzdXJlXCI6IHRydWUsXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5kZWZhdWx0XCI6IHtcblx0XHRcdFx0XHRcIiRFbnVtTWVtYmVyXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLmRlZmF1bHRUeXBlL1NVTVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiOiBcIlNhbGVzIE51bWJlclwiLFxuXHRcdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGREZWZhdWx0XCI6IHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIsXG5cdFx0XHRcdFx0XCJWYWx1ZVwiOiB7XG5cdFx0XHRcdFx0XHRcIiRQYXRoXCI6IFwiU2FsZXNOdW1iZXJcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9GaWx0ZXJSZXN0cmljdGlvbnNJbmZvID0ge1xuXHRcdFx0XHRwcm9wZXJ0eUluZm86IHt9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgb1NvcnRSZXN0cmljdGlvbnNJbmZvID0ge1xuXHRcdFx0XHRwcm9wZXJ0eUluZm86IHt9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgbUN1c3RvbUFnZ3JlZ2F0ZXMgPSB7XG5cdFx0XHRcdFwiU2FsZXNBbW91bnRcIjoge1xuXHRcdFx0XHRcdFwibmFtZVwiOiBcIlNhbGVzQW1vdW50XCIsXG5cdFx0XHRcdFx0XCJsYWJlbFwiOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFNhbGVzQW1vdW50KVwiLFxuXHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcInNvcnRPcmRlclwiOiBcImJvdGhcIixcblx0XHRcdFx0XHRcImNvbnRleHREZWZpbmluZ1Byb3BlcnR5XCI6IFtdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiU2FsZXNBbW91bnRMb2NhbEN1cnJlbmN5XCI6IHtcblx0XHRcdFx0XHRcIm5hbWVcIjogXCJTYWxlc0Ftb3VudExvY2FsQ3VycmVuY3lcIixcblx0XHRcdFx0XHRcImxhYmVsXCI6IFwiQ3VzdG9tIEFnZ3JlZ2F0ZSAoU2FsZXNBbW91bnRMb2NhbEN1cnJlbmN5KVwiLFxuXHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcInNvcnRPcmRlclwiOiBcImJvdGhcIixcblx0XHRcdFx0XHRcImNvbnRleHREZWZpbmluZ1Byb3BlcnR5XCI6IFtdXG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBza2V5ID0gXCJTYWxlc0Ftb3VudFwiO1xuXHRcdFx0ZXhwZWN0KFxuXHRcdFx0XHRDaGFydERlbGVnYXRlLl9jcmVhdGVQcm9wZXJ0eUluZm9zRm9yQWdncmVnYXRhYmxlKFxuXHRcdFx0XHRcdHNrZXksXG5cdFx0XHRcdFx0b1Byb3BlcnR5QW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0b0ZpbHRlclJlc3RyaWN0aW9uc0luZm8sXG5cdFx0XHRcdFx0b1NvcnRSZXN0cmljdGlvbnNJbmZvLFxuXHRcdFx0XHRcdHt9LFxuXHRcdFx0XHRcdG1DdXN0b21BZ2dyZWdhdGVzXG5cdFx0XHRcdClcblx0XHRcdCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiX2hhbmRsZVByb3BlcnR5XCIsIGZ1bmN0aW9uKCkge1xuXHRcdGxldCBtRW50aXR5U2V0QW5ub3RhdGlvbnM6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdFx0bUVudGl0eVNldEFubm90YXRpb25zID0ge1xuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLlNvcnRSZXN0cmljdGlvbnNcIjoge30sXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuRmlsdGVyUmVzdHJpY3Rpb25zXCI6IHt9XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHRcdGFmdGVyQWxsKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBub24gcHJvcGVydHlcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRjb25zdCBvTWV0YU1vZGVsTW9jayA9IG5ldyBNb2NrTWV0YU1vZGVsKCk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0fSk7XG5cdFx0XHRvTW9ja0NvbnRleHQuZ2V0UGF0aC5tb2NrUmV0dXJuVmFsdWUoXCIvU2FsZXNPcmRlck1hbmFnZS8kS2V5XCIpO1xuXHRcdFx0bGV0IGFQcm9wZXJ0aWVzOiBbXSA9IFtdO1xuXHRcdFx0Q2hhcnREZWxlZ2F0ZS5faGFuZGxlUHJvcGVydHkuY2FsbChvTW9ja0NvbnRleHQsIG1vY2tNZGNDaGFydCwgbUVudGl0eVNldEFubm90YXRpb25zLCB7fSwge30sIGFQcm9wZXJ0aWVzLCBcIlwiKTtcblx0XHRcdGV4cGVjdChhUHJvcGVydGllcykudG9FcXVhbChbXSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIF9oYW5kbGVQcm9wZXJ0eSBmb3IgYWdncmVnYXRhYmxlIHByb3BlcnR5IHBhcnQgb2YgYXBwbHlzdXBwb3J0ZWRcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBtb2NrTWRjQ2hhcnQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcIkdyb3VwYWJsZVByb3BlcnRpZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIiRQcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdcIik7XG5cdFx0XHRjb25zdCBvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUgPSBqZXN0LnNweU9uKENoYXJ0RGVsZWdhdGUsIFwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGVcIik7XG5cdFx0XHRjb25zdCBhQWdncmVnYXRlUHJvcGVydGllczogYW55ID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwibWluUHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwicHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwibGFiZWxcIjogXCJNaW5pbWFsIE5ldCBBbW91bnRcIixcblx0XHRcdFx0XHRcInNvcnRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJmaWx0ZXJhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJncm91cGFibGVcIjogZmFsc2UsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImFnZ3JlZ2F0aW9uTWV0aG9kXCI6IFwibWluXCIsXG5cdFx0XHRcdFx0XCJtYXhDb25kaXRpb25zXCI6IC0xLFxuXHRcdFx0XHRcdFwia2luZFwiOiBcIkFnZ3JlZ2F0YWJsZVwiLFxuXHRcdFx0XHRcdFwiYXZhaWxhYmxlUm9sZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMxXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMVwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMyXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMlwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMzXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgM1wiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcInJvbGVcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFwiZGF0YXBvaW50XCI6IG51bGxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwibmFtZVwiOiBcIm1heFByaWNpbmdcIixcblx0XHRcdFx0XHRcInByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcdFx0XHRcImxhYmVsXCI6IFwiTWF4aW1hbCBOZXQgQW1vdW50XCIsXG5cdFx0XHRcdFx0XCJzb3J0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZmlsdGVyYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZ3JvdXBhYmxlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFwiYWdncmVnYXRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1heFwiLFxuXHRcdFx0XHRcdFwibWF4Q29uZGl0aW9uc1wiOiAtMSxcblx0XHRcdFx0XHRcImtpbmRcIjogXCJBZ2dyZWdhdGFibGVcIixcblx0XHRcdFx0XHRcImF2YWlsYWJsZVJvbGVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDFcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMlwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDJcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzM1wiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDNcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJyb2xlXCI6IFwiYXhpczFcIixcblx0XHRcdFx0XHRcImRhdGFwb2ludFwiOiBudWxsXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGFBZ2dyZWdhdGVQcm9wZXJ0aWVzO1xuXHRcdFx0fSk7XG5cdFx0XHRsZXQgYVByb3BlcnRpZXM6IFtdID0gW107XG5cdFx0XHRDaGFydERlbGVnYXRlLl9oYW5kbGVQcm9wZXJ0eS5jYWxsKG9Nb2NrQ29udGV4dCwgbW9ja01kY0NoYXJ0LCBtRW50aXR5U2V0QW5ub3RhdGlvbnMsIHt9LCB7fSwgYVByb3BlcnRpZXMsIFwiXCIpO1xuXHRcdFx0ZXhwZWN0KGFQcm9wZXJ0aWVzKS50b0VxdWFsKGFBZ2dyZWdhdGVQcm9wZXJ0aWVzKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBncm91cGFibGUgcHJvcGVydHkgcGFydCBvZiBhcHBseXN1cHBvcnRlZFwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG9WYWx1ZXNbXCJAc2FwdWkubmFtZVwiXSA9IFwiU2FsZXNPcmRlclwiO1xuXHRcdFx0Y29uc3Qgb01ldGFNb2RlbE1vY2sgPSBuZXcgTW9ja01ldGFNb2RlbChvVmFsdWVzKTtcblx0XHRcdGxldCBvTW9ja0NvbnRleHQgPSB7XG5cdFx0XHRcdGdldE1vZGVsOiBqZXN0LmZuKCgpID0+IG9NZXRhTW9kZWxNb2NrKSxcblx0XHRcdFx0Z2V0UGF0aDogamVzdC5mbigpXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgb01vY2tQYXJzZUN1c3RvbURhdGEgPSBqZXN0LnNweU9uKENvbW1vbkhlbHBlciwgXCJwYXJzZUN1c3RvbURhdGFcIik7XG5cdFx0XHRvTW9ja1BhcnNlQ3VzdG9tRGF0YS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXBwbHlTdXBwb3J0ZWRUeXBlXCIsXG5cdFx0XHRcdFx0XCJBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCIkVHlwZVwiOiBcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5BZ2dyZWdhdGFibGVQcm9wZXJ0eVR5cGVcIixcblx0XHRcdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFwiR3JvdXBhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIlNhbGVzT3JkZXJcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdFx0b01vY2tDb250ZXh0LmdldFBhdGgubW9ja1JldHVyblZhbHVlKFwiL1NhbGVzT3JkZXJNYW5hZ2UvU2FsZXNPcmRlclwiKTtcblx0XHRcdGNvbnN0IGFHcm91cGFibGVQcm9wZXJ0aWVzOiBhbnkgPSBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcIm5hbWVcIjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdFx0XCJwcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdFx0XCJsYWJlbFwiOiBcIlNhbGVzIE9yZGVyXCIsXG5cdFx0XHRcdFx0XCJzb3J0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZmlsdGVyYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZ3JvdXBhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGFibGVcIjogZmFsc2UsXG5cdFx0XHRcdFx0XCJtYXhDb25kaXRpb25zXCI6IC0xLFxuXHRcdFx0XHRcdFwic29ydEtleVwiOiBcIlNhbGVzT3JkZXJcIixcblx0XHRcdFx0XHRcImtpbmRcIjogXCJHcm91cGFibGVcIixcblx0XHRcdFx0XHRcImF2YWlsYWJsZVJvbGVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJjYXRlZ29yeVwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJDYXRlZ29yeVwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImNhdGVnb3J5MlwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJDYXRlZ29yeSAyXCJcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwia2V5XCI6IFwic2VyaWVzXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIlNlcmllc1wiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcInJvbGVcIjogXCJjYXRlZ29yeVwiLFxuXHRcdFx0XHRcdFwiY3JpdGljYWxpdHlcIjogXCJQb3NpdGl2ZVwiLFxuXHRcdFx0XHRcdFwidGV4dFByb3BlcnR5XCI6IFwiU2FsZXNPcmRlclRleHRcIlxuXHRcdFx0XHR9XG5cdFx0XHRdO1xuXHRcdFx0bGV0IGFQcm9wZXJ0aWVzOiBhbnkgPSBbXTtcblx0XHRcdENoYXJ0RGVsZWdhdGUuX2hhbmRsZVByb3BlcnR5LmNhbGwob01vY2tDb250ZXh0LCBtb2NrTWRjQ2hhcnQsIG1FbnRpdHlTZXRBbm5vdGF0aW9ucywge30sIHt9LCBhUHJvcGVydGllcywgXCJQb3NpdGl2ZVwiKTtcblx0XHRcdGV4cGVjdChKU09OLnN0cmluZ2lmeShhUHJvcGVydGllc1swXSkpLnRvRXF1YWwoSlNPTi5zdHJpbmdpZnkoYUdyb3VwYWJsZVByb3BlcnRpZXNbMF0pKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBhZ2dyZWdhdGFibGUgcHJvcGVydHkgcGFydCBvZiBwcm9wZXJ0eSBsZXZlbCBhbm5vdGF0aW9uc1wiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG9WYWx1ZXNbXCJAc2FwdWkubmFtZVwiXSA9IFwiTmV0UHJpY2luZ1wiO1xuXHRcdFx0b1ZhbHVlc1tcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdAXCJdID0ge1xuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5TdXBwb3J0ZWRBZ2dyZWdhdGlvbk1ldGhvZHNcIjogW1wibWluXCIsIFwibWF4XCJdLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuUmVjb21tZW5kZWRBZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1heFwiLFxuXHRcdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxcIjogXCJOZXQgUHJpY2luZ1wiXG5cdFx0XHR9IGFzIGFueTtcblx0XHRcdGNvbnN0IG9NZXRhTW9kZWxNb2NrID0gbmV3IE1vY2tNZXRhTW9kZWwob1ZhbHVlcyk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdcIik7XG5cdFx0XHRvVmFsdWVzW1wiQHNhcHVpLm5hbWVcIl0gPSBcIk5ldFByaWNpbmdcIjtcblx0XHRcdG9WYWx1ZXNbXCIvU2FsZXNPcmRlck1hbmFnZS9OZXRQcmljaW5nQFwiXSA9IHtcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFnZ3JlZ2F0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuU3VwcG9ydGVkQWdncmVnYXRpb25NZXRob2RzXCI6IFtcIm1pblwiLCBcIm1heFwiXSxcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLlJlY29tbWVuZGVkQWdncmVnYXRpb25NZXRob2RcIjogXCJtYXhcIixcblx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiTmV0IFByaWNpbmdcIlxuXHRcdFx0fSBhcyBhbnk7XG5cdFx0XHRjb25zdCBvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUgPSBqZXN0LnNweU9uKENoYXJ0RGVsZWdhdGUsIFwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGVcIik7XG5cdFx0XHRjb25zdCBhQWdncmVnYXRlUHJvcGVydGllczogYW55ID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwibWluUHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwicHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwibGFiZWxcIjogXCJNaW5pbWFsIE5ldCBBbW91bnRcIixcblx0XHRcdFx0XHRcInNvcnRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJmaWx0ZXJhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJncm91cGFibGVcIjogZmFsc2UsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImFnZ3JlZ2F0aW9uTWV0aG9kXCI6IFwibWluXCIsXG5cdFx0XHRcdFx0XCJtYXhDb25kaXRpb25zXCI6IC0xLFxuXHRcdFx0XHRcdFwia2luZFwiOiBcIkFnZ3JlZ2F0YWJsZVwiLFxuXHRcdFx0XHRcdFwiYXZhaWxhYmxlUm9sZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMxXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMVwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMyXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMlwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMzXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgM1wiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcInJvbGVcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFwiZGF0YXBvaW50XCI6IG51bGxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwibmFtZVwiOiBcIm1heFByaWNpbmdcIixcblx0XHRcdFx0XHRcInByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcdFx0XHRcImxhYmVsXCI6IFwiTWF4aW1hbCBOZXQgQW1vdW50XCIsXG5cdFx0XHRcdFx0XCJzb3J0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZmlsdGVyYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZ3JvdXBhYmxlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFwiYWdncmVnYXRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1heFwiLFxuXHRcdFx0XHRcdFwibWF4Q29uZGl0aW9uc1wiOiAtMSxcblx0XHRcdFx0XHRcImtpbmRcIjogXCJBZ2dyZWdhdGFibGVcIixcblx0XHRcdFx0XHRcImF2YWlsYWJsZVJvbGVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDFcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMlwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDJcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzM1wiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDNcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJyb2xlXCI6IFwiYXhpczFcIixcblx0XHRcdFx0XHRcImRhdGFwb2ludFwiOiBudWxsXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGFBZ2dyZWdhdGVQcm9wZXJ0aWVzO1xuXHRcdFx0fSk7XG5cdFx0XHRsZXQgYVByb3BlcnRpZXM6IFtdID0gW107XG5cdFx0XHRDaGFydERlbGVnYXRlLl9oYW5kbGVQcm9wZXJ0eS5jYWxsKG9Nb2NrQ29udGV4dCwgbW9ja01kY0NoYXJ0LCBtRW50aXR5U2V0QW5ub3RhdGlvbnMsIHt9LCB7fSwgYVByb3BlcnRpZXMsIFwiXCIpO1xuXHRcdFx0ZXhwZWN0KGFQcm9wZXJ0aWVzKS50b0VxdWFsKGFBZ2dyZWdhdGVQcm9wZXJ0aWVzKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBncm91cGFibGUgcHJvcGVydHkgcGFydCBvZiBwcm9wZXJ0eSBsZXZlbCBhbm5vdGF0aW9uc1wiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG9WYWx1ZXNbXCJAc2FwdWkubmFtZVwiXSA9IFwiU2FsZXNPcmRlclwiO1xuXHRcdFx0b1ZhbHVlc1tcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJAXCJdID0ge1xuXHRcdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dFwiOiB7XG5cdFx0XHRcdFx0XCIkUGF0aFwiOiBcIlNhbGVzT3JkZXJUZXh0XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiU2FsZXMgT3JkZXJcIixcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkdyb3VwYWJsZVwiOiB0cnVlXG5cdFx0XHR9IGFzIGFueTtcblx0XHRcdGNvbnN0IG9NZXRhTW9kZWxNb2NrID0gbmV3IE1vY2tNZXRhTW9kZWwob1ZhbHVlcyk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcIkdyb3VwYWJsZVByb3BlcnRpZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIiRQcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJcIik7XG5cdFx0XHRjb25zdCBhR3JvdXBhYmxlUHJvcGVydGllczogYW55ID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwiU2FsZXNPcmRlclwiLFxuXHRcdFx0XHRcdFwicHJvcGVydHlQYXRoXCI6IFwiU2FsZXNPcmRlclwiLFxuXHRcdFx0XHRcdFwibGFiZWxcIjogXCJTYWxlcyBPcmRlclwiLFxuXHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImZpbHRlcmFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImdyb3VwYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiYWdncmVnYXRhYmxlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFwibWF4Q29uZGl0aW9uc1wiOiAtMSxcblx0XHRcdFx0XHRcInNvcnRLZXlcIjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdFx0XCJraW5kXCI6IFwiR3JvdXBhYmxlXCIsXG5cdFx0XHRcdFx0XCJhdmFpbGFibGVSb2xlc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwia2V5XCI6IFwiY2F0ZWdvcnlcIixcblx0XHRcdFx0XHRcdFx0XCJ0ZXh0XCI6IFwiQ2F0ZWdvcnlcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJjYXRlZ29yeTJcIixcblx0XHRcdFx0XHRcdFx0XCJ0ZXh0XCI6IFwiQ2F0ZWdvcnkgMlwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcInNlcmllc1wiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJTZXJpZXNcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJyb2xlXCI6IFwiY2F0ZWdvcnlcIixcblx0XHRcdFx0XHRcImNyaXRpY2FsaXR5XCI6IFwiTmVnYXRpdmVcIixcblx0XHRcdFx0XHRcInRleHRQcm9wZXJ0eVwiOiBcIlNhbGVzT3JkZXJUZXh0XCJcblx0XHRcdFx0fVxuXHRcdFx0XTtcblx0XHRcdGxldCBhUHJvcGVydGllczogYW55ID0gW107XG5cdFx0XHRDaGFydERlbGVnYXRlLl9oYW5kbGVQcm9wZXJ0eS5jYWxsKG9Nb2NrQ29udGV4dCwgbW9ja01kY0NoYXJ0LCBtRW50aXR5U2V0QW5ub3RhdGlvbnMsIHt9LCB7fSwgYVByb3BlcnRpZXMsIFwiTmVnYXRpdmVcIik7XG5cdFx0XHRleHBlY3QoSlNPTi5zdHJpbmdpZnkoYVByb3BlcnRpZXNbMF0pKS50b0VxdWFsKEpTT04uc3RyaW5naWZ5KGFHcm91cGFibGVQcm9wZXJ0aWVzWzBdKSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIF9oYW5kbGVQcm9wZXJ0eSB3aGljaCBpcyBuZWl0aGVyIGdyb3VwYWJsZSBub3IgYWdncmVnYXRhYmxlXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0b1ZhbHVlc1tcIkBzYXB1aS5uYW1lXCJdID0gXCJTb2xkVG9QYXJ0eVwiO1xuXHRcdFx0bGV0IG9NZXRhTW9kZWxNb2NrID0gbmV3IE1vY2tNZXRhTW9kZWwob1ZhbHVlcyk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcIkdyb3VwYWJsZVByb3BlcnRpZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIiRQcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL1NvbGRUb1BhcnR5XCIpO1xuXHRcdFx0bGV0IGFQcm9wZXJ0aWVzOiBhbnkgPSBbXTtcblx0XHRcdENoYXJ0RGVsZWdhdGUuX2hhbmRsZVByb3BlcnR5LmNhbGwob01vY2tDb250ZXh0LCBtb2NrTWRjQ2hhcnQsIG1FbnRpdHlTZXRBbm5vdGF0aW9ucywge30sIHt9LCBhUHJvcGVydGllcywgXCJcIik7XG5cdFx0XHRleHBlY3QoYVByb3BlcnRpZXMpLnRvRXF1YWwoW10pO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIl9jcmVhdGVQcm9wZXJ0eUluZm9zXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGxldCBvTW9ja1JlcXVlc3RPYmplY3Q6IGFueTtcblx0XHRsZXQgb01vY2tIYW5kbGVQcm9wZXJ0eTogYW55O1xuXHRcdGxldCBvTW9ja01vZGVsOiBhbnk7XG5cdFx0bGV0IG9Nb2NrTG9nRXJyb3I6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdFx0b01vY2tNb2RlbCA9IG1vY2tNZGNDaGFydC5nZXRNb2RlbCgpO1xuXHRcdFx0Y29uc3Qgb01vY2tNZXRhTW9kZWwgPSBvTW9ja01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0b01vY2tSZXF1ZXN0T2JqZWN0ID0gamVzdC5zcHlPbihvTW9ja01ldGFNb2RlbCwgXCJyZXF1ZXN0T2JqZWN0XCIpO1xuXHRcdFx0b01vY2tSZXF1ZXN0T2JqZWN0Lm1vY2tJbXBsZW1lbnRhdGlvbigoc1Byb3A6IGFueSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG5cdFx0XHRcdFx0aWYgKHNQcm9wID09PSBcIi9TYWxlc09yZGVyTWFuYWdlL1wiKSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKHtcblx0XHRcdFx0XHRcdFx0XCIka2luZFwiOiBcIkVudGl0eVR5cGVcIixcblx0XHRcdFx0XHRcdFx0XCIkS2V5XCI6IFtcIklkXCJdLFxuXHRcdFx0XHRcdFx0XHRcIklkXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcIiRraW5kXCI6IFwiUHJvcGVydHlcIixcblx0XHRcdFx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiRWRtLkludDMyXCIsXG5cdFx0XHRcdFx0XHRcdFx0XCIkTnVsbGFibGVcIjogZmFsc2Vcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XCJSZWdpb25cIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJGtpbmRcIjogXCJQcm9wZXJ0eVwiLFxuXHRcdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJFZG0uU3RyaW5nXCJcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XCJTYWxlc0Ftb3VudFwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0XCIka2luZFwiOiBcIlByb3BlcnR5XCIsXG5cdFx0XHRcdFx0XHRcdFx0XCIkVHlwZVwiOiBcIkVkbS5EZWNpbWFsXCIsXG5cdFx0XHRcdFx0XHRcdFx0XCIkUHJlY2lzaW9uXCI6IDE1LFxuXHRcdFx0XHRcdFx0XHRcdFwiJFNjYWxlXCI6IDNcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XCJOZXRQcmljaW5nXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcIiRraW5kXCI6IFwiUHJvcGVydHlcIixcblx0XHRcdFx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiRWRtLkRlY2ltYWxcIixcblx0XHRcdFx0XHRcdFx0XHRcIiRQcmVjaXNpb25cIjogMTUsXG5cdFx0XHRcdFx0XHRcdFx0XCIkU2NhbGVcIjogM1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh7XG5cdFx0XHRcdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5DdXN0b21BZ2dyZWdhdGUjU2FsZXNBbW91bnRcIjogXCJFZG0uRGVjaW1hbFwiLFxuXHRcdFx0XHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQ3VzdG9tQWdncmVnYXRlI1NhbGVzTnVtYmVyXCI6IFwiRWRtLkRlY2ltYWxcIixcblx0XHRcdFx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFwiR3JvdXBhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5hbWVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IFwiUmVnaW9uXCJcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIlNhbGVzQW1vdW50XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCIkVHlwZVwiOiBcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5BZ2dyZWdhdGFibGVQcm9wZXJ0eVR5cGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHNFbnRpdHlTZXQgPSBcIlNhbGVzT3JkZXJNYW5hZ2VcIjtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKHNQcm9wID0+IHtcblx0XHRcdFx0aWYgKHNQcm9wID09PSBcIkN1c3RvbUFnZ3JlZ2F0ZXNcIikge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcIlNhbGVzQW1vdW50XCI6IHtcblx0XHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwiU2FsZXNBbW91bnRcIixcblx0XHRcdFx0XHRcdFx0XCJsYWJlbFwiOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFNhbGVzQW1vdW50KVwiLFxuXHRcdFx0XHRcdFx0XHRcInNvcnRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFwic29ydE9yZGVyXCI6IFwiYm90aFwiLFxuXHRcdFx0XHRcdFx0XHRcImNvbnRleHREZWZpbmluZ1Byb3BlcnR5XCI6IFtdXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XCJtaW5QcmljaW5nXCI6IHtcblx0XHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwibWluUHJpY2luZ1wiLFxuXHRcdFx0XHRcdFx0XHRcInByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcdFx0XHRcdFx0XCJhZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1pblwiLFxuXHRcdFx0XHRcdFx0XHRcImxhYmVsXCI6IFwiTWluaW1hbCBOZXQgQW1vdW50XCIsXG5cdFx0XHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XCJzb3J0T3JkZXJcIjogXCJib3RoXCIsXG5cdFx0XHRcdFx0XHRcdFwiY3VzdG9tXCI6IGZhbHNlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBvTW9ja0ZldGNoQ3JpdGljYWxpdHkgPSBqZXN0LnNweU9uKE9EYXRhTWV0YU1vZGVsVXRpbCwgXCJmZXRjaENyaXRpY2FsaXR5XCIpO1xuXHRcdFx0b01vY2tGZXRjaENyaXRpY2FsaXR5Lm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblx0XHRcdFx0XHRyZXNvbHZlKHt9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrTG9nRXJyb3IgPSBqZXN0LnNweU9uKExvZywgXCJlcnJvclwiKTtcblx0XHRcdG9Nb2NrTG9nRXJyb3IubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0fSk7XG5cdFx0XHRvTW9ja0hhbmRsZVByb3BlcnR5ID0gamVzdC5zcHlPbihDaGFydERlbGVnYXRlLCBcIl9oYW5kbGVQcm9wZXJ0eVwiKTtcblx0XHRcdG9Nb2NrSGFuZGxlUHJvcGVydHkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXHRcdFx0XHRcdHJlc29sdmUoe30pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHRcdGFmdGVyQWxsKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwiY2hlY2sgX2NyZWF0ZVByb3BlcnR5SW5mb3MgZm9yIHNhbWUgZGltZW5zaW9uIGFuZCBtZWFzdXJlXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEl0ZW1zLm1vY2tSZXR1cm5WYWx1ZShbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRnZXRLZXk6IGplc3QuZm4oKCkgPT4gXCJTYWxlc0Ftb3VudFwiKSxcblx0XHRcdFx0XHRpc0E6IGplc3QuZm4oc1Byb3AgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHNQcm9wID09PSBcInNhcC51aS5tZGMuY2hhcnQuRGltZW5zaW9uSXRlbVwiKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRnZXRLZXk6IGplc3QuZm4oKCkgPT4gXCJTYWxlc0Ftb3VudFwiKSxcblx0XHRcdFx0XHRpc0E6IGplc3QuZm4oc1Byb3AgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHNQcm9wID09PSBcInNhcC51aS5tZGMuY2hhcnQuTWVhc3VyZUl0ZW1cIikge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9XG5cdFx0XHRdKTtcblx0XHRcdGF3YWl0IENoYXJ0RGVsZWdhdGUuX2NyZWF0ZVByb3BlcnR5SW5mb3MobW9ja01kY0NoYXJ0LCBvTW9ja01vZGVsKTtcblx0XHRcdGV4cGVjdChvTW9ja0xvZ0Vycm9yLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlKDEpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrSGFuZGxlUHJvcGVydHkubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoNCk7XG5cdFx0fSk7XG5cdFx0aXQoXCJjaGVjayBfY3JlYXRlUHJvcGVydHlJbmZvcyBmb3IgZGlmZmVyZW50IGRpbWVuc2lvbiBhbmQgbWVhc3VyZVwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG1vY2tNZGNDaGFydC5nZXRJdGVtcy5tb2NrUmV0dXJuVmFsdWUoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Z2V0S2V5OiBqZXN0LmZuKCgpID0+IFwiUmVnaW9uXCIpLFxuXHRcdFx0XHRcdGlzQTogamVzdC5mbihzUHJvcCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoc1Byb3AgPT09IFwic2FwLnVpLm1kYy5jaGFydC5EaW1lbnNpb25JdGVtXCIpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGdldEtleTogamVzdC5mbigoKSA9PiBcIlNhbGVzQW1vdW50XCIpLFxuXHRcdFx0XHRcdGlzQTogamVzdC5mbihzUHJvcCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoc1Byb3AgPT09IFwic2FwLnVpLm1kYy5jaGFydC5NZWFzdXJlSXRlbVwiKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdFx0YXdhaXQgQ2hhcnREZWxlZ2F0ZS5fY3JlYXRlUHJvcGVydHlJbmZvcyhtb2NrTWRjQ2hhcnQsIG9Nb2NrTW9kZWwpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrSGFuZGxlUHJvcGVydHkubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoNCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZmV0Y2hQcm9wZXJ0aWVzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGxldCBvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3M6IGFueTtcblx0XHRsZXQgb01vY2tNRENDaGFydERhdGE6IGFueTtcblx0XHRsZXQgb01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2U6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdFx0b01vY2tDcmVhdGVQcm9wZXJ0eUluZm9zID0gamVzdC5zcHlPbihDaGFydERlbGVnYXRlLCBcIl9jcmVhdGVQcm9wZXJ0eUluZm9zXCIpO1xuXHRcdFx0b01vY2tDcmVhdGVQcm9wZXJ0eUluZm9zLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblx0XHRcdFx0XHRyZXNvbHZlKFtdKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlID0gamVzdC5zcHlPbihtb2NrTWRjQ2hhcnQsIFwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlXCIpO1xuXHRcdFx0b01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UubW9ja0ltcGxlbWVudGF0aW9uKChvYmoxOiBhbnksIGZuOiBhbnksIG9DaGFydERlbGVnYXRlOiBhbnkpID0+IHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Nb2NrRXZlbnQgPSB7XG5cdFx0XHRcdFx0XHRnZXRTb3VyY2U6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge307XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRjb25zdCBvTW9ja0RhdGEgPSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlcjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGZuLmNhbGwoQ2hhcnREZWxlZ2F0ZSwgb01vY2tFdmVudCwgb01vY2tEYXRhKTtcblx0XHRcdFx0XHRyZXNvbHZlKHt9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrTURDQ2hhcnREYXRhID0gamVzdC5zcHlPbihtb2NrTWRjQ2hhcnQsIFwiZGF0YVwiKTtcblx0XHR9KTtcblx0XHRhZnRlckFsbCgoKSA9PiB7XG5cdFx0XHRqZXN0LmNsZWFyQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcImNoZWNrIGZldGNoUHJvcGVydGllcyB3aGVuIG1vZGVsIGlzIG5vdCBhdmFpbGFibGVcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHRjb25zdCBvTW9ja0dldE1vZGVsRm9yQ2hhcnREZWxlZ2F0ZSA9IGplc3Quc3B5T24oQ2hhcnREZWxlZ2F0ZSwgXCJfZ2V0TW9kZWxcIik7XG5cdFx0XHRvTW9ja0dldE1vZGVsRm9yQ2hhcnREZWxlZ2F0ZS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gXCJcIjtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgYVByb3BzID0gQ2hhcnREZWxlZ2F0ZS5mZXRjaFByb3BlcnRpZXMobW9ja01kY0NoYXJ0KS50aGVuKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRleHBlY3QoYVByb3BzKS50b0VxdWFsKFtdKTtcblx0XHRcdFx0ZXhwZWN0KG9Nb2NrTURDQ2hhcnREYXRhKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIkbWRjQ2hhcnRQcm9wZXJ0eUluZm9cIiwgW10pO1xuXHRcdFx0XHRleHBlY3Qob01vY2tDcmVhdGVQcm9wZXJ0eUluZm9zLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlKDEpO1xuXHRcdFx0XHRleHBlY3Qob01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoMSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgZmV0Y2hQcm9wZXJ0aWVzIHdoZW4gbW9kZWwgaXMgYXZhaWxhYmxlXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29uc3Qgb01vY2tHZXRNb2RlbEZvckNoYXJ0RGVsZWdhdGUgPSBqZXN0LnNweU9uKENoYXJ0RGVsZWdhdGUsIFwiX2dldE1vZGVsXCIpO1xuXHRcdFx0b01vY2tHZXRNb2RlbEZvckNoYXJ0RGVsZWdhdGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGFQcm9wcyA9IGF3YWl0IENoYXJ0RGVsZWdhdGUuZmV0Y2hQcm9wZXJ0aWVzKG1vY2tNZGNDaGFydCk7XG5cblx0XHRcdGV4cGVjdChhUHJvcHMpLnRvRXF1YWwoW10pO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrTURDQ2hhcnREYXRhKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIkbWRjQ2hhcnRQcm9wZXJ0eUluZm9cIiwgW10pO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrQ3JlYXRlUHJvcGVydHlJbmZvcy5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZSgxKTtcblx0XHRcdGV4cGVjdChvTW9ja0F0dGFjaE1vZGVsQ29udGV4dENoYW5nZS5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZSgwKTtcblx0XHR9KTtcblx0fSk7XG59KTtcbiJdfQ==
|
|
844
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0RGVsZWdhdGUuc3BlYy50cyJdLCJuYW1lcyI6WyJzcHlSZXF1ZXN0cyIsImplc3QiLCJmbiIsImRlc2NyaWJlIiwibW9ja01vZGVsIiwiTW9ja01vZGVsIiwib1ZhbHVlcyIsIiRraW5kIiwibW9ja01ldGFNb2RlbCIsIk1vY2tNZXRhTW9kZWwiLCJzRW50aXR5U2V0Iiwic1RhcmdldENvbGxlY3Rpb25QYXRoIiwic2V0TWV0YU1vZGVsIiwibW9ja01kY0NoYXJ0IiwiZ2V0RGVsZWdhdGUiLCJnZXRJdGVtcyIsImdldE1vZGVsIiwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlIiwiZGF0YSIsInNQcm9wIiwiQ2hhcnREZWxlZ2F0ZSIsIl9nZXRMYXlvdXRPcHRpb25zRm9yVHlwZSIsImJlZm9yZUVhY2giLCJjbGVhckFsbE1vY2tzIiwib01vY2tCaW5kaW5nSW5mb0Zyb21TdGF0ZSIsInNweU9uIiwibW9ja0ltcGxlbWVudGF0aW9uIiwiYWZ0ZXJBbGwiLCJpdCIsIm1vY2tSZXR1cm5WYWx1ZSIsInBheWxvYWQiLCJjb250ZXh0UGF0aCIsInBhcmFtZXRlcnMiLCIkJGdyb3VwSWQiLCJleHBlY3QiLCJfZ2V0QmluZGluZ0luZm8iLCJ0b01hdGNoU25hcHNob3QiLCJvUHJvcGVydHlBbm5vdGF0aW9ucyIsIm9GaWx0ZXJSZXN0cmljdGlvbnNJbmZvIiwiZmlsdGVyYWJsZSIsInByb3BlcnR5SW5mbyIsIm9Tb3J0UmVzdHJpY3Rpb25zSW5mbyIsInNvcnRhYmxlIiwibUtub3duQWdncmVnYXRhYmxlUHJvcHMiLCJza2V5IiwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUiLCJtQ3VzdG9tQWdncmVnYXRlcyIsIm1FbnRpdHlTZXRBbm5vdGF0aW9ucyIsIm9NZXRhTW9kZWxNb2NrIiwib01vY2tDb250ZXh0IiwiZ2V0UGF0aCIsIm9Nb2NrUGFyc2VDdXN0b21EYXRhIiwiQ29tbW9uSGVscGVyIiwiYVByb3BlcnRpZXMiLCJfaGFuZGxlUHJvcGVydHkiLCJjYWxsIiwidG9FcXVhbCIsImdldE1ldGFNb2RlbCIsIm9Nb2NrQ3JlYXRlUHJvcGVydHlJbmZvc0ZvckFnZ3JlZ2F0YWJsZSIsImFBZ2dyZWdhdGVQcm9wZXJ0aWVzIiwiYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJKU09OIiwic3RyaW5naWZ5Iiwib01vY2tSZXF1ZXN0T2JqZWN0Iiwib01vY2tIYW5kbGVQcm9wZXJ0eSIsIm9Nb2NrTW9kZWwiLCJvTW9ja0xvZ0Vycm9yIiwib01vY2tNZXRhTW9kZWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIm9Nb2NrRmV0Y2hDcml0aWNhbGl0eSIsIk9EYXRhTWV0YU1vZGVsVXRpbCIsIkxvZyIsImdldEtleSIsImlzQSIsIl9jcmVhdGVQcm9wZXJ0eUluZm9zIiwibW9jayIsImNhbGxzIiwibGVuZ3RoIiwidG9CZSIsIm9Nb2NrQ3JlYXRlUHJvcGVydHlJbmZvcyIsIm9Nb2NrTURDQ2hhcnREYXRhIiwib01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UiLCJvYmoxIiwib0NoYXJ0RGVsZWdhdGUiLCJvTW9ja0V2ZW50IiwiZ2V0U291cmNlIiwib01vY2tEYXRhIiwicmVzb2x2ZXIiLCJvTW9ja0dldE1vZGVsRm9yQ2hhcnREZWxlZ2F0ZSIsImFQcm9wcyIsImZldGNoUHJvcGVydGllcyIsInRoZW4iLCJ0b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFDQSxNQUFNQSxXQUFXLEdBQUdDLElBQUksQ0FBQ0MsRUFBTCxFQUFwQjtBQUNBQyxFQUFBQSxRQUFRLENBQUMsZUFBRCxFQUFrQixZQUFXO0FBQ3BDLFFBQU1DLFNBQVMsR0FBRyxJQUFJQyxTQUFKLEVBQWxCO0FBQ0EsUUFBTUMsT0FBTyxHQUFHO0FBQ2YsZ0NBQTBCO0FBQ3pCQyxRQUFBQSxLQUFLLEVBQUU7QUFEa0IsT0FEWDtBQUlmLHNDQUFnQztBQUMvQkEsUUFBQUEsS0FBSyxFQUFFO0FBRHdCLE9BSmpCO0FBT2Ysc0NBQWdDO0FBQy9CQSxRQUFBQSxLQUFLLEVBQUU7QUFEd0IsT0FQakI7QUFVZix1Q0FBaUM7QUFDaENBLFFBQUFBLEtBQUssRUFBRTtBQUR5QixPQVZsQjtBQWFmLGlEQUEyQyxZQWI1QjtBQWNmLGlEQUEyQyxZQWQ1QjtBQWVmLGtEQUE0QyxhQWY3QjtBQWdCZix1Q0FBaUM7QUFDaEMsaURBQXlDO0FBRFQsT0FoQmxCO0FBbUJmLHVDQUFpQztBQUNoQyxnREFBd0M7QUFDdkMsbUJBQVM7QUFEOEIsU0FEUjtBQUloQyxpREFBeUM7QUFKVCxPQW5CbEI7QUF5QmYsd0NBQWtDO0FBQ2pDLGlEQUF5QztBQURSLE9BekJuQjtBQTRCZixxQkFBZSxZQTVCQTtBQTZCZix1Q0FBaUMsb0JBN0JsQjtBQThCZixpQ0FBMkI7QUE5QlosS0FBaEI7QUFnQ0EsUUFBTUMsYUFBYSxHQUFHLElBQUlDLGFBQUosQ0FBa0JILE9BQWxCLENBQXRCO0FBQ0EsUUFBSUksVUFBVSxHQUFHLEVBQWpCO0FBQUEsUUFDQ0MscUJBQXFCLEdBQUcsRUFEekI7QUFFQVAsSUFBQUEsU0FBUyxDQUFDUSxZQUFWLENBQXVCSixhQUF2QjtBQUNBLFFBQU1LLFlBQVksR0FBRztBQUNwQkMsTUFBQUEsV0FBVyxFQUFFYixJQUFJLENBQUNDLEVBQUwsRUFETztBQUVwQmEsTUFBQUEsUUFBUSxFQUFFZCxJQUFJLENBQUNDLEVBQUwsRUFGVTtBQUdwQmMsTUFBQUEsUUFBUSxFQUFFZixJQUFJLENBQUNDLEVBQUwsQ0FBUTtBQUFBLGVBQU1FLFNBQU47QUFBQSxPQUFSLENBSFU7QUFJcEJhLE1BQUFBLHdCQUF3QixFQUFFaEIsSUFBSSxDQUFDQyxFQUFMLEVBSk47QUFLcEJnQixNQUFBQSxJQUFJLEVBQUVqQixJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3RCLFlBQUlBLEtBQUssS0FBSyxXQUFkLEVBQTJCO0FBQzFCLGlCQUFPVCxVQUFQO0FBQ0EsU0FGRCxNQUVPLElBQUlTLEtBQUssS0FBSyxXQUFkLEVBQTJCO0FBQ2pDLGlCQUFPLGtCQUFQO0FBQ0EsU0FGTSxNQUVBLElBQUlBLEtBQUssS0FBSyxVQUFkLEVBQTBCO0FBQ2hDLGlCQUFPLFVBQVA7QUFDQSxTQUZNLE1BRUEsSUFBSUEsS0FBSyxLQUFLLHNCQUFkLEVBQXNDO0FBQzVDLGlCQUFPUixxQkFBUDtBQUNBLFNBRk0sTUFFQTtBQUNOLGlCQUFPLGdCQUFQO0FBQ0E7QUFDRCxPQVpLO0FBTGMsS0FBckI7QUFtQkFTLElBQUFBLGFBQWEsQ0FBQ0Msd0JBQWQsR0FBeUNwQixJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3pELFVBQUlBLEtBQUssS0FBSyxXQUFkLEVBQTJCO0FBQzFCLGVBQU8sQ0FDTjtBQUFFLGlCQUFPLFVBQVQ7QUFBcUIsa0JBQVE7QUFBN0IsU0FETSxFQUVOO0FBQUUsaUJBQU8sV0FBVDtBQUFzQixrQkFBUTtBQUE5QixTQUZNLEVBR047QUFBRSxpQkFBTyxRQUFUO0FBQW1CLGtCQUFRO0FBQTNCLFNBSE0sQ0FBUDtBQUtBLE9BTkQsTUFNTztBQUNOLFNBQ0M7QUFBRSxpQkFBTyxPQUFUO0FBQWtCLGtCQUFRO0FBQTFCLFNBREQsRUFFQztBQUFFLGlCQUFPLE9BQVQ7QUFBa0Isa0JBQVE7QUFBMUIsU0FGRCxFQUdDO0FBQUUsaUJBQU8sT0FBVDtBQUFrQixrQkFBUTtBQUExQixTQUhEO0FBS0E7QUFDRCxLQWR3QyxDQUF6QztBQWVBaEIsSUFBQUEsUUFBUSxDQUFDLGlCQUFELEVBQW9CLFlBQVc7QUFDdENtQixNQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNoQnJCLFFBQUFBLElBQUksQ0FBQ3NCLGFBQUw7QUFDQSxZQUFNQyx5QkFBeUIsR0FBR3ZCLElBQUksQ0FBQ3dCLEtBQUwsQ0FBV0wsYUFBWCxFQUEwQiwwQkFBMUIsQ0FBbEM7QUFDQUksUUFBQUEseUJBQXlCLENBQUNFLGtCQUExQixDQUE2QztBQUFBLGlCQUFNMUIsV0FBVyxFQUFqQjtBQUFBLFNBQTdDO0FBQ0EsT0FKUyxDQUFWO0FBS0EyQixNQUFBQSxRQUFRLENBQUMsWUFBTTtBQUNkMUIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRk8sQ0FBUjtBQUdBSyxNQUFBQSxFQUFFLENBQUMsbUVBQUQsRUFBc0UsWUFBVztBQUNsRmpCLFFBQUFBLHFCQUFxQixHQUFHLG1CQUF4QjtBQUNBRCxRQUFBQSxVQUFVLEdBQUcsa0JBQWI7QUFDQUcsUUFBQUEsWUFBWSxDQUFDQyxXQUFiLENBQXlCZSxlQUF6QixDQUF5QztBQUN4Q0MsVUFBQUEsT0FBTyxFQUFFO0FBQ1JDLFlBQUFBLFdBQVcsRUFBRSxtQkFETDtBQUVSQyxZQUFBQSxVQUFVLEVBQUU7QUFBRUMsY0FBQUEsU0FBUyxFQUFFO0FBQWI7QUFGSjtBQUQrQixTQUF6QztBQU1BQyxRQUFBQSxNQUFNLENBQUNkLGFBQWEsQ0FBQ2UsZUFBZCxDQUE4QnRCLFlBQTlCLENBQUQsQ0FBTixDQUFvRHVCLGVBQXBEO0FBQ0EsT0FWQyxDQUFGO0FBWUFSLE1BQUFBLEVBQUUsQ0FBQyx1RUFBRCxFQUEwRSxZQUFXO0FBQ3RGakIsUUFBQUEscUJBQXFCLEdBQUcseUJBQXhCO0FBQ0FELFFBQUFBLFVBQVUsR0FBRyxnQkFBYjtBQUNBRyxRQUFBQSxZQUFZLENBQUNDLFdBQWIsQ0FBeUJlLGVBQXpCLENBQXlDO0FBQ3hDQyxVQUFBQSxPQUFPLEVBQUU7QUFDUkMsWUFBQUEsV0FBVyxFQUFFLE9BREw7QUFFUkMsWUFBQUEsVUFBVSxFQUFFO0FBQUVDLGNBQUFBLFNBQVMsRUFBRTtBQUFiO0FBRko7QUFEK0IsU0FBekM7QUFNQUMsUUFBQUEsTUFBTSxDQUFDZCxhQUFhLENBQUNlLGVBQWQsQ0FBOEJ0QixZQUE5QixDQUFELENBQU4sQ0FBb0R1QixlQUFwRDtBQUNBLE9BVkMsQ0FBRjtBQVdBLEtBaENPLENBQVI7QUFrQ0FqQyxJQUFBQSxRQUFRLENBQUMscUNBQUQsRUFBd0MsWUFBVztBQUMxRG1CLE1BQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2hCckIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRlMsQ0FBVjtBQUdBSSxNQUFBQSxRQUFRLENBQUMsWUFBTTtBQUNkMUIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRk8sQ0FBUjtBQUdBSyxNQUFBQSxFQUFFLENBQUMsMkVBQUQsRUFBOEUsWUFBVztBQUMxRixZQUFNUyxvQkFBb0IsR0FBRztBQUM1QixvREFBMEMsSUFEZDtBQUU1QixtRUFBeUQsQ0FBQyxLQUFELEVBQVEsS0FBUixFQUFlLFNBQWYsRUFBMEIsS0FBMUIsQ0FGN0I7QUFHNUIsb0VBQTBELFNBSDlCO0FBSTVCLGdEQUFzQztBQUFFLHFCQUFTO0FBQVgsV0FKVjtBQUs1QixtREFBeUMsYUFMYjtBQU01QiwwREFBZ0Q7QUFDL0MscUJBQVMsc0NBRHNDO0FBRS9DLHFCQUFTO0FBQ1IsdUJBQVM7QUFERDtBQUZzQztBQU5wQixTQUE3QjtBQWFBLFlBQU1DLHVCQUF1QixHQUFHO0FBQy9CLHdCQUFjO0FBQ2JDLFlBQUFBLFVBQVUsRUFBRTtBQURDLFdBRGlCO0FBSS9CQyxVQUFBQSxZQUFZLEVBQUU7QUFKaUIsU0FBaEM7QUFNQSxZQUFNQyxxQkFBcUIsR0FBRztBQUM3Qix3QkFBYztBQUNiQyxZQUFBQSxRQUFRLEVBQUU7QUFERztBQURlLFNBQTlCO0FBS0EsWUFBTUMsdUJBQXVCLEdBQUc7QUFDL0Isd0JBQWM7QUFDYixtQkFBTztBQUNOLHNCQUFRLFlBREY7QUFFTix1QkFBUztBQUZILGFBRE07QUFLYixtQkFBTztBQUNOLHNCQUFRLFlBREY7QUFFTix1QkFBUztBQUZIO0FBTE07QUFEaUIsU0FBaEM7QUFZQSxZQUFNQyxJQUFJLEdBQUcsWUFBYjtBQUVBVixRQUFBQSxNQUFNLENBQ0xkLGFBQWEsQ0FBQ3lCLG1DQUFkLENBQ0NELElBREQsRUFFQ1Asb0JBRkQsRUFHQ0MsdUJBSEQsRUFJQ0cscUJBSkQsRUFLQ0UsdUJBTEQsRUFNQyxFQU5ELENBREssQ0FBTixDQVNFUCxlQVRGO0FBVUEsT0FqREMsQ0FBRjtBQW1EQVIsTUFBQUEsRUFBRSxDQUFDLGlFQUFELEVBQW9FLFlBQVc7QUFDaEYsWUFBTVMsb0JBQW9CLEdBQUc7QUFDNUIsd0RBQThDLElBRGxCO0FBRTVCLCtDQUFxQztBQUNwQywyQkFBZTtBQURxQixXQUZUO0FBSzVCLG1EQUF5QyxjQUxiO0FBTTVCLDBEQUFnRDtBQUMvQyxxQkFBUyxzQ0FEc0M7QUFFL0MscUJBQVM7QUFDUix1QkFBUztBQUREO0FBRnNDO0FBTnBCLFNBQTdCO0FBYUEsWUFBTUMsdUJBQXVCLEdBQUc7QUFDL0JFLFVBQUFBLFlBQVksRUFBRTtBQURpQixTQUFoQztBQUdBLFlBQU1DLHFCQUFxQixHQUFHO0FBQzdCRCxVQUFBQSxZQUFZLEVBQUU7QUFEZSxTQUE5QjtBQUdBLFlBQU1NLGlCQUFpQixHQUFHO0FBQ3pCLHlCQUFlO0FBQ2Qsb0JBQVEsYUFETTtBQUVkLHFCQUFTLGdDQUZLO0FBR2Qsd0JBQVksSUFIRTtBQUlkLHlCQUFhLE1BSkM7QUFLZCx1Q0FBMkI7QUFMYixXQURVO0FBUXpCLHNDQUE0QjtBQUMzQixvQkFBUSwwQkFEbUI7QUFFM0IscUJBQVMsNkNBRmtCO0FBRzNCLHdCQUFZLElBSGU7QUFJM0IseUJBQWEsTUFKYztBQUszQix1Q0FBMkI7QUFMQTtBQVJILFNBQTFCO0FBZ0JBLFlBQU1GLElBQUksR0FBRyxhQUFiO0FBQ0FWLFFBQUFBLE1BQU0sQ0FDTGQsYUFBYSxDQUFDeUIsbUNBQWQsQ0FDQ0QsSUFERCxFQUVDUCxvQkFGRCxFQUdDQyx1QkFIRCxFQUlDRyxxQkFKRCxFQUtDLEVBTEQsRUFNQ0ssaUJBTkQsQ0FESyxDQUFOLENBU0VWLGVBVEY7QUFVQSxPQS9DQyxDQUFGO0FBZ0RBLEtBMUdPLENBQVI7QUE0R0FqQyxJQUFBQSxRQUFRLENBQUMsaUJBQUQsRUFBb0IsWUFBVztBQUN0QyxVQUFJNEMscUJBQUo7QUFDQXpCLE1BQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2hCckIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBd0IsUUFBQUEscUJBQXFCLEdBQUc7QUFDdkIseURBQStDLEVBRHhCO0FBRXZCLDJEQUFpRDtBQUYxQixTQUF4QjtBQUlBLE9BTlMsQ0FBVjtBQU9BcEIsTUFBQUEsUUFBUSxDQUFDLFlBQU07QUFDZDFCLFFBQUFBLElBQUksQ0FBQ3NCLGFBQUw7QUFDQSxPQUZPLENBQVI7QUFHQUssTUFBQUEsRUFBRSxDQUFDLHdDQUFEO0FBQUEsWUFBNEQ7QUFDN0QsY0FBTW9CLGNBQWMsR0FBRyxJQUFJdkMsYUFBSixFQUF2QjtBQUNBLGNBQUl3QyxZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU04QyxjQUFOO0FBQUEsYUFBUixDQURRO0FBRWxCRSxZQUFBQSxPQUFPLEVBQUVqRCxJQUFJLENBQUNDLEVBQUw7QUFGUyxXQUFuQjtBQUlBLGNBQU1pRCxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFVBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFlBQU07QUFDN0MsbUJBQU8sRUFBUDtBQUNBLFdBRkQ7QUFHQXVCLFVBQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQnJCLGVBQXJCLENBQXFDLHdCQUFyQztBQUNBLGNBQUl3QixXQUFlLEdBQUcsRUFBdEI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsRUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUNtQixXQUFELENBQU4sQ0FBb0JHLE9BQXBCLENBQTRCLEVBQTVCO0FBYjZEO0FBYzdELFNBZEM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQWdCQTVCLE1BQUFBLEVBQUUsQ0FBQyx3RUFBRDtBQUFBLFlBQTRGO0FBQzdGLGNBQUlxQixZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU1XLFlBQVksQ0FBQ0csUUFBYixHQUF3QnlDLFlBQXhCLEVBQU47QUFBQSxhQUFSLENBRFE7QUFFbEJQLFlBQUFBLE9BQU8sRUFBRWpELElBQUksQ0FBQ0MsRUFBTDtBQUZTLFdBQW5CO0FBSUEsY0FBTWlELG9CQUFvQixHQUFHbEQsSUFBSSxDQUFDd0IsS0FBTCxDQUFXMkIsWUFBWCxFQUF5QixpQkFBekIsQ0FBN0I7QUFDQUQsVUFBQUEsb0JBQW9CLENBQUN6QixrQkFBckIsQ0FBd0MsWUFBTTtBQUM3QyxtQkFBTztBQUNOLHVCQUFTLDZDQURIO0FBRU4sd0NBQTBCLENBQ3pCO0FBQ0MseUJBQVMsbURBRFY7QUFFQyw0QkFBWTtBQUNYLG1DQUFpQjtBQUROO0FBRmIsZUFEeUIsQ0FGcEI7QUFVTixxQ0FBdUIsQ0FDdEI7QUFDQyxpQ0FBaUI7QUFEbEIsZUFEc0I7QUFWakIsYUFBUDtBQWdCQSxXQWpCRDtBQWtCQXVCLFVBQUFBLFlBQVksQ0FBQ0MsT0FBYixDQUFxQnJCLGVBQXJCLENBQXFDLDhCQUFyQztBQUNBLGNBQU02Qix1Q0FBdUMsR0FBR3pELElBQUksQ0FBQ3dCLEtBQUwsQ0FBV0wsYUFBWCxFQUEwQixxQ0FBMUIsQ0FBaEQ7QUFDQSxjQUFNdUMsb0JBQXlCLEdBQUcsQ0FDakM7QUFDQyxvQkFBUSxZQURUO0FBRUMsNEJBQWdCLFlBRmpCO0FBR0MscUJBQVMsb0JBSFY7QUFJQyx3QkFBWSxJQUpiO0FBS0MsMEJBQWMsSUFMZjtBQU1DLHlCQUFhLEtBTmQ7QUFPQyw0QkFBZ0IsSUFQakI7QUFRQyxpQ0FBcUIsS0FSdEI7QUFTQyw2QkFBaUIsQ0FBQyxDQVRuQjtBQVVDLG9CQUFRLGNBVlQ7QUFXQyw4QkFBa0IsQ0FDakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQURpQixFQUtqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBTGlCLEVBU2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFUaUIsQ0FYbkI7QUF5QkMsb0JBQVEsT0F6QlQ7QUEwQkMseUJBQWE7QUExQmQsV0FEaUMsRUE2QmpDO0FBQ0Msb0JBQVEsWUFEVDtBQUVDLDRCQUFnQixZQUZqQjtBQUdDLHFCQUFTLG9CQUhWO0FBSUMsd0JBQVksSUFKYjtBQUtDLDBCQUFjLElBTGY7QUFNQyx5QkFBYSxLQU5kO0FBT0MsNEJBQWdCLElBUGpCO0FBUUMsaUNBQXFCLEtBUnRCO0FBU0MsNkJBQWlCLENBQUMsQ0FUbkI7QUFVQyxvQkFBUSxjQVZUO0FBV0MsOEJBQWtCLENBQ2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFEaUIsRUFLakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQUxpQixFQVNqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBVGlCLENBWG5CO0FBeUJDLG9CQUFRLE9BekJUO0FBMEJDLHlCQUFhO0FBMUJkLFdBN0JpQyxDQUFsQztBQTBEQUQsVUFBQUEsdUNBQXVDLENBQUNoQyxrQkFBeEMsQ0FBMkQsWUFBTTtBQUNoRSxtQkFBT2lDLG9CQUFQO0FBQ0EsV0FGRDtBQUdBLGNBQUlOLFdBQWUsR0FBRyxFQUF0Qjs7QUFDQWpDLFVBQUFBLGFBQWEsQ0FBQ2tDLGVBQWQsQ0FBOEJDLElBQTlCLENBQW1DTixZQUFuQyxFQUFpRHBDLFlBQWpELEVBQStEa0MscUJBQS9ELEVBQXNGLEVBQXRGLEVBQTBGLEVBQTFGLEVBQThGTSxXQUE5RixFQUEyRyxFQUEzRzs7QUFDQW5CLFVBQUFBLE1BQU0sQ0FBQ21CLFdBQUQsQ0FBTixDQUFvQkcsT0FBcEIsQ0FBNEJHLG9CQUE1QjtBQXpGNkY7QUEwRjdGLFNBMUZDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUE0RkEvQixNQUFBQSxFQUFFLENBQUMscUVBQUQ7QUFBQSxZQUF5RjtBQUMxRnRCLFVBQUFBLE9BQU8sQ0FBQyxhQUFELENBQVAsR0FBeUIsWUFBekI7QUFDQSxjQUFNMEMsY0FBYyxHQUFHLElBQUl2QyxhQUFKLENBQWtCSCxPQUFsQixDQUF2QjtBQUNBLGNBQUkyQyxZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU04QyxjQUFOO0FBQUEsYUFBUixDQURRO0FBRWxCRSxZQUFBQSxPQUFPLEVBQUVqRCxJQUFJLENBQUNDLEVBQUw7QUFGUyxXQUFuQjtBQUlBLGNBQU1pRCxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFVBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFlBQU07QUFDN0MsbUJBQU87QUFDTix1QkFBUyw2Q0FESDtBQUVOLHdDQUEwQixDQUN6QjtBQUNDLHlCQUFTLG1EQURWO0FBRUMsNEJBQVk7QUFDWCxtQ0FBaUI7QUFETjtBQUZiLGVBRHlCLENBRnBCO0FBVU4scUNBQXVCLENBQ3RCO0FBQ0MsaUNBQWlCO0FBRGxCLGVBRHNCO0FBVmpCLGFBQVA7QUFnQkEsV0FqQkQ7QUFrQkF1QixVQUFBQSxZQUFZLENBQUNDLE9BQWIsQ0FBcUJyQixlQUFyQixDQUFxQyw4QkFBckM7QUFDQSxjQUFNK0Isb0JBQXlCLEdBQUcsQ0FDakM7QUFDQyxvQkFBUSxZQURUO0FBRUMsNEJBQWdCLFlBRmpCO0FBR0MscUJBQVMsYUFIVjtBQUlDLHdCQUFZLElBSmI7QUFLQywwQkFBYyxJQUxmO0FBTUMseUJBQWEsSUFOZDtBQU9DLDRCQUFnQixLQVBqQjtBQVFDLDZCQUFpQixDQUFDLENBUm5CO0FBU0MsdUJBQVcsWUFUWjtBQVVDLG9CQUFRLFdBVlQ7QUFXQyw4QkFBa0IsQ0FDakI7QUFDQyxxQkFBTyxVQURSO0FBRUMsc0JBQVE7QUFGVCxhQURpQixFQUtqQjtBQUNDLHFCQUFPLFdBRFI7QUFFQyxzQkFBUTtBQUZULGFBTGlCLEVBU2pCO0FBQ0MscUJBQU8sUUFEUjtBQUVDLHNCQUFRO0FBRlQsYUFUaUIsQ0FYbkI7QUF5QkMsb0JBQVEsVUF6QlQ7QUEwQkMsMkJBQWUsVUExQmhCO0FBMkJDLDRCQUFnQjtBQTNCakIsV0FEaUMsQ0FBbEM7QUErQkEsY0FBSVAsV0FBZ0IsR0FBRyxFQUF2Qjs7QUFDQWpDLFVBQUFBLGFBQWEsQ0FBQ2tDLGVBQWQsQ0FBOEJDLElBQTlCLENBQW1DTixZQUFuQyxFQUFpRHBDLFlBQWpELEVBQStEa0MscUJBQS9ELEVBQXNGLEVBQXRGLEVBQTBGLEVBQTFGLEVBQThGTSxXQUE5RixFQUEyRyxVQUEzRzs7QUFDQW5CLFVBQUFBLE1BQU0sQ0FBQzJCLElBQUksQ0FBQ0MsU0FBTCxDQUFlVCxXQUFXLENBQUMsQ0FBRCxDQUExQixDQUFELENBQU4sQ0FBdUNHLE9BQXZDLENBQStDSyxJQUFJLENBQUNDLFNBQUwsQ0FBZUYsb0JBQW9CLENBQUMsQ0FBRCxDQUFuQyxDQUEvQztBQTVEMEY7QUE2RDFGLFNBN0RDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUErREFoQyxNQUFBQSxFQUFFLENBQUMsb0ZBQUQ7QUFBQSxZQUF3RztBQUN6R3RCLFVBQUFBLE9BQU8sQ0FBQyxhQUFELENBQVAsR0FBeUIsWUFBekI7QUFDQUEsVUFBQUEsT0FBTyxDQUFDLCtCQUFELENBQVAsR0FBMkM7QUFDMUMsc0RBQTBDLElBREE7QUFFMUMscUVBQXlELENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FGZjtBQUcxQyxzRUFBMEQsS0FIaEI7QUFJMUMscURBQXlDO0FBSkMsV0FBM0M7QUFNQSxjQUFNMEMsY0FBYyxHQUFHLElBQUl2QyxhQUFKLENBQWtCSCxPQUFsQixDQUF2QjtBQUNBLGNBQUkyQyxZQUFZLEdBQUc7QUFDbEJqQyxZQUFBQSxRQUFRLEVBQUVmLElBQUksQ0FBQ0MsRUFBTCxDQUFRO0FBQUEscUJBQU04QyxjQUFOO0FBQUEsYUFBUixDQURRO0FBRWxCRSxZQUFBQSxPQUFPLEVBQUVqRCxJQUFJLENBQUNDLEVBQUw7QUFGUyxXQUFuQjtBQUlBLGNBQU1pRCxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFVBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFlBQU07QUFDN0MsbUJBQU87QUFDTix1QkFBUztBQURILGFBQVA7QUFHQSxXQUpEO0FBS0F1QixVQUFBQSxZQUFZLENBQUNDLE9BQWIsQ0FBcUJyQixlQUFyQixDQUFxQyw4QkFBckM7QUFDQXZCLFVBQUFBLE9BQU8sQ0FBQyxhQUFELENBQVAsR0FBeUIsWUFBekI7QUFDQUEsVUFBQUEsT0FBTyxDQUFDLCtCQUFELENBQVAsR0FBMkM7QUFDMUMsc0RBQTBDLElBREE7QUFFMUMscUVBQXlELENBQUMsS0FBRCxFQUFRLEtBQVIsQ0FGZjtBQUcxQyxzRUFBMEQsS0FIaEI7QUFJMUMscURBQXlDO0FBSkMsV0FBM0M7QUFNQSxjQUFNb0QsdUNBQXVDLEdBQUd6RCxJQUFJLENBQUN3QixLQUFMLENBQVdMLGFBQVgsRUFBMEIscUNBQTFCLENBQWhEO0FBQ0EsY0FBTXVDLG9CQUF5QixHQUFHLENBQ2pDO0FBQ0Msb0JBQVEsWUFEVDtBQUVDLDRCQUFnQixZQUZqQjtBQUdDLHFCQUFTLG9CQUhWO0FBSUMsd0JBQVksSUFKYjtBQUtDLDBCQUFjLElBTGY7QUFNQyx5QkFBYSxLQU5kO0FBT0MsNEJBQWdCLElBUGpCO0FBUUMsaUNBQXFCLEtBUnRCO0FBU0MsNkJBQWlCLENBQUMsQ0FUbkI7QUFVQyxvQkFBUSxjQVZUO0FBV0MsOEJBQWtCLENBQ2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFEaUIsRUFLakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQUxpQixFQVNqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBVGlCLENBWG5CO0FBeUJDLG9CQUFRLE9BekJUO0FBMEJDLHlCQUFhO0FBMUJkLFdBRGlDLEVBNkJqQztBQUNDLG9CQUFRLFlBRFQ7QUFFQyw0QkFBZ0IsWUFGakI7QUFHQyxxQkFBUyxvQkFIVjtBQUlDLHdCQUFZLElBSmI7QUFLQywwQkFBYyxJQUxmO0FBTUMseUJBQWEsS0FOZDtBQU9DLDRCQUFnQixJQVBqQjtBQVFDLGlDQUFxQixLQVJ0QjtBQVNDLDZCQUFpQixDQUFDLENBVG5CO0FBVUMsb0JBQVEsY0FWVDtBQVdDLDhCQUFrQixDQUNqQjtBQUNDLHFCQUFPLE9BRFI7QUFFQyxzQkFBUTtBQUZULGFBRGlCLEVBS2pCO0FBQ0MscUJBQU8sT0FEUjtBQUVDLHNCQUFRO0FBRlQsYUFMaUIsRUFTakI7QUFDQyxxQkFBTyxPQURSO0FBRUMsc0JBQVE7QUFGVCxhQVRpQixDQVhuQjtBQXlCQyxvQkFBUSxPQXpCVDtBQTBCQyx5QkFBYTtBQTFCZCxXQTdCaUMsQ0FBbEM7QUEwREFELFVBQUFBLHVDQUF1QyxDQUFDaEMsa0JBQXhDLENBQTJELFlBQU07QUFDaEUsbUJBQU9pQyxvQkFBUDtBQUNBLFdBRkQ7QUFHQSxjQUFJTixXQUFlLEdBQUcsRUFBdEI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsRUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUNtQixXQUFELENBQU4sQ0FBb0JHLE9BQXBCLENBQTRCRyxvQkFBNUI7QUEzRnlHO0FBNEZ6RyxTQTVGQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBOEZBL0IsTUFBQUEsRUFBRSxDQUFDLGlGQUFEO0FBQUEsWUFBcUc7QUFDdEd0QixVQUFBQSxPQUFPLENBQUMsYUFBRCxDQUFQLEdBQXlCLFlBQXpCO0FBQ0FBLFVBQUFBLE9BQU8sQ0FBQywrQkFBRCxDQUFQLEdBQTJDO0FBQzFDLG9EQUF3QztBQUN2Qyx1QkFBUztBQUQ4QixhQURFO0FBSTFDLHFEQUF5QyxhQUpDO0FBSzFDLG1EQUF1QztBQUxHLFdBQTNDO0FBT0EsY0FBTTBDLGNBQWMsR0FBRyxJQUFJdkMsYUFBSixDQUFrQkgsT0FBbEIsQ0FBdkI7QUFDQSxjQUFJMkMsWUFBWSxHQUFHO0FBQ2xCakMsWUFBQUEsUUFBUSxFQUFFZixJQUFJLENBQUNDLEVBQUwsQ0FBUTtBQUFBLHFCQUFNOEMsY0FBTjtBQUFBLGFBQVIsQ0FEUTtBQUVsQkUsWUFBQUEsT0FBTyxFQUFFakQsSUFBSSxDQUFDQyxFQUFMO0FBRlMsV0FBbkI7QUFJQSxjQUFNaUQsb0JBQW9CLEdBQUdsRCxJQUFJLENBQUN3QixLQUFMLENBQVcyQixZQUFYLEVBQXlCLGlCQUF6QixDQUE3QjtBQUNBRCxVQUFBQSxvQkFBb0IsQ0FBQ3pCLGtCQUFyQixDQUF3QyxZQUFNO0FBQzdDLG1CQUFPO0FBQ04sdUJBQVMsNkNBREg7QUFFTix3Q0FBMEIsQ0FDekI7QUFDQyx5QkFBUyxtREFEVjtBQUVDLDRCQUFZO0FBQ1gsbUNBQWlCO0FBRE47QUFGYixlQUR5QixDQUZwQjtBQVVOLHFDQUF1QixDQUN0QjtBQUNDLGlDQUFpQjtBQURsQixlQURzQjtBQVZqQixhQUFQO0FBZ0JBLFdBakJEO0FBa0JBdUIsVUFBQUEsWUFBWSxDQUFDQyxPQUFiLENBQXFCckIsZUFBckIsQ0FBcUMsOEJBQXJDO0FBQ0EsY0FBTStCLG9CQUF5QixHQUFHLENBQ2pDO0FBQ0Msb0JBQVEsWUFEVDtBQUVDLDRCQUFnQixZQUZqQjtBQUdDLHFCQUFTLGFBSFY7QUFJQyx3QkFBWSxJQUpiO0FBS0MsMEJBQWMsSUFMZjtBQU1DLHlCQUFhLElBTmQ7QUFPQyw0QkFBZ0IsS0FQakI7QUFRQyw2QkFBaUIsQ0FBQyxDQVJuQjtBQVNDLHVCQUFXLFlBVFo7QUFVQyxvQkFBUSxXQVZUO0FBV0MsOEJBQWtCLENBQ2pCO0FBQ0MscUJBQU8sVUFEUjtBQUVDLHNCQUFRO0FBRlQsYUFEaUIsRUFLakI7QUFDQyxxQkFBTyxXQURSO0FBRUMsc0JBQVE7QUFGVCxhQUxpQixFQVNqQjtBQUNDLHFCQUFPLFFBRFI7QUFFQyxzQkFBUTtBQUZULGFBVGlCLENBWG5CO0FBeUJDLG9CQUFRLFVBekJUO0FBMEJDLDJCQUFlLFVBMUJoQjtBQTJCQyw0QkFBZ0I7QUEzQmpCLFdBRGlDLENBQWxDO0FBK0JBLGNBQUlQLFdBQWdCLEdBQUcsRUFBdkI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsVUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUMyQixJQUFJLENBQUNDLFNBQUwsQ0FBZVQsV0FBVyxDQUFDLENBQUQsQ0FBMUIsQ0FBRCxDQUFOLENBQXVDRyxPQUF2QyxDQUErQ0ssSUFBSSxDQUFDQyxTQUFMLENBQWVGLG9CQUFvQixDQUFDLENBQUQsQ0FBbkMsQ0FBL0M7QUFuRXNHO0FBb0V0RyxTQXBFQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBc0VBaEMsTUFBQUEsRUFBRSxDQUFDLG1FQUFEO0FBQUEsWUFBdUY7QUFDeEZ0QixVQUFBQSxPQUFPLENBQUMsYUFBRCxDQUFQLEdBQXlCLGFBQXpCO0FBQ0EsY0FBSTBDLGNBQWMsR0FBRyxJQUFJdkMsYUFBSixDQUFrQkgsT0FBbEIsQ0FBckI7QUFDQSxjQUFJMkMsWUFBWSxHQUFHO0FBQ2xCakMsWUFBQUEsUUFBUSxFQUFFZixJQUFJLENBQUNDLEVBQUwsQ0FBUTtBQUFBLHFCQUFNOEMsY0FBTjtBQUFBLGFBQVIsQ0FEUTtBQUVsQkUsWUFBQUEsT0FBTyxFQUFFakQsSUFBSSxDQUFDQyxFQUFMO0FBRlMsV0FBbkI7QUFJQSxjQUFNaUQsb0JBQW9CLEdBQUdsRCxJQUFJLENBQUN3QixLQUFMLENBQVcyQixZQUFYLEVBQXlCLGlCQUF6QixDQUE3QjtBQUNBRCxVQUFBQSxvQkFBb0IsQ0FBQ3pCLGtCQUFyQixDQUF3QyxZQUFNO0FBQzdDLG1CQUFPO0FBQ04sdUJBQVMsNkNBREg7QUFFTix3Q0FBMEIsQ0FDekI7QUFDQyx5QkFBUyxtREFEVjtBQUVDLDRCQUFZO0FBQ1gsbUNBQWlCO0FBRE47QUFGYixlQUR5QixDQUZwQjtBQVVOLHFDQUF1QixDQUN0QjtBQUNDLGlDQUFpQjtBQURsQixlQURzQjtBQVZqQixhQUFQO0FBZ0JBLFdBakJEO0FBa0JBdUIsVUFBQUEsWUFBWSxDQUFDQyxPQUFiLENBQXFCckIsZUFBckIsQ0FBcUMsK0JBQXJDO0FBQ0EsY0FBSXdCLFdBQWdCLEdBQUcsRUFBdkI7O0FBQ0FqQyxVQUFBQSxhQUFhLENBQUNrQyxlQUFkLENBQThCQyxJQUE5QixDQUFtQ04sWUFBbkMsRUFBaURwQyxZQUFqRCxFQUErRGtDLHFCQUEvRCxFQUFzRixFQUF0RixFQUEwRixFQUExRixFQUE4Rk0sV0FBOUYsRUFBMkcsRUFBM0c7O0FBQ0FuQixVQUFBQSxNQUFNLENBQUNtQixXQUFELENBQU4sQ0FBb0JHLE9BQXBCLENBQTRCLEVBQTVCO0FBN0J3RjtBQThCeEYsU0E5QkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQStCQSxLQTFYTyxDQUFSO0FBNFhBckQsSUFBQUEsUUFBUSxDQUFDLHNCQUFELEVBQXlCLFlBQVc7QUFDM0MsVUFBSTRELGtCQUFKO0FBQ0EsVUFBSUMsbUJBQUo7QUFDQSxVQUFJQyxVQUFKO0FBQ0EsVUFBSUMsYUFBSjtBQUNBNUMsTUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDaEJyQixRQUFBQSxJQUFJLENBQUNzQixhQUFMO0FBQ0EwQyxRQUFBQSxVQUFVLEdBQUdwRCxZQUFZLENBQUNHLFFBQWIsRUFBYjtBQUNBLFlBQU1tRCxjQUFjLEdBQUdGLFVBQVUsQ0FBQ1IsWUFBWCxFQUF2QjtBQUNBTSxRQUFBQSxrQkFBa0IsR0FBRzlELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzBDLGNBQVgsRUFBMkIsZUFBM0IsQ0FBckI7QUFDQUosUUFBQUEsa0JBQWtCLENBQUNyQyxrQkFBbkIsQ0FBc0MsVUFBQ1AsS0FBRCxFQUFnQjtBQUNyRCxpQkFBTyxJQUFJaUQsT0FBSixDQUFZLFVBQVNDLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQzVDLGdCQUFJbkQsS0FBSyxLQUFLLG9CQUFkLEVBQW9DO0FBQ25Da0QsY0FBQUEsT0FBTyxDQUFDO0FBQ1AseUJBQVMsWUFERjtBQUVQLHdCQUFRLENBQUMsSUFBRCxDQUZEO0FBR1Asc0JBQU07QUFDTCwyQkFBUyxVQURKO0FBRUwsMkJBQVMsV0FGSjtBQUdMLCtCQUFhO0FBSFIsaUJBSEM7QUFRUCwwQkFBVTtBQUNULDJCQUFTLFVBREE7QUFFVCwyQkFBUztBQUZBLGlCQVJIO0FBWVAsK0JBQWU7QUFDZCwyQkFBUyxVQURLO0FBRWQsMkJBQVMsYUFGSztBQUdkLGdDQUFjLEVBSEE7QUFJZCw0QkFBVTtBQUpJLGlCQVpSO0FBa0JQLDhCQUFjO0FBQ2IsMkJBQVMsVUFESTtBQUViLDJCQUFTLGFBRkk7QUFHYixnQ0FBYyxFQUhEO0FBSWIsNEJBQVU7QUFKRztBQWxCUCxlQUFELENBQVA7QUF5QkEsYUExQkQsTUEwQk87QUFDTkEsY0FBQUEsT0FBTyxDQUFDO0FBQ1AseUVBQXlELGFBRGxEO0FBRVAseUVBQXlELGFBRmxEO0FBR1AsNERBQTRDO0FBQzNDLDJCQUFTLDZDQURrQztBQUUzQyx5Q0FBdUIsQ0FDdEI7QUFDQyxxQ0FBaUI7QUFEbEIsbUJBRHNCLEVBSXRCO0FBQ0MscUNBQWlCO0FBRGxCLG1CQUpzQixDQUZvQjtBQVUzQyw0Q0FBMEIsQ0FDekI7QUFDQyw2QkFBUyxtREFEVjtBQUVDLGdDQUFZO0FBQ1gsdUNBQWlCO0FBRE47QUFGYixtQkFEeUIsRUFPekI7QUFDQyw2QkFBUyxtREFEVjtBQUVDLGdDQUFZO0FBQ1gsdUNBQWlCO0FBRE47QUFGYixtQkFQeUI7QUFWaUI7QUFIckMsZUFBRCxDQUFQO0FBNkJBO0FBQ0QsV0ExRE0sQ0FBUDtBQTJEQSxTQTVERDtBQTZEQTNELFFBQUFBLFVBQVUsR0FBRyxrQkFBYjtBQUNBLFlBQU15QyxvQkFBb0IsR0FBR2xELElBQUksQ0FBQ3dCLEtBQUwsQ0FBVzJCLFlBQVgsRUFBeUIsaUJBQXpCLENBQTdCO0FBQ0FELFFBQUFBLG9CQUFvQixDQUFDekIsa0JBQXJCLENBQXdDLFVBQUFQLEtBQUssRUFBSTtBQUNoRCxjQUFJQSxLQUFLLEtBQUssa0JBQWQsRUFBa0M7QUFDakMsbUJBQU87QUFDTiw2QkFBZTtBQUNkLHdCQUFRLGFBRE07QUFFZCx5QkFBUyxnQ0FGSztBQUdkLDRCQUFZLElBSEU7QUFJZCw2QkFBYSxNQUpDO0FBS2QsMkNBQTJCO0FBTGI7QUFEVCxhQUFQO0FBU0EsV0FWRCxNQVVPO0FBQ04sbUJBQU87QUFDTiw0QkFBYztBQUNiLHdCQUFRLFlBREs7QUFFYixnQ0FBZ0IsWUFGSDtBQUdiLHFDQUFxQixLQUhSO0FBSWIseUJBQVMsb0JBSkk7QUFLYiw0QkFBWSxJQUxDO0FBTWIsNkJBQWEsTUFOQTtBQU9iLDBCQUFVO0FBUEc7QUFEUixhQUFQO0FBV0E7QUFDRCxTQXhCRDtBQXlCQSxZQUFNb0QscUJBQXFCLEdBQUd0RSxJQUFJLENBQUN3QixLQUFMLENBQVcrQyxrQkFBWCxFQUErQixrQkFBL0IsQ0FBOUI7QUFDQUQsUUFBQUEscUJBQXFCLENBQUM3QyxrQkFBdEIsQ0FBeUMsWUFBTTtBQUM5QyxpQkFBTyxJQUFJMEMsT0FBSixDQUFZLFVBQVNDLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQzVDRCxZQUFBQSxPQUFPLENBQUMsRUFBRCxDQUFQO0FBQ0EsV0FGTSxDQUFQO0FBR0EsU0FKRDtBQUtBSCxRQUFBQSxhQUFhLEdBQUdqRSxJQUFJLENBQUN3QixLQUFMLENBQVdnRCxHQUFYLEVBQWdCLE9BQWhCLENBQWhCO0FBQ0FQLFFBQUFBLGFBQWEsQ0FBQ3hDLGtCQUFkLENBQWlDLFlBQU07QUFDdEMsaUJBQU8sRUFBUDtBQUNBLFNBRkQ7QUFHQXNDLFFBQUFBLG1CQUFtQixHQUFHL0QsSUFBSSxDQUFDd0IsS0FBTCxDQUFXTCxhQUFYLEVBQTBCLGlCQUExQixDQUF0QjtBQUNBNEMsUUFBQUEsbUJBQW1CLENBQUN0QyxrQkFBcEIsQ0FBdUMsWUFBTTtBQUM1QyxpQkFBTyxJQUFJMEMsT0FBSixDQUFZLFVBQVNDLE9BQVQsRUFBa0JDLE1BQWxCLEVBQTBCO0FBQzVDRCxZQUFBQSxPQUFPLENBQUMsRUFBRCxDQUFQO0FBQ0EsV0FGTSxDQUFQO0FBR0EsU0FKRDtBQUtBLE9BN0dTLENBQVY7QUE4R0ExQyxNQUFBQSxRQUFRLENBQUMsWUFBTTtBQUNkMUIsUUFBQUEsSUFBSSxDQUFDc0IsYUFBTDtBQUNBLE9BRk8sQ0FBUjtBQUdBSyxNQUFBQSxFQUFFLENBQUMsMkRBQUQ7QUFBQSxZQUErRTtBQUNoRmYsVUFBQUEsWUFBWSxDQUFDRSxRQUFiLENBQXNCYyxlQUF0QixDQUFzQyxDQUNyQztBQUNDNkMsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxhQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssZ0NBQWQsRUFBZ0Q7QUFDL0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQURxQyxFQVdyQztBQUNDdUQsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxhQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssOEJBQWQsRUFBOEM7QUFDN0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQVhxQyxDQUF0QztBQURnRixpQ0F1QjFFQyxhQUFhLENBQUN3RCxvQkFBZCxDQUFtQy9ELFlBQW5DLEVBQWlEb0QsVUFBakQsQ0F2QjBFO0FBd0JoRi9CLFlBQUFBLE1BQU0sQ0FBQ2dDLGFBQWEsQ0FBQ1csSUFBZCxDQUFtQkMsS0FBbkIsQ0FBeUJDLE1BQTFCLENBQU4sQ0FBd0NDLElBQXhDLENBQTZDLENBQTdDO0FBQ0E5QyxZQUFBQSxNQUFNLENBQUM4QixtQkFBbUIsQ0FBQ2EsSUFBcEIsQ0FBeUJDLEtBQXpCLENBQStCQyxNQUFoQyxDQUFOLENBQThDQyxJQUE5QyxDQUFtRCxDQUFuRDtBQXpCZ0Y7QUEwQmhGLFNBMUJDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUEyQkFwRCxNQUFBQSxFQUFFLENBQUMsZ0VBQUQ7QUFBQSxZQUFvRjtBQUNyRmYsVUFBQUEsWUFBWSxDQUFDRSxRQUFiLENBQXNCYyxlQUF0QixDQUFzQyxDQUNyQztBQUNDNkMsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxRQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssZ0NBQWQsRUFBZ0Q7QUFDL0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQURxQyxFQVdyQztBQUNDdUQsWUFBQUEsTUFBTSxFQUFFekUsSUFBSSxDQUFDQyxFQUFMLENBQVE7QUFBQSxxQkFBTSxhQUFOO0FBQUEsYUFBUixDQURUO0FBRUN5RSxZQUFBQSxHQUFHLEVBQUUxRSxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFBaUIsS0FBSyxFQUFJO0FBQ3JCLGtCQUFJQSxLQUFLLEtBQUssOEJBQWQsRUFBOEM7QUFDN0MsdUJBQU8sSUFBUDtBQUNBLGVBRkQsTUFFTztBQUNOLHVCQUFPLEtBQVA7QUFDQTtBQUNELGFBTkk7QUFGTixXQVhxQyxDQUF0QztBQURxRixpQ0F1Qi9FQyxhQUFhLENBQUN3RCxvQkFBZCxDQUFtQy9ELFlBQW5DLEVBQWlEb0QsVUFBakQsQ0F2QitFO0FBd0JyRi9CLFlBQUFBLE1BQU0sQ0FBQzhCLG1CQUFtQixDQUFDYSxJQUFwQixDQUF5QkMsS0FBekIsQ0FBK0JDLE1BQWhDLENBQU4sQ0FBOENDLElBQTlDLENBQW1ELENBQW5EO0FBeEJxRjtBQXlCckYsU0F6QkM7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQTBCQSxLQTNLTyxDQUFSO0FBNktBN0UsSUFBQUEsUUFBUSxDQUFDLGlCQUFELEVBQW9CLFlBQVc7QUFDdEMsVUFBSThFLHdCQUFKO0FBQ0EsVUFBSUMsaUJBQUo7QUFDQSxVQUFJQyw2QkFBSjtBQUNBN0QsTUFBQUEsVUFBVSxDQUFDLFlBQU07QUFDaEJyQixRQUFBQSxJQUFJLENBQUNzQixhQUFMO0FBQ0EwRCxRQUFBQSx3QkFBd0IsR0FBR2hGLElBQUksQ0FBQ3dCLEtBQUwsQ0FBV0wsYUFBWCxFQUEwQixzQkFBMUIsQ0FBM0I7QUFDQTZELFFBQUFBLHdCQUF3QixDQUFDdkQsa0JBQXpCLENBQTRDLFlBQU07QUFDakQsaUJBQU8sSUFBSTBDLE9BQUosQ0FBWSxVQUFTQyxPQUFULEVBQWtCQyxNQUFsQixFQUEwQjtBQUM1Q0QsWUFBQUEsT0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNBLFdBRk0sQ0FBUDtBQUdBLFNBSkQ7QUFLQWMsUUFBQUEsNkJBQTZCLEdBQUdsRixJQUFJLENBQUN3QixLQUFMLENBQVdaLFlBQVgsRUFBeUIsMEJBQXpCLENBQWhDO0FBQ0FzRSxRQUFBQSw2QkFBNkIsQ0FBQ3pELGtCQUE5QixDQUFpRCxVQUFDMEQsSUFBRCxFQUFZbEYsRUFBWixFQUFxQm1GLGNBQXJCLEVBQTZDO0FBQzdGLGlCQUFPLElBQUlqQixPQUFKLENBQVksVUFBU0MsT0FBVCxFQUFrQkMsTUFBbEIsRUFBMEI7QUFDNUMsZ0JBQU1nQixVQUFVLEdBQUc7QUFDbEJDLGNBQUFBLFNBQVMsRUFBRSxZQUFXO0FBQ3JCLHVCQUFPLEVBQVA7QUFDQTtBQUhpQixhQUFuQjtBQUtBLGdCQUFNQyxTQUFTLEdBQUc7QUFDakJDLGNBQUFBLFFBQVEsRUFBRSxZQUFXO0FBQ3BCLHVCQUFPLEVBQVA7QUFDQTtBQUhnQixhQUFsQjtBQUtBdkYsWUFBQUEsRUFBRSxDQUFDcUQsSUFBSCxDQUFRbkMsYUFBUixFQUF1QmtFLFVBQXZCLEVBQW1DRSxTQUFuQztBQUNBbkIsWUFBQUEsT0FBTyxDQUFDLEVBQUQsQ0FBUDtBQUNBLFdBYk0sQ0FBUDtBQWNBLFNBZkQ7QUFnQkFhLFFBQUFBLGlCQUFpQixHQUFHakYsSUFBSSxDQUFDd0IsS0FBTCxDQUFXWixZQUFYLEVBQXlCLE1BQXpCLENBQXBCO0FBQ0EsT0ExQlMsQ0FBVjtBQTJCQWMsTUFBQUEsUUFBUSxDQUFDLFlBQU07QUFDZDFCLFFBQUFBLElBQUksQ0FBQ3NCLGFBQUw7QUFDQSxPQUZPLENBQVI7QUFHQUssTUFBQUEsRUFBRSxDQUFDLG1EQUFELEVBQXNELFlBQVc7QUFDbEUsWUFBTThELDZCQUE2QixHQUFHekYsSUFBSSxDQUFDd0IsS0FBTCxDQUFXTCxhQUFYLEVBQTBCLFdBQTFCLENBQXRDO0FBQ0FzRSxRQUFBQSw2QkFBNkIsQ0FBQ2hFLGtCQUE5QixDQUFpRCxZQUFNO0FBQ3RELGlCQUFPLEVBQVA7QUFDQSxTQUZEO0FBR0EsWUFBTWlFLE1BQU0sR0FBR3ZFLGFBQWEsQ0FBQ3dFLGVBQWQsQ0FBOEIvRSxZQUE5QixFQUE0Q2dGLElBQTVDLENBQWlELFlBQVc7QUFDMUUzRCxVQUFBQSxNQUFNLENBQUN5RCxNQUFELENBQU4sQ0FBZW5DLE9BQWYsQ0FBdUIsRUFBdkI7QUFDQXRCLFVBQUFBLE1BQU0sQ0FBQ2dELGlCQUFELENBQU4sQ0FBMEJZLHdCQUExQixDQUFtRCx1QkFBbkQsRUFBNEUsRUFBNUU7QUFDQTVELFVBQUFBLE1BQU0sQ0FBQytDLHdCQUF3QixDQUFDSixJQUF6QixDQUE4QkMsS0FBOUIsQ0FBb0NDLE1BQXJDLENBQU4sQ0FBbURDLElBQW5ELENBQXdELENBQXhEO0FBQ0E5QyxVQUFBQSxNQUFNLENBQUNpRCw2QkFBNkIsQ0FBQ04sSUFBOUIsQ0FBbUNDLEtBQW5DLENBQXlDQyxNQUExQyxDQUFOLENBQXdEQyxJQUF4RCxDQUE2RCxDQUE3RDtBQUNBLFNBTGMsQ0FBZjtBQU1BLE9BWEMsQ0FBRjtBQWFBcEQsTUFBQUEsRUFBRSxDQUFDLCtDQUFEO0FBQUEsWUFBbUU7QUFDcEUsY0FBTThELDZCQUE2QixHQUFHekYsSUFBSSxDQUFDd0IsS0FBTCxDQUFXTCxhQUFYLEVBQTBCLFdBQTFCLENBQXRDO0FBQ0FzRSxVQUFBQSw2QkFBNkIsQ0FBQ2hFLGtCQUE5QixDQUFpRCxZQUFNO0FBQ3RELG1CQUFPLElBQVA7QUFDQSxXQUZEO0FBRm9FLGlDQUsvQ04sYUFBYSxDQUFDd0UsZUFBZCxDQUE4Qi9FLFlBQTlCLENBTCtDLGlCQUs5RDhFLE1BTDhEO0FBT3BFekQsWUFBQUEsTUFBTSxDQUFDeUQsTUFBRCxDQUFOLENBQWVuQyxPQUFmLENBQXVCLEVBQXZCO0FBQ0F0QixZQUFBQSxNQUFNLENBQUNnRCxpQkFBRCxDQUFOLENBQTBCWSx3QkFBMUIsQ0FBbUQsdUJBQW5ELEVBQTRFLEVBQTVFO0FBQ0E1RCxZQUFBQSxNQUFNLENBQUMrQyx3QkFBd0IsQ0FBQ0osSUFBekIsQ0FBOEJDLEtBQTlCLENBQW9DQyxNQUFyQyxDQUFOLENBQW1EQyxJQUFuRCxDQUF3RCxDQUF4RDtBQUNBOUMsWUFBQUEsTUFBTSxDQUFDaUQsNkJBQTZCLENBQUNOLElBQTlCLENBQW1DQyxLQUFuQyxDQUF5Q0MsTUFBMUMsQ0FBTixDQUF3REMsSUFBeEQsQ0FBNkQsQ0FBN0Q7QUFWb0U7QUFXcEUsU0FYQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBWUEsS0EzRE8sQ0FBUjtBQTREQSxHQTN6Qk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnREZWxlZ2F0ZSwgQ29tbW9uSGVscGVyLCBPRGF0YU1ldGFNb2RlbFV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IHsgTW9ja01ldGFNb2RlbCwgTW9ja01vZGVsIH0gZnJvbSBcInNhcC9mZS90ZXN0L1VJNU1vY2tIZWxwZXJcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuY29uc3Qgc3B5UmVxdWVzdHMgPSBqZXN0LmZuKCk7XG5kZXNjcmliZShcIkNoYXJ0RGVsZWdhdGVcIiwgZnVuY3Rpb24oKSB7XG5cdGNvbnN0IG1vY2tNb2RlbCA9IG5ldyBNb2NrTW9kZWwoKTtcblx0Y29uc3Qgb1ZhbHVlcyA9IHtcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlLyRLZXlcIjoge1xuXHRcdFx0JGtpbmQ6IFwiS2V5XCJcblx0XHR9LFxuXHRcdFwiL1NhbGVzT3JkZXJNYW5hZ2UvTmV0UHJpY2luZ1wiOiB7XG5cdFx0XHQka2luZDogXCJQcm9wZXJ0eVwiXG5cdFx0fSxcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJcIjoge1xuXHRcdFx0JGtpbmQ6IFwiUHJvcGVydHlcIlxuXHRcdH0sXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9Tb2xkVG9QYXJ0eVwiOiB7XG5cdFx0XHQka2luZDogXCJQcm9wZXJ0eVwiXG5cdFx0fSxcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdAc2FwdWkubmFtZVwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJAc2FwdWkubmFtZVwiOiBcIlNhbGVzT3JkZXJcIixcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL1NvbGRUb1BhcnR5QHNhcHVpLm5hbWVcIjogXCJTb2xkVG9QYXJ0eVwiLFxuXHRcdFwiL1NhbGVzT3JkZXJNYW5hZ2UvTmV0UHJpY2luZ0BcIjoge1xuXHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiTmV0IFByaWNpbmdcIlxuXHRcdH0sXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9TYWxlc09yZGVyQFwiOiB7XG5cdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dFwiOiB7XG5cdFx0XHRcdFwiJFBhdGhcIjogXCJTYWxlc09yZGVyVGV4dFwiXG5cdFx0XHR9LFxuXHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiU2FsZXMgT3JkZXJcIlxuXHRcdH0sXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS9Tb2xkVG9QYXJ0eUBcIjoge1xuXHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiU29sZFRvUGFydHlcIlxuXHRcdH0sXG5cdFx0XCJAc2FwdWkubmFtZVwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcIi9TYWxlc09yZGVyTWFuYWdlL19JdGVtLyRraW5kXCI6IFwiTmF2aWdhdGlvblByb3BlcnR5XCIsXG5cdFx0XCIvU2FsZXNPcmRlck1hbmFnZS8ka2luZFwiOiBcIkVudGl0eVNldFwiXG5cdH07XG5cdGNvbnN0IG1vY2tNZXRhTW9kZWwgPSBuZXcgTW9ja01ldGFNb2RlbChvVmFsdWVzKTtcblx0bGV0IHNFbnRpdHlTZXQgPSBcIlwiLFxuXHRcdHNUYXJnZXRDb2xsZWN0aW9uUGF0aCA9IFwiXCI7XG5cdG1vY2tNb2RlbC5zZXRNZXRhTW9kZWwobW9ja01ldGFNb2RlbCk7XG5cdGNvbnN0IG1vY2tNZGNDaGFydCA9IHtcblx0XHRnZXREZWxlZ2F0ZTogamVzdC5mbigpLFxuXHRcdGdldEl0ZW1zOiBqZXN0LmZuKCksXG5cdFx0Z2V0TW9kZWw6IGplc3QuZm4oKCkgPT4gbW9ja01vZGVsKSxcblx0XHRhdHRhY2hNb2RlbENvbnRleHRDaGFuZ2U6IGplc3QuZm4oKSxcblx0XHRkYXRhOiBqZXN0LmZuKHNQcm9wID0+IHtcblx0XHRcdGlmIChzUHJvcCA9PT0gXCJlbnRpdHlTZXRcIikge1xuXHRcdFx0XHRyZXR1cm4gc0VudGl0eVNldDtcblx0XHRcdH0gZWxzZSBpZiAoc1Byb3AgPT09IFwiY3VzdG9tQWdnXCIpIHtcblx0XHRcdFx0cmV0dXJuIFwiQ3VzdG9tQWdncmVnYXRlc1wiO1xuXHRcdFx0fSBlbHNlIGlmIChzUHJvcCA9PT0gXCJ0cmFuc0FnZ1wiKSB7XG5cdFx0XHRcdHJldHVybiBcIlRyYW5zQWdnXCI7XG5cdFx0XHR9IGVsc2UgaWYgKHNQcm9wID09PSBcInRhcmdldENvbGxlY3Rpb25QYXRoXCIpIHtcblx0XHRcdFx0cmV0dXJuIHNUYXJnZXRDb2xsZWN0aW9uUGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBcIkFwcGx5U3VwcG9ydGVkXCI7XG5cdFx0XHR9XG5cdFx0fSlcblx0fTtcblx0Q2hhcnREZWxlZ2F0ZS5fZ2V0TGF5b3V0T3B0aW9uc0ZvclR5cGUgPSBqZXN0LmZuKHNQcm9wID0+IHtcblx0XHRpZiAoc1Byb3AgPT09IFwiZ3JvdXBhYmxlXCIpIHtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJjYXRlZ29yeVwiLCBcInRleHRcIjogXCJDYXRlZ29yeVwiIH0sXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJjYXRlZ29yeTJcIiwgXCJ0ZXh0XCI6IFwiQ2F0ZWdvcnkgMlwiIH0sXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJzZXJpZXNcIiwgXCJ0ZXh0XCI6IFwiU2VyaWVzXCIgfVxuXHRcdFx0XTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0W1xuXHRcdFx0XHR7IFwia2V5XCI6IFwiYXhpczFcIiwgXCJ0ZXh0XCI6IFwiQXhpcyAxXCIgfSxcblx0XHRcdFx0eyBcImtleVwiOiBcImF4aXMyXCIsIFwidGV4dFwiOiBcIkF4aXMgMlwiIH0sXG5cdFx0XHRcdHsgXCJrZXlcIjogXCJheGlzM1wiLCBcInRleHRcIjogXCJBeGlzIDNcIiB9XG5cdFx0XHRdO1xuXHRcdH1cblx0fSk7XG5cdGRlc2NyaWJlKFwiX2dldEJpbmRpbmdJbmZvXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdFx0amVzdC5jbGVhckFsbE1vY2tzKCk7XG5cdFx0XHRjb25zdCBvTW9ja0JpbmRpbmdJbmZvRnJvbVN0YXRlID0gamVzdC5zcHlPbihDaGFydERlbGVnYXRlLCBcIl9nZXRCaW5kaW5nSW5mb0Zyb21TdGF0ZVwiKTtcblx0XHRcdG9Nb2NrQmluZGluZ0luZm9Gcm9tU3RhdGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHNweVJlcXVlc3RzKCkpO1xuXHRcdH0pO1xuXHRcdGFmdGVyQWxsKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwiY2hlY2sgYmluZGluZyBpbmZvIG9mIHRoZSBjaGFydCB3aGVuIGNvbGxlY3Rpb24gcGF0aCBpcyBlbnRpdHlzZXRcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHRzVGFyZ2V0Q29sbGVjdGlvblBhdGggPSBcIi9TYWxlc09yZGVyTWFuYWdlXCI7XG5cdFx0XHRzRW50aXR5U2V0ID0gXCJTYWxlc09yZGVyTWFuYWdlXCI7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0RGVsZWdhdGUubW9ja1JldHVyblZhbHVlKHtcblx0XHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRcdGNvbnRleHRQYXRoOiBcIi9TYWxlc09yZGVyTWFuYWdlXCIsXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogeyAkJGdyb3VwSWQ6IFwiJGF1dG8ud29ya2Vyc1wiIH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRleHBlY3QoQ2hhcnREZWxlZ2F0ZS5fZ2V0QmluZGluZ0luZm8obW9ja01kY0NoYXJ0KSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIGJpbmRpbmcgaW5mbyBvZiB0aGUgY2hhcnQgd2hlbiBjb2xsZWN0aW9uIHBhdGggaXMgbm90IGVudGl0eXNldFwiLCBmdW5jdGlvbigpIHtcblx0XHRcdHNUYXJnZXRDb2xsZWN0aW9uUGF0aCA9IFwiL1NhbGVzT3JkZXJNYW5hZ2UvX0l0ZW1cIjtcblx0XHRcdHNFbnRpdHlTZXQgPSBcIlNhbGVzT3JkZXJJdGVtXCI7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0RGVsZWdhdGUubW9ja1JldHVyblZhbHVlKHtcblx0XHRcdFx0cGF5bG9hZDoge1xuXHRcdFx0XHRcdGNvbnRleHRQYXRoOiBcIl9JdGVtXCIsXG5cdFx0XHRcdFx0cGFyYW1ldGVyczogeyAkJGdyb3VwSWQ6IFwiJGF1dG8ud29ya2Vyc1wiIH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRleHBlY3QoQ2hhcnREZWxlZ2F0ZS5fZ2V0QmluZGluZ0luZm8obW9ja01kY0NoYXJ0KSkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGVcIiwgZnVuY3Rpb24oKSB7XG5cdFx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0XHRqZXN0LmNsZWFyQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRhZnRlckFsbCgoKSA9PiB7XG5cdFx0XHRqZXN0LmNsZWFyQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcImNoZWNrIF9jcmVhdGVQcm9wZXJ0eUluZm9zRm9yQWdncmVnYXRhYmxlIGZvciB0cmFuc2Zvcm1hdGlvbmFsIGFnZ3JlZ2F0ZXNcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHRjb25zdCBvUHJvcGVydHlBbm5vdGF0aW9ucyA9IHtcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFnZ3JlZ2F0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuU3VwcG9ydGVkQWdncmVnYXRpb25NZXRob2RzXCI6IFtcIm1pblwiLCBcIm1heFwiLCBcImF2ZXJhZ2VcIiwgXCJzdW1cIl0sXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5SZWNvbW1lbmRlZEFnZ3JlZ2F0aW9uTWV0aG9kXCI6IFwiYXZlcmFnZVwiLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuTWVhc3VyZXMuVjEuSVNPQ3VycmVuY3lcIjogeyBcIiRQYXRoXCI6IFwiVHJhbnNhY3Rpb25DdXJyZW5jeVwiIH0sXG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiOiBcIk5ldCBQcmljaW5nXCIsXG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZERlZmF1bHRcIjoge1xuXHRcdFx0XHRcdFwiJFR5cGVcIjogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcIlZhbHVlXCI6IHtcblx0XHRcdFx0XHRcdFwiJFBhdGhcIjogXCJOZXRQcmljaW5nXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBvRmlsdGVyUmVzdHJpY3Rpb25zSW5mbyA9IHtcblx0XHRcdFx0XCJOZXRQcmljaW5nXCI6IHtcblx0XHRcdFx0XHRmaWx0ZXJhYmxlOiB0cnVlXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHByb3BlcnR5SW5mbzoge31cblx0XHRcdH07XG5cdFx0XHRjb25zdCBvU29ydFJlc3RyaWN0aW9uc0luZm8gPSB7XG5cdFx0XHRcdFwiTmV0UHJpY2luZ1wiOiB7XG5cdFx0XHRcdFx0c29ydGFibGU6IHRydWVcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG1Lbm93bkFnZ3JlZ2F0YWJsZVByb3BzID0ge1xuXHRcdFx0XHRcIk5ldFByaWNpbmdcIjoge1xuXHRcdFx0XHRcdFwibWluXCI6IHtcblx0XHRcdFx0XHRcdFwibmFtZVwiOiBcIm1pblByaWNpbmdcIixcblx0XHRcdFx0XHRcdFwibGFiZWxcIjogXCJNaW5pbWFsIE5ldCBBbW91bnRcIlxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XCJtYXhcIjoge1xuXHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwibWF4UHJpY2luZ1wiLFxuXHRcdFx0XHRcdFx0XCJsYWJlbFwiOiBcIk1heGltYWwgTmV0IEFtb3VudFwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgc2tleSA9IFwiTmV0UHJpY2luZ1wiO1xuXG5cdFx0XHRleHBlY3QoXG5cdFx0XHRcdENoYXJ0RGVsZWdhdGUuX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUoXG5cdFx0XHRcdFx0c2tleSxcblx0XHRcdFx0XHRvUHJvcGVydHlBbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRvRmlsdGVyUmVzdHJpY3Rpb25zSW5mbyxcblx0XHRcdFx0XHRvU29ydFJlc3RyaWN0aW9uc0luZm8sXG5cdFx0XHRcdFx0bUtub3duQWdncmVnYXRhYmxlUHJvcHMsXG5cdFx0XHRcdFx0e31cblx0XHRcdFx0KVxuXHRcdFx0KS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUgZm9yIGN1c3RvbSBhZ2dyZWdhdGVzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29uc3Qgb1Byb3BlcnR5QW5ub3RhdGlvbnMgPSB7XG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MS5NZWFzdXJlXCI6IHRydWUsXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5kZWZhdWx0XCI6IHtcblx0XHRcdFx0XHRcIiRFbnVtTWVtYmVyXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLmRlZmF1bHRUeXBlL1NVTVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5MYWJlbFwiOiBcIlNhbGVzIE51bWJlclwiLFxuXHRcdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGREZWZhdWx0XCI6IHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkXCIsXG5cdFx0XHRcdFx0XCJWYWx1ZVwiOiB7XG5cdFx0XHRcdFx0XHRcIiRQYXRoXCI6IFwiU2FsZXNOdW1iZXJcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9GaWx0ZXJSZXN0cmljdGlvbnNJbmZvID0ge1xuXHRcdFx0XHRwcm9wZXJ0eUluZm86IHt9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgb1NvcnRSZXN0cmljdGlvbnNJbmZvID0ge1xuXHRcdFx0XHRwcm9wZXJ0eUluZm86IHt9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3QgbUN1c3RvbUFnZ3JlZ2F0ZXMgPSB7XG5cdFx0XHRcdFwiU2FsZXNBbW91bnRcIjoge1xuXHRcdFx0XHRcdFwibmFtZVwiOiBcIlNhbGVzQW1vdW50XCIsXG5cdFx0XHRcdFx0XCJsYWJlbFwiOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFNhbGVzQW1vdW50KVwiLFxuXHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcInNvcnRPcmRlclwiOiBcImJvdGhcIixcblx0XHRcdFx0XHRcImNvbnRleHREZWZpbmluZ1Byb3BlcnR5XCI6IFtdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwiU2FsZXNBbW91bnRMb2NhbEN1cnJlbmN5XCI6IHtcblx0XHRcdFx0XHRcIm5hbWVcIjogXCJTYWxlc0Ftb3VudExvY2FsQ3VycmVuY3lcIixcblx0XHRcdFx0XHRcImxhYmVsXCI6IFwiQ3VzdG9tIEFnZ3JlZ2F0ZSAoU2FsZXNBbW91bnRMb2NhbEN1cnJlbmN5KVwiLFxuXHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcInNvcnRPcmRlclwiOiBcImJvdGhcIixcblx0XHRcdFx0XHRcImNvbnRleHREZWZpbmluZ1Byb3BlcnR5XCI6IFtdXG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBza2V5ID0gXCJTYWxlc0Ftb3VudFwiO1xuXHRcdFx0ZXhwZWN0KFxuXHRcdFx0XHRDaGFydERlbGVnYXRlLl9jcmVhdGVQcm9wZXJ0eUluZm9zRm9yQWdncmVnYXRhYmxlKFxuXHRcdFx0XHRcdHNrZXksXG5cdFx0XHRcdFx0b1Byb3BlcnR5QW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0b0ZpbHRlclJlc3RyaWN0aW9uc0luZm8sXG5cdFx0XHRcdFx0b1NvcnRSZXN0cmljdGlvbnNJbmZvLFxuXHRcdFx0XHRcdHt9LFxuXHRcdFx0XHRcdG1DdXN0b21BZ2dyZWdhdGVzXG5cdFx0XHRcdClcblx0XHRcdCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiX2hhbmRsZVByb3BlcnR5XCIsIGZ1bmN0aW9uKCkge1xuXHRcdGxldCBtRW50aXR5U2V0QW5ub3RhdGlvbnM6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdFx0bUVudGl0eVNldEFubm90YXRpb25zID0ge1xuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQ2FwYWJpbGl0aWVzLlYxLlNvcnRSZXN0cmljdGlvbnNcIjoge30sXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjEuRmlsdGVyUmVzdHJpY3Rpb25zXCI6IHt9XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHRcdGFmdGVyQWxsKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBub24gcHJvcGVydHlcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRjb25zdCBvTWV0YU1vZGVsTW9jayA9IG5ldyBNb2NrTWV0YU1vZGVsKCk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0fSk7XG5cdFx0XHRvTW9ja0NvbnRleHQuZ2V0UGF0aC5tb2NrUmV0dXJuVmFsdWUoXCIvU2FsZXNPcmRlck1hbmFnZS8kS2V5XCIpO1xuXHRcdFx0bGV0IGFQcm9wZXJ0aWVzOiBbXSA9IFtdO1xuXHRcdFx0Q2hhcnREZWxlZ2F0ZS5faGFuZGxlUHJvcGVydHkuY2FsbChvTW9ja0NvbnRleHQsIG1vY2tNZGNDaGFydCwgbUVudGl0eVNldEFubm90YXRpb25zLCB7fSwge30sIGFQcm9wZXJ0aWVzLCBcIlwiKTtcblx0XHRcdGV4cGVjdChhUHJvcGVydGllcykudG9FcXVhbChbXSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIF9oYW5kbGVQcm9wZXJ0eSBmb3IgYWdncmVnYXRhYmxlIHByb3BlcnR5IHBhcnQgb2YgYXBwbHlzdXBwb3J0ZWRcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBtb2NrTWRjQ2hhcnQuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcIkdyb3VwYWJsZVByb3BlcnRpZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIiRQcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdcIik7XG5cdFx0XHRjb25zdCBvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUgPSBqZXN0LnNweU9uKENoYXJ0RGVsZWdhdGUsIFwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGVcIik7XG5cdFx0XHRjb25zdCBhQWdncmVnYXRlUHJvcGVydGllczogYW55ID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwibWluUHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwicHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwibGFiZWxcIjogXCJNaW5pbWFsIE5ldCBBbW91bnRcIixcblx0XHRcdFx0XHRcInNvcnRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJmaWx0ZXJhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJncm91cGFibGVcIjogZmFsc2UsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImFnZ3JlZ2F0aW9uTWV0aG9kXCI6IFwibWluXCIsXG5cdFx0XHRcdFx0XCJtYXhDb25kaXRpb25zXCI6IC0xLFxuXHRcdFx0XHRcdFwia2luZFwiOiBcIkFnZ3JlZ2F0YWJsZVwiLFxuXHRcdFx0XHRcdFwiYXZhaWxhYmxlUm9sZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMxXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMVwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMyXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMlwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMzXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgM1wiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcInJvbGVcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFwiZGF0YXBvaW50XCI6IG51bGxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwibmFtZVwiOiBcIm1heFByaWNpbmdcIixcblx0XHRcdFx0XHRcInByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcdFx0XHRcImxhYmVsXCI6IFwiTWF4aW1hbCBOZXQgQW1vdW50XCIsXG5cdFx0XHRcdFx0XCJzb3J0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZmlsdGVyYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZ3JvdXBhYmxlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFwiYWdncmVnYXRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1heFwiLFxuXHRcdFx0XHRcdFwibWF4Q29uZGl0aW9uc1wiOiAtMSxcblx0XHRcdFx0XHRcImtpbmRcIjogXCJBZ2dyZWdhdGFibGVcIixcblx0XHRcdFx0XHRcImF2YWlsYWJsZVJvbGVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDFcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMlwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDJcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzM1wiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDNcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJyb2xlXCI6IFwiYXhpczFcIixcblx0XHRcdFx0XHRcImRhdGFwb2ludFwiOiBudWxsXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGFBZ2dyZWdhdGVQcm9wZXJ0aWVzO1xuXHRcdFx0fSk7XG5cdFx0XHRsZXQgYVByb3BlcnRpZXM6IFtdID0gW107XG5cdFx0XHRDaGFydERlbGVnYXRlLl9oYW5kbGVQcm9wZXJ0eS5jYWxsKG9Nb2NrQ29udGV4dCwgbW9ja01kY0NoYXJ0LCBtRW50aXR5U2V0QW5ub3RhdGlvbnMsIHt9LCB7fSwgYVByb3BlcnRpZXMsIFwiXCIpO1xuXHRcdFx0ZXhwZWN0KGFQcm9wZXJ0aWVzKS50b0VxdWFsKGFBZ2dyZWdhdGVQcm9wZXJ0aWVzKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBncm91cGFibGUgcHJvcGVydHkgcGFydCBvZiBhcHBseXN1cHBvcnRlZFwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG9WYWx1ZXNbXCJAc2FwdWkubmFtZVwiXSA9IFwiU2FsZXNPcmRlclwiO1xuXHRcdFx0Y29uc3Qgb01ldGFNb2RlbE1vY2sgPSBuZXcgTW9ja01ldGFNb2RlbChvVmFsdWVzKTtcblx0XHRcdGxldCBvTW9ja0NvbnRleHQgPSB7XG5cdFx0XHRcdGdldE1vZGVsOiBqZXN0LmZuKCgpID0+IG9NZXRhTW9kZWxNb2NrKSxcblx0XHRcdFx0Z2V0UGF0aDogamVzdC5mbigpXG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgb01vY2tQYXJzZUN1c3RvbURhdGEgPSBqZXN0LnNweU9uKENvbW1vbkhlbHBlciwgXCJwYXJzZUN1c3RvbURhdGFcIik7XG5cdFx0XHRvTW9ja1BhcnNlQ3VzdG9tRGF0YS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXBwbHlTdXBwb3J0ZWRUeXBlXCIsXG5cdFx0XHRcdFx0XCJBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCIkVHlwZVwiOiBcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5BZ2dyZWdhdGFibGVQcm9wZXJ0eVR5cGVcIixcblx0XHRcdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFwiR3JvdXBhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIlNhbGVzT3JkZXJcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdFx0b01vY2tDb250ZXh0LmdldFBhdGgubW9ja1JldHVyblZhbHVlKFwiL1NhbGVzT3JkZXJNYW5hZ2UvU2FsZXNPcmRlclwiKTtcblx0XHRcdGNvbnN0IGFHcm91cGFibGVQcm9wZXJ0aWVzOiBhbnkgPSBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcIm5hbWVcIjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdFx0XCJwcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdFx0XCJsYWJlbFwiOiBcIlNhbGVzIE9yZGVyXCIsXG5cdFx0XHRcdFx0XCJzb3J0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZmlsdGVyYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZ3JvdXBhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGFibGVcIjogZmFsc2UsXG5cdFx0XHRcdFx0XCJtYXhDb25kaXRpb25zXCI6IC0xLFxuXHRcdFx0XHRcdFwic29ydEtleVwiOiBcIlNhbGVzT3JkZXJcIixcblx0XHRcdFx0XHRcImtpbmRcIjogXCJHcm91cGFibGVcIixcblx0XHRcdFx0XHRcImF2YWlsYWJsZVJvbGVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJjYXRlZ29yeVwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJDYXRlZ29yeVwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImNhdGVnb3J5MlwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJDYXRlZ29yeSAyXCJcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwia2V5XCI6IFwic2VyaWVzXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIlNlcmllc1wiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcInJvbGVcIjogXCJjYXRlZ29yeVwiLFxuXHRcdFx0XHRcdFwiY3JpdGljYWxpdHlcIjogXCJQb3NpdGl2ZVwiLFxuXHRcdFx0XHRcdFwidGV4dFByb3BlcnR5XCI6IFwiU2FsZXNPcmRlclRleHRcIlxuXHRcdFx0XHR9XG5cdFx0XHRdO1xuXHRcdFx0bGV0IGFQcm9wZXJ0aWVzOiBhbnkgPSBbXTtcblx0XHRcdENoYXJ0RGVsZWdhdGUuX2hhbmRsZVByb3BlcnR5LmNhbGwob01vY2tDb250ZXh0LCBtb2NrTWRjQ2hhcnQsIG1FbnRpdHlTZXRBbm5vdGF0aW9ucywge30sIHt9LCBhUHJvcGVydGllcywgXCJQb3NpdGl2ZVwiKTtcblx0XHRcdGV4cGVjdChKU09OLnN0cmluZ2lmeShhUHJvcGVydGllc1swXSkpLnRvRXF1YWwoSlNPTi5zdHJpbmdpZnkoYUdyb3VwYWJsZVByb3BlcnRpZXNbMF0pKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBhZ2dyZWdhdGFibGUgcHJvcGVydHkgcGFydCBvZiBwcm9wZXJ0eSBsZXZlbCBhbm5vdGF0aW9uc1wiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG9WYWx1ZXNbXCJAc2FwdWkubmFtZVwiXSA9IFwiTmV0UHJpY2luZ1wiO1xuXHRcdFx0b1ZhbHVlc1tcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdAXCJdID0ge1xuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5TdXBwb3J0ZWRBZ2dyZWdhdGlvbk1ldGhvZHNcIjogW1wibWluXCIsIFwibWF4XCJdLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuUmVjb21tZW5kZWRBZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1heFwiLFxuXHRcdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuTGFiZWxcIjogXCJOZXQgUHJpY2luZ1wiXG5cdFx0XHR9IGFzIGFueTtcblx0XHRcdGNvbnN0IG9NZXRhTW9kZWxNb2NrID0gbmV3IE1vY2tNZXRhTW9kZWwob1ZhbHVlcyk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL05ldFByaWNpbmdcIik7XG5cdFx0XHRvVmFsdWVzW1wiQHNhcHVpLm5hbWVcIl0gPSBcIk5ldFByaWNpbmdcIjtcblx0XHRcdG9WYWx1ZXNbXCIvU2FsZXNPcmRlck1hbmFnZS9OZXRQcmljaW5nQFwiXSA9IHtcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFnZ3JlZ2F0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuU3VwcG9ydGVkQWdncmVnYXRpb25NZXRob2RzXCI6IFtcIm1pblwiLCBcIm1heFwiXSxcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLlJlY29tbWVuZGVkQWdncmVnYXRpb25NZXRob2RcIjogXCJtYXhcIixcblx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiTmV0IFByaWNpbmdcIlxuXHRcdFx0fSBhcyBhbnk7XG5cdFx0XHRjb25zdCBvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUgPSBqZXN0LnNweU9uKENoYXJ0RGVsZWdhdGUsIFwiX2NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGVcIik7XG5cdFx0XHRjb25zdCBhQWdncmVnYXRlUHJvcGVydGllczogYW55ID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwibWluUHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwicHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiLFxuXHRcdFx0XHRcdFwibGFiZWxcIjogXCJNaW5pbWFsIE5ldCBBbW91bnRcIixcblx0XHRcdFx0XHRcInNvcnRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJmaWx0ZXJhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJncm91cGFibGVcIjogZmFsc2UsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImFnZ3JlZ2F0aW9uTWV0aG9kXCI6IFwibWluXCIsXG5cdFx0XHRcdFx0XCJtYXhDb25kaXRpb25zXCI6IC0xLFxuXHRcdFx0XHRcdFwia2luZFwiOiBcIkFnZ3JlZ2F0YWJsZVwiLFxuXHRcdFx0XHRcdFwiYXZhaWxhYmxlUm9sZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMxXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMVwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMyXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgMlwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcImF4aXMzXCIsXG5cdFx0XHRcdFx0XHRcdFwidGV4dFwiOiBcIkF4aXMgM1wiXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcInJvbGVcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFwiZGF0YXBvaW50XCI6IG51bGxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwibmFtZVwiOiBcIm1heFByaWNpbmdcIixcblx0XHRcdFx0XHRcInByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcdFx0XHRcImxhYmVsXCI6IFwiTWF4aW1hbCBOZXQgQW1vdW50XCIsXG5cdFx0XHRcdFx0XCJzb3J0YWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZmlsdGVyYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiZ3JvdXBhYmxlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFwiYWdncmVnYXRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XCJhZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1heFwiLFxuXHRcdFx0XHRcdFwibWF4Q29uZGl0aW9uc1wiOiAtMSxcblx0XHRcdFx0XHRcImtpbmRcIjogXCJBZ2dyZWdhdGFibGVcIixcblx0XHRcdFx0XHRcImF2YWlsYWJsZVJvbGVzXCI6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMVwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDFcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzMlwiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDJcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJheGlzM1wiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJBeGlzIDNcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJyb2xlXCI6IFwiYXhpczFcIixcblx0XHRcdFx0XHRcImRhdGFwb2ludFwiOiBudWxsXG5cdFx0XHRcdH1cblx0XHRcdF07XG5cdFx0XHRvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3NGb3JBZ2dyZWdhdGFibGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGFBZ2dyZWdhdGVQcm9wZXJ0aWVzO1xuXHRcdFx0fSk7XG5cdFx0XHRsZXQgYVByb3BlcnRpZXM6IFtdID0gW107XG5cdFx0XHRDaGFydERlbGVnYXRlLl9oYW5kbGVQcm9wZXJ0eS5jYWxsKG9Nb2NrQ29udGV4dCwgbW9ja01kY0NoYXJ0LCBtRW50aXR5U2V0QW5ub3RhdGlvbnMsIHt9LCB7fSwgYVByb3BlcnRpZXMsIFwiXCIpO1xuXHRcdFx0ZXhwZWN0KGFQcm9wZXJ0aWVzKS50b0VxdWFsKGFBZ2dyZWdhdGVQcm9wZXJ0aWVzKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgX2hhbmRsZVByb3BlcnR5IGZvciBncm91cGFibGUgcHJvcGVydHkgcGFydCBvZiBwcm9wZXJ0eSBsZXZlbCBhbm5vdGF0aW9uc1wiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG9WYWx1ZXNbXCJAc2FwdWkubmFtZVwiXSA9IFwiU2FsZXNPcmRlclwiO1xuXHRcdFx0b1ZhbHVlc1tcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJAXCJdID0ge1xuXHRcdFx0XHRcIkBjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuVGV4dFwiOiB7XG5cdFx0XHRcdFx0XCIkUGF0aFwiOiBcIlNhbGVzT3JkZXJUZXh0XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkxhYmVsXCI6IFwiU2FsZXMgT3JkZXJcIixcblx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkdyb3VwYWJsZVwiOiB0cnVlXG5cdFx0XHR9IGFzIGFueTtcblx0XHRcdGNvbnN0IG9NZXRhTW9kZWxNb2NrID0gbmV3IE1vY2tNZXRhTW9kZWwob1ZhbHVlcyk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcIkdyb3VwYWJsZVByb3BlcnRpZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIiRQcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL1NhbGVzT3JkZXJcIik7XG5cdFx0XHRjb25zdCBhR3JvdXBhYmxlUHJvcGVydGllczogYW55ID0gW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0XCJuYW1lXCI6IFwiU2FsZXNPcmRlclwiLFxuXHRcdFx0XHRcdFwicHJvcGVydHlQYXRoXCI6IFwiU2FsZXNPcmRlclwiLFxuXHRcdFx0XHRcdFwibGFiZWxcIjogXCJTYWxlcyBPcmRlclwiLFxuXHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImZpbHRlcmFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcImdyb3VwYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFwiYWdncmVnYXRhYmxlXCI6IGZhbHNlLFxuXHRcdFx0XHRcdFwibWF4Q29uZGl0aW9uc1wiOiAtMSxcblx0XHRcdFx0XHRcInNvcnRLZXlcIjogXCJTYWxlc09yZGVyXCIsXG5cdFx0XHRcdFx0XCJraW5kXCI6IFwiR3JvdXBhYmxlXCIsXG5cdFx0XHRcdFx0XCJhdmFpbGFibGVSb2xlc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwia2V5XCI6IFwiY2F0ZWdvcnlcIixcblx0XHRcdFx0XHRcdFx0XCJ0ZXh0XCI6IFwiQ2F0ZWdvcnlcIlxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XCJrZXlcIjogXCJjYXRlZ29yeTJcIixcblx0XHRcdFx0XHRcdFx0XCJ0ZXh0XCI6IFwiQ2F0ZWdvcnkgMlwiXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcImtleVwiOiBcInNlcmllc1wiLFxuXHRcdFx0XHRcdFx0XHRcInRleHRcIjogXCJTZXJpZXNcIlxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdFx0XCJyb2xlXCI6IFwiY2F0ZWdvcnlcIixcblx0XHRcdFx0XHRcImNyaXRpY2FsaXR5XCI6IFwiTmVnYXRpdmVcIixcblx0XHRcdFx0XHRcInRleHRQcm9wZXJ0eVwiOiBcIlNhbGVzT3JkZXJUZXh0XCJcblx0XHRcdFx0fVxuXHRcdFx0XTtcblx0XHRcdGxldCBhUHJvcGVydGllczogYW55ID0gW107XG5cdFx0XHRDaGFydERlbGVnYXRlLl9oYW5kbGVQcm9wZXJ0eS5jYWxsKG9Nb2NrQ29udGV4dCwgbW9ja01kY0NoYXJ0LCBtRW50aXR5U2V0QW5ub3RhdGlvbnMsIHt9LCB7fSwgYVByb3BlcnRpZXMsIFwiTmVnYXRpdmVcIik7XG5cdFx0XHRleHBlY3QoSlNPTi5zdHJpbmdpZnkoYVByb3BlcnRpZXNbMF0pKS50b0VxdWFsKEpTT04uc3RyaW5naWZ5KGFHcm91cGFibGVQcm9wZXJ0aWVzWzBdKSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIF9oYW5kbGVQcm9wZXJ0eSB3aGljaCBpcyBuZWl0aGVyIGdyb3VwYWJsZSBub3IgYWdncmVnYXRhYmxlXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0b1ZhbHVlc1tcIkBzYXB1aS5uYW1lXCJdID0gXCJTb2xkVG9QYXJ0eVwiO1xuXHRcdFx0bGV0IG9NZXRhTW9kZWxNb2NrID0gbmV3IE1vY2tNZXRhTW9kZWwob1ZhbHVlcyk7XG5cdFx0XHRsZXQgb01vY2tDb250ZXh0ID0ge1xuXHRcdFx0XHRnZXRNb2RlbDogamVzdC5mbigoKSA9PiBvTWV0YU1vZGVsTW9jayksXG5cdFx0XHRcdGdldFBhdGg6IGplc3QuZm4oKVxuXHRcdFx0fTtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcIkdyb3VwYWJsZVByb3BlcnRpZXNcIjogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcIiRQcm9wZXJ0eVBhdGhcIjogXCJTYWxlc09yZGVyXCJcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQ29udGV4dC5nZXRQYXRoLm1vY2tSZXR1cm5WYWx1ZShcIi9TYWxlc09yZGVyTWFuYWdlL1NvbGRUb1BhcnR5XCIpO1xuXHRcdFx0bGV0IGFQcm9wZXJ0aWVzOiBhbnkgPSBbXTtcblx0XHRcdENoYXJ0RGVsZWdhdGUuX2hhbmRsZVByb3BlcnR5LmNhbGwob01vY2tDb250ZXh0LCBtb2NrTWRjQ2hhcnQsIG1FbnRpdHlTZXRBbm5vdGF0aW9ucywge30sIHt9LCBhUHJvcGVydGllcywgXCJcIik7XG5cdFx0XHRleHBlY3QoYVByb3BlcnRpZXMpLnRvRXF1YWwoW10pO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIl9jcmVhdGVQcm9wZXJ0eUluZm9zXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGxldCBvTW9ja1JlcXVlc3RPYmplY3Q6IGFueTtcblx0XHRsZXQgb01vY2tIYW5kbGVQcm9wZXJ0eTogYW55O1xuXHRcdGxldCBvTW9ja01vZGVsOiBhbnk7XG5cdFx0bGV0IG9Nb2NrTG9nRXJyb3I6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdFx0b01vY2tNb2RlbCA9IG1vY2tNZGNDaGFydC5nZXRNb2RlbCgpO1xuXHRcdFx0Y29uc3Qgb01vY2tNZXRhTW9kZWwgPSBvTW9ja01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0b01vY2tSZXF1ZXN0T2JqZWN0ID0gamVzdC5zcHlPbihvTW9ja01ldGFNb2RlbCwgXCJyZXF1ZXN0T2JqZWN0XCIpO1xuXHRcdFx0b01vY2tSZXF1ZXN0T2JqZWN0Lm1vY2tJbXBsZW1lbnRhdGlvbigoc1Byb3A6IGFueSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG5cdFx0XHRcdFx0aWYgKHNQcm9wID09PSBcIi9TYWxlc09yZGVyTWFuYWdlL1wiKSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlKHtcblx0XHRcdFx0XHRcdFx0XCIka2luZFwiOiBcIkVudGl0eVR5cGVcIixcblx0XHRcdFx0XHRcdFx0XCIkS2V5XCI6IFtcIklkXCJdLFxuXHRcdFx0XHRcdFx0XHRcIklkXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcIiRraW5kXCI6IFwiUHJvcGVydHlcIixcblx0XHRcdFx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiRWRtLkludDMyXCIsXG5cdFx0XHRcdFx0XHRcdFx0XCIkTnVsbGFibGVcIjogZmFsc2Vcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XCJSZWdpb25cIjoge1xuXHRcdFx0XHRcdFx0XHRcdFwiJGtpbmRcIjogXCJQcm9wZXJ0eVwiLFxuXHRcdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJFZG0uU3RyaW5nXCJcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XCJTYWxlc0Ftb3VudFwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0XCIka2luZFwiOiBcIlByb3BlcnR5XCIsXG5cdFx0XHRcdFx0XHRcdFx0XCIkVHlwZVwiOiBcIkVkbS5EZWNpbWFsXCIsXG5cdFx0XHRcdFx0XHRcdFx0XCIkUHJlY2lzaW9uXCI6IDE1LFxuXHRcdFx0XHRcdFx0XHRcdFwiJFNjYWxlXCI6IDNcblx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XCJOZXRQcmljaW5nXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcIiRraW5kXCI6IFwiUHJvcGVydHlcIixcblx0XHRcdFx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiRWRtLkRlY2ltYWxcIixcblx0XHRcdFx0XHRcdFx0XHRcIiRQcmVjaXNpb25cIjogMTUsXG5cdFx0XHRcdFx0XHRcdFx0XCIkU2NhbGVcIjogM1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmVzb2x2ZSh7XG5cdFx0XHRcdFx0XHRcdFwiQE9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5DdXN0b21BZ2dyZWdhdGUjU2FsZXNBbW91bnRcIjogXCJFZG0uRGVjaW1hbFwiLFxuXHRcdFx0XHRcdFx0XHRcIkBPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQ3VzdG9tQWdncmVnYXRlI1NhbGVzTnVtYmVyXCI6IFwiRWRtLkRlY2ltYWxcIixcblx0XHRcdFx0XHRcdFx0XCJAT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkXCI6IHtcblx0XHRcdFx0XHRcdFx0XHRcIiRUeXBlXCI6IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiLFxuXHRcdFx0XHRcdFx0XHRcdFwiR3JvdXBhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIk5hbWVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IFwiUmVnaW9uXCJcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdLFxuXHRcdFx0XHRcdFx0XHRcdFwiQWdncmVnYXRhYmxlUHJvcGVydGllc1wiOiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiJFR5cGVcIjogXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQWdncmVnYXRhYmxlUHJvcGVydHlUeXBlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiUHJvcGVydHlcIjoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBcIlNhbGVzQW1vdW50XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCIkVHlwZVwiOiBcIk9yZy5PRGF0YS5BZ2dyZWdhdGlvbi5WMS5BZ2dyZWdhdGFibGVQcm9wZXJ0eVR5cGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XCJQcm9wZXJ0eVwiOiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IFwiTmV0UHJpY2luZ1wiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHNFbnRpdHlTZXQgPSBcIlNhbGVzT3JkZXJNYW5hZ2VcIjtcblx0XHRcdGNvbnN0IG9Nb2NrUGFyc2VDdXN0b21EYXRhID0gamVzdC5zcHlPbihDb21tb25IZWxwZXIsIFwicGFyc2VDdXN0b21EYXRhXCIpO1xuXHRcdFx0b01vY2tQYXJzZUN1c3RvbURhdGEubW9ja0ltcGxlbWVudGF0aW9uKHNQcm9wID0+IHtcblx0XHRcdFx0aWYgKHNQcm9wID09PSBcIkN1c3RvbUFnZ3JlZ2F0ZXNcIikge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcIlNhbGVzQW1vdW50XCI6IHtcblx0XHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwiU2FsZXNBbW91bnRcIixcblx0XHRcdFx0XHRcdFx0XCJsYWJlbFwiOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFNhbGVzQW1vdW50KVwiLFxuXHRcdFx0XHRcdFx0XHRcInNvcnRhYmxlXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFwic29ydE9yZGVyXCI6IFwiYm90aFwiLFxuXHRcdFx0XHRcdFx0XHRcImNvbnRleHREZWZpbmluZ1Byb3BlcnR5XCI6IFtdXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XCJtaW5QcmljaW5nXCI6IHtcblx0XHRcdFx0XHRcdFx0XCJuYW1lXCI6IFwibWluUHJpY2luZ1wiLFxuXHRcdFx0XHRcdFx0XHRcInByb3BlcnR5UGF0aFwiOiBcIk5ldFByaWNpbmdcIixcblx0XHRcdFx0XHRcdFx0XCJhZ2dyZWdhdGlvbk1ldGhvZFwiOiBcIm1pblwiLFxuXHRcdFx0XHRcdFx0XHRcImxhYmVsXCI6IFwiTWluaW1hbCBOZXQgQW1vdW50XCIsXG5cdFx0XHRcdFx0XHRcdFwic29ydGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XCJzb3J0T3JkZXJcIjogXCJib3RoXCIsXG5cdFx0XHRcdFx0XHRcdFwiY3VzdG9tXCI6IGZhbHNlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBvTW9ja0ZldGNoQ3JpdGljYWxpdHkgPSBqZXN0LnNweU9uKE9EYXRhTWV0YU1vZGVsVXRpbCwgXCJmZXRjaENyaXRpY2FsaXR5XCIpO1xuXHRcdFx0b01vY2tGZXRjaENyaXRpY2FsaXR5Lm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblx0XHRcdFx0XHRyZXNvbHZlKHt9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrTG9nRXJyb3IgPSBqZXN0LnNweU9uKExvZywgXCJlcnJvclwiKTtcblx0XHRcdG9Nb2NrTG9nRXJyb3IubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0fSk7XG5cdFx0XHRvTW9ja0hhbmRsZVByb3BlcnR5ID0gamVzdC5zcHlPbihDaGFydERlbGVnYXRlLCBcIl9oYW5kbGVQcm9wZXJ0eVwiKTtcblx0XHRcdG9Nb2NrSGFuZGxlUHJvcGVydHkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXHRcdFx0XHRcdHJlc29sdmUoe30pO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHRcdGFmdGVyQWxsKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdH0pO1xuXHRcdGl0KFwiY2hlY2sgX2NyZWF0ZVByb3BlcnR5SW5mb3MgZm9yIHNhbWUgZGltZW5zaW9uIGFuZCBtZWFzdXJlXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEl0ZW1zLm1vY2tSZXR1cm5WYWx1ZShbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRnZXRLZXk6IGplc3QuZm4oKCkgPT4gXCJTYWxlc0Ftb3VudFwiKSxcblx0XHRcdFx0XHRpc0E6IGplc3QuZm4oc1Byb3AgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHNQcm9wID09PSBcInNhcC51aS5tZGMuY2hhcnQuRGltZW5zaW9uSXRlbVwiKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRnZXRLZXk6IGplc3QuZm4oKCkgPT4gXCJTYWxlc0Ftb3VudFwiKSxcblx0XHRcdFx0XHRpc0E6IGplc3QuZm4oc1Byb3AgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHNQcm9wID09PSBcInNhcC51aS5tZGMuY2hhcnQuTWVhc3VyZUl0ZW1cIikge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KVxuXHRcdFx0XHR9XG5cdFx0XHRdKTtcblx0XHRcdGF3YWl0IENoYXJ0RGVsZWdhdGUuX2NyZWF0ZVByb3BlcnR5SW5mb3MobW9ja01kY0NoYXJ0LCBvTW9ja01vZGVsKTtcblx0XHRcdGV4cGVjdChvTW9ja0xvZ0Vycm9yLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlKDEpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrSGFuZGxlUHJvcGVydHkubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoNCk7XG5cdFx0fSk7XG5cdFx0aXQoXCJjaGVjayBfY3JlYXRlUHJvcGVydHlJbmZvcyBmb3IgZGlmZmVyZW50IGRpbWVuc2lvbiBhbmQgbWVhc3VyZVwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG1vY2tNZGNDaGFydC5nZXRJdGVtcy5tb2NrUmV0dXJuVmFsdWUoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Z2V0S2V5OiBqZXN0LmZuKCgpID0+IFwiUmVnaW9uXCIpLFxuXHRcdFx0XHRcdGlzQTogamVzdC5mbihzUHJvcCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoc1Byb3AgPT09IFwic2FwLnVpLm1kYy5jaGFydC5EaW1lbnNpb25JdGVtXCIpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGdldEtleTogamVzdC5mbigoKSA9PiBcIlNhbGVzQW1vdW50XCIpLFxuXHRcdFx0XHRcdGlzQTogamVzdC5mbihzUHJvcCA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoc1Byb3AgPT09IFwic2FwLnVpLm1kYy5jaGFydC5NZWFzdXJlSXRlbVwiKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdFx0YXdhaXQgQ2hhcnREZWxlZ2F0ZS5fY3JlYXRlUHJvcGVydHlJbmZvcyhtb2NrTWRjQ2hhcnQsIG9Nb2NrTW9kZWwpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrSGFuZGxlUHJvcGVydHkubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoNCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZmV0Y2hQcm9wZXJ0aWVzXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGxldCBvTW9ja0NyZWF0ZVByb3BlcnR5SW5mb3M6IGFueTtcblx0XHRsZXQgb01vY2tNRENDaGFydERhdGE6IGFueTtcblx0XHRsZXQgb01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2U6IGFueTtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdGplc3QuY2xlYXJBbGxNb2NrcygpO1xuXHRcdFx0b01vY2tDcmVhdGVQcm9wZXJ0eUluZm9zID0gamVzdC5zcHlPbihDaGFydERlbGVnYXRlLCBcIl9jcmVhdGVQcm9wZXJ0eUluZm9zXCIpO1xuXHRcdFx0b01vY2tDcmVhdGVQcm9wZXJ0eUluZm9zLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcblx0XHRcdFx0XHRyZXNvbHZlKFtdKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrQXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlID0gamVzdC5zcHlPbihtb2NrTWRjQ2hhcnQsIFwiYXR0YWNoTW9kZWxDb250ZXh0Q2hhbmdlXCIpO1xuXHRcdFx0b01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UubW9ja0ltcGxlbWVudGF0aW9uKChvYmoxOiBhbnksIGZuOiBhbnksIG9DaGFydERlbGVnYXRlOiBhbnkpID0+IHtcblx0XHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Nb2NrRXZlbnQgPSB7XG5cdFx0XHRcdFx0XHRnZXRTb3VyY2U6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge307XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRjb25zdCBvTW9ja0RhdGEgPSB7XG5cdFx0XHRcdFx0XHRyZXNvbHZlcjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGZuLmNhbGwoQ2hhcnREZWxlZ2F0ZSwgb01vY2tFdmVudCwgb01vY2tEYXRhKTtcblx0XHRcdFx0XHRyZXNvbHZlKHt9KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdG9Nb2NrTURDQ2hhcnREYXRhID0gamVzdC5zcHlPbihtb2NrTWRjQ2hhcnQsIFwiZGF0YVwiKTtcblx0XHR9KTtcblx0XHRhZnRlckFsbCgoKSA9PiB7XG5cdFx0XHRqZXN0LmNsZWFyQWxsTW9ja3MoKTtcblx0XHR9KTtcblx0XHRpdChcImNoZWNrIGZldGNoUHJvcGVydGllcyB3aGVuIG1vZGVsIGlzIG5vdCBhdmFpbGFibGVcIiwgZnVuY3Rpb24oKSB7XG5cdFx0XHRjb25zdCBvTW9ja0dldE1vZGVsRm9yQ2hhcnREZWxlZ2F0ZSA9IGplc3Quc3B5T24oQ2hhcnREZWxlZ2F0ZSwgXCJfZ2V0TW9kZWxcIik7XG5cdFx0XHRvTW9ja0dldE1vZGVsRm9yQ2hhcnREZWxlZ2F0ZS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gXCJcIjtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgYVByb3BzID0gQ2hhcnREZWxlZ2F0ZS5mZXRjaFByb3BlcnRpZXMobW9ja01kY0NoYXJ0KS50aGVuKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRleHBlY3QoYVByb3BzKS50b0VxdWFsKFtdKTtcblx0XHRcdFx0ZXhwZWN0KG9Nb2NrTURDQ2hhcnREYXRhKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIkbWRjQ2hhcnRQcm9wZXJ0eUluZm9cIiwgW10pO1xuXHRcdFx0XHRleHBlY3Qob01vY2tDcmVhdGVQcm9wZXJ0eUluZm9zLm1vY2suY2FsbHMubGVuZ3RoKS50b0JlKDEpO1xuXHRcdFx0XHRleHBlY3Qob01vY2tBdHRhY2hNb2RlbENvbnRleHRDaGFuZ2UubW9jay5jYWxscy5sZW5ndGgpLnRvQmUoMSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGl0KFwiY2hlY2sgZmV0Y2hQcm9wZXJ0aWVzIHdoZW4gbW9kZWwgaXMgYXZhaWxhYmxlXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29uc3Qgb01vY2tHZXRNb2RlbEZvckNoYXJ0RGVsZWdhdGUgPSBqZXN0LnNweU9uKENoYXJ0RGVsZWdhdGUsIFwiX2dldE1vZGVsXCIpO1xuXHRcdFx0b01vY2tHZXRNb2RlbEZvckNoYXJ0RGVsZWdhdGUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IGFQcm9wcyA9IGF3YWl0IENoYXJ0RGVsZWdhdGUuZmV0Y2hQcm9wZXJ0aWVzKG1vY2tNZGNDaGFydCk7XG5cblx0XHRcdGV4cGVjdChhUHJvcHMpLnRvRXF1YWwoW10pO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrTURDQ2hhcnREYXRhKS50b0hhdmVCZWVuTGFzdENhbGxlZFdpdGgoXCIkbWRjQ2hhcnRQcm9wZXJ0eUluZm9cIiwgW10pO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrQ3JlYXRlUHJvcGVydHlJbmZvcy5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZSgxKTtcblx0XHRcdGV4cGVjdChvTW9ja0F0dGFjaE1vZGVsQ29udGV4dENoYW5nZS5tb2NrLmNhbGxzLmxlbmd0aCkudG9CZSgwKTtcblx0XHR9KTtcblx0fSk7XG59KTtcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChartDelegate, CommonHelper, ODataMetaModelUtil } from "sap/fe/macros";
|
|
2
2
|
import { MockMetaModel, MockModel } from "sap/fe/test/UI5MockHelper";
|
|
3
|
-
import
|
|
3
|
+
import Log from "sap/base/Log";
|
|
4
4
|
const spyRequests = jest.fn();
|
|
5
5
|
describe("ChartDelegate", function() {
|
|
6
6
|
const mockModel = new MockModel();
|
|
@@ -112,25 +112,37 @@ sap.ui.define(["sap/fe/macros/Chart.metadata", "sap/fe/test/JestTemplatingHelper
|
|
|
112
112
|
return Promise.reject(e);
|
|
113
113
|
}
|
|
114
114
|
});
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
115
|
+
it("Bar chart without qualifer, no search support", function () {
|
|
116
|
+
try {
|
|
117
|
+
var mBindingContexts = {
|
|
118
|
+
"collection": "/Items2",
|
|
119
|
+
"chartAnnotation": "/Items2/$Type/@com.sap.vocabularies.UI.v1.Chart"
|
|
120
|
+
};
|
|
121
|
+
var xml = "<macro:Chart xmlns:macro=\"sap.fe.macros\"\n id=\"def\"\n contextPath=\"{collection>}\"\n metaPath=\"{chartAnnotation>}\"\n />";
|
|
122
|
+
return Promise.resolve(getTemplatedXML(xml, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
|
|
123
|
+
expect(templatedXML).toMatchSnapshot();
|
|
124
|
+
});
|
|
125
|
+
} catch (e) {
|
|
126
|
+
return Promise.reject(e);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
it("Check the filterbar is properly referenced for Builbing Blocks", function () {
|
|
130
|
+
try {
|
|
131
|
+
var mBindingContexts = {
|
|
132
|
+
"collection": "/Items2",
|
|
133
|
+
"chartAnnotation": "/Items2/$Type/@com.sap.vocabularies.UI.v1.Chart"
|
|
134
|
+
};
|
|
135
|
+
var xml = "<macro:Chart xmlns:macro=\"sap.fe.macros\"\n id=\"def\"\n contextPath=\"{collection>}\"\n metaPath=\"{chartAnnotation>}\"\n\t\t\t\t\t\tfilterBar=\"filterbarid\"\n />";
|
|
136
|
+
return Promise.resolve(getTemplatedXML(xml, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
|
|
137
|
+
var parser = new DOMParser();
|
|
138
|
+
var xmlDoc = parser.parseFromString(templatedXML, "text/xml");
|
|
139
|
+
var chart = xmlDoc.getElementsByTagName("mdc:Chart")[0];
|
|
140
|
+
expect(chart.getAttribute("filter")).toEqual("filterbarid-content");
|
|
141
|
+
});
|
|
142
|
+
} catch (e) {
|
|
143
|
+
return Promise.reject(e);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
134
146
|
});
|
|
135
147
|
}, false);
|
|
136
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0TWFjcm8uc3BlYy50cyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImJlZm9yZUFsbCIsInJlZ2lzdGVyTWFjcm8iLCJDaGFydE1ldGFkYXRhIiwic01ldGFkYXRhVXJsIiwiY29tcGlsZUNEUyIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiaXQiLCJtQmluZGluZ0NvbnRleHRzIiwieG1sIiwiZ2V0VGVtcGxhdGVkWE1MIiwidGVtcGxhdGVkWE1MIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7OztBQUVBQSxFQUFBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdkJDLElBQUFBLFNBQVMsQ0FBQyxZQUFNO0FBQ2ZDLE1BQUFBLGFBQWEsQ0FBQ0MsYUFBRCxDQUFiO0FBQ0EsS0FGUSxDQUFUO0FBSUEsUUFBTUMsWUFBWSxHQUFHQyxVQUFVLENBQUNDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGtCQUFyQixDQUFELENBQS9CO0FBRUFDLElBQUFBLEVBQUUsQ0FBQyw0QkFBRDtBQUFBLFVBQTJDO0FBQzVDLFlBQU1DLGdCQUFnQixHQUFHO0FBQ3hCLHdCQUFjLFFBRFU7QUFFeEIsNkJBQW1CO0FBRkssU0FBekI7QUFJQSxZQUFNQyxHQUFHLCtNQUFUO0FBTDRDLCtCQVVqQkMsZUFBZSxDQUFDRCxHQUFELEVBQU1QLFlBQU4sRUFBb0JNLGdCQUFwQixFQUFzQyxFQUF0QyxDQVZFLGlCQVV0Q0csWUFWc0M7QUFXNUNDLFVBQUFBLE1BQU0sQ0FBQ0QsWUFBRCxDQUFOLENBQXFCRSxlQUFyQjtBQVg0QztBQVk1QyxPQVpDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFjQU4sSUFBQUEsRUFBRSxDQUFDLDRCQUFEO0FBQUEsVUFBMkM7QUFDNUMsWUFBTUMsZ0JBQWdCLEdBQUc7QUFDeEIsd0JBQWMsUUFEVTtBQUV4Qiw2QkFBbUI7QUFGSyxTQUF6QjtBQUlBLFlBQU1DLEdB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b250ZW50IjpbImltcG9ydCBDaGFydE1ldGFkYXRhIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NoYXJ0Lm1ldGFkYXRhXCI7XG5pbXBvcnQgeyBjb21waWxlQ0RTLCBnZXRUZW1wbGF0ZWRYTUwsIHJlZ2lzdGVyTWFjcm8gfSBmcm9tIFwic2FwL2ZlL3Rlc3QvSmVzdFRlbXBsYXRpbmdIZWxwZXJcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZGVzY3JpYmUoXCJDaGFydFwiLCAoKSA9PiB7XG5cdGJlZm9yZUFsbCgoKSA9PiB7XG5cdFx0cmVnaXN0ZXJNYWNybyhDaGFydE1ldGFkYXRhKTtcblx0fSk7XG5cblx0Y29uc3Qgc01ldGFkYXRhVXJsID0gY29tcGlsZUNEUyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4vZGF0YS9DaGFydC5jZHNcIikpO1xuXG5cdGl0KFwiQ29sdW1uIGNoYXJ0IHdpdGggcXVhbGlmZXJcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydCNDb2x1bW5cIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhYmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcbiAgICAgICAgLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWwsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkJhciBjaGFydCB3aXRob3V0IHF1YWxpZmVyXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXHRcdFx0XCJjb2xsZWN0aW9uXCI6IFwiL0l0ZW1zXCIsXG5cdFx0XHRcImNoYXJ0QW5ub3RhdGlvblwiOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJkZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcbiAgICAgICAgLz5gO1xuXG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiQmFyIGNoYXJ0IHdpdGggUFZcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QcmVzZW50YXRpb25WYXJpYW50XCJcblx0XHR9O1xuXHRcdGNvbnN0IHhtbCA9IGA8bWFjcm86Q2hhcnQgeG1sbnM6bWFjcm89XCJzYXAuZmUubWFjcm9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZ2hpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRQYXRoPVwie2NvbGxlY3Rpb24+fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntjaGFydEFubm90YXRpb24+fVwiXG4gICAgICAgIC8+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWwsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkJhciBjaGFydCB3aXRoIHNlbGVjdGlvbiBtb2RlXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXHRcdFx0XCJjb2xsZWN0aW9uXCI6IFwiL0l0ZW1zXCIsXG5cdFx0XHRcImNoYXJ0QW5ub3RhdGlvblwiOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJwcXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcblx0XHRcdFx0XHRcdHNlbGVjdGlvbk1vZGU9XCJTSU5HTEVcIlxuICAgICAgICAvPmA7XG5cblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJCYXIgY2hhcnQgd2l0aCBzZWxlY3Rpb24gbW9kZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcdFwiY29sbGVjdGlvblwiOiBcIi9JdGVtc1wiLFxuXHRcdFx0XCJjaGFydEFubm90YXRpb25cIjogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0XCJcblx0XHR9O1xuXHRcdGNvbnN0IHhtbCA9IGA8bWFjcm86Q2hhcnQgeG1sbnM6bWFjcm89XCJzYXAuZmUubWFjcm9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwieHl6XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRQYXRoPVwie2NvbGxlY3Rpb24+fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntjaGFydEFubm90YXRpb24+fVwiXG5cdFx0XHRcdFx0XHRzZWxlY3Rpb25Nb2RlPVwiTVVMVElQTEVcIlxuICAgICAgICAvPmA7XG5cblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJCYXIgY2hhcnQgd2l0aCBwZXJzb25hbGl6YXRpb25cIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiXG5cdFx0fTtcblx0XHRjb25zdCB4bWwgPSBgPG1hY3JvOkNoYXJ0IHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInV2d1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0UGF0aD1cIntjb2xsZWN0aW9uPn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7Y2hhcnRBbm5vdGF0aW9uPn1cIlxuXHRcdFx0XHRcdFx0cGVyc29uYWxpemF0aW9uPVwiVHlwZSxJdGVtXCJcbiAgICAgICAgLz5gO1xuXG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiQmFyIGNoYXJ0IHdpdGggcGVyc29uYWxpemF0aW9uXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXHRcdFx0XCJjb2xsZWN0aW9uXCI6IFwiL0l0ZW1zXCIsXG5cdFx0XHRcImNoYXJ0QW5ub3RhdGlvblwiOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJqa2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcblx0XHRcdFx0XHRcdHBlcnNvbmFsaXphdGlvbj1cIlNvcnRcIlxuICAgICAgICAvPmA7XG5cblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0LyppdChcIkNvbHVtbiBjaGFydCB3aXRoIHZhcmllZCBoZWlnaHQgYW5kIHdpZHRoXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydCNDb2x1bW5cIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJkZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcblx0XHRcdFx0XHRcdHBlcnNvbmFsaXphdGlvbj1cIlR5cGUsSXRlbVwiXG5cdFx0XHRcdFx0XHRoZWlnaHQ9XCIyMDBweFwiXG5cdFx0XHRcdFx0XHR3aWR0aD1cIjk1JVwiXG4gICAgICAgIC8+YDtcblxuXHRcdGNvbnN0IG1JbnRlcm5hbE1vZGVscyA9IHtcblx0XHRcdFwiY29udmVydGVyQ29udGV4dFwiOiBuZXcgSlNPTk1vZGVsKHt9KVxuXHRcdH07XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCBtSW50ZXJuYWxNb2RlbHMpO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcdCovXG59KTtcbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0TWFjcm8uc3BlYy50cyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImJlZm9yZUFsbCIsInJlZ2lzdGVyTWFjcm8iLCJDaGFydE1ldGFkYXRhIiwic01ldGFkYXRhVXJsIiwiY29tcGlsZUNEUyIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiaXQiLCJtQmluZGluZ0NvbnRleHRzIiwieG1sIiwiZ2V0VGVtcGxhdGVkWE1MIiwidGVtcGxhdGVkWE1MIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90IiwicGFyc2VyIiwiRE9NUGFyc2VyIiwieG1sRG9jIiwicGFyc2VGcm9tU3RyaW5nIiwiY2hhcnQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImdldEF0dHJpYnV0ZSIsInRvRXF1YWwiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBRUFBLEVBQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsWUFBTTtBQUN2QkMsSUFBQUEsU0FBUyxDQUFDLFlBQU07QUFDZkMsTUFBQUEsYUFBYSxDQUFDQyxhQUFELENBQWI7QUFDQSxLQUZRLENBQVQ7QUFJQSxRQUFNQyxZQUFZLEdBQUdDLFVBQVUsQ0FBQ0MsSUFBSSxDQUFDQyxJQUFMLENBQVVDLFNBQVYsRUFBcUIsa0JBQXJCLENBQUQsQ0FBL0I7QUFFQUMsSUFBQUEsRUFBRSxDQUFDLDRCQUFEO0FBQUEsVUFBMkM7QUFDNUMsWUFBTUMsZ0JBQWdCLEdBQUc7QUFDeEIsd0JBQWMsUUFEVTtBQUV4Qiw2QkFBbUI7QUFGSyxTQUF6QjtBQUlBLFlBQU1DLEdBQUcsK01BQVQ7QUFMNEMsK0JBVWpCQyxlQUFlLENBQUNELEdBQUQsRUFBTVAsWUFBTixFQUFvQk0sZ0JBQXBCLEVBQXNDLEVBQXRDLENBVkUsaUJBVXRDRyxZQVZzQztBQVc1Q0MsVUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBWDRDO0FBWTVDLE9BWkM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQWNBTixJQUFBQSxF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QUE4RDtBQUMvRCxZQUFNQyxnQkFBZ0IsR0FBRztBQUN4Qix3QkFBYyxTQURVO0FBRXhCLDZCQUFtQjtBQUZLLFNBQXpCO0FBSUEsWUFBTUMsR0FBRywrTUFBVDtBQUwrRCwrQkFXcENDLGVBQWUsQ0FBQ0QsR0FBRCxFQUFNUCxZQUFOLEVBQW9CTSxnQkFBcEIsRUFBc0MsRUFBdEMsQ0FYcUIsaUJBV3pERyxZQVh5RDtBQVkvREMsVUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBWitEO0FBYS9ELE9BYkM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQWVBTixJQUFBQSxFQUFFLENBQUMsZ0VBQUQ7QUFBQSxVQUErRTtBQUNoRixZQUFNQyxnQkFBZ0IsR0FBRztBQUN4Qix3QkFBYyxTQURVO0FBRXhCLDZCQUFtQjtBQUZLLFNBQXpCO0FBSUEsWUFBTUMsR0FBRyxzUEFBVDtBQUxnRiwrQkFZckRDLGVBQWUsQ0FBQ0QsR0FBRCxFQUFNUCxZQUFOLEVBQW9CTSxnQkFBcEIsRUFBc0MsRUFBdEMsQ0Fac0MsaUJBWTFFRyxZQVowRTtBQWFoRixjQUFNRyxNQUFNLEdBQUcsSUFBSUMsU0FBSixFQUFmO0FBQ0EsY0FBTUMsTUFBTSxHQUFHRixNQUFNLENBQUNHLGVBQVAsQ0FBdUJOLFlBQXZCLEVBQXFDLFVBQXJDLENBQWY7QUFDQSxjQUFNTyxLQUFLLEdBQUdGLE1BQU0sQ0FBQ0csb0JBQVAsQ0FBNEIsV0FBNUIsRUFBeUMsQ0FBekMsQ0FBZDtBQUNBUCxVQUFBQSxNQUFNLENBQUNNLEtBQUssQ0FBQ0UsWUFBTixDQUFtQixRQUFuQixDQUFELENBQU4sQ0FBcUNDLE9BQXJDLENBQTZDLHFCQUE3QztBQWhCZ0Y7QUFpQmhGLE9BakJDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFrQkEsR0FwSk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENoYXJ0TWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvQ2hhcnQubWV0YWRhdGFcIjtcbmltcG9ydCB7IGNvbXBpbGVDRFMsIGdldFRlbXBsYXRlZFhNTCwgcmVnaXN0ZXJNYWNybyB9IGZyb20gXCJzYXAvZmUvdGVzdC9KZXN0VGVtcGxhdGluZ0hlbHBlclwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5kZXNjcmliZShcIkNoYXJ0XCIsICgpID0+IHtcblx0YmVmb3JlQWxsKCgpID0+IHtcblx0XHRyZWdpc3Rlck1hY3JvKENoYXJ0TWV0YWRhdGEpO1xuXHR9KTtcblxuXHRjb25zdCBzTWV0YWRhdGFVcmwgPSBjb21waWxlQ0RTKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9kYXRhL0NoYXJ0LmNkc1wiKSk7XG5cblx0aXQoXCJDb2x1bW4gY2hhcnQgd2l0aCBxdWFsaWZlclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcdFwiY29sbGVjdGlvblwiOiBcIi9JdGVtc1wiLFxuXHRcdFx0XCJjaGFydEFubm90YXRpb25cIjogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0I0NvbHVtblwiXG5cdFx0fTtcblx0XHRjb25zdCB4bWwgPSBgPG1hY3JvOkNoYXJ0IHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFiY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0UGF0aD1cIntjb2xsZWN0aW9uPn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7Y2hhcnRBbm5vdGF0aW9uPn1cIlxuICAgICAgICAvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiQmFyIGNoYXJ0IHdpdGhvdXQgcXVhbGlmZXJcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiXG5cdFx0fTtcblx0XHRjb25zdCB4bWwgPSBgPG1hY3JvOkNoYXJ0IHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImRlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0UGF0aD1cIntjb2xsZWN0aW9uPn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7Y2hhcnRBbm5vdGF0aW9uPn1cIlxuICAgICAgICAvPmA7XG5cblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJCYXIgY2hhcnQgd2l0aCBQVlwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcdFwiY29sbGVjdGlvblwiOiBcIi9JdGVtc1wiLFxuXHRcdFx0XCJjaGFydEFubm90YXRpb25cIjogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlByZXNlbnRhdGlvblZhcmlhbnRcIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJnaGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcbiAgICAgICAgLz5gO1xuXG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiQmFyIGNoYXJ0IHdpdGggc2VsZWN0aW9uIG1vZGVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiXG5cdFx0fTtcblx0XHRjb25zdCB4bWwgPSBgPG1hY3JvOkNoYXJ0IHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInBxclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0UGF0aD1cIntjb2xsZWN0aW9uPn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7Y2hhcnRBbm5vdGF0aW9uPn1cIlxuXHRcdFx0XHRcdFx0c2VsZWN0aW9uTW9kZT1cIlNJTkdMRVwiXG4gICAgICAgIC8+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWwsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkJhciBjaGFydCB3aXRoIHNlbGVjdGlvbiBtb2RlXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXHRcdFx0XCJjb2xsZWN0aW9uXCI6IFwiL0l0ZW1zXCIsXG5cdFx0XHRcImNoYXJ0QW5ub3RhdGlvblwiOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ4eXpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcblx0XHRcdFx0XHRcdHNlbGVjdGlvbk1vZGU9XCJNVUxUSVBMRVwiXG4gICAgICAgIC8+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWwsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkJhciBjaGFydCB3aXRoIHBlcnNvbmFsaXphdGlvblwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcdFwiY29sbGVjdGlvblwiOiBcIi9JdGVtc1wiLFxuXHRcdFx0XCJjaGFydEFubm90YXRpb25cIjogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0XCJcblx0XHR9O1xuXHRcdGNvbnN0IHhtbCA9IGA8bWFjcm86Q2hhcnQgeG1sbnM6bWFjcm89XCJzYXAuZmUubWFjcm9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXZ3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRQYXRoPVwie2NvbGxlY3Rpb24+fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntjaGFydEFubm90YXRpb24+fVwiXG5cdFx0XHRcdFx0XHRwZXJzb25hbGl6YXRpb249XCJUeXBlLEl0ZW1cIlxuICAgICAgICAvPmA7XG5cblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJCYXIgY2hhcnQgd2l0aCBwZXJzb25hbGl6YXRpb25cIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXNcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5DaGFydFwiXG5cdFx0fTtcblx0XHRjb25zdCB4bWwgPSBgPG1hY3JvOkNoYXJ0IHhtbG5zOm1hY3JvPVwic2FwLmZlLm1hY3Jvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImprbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0UGF0aD1cIntjb2xsZWN0aW9uPn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7Y2hhcnRBbm5vdGF0aW9uPn1cIlxuXHRcdFx0XHRcdFx0cGVyc29uYWxpemF0aW9uPVwiU29ydFwiXG4gICAgICAgIC8+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWwsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkJhciBjaGFydCB3aXRob3V0IHF1YWxpZmVyLCBubyBzZWFyY2ggc3VwcG9ydFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcdFwiY29sbGVjdGlvblwiOiBcIi9JdGVtczJcIixcblx0XHRcdFwiY2hhcnRBbm5vdGF0aW9uXCI6IFwiL0l0ZW1zMi8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIlxuXHRcdH07XG5cdFx0Y29uc3QgeG1sID0gYDxtYWNybzpDaGFydCB4bWxuczptYWNybz1cInNhcC5mZS5tYWNyb3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJkZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFBhdGg9XCJ7Y29sbGVjdGlvbj59XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2NoYXJ0QW5ub3RhdGlvbj59XCJcbiAgICAgICAgLz5gO1xuXG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiQ2hlY2sgdGhlIGZpbHRlcmJhciBpcyBwcm9wZXJseSByZWZlcmVuY2VkIGZvciBCdWlsYmluZyBCbG9ja3NcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XHRcImNvbGxlY3Rpb25cIjogXCIvSXRlbXMyXCIsXG5cdFx0XHRcImNoYXJ0QW5ub3RhdGlvblwiOiBcIi9JdGVtczIvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkNoYXJ0XCJcblx0XHR9O1xuXHRcdGNvbnN0IHhtbCA9IGA8bWFjcm86Q2hhcnQgeG1sbnM6bWFjcm89XCJzYXAuZmUubWFjcm9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGVmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRQYXRoPVwie2NvbGxlY3Rpb24+fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntjaGFydEFubm90YXRpb24+fVwiXG5cdFx0XHRcdFx0XHRmaWx0ZXJCYXI9XCJmaWx0ZXJiYXJpZFwiXG4gICAgICAgIC8+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWwsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcblx0XHRjb25zdCB4bWxEb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHRlbXBsYXRlZFhNTCwgXCJ0ZXh0L3htbFwiKTtcblx0XHRjb25zdCBjaGFydCA9IHhtbERvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShcIm1kYzpDaGFydFwiKVswXTtcblx0XHRleHBlY3QoY2hhcnQuZ2V0QXR0cmlidXRlKFwiZmlsdGVyXCIpKS50b0VxdWFsKFwiZmlsdGVyYmFyaWQtY29udGVudFwiKTtcblx0fSk7XG59KTtcbiJdfQ==
|
|
@@ -117,25 +117,37 @@ describe("Chart", () => {
|
|
|
117
117
|
expect(templatedXML).toMatchSnapshot();
|
|
118
118
|
});
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
it("Bar chart without qualifer, no search support", async () => {
|
|
121
121
|
const mBindingContexts = {
|
|
122
|
-
|
|
123
|
-
"
|
|
124
|
-
"chartAnnotation": "/Items/$Type/@com.sap.vocabularies.UI.v1.Chart#Column"
|
|
122
|
+
"collection": "/Items2",
|
|
123
|
+
"chartAnnotation": "/Items2/$Type/@com.sap.vocabularies.UI.v1.Chart"
|
|
125
124
|
};
|
|
126
125
|
const xml = `<macro:Chart xmlns:macro="sap.fe.macros"
|
|
127
126
|
id="def"
|
|
128
127
|
contextPath="{collection>}"
|
|
129
128
|
metaPath="{chartAnnotation>}"
|
|
130
|
-
personalization="Type,Item"
|
|
131
|
-
height="200px"
|
|
132
|
-
width="95%"
|
|
133
129
|
/>`;
|
|
134
130
|
|
|
135
|
-
const
|
|
136
|
-
"converterContext": new JSONModel({})
|
|
137
|
-
};
|
|
138
|
-
const templatedXML = await getTemplatedXML(xml, sMetadataUrl, mBindingContexts, mInternalModels);
|
|
131
|
+
const templatedXML = await getTemplatedXML(xml, sMetadataUrl, mBindingContexts, {});
|
|
139
132
|
expect(templatedXML).toMatchSnapshot();
|
|
140
|
-
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it("Check the filterbar is properly referenced for Builbing Blocks", async () => {
|
|
136
|
+
const mBindingContexts = {
|
|
137
|
+
"collection": "/Items2",
|
|
138
|
+
"chartAnnotation": "/Items2/$Type/@com.sap.vocabularies.UI.v1.Chart"
|
|
139
|
+
};
|
|
140
|
+
const xml = `<macro:Chart xmlns:macro="sap.fe.macros"
|
|
141
|
+
id="def"
|
|
142
|
+
contextPath="{collection>}"
|
|
143
|
+
metaPath="{chartAnnotation>}"
|
|
144
|
+
filterBar="filterbarid"
|
|
145
|
+
/>`;
|
|
146
|
+
|
|
147
|
+
const templatedXML = await getTemplatedXML(xml, sMetadataUrl, mBindingContexts, {});
|
|
148
|
+
const parser = new DOMParser();
|
|
149
|
+
const xmlDoc = parser.parseFromString(templatedXML, "text/xml");
|
|
150
|
+
const chart = xmlDoc.getElementsByTagName("mdc:Chart")[0];
|
|
151
|
+
expect(chart.getAttribute("filter")).toEqual("filterbarid-content");
|
|
152
|
+
});
|
|
141
153
|
});
|
|
@@ -23,9 +23,9 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "path", "sap/fe/macros/intern
|
|
|
23
23
|
};
|
|
24
24
|
it("DataField Value has no description", function () {
|
|
25
25
|
try {
|
|
26
|
-
var xmlField = "<internalMacro:CollectionField xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tcontextPath=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tmetaPath=\"{entitySet>$Type/@com.sap.vocabularies.UI.v1.LineItem/1}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</internalMacro:CollectionField>";
|
|
26
|
+
var xmlField = "<internalMacro:CollectionField xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tcontextPath=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tmetaPath=\"{entitySet>$Type/@com.sap.vocabularies.UI.v1.LineItem/1}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<internalMacro:formatOptions\n\t\t\t\t\t\t\t\t\t\t\tshowEmptyIndicator=\"true\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</internalMacro:CollectionField>";
|
|
27
27
|
return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
|
|
28
|
-
expect(templatedXML).toMatchSnapshot(); // having a $$
|
|
28
|
+
expect(templatedXML).toMatchSnapshot(); // having a $$ownRequest in the binding parameter is essential for the collectionField create to work properly in edit
|
|
29
29
|
});
|
|
30
30
|
} catch (e) {
|
|
31
31
|
return Promise.reject(e);
|
|
@@ -35,7 +35,7 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "path", "sap/fe/macros/intern
|
|
|
35
35
|
try {
|
|
36
36
|
var xmlField = "<internalMacro:CollectionField xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tcontextPath=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tmetaPath=\"{entitySet>$Type/@com.sap.vocabularies.UI.v1.LineItem/2}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</internalMacro:CollectionField>";
|
|
37
37
|
return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
|
|
38
|
-
expect(templatedXML).toMatchSnapshot();
|
|
38
|
+
expect(templatedXML).toMatchSnapshot();
|
|
39
39
|
});
|
|
40
40
|
} catch (e) {
|
|
41
41
|
return Promise.reject(e);
|
|
@@ -45,7 +45,7 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "path", "sap/fe/macros/intern
|
|
|
45
45
|
try {
|
|
46
46
|
var xmlField = "<internalMacro:CollectionField xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tcontextPath=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tmetaPath=\"{entitySet>$Type/@com.sap.vocabularies.UI.v1.LineItem/3}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t</internalMacro:CollectionField>";
|
|
47
47
|
return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
|
|
48
|
-
expect(templatedXML).toMatchSnapshot();
|
|
48
|
+
expect(templatedXML).toMatchSnapshot();
|
|
49
49
|
});
|
|
50
50
|
} catch (e) {
|
|
51
51
|
return Promise.reject(e);
|
|
@@ -81,6 +81,16 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "path", "sap/fe/macros/intern
|
|
|
81
81
|
return Promise.reject(e);
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
|
+
it("SimpleDataField in display only", function () {
|
|
85
|
+
try {
|
|
86
|
+
var xmlField = "<internalMacro:CollectionField xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tcontextPath=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\teditMode=\"Display\"\n\t\t\t\t\t\t\t\t\tmetaPath=\"{entitySet>$Type/@com.sap.vocabularies.UI.v1.LineItem/1}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<internalMacro:formatOptions displayOnly=\"true\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</internalMacro:CollectionField>";
|
|
87
|
+
return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
|
|
88
|
+
expect(templatedXML).toMatchSnapshot(); // not having a $$ownRequest in the binding parameter is essential for the collectionField to not trigger an additional batch
|
|
89
|
+
});
|
|
90
|
+
} catch (e) {
|
|
91
|
+
return Promise.reject(e);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
84
94
|
});
|
|
85
95
|
}, false);
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbGxlY3Rpb25GaWVsZC5zcGVjLnRzIl0sIm5hbWVzIjpbInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwicmVnaXN0ZXJNYWNybyIsIkNvbGxlY3Rpb25GaWVsZE1ldGFkYXRhIiwiYWZ0ZXJBbGwiLCJ1bnJlZ2lzdGVyTWFjcm8iLCJtQmluZGluZ0NvbnRleHRzIiwiaXQiLCJ4bWxGaWVsZCIsImdldFRlbXBsYXRlZFhNTCIsInRlbXBsYXRlZFhNTCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBR0EsTUFBTUEsWUFBWSxHQUFHQyxVQUFVLENBQUNDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLDRCQUFyQixDQUFELENBQS9CO0FBRUFDLEVBQUFBLFFBQVEsQ0FBQyxpQkFBRCxFQUFvQixZQUFNO0FBQ2pDQyxJQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNmQyxNQUFBQSxhQUFhLENBQUNDLHVCQUFELENBQWI7QUFDQSxLQUZRLENBQVQ7QUFHQUMsSUFBQUEsUUFBUSxDQUFDLFlBQU07QUFDZEMsTUFBQUEsZUFBZSxDQUFDRix1QkFBRCxDQUFmO0FBQ0EsS0FGTyxDQUFSO0FBR0EsUUFBTUcsZ0JBQWdCLEdBQUc7QUFDeEIsbUJBQWE7QUFEVyxLQUF6QjtBQUdBQyxJQUFBQSxFQUFFLENBQUMsb0NBQUQ7QUFBQSxVQUFtRDtBQUNwRCxZQUFNQyxRQUFRLGlhQUFkO0FBRG9ELCtCQVV6QkMsZUFBZSxDQUFDRCxRQUFELEVBQVdiLFlBQVgsRUFBeUJXLGdCQUF6QixFQUEyQyxFQUEzQyxDQVZVLGlCQVU5Q0ksWUFWOEM7QUFXcERDLFVBQUFBLE1BQU0sQ0FBQ0QsWUFBRCxDQUFOLENBQXFCRSxlQUFyQixHQVhvRCxDQVlwRDtBQVpvRDtBQWFwRCxPQWJDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFjQUwsSUFBQUEsRUFBRSxDQUFDLGlDQUFEO0FBQUEsVUFBZ0Q7QUFDakQsWUFBTUMsUUFBUSxvU0FBZDtBQURpRCwrQkFPdEJDLGVBQWUsQ0FBQ0QsUUFBRCxFQUFXYixZQUFYLEVBQXlCVyxnQkFBekIsRUFBMkMsRUFBM0MsQ0FQTyxpQkFPM0NJLFlBUDJDO0FBUWpEQyxVQUFBQSxNQUFNLENBQUNELFlBQUQsQ0FBTixDQUFxQkUsZUFBckI7QUFSaUQ7QUFTakQsT0FUQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBVUFMLElBQUFBLEVBQUUsQ0FBQyxvREFBRDtBQUFBLFVBQW1FO0FBQ3BFLFlBQU1DLFFBQVEsb1NBQWQ7QUFEb0UsK0JBT3pDQyxlQUFlLENBQUNELFFBQUQsRUFBV2IsWUFBWCxFQUF5QlcsZ0JBQXpCLEVBQTJDLEVBQTNDLENBUDBCLGlCQU85REksWUFQOEQ7QUFRcEVDLFVBQUFBLE1BQU0sQ0FBQ0QsWUFBRCxDQUFOLENBQXFCRSxlQUFyQjtBQVJvRTtBQVNwRSxPQVRDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFXQUwsSUFBQUEsRUFBRSxDQUFDLGtDQUFEO0FBQUEsVUFBaUQ7QUFDbEQsWUFBTUMsUUFBUSxtVEFBZDtBQURrRCwrQkFPdkJDLGVBQWUsQ0FBQ0QsUUFBRCxFQUFXYixZQUFYLEVBQXlCVyxnQkFBekIsRUFBMkMsRUFBM0MsQ0FQUSxpQkFPNUNJLFlBUDRDO0FBUWxEQyxVQUFBQSxNQUFNLENBQUNELFlBQUQsQ0FBTixDQUFxQkUsZUFBckI7QUFSa0Q7QUFTbEQsT0FUQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBVUFMLElBQUFBLEVBQUUsQ0FBQyxnREFBRDtBQUFBLFVBQStEO0FBQ2hFLFlBQU1DLFFBQVEsb1NBQWQ7QUFEZ0UsK0JBT3JDQyxlQUFlLENBQUNELFFBQUQsRUFBV2IsWUFBWCxFQUF5QlcsZ0JBQXpCLEVBQTJDLEVBQTNDLENBUHNCLGlCQU8xREksWUFQMEQ7QUFRaEVDLFVBQUFBLE1BQU0sQ0FBQ0QsWUFBRCxDQUFOLENBQXFCRSxlQUFyQjtBQVJnRTtBQVNoRSxPQVRDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFVQUwsSUFBQUEsRUFBRSxDQUFDLGdEQUFEO0FBQUEsVUFBK0Q7QUFDaEUsWUFBTUMsUUFBUSxvU0FBZDtBQURnRSwrQkFPckNDLGVBQWUsQ0FBQ0QsUUFBRCxFQUFXYixZQUFYLEVBQXlCVyxnQkFBekIsRUFBMkMsRUFBM0MsQ0FQc0IsaUJBTzFESSxZQVAwRDtBQVFoRUMsVUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBUmdFO0FBU2hFLE9BVEM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQVVBTCxJQUFBQSxFQUFFLENBQUMsaUNBQUQ7QUFBQSxVQUFnRDtBQUNqRCxZQUFNQyxRQUFRLHVhQUFkO0FBRGlELCtCQVV0QkMsZUFBZSxDQUFDRCxRQUFELEVBQVdiLFlBQVgsRUFBeUJXLGdCQUF6QixFQUEyQyxFQUEzQyxDQVZPLGlCQVUzQ0ksWUFWMkM7QUFXakRDLFVBQUFBLE1BQU0sQ0FBQ0QsWUFBRCxDQUFOLENBQXFCRSxlQUFyQixHQVhpRCxDQVlqRDtBQVppRDtBQWFqRCxPQWJDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFjQSxHQXpGTyxDQUFSIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21waWxlQ0RTLCBnZXRUZW1wbGF0ZWRYTUwsIHJlZ2lzdGVyTWFjcm8sIHVucmVnaXN0ZXJNYWNybyB9IGZyb20gXCJzYXAvZmUvdGVzdC9KZXN0VGVtcGxhdGluZ0hlbHBlclwiO1xuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgQ29sbGVjdGlvbkZpZWxkTWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvQ29sbGVjdGlvbkZpZWxkLm1ldGFkYXRhXCI7XG5cbmNvbnN0IHNNZXRhZGF0YVVybCA9IGNvbXBpbGVDRFMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuL2RhdGEvQ29sbGVjdGlvbkZpZWxkLmNkc1wiKSk7XG5cbmRlc2NyaWJlKFwiQ29sbGVjdGlvbkZpZWxkXCIsICgpID0+IHtcblx0YmVmb3JlQWxsKCgpID0+IHtcblx0XHRyZWdpc3Rlck1hY3JvKENvbGxlY3Rpb25GaWVsZE1ldGFkYXRhKTtcblx0fSk7XG5cdGFmdGVyQWxsKCgpID0+IHtcblx0XHR1bnJlZ2lzdGVyTWFjcm8oQ29sbGVjdGlvbkZpZWxkTWV0YWRhdGEpO1xuXHR9KTtcblx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcImVudGl0eVNldFwiOiBcIi9JdGVtc1wiXG5cdH07XG5cdGl0KFwiRGF0YUZpZWxkIFZhbHVlIGhhcyBubyBkZXNjcmlwdGlvblwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86Q29sbGVjdGlvbkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFQYXRoPVwie2VudGl0eVNldD4kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vMX1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2hvd0VtcHR5SW5kaWNhdG9yPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86Q29sbGVjdGlvbkZpZWxkPmA7XG5cblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdC8vIGhhdmluZyBhICQkb3duUmVxdWVzdCBpbiB0aGUgYmluZGluZyBwYXJhbWV0ZXIgaXMgZXNzZW50aWFsIGZvciB0aGUgY29sbGVjdGlvbkZpZWxkIGNyZWF0ZSB0byB3b3JrIHByb3Blcmx5IGluIGVkaXRcblx0fSk7XG5cdGl0KFwiRGF0YUZpZWxkIFZhbHVlIGhhcyBkZXNjcmlwdGlvblwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86Q29sbGVjdGlvbkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFQYXRoPVwie2VudGl0eVNldD4kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vMn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZD5gO1xuXG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cdGl0KFwiRGF0YUZpZWxkIFZhbHVlIHdpdGggcmVzdHJpY3Rpb24gb24gdGhlIG5hdmlnYXRpb25cIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD1cIntlbnRpdHlTZXQ+JFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzN9XCJcblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpDb2xsZWN0aW9uRmllbGQ+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YUZpZWxkIFZhbHVlIG9uIHN1Yk9iamVjdFBhZ2VcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+dG9TdWJJdGVtc31cIlxuXHRcdFx0XHRcdFx0XHRcdFx0bWV0YVBhdGg9XCJ7ZW50aXR5U2V0PnRvU3ViSXRlbXMvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzF9XCJcblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpDb2xsZWN0aW9uRmllbGQ+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcIkRhdGFGaWVsZCBWYWx1ZSB1c2luZyAxLW4gdGhlbiAxLTEgbmF2aWdhdGlvbnNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD1cIntlbnRpdHlTZXQ+JFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzR9XCJcblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpDb2xsZWN0aW9uRmllbGQ+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcIkRhdGFGaWVsZCBWYWx1ZSB1c2luZyAxLTEgdGhlbiAxLW4gbmF2aWdhdGlvbnNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD1cIntlbnRpdHlTZXQ+JFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzV9XCJcblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpDb2xsZWN0aW9uRmllbGQ+YDtcblxuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcIlNpbXBsZURhdGFGaWVsZCBpbiBkaXNwbGF5IG9ubHlcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlZGl0TW9kZT1cIkRpc3BsYXlcIlxuXHRcdFx0XHRcdFx0XHRcdFx0bWV0YVBhdGg9XCJ7ZW50aXR5U2V0PiRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbS8xfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zIGRpc3BsYXlPbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkNvbGxlY3Rpb25GaWVsZD5gO1xuXG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHQvLyBub3QgaGF2aW5nIGEgJCRvd25SZXF1ZXN0IGluIHRoZSBiaW5kaW5nIHBhcmFtZXRlciBpcyBlc3NlbnRpYWwgZm9yIHRoZSBjb2xsZWN0aW9uRmllbGQgdG8gbm90IHRyaWdnZXIgYW4gYWRkaXRpb25hbCBiYXRjaFxuXHR9KTtcbn0pO1xuIl19
|