@sapui5/sap.fe.core 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 +3 -2
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AnnotationHelper.js +377 -405
- package/src/sap/fe/core/AnnotationHelper.ts +385 -0
- package/src/sap/fe/core/AppComponent.js +3 -2
- package/src/sap/fe/core/AppStateHandler.js +229 -181
- package/src/sap/fe/core/AppStateHandler.ts +171 -0
- package/src/sap/fe/core/BaseController.js +3 -2
- package/src/sap/fe/core/BusyLocker.js +105 -121
- package/src/sap/fe/core/BusyLocker.ts +98 -0
- package/src/sap/fe/core/CommonUtils.js +2073 -2399
- package/src/sap/fe/core/CommonUtils.ts +2078 -0
- package/src/sap/fe/core/ExtensionAPI.js +3 -2
- package/src/sap/fe/core/PageController.js +84 -125
- package/src/sap/fe/core/PageController.ts +101 -0
- package/src/sap/fe/core/RouterProxy.js +986 -823
- package/src/sap/fe/core/RouterProxy.ts +838 -0
- package/src/sap/fe/core/Synchronization.js +51 -35
- package/src/sap/fe/core/Synchronization.ts +29 -0
- package/src/sap/fe/core/TemplateComponent.js +173 -164
- package/src/sap/fe/core/TemplateComponent.ts +166 -0
- package/src/sap/fe/core/TemplateModel.js +97 -54
- package/src/sap/fe/core/TemplateModel.ts +63 -0
- package/src/sap/fe/core/TransactionHelper.js +1576 -1664
- package/src/sap/fe/core/TransactionHelper.ts +1706 -0
- package/src/sap/fe/core/actions/draft.js +559 -608
- package/src/sap/fe/core/actions/draft.ts +593 -0
- package/src/sap/fe/core/actions/messageHandling.js +545 -514
- package/src/sap/fe/core/actions/messageHandling.ts +532 -0
- package/src/sap/fe/core/actions/nonDraft.js +17 -19
- package/src/sap/fe/core/actions/nonDraft.ts +12 -0
- package/src/sap/fe/core/actions/operations.js +1074 -1215
- package/src/sap/fe/core/actions/operations.ts +1162 -0
- package/src/sap/fe/core/actions/sticky.js +102 -105
- package/src/sap/fe/core/actions/sticky.ts +102 -0
- package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +3 -2
- package/src/sap/fe/core/controllerextensions/EditFlow.js +54 -211
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +279 -11
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -6
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +47 -45
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -3
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +29 -26
- package/src/sap/fe/core/controllerextensions/MassEdit.js +101 -8
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +17 -8
- package/src/sap/fe/core/controllerextensions/PageReady.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.ts +12 -8
- package/src/sap/fe/core/controllerextensions/Paginator.js +3 -2
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -2
- package/src/sap/fe/core/controllerextensions/Routing.js +9 -4
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -2
- package/src/sap/fe/core/controllerextensions/Share.js +3 -2
- package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -3
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +18 -18
- package/src/sap/fe/core/controllerextensions/ViewState.js +3 -2
- package/src/sap/fe/core/controls/CommandExecution.js +3 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -2
- package/src/sap/fe/core/controls/FieldWrapper.js +11 -22
- package/src/sap/fe/core/controls/FilterBar.js +3 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +3 -2
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -2
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +5 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -2
- package/src/sap/fe/core/converters/ConverterContext.js +2 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +4 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +1 -0
- package/src/sap/fe/core/converters/ManifestWrapper.js +39 -26
- package/src/sap/fe/core/converters/ManifestWrapper.ts +9 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +11 -8
- package/src/sap/fe/core/converters/MetaModelConverter.ts +16 -16
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/TemplateConverter.ts +2 -2
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +17 -13
- package/src/sap/fe/core/converters/controls/Common/Action.js +2 -2
- package/src/sap/fe/core/converters/controls/Common/Action.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
- package/src/sap/fe/core/converters/controls/Common/Form.js +4 -2
- package/src/sap/fe/core/converters/controls/Common/Form.ts +16 -2
- package/src/sap/fe/core/converters/controls/Common/Table.js +250 -146
- package/src/sap/fe/core/converters/controls/Common/Table.ts +300 -167
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +115 -56
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +120 -74
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +467 -32
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +483 -54
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +6 -6
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +9 -15
- package/src/sap/fe/core/converters/helpers/Aggregation.js +13 -5
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +20 -5
- package/src/sap/fe/core/converters/helpers/IssueManager.js +4 -1
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +4 -4
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +3 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -6
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +26 -15
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
- package/src/sap/fe/core/formatters/TableFormatter.js +39 -28
- package/src/sap/fe/core/formatters/TableFormatter.ts +43 -28
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.ts +7 -6
- package/src/sap/fe/core/fpm/Component.js +3 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.js +2 -2
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +7 -4
- package/src/sap/fe/core/helpers/BindingExpression.js +314 -355
- package/src/sap/fe/core/helpers/BindingExpression.ts +317 -391
- package/src/sap/fe/core/helpers/ClassSupport.js +27 -15
- package/src/sap/fe/core/helpers/ClassSupport.ts +31 -20
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +63 -59
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +56 -0
- package/src/sap/fe/core/helpers/EditState.js +81 -84
- package/src/sap/fe/core/helpers/EditState.ts +81 -0
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
- package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
- package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -4
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +9 -9
- package/src/sap/fe/core/helpers/MassEditHelper.js +27 -18
- package/src/sap/fe/core/helpers/ModelHelper.js +229 -225
- package/src/sap/fe/core/helpers/ModelHelper.ts +227 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
- package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +332 -313
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +330 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
- package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
- package/src/sap/fe/core/library.js +4 -3
- package/src/sap/fe/core/library.support.js +3 -2
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +1 -1
- package/src/sap/fe/core/messagebundle.properties +23 -10
- package/src/sap/fe/core/messagebundle_ar.properties +9 -0
- package/src/sap/fe/core/messagebundle_bg.properties +9 -0
- package/src/sap/fe/core/messagebundle_ca.properties +9 -0
- package/src/sap/fe/core/messagebundle_cs.properties +10 -1
- package/src/sap/fe/core/messagebundle_cy.properties +9 -0
- package/src/sap/fe/core/messagebundle_da.properties +9 -0
- package/src/sap/fe/core/messagebundle_de.properties +9 -0
- package/src/sap/fe/core/messagebundle_el.properties +9 -0
- package/src/sap/fe/core/messagebundle_en.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +9 -0
- package/src/sap/fe/core/messagebundle_es.properties +9 -0
- package/src/sap/fe/core/messagebundle_es_MX.properties +9 -0
- package/src/sap/fe/core/messagebundle_et.properties +9 -0
- package/src/sap/fe/core/messagebundle_fi.properties +9 -0
- package/src/sap/fe/core/messagebundle_fr.properties +13 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +15 -6
- package/src/sap/fe/core/messagebundle_hi.properties +15 -6
- package/src/sap/fe/core/messagebundle_hr.properties +15 -6
- package/src/sap/fe/core/messagebundle_hu.properties +9 -0
- package/src/sap/fe/core/messagebundle_id.properties +10 -1
- package/src/sap/fe/core/messagebundle_it.properties +9 -0
- package/src/sap/fe/core/messagebundle_iw.properties +9 -0
- package/src/sap/fe/core/messagebundle_ja.properties +9 -0
- package/src/sap/fe/core/messagebundle_kk.properties +15 -6
- package/src/sap/fe/core/messagebundle_ko.properties +9 -0
- package/src/sap/fe/core/messagebundle_lt.properties +9 -0
- package/src/sap/fe/core/messagebundle_lv.properties +15 -6
- package/src/sap/fe/core/messagebundle_ms.properties +14 -5
- package/src/sap/fe/core/messagebundle_nl.properties +9 -0
- package/src/sap/fe/core/messagebundle_no.properties +9 -0
- package/src/sap/fe/core/messagebundle_pl.properties +9 -0
- package/src/sap/fe/core/messagebundle_pt.properties +9 -0
- package/src/sap/fe/core/messagebundle_pt_PT.properties +9 -0
- package/src/sap/fe/core/messagebundle_ro.properties +9 -0
- package/src/sap/fe/core/messagebundle_ru.properties +9 -0
- package/src/sap/fe/core/messagebundle_sh.properties +11 -2
- package/src/sap/fe/core/messagebundle_sk.properties +9 -0
- package/src/sap/fe/core/messagebundle_sl.properties +15 -6
- package/src/sap/fe/core/messagebundle_sv.properties +9 -0
- package/src/sap/fe/core/messagebundle_th.properties +9 -0
- package/src/sap/fe/core/messagebundle_tr.properties +9 -0
- package/src/sap/fe/core/messagebundle_uk.properties +9 -0
- package/src/sap/fe/core/messagebundle_vi.properties +9 -0
- package/src/sap/fe/core/messagebundle_zh_CN.properties +9 -0
- package/src/sap/fe/core/messagebundle_zh_TW.properties +15 -6
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +269 -202
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
- package/src/sap/fe/core/services/NavigationServiceFactory.js +406 -300
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +316 -0
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +149 -81
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +80 -0
- package/src/sap/fe/core/services/RoutingServiceFactory.js +987 -899
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
- package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
- package/src/sap/fe/core/services/ShellServicesFactory.ts +15 -10
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +35 -81
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +46 -94
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +461 -487
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +453 -0
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
- package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
- package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
- package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
- package/src/sap/fe/core/templating/FilterHelper.js +138 -72
- package/src/sap/fe/core/templating/FilterHelper.ts +139 -71
- package/src/sap/fe/core/templating/UIFormatters.js +31 -1
- package/src/sap/fe/core/templating/UIFormatters.ts +33 -2
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +4 -6
- package/ui5.yaml +0 -3
|
@@ -145,7 +145,7 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings", "sap/fe/core/converter
|
|
|
145
145
|
var _action$menu;
|
|
146
146
|
|
|
147
147
|
if (action !== null && action !== void 0 && (_action$menu = action.menu) !== null && _action$menu !== void 0 && _action$menu.length) {
|
|
148
|
-
action.menu.reduce(function (item, _ref) {
|
|
148
|
+
oMenuItemKeys = action.menu.reduce(function (item, _ref) {
|
|
149
149
|
var key = _ref.key;
|
|
150
150
|
|
|
151
151
|
if (key && !item[key]) {
|
|
@@ -363,4 +363,4 @@ sap.ui.define(["sap/fe/core/converters/ManifestSettings", "sap/fe/core/converter
|
|
|
363
363
|
_exports.enableAutoScroll = enableAutoScroll;
|
|
364
364
|
return _exports;
|
|
365
365
|
}, false);
|
|
366
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjdGlvbi50cyJdLCJuYW1lcyI6WyJCdXR0b25UeXBlIiwicHJlcGFyZU1lbnVBY3Rpb24iLCJhY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiYUhpZGRlbkhlYWRlckFjdGlvbnMiLCJhbGxBY3Rpb25zIiwibWVudUl0ZW1LZXlzIiwiYWN0aW9uS2V5IiwibWFuaWZlc3RBY3Rpb24iLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIk1lbnUiLCJtZW51SXRlbXMiLCJtZW51VmlzaWJsZSIsIl9tZW51SXRlbUtleXMiLCJtZW51IiwibWFwIiwibWVudUtleSIsImFjdGlvbiIsImZpbmQiLCJrZXkiLCJlbmFibGVkIiwidmlzaWJsZSIsIkRhdGFGaWVsZEZvckFjdGlvbiIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImhpZGRlbkFjdGlvbiIsImNvbXBpbGVCaW5kaW5nIiwib3IiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInB1c2giLCJsZW5ndGgiLCJmb3JFYWNoIiwicmVtb3ZlRHVwbGljYXRlQWN0aW9ucyIsIm9NZW51SXRlbUtleXMiLCJyZWR1Y2UiLCJpdGVtIiwiZmlsdGVyIiwiX2dldE1hbmlmZXN0RW5hYmxlZCIsImlzQW5ub3RhdGlvbkFjdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJ1bmRlZmluZWQiLCJnZXRNYW5pZmVzdEFjdGlvbkVuYWJsZW1lbnQiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwibWFuaWZlc3RBY3Rpb25zIiwibmF2aWdhdGlvblNldHRpbmdzIiwiY29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3MiLCJmYWNldE5hbWUiLCJsYXN0RG90SW5kZXgiLCJwcmVzcyIsImxhc3RJbmRleE9mIiwic29tZSIsImlkIiwiQ3VzdG9tQWN0aW9uSUQiLCJoYW5kbGVyTW9kdWxlIiwic3Vic3RyaW5nIiwicmVwbGFjZSIsImhhbmRsZXJNZXRob2QiLCJ0ZXh0Iiwibm9XcmFwIiwiX19ub1dyYXAiLCJyZXBsYWNlU3BlY2lhbENoYXJzIiwiZW5hYmxlT25TZWxlY3QiLCJkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24iLCJkZWZhdWx0VmFsdWVzRnVuY3Rpb24iLCJwb3NpdGlvbiIsImFuY2hvciIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiaXNOYXZpZ2FibGUiLCJpc0FjdGlvbk5hdmlnYWJsZSIsInJlcXVpcmVzU2VsZWN0aW9uIiwiZW5hYmxlQXV0b1Njcm9sbCIsImlubGluZSIsIkRlZmF1bHQiLCJyZXNvbHZlZEJpbmRpbmciLCJyZXN1bHQiLCJpc0NvbnN0YW50IiwidmFsdWUiLCJfdHlwZSIsIm1ldGhvZFBhdGgiLCJmb3JtYXRSZXN1bHQiLCJiaW5kaW5nRXhwcmVzc2lvbiIsImZwbUZvcm1hdHRlciIsImN1c3RvbUlzRW5hYmxlZENoZWNrIiwiZ2V0RW50aXR5VHlwZSIsImlmRWxzZSIsImFuZCIsImdyZWF0ZXJPckVxdWFsIiwiZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24iLCJhY3Rpb25UYXJnZXQiLCJpc0JvdW5kIiwicGFyYW1ldGVycyIsImJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsIm9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24iLCJhbm5vdGF0aW9uRXhwcmVzc2lvbiIsImFubm90YXRpb25zIiwiQ29yZSIsIk9wZXJhdGlvbkF2YWlsYWJsZSIsInBhdGgiLCJiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yIiwiZXF1YWwiLCJnZXRTZW1hbnRpY09iamVjdE1hcHBpbmciLCJhTWFwcGluZ3MiLCJhU2VtYW50aWNPYmplY3RNYXBwaW5ncyIsIm9NYXBwaW5nIiwib1NPTWFwcGluZyIsIkxvY2FsUHJvcGVydHkiLCJTZW1hbnRpY09iamVjdFByb3BlcnR5IiwiYklzTmF2aWdhdGlvbkNvbmZpZ3VyZWQiLCJkZXRhaWxPckRpc3BsYXkiLCJkZXRhaWwiLCJkaXNwbGF5Iiwicm91dGUiLCJhZnRlckV4ZWN1dGlvbiIsIm5hdmln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LGVBQWUsU0FBZixJQUFBQSxlQUFlLFdBQWYsSUFBQUEsZUFBZSxDQUFFRyxLQUFqQixHQUF5QixJQUF6QixHQUFnQyxLQUExRDtBQUNBLEtBTFMsQ0FNVjs7O0FBQ0EsUUFDRWhHLE1BQU0sSUFDTkEsTUFBTSxDQUFDaUcsY0FEUCxLQUVDLDBCQUFBakcsTUFBTSxDQUFDaUcsY0FBUCxnRkFBdUJDLGtCQUF2QixNQUE4QyxLQUE5QyxJQUF1RCwyQkFBQWxHLE1BQU0sQ0FBQ2lHLGNBQVAsa0ZBQXVCM0MsZ0JBQXZCLE1BQTRDLElBRnBHLENBQUQsSUFHQSxDQUFDc0MsdUJBSkYsRUFLRTtBQUNELGFBQU8sS0FBUDtBQUNBOztBQUNELFdBQU8sSUFBUDtBQUNBOzs7O0FBRU0sV0FBU3RDLGdCQUFULENBQTBCdEQsTUFBMUIsRUFBMkQ7QUFBQTs7QUFDakUsV0FBTyxDQUFBQSxNQUFNLFNBQU4sSUFBQUEsTUFBTSxXQUFOLHNDQUFBQSxNQUFNLENBQUVpRyxjQUFSLGtGQUF3QjNDLGdCQUF4QixNQUE2QyxJQUFwRDtBQUNBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IEFjdGlvblR5cGUsIE1hbmlmZXN0QWN0aW9uLCBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uLCBNYW5pZmVzdFRhYmxlQ29sdW1uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgQ29uZmlndXJhYmxlT2JqZWN0LCBDdXN0b21FbGVtZW50LCBQbGFjZW1lbnQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgQ3VzdG9tQWN0aW9uSUQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgeyByZXBsYWNlU3BlY2lhbENoYXJzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7XG5cdGFubm90YXRpb25FeHByZXNzaW9uLFxuXHRiaW5kaW5nRXhwcmVzc2lvbixcblx0QmluZGluZ0V4cHJlc3Npb24sXG5cdGNvbXBpbGVCaW5kaW5nLFxuXHRvcixcblx0Zm9ybWF0UmVzdWx0LFxuXHRpc0NvbnN0YW50LFxuXHRyZXNvbHZlQmluZGluZ1N0cmluZyxcblx0ZXF1YWwsXG5cdEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbixcblx0aWZFbHNlLFxuXHRhbmQsXG5cdGdyZWF0ZXJPckVxdWFsXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdFeHByZXNzaW9uXCI7XG5pbXBvcnQgZnBtRm9ybWF0dGVyIGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL0ZQTUZvcm1hdHRlclwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IGJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0JpbmRpbmdIZWxwZXJcIjtcblxuZXhwb3J0IGVudW0gQnV0dG9uVHlwZSB7XG5cdEFjY2VwdCA9IFwiQWNjZXB0XCIsXG5cdEF0dGVudGlvbiA9IFwiQXR0ZW50aW9uXCIsXG5cdEJhY2sgPSBcIkJhY2tcIixcblx0Q3JpdGljYWwgPSBcIkNyaXRpY2FsXCIsXG5cdERlZmF1bHQgPSBcIkRlZmF1bHRcIixcblx0RW1waGFzaXplZCA9IFwiRW1waGFzaXplZFwiLFxuXHRHaG9zdCA9IFwiR2hvc3RcIixcblx0TmVnYXRpdmUgPSBcIk5lZ2F0aXZlXCIsXG5cdE5ldXRyYWwgPSBcIk5ldXRyYWxcIixcblx0UmVqZWN0ID0gXCJSZWplY3RcIixcblx0U3VjY2VzcyA9IFwiU3VjY2Vzc1wiLFxuXHRUcmFuc3BhcmVudCA9IFwiVHJhbnNwYXJlbnRcIixcblx0VW5zdHlsZWQgPSBcIlVuc3R5bGVkXCIsXG5cdFVwID0gXCJVcFwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VBY3Rpb24gPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdGlkPzogc3RyaW5nO1xuXHR0ZXh0Pzogc3RyaW5nO1xuXHR0eXBlPzogQWN0aW9uVHlwZTtcblx0cHJlc3M/OiBzdHJpbmc7XG5cdGVuYWJsZWQ/OiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0dmlzaWJsZT86IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHRlbmFibGVPblNlbGVjdD86IHN0cmluZztcblx0ZGVmYXVsdFZhbHVlc0V4dGVuc2lvbkZ1bmN0aW9uPzogc3RyaW5nO1xuXHRpc05hdmlnYWJsZT86IGJvb2xlYW47XG5cdGVuYWJsZUF1dG9TY3JvbGw/OiBib29sZWFuO1xuXHRyZXF1aXJlc0RpYWxvZz86IHN0cmluZztcblx0YmluZGluZz86IHN0cmluZztcblx0YnV0dG9uVHlwZT86IEJ1dHRvblR5cGUuR2hvc3QgfCBCdXR0b25UeXBlLlRyYW5zcGFyZW50IHwgc3RyaW5nO1xuXHRwYXJlbnRFbnRpdHlEZWxldGVFbmFibGVkPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdG1lbnU/OiAoc3RyaW5nIHwgQ3VzdG9tQWN0aW9uIHwgQmFzZUFjdGlvbilbXTtcblx0ZmFjZXROYW1lPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkFjdGlvbiA9IEJhc2VBY3Rpb24gJiB7XG5cdHR5cGU6IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIHwgQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb247XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdGlkPzogc3RyaW5nO1xuXHRjdXN0b21EYXRhPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBEZWZpbml0aW9uIGZvciBjdXN0b20gYWN0aW9uc1xuICpcbiAqIEB0eXBlZGVmIEN1c3RvbUFjdGlvblxuICovXG5leHBvcnQgdHlwZSBDdXN0b21BY3Rpb24gPSBDdXN0b21FbGVtZW50PFxuXHRCYXNlQWN0aW9uICYge1xuXHRcdHR5cGU/OiBBY3Rpb25UeXBlLkRlZmF1bHQgfCBBY3Rpb25UeXBlLk1lbnU7XG5cdFx0aGFuZGxlck1ldGhvZD86IHN0cmluZztcblx0XHRoYW5kbGVyTW9kdWxlPzogc3RyaW5nO1xuXHRcdG1lbnU/OiAoc3RyaW5nIHwgQ3VzdG9tQWN0aW9uIHwgQmFzZUFjdGlvbilbXTtcblx0XHRub1dyYXA/OiBib29sZWFuOyAvLyBJbmRpY2F0ZXMgdGhhdCB3ZSB3YW50IHRvIGF2b2lkIHRoZSB3cmFwcGluZyBmcm9tIHRoZSBGUE1IZWxwZXJcblx0XHRyZXF1aXJlc1NlbGVjdGlvbj86IGJvb2xlYW47XG5cdH1cbj47XG5cbi8vIFJldXNlIG9mIENvbmZpZ3VyYWJsZU9iamVjdCBhbmQgQ3VzdG9tRWxlbWVudCBpcyBkb25lIGZvciBvcmRlcmluZ1xuZXhwb3J0IHR5cGUgQ29udmVydGVyQWN0aW9uID0gQW5ub3RhdGlvbkFjdGlvbiB8IEN1c3RvbUFjdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBtZW51IGFjdGlvbiBmcm9tIG1hbmlmZXN0IGFjdGlvbnMuXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj59IGFjdGlvbnMgVGhlIG1hbmlmZXN0IGRlZmluaXRpb25cbiAqIEBwYXJhbSB7QmFzZUFjdGlvbltdfSBhQW5ub3RhdGlvbkFjdGlvbnMgVGhlIGFubm90YXRpb24gYWN0aW9ucyBkZWZpbml0aW9uXG4gKiBAcGFyYW0gYUhpZGRlbkhlYWRlckFjdGlvbnNcbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+fSBUaGUgYWN0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdCBhbmQgdGhlIG1lbnUgb3B0aW9uIHRoYXQgd2VyZSBhZGRlZFxuICovXG5mdW5jdGlvbiBwcmVwYXJlTWVudUFjdGlvbihcblx0YWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPixcblx0YUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10sXG5cdGFIaWRkZW5IZWFkZXJBY3Rpb25zOiBCYXNlQWN0aW9uW11cbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4ge1xuXHRjb25zdCBhbGxBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+ID0ge307XG5cdGxldCBtZW51SXRlbUtleXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkID0gW107XG5cblx0Zm9yIChjb25zdCBhY3Rpb25LZXkgaW4gYWN0aW9ucykge1xuXHRcdGNvbnN0IG1hbmlmZXN0QWN0aW9uOiBDdXN0b21BY3Rpb24gPSBhY3Rpb25zW2FjdGlvbktleV07XG5cdFx0aWYgKG1hbmlmZXN0QWN0aW9uLnR5cGUgPT09IEFjdGlvblR5cGUuTWVudSkge1xuXHRcdFx0Y29uc3QgbWVudUl0ZW1zOiAoQ3VzdG9tQWN0aW9uIHwgQmFzZUFjdGlvbilbXSA9IFtdO1xuXHRcdFx0bGV0IG1lbnVWaXNpYmxlOiBhbnkgPSBmYWxzZTtcblx0XHRcdGxldCBfbWVudUl0ZW1LZXlzID1cblx0XHRcdFx0bWFuaWZlc3RBY3Rpb24ubWVudT8ubWFwKChtZW51S2V5OiBzdHJpbmcgfCBDdXN0b21BY3Rpb24pID0+IHtcblx0XHRcdFx0XHRsZXQgYWN0aW9uOiBCYXNlQWN0aW9uIHwgQ3VzdG9tQWN0aW9uIHwgdW5kZWZpbmVkID0gYUFubm90YXRpb25BY3Rpb25zLmZpbmQoXG5cdFx0XHRcdFx0XHQoYWN0aW9uOiBCYXNlQWN0aW9uKSA9PiBhY3Rpb24ua2V5ID09PSBtZW51S2V5XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAoIWFjdGlvbikge1xuXHRcdFx0XHRcdFx0YWN0aW9uID0gYWN0aW9uc1ttZW51S2V5IGFzIHN0cmluZ107XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdC8vY2hlY2sgaWYgXCJlbmFibGVkXCIgaXMgb3ZlcndyaXR0ZW4gdmlhIGEgbWFuaWZlc3QgZW50cnlcblx0XHRcdFx0XHRcdGNvbnN0IGVuYWJsZWQ6IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+IHwgdW5kZWZpbmVkID0gYWN0aW9uc1thY3Rpb24ua2V5XT8uZW5hYmxlZDtcblx0XHRcdFx0XHRcdGlmIChlbmFibGVkKSB7XG5cdFx0XHRcdFx0XHRcdGFjdGlvbi5lbmFibGVkID0gZW5hYmxlZDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHQoYWN0aW9uPy52aXNpYmxlIHx8XG5cdFx0XHRcdFx0XHRcdGFjdGlvbj8udHlwZSA9PT0gQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JBY3Rpb24gfHxcblx0XHRcdFx0XHRcdFx0YWN0aW9uPy50eXBlID09PSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbikgJiZcblx0XHRcdFx0XHRcdCFhSGlkZGVuSGVhZGVyQWN0aW9ucy5maW5kKGhpZGRlbkFjdGlvbiA9PiBoaWRkZW5BY3Rpb24ua2V5ID09PSBtZW51S2V5KVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0bWVudVZpc2libGUgPSBjb21waWxlQmluZGluZyhcblx0XHRcdFx0XHRcdFx0b3IocmVzb2x2ZUJpbmRpbmdTdHJpbmcoKGFjdGlvbiBhcyBhbnkpLnZpc2libGUsIFwiYm9vbGVhblwiKSwgcmVzb2x2ZUJpbmRpbmdTdHJpbmcobWVudVZpc2libGUsIFwiYm9vbGVhblwiKSlcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRtZW51SXRlbXMucHVzaChhY3Rpb24pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiBtZW51S2V5IGFzIHN0cmluZztcblx0XHRcdFx0fSkgPz8gW107XG5cblx0XHRcdC8vIFNob3cgbWVudSBidXR0b24gaWYgaXQgaGFzIG9uZSBvciBtb3JlIHRoZW4gMSBpdGVtcyB2aXNpYmxlXG5cdFx0XHRpZiAobWVudUl0ZW1zLmxlbmd0aCkge1xuXHRcdFx0XHRtYW5pZmVzdEFjdGlvbi52aXNpYmxlID0gbWVudVZpc2libGU7XG5cdFx0XHRcdG1hbmlmZXN0QWN0aW9uLm1lbnUgPSBtZW51SXRlbXM7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRfbWVudUl0ZW1LZXlzID0gW2FjdGlvbktleV07XG5cdFx0XHR9XG5cblx0XHRcdG1lbnVJdGVtS2V5cyA9IFsuLi5tZW51SXRlbUtleXMsIC4uLl9tZW51SXRlbUtleXNdO1xuXHRcdH1cblx0XHRpZiAoYUhpZGRlbkhlYWRlckFjdGlvbnMuZmluZChoaWRkZW5BY3Rpb24gPT4gaGlkZGVuQWN0aW9uLmtleSA9PT0gYWN0aW9uS2V5KSkge1xuXHRcdFx0bWFuaWZlc3RBY3Rpb24udmlzaWJsZSA9IGZhbHNlO1xuXHRcdH1cblx0XHRhbGxBY3Rpb25zW2FjdGlvbktleV0gPSBtYW5pZmVzdEFjdGlvbjtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtZXhwcmVzc2lvbnNcblx0bWVudUl0ZW1LZXlzPy5mb3JFYWNoKChhY3Rpb25LZXk6IHN0cmluZykgPT4gZGVsZXRlIGFsbEFjdGlvbnNbYWN0aW9uS2V5XSk7XG5cdHJldHVybiBhbGxBY3Rpb25zO1xufVxuXG5leHBvcnQgY29uc3QgcmVtb3ZlRHVwbGljYXRlQWN0aW9ucyA9IChhY3Rpb25zOiBCYXNlQWN0aW9uW10pOiBCYXNlQWN0aW9uW10gPT4ge1xuXHRjb25zdCBvTWVudUl0ZW1LZXlzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cdGFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuXHRcdGlmIChhY3Rpb24/Lm1lbnU/Lmxlbmd0aCkge1xuXHRcdFx0YWN0aW9uLm1lbnUucmVkdWNlKChpdGVtLCB7IGtleSB9OiBhbnkpID0+IHtcblx0XHRcdFx0aWYgKGtleSAmJiAhaXRlbVtrZXldKSB7XG5cdFx0XHRcdFx0aXRlbVtrZXldID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gaXRlbTtcblx0XHRcdH0sIG9NZW51SXRlbUtleXMpO1xuXHRcdH1cblx0fSk7XG5cdHJldHVybiBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gIW9NZW51SXRlbUtleXNbYWN0aW9uLmtleV0pO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gYWN0aW9uIGRlZmF1bHQgdmFsdWUgYmFzZWQgb24gaXRzIGtpbmQuXG4gKlxuICogRGVmYXVsdCBwcm9wZXJ0eSB2YWx1ZSBmb3IgY3VzdG9tIGFjdGlvbnMgaWYgbm90IG92ZXJ3cml0dGVuIGluIG1hbmlmZXN0LlxuICogQHBhcmFtIHtNYW5pZmVzdEFjdGlvbn0gbWFuaWZlc3RBY3Rpb24gVGhlIGFjdGlvbiBjb25maWd1cmVkIGluIHRoZSBtYW5pZmVzdFxuICogQHBhcmFtIHtib29sZWFufSBpc0Fubm90YXRpb25BY3Rpb24gV2hldGhlciB0aGUgYWN0aW9uLCBkZWZpbmVkIGluIG1hbmlmZXN0LCBjb3JyZXNwb25kcyB0byBhbiBleGlzdGluZyBhbm5vdGF0aW9uIGFjdGlvbi5cbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0XG4gKiBAcmV0dXJucyB7QmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB8IHN0cmluZyB8IGJvb2xlYW59IERldGVybWluZWQgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSBjb2x1bW5cbiAqL1xuY29uc3QgX2dldE1hbmlmZXN0RW5hYmxlZCA9IGZ1bmN0aW9uKFxuXHRtYW5pZmVzdEFjdGlvbjogTWFuaWZlc3RBY3Rpb24sXG5cdGlzQW5ub3RhdGlvbkFjdGlvbjogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB8IHN0cmluZyB8IGJvb2xlYW4ge1xuXHRpZiAoaXNBbm5vdGF0aW9uQWN0aW9uICYmIG1hbmlmZXN0QWN0aW9uLmVuYWJsZWQgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIElmIGFubm90YXRpb24gYWN0aW9uIGhhcyBubyBwcm9wZXJ0eSBkZWZpbmVkIGluIG1hbmlmZXN0LFxuXHRcdC8vIGRvIG5vdCBvdmVyd3JpdGUgaXQgd2l0aCBtYW5pZmVzdCBhY3Rpb24ncyBkZWZhdWx0IHZhbHVlLlxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0Ly8gUmV0dXJuIHdoYXQgaXMgZGVmaW5lZCBpbiBtYW5pZmVzdC5cblx0cmV0dXJuIGdldE1hbmlmZXN0QWN0aW9uRW5hYmxlbWVudChtYW5pZmVzdEFjdGlvbiwgY29udmVydGVyQ29udGV4dCk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSBtYW5pZmVzdCBzZXR0aW5ncy5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgTWFuaWZlc3RBY3Rpb24+IHwgdW5kZWZpbmVkfSBtYW5pZmVzdEFjdGlvbnMgVGhlIG1hbmlmZXN0IGFjdGlvbnNcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIHtCYXNlQWN0aW9uW119IGFBbm5vdGF0aW9uQWN0aW9ucyBUaGUgYW5ub3RhdGlvbiBhY3Rpb25zIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7TmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbn0gbmF2aWdhdGlvblNldHRpbmdzIFRoZSBuYXZpZ2F0aW9uIHNldHRpbmdzXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzIFRoZSBuYXZpZ2F0aW9uIHNldHRpbmdzIHRvIGJlIGNvbnNpZGVyZWRcbiAqIEBwYXJhbSB7QmFzZUFjdGlvbltdfSBhSGlkZGVuSGVhZGVyQWN0aW9ucyBUaGUgaGlkZGVuIGhlYWRlciBhY3Rpb25zXG4gKiBAcGFyYW0ge3N0cmluZ30gZmFjZXROYW1lIFRoZSBmYWNldCB3aGVyZSBhbiBhY3Rpb24gaXMgZGlzcGxheWVkIGlmIGl0IGlzIGlubGluZVxuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj59IFRoZSBhY3Rpb25zIGZyb20gdGhlIG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRtYW5pZmVzdEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPiB8IHVuZGVmaW5lZCxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YUFubm90YXRpb25BY3Rpb25zPzogQmFzZUFjdGlvbltdLFxuXHRuYXZpZ2F0aW9uU2V0dGluZ3M/OiBOYXZpZ2F0aW9uU2V0dGluZ3NDb25maWd1cmF0aW9uLFxuXHRjb25zaWRlck5hdmlnYXRpb25TZXR0aW5ncz86IGJvb2xlYW4sXG5cdGFIaWRkZW5IZWFkZXJBY3Rpb25zPzogQmFzZUFjdGlvbltdLFxuXHRmYWNldE5hbWU/OiBzdHJpbmdcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4ge1xuXHRjb25zdCBhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+ID0ge307XG5cdGZvciAoY29uc3QgYWN0aW9uS2V5IGluIG1hbmlmZXN0QWN0aW9ucykge1xuXHRcdGNvbnN0IG1hbmlmZXN0QWN0aW9uOiBNYW5pZmVzdEFjdGlvbiA9IG1hbmlmZXN0QWN0aW9uc1thY3Rpb25LZXldO1xuXHRcdGNvbnN0IGxhc3REb3RJbmRleCA9IG1hbmlmZXN0QWN0aW9uLnByZXNzPy5sYXN0SW5kZXhPZihcIi5cIikgfHwgLTE7XG5cblx0XHQvLyBUbyBpZGVudGlmeSB0aGUgYW5ub3RhdGlvbiBhY3Rpb24gcHJvcGVydHkgb3ZlcndyaXRlIHZpYSBtYW5pZmVzdCB1c2UtY2FzZS5cblx0XHRjb25zdCBpc0Fubm90YXRpb25BY3Rpb24gPSBhQW5ub3RhdGlvbkFjdGlvbnM/LnNvbWUoYWN0aW9uID0+IGFjdGlvbi5rZXkgPT09IGFjdGlvbktleSkgfHwgZmFsc2U7XG5cdFx0aWYgKG1hbmlmZXN0QWN0aW9uLmZhY2V0TmFtZSkge1xuXHRcdFx0ZmFjZXROYW1lID0gbWFuaWZlc3RBY3Rpb24uZmFjZXROYW1lO1xuXHRcdH1cblxuXHRcdGFjdGlvbnNbYWN0aW9uS2V5XSA9IHtcblx0XHRcdGlkOiBhQW5ub3RhdGlvbkFjdGlvbnM/LnNvbWUoYWN0aW9uID0+IGFjdGlvbi5rZXkgPT09IGFjdGlvbktleSkgPyBhY3Rpb25LZXkgOiBDdXN0b21BY3Rpb25JRChhY3Rpb25LZXkpLFxuXHRcdFx0dmlzaWJsZTogbWFuaWZlc3RBY3Rpb24udmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gXCJ0cnVlXCIgOiBtYW5pZmVzdEFjdGlvbi52aXNpYmxlLFxuXHRcdFx0ZW5hYmxlZDogX2dldE1hbmlmZXN0RW5hYmxlZChtYW5pZmVzdEFjdGlvbiwgaXNBbm5vdGF0aW9uQWN0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdGhhbmRsZXJNb2R1bGU6IG1hbmlmZXN0QWN0aW9uLnByZXNzICYmIG1hbmlmZXN0QWN0aW9uLnByZXNzLnN1YnN0cmluZygwLCBsYXN0RG90SW5kZXgpLnJlcGxhY2UoL1xcLi9naSwgXCIvXCIpLFxuXHRcdFx0aGFuZGxlck1ldGhvZDogbWFuaWZlc3RBY3Rpb24ucHJlc3MgJiYgbWFuaWZlc3RBY3Rpb24ucHJlc3Muc3Vic3RyaW5nKGxhc3REb3RJbmRleCArIDEpLFxuXHRcdFx0cHJlc3M6IG1hbmlmZXN0QWN0aW9uLnByZXNzLFxuXHRcdFx0dGV4dDogbWFuaWZlc3RBY3Rpb24udGV4dCxcblx0XHRcdG5vV3JhcDogbWFuaWZlc3RBY3Rpb24uX19ub1dyYXAsXG5cdFx0XHRrZXk6IHJlcGxhY2VTcGVjaWFsQ2hhcnMoYWN0aW9uS2V5KSxcblx0XHRcdGVuYWJsZU9uU2VsZWN0OiBtYW5pZmVzdEFjdGlvbi5lbmFibGVPblNlbGVjdCxcblx0XHRcdGRlZmF1bHRWYWx1ZXNFeHRlbnNpb25GdW5jdGlvbjogbWFuaWZlc3RBY3Rpb24uZGVmYXVsdFZhbHVlc0Z1bmN0aW9uLFxuXHRcdFx0cG9zaXRpb246IHtcblx0XHRcdFx0YW5jaG9yOiBtYW5pZmVzdEFjdGlvbi5wb3NpdGlvbj8uYW5jaG9yLFxuXHRcdFx0XHRwbGFjZW1lbnQ6IG1hbmlmZXN0QWN0aW9uLnBvc2l0aW9uID09PSB1bmRlZmluZWQgPyBQbGFjZW1lbnQuQWZ0ZXIgOiBtYW5pZmVzdEFjdGlvbi5wb3NpdGlvbi5wbGFjZW1lbnRcblx0XHRcdH0sXG5cdFx0XHRpc05hdmlnYWJsZTogaXNBY3Rpb25OYXZpZ2FibGUobWFuaWZlc3RBY3Rpb24sIG5hdmlnYXRpb25TZXR0aW5ncywgY29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3MpLFxuXHRcdFx0cmVxdWlyZXNTZWxlY3Rpb246IG1hbmlmZXN0QWN0aW9uLnJlcXVpcmVzU2VsZWN0aW9uID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1hbmlmZXN0QWN0aW9uLnJlcXVpcmVzU2VsZWN0aW9uLFxuXHRcdFx0ZW5hYmxlQXV0b1Njcm9sbDogZW5hYmxlQXV0b1Njcm9sbChtYW5pZmVzdEFjdGlvbiksXG5cdFx0XHRtZW51OiBtYW5pZmVzdEFjdGlvbi5tZW51ID8/IFtdLFxuXHRcdFx0ZmFjZXROYW1lOiBtYW5pZmVzdEFjdGlvbi5pbmxpbmUgPyBmYWNldE5hbWUgOiB1bmRlZmluZWRcblx0XHR9O1xuXHRcdC8vIERvIG5vdCBvdmVycmlkZSB0aGUgJ3R5cGUnIGdpdmVuIGluIGFuIGFubm90YXRpb24gYWN0aW9uXG5cdFx0aWYgKCFpc0Fubm90YXRpb25BY3Rpb24pIHtcblx0XHRcdGFjdGlvbnNbYWN0aW9uS2V5XS50eXBlID0gbWFuaWZlc3RBY3Rpb24ubWVudSA/IEFjdGlvblR5cGUuTWVudSA6IEFjdGlvblR5cGUuRGVmYXVsdDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHByZXBhcmVNZW51QWN0aW9uKGFjdGlvbnMsIGFBbm5vdGF0aW9uQWN0aW9ucyA/PyBbXSwgYUhpZGRlbkhlYWRlckFjdGlvbnMgPz8gW10pO1xufVxuXG5mdW5jdGlvbiBnZXRNYW5pZmVzdEFjdGlvbkVuYWJsZW1lbnQobWFuaWZlc3RBY3Rpb246IE1hbmlmZXN0QWN0aW9uLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KSB7XG5cdGNvbnN0IHJlc29sdmVkQmluZGluZyA9IHJlc29sdmVCaW5kaW5nU3RyaW5nKG1hbmlmZXN0QWN0aW9uLmVuYWJsZWQgYXMgc3RyaW5nLCBcImJvb2xlYW5cIik7XG5cdGxldCByZXN1bHQ6IGFueTtcblx0aWYgKGlzQ29uc3RhbnQocmVzb2x2ZWRCaW5kaW5nKSAmJiByZXNvbHZlZEJpbmRpbmcudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIE5vIGVuYWJsZWQgcHJvcGVydHkgY29uZmlndXJlZCBpbiBtYW5pZmVzdCBmb3IgdGhlIGN1c3RvbSBhY3Rpb24gLS0+IGVuYWJsZSBjdXN0b20gYWN0aW9uXG5cdFx0cmVzdWx0ID0gdHJ1ZTtcblx0fSBlbHNlIGlmIChpc0NvbnN0YW50KHJlc29sdmVkQmluZGluZykgJiYgdHlwZW9mIHJlc29sdmVkQmluZGluZy52YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcblx0XHQvLyB0cnVlIC8gZmFsc2Vcblx0XHRyZXN1bHQgPSByZXNvbHZlZEJpbmRpbmcudmFsdWU7XG5cdH0gZWxzZSBpZiAocmVzb2x2ZWRCaW5kaW5nLl90eXBlICE9PSBcIkVtYmVkZGVkQmluZGluZ1wiICYmIHJlc29sdmVkQmluZGluZy5fdHlwZSAhPT0gXCJFbWJlZGRlZEV4cHJlc3Npb25CaW5kaW5nXCIpIHtcblx0XHQvLyBUaGVuIGl0J3MgYSBtb2R1bGUtbWV0aG9kIHJlZmVyZW5jZSBcInNhcC54eHgueXl5LmRvU29tZXRoaW5nXCJcblx0XHRjb25zdCBtZXRob2RQYXRoID0gcmVzb2x2ZWRCaW5kaW5nLnZhbHVlIGFzIHN0cmluZztcblx0XHRyZXN1bHQgPSBmb3JtYXRSZXN1bHQoXG5cdFx0XHRbYmluZGluZ0V4cHJlc3Npb24oXCIvXCIsIFwiJHZpZXdcIiksIG1ldGhvZFBhdGgsIGJpbmRpbmdFeHByZXNzaW9uKFwic2VsZWN0ZWRDb250ZXh0c1wiLCBcImludGVybmFsXCIpXSxcblx0XHRcdGZwbUZvcm1hdHRlci5jdXN0b21Jc0VuYWJsZWRDaGVjayBhcyBhbnksXG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKVxuXHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gdGhlbiBpdCdzIGEgYmluZGluZ1xuXHRcdHJlc3VsdCA9IHJlc29sdmVkQmluZGluZztcblx0fVxuXG5cdC8vIENvbnNpZGVyIHJlcXVpcmVzU2VsZWN0aW9uIHByb3BlcnR5IHRvIGluY2x1ZGUgc2VsZWN0ZWRDb250ZXh0cyBpbiB0aGUgYmluZGluZyBleHByZXNzaW9uXG5cdHJldHVybiBjb21waWxlQmluZGluZyhcblx0XHRpZkVsc2UoXG5cdFx0XHRtYW5pZmVzdEFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvbiA9PT0gdHJ1ZSxcblx0XHRcdGFuZChncmVhdGVyT3JFcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIm51bWJlck9mU2VsZWN0ZWRDb250ZXh0c1wiLCBcImludGVybmFsXCIpLCAxKSwgcmVzdWx0KSxcblx0XHRcdHJlc3VsdFxuXHRcdClcblx0KTtcbn1cblxuLyoqXG4gKiBNZXRob2QgdG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZSBvZiB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIGFuIGFubm90YXRpb24tYmFzZWQgYWN0aW9uLlxuICpcbiAqIEBwYXJhbSB7Q29udmVydGVyQ29udGV4dH0gY29udmVydGVyQ29udGV4dCBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge0FjdGlvbn0gYWN0aW9uVGFyZ2V0IFRoZSBpbnN0YW5jZSBvZiB0aGUgYWN0aW9uXG4gKiBAcmV0dXJucyB7QmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj59IFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSAnZW5hYmxlZCcgcHJvcGVydHkgb2YgdGhlIGFjdGlvbiBidXR0b24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbmFibGVkRm9yQW5ub3RhdGlvbkFjdGlvbihcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0YWN0aW9uVGFyZ2V0OiBBY3Rpb24gfCB1bmRlZmluZWRcbik6IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+IHtcblx0aWYgKGFjdGlvblRhcmdldD8uaXNCb3VuZCAhPT0gdHJ1ZSkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cdC8qXG5cdCAgIEZJWE1FIERpc2FibGUgZmFpbGluZyBtdXNpYyB0ZXN0c1xuXHRcdEN1cnJlbnRseSBvbiBDQVAgdGhlIGZvbGxvd2luZyBiaW5kaW5nICh3aGljaCBpcyB0aGUgZ29vZCBvbmUpIGdlbmVyYXRlcyBlcnJvcjpcblx0aWYgKGFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnMuQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlID09PSBudWxsKSB7XG5cdFx0Y29uc3QgdW5ib3VuZEFjdGlvbk5hbWUgPSBhY3Rpb25UYXJnZXQuZnVsbHlRdWFsaWZpZWROYW1lLnNwbGl0KFwiKFwiKVswXTtcblx0XHRyZXR1cm4gXCJ7PSAhJHsjXCIgKyB1bmJvdW5kQWN0aW9uTmFtZSArIFwifSA/IGZhbHNlIDogdHJ1ZSB9IH1cIjtcblx0fVxuXHRcdENBUCB0cmllcyB0byByZWFkIHRoZSBhY3Rpb24gYXMgcHJvcGVydHkgYW5kIGRvZXNuJ3QgZmluZCBpdFxuXHQqL1xuXHRpZiAoYWN0aW9uVGFyZ2V0Py5wYXJhbWV0ZXJzPy5sZW5ndGgpIHtcblx0XHRjb25zdCBiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUgPSBhY3Rpb25UYXJnZXQ/LnBhcmFtZXRlcnNbMF0uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0b3BlcmF0aW9uQXZhaWxhYmxlRXhwcmVzc2lvbiA9IGFubm90YXRpb25FeHByZXNzaW9uKFxuXHRcdFx0XHRhY3Rpb25UYXJnZXQ/LmFubm90YXRpb25zLkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZSxcblx0XHRcdFx0W10sXG5cdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0KHBhdGg6IHN0cmluZykgPT4gYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvcihwYXRoLCBjb252ZXJ0ZXJDb250ZXh0LCBiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUpXG5cdFx0XHQpIGFzIEJpbmRpbmdFeHByZXNzaW9uRXhwcmVzc2lvbjxib29sZWFuPjtcblx0XHRpZiAoYWN0aW9uVGFyZ2V0Py5hbm5vdGF0aW9ucy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGVxdWFsKG9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24sIHRydWUpKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZW1hbnRpY09iamVjdE1hcHBpbmcoYU1hcHBpbmdzOiBhbnlbXSk6IGFueVtdIHtcblx0Y29uc3QgYVNlbWFudGljT2JqZWN0TWFwcGluZ3M6IGFueVtdID0gW107XG5cdGFNYXBwaW5ncy5mb3JFYWNoKG9NYXBwaW5nID0+IHtcblx0XHRjb25zdCBvU09NYXBwaW5nID0ge1xuXHRcdFx0XCJMb2NhbFByb3BlcnR5XCI6IHtcblx0XHRcdFx0XCIkUHJvcGVydHlQYXRoXCI6IG9NYXBwaW5nLkxvY2FsUHJvcGVydHkudmFsdWVcblx0XHRcdH0sXG5cdFx0XHRcIlNlbWFudGljT2JqZWN0UHJvcGVydHlcIjogb01hcHBpbmcuU2VtYW50aWNPYmplY3RQcm9wZXJ0eVxuXHRcdH07XG5cdFx0YVNlbWFudGljT2JqZWN0TWFwcGluZ3MucHVzaChvU09NYXBwaW5nKTtcblx0fSk7XG5cdHJldHVybiBhU2VtYW50aWNPYmplY3RNYXBwaW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uTmF2aWdhYmxlKFxuXHRhY3Rpb246IE1hbmlmZXN0QWN0aW9uIHwgTWFuaWZlc3RUYWJsZUNvbHVtbixcblx0bmF2aWdhdGlvblNldHRpbmdzPzogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbixcblx0Y29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3M/OiBib29sZWFuXG4pOiBib29sZWFuIHtcblx0bGV0IGJJc05hdmlnYXRpb25Db25maWd1cmVkOiBib29sZWFuID0gdHJ1ZTtcblx0aWYgKGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzKSB7XG5cdFx0Y29uc3QgZGV0YWlsT3JEaXNwbGF5ID0gbmF2aWdhdGlvblNldHRpbmdzICYmIChuYXZpZ2F0aW9uU2V0dGluZ3MuZGV0YWlsIHx8IG5hdmlnYXRpb25TZXR0aW5ncy5kaXNwbGF5KTtcblx0XHRiSXNOYXZpZ2F0aW9uQ29uZmlndXJlZCA9IGRldGFpbE9yRGlzcGxheT8ucm91dGUgPyB0cnVlIDogZmFsc2U7XG5cdH1cblx0Ly8gd2hlbiBlbmFibGVBdXRvU2Nyb2xsIGlzIHRydWUgdGhlIG5hdmlnYXRlVG9JbnN0YW5jZSBmZWF0dXJlIGlzIGRpc2FibGVkXG5cdGlmIChcblx0XHQoYWN0aW9uICYmXG5cdFx0XHRhY3Rpb24uYWZ0ZXJFeGVjdXRpb24gJiZcblx0XHRcdChhY3Rpb24uYWZ0ZXJFeGVjdXRpb24/Lm5hdmlnYXRlVG9JbnN0YW5jZSA9PT0gZmFsc2UgfHwgYWN0aW9uLmFmdGVyRXhlY3V0aW9uPy5lbmFibGVBdXRvU2Nyb2xsID09PSB0cnVlKSkgfHxcblx0XHQhYklzTmF2aWdhdGlvbkNvbmZpZ3VyZWRcblx0KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlQXV0b1Njcm9sbChhY3Rpb246IE1hbmlmZXN0QWN0aW9uKTogYm9vbGVhbiB7XG5cdHJldHVybiBhY3Rpb24/LmFmdGVyRXhlY3V0aW9uPy5lbmFibGVBdXRvU2Nyb2xsID09PSB0cnVlO1xufVxuIl19
|
|
366
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFjdGlvbi50cyJdLCJuYW1lcyI6WyJCdXR0b25UeXBlIiwicHJlcGFyZU1lbnVBY3Rpb24iLCJhY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiYUhpZGRlbkhlYWRlckFjdGlvbnMiLCJhbGxBY3Rpb25zIiwibWVudUl0ZW1LZXlzIiwiYWN0aW9uS2V5IiwibWFuaWZlc3RBY3Rpb24iLCJ0eXBlIiwiQWN0aW9uVHlwZSIsIk1lbnUiLCJtZW51SXRlbXMiLCJtZW51VmlzaWJsZSIsIl9tZW51SXRlbUtleXMiLCJtZW51IiwibWFwIiwibWVudUtleSIsImFjdGlvbiIsImZpbmQiLCJrZXkiLCJlbmFibGVkIiwidmlzaWJsZSIsIkRhdGFGaWVsZEZvckFjdGlvbiIsIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiIsImhpZGRlbkFjdGlvbiIsImNvbXBpbGVCaW5kaW5nIiwib3IiLCJyZXNvbHZlQmluZGluZ1N0cmluZyIsInB1c2giLCJsZW5ndGgiLCJmb3JFYWNoIiwicmVtb3ZlRHVwbGljYXRlQWN0aW9ucyIsIm9NZW51SXRlbUtleXMiLCJyZWR1Y2UiLCJpdGVtIiwiZmlsdGVyIiwiX2dldE1hbmlmZXN0RW5hYmxlZCIsImlzQW5ub3RhdGlvbkFjdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJ1bmRlZmluZWQiLCJnZXRNYW5pZmVzdEFjdGlvbkVuYWJsZW1lbnQiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwibWFuaWZlc3RBY3Rpb25zIiwibmF2aWdhdGlvblNldHRpbmdzIiwiY29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3MiLCJmYWNldE5hbWUiLCJsYXN0RG90SW5kZXgiLCJwcmVzcyIsImxhc3RJbmRleE9mIiwic29tZSIsImlkIiwiQ3VzdG9tQWN0aW9uSUQiLCJoYW5kbGVyTW9kdWxlIiwic3Vic3RyaW5nIiwicmVwbGFjZSIsImhhbmRsZXJNZXRob2QiLCJ0ZXh0Iiwibm9XcmFwIiwiX19ub1dyYXAiLCJyZXBsYWNlU3BlY2lhbENoYXJzIiwiZW5hYmxlT25TZWxlY3QiLCJkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24iLCJkZWZhdWx0VmFsdWVzRnVuY3Rpb24iLCJwb3NpdGlvbiIsImFuY2hvciIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiaXNOYXZpZ2FibGUiLCJpc0FjdGlvbk5hdmlnYWJsZSIsInJlcXVpcmVzU2VsZWN0aW9uIiwiZW5hYmxlQXV0b1Njcm9sbCIsImlubGluZSIsIkRlZmF1bHQiLCJyZXNvbHZlZEJpbmRpbmciLCJyZXN1bHQiLCJpc0NvbnN0YW50IiwidmFsdWUiLCJfdHlwZSIsIm1ldGhvZFBhdGgiLCJmb3JtYXRSZXN1bHQiLCJiaW5kaW5nRXhwcmVzc2lvbiIsImZwbUZvcm1hdHRlciIsImN1c3RvbUlzRW5hYmxlZENoZWNrIiwiZ2V0RW50aXR5VHlwZSIsImlmRWxzZSIsImFuZCIsImdyZWF0ZXJPckVxdWFsIiwiZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24iLCJhY3Rpb25UYXJnZXQiLCJpc0JvdW5kIiwicGFyYW1ldGVycyIsImJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsIm9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24iLCJhbm5vdGF0aW9uRXhwcmVzc2lvbiIsImFubm90YXRpb25zIiwiQ29yZSIsIk9wZXJhdGlvbkF2YWlsYWJsZSIsInBhdGgiLCJiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yIiwiZXF1YWwiLCJnZXRTZW1hbnRpY09iamVjdE1hcHBpbmciLCJhTWFwcGluZ3MiLCJhU2VtYW50aWNPYmplY3RNYXBwaW5ncyIsIm9NYXBwaW5nIiwib1NPTWFwcGluZyIsIkxvY2FsUHJvcGVydHkiLCJTZW1hbnRpY09iamVjdFByb3BlcnR5IiwiYklzTmF2aWdhdGlvbkNvbmZpZ3VyZWQiLCJkZXRhaWxPckRpc3BsYXkiLCJkZXRhaWwiLCJkaXNwbGF5Iiwicm91dGUiLCJhZnRlckV4ZWN1dGlvbiIsIm5hdmln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QUFBQSx1QkFBdUIsR0FBR0MsZUFBZSxTQUFmLElBQUFBLGVBQWUsV0FBZixJQUFBQSxlQUFlLENBQUVHLEtBQWpCLEdBQXlCLElBQXpCLEdBQWdDLEtBQTFEO0FBQ0EsS0FMUyxDQU1WOzs7QUFDQSxRQUNFaEcsTUFBTSxJQUNOQSxNQUFNLENBQUNpRyxjQURQLEtBRUMsMEJBQUFqRyxNQUFNLENBQUNpRyxjQUFQLGdGQUF1QkMsa0JBQXZCLE1BQThDLEtBQTlDLElBQXVELDJCQUFBbEcsTUFBTSxDQUFDaUcsY0FBUCxrRkFBdUIzQyxnQkFBdkIsTUFBNEMsSUFGcEcsQ0FBRCxJQUdBLENBQUNzQyx1QkFKRixFQUtFO0FBQ0QsYUFBTyxLQUFQO0FBQ0E7O0FBQ0QsV0FBTyxJQUFQO0FBQ0E7Ozs7QUFFTSxXQUFTdEMsZ0JBQVQsQ0FBMEJ0RCxNQUExQixFQUEyRDtBQUFBOztBQUNqRSxXQUFPLENBQUFBLE1BQU0sU0FBTixJQUFBQSxNQUFNLFdBQU4sc0NBQUFBLE1BQU0sQ0FBRWlHLGNBQVIsa0ZBQXdCM0MsZ0JBQXhCLE1BQTZDLElBQXBEO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSwgTWFuaWZlc3RBY3Rpb24sIE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb24sIE1hbmlmZXN0VGFibGVDb2x1bW4gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBDb25maWd1cmFibGVPYmplY3QsIEN1c3RvbUVsZW1lbnQsIFBsYWNlbWVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQ29uZmlndXJhYmxlT2JqZWN0XCI7XG5pbXBvcnQgeyBDdXN0b21BY3Rpb25JRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IHJlcGxhY2VTcGVjaWFsQ2hhcnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHtcblx0YW5ub3RhdGlvbkV4cHJlc3Npb24sXG5cdGJpbmRpbmdFeHByZXNzaW9uLFxuXHRCaW5kaW5nRXhwcmVzc2lvbixcblx0Y29tcGlsZUJpbmRpbmcsXG5cdG9yLFxuXHRmb3JtYXRSZXN1bHQsXG5cdGlzQ29uc3RhbnQsXG5cdHJlc29sdmVCaW5kaW5nU3RyaW5nLFxuXHRlcXVhbCxcblx0QmluZGluZ0V4cHJlc3Npb25FeHByZXNzaW9uLFxuXHRpZkVsc2UsXG5cdGFuZCxcblx0Z3JlYXRlck9yRXF1YWxcbn0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCBmcG1Gb3JtYXR0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvRlBNRm9ybWF0dGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgYmluZGluZ0NvbnRleHRQYXRoVmlzaXRvciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuXG5leHBvcnQgZW51bSBCdXR0b25UeXBlIHtcblx0QWNjZXB0ID0gXCJBY2NlcHRcIixcblx0QXR0ZW50aW9uID0gXCJBdHRlbnRpb25cIixcblx0QmFjayA9IFwiQmFja1wiLFxuXHRDcml0aWNhbCA9IFwiQ3JpdGljYWxcIixcblx0RGVmYXVsdCA9IFwiRGVmYXVsdFwiLFxuXHRFbXBoYXNpemVkID0gXCJFbXBoYXNpemVkXCIsXG5cdEdob3N0ID0gXCJHaG9zdFwiLFxuXHROZWdhdGl2ZSA9IFwiTmVnYXRpdmVcIixcblx0TmV1dHJhbCA9IFwiTmV1dHJhbFwiLFxuXHRSZWplY3QgPSBcIlJlamVjdFwiLFxuXHRTdWNjZXNzID0gXCJTdWNjZXNzXCIsXG5cdFRyYW5zcGFyZW50ID0gXCJUcmFuc3BhcmVudFwiLFxuXHRVbnN0eWxlZCA9IFwiVW5zdHlsZWRcIixcblx0VXAgPSBcIlVwXCJcbn1cblxuZXhwb3J0IHR5cGUgQmFzZUFjdGlvbiA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHRleHQ/OiBzdHJpbmc7XG5cdHR5cGU/OiBBY3Rpb25UeXBlO1xuXHRwcmVzcz86IHN0cmluZztcblx0ZW5hYmxlZD86IEJpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+O1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdGVuYWJsZU9uU2VsZWN0Pzogc3RyaW5nO1xuXHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb24/OiBzdHJpbmc7XG5cdGlzTmF2aWdhYmxlPzogYm9vbGVhbjtcblx0ZW5hYmxlQXV0b1Njcm9sbD86IGJvb2xlYW47XG5cdHJlcXVpcmVzRGlhbG9nPzogc3RyaW5nO1xuXHRiaW5kaW5nPzogc3RyaW5nO1xuXHRidXR0b25UeXBlPzogQnV0dG9uVHlwZS5HaG9zdCB8IEJ1dHRvblR5cGUuVHJhbnNwYXJlbnQgfCBzdHJpbmc7XG5cdHBhcmVudEVudGl0eURlbGV0ZUVuYWJsZWQ/OiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0bWVudT86IChzdHJpbmcgfCBDdXN0b21BY3Rpb24gfCBCYXNlQWN0aW9uKVtdO1xuXHRmYWNldE5hbWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBbm5vdGF0aW9uQWN0aW9uID0gQmFzZUFjdGlvbiAmIHtcblx0dHlwZTogQWN0aW9uVHlwZS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gfCBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbjtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0aWQ/OiBzdHJpbmc7XG5cdGN1c3RvbURhdGE/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIERlZmluaXRpb24gZm9yIGN1c3RvbSBhY3Rpb25zXG4gKlxuICogQHR5cGVkZWYgQ3VzdG9tQWN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvbiA9IEN1c3RvbUVsZW1lbnQ8XG5cdEJhc2VBY3Rpb24gJiB7XG5cdFx0dHlwZT86IEFjdGlvblR5cGUuRGVmYXVsdCB8IEFjdGlvblR5cGUuTWVudTtcblx0XHRoYW5kbGVyTWV0aG9kPzogc3RyaW5nO1xuXHRcdGhhbmRsZXJNb2R1bGU/OiBzdHJpbmc7XG5cdFx0bWVudT86IChzdHJpbmcgfCBDdXN0b21BY3Rpb24gfCBCYXNlQWN0aW9uKVtdO1xuXHRcdG5vV3JhcD86IGJvb2xlYW47IC8vIEluZGljYXRlcyB0aGF0IHdlIHdhbnQgdG8gYXZvaWQgdGhlIHdyYXBwaW5nIGZyb20gdGhlIEZQTUhlbHBlclxuXHRcdHJlcXVpcmVzU2VsZWN0aW9uPzogYm9vbGVhbjtcblx0fVxuPjtcblxuLy8gUmV1c2Ugb2YgQ29uZmlndXJhYmxlT2JqZWN0IGFuZCBDdXN0b21FbGVtZW50IGlzIGRvbmUgZm9yIG9yZGVyaW5nXG5leHBvcnQgdHlwZSBDb252ZXJ0ZXJBY3Rpb24gPSBBbm5vdGF0aW9uQWN0aW9uIHwgQ3VzdG9tQWN0aW9uO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIG1lbnUgYWN0aW9uIGZyb20gbWFuaWZlc3QgYWN0aW9ucy5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPn0gYWN0aW9ucyBUaGUgbWFuaWZlc3QgZGVmaW5pdGlvblxuICogQHBhcmFtIHtCYXNlQWN0aW9uW119IGFBbm5vdGF0aW9uQWN0aW9ucyBUaGUgYW5ub3RhdGlvbiBhY3Rpb25zIGRlZmluaXRpb25cbiAqIEBwYXJhbSBhSGlkZGVuSGVhZGVyQWN0aW9uc1xuICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj59IFRoZSBhY3Rpb25zIGZyb20gdGhlIG1hbmlmZXN0IGFuZCB0aGUgbWVudSBvcHRpb24gdGhhdCB3ZXJlIGFkZGVkXG4gKi9cbmZ1bmN0aW9uIHByZXBhcmVNZW51QWN0aW9uKFxuXHRhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+LFxuXHRhQW5ub3RhdGlvbkFjdGlvbnM6IEJhc2VBY3Rpb25bXSxcblx0YUhpZGRlbkhlYWRlckFjdGlvbnM6IEJhc2VBY3Rpb25bXVxuKTogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPiB7XG5cdGNvbnN0IGFsbEFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFjdGlvbj4gPSB7fTtcblx0bGV0IG1lbnVJdGVtS2V5czogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBbXTtcblxuXHRmb3IgKGNvbnN0IGFjdGlvbktleSBpbiBhY3Rpb25zKSB7XG5cdFx0Y29uc3QgbWFuaWZlc3RBY3Rpb246IEN1c3RvbUFjdGlvbiA9IGFjdGlvbnNbYWN0aW9uS2V5XTtcblx0XHRpZiAobWFuaWZlc3RBY3Rpb24udHlwZSA9PT0gQWN0aW9uVHlwZS5NZW51KSB7XG5cdFx0XHRjb25zdCBtZW51SXRlbXM6IChDdXN0b21BY3Rpb24gfCBCYXNlQWN0aW9uKVtdID0gW107XG5cdFx0XHRsZXQgbWVudVZpc2libGU6IGFueSA9IGZhbHNlO1xuXHRcdFx0bGV0IF9tZW51SXRlbUtleXMgPVxuXHRcdFx0XHRtYW5pZmVzdEFjdGlvbi5tZW51Py5tYXAoKG1lbnVLZXk6IHN0cmluZyB8IEN1c3RvbUFjdGlvbikgPT4ge1xuXHRcdFx0XHRcdGxldCBhY3Rpb246IEJhc2VBY3Rpb24gfCBDdXN0b21BY3Rpb24gfCB1bmRlZmluZWQgPSBhQW5ub3RhdGlvbkFjdGlvbnMuZmluZChcblx0XHRcdFx0XHRcdChhY3Rpb246IEJhc2VBY3Rpb24pID0+IGFjdGlvbi5rZXkgPT09IG1lbnVLZXlcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmICghYWN0aW9uKSB7XG5cdFx0XHRcdFx0XHRhY3Rpb24gPSBhY3Rpb25zW21lbnVLZXkgYXMgc3RyaW5nXTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Ly9jaGVjayBpZiBcImVuYWJsZWRcIiBpcyBvdmVyd3JpdHRlbiB2aWEgYSBtYW5pZmVzdCBlbnRyeVxuXHRcdFx0XHRcdFx0Y29uc3QgZW5hYmxlZDogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj4gfCB1bmRlZmluZWQgPSBhY3Rpb25zW2FjdGlvbi5rZXldPy5lbmFibGVkO1xuXHRcdFx0XHRcdFx0aWYgKGVuYWJsZWQpIHtcblx0XHRcdFx0XHRcdFx0YWN0aW9uLmVuYWJsZWQgPSBlbmFibGVkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdChhY3Rpb24/LnZpc2libGUgfHxcblx0XHRcdFx0XHRcdFx0YWN0aW9uPy50eXBlID09PSBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbiB8fFxuXHRcdFx0XHRcdFx0XHRhY3Rpb24/LnR5cGUgPT09IEFjdGlvblR5cGUuRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uKSAmJlxuXHRcdFx0XHRcdFx0IWFIaWRkZW5IZWFkZXJBY3Rpb25zLmZpbmQoaGlkZGVuQWN0aW9uID0+IGhpZGRlbkFjdGlvbi5rZXkgPT09IG1lbnVLZXkpXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRtZW51VmlzaWJsZSA9IGNvbXBpbGVCaW5kaW5nKFxuXHRcdFx0XHRcdFx0XHRvcihyZXNvbHZlQmluZGluZ1N0cmluZygoYWN0aW9uIGFzIGFueSkudmlzaWJsZSwgXCJib29sZWFuXCIpLCByZXNvbHZlQmluZGluZ1N0cmluZyhtZW51VmlzaWJsZSwgXCJib29sZWFuXCIpKVxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdG1lbnVJdGVtcy5wdXNoKGFjdGlvbik7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIG1lbnVLZXkgYXMgc3RyaW5nO1xuXHRcdFx0XHR9KSA/PyBbXTtcblxuXHRcdFx0Ly8gU2hvdyBtZW51IGJ1dHRvbiBpZiBpdCBoYXMgb25lIG9yIG1vcmUgdGhlbiAxIGl0ZW1zIHZpc2libGVcblx0XHRcdGlmIChtZW51SXRlbXMubGVuZ3RoKSB7XG5cdFx0XHRcdG1hbmlmZXN0QWN0aW9uLnZpc2libGUgPSBtZW51VmlzaWJsZTtcblx0XHRcdFx0bWFuaWZlc3RBY3Rpb24ubWVudSA9IG1lbnVJdGVtcztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdF9tZW51SXRlbUtleXMgPSBbYWN0aW9uS2V5XTtcblx0XHRcdH1cblxuXHRcdFx0bWVudUl0ZW1LZXlzID0gWy4uLm1lbnVJdGVtS2V5cywgLi4uX21lbnVJdGVtS2V5c107XG5cdFx0fVxuXHRcdGlmIChhSGlkZGVuSGVhZGVyQWN0aW9ucy5maW5kKGhpZGRlbkFjdGlvbiA9PiBoaWRkZW5BY3Rpb24ua2V5ID09PSBhY3Rpb25LZXkpKSB7XG5cdFx0XHRtYW5pZmVzdEFjdGlvbi52aXNpYmxlID0gZmFsc2U7XG5cdFx0fVxuXHRcdGFsbEFjdGlvbnNbYWN0aW9uS2V5XSA9IG1hbmlmZXN0QWN0aW9uO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC1leHByZXNzaW9uc1xuXHRtZW51SXRlbUtleXM/LmZvckVhY2goKGFjdGlvbktleTogc3RyaW5nKSA9PiBkZWxldGUgYWxsQWN0aW9uc1thY3Rpb25LZXldKTtcblx0cmV0dXJuIGFsbEFjdGlvbnM7XG59XG5cbmV4cG9ydCBjb25zdCByZW1vdmVEdXBsaWNhdGVBY3Rpb25zID0gKGFjdGlvbnM6IEJhc2VBY3Rpb25bXSk6IEJhc2VBY3Rpb25bXSA9PiB7XG5cdGxldCBvTWVudUl0ZW1LZXlzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cdGFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4ge1xuXHRcdGlmIChhY3Rpb24/Lm1lbnU/Lmxlbmd0aCkge1xuXHRcdFx0b01lbnVJdGVtS2V5cyA9IGFjdGlvbi5tZW51LnJlZHVjZSgoaXRlbSwgeyBrZXkgfTogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChrZXkgJiYgIWl0ZW1ba2V5XSkge1xuXHRcdFx0XHRcdGl0ZW1ba2V5XSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGl0ZW07XG5cdFx0XHR9LCBvTWVudUl0ZW1LZXlzKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+ICFvTWVudUl0ZW1LZXlzW2FjdGlvbi5rZXldKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIGFuIGFjdGlvbiBkZWZhdWx0IHZhbHVlIGJhc2VkIG9uIGl0cyBraW5kLlxuICpcbiAqIERlZmF1bHQgcHJvcGVydHkgdmFsdWUgZm9yIGN1c3RvbSBhY3Rpb25zIGlmIG5vdCBvdmVyd3JpdHRlbiBpbiBtYW5pZmVzdC5cbiAqIEBwYXJhbSB7TWFuaWZlc3RBY3Rpb259IG1hbmlmZXN0QWN0aW9uIFRoZSBhY3Rpb24gY29uZmlndXJlZCBpbiB0aGUgbWFuaWZlc3RcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBbm5vdGF0aW9uQWN0aW9uIFdoZXRoZXIgdGhlIGFjdGlvbiwgZGVmaW5lZCBpbiBtYW5pZmVzdCwgY29ycmVzcG9uZHMgdG8gYW4gZXhpc3RpbmcgYW5ub3RhdGlvbiBhY3Rpb24uXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMge0JpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4gfCBzdHJpbmcgfCBib29sZWFufSBEZXRlcm1pbmVkIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgY29sdW1uXG4gKi9cbmNvbnN0IF9nZXRNYW5pZmVzdEVuYWJsZWQgPSBmdW5jdGlvbihcblx0bWFuaWZlc3RBY3Rpb246IE1hbmlmZXN0QWN0aW9uLFxuXHRpc0Fubm90YXRpb25BY3Rpb246IGJvb2xlYW4sXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4gfCBzdHJpbmcgfCBib29sZWFuIHtcblx0aWYgKGlzQW5ub3RhdGlvbkFjdGlvbiAmJiBtYW5pZmVzdEFjdGlvbi5lbmFibGVkID09PSB1bmRlZmluZWQpIHtcblx0XHQvLyBJZiBhbm5vdGF0aW9uIGFjdGlvbiBoYXMgbm8gcHJvcGVydHkgZGVmaW5lZCBpbiBtYW5pZmVzdCxcblx0XHQvLyBkbyBub3Qgb3ZlcndyaXRlIGl0IHdpdGggbWFuaWZlc3QgYWN0aW9uJ3MgZGVmYXVsdCB2YWx1ZS5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdC8vIFJldHVybiB3aGF0IGlzIGRlZmluZWQgaW4gbWFuaWZlc3QuXG5cdHJldHVybiBnZXRNYW5pZmVzdEFjdGlvbkVuYWJsZW1lbnQobWFuaWZlc3RBY3Rpb24sIGNvbnZlcnRlckNvbnRleHQpO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgbWFuaWZlc3Qgc2V0dGluZ3MuXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIE1hbmlmZXN0QWN0aW9uPiB8IHVuZGVmaW5lZH0gbWFuaWZlc3RBY3Rpb25zIFRoZSBtYW5pZmVzdCBhY3Rpb25zXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgY29udmVydGVyIGNvbnRleHRcbiAqIEBwYXJhbSB7QmFzZUFjdGlvbltdfSBhQW5ub3RhdGlvbkFjdGlvbnMgVGhlIGFubm90YXRpb24gYWN0aW9ucyBkZWZpbml0aW9uXG4gKiBAcGFyYW0ge05hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb259IG5hdmlnYXRpb25TZXR0aW5ncyBUaGUgbmF2aWdhdGlvbiBzZXR0aW5nc1xuICogQHBhcmFtIHtib29sZWFufSBjb25zaWRlck5hdmlnYXRpb25TZXR0aW5ncyBUaGUgbmF2aWdhdGlvbiBzZXR0aW5ncyB0byBiZSBjb25zaWRlcmVkXG4gKiBAcGFyYW0ge0Jhc2VBY3Rpb25bXX0gYUhpZGRlbkhlYWRlckFjdGlvbnMgVGhlIGhpZGRlbiBoZWFkZXIgYWN0aW9uc1xuICogQHBhcmFtIHtzdHJpbmd9IGZhY2V0TmFtZSBUaGUgZmFjZXQgd2hlcmUgYW4gYWN0aW9uIGlzIGRpc3BsYXllZCBpZiBpdCBpcyBpbmxpbmVcbiAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+fSBUaGUgYWN0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdChcblx0bWFuaWZlc3RBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBNYW5pZmVzdEFjdGlvbj4gfCB1bmRlZmluZWQsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFBbm5vdGF0aW9uQWN0aW9ucz86IEJhc2VBY3Rpb25bXSxcblx0bmF2aWdhdGlvblNldHRpbmdzPzogTmF2aWdhdGlvblNldHRpbmdzQ29uZmlndXJhdGlvbixcblx0Y29uc2lkZXJOYXZpZ2F0aW9uU2V0dGluZ3M/OiBib29sZWFuLFxuXHRhSGlkZGVuSGVhZGVyQWN0aW9ucz86IEJhc2VBY3Rpb25bXSxcblx0ZmFjZXROYW1lPzogc3RyaW5nXG4pOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BY3Rpb24+IHtcblx0Y29uc3QgYWN0aW9uczogUmVjb3JkPHN0cmluZywgQ3VzdG9tQWN0aW9uPiA9IHt9O1xuXHRmb3IgKGNvbnN0IGFjdGlvbktleSBpbiBtYW5pZmVzdEFjdGlvbnMpIHtcblx0XHRjb25zdCBtYW5pZmVzdEFjdGlvbjogTWFuaWZlc3RBY3Rpb24gPSBtYW5pZmVzdEFjdGlvbnNbYWN0aW9uS2V5XTtcblx0XHRjb25zdCBsYXN0RG90SW5kZXggPSBtYW5pZmVzdEFjdGlvbi5wcmVzcz8ubGFzdEluZGV4T2YoXCIuXCIpIHx8IC0xO1xuXG5cdFx0Ly8gVG8gaWRlbnRpZnkgdGhlIGFubm90YXRpb24gYWN0aW9uIHByb3BlcnR5IG92ZXJ3cml0ZSB2aWEgbWFuaWZlc3QgdXNlLWNhc2UuXG5cdFx0Y29uc3QgaXNBbm5vdGF0aW9uQWN0aW9uID0gYUFubm90YXRpb25BY3Rpb25zPy5zb21lKGFjdGlvbiA9PiBhY3Rpb24ua2V5ID09PSBhY3Rpb25LZXkpIHx8IGZhbHNlO1xuXHRcdGlmIChtYW5pZmVzdEFjdGlvbi5mYWNldE5hbWUpIHtcblx0XHRcdGZhY2V0TmFtZSA9IG1hbmlmZXN0QWN0aW9uLmZhY2V0TmFtZTtcblx0XHR9XG5cblx0XHRhY3Rpb25zW2FjdGlvbktleV0gPSB7XG5cdFx0XHRpZDogYUFubm90YXRpb25BY3Rpb25zPy5zb21lKGFjdGlvbiA9PiBhY3Rpb24ua2V5ID09PSBhY3Rpb25LZXkpID8gYWN0aW9uS2V5IDogQ3VzdG9tQWN0aW9uSUQoYWN0aW9uS2V5KSxcblx0XHRcdHZpc2libGU6IG1hbmlmZXN0QWN0aW9uLnZpc2libGUgPT09IHVuZGVmaW5lZCA/IFwidHJ1ZVwiIDogbWFuaWZlc3RBY3Rpb24udmlzaWJsZSxcblx0XHRcdGVuYWJsZWQ6IF9nZXRNYW5pZmVzdEVuYWJsZWQobWFuaWZlc3RBY3Rpb24sIGlzQW5ub3RhdGlvbkFjdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHRoYW5kbGVyTW9kdWxlOiBtYW5pZmVzdEFjdGlvbi5wcmVzcyAmJiBtYW5pZmVzdEFjdGlvbi5wcmVzcy5zdWJzdHJpbmcoMCwgbGFzdERvdEluZGV4KS5yZXBsYWNlKC9cXC4vZ2ksIFwiL1wiKSxcblx0XHRcdGhhbmRsZXJNZXRob2Q6IG1hbmlmZXN0QWN0aW9uLnByZXNzICYmIG1hbmlmZXN0QWN0aW9uLnByZXNzLnN1YnN0cmluZyhsYXN0RG90SW5kZXggKyAxKSxcblx0XHRcdHByZXNzOiBtYW5pZmVzdEFjdGlvbi5wcmVzcyxcblx0XHRcdHRleHQ6IG1hbmlmZXN0QWN0aW9uLnRleHQsXG5cdFx0XHRub1dyYXA6IG1hbmlmZXN0QWN0aW9uLl9fbm9XcmFwLFxuXHRcdFx0a2V5OiByZXBsYWNlU3BlY2lhbENoYXJzKGFjdGlvbktleSksXG5cdFx0XHRlbmFibGVPblNlbGVjdDogbWFuaWZlc3RBY3Rpb24uZW5hYmxlT25TZWxlY3QsXG5cdFx0XHRkZWZhdWx0VmFsdWVzRXh0ZW5zaW9uRnVuY3Rpb246IG1hbmlmZXN0QWN0aW9uLmRlZmF1bHRWYWx1ZXNGdW5jdGlvbixcblx0XHRcdHBvc2l0aW9uOiB7XG5cdFx0XHRcdGFuY2hvcjogbWFuaWZlc3RBY3Rpb24ucG9zaXRpb24/LmFuY2hvcixcblx0XHRcdFx0cGxhY2VtZW50OiBtYW5pZmVzdEFjdGlvbi5wb3NpdGlvbiA9PT0gdW5kZWZpbmVkID8gUGxhY2VtZW50LkFmdGVyIDogbWFuaWZlc3RBY3Rpb24ucG9zaXRpb24ucGxhY2VtZW50XG5cdFx0XHR9LFxuXHRcdFx0aXNOYXZpZ2FibGU6IGlzQWN0aW9uTmF2aWdhYmxlKG1hbmlmZXN0QWN0aW9uLCBuYXZpZ2F0aW9uU2V0dGluZ3MsIGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzKSxcblx0XHRcdHJlcXVpcmVzU2VsZWN0aW9uOiBtYW5pZmVzdEFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvbiA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtYW5pZmVzdEFjdGlvbi5yZXF1aXJlc1NlbGVjdGlvbixcblx0XHRcdGVuYWJsZUF1dG9TY3JvbGw6IGVuYWJsZUF1dG9TY3JvbGwobWFuaWZlc3RBY3Rpb24pLFxuXHRcdFx0bWVudTogbWFuaWZlc3RBY3Rpb24ubWVudSA/PyBbXSxcblx0XHRcdGZhY2V0TmFtZTogbWFuaWZlc3RBY3Rpb24uaW5saW5lID8gZmFjZXROYW1lIDogdW5kZWZpbmVkXG5cdFx0fTtcblx0XHQvLyBEbyBub3Qgb3ZlcnJpZGUgdGhlICd0eXBlJyBnaXZlbiBpbiBhbiBhbm5vdGF0aW9uIGFjdGlvblxuXHRcdGlmICghaXNBbm5vdGF0aW9uQWN0aW9uKSB7XG5cdFx0XHRhY3Rpb25zW2FjdGlvbktleV0udHlwZSA9IG1hbmlmZXN0QWN0aW9uLm1lbnUgPyBBY3Rpb25UeXBlLk1lbnUgOiBBY3Rpb25UeXBlLkRlZmF1bHQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBwcmVwYXJlTWVudUFjdGlvbihhY3Rpb25zLCBhQW5ub3RhdGlvbkFjdGlvbnMgPz8gW10sIGFIaWRkZW5IZWFkZXJBY3Rpb25zID8/IFtdKTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RBY3Rpb25FbmFibGVtZW50KG1hbmlmZXN0QWN0aW9uOiBNYW5pZmVzdEFjdGlvbiwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCkge1xuXHRjb25zdCByZXNvbHZlZEJpbmRpbmcgPSByZXNvbHZlQmluZGluZ1N0cmluZyhtYW5pZmVzdEFjdGlvbi5lbmFibGVkIGFzIHN0cmluZywgXCJib29sZWFuXCIpO1xuXHRsZXQgcmVzdWx0OiBhbnk7XG5cdGlmIChpc0NvbnN0YW50KHJlc29sdmVkQmluZGluZykgJiYgcmVzb2x2ZWRCaW5kaW5nLnZhbHVlID09PSB1bmRlZmluZWQpIHtcblx0XHQvLyBObyBlbmFibGVkIHByb3BlcnR5IGNvbmZpZ3VyZWQgaW4gbWFuaWZlc3QgZm9yIHRoZSBjdXN0b20gYWN0aW9uIC0tPiBlbmFibGUgY3VzdG9tIGFjdGlvblxuXHRcdHJlc3VsdCA9IHRydWU7XG5cdH0gZWxzZSBpZiAoaXNDb25zdGFudChyZXNvbHZlZEJpbmRpbmcpICYmIHR5cGVvZiByZXNvbHZlZEJpbmRpbmcudmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0Ly8gdHJ1ZSAvIGZhbHNlXG5cdFx0cmVzdWx0ID0gcmVzb2x2ZWRCaW5kaW5nLnZhbHVlO1xuXHR9IGVsc2UgaWYgKHJlc29sdmVkQmluZGluZy5fdHlwZSAhPT0gXCJFbWJlZGRlZEJpbmRpbmdcIiAmJiByZXNvbHZlZEJpbmRpbmcuX3R5cGUgIT09IFwiRW1iZWRkZWRFeHByZXNzaW9uQmluZGluZ1wiKSB7XG5cdFx0Ly8gVGhlbiBpdCdzIGEgbW9kdWxlLW1ldGhvZCByZWZlcmVuY2UgXCJzYXAueHh4Lnl5eS5kb1NvbWV0aGluZ1wiXG5cdFx0Y29uc3QgbWV0aG9kUGF0aCA9IHJlc29sdmVkQmluZGluZy52YWx1ZSBhcyBzdHJpbmc7XG5cdFx0cmVzdWx0ID0gZm9ybWF0UmVzdWx0KFxuXHRcdFx0W2JpbmRpbmdFeHByZXNzaW9uKFwiL1wiLCBcIiR2aWV3XCIpLCBtZXRob2RQYXRoLCBiaW5kaW5nRXhwcmVzc2lvbihcInNlbGVjdGVkQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKV0sXG5cdFx0XHRmcG1Gb3JtYXR0ZXIuY3VzdG9tSXNFbmFibGVkQ2hlY2sgYXMgYW55LFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKClcblx0XHQpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIHRoZW4gaXQncyBhIGJpbmRpbmdcblx0XHRyZXN1bHQgPSByZXNvbHZlZEJpbmRpbmc7XG5cdH1cblxuXHQvLyBDb25zaWRlciByZXF1aXJlc1NlbGVjdGlvbiBwcm9wZXJ0eSB0byBpbmNsdWRlIHNlbGVjdGVkQ29udGV4dHMgaW4gdGhlIGJpbmRpbmcgZXhwcmVzc2lvblxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoXG5cdFx0aWZFbHNlKFxuXHRcdFx0bWFuaWZlc3RBY3Rpb24ucmVxdWlyZXNTZWxlY3Rpb24gPT09IHRydWUsXG5cdFx0XHRhbmQoZ3JlYXRlck9yRXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJudW1iZXJPZlNlbGVjdGVkQ29udGV4dHNcIiwgXCJpbnRlcm5hbFwiKSwgMSksIHJlc3VsdCksXG5cdFx0XHRyZXN1bHRcblx0XHQpXG5cdCk7XG59XG5cbi8qKlxuICogTWV0aG9kIHRvIGRldGVybWluZSB0aGUgdmFsdWUgb2YgdGhlICdlbmFibGVkJyBwcm9wZXJ0eSBvZiBhbiBhbm5vdGF0aW9uLWJhc2VkIGFjdGlvbi5cbiAqXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIHtBY3Rpb259IGFjdGlvblRhcmdldCBUaGUgaW5zdGFuY2Ugb2YgdGhlIGFjdGlvblxuICogQHJldHVybnMge0JpbmRpbmdFeHByZXNzaW9uPGJvb2xlYW4+fSBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgJ2VuYWJsZWQnIHByb3BlcnR5IG9mIHRoZSBhY3Rpb24gYnV0dG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5hYmxlZEZvckFubm90YXRpb25BY3Rpb24oXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvblRhcmdldDogQWN0aW9uIHwgdW5kZWZpbmVkXG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPiB7XG5cdGlmIChhY3Rpb25UYXJnZXQ/LmlzQm91bmQgIT09IHRydWUpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXHQvKlxuXHQgICBGSVhNRSBEaXNhYmxlIGZhaWxpbmcgbXVzaWMgdGVzdHNcblx0XHRDdXJyZW50bHkgb24gQ0FQIHRoZSBmb2xsb3dpbmcgYmluZGluZyAod2hpY2ggaXMgdGhlIGdvb2Qgb25lKSBnZW5lcmF0ZXMgZXJyb3I6XG5cdGlmIChhY3Rpb25UYXJnZXQ/LmFubm90YXRpb25zLkNvcmU/Lk9wZXJhdGlvbkF2YWlsYWJsZSA9PT0gbnVsbCkge1xuXHRcdGNvbnN0IHVuYm91bmRBY3Rpb25OYW1lID0gYWN0aW9uVGFyZ2V0LmZ1bGx5UXVhbGlmaWVkTmFtZS5zcGxpdChcIihcIilbMF07XG5cdFx0cmV0dXJuIFwiez0gISR7I1wiICsgdW5ib3VuZEFjdGlvbk5hbWUgKyBcIn0gPyBmYWxzZSA6IHRydWUgfSB9XCI7XG5cdH1cblx0XHRDQVAgdHJpZXMgdG8gcmVhZCB0aGUgYWN0aW9uIGFzIHByb3BlcnR5IGFuZCBkb2Vzbid0IGZpbmQgaXRcblx0Ki9cblx0aWYgKGFjdGlvblRhcmdldD8ucGFyYW1ldGVycz8ubGVuZ3RoKSB7XG5cdFx0Y29uc3QgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lID0gYWN0aW9uVGFyZ2V0Py5wYXJhbWV0ZXJzWzBdLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdG9wZXJhdGlvbkF2YWlsYWJsZUV4cHJlc3Npb24gPSBhbm5vdGF0aW9uRXhwcmVzc2lvbihcblx0XHRcdFx0YWN0aW9uVGFyZ2V0Py5hbm5vdGF0aW9ucy5Db3JlPy5PcGVyYXRpb25BdmFpbGFibGUsXG5cdFx0XHRcdFtdLFxuXHRcdFx0XHR1bmRlZmluZWQsXG5cdFx0XHRcdChwYXRoOiBzdHJpbmcpID0+IGJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dCwgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lKVxuXHRcdFx0KSBhcyBCaW5kaW5nRXhwcmVzc2lvbkV4cHJlc3Npb248Ym9vbGVhbj47XG5cdFx0aWYgKGFjdGlvblRhcmdldD8uYW5ub3RhdGlvbnMuQ29yZT8uT3BlcmF0aW9uQXZhaWxhYmxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHJldHVybiBjb21waWxlQmluZGluZyhlcXVhbChvcGVyYXRpb25BdmFpbGFibGVFeHByZXNzaW9uLCB0cnVlKSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VtYW50aWNPYmplY3RNYXBwaW5nKGFNYXBwaW5nczogYW55W10pOiBhbnlbXSB7XG5cdGNvbnN0IGFTZW1hbnRpY09iamVjdE1hcHBpbmdzOiBhbnlbXSA9IFtdO1xuXHRhTWFwcGluZ3MuZm9yRWFjaChvTWFwcGluZyA9PiB7XG5cdFx0Y29uc3Qgb1NPTWFwcGluZyA9IHtcblx0XHRcdFwiTG9jYWxQcm9wZXJ0eVwiOiB7XG5cdFx0XHRcdFwiJFByb3BlcnR5UGF0aFwiOiBvTWFwcGluZy5Mb2NhbFByb3BlcnR5LnZhbHVlXG5cdFx0XHR9LFxuXHRcdFx0XCJTZW1hbnRpY09iamVjdFByb3BlcnR5XCI6IG9NYXBwaW5nLlNlbWFudGljT2JqZWN0UHJvcGVydHlcblx0XHR9O1xuXHRcdGFTZW1hbnRpY09iamVjdE1hcHBpbmdzLnB1c2gob1NPTWFwcGluZyk7XG5cdH0pO1xuXHRyZXR1cm4gYVNlbWFudGljT2JqZWN0TWFwcGluZ3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FjdGlvbk5hdmlnYWJsZShcblx0YWN0aW9uOiBNYW5pZmVzdEFjdGlvbiB8IE1hbmlmZXN0VGFibGVDb2x1bW4sXG5cdG5hdmlnYXRpb25TZXR0aW5ncz86IE5hdmlnYXRpb25TZXR0aW5nc0NvbmZpZ3VyYXRpb24sXG5cdGNvbnNpZGVyTmF2aWdhdGlvblNldHRpbmdzPzogYm9vbGVhblxuKTogYm9vbGVhbiB7XG5cdGxldCBiSXNOYXZpZ2F0aW9uQ29uZmlndXJlZDogYm9vbGVhbiA9IHRydWU7XG5cdGlmIChjb25zaWRlck5hdmlnYXRpb25TZXR0aW5ncykge1xuXHRcdGNvbnN0IGRldGFpbE9yRGlzcGxheSA9IG5hdmlnYXRpb25TZXR0aW5ncyAmJiAobmF2aWdhdGlvblNldHRpbmdzLmRldGFpbCB8fCBuYXZpZ2F0aW9uU2V0dGluZ3MuZGlzcGxheSk7XG5cdFx0YklzTmF2aWdhdGlvbkNvbmZpZ3VyZWQgPSBkZXRhaWxPckRpc3BsYXk/LnJvdXRlID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cdC8vIHdoZW4gZW5hYmxlQXV0b1Njcm9sbCBpcyB0cnVlIHRoZSBuYXZpZ2F0ZVRvSW5zdGFuY2UgZmVhdHVyZSBpcyBkaXNhYmxlZFxuXHRpZiAoXG5cdFx0KGFjdGlvbiAmJlxuXHRcdFx0YWN0aW9uLmFmdGVyRXhlY3V0aW9uICYmXG5cdFx0XHQoYWN0aW9uLmFmdGVyRXhlY3V0aW9uPy5uYXZpZ2F0ZVRvSW5zdGFuY2UgPT09IGZhbHNlIHx8IGFjdGlvbi5hZnRlckV4ZWN1dGlvbj8uZW5hYmxlQXV0b1Njcm9sbCA9PT0gdHJ1ZSkpIHx8XG5cdFx0IWJJc05hdmlnYXRpb25Db25maWd1cmVkXG5cdCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZUF1dG9TY3JvbGwoYWN0aW9uOiBNYW5pZmVzdEFjdGlvbik6IGJvb2xlYW4ge1xuXHRyZXR1cm4gYWN0aW9uPy5hZnRlckV4ZWN1dGlvbj8uZW5hYmxlQXV0b1Njcm9sbCA9PT0gdHJ1ZTtcbn1cbiJdfQ==
|
|
@@ -156,10 +156,10 @@ function prepareMenuAction(
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
export const removeDuplicateActions = (actions: BaseAction[]): BaseAction[] => {
|
|
159
|
-
|
|
159
|
+
let oMenuItemKeys: { [key: string]: any } = {};
|
|
160
160
|
actions.forEach(action => {
|
|
161
161
|
if (action?.menu?.length) {
|
|
162
|
-
action.menu.reduce((item, { key }: any) => {
|
|
162
|
+
oMenuItemKeys = action.menu.reduce((item, { key }: any) => {
|
|
163
163
|
if (key && !item[key]) {
|
|
164
164
|
item[key] = true;
|
|
165
165
|
}
|
|
@@ -125,12 +125,12 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
125
125
|
return undefined;
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
|
-
* Create the ChartVisualization configuration that will be used to display a chart
|
|
128
|
+
* Create the ChartVisualization configuration that will be used to display a chart using the Chart building block.
|
|
129
129
|
*
|
|
130
130
|
* @param {ChartDefinitionTypeTypes} chartAnnotation The target chart annotation
|
|
131
131
|
* @param {string} visualizationPath The current visualization annotation path
|
|
132
132
|
* @param {ConverterContext} converterContext The converter context
|
|
133
|
-
* @param {boolean} doNotCheckApplySupported Flag that
|
|
133
|
+
* @param {boolean} doNotCheckApplySupported Flag that indicates whether applysupported needs to be checked or not
|
|
134
134
|
* @returns {ChartVisualization} The chart visualization based on the annotation
|
|
135
135
|
*/
|
|
136
136
|
|
|
@@ -258,6 +258,8 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
258
258
|
var hasMultipleVisualizations = converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === "AnalyticalListPage";
|
|
259
259
|
var onSegmentedButtonPressed = hasMultipleVisualizations ? ".handlers.onSegmentedButtonPressed" : "";
|
|
260
260
|
var visible = hasMultipleVisualizations ? "{= ${pageInternal>alpContentView} !== 'Table'}" : "true";
|
|
261
|
+
var allowedTransformations = aggregationHelper.getAllowedTransformations();
|
|
262
|
+
mApplySupported.enableSearch = allowedTransformations ? allowedTransformations.indexOf("search") >= 0 : true;
|
|
261
263
|
return {
|
|
262
264
|
type: VisualizationType.Chart,
|
|
263
265
|
id: ChartID(isEntitySet ? entityName : navigationPropertyPath, VisualizationType.Chart),
|
|
@@ -282,4 +284,4 @@ sap.ui.define(["../../ManifestSettings", "sap/fe/core/converters/controls/Common
|
|
|
282
284
|
_exports.createChartVisualization = createChartVisualization;
|
|
283
285
|
return _exports;
|
|
284
286
|
}, false);
|
|
285
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0LnRzIl0sIm5hbWVzIjpbImdldENoYXJ0QWN0aW9uc0Zyb21Bbm5vdGF0aW9ucyIsImNoYXJ0QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QWN0aW9ucyIsImFBY3Rpb25zIiwiQWN0aW9ucyIsImZvckVhY2giLCJkYXRhRmllbGQiLCJjaGFydEFjdGlvbiIsImlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIklubGluZSIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsIiRUeXBlIiwidHlwZSIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwdXNoIiwiZ2V0Q2hhcnRBY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbiIsImFjdGlvbnMiLCJlbmFibGVPblNlbGVjdCIsImVuYWJsZWQiLCJnZXRQMTNuTW9kZSIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsImNoYXJ0TWFuaWZlc3RTZXR0aW5ncyIsImhhc1ZhcmlhbnRNYW5hZ2VtZW50IiwiaW5kZXhPZiIsImdldFZhcmlhbnRNYW5hZ2VtZW50IiwicGVyc29uYWxpemF0aW9uIiwiYVBlcnNvbmFsaXphdGlvbiIsImNoYXJ0U2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJpdGVtIiwic29ydCIsImpvaW4iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJhZ2dyZWdhdGlvbkhlbHBlciIsIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZ2V0RW50aXR5VHlwZSIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwiRXJyb3IiLCJhVHJhbnNBZ2dBbm5vcyIsIkFuYWx5dGljcyIsIkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwidHJhbnNBZ2dMYWJlbHMiLCJpIiwibGVuZ3RoIiwiTmFtZSIsImxhYmVsIiwiQ29tbW9uIiwiTGFiZWwiLCJhQ3VzdG9tQWdncmVnYXRlcyIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwibUN1c3RvbUFnZ3JlZ2F0ZXMiLCJhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsIkFnZ3JlZ2F0aW9uIiwiQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsInF1YWxpZmllciIsIm5hbWUiLCJzb3J0YWJsZSIsInNvcnRPcmRlciIsImNvbnRleHREZWZpbmluZ1Byb3BlcnR5IiwibWFwIiwib0N0eERlZlByb3BlcnR5IiwidmFsdWUiLCJhVHJhbnNBZ2dyZWdhdGlvbnMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsIm1UcmFuc0FnZ3JlZ2F0aW9ucyIsInByb3BlcnR5UGF0aCIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYWdncmVnYXRpb25NZXRob2QiLCJBZ2dyZWdhdGlvbk1ldGhvZCIsImN1c3RvbSIsImFBZ2dQcm9wcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JwUHJvcHMiLCJnZXRHcm91cGFibGVQcm9wZXJ0aWVzIiwibUFwcGx5U3VwcG9ydGVkIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvYmoiLCJQcm9wZXJ0eSIsIiRQcm9wZXJ0eVBhdGgiLCJzcGxpdCIsIm5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCJsYXN0SW5kZXhPZiIsInN1YnN0ciIsInRpdGxlIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVR5cGUiLCJIZWFkZXJJbmZvIiwiVHlwZU5hbWVQbHVyYWwiLCJkYXRhTW9kZWxQYXRoIiwiaXNFbnRpdHlTZXQiLCJlbnRpdHlOYW1lIiwidGFyZ2V0RW50aXR5U2V0Iiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzRmlsdGVyYmFySWQiLCJGaWx0ZXJCYXJJRCIsImdldENvbnRleHRQYXRoIiwib1ZpelByb3BlcnRpZXMiLCJhdXRvQmluZE9uSW5pdCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIk9iamVjdFBhZ2UiLCJMaXN0UmVwb3J0IiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCIsInZpc2libGUiLCJWaXN1YWxpemF0aW9uVHlwZSIsIkNoYXJ0IiwiaWQiLCJDaGFydElEIiwiY29sbGVjdGlvbiIsImdldFRhcmdldE9iamVjdFBhdGgiLCJuYXZpZ2F0aW9uUGF0aCIsImdldEFic29sdXRlQW5ub3RhdGlvblBhdGgiLCJmaWx0ZXJJZCIsInZpelByb3BlcnRpZXMiLCJKU09OIiwic3RyaW5naWZ5IiwiY3VzdG9tQWdnIiwidHJhbnNBZ2ciLCJhcHBseVN1cHBvcnRlZCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVNBLDhCQUFULENBQ0NDLGVBREQsRUFFQ0MsaUJBRkQsRUFHQ0MsZ0JBSEQsRUFJZ0I7QUFDZixRQUFNQyxZQUEwQixHQUFHLEVBQW5DOztBQUNBLFFBQUlILGVBQUosRUFBcUI7QUFDcEIsVUFBTUksUUFBUSxHQUFHSixlQUFlLENBQUNLLE9BQWhCLElBQTJCLEVBQTVDO0FBQ0FELE1BQUFBLFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQixVQUFDQyxTQUFELEVBQXVDO0FB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SSxpQkFBM0MsQ0FQVjtBQVFOdUksTUFBQUEsUUFBUSxFQUFFckIsWUFSSjtBQVNOc0IsTUFBQUEsYUFBYSxFQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZXJCLGNBQWYsQ0FUVDtBQVVObkYsTUFBQUEsT0FBTyxFQUFFaEMsWUFWSDtBQVdOc0csTUFBQUEsS0FBSyxFQUFFQSxLQVhEO0FBWU5jLE1BQUFBLGNBQWMsRUFBRUEsY0FaVjtBQWFOTyxNQUFBQSx3QkFBd0IsRUFBRUEsd0JBYnBCO0FBY05DLE1BQUFBLE9BQU8sRUFBRUEsT0FkSDtBQWVOYSxNQUFBQSxTQUFTLEVBQUVyRSxpQkFmTDtBQWdCTnNFLE1BQUFBLFFBQVEsRUFBRXhELGtCQWhCSjtBQWlCTnlELE1BQUFBLGNBQWMsRUFBRS9DO0FBakJWLEtBQVA7QUFtQkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MsXG5cdFZpc3VhbGl6YXRpb25UeXBlLFxuXHRBY3Rpb25UeXBlLFxuXHRUZW1wbGF0ZVR5cGVcbn0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcywgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IENoYXJ0SUQsIEZpbHRlckJhcklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwiLi4vLi4vTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG4vKipcbiAqIEB0eXBlZGVmIENoYXJ0VmlzdWFsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBDaGFydFZpc3VhbGl6YXRpb24gPSB7XG5cdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0O1xuXHRpZDogc3RyaW5nO1xuXHRjb2xsZWN0aW9uOiBzdHJpbmc7XG5cdGVudGl0eU5hbWU6IHN0cmluZztcblx0cGVyc29uYWxpemF0aW9uPzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUGF0aDogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRmaWx0ZXJJZD86IHN0cmluZztcblx0dml6UHJvcGVydGllczogc3RyaW5nO1xuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IHN0cmluZztcblx0dmlzaWJsZTogc3RyaW5nO1xuXHRjdXN0b21BZ2c6IG9iamVjdDtcblx0dHJhbnNBZ2c6IG9iamVjdDtcblx0YXBwbHlTdXBwb3J0ZWQ6IG9iamVjdDtcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIHJldHJpZXZlIGFsbCBjaGFydCBhY3Rpb25zIGZyb20gYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIGNoYXJ0QW5ub3RhdGlvblxuICogQHBhcmFtIHZpc3VhbGl6YXRpb25QYXRoXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMge0Jhc2VBY3Rpb25bXX0gVGhlIHRhYmxlIGFubm90YXRpb24gYWN0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBjaGFydEFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Y29uc3QgYUFjdGlvbnMgPSBjaGFydEFubm90YXRpb24uQWN0aW9ucyB8fCBbXTtcblx0XHRhQWN0aW9ucy5mb3JFYWNoKChkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IHtcblx0XHRcdGxldCBjaGFydEFjdGlvbjogQW5ub3RhdGlvbkFjdGlvbiB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0aXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdChkYXRhRmllbGQpICYmXG5cdFx0XHRcdCEoZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuSW5saW5lICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuRGV0ZXJtaW5pbmcgJiZcblx0XHRcdFx0IShkYXRhRmllbGQgYXMgYW55KT8uQWN0aW9uVGFyZ2V0Py5pc0JvdW5kXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qga2V5ID0gS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC4kVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYXJ0QWN0aW9uKSB7XG5cdFx0XHRcdGNoYXJ0QWN0aW9ucy5wdXNoKGNoYXJ0QWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gY2hhcnRBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgYUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGFBbm5vdGF0aW9uQWN0aW9ucyxcblx0XHRnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKS5hY3Rpb25zLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdGFBbm5vdGF0aW9uQWN0aW9uc1xuXHRcdCksXG5cdFx0eyBlbmFibGVPblNlbGVjdDogXCJvdmVyd3JpdGVcIiwgZW5hYmxlZDogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQMTNuTW9kZSh2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyOiBNYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBjaGFydE1hbmlmZXN0U2V0dGluZ3M6IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgaGFzVmFyaWFudE1hbmFnZW1lbnQ6IGJvb2xlYW4gPSBbXCJQYWdlXCIsIFwiQ29udHJvbFwiXS5pbmRleE9mKG1hbmlmZXN0V3JhcHBlci5nZXRWYXJpYW50TWFuYWdlbWVudCgpKSA+IC0xO1xuXHRsZXQgcGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPSB0cnVlO1xuXHRjb25zdCBhUGVyc29uYWxpemF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoY2hhcnRNYW5pZmVzdFNldHRpbmdzPy5jaGFydFNldHRpbmdzPy5wZXJzb25hbGl6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdHBlcnNvbmFsaXphdGlvbiA9IGNoYXJ0TWFuaWZlc3RTZXR0aW5ncy5jaGFydFNldHRpbmdzLnBlcnNvbmFsaXphdGlvbjtcblx0fVxuXHRpZiAoaGFzVmFyaWFudE1hbmFnZW1lbnQgJiYgcGVyc29uYWxpemF0aW9uKSB7XG5cdFx0aWYgKHBlcnNvbmFsaXphdGlvbiA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFwiU29ydCxUeXBlLEl0ZW1cIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwZXJzb25hbGl6YXRpb24gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdGlmIChwZXJzb25hbGl6YXRpb24udHlwZSkge1xuXHRcdFx0XHRhUGVyc29uYWxpemF0aW9uLnB1c2goXCJUeXBlXCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHBlcnNvbmFsaXphdGlvbi5pdGVtKSB7XG5cdFx0XHRcdGFQZXJzb25hbGl6YXRpb24ucHVzaChcIkl0ZW1cIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocGVyc29uYWxpemF0aW9uLnNvcnQpIHtcblx0XHRcdFx0YVBlcnNvbmFsaXphdGlvbi5wdXNoKFwiU29ydFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhUGVyc29uYWxpemF0aW9uLmpvaW4oXCIsXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgQ2hhcnRWaXN1YWxpemF0aW9uIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBhIGNoYXJ0IHZpYSBDaGFydCBNYWNyby5cbiAqXG4gKiBAcGFyYW0ge0NoYXJ0RGVmaW5pdGlvblR5cGVUeXBlc30gY2hhcnRBbm5vdGF0aW9uIFRoZSB0YXJnZXQgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHZpc3VhbGl6YXRpb25QYXRoIFRoZSBjdXJyZW50IHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCBGbGFnIHRoYXQgdGVsbHMgd2hldGhlciBhcHBseXN1cHBvcnRlZCB0byBiZSBjaGVja2VkIG9yIG5vdFxuICogQHJldHVybnMge0NoYXJ0VmlzdWFsaXphdGlvbn0gVGhlIGNoYXJ0IHZpc3VhbGl6YXRpb24gYmFzZWQgb24gdGhlIGFubm90YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbihcblx0Y2hhcnRBbm5vdGF0aW9uOiBDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IENoYXJ0VmlzdWFsaXphdGlvbiB7XG5cdGNvbnN0IGFnZ3JlZ2F0aW9uSGVscGVyID0gbmV3IEFnZ3JlZ2F0aW9uSGVscGVyKGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0aWYgKCFkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQgJiYgIWFnZ3JlZ2F0aW9uSGVscGVyLmlzQW5hbHl0aWNzU3VwcG9ydGVkKCkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBcHBseVN1cHBvcnRlZCBpcyBub3QgYWRkZWQgdG8gdGhlIGFubm90YXRpb25zXCIpO1xuXHR9XG5cdGNvbnN0IGFUcmFuc0FnZ0Fubm9zID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCkuYW5ub3RhdGlvbnMuQW5hbHl0aWNzPy5BZ2dyZWdhdGVkUHJvcGVydGllcyBhcyBhbnk7XG5cdGNvbnN0IHRyYW5zQWdnTGFiZWxzID0ge30gYXMgYW55O1xuXG5cdGZvciAobGV0IGkgPSAwOyBhVHJhbnNBZ2dBbm5vcyAmJiBpIDwgYVRyYW5zQWdnQW5ub3MubGVuZ3RoOyBpKyspIHtcblx0XHR0cmFuc0FnZ0xhYmVsc1thVHJhbnNBZ2dBbm5vc1tpXS5OYW1lXSA9IHtcblx0XHRcdGxhYmVsOiBhVHJhbnNBZ2dBbm5vc1tpXT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uTGFiZWxcblx0XHR9O1xuXHR9XG5cblx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZXMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpO1xuXHRjb25zdCBtQ3VzdG9tQWdncmVnYXRlcyA9IHt9IGFzIGFueTtcblx0aWYgKGFDdXN0b21BZ2dyZWdhdGVzKSB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ3VzdG9tQWdncmVnYXRlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXMgPSBhQ3VzdG9tQWdncmVnYXRlc1tpXS5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXM7XG5cdFx0XHRtQ3VzdG9tQWdncmVnYXRlc1thQ3VzdG9tQWdncmVnYXRlc1tpXS5xdWFsaWZpZXJdID0ge1xuXHRcdFx0XHRuYW1lOiBhQ3VzdG9tQWdncmVnYXRlc1tpXS5xdWFsaWZpZXIsXG5cdFx0XHRcdGxhYmVsOiBcIkN1c3RvbSBBZ2dyZWdhdGUgKFwiICsgYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyICsgXCIpXCIsXG5cdFx0XHRcdHNvcnRhYmxlOiB0cnVlLFxuXHRcdFx0XHRzb3J0T3JkZXI6IFwiYm90aFwiLFxuXHRcdFx0XHRjb250ZXh0RGVmaW5pbmdQcm9wZXJ0eTogYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXNcblx0XHRcdFx0XHQ/IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzLm1hcChvQ3R4RGVmUHJvcGVydHkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0N0eERlZlByb3BlcnR5LnZhbHVlO1xuXHRcdFx0XHRcdCAgfSlcblx0XHRcdFx0XHQ6IFtdXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGFUcmFuc0FnZ3JlZ2F0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldFRyYW5zQWdncmVnYXRpb25zKClbMF07XG5cdGNvbnN0IG1UcmFuc0FnZ3JlZ2F0aW9ucyA9IHt9IGFzIGFueTtcblx0aWYgKGFUcmFuc0FnZ3JlZ2F0aW9ucykge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVRyYW5zQWdncmVnYXRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRtVHJhbnNBZ2dyZWdhdGlvbnNbYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWVdID0ge1xuXHRcdFx0XHRuYW1lOiBhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZSxcblx0XHRcdFx0cHJvcGVydHlQYXRoOiBhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uQWdncmVnYXRhYmxlUHJvcGVydHkudmFsdWVPZigpLnZhbHVlLFxuXHRcdFx0XHRhZ2dyZWdhdGlvbk1ldGhvZDogYVRyYW5zQWdncmVnYXRpb25zW2ldLkFnZ3JlZ2F0aW9uTWV0aG9kLFxuXHRcdFx0XHRsYWJlbDpcblx0XHRcdFx0XHRhVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZSBpbiB0cmFuc0FnZ0xhYmVsc1xuXHRcdFx0XHRcdFx0PyB0cmFuc0FnZ0xhYmVsc1thVHJhbnNBZ2dyZWdhdGlvbnNbaV0uTmFtZV0ubGFiZWxcblx0XHRcdFx0XHRcdDogXCJBZ2dyZWdhdGFibGUgcHJvcGVydHkgKFwiICsgYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUgKyBcIilcIixcblx0XHRcdFx0c29ydGFibGU6IHRydWUsXG5cdFx0XHRcdHNvcnRPcmRlcjogXCJib3RoXCIsXG5cdFx0XHRcdGN1c3RvbTogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0Y29uc3QgYUFnZ1Byb3BzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpO1xuXHRjb25zdCBhR3JwUHJvcHMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRHcm91cGFibGVQcm9wZXJ0aWVzKCk7XG5cdGNvbnN0IG1BcHBseVN1cHBvcnRlZCA9IHt9IGFzIGFueTtcblx0bUFwcGx5U3VwcG9ydGVkLiRUeXBlID0gXCJPcmcuT0RhdGEuQWdncmVnYXRpb24uVjEuQXBwbHlTdXBwb3J0ZWRUeXBlXCI7XG5cdG1BcHBseVN1cHBvcnRlZC5BZ2dyZWdhdGFibGVQcm9wZXJ0aWVzID0gW107XG5cdG1BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzID0gW107XG5cblx0Zm9yIChsZXQgaSA9IDA7IGFBZ2dQcm9wcyAmJiBpIDwgYUFnZ1Byb3BzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgb2JqID0ge1xuXHRcdFx0JFR5cGU6IGFBZ2dQcm9wc1tpXT8uJFR5cGUsXG5cdFx0XHRQcm9wZXJ0eToge1xuXHRcdFx0XHQkUHJvcGVydHlQYXRoOiBhQWdnUHJvcHNbaV0/LlByb3BlcnR5Py52YWx1ZVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHRtQXBwbHlTdXBwb3J0ZWQuQWdncmVnYXRhYmxlUHJvcGVydGllcy5wdXNoKG9iaik7XG5cdH1cblxuXHRmb3IgKGxldCBpID0gMDsgYUdycFByb3BzICYmIGkgPCBhR3JwUHJvcHMubGVuZ3RoOyBpKyspIHtcblx0XHRjb25zdCBvYmogPSB7ICRQcm9wZXJ0eVBhdGg6IGFHcnBQcm9wc1tpXT8udmFsdWUgfTtcblxuXHRcdG1BcHBseVN1cHBvcnRlZC5Hcm91cGFibGVQcm9wZXJ0aWVzLnB1c2gob2JqKTtcblx0fVxuXG5cdGNvbnN0IGNoYXJ0QWN0aW9ucyA9IGdldENoYXJ0QWN0aW9ucyhjaGFydEFubm90YXRpb24sIHZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IFtuYXZpZ2F0aW9uUHJvcGVydHlQYXRoIC8qLCBhbm5vdGF0aW9uUGF0aCovXSA9IHZpc3VhbGl6YXRpb25QYXRoLnNwbGl0KFwiQFwiKTtcblx0aWYgKG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGFzdEluZGV4T2YoXCIvXCIpID09PSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCAtIDEpIHtcblx0XHQvLyBEcm9wIHRyYWlsaW5nIHNsYXNoXG5cdFx0bmF2aWdhdGlvblByb3BlcnR5UGF0aCA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGguc3Vic3RyKDAsIG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoIC0gMSk7XG5cdH1cblx0Y29uc3QgdGl0bGU6IGFueSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldEVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5IZWFkZXJJbmZvPy5UeXBlTmFtZVBsdXJhbDtcblx0Y29uc3QgZGF0YU1vZGVsUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRjb25zdCBpc0VudGl0eVNldDogYm9vbGVhbiA9IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgubGVuZ3RoID09PSAwO1xuXHRjb25zdCBlbnRpdHlOYW1lOiBzdHJpbmcgPSBkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldCA/IGRhdGFNb2RlbFBhdGgudGFyZ2V0RW50aXR5U2V0Lm5hbWUgOiBkYXRhTW9kZWxQYXRoLnN0YXJ0aW5nRW50aXR5U2V0Lm5hbWU7XG5cdGNvbnN0IHNGaWx0ZXJiYXJJZCA9IGlzRW50aXR5U2V0ID8gRmlsdGVyQmFySUQoY29udmVydGVyQ29udGV4dC5nZXRDb250ZXh0UGF0aCgpKSA6IHVuZGVmaW5lZDtcblx0Y29uc3Qgb1ZpelByb3BlcnRpZXMgPSB7XG5cdFx0XCJsZWdlbmRHcm91cFwiOiB7XG5cdFx0XHRcImxheW91dFwiOiB7XG5cdFx0XHRcdFwicG9zaXRpb25cIjogXCJib3R0b21cIlxuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0bGV0IGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRpZiAoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UpIHtcblx0XHRhdXRvQmluZE9uSW5pdCA9IHRydWU7XG5cdH0gZWxzZSBpZiAoXG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkxpc3RSZXBvcnQgfHxcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlXG5cdCkge1xuXHRcdGF1dG9CaW5kT25Jbml0ID0gZmFsc2U7XG5cdH1cblx0Y29uc3QgaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA9XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHwgY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gXCJBbmFseXRpY2FsTGlzdFBhZ2VcIjtcblx0Y29uc3Qgb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkID0gaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyA/IFwiLmhhbmRsZXJzLm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZFwiIDogXCJcIjtcblx0Y29uc3QgdmlzaWJsZSA9IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPyBcIns9ICR7cGFnZUludGVybmFsPmFscENvbnRlbnRWaWV3fSAhPT0gJ1RhYmxlJ31cIiA6IFwidHJ1ZVwiO1xuXHRyZXR1cm4ge1xuXHRcdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0LFxuXHRcdGlkOiBDaGFydElEKGlzRW50aXR5U2V0ID8gZW50aXR5TmFtZSA6IG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgsIFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0KSxcblx0XHRjb2xsZWN0aW9uOiBnZXRUYXJnZXRPYmplY3RQYXRoKGNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKSxcblx0XHRlbnRpdHlOYW1lOiBlbnRpdHlOYW1lLFxuXHRcdHBlcnNvbmFsaXphdGlvbjogZ2V0UDEzbk1vZGUodmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdG5hdmlnYXRpb25QYXRoOiBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEFic29sdXRlQW5ub3RhdGlvblBhdGgodmlzdWFsaXphdGlvblBhdGgpLFxuXHRcdGZpbHRlcklkOiBzRmlsdGVyYmFySWQsXG5cdFx0dml6UHJvcGVydGllczogSlNPTi5zdHJpbmdpZnkob1ZpelByb3BlcnRpZXMpLFxuXHRcdGFjdGlvbnM6IGNoYXJ0QWN0aW9ucyxcblx0XHR0aXRsZTogdGl0bGUsXG5cdFx0YXV0b0JpbmRPbkluaXQ6IGF1dG9CaW5kT25Jbml0LFxuXHRcdG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZDogb25TZWdtZW50ZWRCdXR0b25QcmVzc2VkLFxuXHRcdHZpc2libGU6IHZpc2libGUsXG5cdFx0Y3VzdG9tQWdnOiBtQ3VzdG9tQWdncmVnYXRlcyxcblx0XHR0cmFuc0FnZzogbVRyYW5zQWdncmVnYXRpb25zLFxuXHRcdGFwcGx5U3VwcG9ydGVkOiBtQXBwbHlTdXBwb3J0ZWRcblx0fTtcbn1cbiJdfQ==
|
|
287
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0LnRzIl0sIm5hbWVzIjpbImdldENoYXJ0QWN0aW9uc0Zyb21Bbm5vdGF0aW9ucyIsImNoYXJ0QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsImNoYXJ0QWN0aW9ucyIsImFBY3Rpb25zIiwiQWN0aW9ucyIsImZvckVhY2giLCJkYXRhRmllbGQiLCJjaGFydEFjdGlvbiIsImlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsIklubGluZSIsIkRldGVybWluaW5nIiwiQWN0aW9uVGFyZ2V0IiwiaXNCb3VuZCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsIiRUeXBlIiwidHlwZSIsIkFjdGlvblR5cGUiLCJEYXRhRmllbGRGb3JBY3Rpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJEYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24iLCJwdXNoIiwiZ2V0Q2hhcnRBY3Rpb25zIiwiYUFubm90YXRpb25BY3Rpb25zIiwiaW5zZXJ0Q3VzdG9tRWxlbWVudHMiLCJnZXRBY3Rpb25zRnJvbU1hbmlmZXN0IiwiZ2V0TWFuaWZlc3RDb250cm9sQ29uZmlndXJhdGlvbiIsImFjdGlvbnMiLCJlbmFibGVPblNlbGVjdCIsImVuYWJsZWQiLCJnZXRQMTNuTW9kZSIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsImNoYXJ0TWFuaWZlc3RTZXR0aW5ncyIsImhhc1ZhcmlhbnRNYW5hZ2VtZW50IiwiaW5kZXhPZiIsImdldFZhcmlhbnRNYW5hZ2VtZW50IiwicGVyc29uYWxpemF0aW9uIiwiYVBlcnNvbmFsaXphdGlvbiIsImNoYXJ0U2V0dGluZ3MiLCJ1bmRlZmluZWQiLCJpdGVtIiwic29ydCIsImpvaW4iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJhZ2dyZWdhdGlvbkhlbHBlciIsIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZ2V0RW50aXR5VHlwZSIsImlzQW5hbHl0aWNzU3VwcG9ydGVkIiwiRXJyb3IiLCJhVHJhbnNBZ2dBbm5vcyIsIkFuYWx5dGljcyIsIkFnZ3JlZ2F0ZWRQcm9wZXJ0aWVzIiwidHJhbnNBZ2dMYWJlbHMiLCJpIiwibGVuZ3RoIiwiTmFtZSIsImxhYmVsIiwiQ29tbW9uIiwiTGFiZWwiLCJhQ3VzdG9tQWdncmVnYXRlcyIsImdldEN1c3RvbUFnZ3JlZ2F0ZURlZmluaXRpb25zIiwibUN1c3RvbUFnZ3JlZ2F0ZXMiLCJhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsIkFnZ3JlZ2F0aW9uIiwiQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsInF1YWxpZmllciIsIm5hbWUiLCJzb3J0YWJsZSIsInNvcnRPcmRlciIsImNvbnRleHREZWZpbmluZ1Byb3BlcnR5IiwibWFwIiwib0N0eERlZlByb3BlcnR5IiwidmFsdWUiLCJhVHJhbnNBZ2dyZWdhdGlvbnMiLCJnZXRUcmFuc0FnZ3JlZ2F0aW9ucyIsIm1UcmFuc0FnZ3JlZ2F0aW9ucyIsInByb3BlcnR5UGF0aCIsIkFnZ3JlZ2F0YWJsZVByb3BlcnR5IiwiYWdncmVnYXRpb25NZXRob2QiLCJBZ2dyZWdhdGlvbk1ldGhvZCIsImN1c3RvbSIsImFBZ2dQcm9wcyIsImdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMiLCJhR3JwUHJvcHMiLCJnZXRHcm91cGFibGVQcm9wZXJ0aWVzIiwibUFwcGx5U3VwcG9ydGVkIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsIkdyb3VwYWJsZVByb3BlcnRpZXMiLCJvYmoiLCJQcm9wZXJ0eSIsIiRQcm9wZXJ0eVBhdGgiLCJzcGxpdCIsIm5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCJsYXN0SW5kZXhPZiIsInN1YnN0ciIsInRpdGxlIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldEVudGl0eVR5cGUiLCJIZWFkZXJJbmZvIiwiVHlwZU5hbWVQbHVyYWwiLCJkYXRhTW9kZWxQYXRoIiwiaXNFbnRpdHlTZXQiLCJlbnRpdHlOYW1lIiwidGFyZ2V0RW50aXR5U2V0Iiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzRmlsdGVyYmFySWQiLCJGaWx0ZXJCYXJJRCIsImdldENvbnRleHRQYXRoIiwib1ZpelByb3BlcnRpZXMiLCJhdXRvQmluZE9uSW5pdCIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIk9iamVjdFBhZ2UiLCJMaXN0UmVwb3J0IiwiQW5hbHl0aWNhbExpc3RQYWdlIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIm9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCIsInZpc2libGUiLCJhbGxvd2VkVHJhbnNmb3JtYXRpb25zIiwiZ2V0QWxsb3dlZFRyYW5zZm9ybWF0aW9ucyIsImVuYWJsZVNlYXJjaCIsIlZpc3VhbGl6YXRpb25UeXBlIiwiQ2hhcnQiLCJpZCIsIkNoYXJ0SUQiLCJjb2xsZWN0aW9uIiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsIm5hdmlnYXRpb25QYXRoIiwiZ2V0QWJzb2x1dGVBbm5vdGF0aW9uUGF0aCIsImZpbHRlcklkIiwidml6UHJvcGVydGllcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjdXN0b21BZ2ciLCJ0cmFuc0FnZyIsImFwcGx5U3VwcG9ydGVkIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBU0EsOEJBQVQsQ0FDQ0MsZUFERCxFQUVDQyxpQkFGRCxFQUdDQyxnQkFIRCxFQUlnQjtBQUNmLFFBQU1DLFlBQTBCLEdBQUcsRUFBbkM7O0FBQ0EsUUFBSUgsZUFBSixFQUFxQjtBQUNwQixVQUFNSSxRQUFRLEdBQUdKLGVBQWUsQ0FBQ0ssT0FB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VSxFQUFFQyxtQkFBbUIsQ0FBQ3RJLGdCQUFnQixDQUFDd0csc0JBQWpCLEVBQUQsQ0FIekI7QUFJTk0sTUFBQUEsVUFBVSxFQUFFQSxVQUpOO0FBS05uRSxNQUFBQSxlQUFlLEVBQUVQLFdBQVcsQ0FBQ3JDLGlCQUFELEVBQW9CQyxnQkFBcEIsQ0FMdEI7QUFNTnVJLE1BQUFBLGNBQWMsRUFBRW5DLHNCQU5WO0FBT043RSxNQUFBQSxjQUFjLEVBQUV2QixnQkFBZ0IsQ0FBQ3dJLHlCQUFqQixDQUEyQ3pJLGlCQUEzQyxDQVBWO0FBUU4wSSxNQUFBQSxRQUFRLEVBQUV4QixZQVJKO0FBU055QixNQUFBQSxhQUFhLEVBQUVDLElBQUksQ0FBQ0MsU0FBTCxDQUFleEIsY0FBZixDQVRUO0FBVU5uRixNQUFBQSxPQUFPLEVBQUVoQyxZQVZIO0FBV05zRyxNQUFBQSxLQUFLLEVBQUVBLEtBWEQ7QUFZTmMsTUFBQUEsY0FBYyxFQUFFQSxjQVpWO0FBYU5PLE1BQUFBLHdCQUF3QixFQUFFQSx3QkFicEI7QUFjTkMsTUFBQUEsT0FBTyxFQUFFQSxPQWRIO0FBZU5nQixNQUFBQSxTQUFTLEVBQUV4RSxpQkFmTDtBQWdCTnlFLE1BQUFBLFFBQVEsRUFBRTNELGtCQWhCSjtBQWlCTjRELE1BQUFBLGNBQWMsRUFBRWxEO0FBakJWLEtBQVA7QUFtQkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uLFxuXHRDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MsXG5cdFZpc3VhbGl6YXRpb25UeXBlLFxuXHRBY3Rpb25UeXBlLFxuXHRUZW1wbGF0ZVR5cGVcbn0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcywgRGF0YUZpZWxkQWJzdHJhY3RUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFjdGlvbiwgQmFzZUFjdGlvbiwgZ2V0QWN0aW9uc0Zyb21NYW5pZmVzdCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcbmltcG9ydCB7IGlzRGF0YUZpZWxkRm9yQWN0aW9uQWJzdHJhY3QgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IENoYXJ0SUQsIEZpbHRlckJhcklEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IGluc2VydEN1c3RvbUVsZW1lbnRzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IE1hbmlmZXN0V3JhcHBlciBmcm9tIFwiLi4vLi4vTWFuaWZlc3RXcmFwcGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuXG4vKipcbiAqIEB0eXBlZGVmIENoYXJ0VmlzdWFsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBDaGFydFZpc3VhbGl6YXRpb24gPSB7XG5cdHR5cGU6IFZpc3VhbGl6YXRpb25UeXBlLkNoYXJ0O1xuXHRpZDogc3RyaW5nO1xuXHRjb2xsZWN0aW9uOiBzdHJpbmc7XG5cdGVudGl0eU5hbWU6IHN0cmluZztcblx0cGVyc29uYWxpemF0aW9uPzogc3RyaW5nO1xuXHRuYXZpZ2F0aW9uUGF0aDogc3RyaW5nO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRmaWx0ZXJJZD86IHN0cmluZztcblx0dml6UHJvcGVydGllczogc3RyaW5nO1xuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW107XG5cdHRpdGxlOiBzdHJpbmc7XG5cdGF1dG9CaW5kT25Jbml0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IHN0cmluZztcblx0dmlzaWJsZTogc3RyaW5nO1xuXHRjdXN0b21BZ2c6IG9iamVjdDtcblx0dHJhbnNBZ2c6IG9iamVjdDtcblx0YXBwbHlTdXBwb3J0ZWQ6IHtcblx0XHQkVHlwZTogc3RyaW5nO1xuXHRcdGVuYWJsZVNlYXJjaDogYm9vbGVhbjtcblx0XHRBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzOiBhbnlbXTtcblx0XHRHcm91cGFibGVQcm9wZXJ0aWVzOiBhbnlbXTtcblx0fTtcbn07XG5cbi8qKlxuICogTWV0aG9kIHRvIHJldHJpZXZlIGFsbCBjaGFydCBhY3Rpb25zIGZyb20gYW5ub3RhdGlvbnMuXG4gKlxuICogQHBhcmFtIGNoYXJ0QW5ub3RhdGlvblxuICogQHBhcmFtIHZpc3VhbGl6YXRpb25QYXRoXG4gKiBAcGFyYW0gY29udmVydGVyQ29udGV4dFxuICogQHJldHVybnMge0Jhc2VBY3Rpb25bXX0gVGhlIHRhYmxlIGFubm90YXRpb24gYWN0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBCYXNlQWN0aW9uW10ge1xuXHRjb25zdCBjaGFydEFjdGlvbnM6IEJhc2VBY3Rpb25bXSA9IFtdO1xuXHRpZiAoY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Y29uc3QgYUFjdGlvbnMgPSBjaGFydEFubm90YXRpb24uQWN0aW9ucyB8fCBbXTtcblx0XHRhQWN0aW9ucy5mb3JFYWNoKChkYXRhRmllbGQ6IERhdGFGaWVsZEFic3RyYWN0VHlwZXMpID0+IHtcblx0XHRcdGxldCBjaGFydEFjdGlvbjogQW5ub3RhdGlvbkFjdGlvbiB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0aXNEYXRhRmllbGRGb3JBY3Rpb25BYnN0cmFjdChkYXRhRmllbGQpICYmXG5cdFx0XHRcdCEoZGF0YUZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgPT09IHRydWUpICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuSW5saW5lICYmXG5cdFx0XHRcdCFkYXRhRmllbGQuRGV0ZXJtaW5pbmcgJiZcblx0XHRcdFx0IShkYXRhRmllbGQgYXMgYW55KT8uQWN0aW9uVGFyZ2V0Py5pc0JvdW5kXG5cdFx0XHQpIHtcblx0XHRcdFx0Y29uc3Qga2V5ID0gS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChkYXRhRmllbGQpO1xuXHRcdFx0XHRzd2l0Y2ggKGRhdGFGaWVsZC4kVHlwZSkge1xuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JBY3Rpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckFjdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblxuXHRcdFx0XHRcdGNhc2UgXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb25cIjpcblx0XHRcdFx0XHRcdGNoYXJ0QWN0aW9uID0ge1xuXHRcdFx0XHRcdFx0XHR0eXBlOiBBY3Rpb25UeXBlLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhRmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSxcblx0XHRcdFx0XHRcdFx0a2V5OiBrZXlcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKGNoYXJ0QWN0aW9uKSB7XG5cdFx0XHRcdGNoYXJ0QWN0aW9ucy5wdXNoKGNoYXJ0QWN0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gY2hhcnRBY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhcnRBY3Rpb25zKFxuXHRjaGFydEFubm90YXRpb246IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogQmFzZUFjdGlvbltdIHtcblx0Y29uc3QgYUFubm90YXRpb25BY3Rpb25zOiBCYXNlQWN0aW9uW10gPSBnZXRDaGFydEFjdGlvbnNGcm9tQW5ub3RhdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cblx0cmV0dXJuIGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdGFBbm5vdGF0aW9uQWN0aW9ucyxcblx0XHRnZXRBY3Rpb25zRnJvbU1hbmlmZXN0KFxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKS5hY3Rpb25zLFxuXHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdGFBbm5vdGF0aW9uQWN0aW9uc1xuXHRcdCksXG5cdFx0eyBlbmFibGVPblNlbGVjdDogXCJvdmVyd3JpdGVcIiwgZW5hYmxlZDogXCJvdmVyd3JpdGVcIiB9XG5cdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQMTNuTW9kZSh2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgbWFuaWZlc3RXcmFwcGVyOiBNYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBjaGFydE1hbmlmZXN0U2V0dGluZ3M6IENoYXJ0TWFuaWZlc3RDb25maWd1cmF0aW9uID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdENvbnRyb2xDb25maWd1cmF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgaGFzVmFyaWFudE1hbmFnZW1lbnQ6IGJvb2xlYW4gPSBbXCJQYWdlXCIsIFwiQ29udHJvbFwiXS5pbmRleE9mKG1hbmlmZXN0V3JhcHBlci5nZXRWYXJpYW50TWFuYWdlbWVudCgpKSA+IC0xO1xuXHRsZXQgcGVyc29uYWxpemF0aW9uOiBDaGFydFBlcnNvbmFsaXphdGlvbk1hbmlmZXN0U2V0dGluZ3MgPSB0cnVlO1xuXHRjb25zdCBhUGVyc29uYWxpemF0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHRpZiAoY2hhcnRNYW5pZmVzdFNldHRpbmdzPy5jaGFydFNldHRpbmdzPy5wZXJzb25hbGl6YXRpb24gIT09IHVuZGVmaW5lZCkge1xuXHRcdHBlcnNvbmFsaXphdGlvbiA9IGNoYXJ0TWFuaWZlc3RTZXR0aW5ncy5jaGFydFNldHRpbmdzLnBlcnNvbmFsaXphdGlvbjtcblx0fVxuXHRpZiAoaGFzVmFyaWFudE1hbmFnZW1lbnQgJiYgcGVyc29uYWxpemF0aW9uKSB7XG5cdFx0aWYgKHBlcnNvbmFsaXphdGlvbiA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuIFwiU29ydCxUeXBlLEl0ZW1cIjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwZXJzb25hbGl6YXRpb24gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdGlmIChwZXJzb25hbGl6YXRpb24udHlwZSkge1xuXHRcdFx0XHRhUGVyc29uYWxpemF0aW9uLnB1c2goXCJUeXBlXCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHBlcnNvbmFsaXphdGlvbi5pdGVtKSB7XG5cdFx0XHRcdGFQZXJzb25hbGl6YXRpb24ucHVzaChcIkl0ZW1cIik7XG5cdFx0XHR9XG5cdFx0XHRpZiAocGVyc29uYWxpemF0aW9uLnNvcnQpIHtcblx0XHRcdFx0YVBlcnNvbmFsaXphdGlvbi5wdXNoKFwiU29ydFwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBhUGVyc29uYWxpemF0aW9uLmpvaW4oXCIsXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgQ2hhcnRWaXN1YWxpemF0aW9uIGNvbmZpZ3VyYXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBhIGNoYXJ0IHVzaW5nIHRoZSBDaGFydCBidWlsZGluZyBibG9jay5cbiAqXG4gKiBAcGFyYW0ge0NoYXJ0RGVmaW5pdGlvblR5cGVUeXBlc30gY2hhcnRBbm5vdGF0aW9uIFRoZSB0YXJnZXQgY2hhcnQgYW5ub3RhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHZpc3VhbGl6YXRpb25QYXRoIFRoZSBjdXJyZW50IHZpc3VhbGl6YXRpb24gYW5ub3RhdGlvbiBwYXRoXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZCBGbGFnIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgYXBwbHlzdXBwb3J0ZWQgbmVlZHMgdG8gYmUgY2hlY2tlZCBvciBub3RcbiAqIEByZXR1cm5zIHtDaGFydFZpc3VhbGl6YXRpb259IFRoZSBjaGFydCB2aXN1YWxpemF0aW9uIGJhc2VkIG9uIHRoZSBhbm5vdGF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQ/OiBib29sZWFuXG4pOiBDaGFydFZpc3VhbGl6YXRpb24ge1xuXHRjb25zdCBhZ2dyZWdhdGlvbkhlbHBlciA9IG5ldyBBZ2dyZWdhdGlvbkhlbHBlcihjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwgY29udmVydGVyQ29udGV4dCk7XG5cdGlmICghZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkICYmICFhZ2dyZWdhdGlvbkhlbHBlci5pc0FuYWx5dGljc1N1cHBvcnRlZCgpKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiQXBwbHlTdXBwb3J0ZWQgaXMgbm90IGFkZGVkIHRvIHRoZSBhbm5vdGF0aW9uc1wiKTtcblx0fVxuXHRjb25zdCBhVHJhbnNBZ2dBbm5vcyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpLmFubm90YXRpb25zLkFuYWx5dGljcz8uQWdncmVnYXRlZFByb3BlcnRpZXMgYXMgYW55O1xuXHRjb25zdCB0cmFuc0FnZ0xhYmVscyA9IHt9IGFzIGFueTtcblxuXHRmb3IgKGxldCBpID0gMDsgYVRyYW5zQWdnQW5ub3MgJiYgaSA8IGFUcmFuc0FnZ0Fubm9zLmxlbmd0aDsgaSsrKSB7XG5cdFx0dHJhbnNBZ2dMYWJlbHNbYVRyYW5zQWdnQW5ub3NbaV0uTmFtZV0gPSB7XG5cdFx0XHRsYWJlbDogYVRyYW5zQWdnQW5ub3NbaV0/LmFubm90YXRpb25zPy5Db21tb24/LkxhYmVsXG5cdFx0fTtcblx0fVxuXG5cdGNvbnN0IGFDdXN0b21BZ2dyZWdhdGVzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0Q3VzdG9tQWdncmVnYXRlRGVmaW5pdGlvbnMoKTtcblx0Y29uc3QgbUN1c3RvbUFnZ3JlZ2F0ZXMgPSB7fSBhcyBhbnk7XG5cdGlmIChhQ3VzdG9tQWdncmVnYXRlcykge1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUN1c3RvbUFnZ3JlZ2F0ZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzID0gYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0uYW5ub3RhdGlvbnM/LkFnZ3JlZ2F0aW9uPy5Db250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzO1xuXHRcdFx0bUN1c3RvbUFnZ3JlZ2F0ZXNbYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyXSA9IHtcblx0XHRcdFx0bmFtZTogYUN1c3RvbUFnZ3JlZ2F0ZXNbaV0ucXVhbGlmaWVyLFxuXHRcdFx0XHRsYWJlbDogXCJDdXN0b20gQWdncmVnYXRlIChcIiArIGFDdXN0b21BZ2dyZWdhdGVzW2ldLnF1YWxpZmllciArIFwiKVwiLFxuXHRcdFx0XHRzb3J0YWJsZTogdHJ1ZSxcblx0XHRcdFx0c29ydE9yZGVyOiBcImJvdGhcIixcblx0XHRcdFx0Y29udGV4dERlZmluaW5nUHJvcGVydHk6IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzXG5cdFx0XHRcdFx0PyBhQ29udGV4dERlZmluaW5nUHJvcGVydGllcy5tYXAob0N0eERlZlByb3BlcnR5ID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIG9DdHhEZWZQcm9wZXJ0eS52YWx1ZTtcblx0XHRcdFx0XHQgIH0pXG5cdFx0XHRcdFx0OiBbXVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHRjb25zdCBhVHJhbnNBZ2dyZWdhdGlvbnMgPSBhZ2dyZWdhdGlvbkhlbHBlci5nZXRUcmFuc0FnZ3JlZ2F0aW9ucygpWzBdO1xuXHRjb25zdCBtVHJhbnNBZ2dyZWdhdGlvbnMgPSB7fSBhcyBhbnk7XG5cdGlmIChhVHJhbnNBZ2dyZWdhdGlvbnMpIHtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFUcmFuc0FnZ3JlZ2F0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0bVRyYW5zQWdncmVnYXRpb25zW2FUcmFuc0FnZ3JlZ2F0aW9uc1tpXS5OYW1lXSA9IHtcblx0XHRcdFx0bmFtZTogYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUsXG5cdFx0XHRcdHByb3BlcnR5UGF0aDogYVRyYW5zQWdncmVnYXRpb25zW2ldLkFnZ3JlZ2F0YWJsZVByb3BlcnR5LnZhbHVlT2YoKS52YWx1ZSxcblx0XHRcdFx0YWdncmVnYXRpb25NZXRob2Q6IGFUcmFuc0FnZ3JlZ2F0aW9uc1tpXS5BZ2dyZWdhdGlvbk1ldGhvZCxcblx0XHRcdFx0bGFiZWw6XG5cdFx0XHRcdFx0YVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWUgaW4gdHJhbnNBZ2dMYWJlbHNcblx0XHRcdFx0XHRcdD8gdHJhbnNBZ2dMYWJlbHNbYVRyYW5zQWdncmVnYXRpb25zW2ldLk5hbWVdLmxhYmVsXG5cdFx0XHRcdFx0XHQ6IFwiQWdncmVnYXRhYmxlIHByb3BlcnR5IChcIiArIGFUcmFuc0FnZ3JlZ2F0aW9uc1tpXS5OYW1lICsgXCIpXCIsXG5cdFx0XHRcdHNvcnRhYmxlOiB0cnVlLFxuXHRcdFx0XHRzb3J0T3JkZXI6IFwiYm90aFwiLFxuXHRcdFx0XHRjdXN0b206IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdGNvbnN0IGFBZ2dQcm9wcyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMoKTtcblx0Y29uc3QgYUdycFByb3BzID0gYWdncmVnYXRpb25IZWxwZXIuZ2V0R3JvdXBhYmxlUHJvcGVydGllcygpO1xuXHRjb25zdCBtQXBwbHlTdXBwb3J0ZWQgPSB7fSBhcyBhbnk7XG5cdG1BcHBseVN1cHBvcnRlZC4kVHlwZSA9IFwiT3JnLk9EYXRhLkFnZ3JlZ2F0aW9uLlYxLkFwcGx5U3VwcG9ydGVkVHlwZVwiO1xuXHRtQXBwbHlTdXBwb3J0ZWQuQWdncmVnYXRhYmxlUHJvcGVydGllcyA9IFtdO1xuXHRtQXBwbHlTdXBwb3J0ZWQuR3JvdXBhYmxlUHJvcGVydGllcyA9IFtdO1xuXG5cdGZvciAobGV0IGkgPSAwOyBhQWdnUHJvcHMgJiYgaSA8IGFBZ2dQcm9wcy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IG9iaiA9IHtcblx0XHRcdCRUeXBlOiBhQWdnUHJvcHNbaV0/LiRUeXBlLFxuXHRcdFx0UHJvcGVydHk6IHtcblx0XHRcdFx0JFByb3BlcnR5UGF0aDogYUFnZ1Byb3BzW2ldPy5Qcm9wZXJ0eT8udmFsdWVcblx0XHRcdH1cblx0XHR9O1xuXG5cdFx0bUFwcGx5U3VwcG9ydGVkLkFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMucHVzaChvYmopO1xuXHR9XG5cblx0Zm9yIChsZXQgaSA9IDA7IGFHcnBQcm9wcyAmJiBpIDwgYUdycFByb3BzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgb2JqID0geyAkUHJvcGVydHlQYXRoOiBhR3JwUHJvcHNbaV0/LnZhbHVlIH07XG5cblx0XHRtQXBwbHlTdXBwb3J0ZWQuR3JvdXBhYmxlUHJvcGVydGllcy5wdXNoKG9iaik7XG5cdH1cblxuXHRjb25zdCBjaGFydEFjdGlvbnMgPSBnZXRDaGFydEFjdGlvbnMoY2hhcnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBbbmF2aWdhdGlvblByb3BlcnR5UGF0aCAvKiwgYW5ub3RhdGlvblBhdGgqL10gPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIik7XG5cdGlmIChuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxhc3RJbmRleE9mKFwiL1wiKSA9PT0gbmF2aWdhdGlvblByb3BlcnR5UGF0aC5sZW5ndGggLSAxKSB7XG5cdFx0Ly8gRHJvcCB0cmFpbGluZyBzbGFzaFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0eVBhdGggPSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLnN1YnN0cigwLCBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCAtIDEpO1xuXHR9XG5cdGNvbnN0IHRpdGxlOiBhbnkgPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRFbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uSGVhZGVySW5mbz8uVHlwZU5hbWVQbHVyYWw7XG5cdGNvbnN0IGRhdGFNb2RlbFBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKTtcblx0Y29uc3QgaXNFbnRpdHlTZXQ6IGJvb2xlYW4gPSBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLmxlbmd0aCA9PT0gMDtcblx0Y29uc3QgZW50aXR5TmFtZTogc3RyaW5nID0gZGF0YU1vZGVsUGF0aC50YXJnZXRFbnRpdHlTZXQgPyBkYXRhTW9kZWxQYXRoLnRhcmdldEVudGl0eVNldC5uYW1lIDogZGF0YU1vZGVsUGF0aC5zdGFydGluZ0VudGl0eVNldC5uYW1lO1xuXHRjb25zdCBzRmlsdGVyYmFySWQgPSBpc0VudGl0eVNldCA/IEZpbHRlckJhcklEKGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udGV4dFBhdGgoKSkgOiB1bmRlZmluZWQ7XG5cdGNvbnN0IG9WaXpQcm9wZXJ0aWVzID0ge1xuXHRcdFwibGVnZW5kR3JvdXBcIjoge1xuXHRcdFx0XCJsYXlvdXRcIjoge1xuXHRcdFx0XHRcInBvc2l0aW9uXCI6IFwiYm90dG9tXCJcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGxldCBhdXRvQmluZE9uSW5pdDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblx0aWYgKGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5PYmplY3RQYWdlKSB7XG5cdFx0YXV0b0JpbmRPbkluaXQgPSB0cnVlO1xuXHR9IGVsc2UgaWYgKFxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5MaXN0UmVwb3J0IHx8XG5cdFx0Y29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLkFuYWx5dGljYWxMaXN0UGFnZVxuXHQpIHtcblx0XHRhdXRvQmluZE9uSW5pdCA9IGZhbHNlO1xuXHR9XG5cdGNvbnN0IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPVxuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucygpIHx8IGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFwiQW5hbHl0aWNhbExpc3RQYWdlXCI7XG5cdGNvbnN0IG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCA9IGhhc011bHRpcGxlVmlzdWFsaXphdGlvbnMgPyBcIi5oYW5kbGVycy5vblNlZ21lbnRlZEJ1dHRvblByZXNzZWRcIiA6IFwiXCI7XG5cdGNvbnN0IHZpc2libGUgPSBoYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zID8gXCJ7PSAke3BhZ2VJbnRlcm5hbD5hbHBDb250ZW50Vmlld30gIT09ICdUYWJsZSd9XCIgOiBcInRydWVcIjtcblx0Y29uc3QgYWxsb3dlZFRyYW5zZm9ybWF0aW9ucyA9IGFnZ3JlZ2F0aW9uSGVscGVyLmdldEFsbG93ZWRUcmFuc2Zvcm1hdGlvbnMoKTtcblx0bUFwcGx5U3VwcG9ydGVkLmVuYWJsZVNlYXJjaCA9IGFsbG93ZWRUcmFuc2Zvcm1hdGlvbnMgPyBhbGxvd2VkVHJhbnNmb3JtYXRpb25zLmluZGV4T2YoXCJzZWFyY2hcIikgPj0gMCA6IHRydWU7XG5cblx0cmV0dXJuIHtcblx0XHR0eXBlOiBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCxcblx0XHRpZDogQ2hhcnRJRChpc0VudGl0eVNldCA/IGVudGl0eU5hbWUgOiBuYXZpZ2F0aW9uUHJvcGVydHlQYXRoLCBWaXN1YWxpemF0aW9uVHlwZS5DaGFydCksXG5cdFx0Y29sbGVjdGlvbjogZ2V0VGFyZ2V0T2JqZWN0UGF0aChjb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKSksXG5cdFx0ZW50aXR5TmFtZTogZW50aXR5TmFtZSxcblx0XHRwZXJzb25hbGl6YXRpb246IGdldFAxM25Nb2RlKHZpc3VhbGl6YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRuYXZpZ2F0aW9uUGF0aDogbmF2aWdhdGlvblByb3BlcnR5UGF0aCxcblx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRBYnNvbHV0ZUFubm90YXRpb25QYXRoKHZpc3VhbGl6YXRpb25QYXRoKSxcblx0XHRmaWx0ZXJJZDogc0ZpbHRlcmJhcklkLFxuXHRcdHZpelByb3BlcnRpZXM6IEpTT04uc3RyaW5naWZ5KG9WaXpQcm9wZXJ0aWVzKSxcblx0XHRhY3Rpb25zOiBjaGFydEFjdGlvbnMsXG5cdFx0dGl0bGU6IHRpdGxlLFxuXHRcdGF1dG9CaW5kT25Jbml0OiBhdXRvQmluZE9uSW5pdCxcblx0XHRvblNlZ21lbnRlZEJ1dHRvblByZXNzZWQ6IG9uU2VnbWVudGVkQnV0dG9uUHJlc3NlZCxcblx0XHR2aXNpYmxlOiB2aXNpYmxlLFxuXHRcdGN1c3RvbUFnZzogbUN1c3RvbUFnZ3JlZ2F0ZXMsXG5cdFx0dHJhbnNBZ2c6IG1UcmFuc0FnZ3JlZ2F0aW9ucyxcblx0XHRhcHBseVN1cHBvcnRlZDogbUFwcGx5U3VwcG9ydGVkXG5cdH07XG59XG4iXX0=
|
|
@@ -36,7 +36,12 @@ export type ChartVisualization = {
|
|
|
36
36
|
visible: string;
|
|
37
37
|
customAgg: object;
|
|
38
38
|
transAgg: object;
|
|
39
|
-
applySupported:
|
|
39
|
+
applySupported: {
|
|
40
|
+
$Type: string;
|
|
41
|
+
enableSearch: boolean;
|
|
42
|
+
AggregatableProperties: any[];
|
|
43
|
+
GroupableProperties: any[];
|
|
44
|
+
};
|
|
40
45
|
};
|
|
41
46
|
|
|
42
47
|
/**
|
|
@@ -138,12 +143,12 @@ export function getP13nMode(visualizationPath: string, converterContext: Convert
|
|
|
138
143
|
}
|
|
139
144
|
|
|
140
145
|
/**
|
|
141
|
-
* Create the ChartVisualization configuration that will be used to display a chart
|
|
146
|
+
* Create the ChartVisualization configuration that will be used to display a chart using the Chart building block.
|
|
142
147
|
*
|
|
143
148
|
* @param {ChartDefinitionTypeTypes} chartAnnotation The target chart annotation
|
|
144
149
|
* @param {string} visualizationPath The current visualization annotation path
|
|
145
150
|
* @param {ConverterContext} converterContext The converter context
|
|
146
|
-
* @param {boolean} doNotCheckApplySupported Flag that
|
|
151
|
+
* @param {boolean} doNotCheckApplySupported Flag that indicates whether applysupported needs to be checked or not
|
|
147
152
|
* @returns {ChartVisualization} The chart visualization based on the annotation
|
|
148
153
|
*/
|
|
149
154
|
export function createChartVisualization(
|
|
@@ -258,6 +263,9 @@ export function createChartVisualization(
|
|
|
258
263
|
converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === "AnalyticalListPage";
|
|
259
264
|
const onSegmentedButtonPressed = hasMultipleVisualizations ? ".handlers.onSegmentedButtonPressed" : "";
|
|
260
265
|
const visible = hasMultipleVisualizations ? "{= ${pageInternal>alpContentView} !== 'Table'}" : "true";
|
|
266
|
+
const allowedTransformations = aggregationHelper.getAllowedTransformations();
|
|
267
|
+
mApplySupported.enableSearch = allowedTransformations ? allowedTransformations.indexOf("search") >= 0 : true;
|
|
268
|
+
|
|
261
269
|
return {
|
|
262
270
|
type: VisualizationType.Chart,
|
|
263
271
|
id: ChartID(isEntitySet ? entityName : navigationPropertyPath, VisualizationType.Chart),
|
|
@@ -103,7 +103,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
103
103
|
if (bIsALP) {
|
|
104
104
|
if (presentationVariant && presentationVariant.Visualizations) {
|
|
105
105
|
var aVisualizations = presentationVariant.Visualizations;
|
|
106
|
-
aVisualizations.
|
|
106
|
+
aVisualizations.forEach(function (oVisualization) {
|
|
107
107
|
if (oVisualization.$target.term === "com.sap.vocabularies.UI.v1.LineItem") {
|
|
108
108
|
bHasTable = true;
|
|
109
109
|
}
|
|
@@ -227,7 +227,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
227
227
|
break;
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
visualizationAnnotations.
|
|
230
|
+
visualizationAnnotations.forEach(function (visualizationAnnotation) {
|
|
231
231
|
var visualization = visualizationAnnotation.visualization,
|
|
232
232
|
annotationPath = visualizationAnnotation.annotationPath,
|
|
233
233
|
converterContext = visualizationAnnotation.converterContext;
|
|
@@ -272,4 +272,4 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
272
272
|
_exports.getDataVisualizationConfiguration = getDataVisualizationConfiguration;
|
|
273
273
|
return _exports;
|
|
274
274
|
}, false);
|
|
275
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyIsInZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJiYXNlVmlzdWFsaXphdGlvblBhdGgiLCJzcGxpdCIsImhhc0xpbmVJdGVtIiwiaGFzQ2hhcnQiLCJoYXNWaXN1YWxpemF0aW9uIiwiYklzQUxQIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImZvckVhY2giLCJ2aXN1YWxpemF0aW9uIiwiJHRhcmdldCIsInRlcm0iLCJwdXNoIiwiYW5ub3RhdGlvblBhdGgiLCJ2YWx1ZSIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm1hcCIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50Iiwidmlld0NvbmZpZ3VyYXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsImNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24iLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiTUlTU0lOR19MSU5FSVRFTSIsInNQYXRoIiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNQSx3Q0FBd0MsR0FBRyxVQUNoREMsNkJBRGdELEVBRWhEQyxpQkFGZ0QsRUFHaERDLGdCQUhnRCxFQUl2QjtBQUN6QixRQUFNQyx3QkFBZ0QsR0FBRyxFQUF6RDtBQUNBLFFBQU1D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LEdBQUdVLCtCQUErQixDQUFDcEUsZ0JBQUQsQ0FBcEQ7QUFDQUEsTUFBQUEsZ0JBQWdCLENBQUNxRSxjQUFqQixHQUFrQ0MsUUFBbEMsQ0FBMkNDLGFBQWEsQ0FBQ0MsVUFBekQsRUFBcUVDLGFBQWEsQ0FBQ0MsTUFBbkYsRUFBMkZDLFNBQVMsQ0FBQ0MsZ0JBQXJHO0FBQ0E7O0FBQ0QsUUFBTXRDLGVBQW9CLEdBQUcsRUFBN0I7QUFDQSxRQUFJdUMsS0FBSyxHQUNSbEIsS0FBSyw4REFBTCxHQUEyREgsZ0JBQTNELEdBQThFeEMsYUFBYSxJQUFJQSxhQUFhLENBQUM2QyxrQkFEOUc7O0FBRUEsUUFBSWdCLEtBQUssS0FBS0MsU0FBZCxFQUF5QjtBQUN4QkQsTUFBQUEsS0FBSyxHQUFHLEdBQVI7QUFDQTs7QUFDRCxRQUFJcEIsa0JBQUosRUFBd0I7QUFDdkJuQixNQUFBQSxlQUFlLENBQUNuQixJQUFoQixDQUFxQnNDLGtCQUFyQjtBQUNBOztBQUNELFFBQUlDLGtCQUFKLEVBQXdCO0FBQ3ZCcEIsTUFBQUEsZUFBZSxDQUFDbkIsSUFBaEIsQ0FBcUJ1QyxrQkFBckI7QUFDQTs7QUFDRCxXQUFPO0FBQ054RCxNQUFBQSxjQUFjLEVBQUVvQyxlQURWO0FBRU5sQixNQUFBQSxjQUFjLEVBQUVwQixnQkFBZ0IsQ0FBQytFLCtCQUFqQixDQUFpREYsS0FBakQ7QUFGVixLQUFQO0FBSUEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0LFxuXHRDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdEVudGl0eVR5cGUsXG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbiwgY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uLCBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9UYWJsZVwiO1xuaW1wb3J0IHsgQ2hhcnRWaXN1YWxpemF0aW9uLCBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9DaGFydFwiO1xuaW1wb3J0IHsgSXNzdWVUeXBlLCBJc3N1ZVNldmVyaXR5LCBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUsIFZpZXdQYXRoQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPVxuXHR8IExpbmVJdGVtXG5cdHwgQ2hhcnRcblx0fCBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzXG5cdHwgU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG4vLyB8IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcztcblxuZXhwb3J0IHR5cGUgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gTGluZUl0ZW0gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbnR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGggPSB7XG5cdHZpc3VhbGl6YXRpb246IEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gPSB7XG5cdHZpc3VhbGl6YXRpb25zOiAoVGFibGVWaXN1YWxpemF0aW9uIHwgQ2hhcnRWaXN1YWxpemF0aW9uKVtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudCA9IGZ1bmN0aW9uKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSB7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRjb25zdCB2aXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLlZpc3VhbGl6YXRpb25zIHx8IFtdO1xuXHRjb25zdCBiYXNlVmlzdWFsaXphdGlvblBhdGggPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIilbMF07XG5cdGlmICh2aXN1YWxpemF0aW9ucykge1xuXHRcdC8vIE9ubHkgYWxsb3cgb25lIGxpbmUgaXRlbSAvIGNoYXJ0XG5cdFx0bGV0IGhhc0xpbmVJdGVtID0gZmFsc2U7XG5cdFx0bGV0IGhhc0NoYXJ0ID0gZmFsc2U7XG5cdFx0bGV0IGhhc1Zpc3VhbGl6YXRpb24gPSBmYWxzZTsgLy8gdXNlZCB0byBhbGxvdyBvbmx5IGZpcnN0IHZpc3VhbGl6YXRpb24gaW4gT1Bcblx0XHRjb25zdCBiSXNBTFAgPVxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2U7XG5cdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0XHRpZiAoIWhhc0xpbmVJdGVtICYmIChiSXNBTFAgfHwgIWhhc1Zpc3VhbGl6YXRpb24pKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzTGluZUl0ZW0gPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHRcdGlmICghaGFzQ2hhcnQgJiYgKGJJc0FMUCB8fCAhaGFzVmlzdWFsaXphdGlvbikpIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbi4kdGFyZ2V0IGFzIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2Jhc2VWaXN1YWxpemF0aW9uUGF0aH0ke3Zpc3VhbGl6YXRpb24udmFsdWV9YCxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRoYXNDaGFydCA9IHRydWU7XG5cdFx0XHRcdFx0XHRoYXNWaXN1YWxpemF0aW9uID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBhbnkge1xuXHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0IGlzIG5vdCBmb3VuZCwgUGxlYXNlIGFkZCB0aGUgU1BWIGluIHRoZSBhbm5vdGF0aW9uXCIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRiSXNBTFA6IEJvb2xlYW5cbik6IEJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCAmJiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0cmV0dXJuIGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIFNQViBhbm5vdGF0aW9uXCIpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50OiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLCBiSXNBTFA/OiBCb29sZWFuKTogQm9vbGVhbiB7XG5cdGxldCBiSGFzVGFibGUgPSBmYWxzZSxcblx0XHRiSGFzQ2hhcnQgPSBmYWxzZTtcblx0aWYgKGJJc0FMUCkge1xuXHRcdGlmIChwcmVzZW50YXRpb25WYXJpYW50ICYmIHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdGNvbnN0IGFWaXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnM7XG5cdFx0XHRhVmlzdWFsaXphdGlvbnMubWFwKG9WaXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW0pIHtcblx0XHRcdFx0XHRiSGFzVGFibGUgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSB7XG5cdFx0XHRcdFx0Ykhhc0NoYXJ0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBiSGFzQ2hhcnQgJiYgYkhhc1RhYmxlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zICYmXG5cdFx0XHQhIXByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMuZmluZCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0cmV0dXJuIHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSB8fCB2aXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uTGluZUl0ZW07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdENoYXJ0KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBDaGFydCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5DaGFydDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uUHJlc2VudGF0aW9uVmFyaWFudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBhbm5vdGF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBzZWxlY3Rpb25WYXJpYW50O1xuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRzZWxlY3Rpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbih2aXN1YWxpemF0aW9uUGF0aCk7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRsZXQgdmlzdWFsaXphdGlvbkFubm90YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0bGV0IHByZXNlbnRhdGlvblBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGxldCBjaGFydFZpc3VhbGl6YXRpb24sIHRhYmxlVmlzdWFsaXphdGlvbjtcblx0Y29uc3Qgc1Rlcm0gPSB2aXN1YWxpemF0aW9uPy50ZXJtO1xuXHRpZiAoc1Rlcm0pIHtcblx0XHRzd2l0Y2ggKHNUZXJtKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24gYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiB2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB2aXN1YWxpemF0aW9uIGFzIFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gKHZpc3VhbGl6YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcykuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdFx0Ly8gUHJlc2VudGF0aW9uIGNhbiBiZSBpbmxpbmUgb3Igb3V0c2lkZSB0aGUgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdFx0XHRwcmVzZW50YXRpb25QYXRoID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXG5cdFx0XHRcdGlmICghaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24pKSB7XG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0XHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24gPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSkgYXMgTGluZUl0ZW07XG5cdFx0XHRcdFx0aWYgKGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiwgdmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMubWFwKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyIsInZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJiYXNlVmlzdWFsaXphdGlvblBhdGgiLCJzcGxpdCIsImhhc0xpbmVJdGVtIiwiaGFzQ2hhcnQiLCJoYXNWaXN1YWxpemF0aW9uIiwiYklzQUxQIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImZvckVhY2giLCJ2aXN1YWxpemF0aW9uIiwiJHRhcmdldCIsInRlcm0iLCJwdXNoIiwiYW5ub3RhdGlvblBhdGgiLCJ2YWx1ZSIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50Iiwidmlld0NvbmZpZ3VyYXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsImNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24iLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiTUlTU0lOR19MSU5FSVRFTSIsInNQYXRoIiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNQSx3Q0FBd0MsR0FBRyxVQUNoREMsNkJBRGdELEVBRWhEQyxpQkFGZ0QsRUFHaERDLGdCQUhnRCxFQUl2QjtBQUN6QixRQUFNQyx3QkFBZ0QsR0FBRyxFQUF6RDtBQUNBLFFBQU1DLGNBQWMs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VSwrQkFBK0IsQ0FBQ25FLGdCQUFELENBQXBEO0FBQ0FBLE1BQUFBLGdCQUFnQixDQUFDb0UsY0FBakIsR0FBa0NDLFFBQWxDLENBQTJDQyxhQUFhLENBQUNDLFVBQXpELEVBQXFFQyxhQUFhLENBQUNDLE1BQW5GLEVBQTJGQyxTQUFTLENBQUNDLGdCQUFyRztBQUNBOztBQUNELFFBQU1yQyxlQUFvQixHQUFHLEVBQTdCO0FBQ0EsUUFBSXNDLEtBQUssR0FDUmxCLEtBQUssOERBQUwsR0FBMkRILGdCQUEzRCxHQUE4RXZDLGFBQWEsSUFBSUEsYUFBYSxDQUFDNEMsa0JBRDlHOztBQUVBLFFBQUlnQixLQUFLLEtBQUtDLFNBQWQsRUFBeUI7QUFDeEJELE1BQUFBLEtBQUssR0FBRyxHQUFSO0FBQ0E7O0FBQ0QsUUFBSXBCLGtCQUFKLEVBQXdCO0FBQ3ZCbEIsTUFBQUEsZUFBZSxDQUFDbkIsSUFBaEIsQ0FBcUJxQyxrQkFBckI7QUFDQTs7QUFDRCxRQUFJQyxrQkFBSixFQUF3QjtBQUN2Qm5CLE1BQUFBLGVBQWUsQ0FBQ25CLElBQWhCLENBQXFCc0Msa0JBQXJCO0FBQ0E7O0FBQ0QsV0FBTztBQUNOdkQsTUFBQUEsY0FBYyxFQUFFb0MsZUFEVjtBQUVObEIsTUFBQUEsY0FBYyxFQUFFcEIsZ0JBQWdCLENBQUM4RSwrQkFBakIsQ0FBaURGLEtBQWpEO0FBRlYsS0FBUDtBQUlBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFydCxcblx0Q2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHRFbnRpdHlUeXBlLFxuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0VUlBbm5vdGF0aW9uVGVybXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5cbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24sIGNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vVGFibGVcIjtcbmltcG9ydCB7IENoYXJ0VmlzdWFsaXphdGlvbiwgY3JlYXRlQ2hhcnRWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vQ2hhcnRcIjtcbmltcG9ydCB7IElzc3VlVHlwZSwgSXNzdWVTZXZlcml0eSwgSXNzdWVDYXRlZ29yeSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSXNzdWVNYW5hZ2VyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgVGVtcGxhdGVUeXBlLCBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zID1cblx0fCBMaW5lSXRlbVxuXHR8IENoYXJ0XG5cdHwgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXNcblx0fCBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuLy8gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbmV4cG9ydCB0eXBlIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzO1xuXG50eXBlIFZpc3VhbGl6YXRpb25BbmRQYXRoID0ge1xuXHR2aXN1YWxpemF0aW9uOiBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nO1xuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0ge1xuXHR2aXN1YWxpemF0aW9uczogKFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbilbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcbn07XG5cbmNvbnN0IGdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQgPSBmdW5jdGlvbihcblx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10ge1xuXHRjb25zdCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblx0Y29uc3QgdmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5WaXN1YWxpemF0aW9ucyB8fCBbXTtcblx0Y29uc3QgYmFzZVZpc3VhbGl6YXRpb25QYXRoID0gdmlzdWFsaXphdGlvblBhdGguc3BsaXQoXCJAXCIpWzBdO1xuXHRpZiAodmlzdWFsaXphdGlvbnMpIHtcblx0XHQvLyBPbmx5IGFsbG93IG9uZSBsaW5lIGl0ZW0gLyBjaGFydFxuXHRcdGxldCBoYXNMaW5lSXRlbSA9IGZhbHNlO1xuXHRcdGxldCBoYXNDaGFydCA9IGZhbHNlO1xuXHRcdGxldCBoYXNWaXN1YWxpemF0aW9uID0gZmFsc2U7IC8vIHVzZWQgdG8gYWxsb3cgb25seSBmaXJzdCB2aXN1YWxpemF0aW9uIGluIE9QXG5cdFx0Y29uc3QgYklzQUxQID1cblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucygpIHx8XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuQW5hbHl0aWNhbExpc3RQYWdlO1xuXHRcdHZpc3VhbGl6YXRpb25zLmZvckVhY2godmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRzd2l0Y2ggKHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdFx0aWYgKCFoYXNMaW5lSXRlbSAmJiAoYklzQUxQIHx8ICFoYXNWaXN1YWxpemF0aW9uKSkge1xuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiB2aXN1YWxpemF0aW9uLiR0YXJnZXQgYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7dmlzdWFsaXphdGlvbi52YWx1ZX1gLFxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGhhc0xpbmVJdGVtID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGhhc1Zpc3VhbGl6YXRpb24gPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRpZiAoIWhhc0NoYXJ0ICYmIChiSXNBTFAgfHwgIWhhc1Zpc3VhbGl6YXRpb24pKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChcblx0ZW50aXR5VHlwZTogRW50aXR5VHlwZSxcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogYW55IHtcblx0aWYgKGFubm90YXRpb25QYXRoKSB7XG5cdFx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGFubm90YXRpb25QYXRoKTtcblx0XHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuXHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0XHRcdHJldHVybiBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJBbm5vdGF0aW9uIFBhdGggZm9yIHRoZSBTUFYgbWVudGlvbmVkIGluIHRoZSBtYW5pZmVzdCBpcyBub3QgZm91bmQsIFBsZWFzZSBhZGQgdGhlIFNQViBpbiB0aGUgYW5ub3RhdGlvblwiKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGlvblByZXNlbnRhdGlvbkNvbXBsaWFudChcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDogU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0YklzQUxQOiBCb29sZWFuXG4pOiBCb29sZWFuIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgcHJlc2VudGF0aW9uVmFyaWFudCA9IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgJiYgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRpZiAocHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdHJldHVybiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50LCBiSXNBTFApO1xuXHR9IGVsc2Uge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIlByZXNlbnRhdGlvbiBWYXJpYW50IGlzIG5vdCBwcmVzZW50IGluIHRoZSBTUFYgYW5ub3RhdGlvblwiKTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudDogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcywgYklzQUxQPzogQm9vbGVhbik6IEJvb2xlYW4ge1xuXHRsZXQgYkhhc1RhYmxlID0gZmFsc2UsXG5cdFx0Ykhhc0NoYXJ0ID0gZmFsc2U7XG5cdGlmIChiSXNBTFApIHtcblx0XHRpZiAocHJlc2VudGF0aW9uVmFyaWFudCAmJiBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zKSB7XG5cdFx0XHRjb25zdCBhVmlzdWFsaXphdGlvbnMgPSBwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zO1xuXHRcdFx0YVZpc3VhbGl6YXRpb25zLmZvckVhY2gob1Zpc3VhbGl6YXRpb24gPT4ge1xuXHRcdFx0XHRpZiAob1Zpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkge1xuXHRcdFx0XHRcdGJIYXNUYWJsZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQpIHtcblx0XHRcdFx0XHRiSGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGJIYXNDaGFydCAmJiBiSGFzVGFibGU7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnQgJiZcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMgJiZcblx0XHRcdCEhcHJlc2VudGF0aW9uVmFyaWFudC5WaXN1YWxpemF0aW9ucy5maW5kKHZpc3VhbGl6YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gdmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtIHx8IHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5DaGFydDtcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdExpbmVJdGVtKGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBMaW5lSXRlbSB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5MaW5lSXRlbTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q2hhcnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IENoYXJ0IHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkNoYXJ0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5QcmVzZW50YXRpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblZhcmlhbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0Y29uc3QgYW5ub3RhdGlvblBhdGggPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpLmdldERlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoKCk7XG5cdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KGVudGl0eVR5cGUsIGFubm90YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0bGV0IHNlbGVjdGlvblZhcmlhbnQ7XG5cdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uVmFyaWFudCA9IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRpZiAoc2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHNlbGVjdGlvblZhcmlhbnQgPSBnZXREZWZhdWx0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlKTtcblx0XHRyZXR1cm4gc2VsZWN0aW9uVmFyaWFudDtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YVZpc3VhbGl6YXRpb25Db25maWd1cmF0aW9uKFxuXHR2aXN1YWxpemF0aW9uUGF0aDogc3RyaW5nLFxuXHRpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50OiBib29sZWFuLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHR2aWV3Q29uZmlndXJhdGlvbj86IFZpZXdQYXRoQ29uZmlndXJhdGlvbixcblx0ZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkPzogYm9vbGVhblxuKTogRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uIHtcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKHZpc3VhbGl6YXRpb25QYXRoKTtcblx0Y29uc3QgdmlzdWFsaXphdGlvbiA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgRGF0YVZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cdGxldCB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnM6IFZpc3VhbGl6YXRpb25BbmRQYXRoW10gPSBbXTtcblx0bGV0IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuXHRsZXQgcHJlc2VudGF0aW9uUGF0aDogc3RyaW5nID0gXCJcIjtcblx0bGV0IGNoYXJ0VmlzdWFsaXphdGlvbiwgdGFibGVWaXN1YWxpemF0aW9uO1xuXHRjb25zdCBzVGVybSA9IHZpc3VhbGl6YXRpb24/LnRlcm07XG5cdGlmIChzVGVybSkge1xuXHRcdHN3aXRjaCAoc1Rlcm0pIHtcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbiBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0fSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5QcmVzZW50YXRpb25WYXJpYW50OlxuXHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gdmlzdWFsaXphdGlvbkFubm90YXRpb25zLmNvbmNhdChcblx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSAodmlzdWFsaXphdGlvbiBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzKS5QcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdFx0XHQvLyBQcmVzZW50YXRpb24gY2FuIGJlIGlubGluZSBvciBvdXRzaWRlIHRoZSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0XHRcdHByZXNlbnRhdGlvblBhdGggPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWU7XG5cblx0XHRcdFx0aWYgKCFpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbikpIHtcblx0XHRcdFx0XHRjb25zdCBlbnRpdHlUeXBlID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCk7XG5cdFx0XHRcdFx0Y29uc3QgZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiA9IGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlKSBhcyBMaW5lSXRlbTtcblx0XHRcdFx0XHRpZiAoZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbikge1xuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiBkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoKFxuXHRcdFx0XHRcdFx0XHRcdGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eVR5cGVcblx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0XHRnZXRWaXN1YWxpemF0aW9uc0Zyb21QcmVzZW50YXRpb25WYXJpYW50KHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLCB2aXN1YWxpemF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5mb3JFYWNoKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
|
|
@@ -123,7 +123,7 @@ export function isPresentationCompliant(presentationVariant: PresentationVariant
|
|
|
123
123
|
if (bIsALP) {
|
|
124
124
|
if (presentationVariant && presentationVariant.Visualizations) {
|
|
125
125
|
const aVisualizations = presentationVariant.Visualizations;
|
|
126
|
-
aVisualizations.
|
|
126
|
+
aVisualizations.forEach(oVisualization => {
|
|
127
127
|
if (oVisualization.$target.term === UIAnnotationTerms.LineItem) {
|
|
128
128
|
bHasTable = true;
|
|
129
129
|
}
|
|
@@ -235,7 +235,7 @@ export function getDataVisualizationConfiguration(
|
|
|
235
235
|
default:
|
|
236
236
|
break;
|
|
237
237
|
}
|
|
238
|
-
visualizationAnnotations.
|
|
238
|
+
visualizationAnnotations.forEach(visualizationAnnotation => {
|
|
239
239
|
const { visualization, annotationPath, converterContext } = visualizationAnnotation;
|
|
240
240
|
switch (visualization.term) {
|
|
241
241
|
case UIAnnotationTerms.Chart:
|