@sapui5/sap.fe.core 1.127.2 → 1.129.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.
Files changed (393) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +3 -9
  4. package/src/sap/fe/core/ActionRuntime.ts +3 -7
  5. package/src/sap/fe/core/AppComponent.js +9 -19
  6. package/src/sap/fe/core/AppComponent.ts +2 -12
  7. package/src/sap/fe/core/AppStateHandler.js +3 -11
  8. package/src/sap/fe/core/AppStateHandler.ts +0 -7
  9. package/src/sap/fe/core/BaseController.js +4 -8
  10. package/src/sap/fe/core/BaseController.ts +0 -5
  11. package/src/sap/fe/core/CommonUtils.js +1 -9
  12. package/src/sap/fe/core/CommonUtils.ts +4 -8
  13. package/src/sap/fe/core/ExtensionAPI.js +10 -25
  14. package/src/sap/fe/core/ExtensionAPI.ts +4 -19
  15. package/src/sap/fe/core/InsightsFormattersExtension.js +5 -3
  16. package/src/sap/fe/core/PageController.js +7 -10
  17. package/src/sap/fe/core/PageController.ts +0 -3
  18. package/src/sap/fe/core/ResourceModel.js +3 -5
  19. package/src/sap/fe/core/ResourceModel.ts +0 -2
  20. package/src/sap/fe/core/ReuseComponent.js +8 -14
  21. package/src/sap/fe/core/ReuseComponent.ts +0 -6
  22. package/src/sap/fe/core/TemplateComponent.js +37 -9
  23. package/src/sap/fe/core/TemplateComponent.ts +3 -2
  24. package/src/sap/fe/core/TemplateModel.js +5 -5
  25. package/src/sap/fe/core/TemplateModel.ts +0 -1
  26. package/src/sap/fe/core/UIProvider.js +1 -1
  27. package/src/sap/fe/core/UIProvider.ts +44 -1
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +7 -12
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +0 -5
  30. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +61 -65
  31. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +60 -63
  32. package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +3 -3
  33. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
  34. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +21 -5
  35. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +0 -4
  36. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +6 -18
  37. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -20
  38. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +5 -11
  39. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +0 -6
  40. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +3 -3
  41. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +11 -10
  42. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +0 -1
  43. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -7
  44. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +0 -1
  45. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  46. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +3 -10
  47. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +0 -7
  48. package/src/sap/fe/core/controllerextensions/ContextSharing.js +5 -8
  49. package/src/sap/fe/core/controllerextensions/ContextSharing.ts +0 -2
  50. package/src/sap/fe/core/controllerextensions/EditFlow.js +225 -155
  51. package/src/sap/fe/core/controllerextensions/EditFlow.ts +248 -164
  52. package/src/sap/fe/core/controllerextensions/Feedback.js +1 -3
  53. package/src/sap/fe/core/controllerextensions/Feedback.ts +0 -2
  54. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +4 -7
  55. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -3
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -25
  57. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +2 -21
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.js +22 -34
  59. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +25 -31
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.js +8 -21
  61. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +4 -15
  62. package/src/sap/fe/core/controllerextensions/MessageHandler.js +68 -31
  63. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +78 -32
  64. package/src/sap/fe/core/controllerextensions/PageReady.js +4 -4
  65. package/src/sap/fe/core/controllerextensions/Paginator.js +4 -8
  66. package/src/sap/fe/core/controllerextensions/Paginator.ts +0 -4
  67. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -4
  68. package/src/sap/fe/core/controllerextensions/Recommendations.js +15 -24
  69. package/src/sap/fe/core/controllerextensions/Recommendations.ts +13 -20
  70. package/src/sap/fe/core/controllerextensions/Routing.js +4 -10
  71. package/src/sap/fe/core/controllerextensions/Routing.ts +0 -6
  72. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  73. package/src/sap/fe/core/controllerextensions/Share.js +17 -11
  74. package/src/sap/fe/core/controllerextensions/Share.ts +10 -5
  75. package/src/sap/fe/core/controllerextensions/SideEffects.js +49 -45
  76. package/src/sap/fe/core/controllerextensions/SideEffects.ts +54 -41
  77. package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -4
  78. package/src/sap/fe/core/controllerextensions/ViewState.js +10 -34
  79. package/src/sap/fe/core/controllerextensions/ViewState.ts +3 -49
  80. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +6 -8
  81. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +0 -1
  82. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -2
  83. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +0 -1
  84. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +4 -3
  85. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +1 -1
  86. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +16 -12
  87. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +4 -1
  88. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  89. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +126 -74
  90. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +158 -91
  91. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -22
  92. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +0 -20
  93. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -20
  94. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +11 -17
  95. package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
  96. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +191 -767
  97. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +277 -1024
  98. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  99. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -6
  100. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -5
  101. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +381 -250
  102. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +467 -301
  103. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +2 -6
  104. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +0 -5
  105. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +2 -6
  106. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +4 -6
  107. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -6
  108. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +0 -4
  109. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +4 -41
  111. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -37
  112. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
  113. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +0 -1
  114. package/src/sap/fe/core/controls/Any.js +1 -2
  115. package/src/sap/fe/core/controls/Any.ts +0 -1
  116. package/src/sap/fe/core/controls/AnyElement.js +1 -2
  117. package/src/sap/fe/core/controls/AnyElement.ts +0 -1
  118. package/src/sap/fe/core/controls/CommandExecution.js +3 -3
  119. package/src/sap/fe/core/controls/ComponentLoader.js +23 -10
  120. package/src/sap/fe/core/controls/ComponentLoader.ts +0 -1
  121. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +10 -13
  122. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +0 -6
  123. package/src/sap/fe/core/controls/EventDelegateHook.js +8 -9
  124. package/src/sap/fe/core/controls/FormElementWrapper.js +7 -7
  125. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -1
  126. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +140 -24
  127. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +141 -10
  128. package/src/sap/fe/core/converters/ConverterContext.js +8 -30
  129. package/src/sap/fe/core/converters/ConverterContext.ts +7 -29
  130. package/src/sap/fe/core/converters/ManifestSettings.js +37 -1
  131. package/src/sap/fe/core/converters/ManifestSettings.ts +12 -3
  132. package/src/sap/fe/core/converters/ManifestWrapper.js +12 -40
  133. package/src/sap/fe/core/converters/ManifestWrapper.ts +13 -46
  134. package/src/sap/fe/core/converters/MetaModelConverter.js +44 -48
  135. package/src/sap/fe/core/converters/MetaModelConverter.ts +50 -48
  136. package/src/sap/fe/core/converters/TemplateConverter.js +3 -2
  137. package/src/sap/fe/core/converters/TemplateConverter.ts +0 -1
  138. package/src/sap/fe/core/converters/annotations/DataField.js +1 -28
  139. package/src/sap/fe/core/converters/annotations/DataField.ts +0 -26
  140. package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -19
  141. package/src/sap/fe/core/converters/controls/Common/Action.js +13 -26
  142. package/src/sap/fe/core/converters/controls/Common/Action.ts +13 -31
  143. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -6
  144. package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -5
  145. package/src/sap/fe/core/converters/controls/Common/Criticality.js +2 -4
  146. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +1 -2
  147. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -5
  148. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +0 -4
  149. package/src/sap/fe/core/converters/controls/Common/Form.js +3 -2
  150. package/src/sap/fe/core/converters/controls/Common/Form.ts +2 -1
  151. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -7
  152. package/src/sap/fe/core/converters/controls/Common/KPI.ts +11 -6
  153. package/src/sap/fe/core/converters/controls/Common/Table.js +159 -141
  154. package/src/sap/fe/core/converters/controls/Common/Table.ts +166 -122
  155. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -30
  156. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +3 -29
  157. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +43 -55
  158. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +43 -47
  159. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -4
  160. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +0 -3
  161. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  162. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -8
  163. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +2 -7
  164. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -11
  165. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +0 -9
  166. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -10
  167. package/src/sap/fe/core/converters/helpers/Aggregation.ts +0 -9
  168. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -7
  169. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +0 -6
  170. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -9
  171. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +0 -8
  172. package/src/sap/fe/core/converters/helpers/ID.js +1 -2
  173. package/src/sap/fe/core/converters/helpers/ID.ts +0 -1
  174. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -2
  175. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +0 -1
  176. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  177. package/src/sap/fe/core/converters/helpers/Key.js +1 -5
  178. package/src/sap/fe/core/converters/helpers/Key.ts +0 -4
  179. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -2
  180. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +0 -1
  181. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  182. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -7
  183. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +0 -6
  184. package/src/sap/fe/core/converters/templates/ListReportConverter.js +6 -27
  185. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +9 -26
  186. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -16
  187. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +0 -15
  188. package/src/sap/fe/core/definition/FEDefinition.js +2550 -0
  189. package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -12
  190. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +9 -10
  191. package/src/sap/fe/core/formatters/CollaborationFormatter.js +8 -2
  192. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +0 -2
  193. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  194. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -2
  195. package/src/sap/fe/core/formatters/FPMFormatter.ts +0 -1
  196. package/src/sap/fe/core/formatters/FiscalFormat.js +9 -14
  197. package/src/sap/fe/core/formatters/FiscalFormat.ts +0 -11
  198. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -4
  199. package/src/sap/fe/core/formatters/KPIFormatter.ts +0 -3
  200. package/src/sap/fe/core/formatters/StandardFormatter.js +6 -3
  201. package/src/sap/fe/core/formatters/StandardFormatter.ts +6 -2
  202. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -4
  203. package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -3
  204. package/src/sap/fe/core/fpm/Component.js +14 -17
  205. package/src/sap/fe/core/fpm/Component.ts +7 -10
  206. package/src/sap/fe/core/fpm/manifest.json +1 -1
  207. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +3 -10
  208. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +0 -9
  209. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -13
  210. package/src/sap/fe/core/helpers/AppStartupHelper.ts +0 -11
  211. package/src/sap/fe/core/helpers/BindingHelper.js +1 -4
  212. package/src/sap/fe/core/helpers/BindingHelper.ts +0 -3
  213. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -2
  214. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +0 -1
  215. package/src/sap/fe/core/helpers/DeleteHelper.js +61 -32
  216. package/src/sap/fe/core/helpers/DeleteHelper.ts +79 -33
  217. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -2
  218. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +0 -1
  219. package/src/sap/fe/core/helpers/EditState.js +1 -1
  220. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -2
  221. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +0 -1
  222. package/src/sap/fe/core/helpers/FPMHelper.js +1 -2
  223. package/src/sap/fe/core/helpers/FPMHelper.ts +0 -1
  224. package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -8
  225. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +0 -7
  226. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +7 -1
  227. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
  228. package/src/sap/fe/core/helpers/ManifestHelper.js +1 -3
  229. package/src/sap/fe/core/helpers/ManifestHelper.ts +0 -2
  230. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  231. package/src/sap/fe/core/helpers/MetaModelFunction.js +3 -8
  232. package/src/sap/fe/core/helpers/MetaModelFunction.ts +0 -5
  233. package/src/sap/fe/core/helpers/MetaPath.js +1 -7
  234. package/src/sap/fe/core/helpers/MetaPath.ts +0 -6
  235. package/src/sap/fe/core/helpers/ModelHelper.js +55 -35
  236. package/src/sap/fe/core/helpers/ModelHelper.ts +64 -38
  237. package/src/sap/fe/core/helpers/PasteHelper.js +77 -24
  238. package/src/sap/fe/core/helpers/PasteHelper.ts +105 -23
  239. package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -3
  240. package/src/sap/fe/core/helpers/PromiseKeeper.ts +0 -2
  241. package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -4
  242. package/src/sap/fe/core/helpers/RecommendationHelper.ts +0 -3
  243. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -3
  244. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +3 -4
  245. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -2
  246. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +0 -1
  247. package/src/sap/fe/core/helpers/SizeHelper.js +1 -2
  248. package/src/sap/fe/core/helpers/SizeHelper.ts +0 -1
  249. package/src/sap/fe/core/helpers/StableIdHelper.js +7 -17
  250. package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -17
  251. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -12
  252. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +0 -11
  253. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  254. package/src/sap/fe/core/helpers/TitleHelper.js +1 -10
  255. package/src/sap/fe/core/helpers/TitleHelper.ts +0 -9
  256. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -2
  257. package/src/sap/fe/core/helpers/ToES6Promise.ts +0 -1
  258. package/src/sap/fe/core/helpers/TypeGuards.js +1 -15
  259. package/src/sap/fe/core/helpers/TypeGuards.ts +0 -14
  260. package/src/sap/fe/core/helpers/WebSocket.js +1 -1
  261. package/src/sap/fe/core/library.js +10 -44
  262. package/src/sap/fe/core/library.support.js +1 -1
  263. package/src/sap/fe/core/library.ts +8 -45
  264. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -6
  265. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -5
  266. package/src/sap/fe/core/messagebundle.properties +12 -1
  267. package/src/sap/fe/core/messagebundle_ar.properties +8 -0
  268. package/src/sap/fe/core/messagebundle_bg.properties +8 -0
  269. package/src/sap/fe/core/messagebundle_ca.properties +8 -0
  270. package/src/sap/fe/core/messagebundle_cnr.properties +8 -0
  271. package/src/sap/fe/core/messagebundle_cs.properties +9 -1
  272. package/src/sap/fe/core/messagebundle_cy.properties +8 -0
  273. package/src/sap/fe/core/messagebundle_da.properties +8 -0
  274. package/src/sap/fe/core/messagebundle_de.properties +8 -0
  275. package/src/sap/fe/core/messagebundle_el.properties +8 -0
  276. package/src/sap/fe/core/messagebundle_en.properties +8 -0
  277. package/src/sap/fe/core/messagebundle_en_GB.properties +8 -0
  278. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +144 -65
  279. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -0
  280. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -194
  281. package/src/sap/fe/core/messagebundle_es.properties +9 -1
  282. package/src/sap/fe/core/messagebundle_es_MX.properties +8 -0
  283. package/src/sap/fe/core/messagebundle_et.properties +8 -0
  284. package/src/sap/fe/core/messagebundle_fi.properties +8 -0
  285. package/src/sap/fe/core/messagebundle_fr.properties +8 -0
  286. package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -0
  287. package/src/sap/fe/core/messagebundle_hi.properties +9 -1
  288. package/src/sap/fe/core/messagebundle_hr.properties +8 -0
  289. package/src/sap/fe/core/messagebundle_hu.properties +8 -0
  290. package/src/sap/fe/core/messagebundle_id.properties +12 -4
  291. package/src/sap/fe/core/messagebundle_it.properties +8 -0
  292. package/src/sap/fe/core/messagebundle_iw.properties +8 -0
  293. package/src/sap/fe/core/messagebundle_ja.properties +8 -0
  294. package/src/sap/fe/core/messagebundle_kk.properties +8 -0
  295. package/src/sap/fe/core/messagebundle_ko.properties +8 -0
  296. package/src/sap/fe/core/messagebundle_lt.properties +8 -0
  297. package/src/sap/fe/core/messagebundle_lv.properties +8 -0
  298. package/src/sap/fe/core/messagebundle_mk.properties +8 -0
  299. package/src/sap/fe/core/messagebundle_ms.properties +8 -0
  300. package/src/sap/fe/core/messagebundle_nl.properties +16 -8
  301. package/src/sap/fe/core/messagebundle_no.properties +8 -0
  302. package/src/sap/fe/core/messagebundle_pl.properties +8 -0
  303. package/src/sap/fe/core/messagebundle_pt.properties +8 -0
  304. package/src/sap/fe/core/messagebundle_pt_PT.properties +8 -0
  305. package/src/sap/fe/core/messagebundle_ro.properties +8 -0
  306. package/src/sap/fe/core/messagebundle_ru.properties +8 -0
  307. package/src/sap/fe/core/messagebundle_sh.properties +8 -0
  308. package/src/sap/fe/core/messagebundle_sk.properties +8 -0
  309. package/src/sap/fe/core/messagebundle_sl.properties +8 -0
  310. package/src/sap/fe/core/messagebundle_sr.properties +8 -0
  311. package/src/sap/fe/core/messagebundle_sv.properties +8 -0
  312. package/src/sap/fe/core/messagebundle_th.properties +12 -4
  313. package/src/sap/fe/core/messagebundle_tr.properties +8 -0
  314. package/src/sap/fe/core/messagebundle_uk.properties +10 -2
  315. package/src/sap/fe/core/messagebundle_vi.properties +8 -0
  316. package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -0
  317. package/src/sap/fe/core/messagebundle_zh_TW.properties +8 -0
  318. package/src/sap/fe/core/operationsHelper.js +22 -7
  319. package/src/sap/fe/core/operationsHelper.ts +24 -5
  320. package/src/sap/fe/core/rootView/Fcl.controller.js +7 -27
  321. package/src/sap/fe/core/rootView/Fcl.controller.ts +0 -18
  322. package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -12
  323. package/src/sap/fe/core/rootView/NavContainer.controller.ts +0 -5
  324. package/src/sap/fe/core/rootView/RootViewBaseController.js +10 -24
  325. package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -16
  326. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
  327. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -3
  328. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +4 -4
  329. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +3 -3
  330. package/src/sap/fe/core/services/ContextSharingServiceFactory.js +3 -4
  331. package/src/sap/fe/core/services/ContextSharingServiceFactory.ts +0 -1
  332. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +13 -20
  333. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +11 -17
  334. package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -21
  335. package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -17
  336. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
  337. package/src/sap/fe/core/services/RoutingServiceFactory.js +7 -19
  338. package/src/sap/fe/core/services/RoutingServiceFactory.ts +0 -12
  339. package/src/sap/fe/core/services/ShellServicesFactory.js +8 -44
  340. package/src/sap/fe/core/services/ShellServicesFactory.ts +1 -41
  341. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +19 -60
  342. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +14 -57
  343. package/src/sap/fe/core/services/TelemetryServiceFactory.js +6 -14
  344. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +2 -10
  345. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +17 -7
  346. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +17 -3
  347. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +11 -24
  348. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +0 -19
  349. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +3 -31
  350. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +0 -27
  351. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -4
  352. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.ts +0 -3
  353. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +7 -7
  354. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  355. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  356. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  357. package/src/sap/fe/core/support/CommonHelper.js +4 -1
  358. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  359. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  360. package/src/sap/fe/core/templating/ActionHelper.js +1 -2
  361. package/src/sap/fe/core/templating/ActionHelper.ts +0 -1
  362. package/src/sap/fe/core/templating/CommonFormatters.js +1 -2
  363. package/src/sap/fe/core/templating/CommonFormatters.ts +0 -1
  364. package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -6
  365. package/src/sap/fe/core/templating/CriticalityFormatters.ts +0 -5
  366. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -2
  367. package/src/sap/fe/core/templating/DataFieldFormatters.ts +0 -1
  368. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -18
  369. package/src/sap/fe/core/templating/DataModelPathHelper.ts +0 -17
  370. package/src/sap/fe/core/templating/DisplayModeFormatter.js +6 -1
  371. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -4
  372. package/src/sap/fe/core/templating/EntitySetHelper.ts +0 -3
  373. package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
  374. package/src/sap/fe/core/templating/EntityTypeHelper.ts +3 -4
  375. package/src/sap/fe/core/templating/FieldControlHelper.js +4 -9
  376. package/src/sap/fe/core/templating/FieldControlHelper.ts +3 -9
  377. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  378. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  379. package/src/sap/fe/core/templating/PropertyHelper.js +1 -31
  380. package/src/sap/fe/core/templating/PropertyHelper.ts +0 -30
  381. package/src/sap/fe/core/templating/SemanticObjectHelper.js +1 -7
  382. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +0 -6
  383. package/src/sap/fe/core/templating/UIFormatters.js +18 -14
  384. package/src/sap/fe/core/templating/UIFormatters.ts +30 -18
  385. package/src/sap/fe/core/type/Date.js +3 -6
  386. package/src/sap/fe/core/type/Date.ts +0 -3
  387. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
  388. package/src/sap/fe/core/type/EDM.js +1 -1
  389. package/src/sap/fe/core/type/Email.js +3 -3
  390. package/src/sap/fe/core/type/FiscalDate.js +3 -9
  391. package/src/sap/fe/core/type/FiscalDate.ts +0 -6
  392. package/src/sap/fe/core/type/InputMask.js +3 -7
  393. package/src/sap/fe/core/type/InputMask.ts +0 -4
@@ -1,3 +1,4 @@
1
+ import Log from "sap/base/Log";
1
2
  import VersionInfo from "sap/ui/VersionInfo";
2
3
  import Library from "sap/ui/core/Lib";
3
4
  import Service from "sap/ui/core/service/Service";
@@ -62,7 +63,6 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
62
63
  * Prepares the feature for usage.
63
64
  *
64
65
  * This function loads the library registered for the feature.
65
- *
66
66
  * @param feature The feature to prepare.
67
67
  * @throws Error if the feature is unavailable.
68
68
  */
@@ -91,7 +91,7 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
91
91
  // Initialize optional features
92
92
  const navigationService: Navigation | undefined = await sap.ushell?.Container?.getServiceAsync("Navigation");
93
93
 
94
- for (const [featureName, feature] of Object.entries(OptionalFeatures) as [FeatureName, (typeof OptionalFeatures)[FeatureName]][]) {
94
+ for (const [featureName, feature] of Object.entries(OptionalFeatures)) {
95
95
  // The feature is off by default. Only if there is a shell and the intent resolves, the feature is available
96
96
  this.environmentCapabilities[featureName] = false;
97
97
 
@@ -116,6 +116,7 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
116
116
  }
117
117
  } catch (e) {
118
118
  // Feature unavailable
119
+ Log.info(`Feature unavailable ${featureName}: ${(e as { message: string; stack: string }).message}`);
119
120
  }
120
121
  }
121
122
  }
@@ -125,18 +126,14 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
125
126
 
126
127
  static async resolveLibrary(libraryName: string): Promise<boolean> {
127
128
  return new Promise(function (resolve) {
128
- try {
129
- Library.load({ name: `${libraryName.replace(/\./g, "/")}` })
130
- .then(function () {
131
- resolve(true);
132
- return;
133
- })
134
- .catch(function () {
135
- resolve(false);
136
- });
137
- } catch (e) {
138
- resolve(false);
139
- }
129
+ Library.load({ name: `${libraryName}` })
130
+ .then(function () {
131
+ resolve(true);
132
+ return;
133
+ })
134
+ .catch(function () {
135
+ resolve(false);
136
+ });
140
137
  });
141
138
  }
142
139
 
@@ -154,7 +151,6 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
154
151
 
155
152
  /**
156
153
  * Checks if insights are enabled on the home page.
157
- *
158
154
  * @returns True if insights are enabled on the home page.
159
155
  */
160
156
  async isInsightsEnabled(): Promise<boolean> {
@@ -183,7 +179,6 @@ export class EnvironmentCapabilitiesService extends Service<EnvironmentCapabilit
183
179
 
184
180
  /**
185
181
  * Checks if insights context channel is enabled .
186
- *
187
182
  * @returns True if enabled.
188
183
  */
189
184
  async isContextSharingEnabled(): Promise<boolean> {
@@ -216,7 +211,6 @@ export class EnvironmentServiceFactory extends ServiceFactory<EnvironmentCapabil
216
211
 
217
212
  /**
218
213
  * Checks if the application is opened on Microsoft Teams.
219
- *
220
214
  * @returns True if the application is opened on Microsoft Teams.
221
215
  */
222
216
  export async function getMSTeamsActive(): Promise<boolean> {
@@ -6,9 +6,9 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
9
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
11
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
10
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
11
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
12
12
  let NavigationService = /*#__PURE__*/function (_Service) {
13
13
  _inheritsLoose(NavigationService, _Service);
14
14
  function NavigationService() {
@@ -29,7 +29,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
29
29
 
30
30
  /**
31
31
  * Triggers a cross-app navigation after saving the inner and the cross-app states.
32
- *
33
32
  * @param sSemanticObject Semantic object of the target app
34
33
  * @param sActionName Action of the target app
35
34
  * @param [vNavigationParameters] Navigation parameters as an object with key/value pairs or as a string representation of
@@ -54,7 +53,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
54
53
 
55
54
  /**
56
55
  * Parses the incoming URL and returns a Promise.
57
- *
58
56
  * @returns A Promise object which returns the
59
57
  * extracted app state, the startup parameters, and the type of navigation when execution is successful,
60
58
  */;
@@ -64,7 +62,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
64
62
 
65
63
  /**
66
64
  * Processes navigation-related tasks related to beforePopoverOpens event handling for the SmartLink control and returns a Promise object.
67
- *
68
65
  * @param oTableEventParameters The parameters made available by the SmartTable control when the SmartLink control has been clicked,
69
66
  * an instance of a PopOver object
70
67
  * @param sSelectionVariant Stringified JSON object as returned, for example, from getDataSuiteFormat() of the SmartFilterBar control
@@ -80,10 +77,8 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
80
77
 
81
78
  /**
82
79
  * Get App specific hash.
83
- *
84
80
  * @param appHash The path string
85
81
  * @returns A string representing base path
86
- *
87
82
  */;
88
83
  _proto.getAppSpecificHash = async function getAppSpecificHash(appHash) {
89
84
  return this.oNavHandler._getAppSpecificHash(appHash);
@@ -91,7 +86,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
91
86
 
92
87
  /**
93
88
  * Processes selectionVariant string and returns a Promise object (semanticAttributes and AppStateKey).
94
- *
95
89
  * @param sSelectionVariant Stringified JSON object
96
90
  * @returns A Promise object to monitor when all actions in the function have been executed; if the execution is successful, the
97
91
  * semanticAttributes as well as the appStateKey are returned; if an error occurs, an error object of type
@@ -125,7 +119,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
125
119
 
126
120
  /**
127
121
  * Gets the application specific technical parameters.
128
- *
129
122
  * @returns Containing the technical parameters.
130
123
  */;
131
124
  _proto.getTechnicalParameters = function getTechnicalParameters() {
@@ -136,7 +129,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
136
129
  * Sets the application specific technical parameters. Technical parameters will not be added to the selection variant passed to the
137
130
  * application.
138
131
  * As a default sap-system, sap-ushell-defaultedParameterNames and hcpApplicationId are considered as technical parameters.
139
- *
140
132
  * @param aTechnicalParameters List of parameter names to be considered as technical parameters. <code>null</code> or
141
133
  * <code>undefined</code> may be used to reset the complete list.
142
134
  */;
@@ -147,7 +139,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
147
139
  /**
148
140
  * Sets the model that is used for verification of sensitive information. If the model is not set, the unnamed component model is used for the
149
141
  * verification of sensitive information.
150
- *
151
142
  * @param oModel Model For checking sensitive information
152
143
  */;
153
144
  _proto.setModel = function setModel(oModel) {
@@ -156,7 +147,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
156
147
 
157
148
  /**
158
149
  * Changes the URL according to the current app state and stores the app state for later retrieval.
159
- *
160
150
  * @param mInnerAppData Object containing the current state of the app
161
151
  * @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
162
152
  * set to false if you cannot react to the resolution of the Promise, for example, when calling the beforeLinkPressed event
@@ -173,7 +163,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
173
163
 
174
164
  /**
175
165
  * Changes the URL according to the current app state and stores the app state for later retrieval.
176
- *
177
166
  * @param mInnerAppData Object containing the current state of the app
178
167
  * @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
179
168
  * @returns An object containing the appStateId and a promise object to monitor when all the actions of the function have been
@@ -185,7 +174,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
185
174
 
186
175
  /**
187
176
  * Changes the URL according to the current sAppStateKey. As an reaction route change event will be triggered.
188
- *
189
177
  * @param sAppStateKey The new app state key.
190
178
  */;
191
179
  _proto.replaceHash = function replaceHash(sAppStateKey) {
@@ -197,7 +185,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
197
185
 
198
186
  /**
199
187
  * Get single values from SelectionVariant for url parameters.
200
- *
201
188
  * @param [vSelectionVariant]
202
189
  * @param [vSelectionVariant.oUrlParamaters]
203
190
  * @returns The url parameters
@@ -208,7 +195,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
208
195
 
209
196
  /**
210
197
  * Save app state and return immediately without waiting for response.
211
- *
212
198
  * @param oInSelectionVariant Instance of sap.fe.navigation.SelectionVariant
213
199
  * @returns AppState key
214
200
  */;
@@ -230,7 +216,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
230
216
 
231
217
  /**
232
218
  * Mix Attributes and selectionVariant.
233
- *
234
219
  * @param vSemanticAttributes Object/(Array of Objects) containing key/value pairs
235
220
  * @param sSelectionVariant The selection variant in string format as provided by the SmartFilterBar control
236
221
  * @param iSuppressionBehavior Indicates whether semantic
@@ -246,7 +231,6 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
246
231
 
247
232
  /**
248
233
  * The method creates a context url based on provided data. This context url can either be used as.
249
- *
250
234
  * @param sEntitySetName Used for url determination
251
235
  * @param oModel The ODataModel used for url determination. If omitted, the NavigationHandler model is used.
252
236
  * @returns The context url for the given entities
@@ -260,12 +244,14 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
260
244
 
261
245
  /**
262
246
  * The method returns iAppState key for the current navgation handler instance.
263
- *
264
247
  * @returns IAppState key
265
248
  */;
266
249
  _proto.getIAppStateKey = function getIAppStateKey() {
267
250
  return this.oNavHandler.getIAppStateKey();
268
251
  };
252
+ _proto.checkIsPotentiallySensitive = function checkIsPotentiallySensitive(oData) {
253
+ return this.oNavHandler._checkIsPotentiallySensitive(oData);
254
+ };
269
255
  return NavigationService;
270
256
  }(Service);
271
257
  _exports.NavigationService = NavigationService;
@@ -307,6 +293,10 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
307
293
  }
308
294
 
309
295
  // return empty object
296
+
297
+ // return promise
298
+
299
+ // return empty string
310
300
  ;
311
301
  _proto2.replaceInnerAppStateKey = function replaceInnerAppStateKey(sAppHash) {
312
302
  return sAppHash ? sAppHash : "";
@@ -334,4 +324,4 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
334
324
  }(ServiceFactory);
335
325
  return NavigationServiceFactory;
336
326
  }, false);
337
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsImluaXQiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJvTmF2SGFuZGxlciIsIk5hdmlnYXRpb25IYW5kbGVyIiwic2V0TW9kZWwiLCJnZXRNb2RlbCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGl0IiwiZGVzdHJveSIsIm5hdmlnYXRlIiwic1NlbWFudGljT2JqZWN0Iiwic0FjdGlvbk5hbWUiLCJ2TmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvSW5uZXJBcHBEYXRhIiwiZm5PbkVycm9yIiwib0V4dGVybmFsQXBwRGF0YSIsInNOYXZNb2RlIiwicGFyc2VOYXZpZ2F0aW9uIiwiX3Byb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJvVGFibGVFdmVudFBhcmFtZXRlcnMiLCJzU2VsZWN0aW9uVmFyaWFudCIsIm1Jbm5lckFwcERhdGEiLCJwcm9jZXNzQmVmb3JlU21hcnRMaW5rUG9wb3Zlck9wZW5zIiwiZ2V0QXBwU3BlY2lmaWNIYXNoIiwiYXBwSGFzaCIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJfZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzIiwiZ2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsInNldFRlY2huaWNhbFBhcmFtZXRlcnMiLCJhVGVjaG5pY2FsUGFyYW1ldGVycyIsIm9Nb2RlbCIsInN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jIiwiYkltbWVkaWF0ZUhhc2hSZXBsYWNlIiwiYlNraXBIYXNoUmVwbGFjZSIsInJlamVjdCIsInRoZW4iLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwicmVwbGFjZUhhc2giLCJzQXBwU3RhdGVLZXkiLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsInNBcHBIYXNoIiwiX3JlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwiZ2V0VXJsUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwidlNlbGVjdGlvblZhcmlhbnQiLCJfZ2V0VVJMUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50Iiwic2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsIm9JblNlbGVjdGlvblZhcmlhbnQiLCJ0b0pTT05TdHJpbmciLCJvU2VsZWN0aW9uVmFyaWFudCIsIkpTT04iLCJwYXJzZSIsIm9YQXBwU3RhdGVPYmplY3QiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1JldHVybiIsIl9zYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwiYXBwU3RhdGVLZXkiLCJ1bmRlZmluZWQiLCJtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudCIsInZTZW1hbnRpY0F0dHJpYnV0ZXMiLCJpU3VwcHJlc3Npb25CZWhhdmlvciIsImNvbnN0cnVjdENvbnRleHRVcmwiLCJzRW50aXR5U2V0TmFtZSIsImdldEludGVyZmFjZSIsImdldElBcHBTdGF0ZUtleSIsIlNlcnZpY2UiLCJmbkdldEVtcHR5T2JqZWN0IiwiZm5HZXRQcm9taXNlIiwiZm5HZXRKUXVlcnlQcm9taXNlIiwib015RGVmZmVyZWQiLCJqUXVlcnkiLCJEZWZlcnJlZCIsInByb21pc2UiLCJmbkdldEVtcHR5U3RyaW5nIiwiTmF2aWdhdGlvblNlcnZpY2VzTW9jayIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJnZXRBcHBTdGF0ZSIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsIlNlcnZpY2VGYWN0b3J5IiwiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICpcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogSlF1ZXJ5LlByb21pc2U8dW5rbm93biwgdW5rbm93biwgdW5rbm93bj4ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLnByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMob1RhYmxlRXZlbnRQYXJhbWV0ZXJzLCBzU2VsZWN0aW9uVmFyaWFudCwgbUlubmVyQXBwRGF0YSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IEFwcCBzcGVjaWZpYyBoYXNoLlxuXHQgKlxuXHQgKiBAcGFyYW0gYXBwSGFzaCBUaGUgcGF0aCBzdHJpbmdcblx0ICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGJhc2UgcGF0aFxuXHQgKlxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2g6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2dldEFwcFNwZWNpZmljSGFzaChhcHBIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgc2VsZWN0aW9uVmFyaWFudCBzdHJpbmcgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdCAoc2VtYW50aWNBdHRyaWJ1dGVzIGFuZCBBcHBTdGF0ZUtleSkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdFxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgYWN0aW9ucyBpbiB0aGUgZnVuY3Rpb24gaGF2ZSBiZWVuIGV4ZWN1dGVkOyBpZiB0aGUgZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsIHRoZVxuXHQgKiAgICAgICAgICBzZW1hbnRpY0F0dHJpYnV0ZXMgYXMgd2VsbCBhcyB0aGUgYXBwU3RhdGVLZXkgYXJlIHJldHVybmVkOyBpZiBhbiBlcnJvciBvY2N1cnMsIGFuIGVycm9yIG9iamVjdCBvZiB0eXBlXG5cdCAqICAgICAgICAgIHtAbGluayBzYXAuZmUubmF2aWdhdGlvbi5OYXZFcnJvcn0gaXMgcmV0dXJuZWRcblx0ICogPGJyPlxuXHQgKiBAZXhhbXBsZSA8Y29kZT5cblx0ICpcblx0ICogXHRcdHZhciBvU2VsZWN0aW9uVmFyaWFudCA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5TZWxlY3Rpb25WYXJpYW50KCk7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDb21wYW55Q29kZVwiLCBcIklcIiwgXCJFUVwiLCBcIjAwMDFcIik7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDdXN0b21lclwiLCBcIklcIiwgXCJFUVwiLCBcIkMwMDAxXCIpO1xuXHQgKiBcdFx0dmFyIHNTZWxlY3Rpb25WYXJpYW50PSBvU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKTtcblx0ICpcblx0ICogXHRcdHZhciBvTmF2aWdhdGlvbkhhbmRsZXIgPSBuZXcgc2FwLmZlLm5hdmlnYXRpb24uTmF2aWdhdGlvbkhhbmRsZXIob0NvbnRyb2xsZXIpO1xuXHQgKiBcdFx0dmFyIG9Qcm9taXNlT2JqZWN0ID0gb05hdmlnYXRpb25IYW5kbGVyLl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQpO1xuXHQgKlxuXHQgKiBcdFx0b1Byb21pc2VPYmplY3QuZG9uZShmdW5jdGlvbihvU2VtYW50aWNBdHRyaWJ1dGVzLCBzQXBwU3RhdGVLZXkpe1xuXHQgKiBcdFx0XHQvLyBoZXJlIHlvdSBjYW4gYWRkIGNvZGluZyB0aGF0IHNob3VsZCBydW4gYWZ0ZXIgYWxsIGFwcCBzdGF0ZSBhbmQgdGhlIHNlbWFudGljIGF0dHJpYnV0ZXMgaGF2ZSBiZWVuIHJldHVybmVkLlxuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5mYWlsKGZ1bmN0aW9uKG9FcnJvcil7XG5cdCAqIFx0XHRcdC8vc29tZSBlcnJvciBoYW5kbGluZ1xuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIDwvY29kZT5cblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuXHRnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyk6IEpRdWVyeS5Qcm9taXNlPHVua25vd24sIHVua25vd24sIHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICpcblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICpcblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICpcblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICpcblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFXYUEsaUJBQWlCO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUEsT0FLN0JDLElBQUksR0FBSixnQkFBYTtNQUNaLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsRUFBRTtRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUksQ0FBQ0UsV0FBVyxDQUFDRSxRQUFRLENBQUNKLFVBQVUsQ0FBQ0ssUUFBUSxFQUFFLENBQUM7TUFDaEQsSUFBSSxDQUFDQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBQUEsT0FFREMsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDUCxXQUFXLENBQUNRLE9BQU8sRUFBRTtJQUMzQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FqQkM7SUFBQSxPQWtCQUMsUUFBUSxHQUFSLGtCQUNDQyxlQUF1QixFQUN2QkMsV0FBbUIsRUFDbkJDLHFCQUFzQyxFQUN0Q0MsYUFBNEIsRUFDNUJDLFNBQW9CLEVBQ3BCQyxnQkFJQyxFQUNEQyxRQUFpQixFQUNWO01BQ1A7TUFDQTtNQUNBO01BQ0EsSUFB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
327
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsIl9TZXJ2aWNlIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiaW5pdCIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm9Db21wb25lbnQiLCJzY29wZU9iamVjdCIsIm9OYXZIYW5kbGVyIiwiTmF2aWdhdGlvbkhhbmRsZXIiLCJzZXRNb2RlbCIsImdldE1vZGVsIiwiaW5pdFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImV4aXQiLCJkZXN0cm95IiwibmF2aWdhdGUiLCJzU2VtYW50aWNPYmplY3QiLCJzQWN0aW9uTmFtZSIsInZOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9Jbm5lckFwcERhdGEiLCJmbk9uRXJyb3IiLCJvRXh0ZXJuYWxBcHBEYXRhIiwic05hdk1vZGUiLCJwYXJzZU5hdmlnYXRpb24iLCJfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyIsIm9UYWJsZUV2ZW50UGFyYW1ldGVycyIsInNTZWxlY3Rpb25WYXJpYW50IiwibUlubmVyQXBwRGF0YSIsInByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJnZXRBcHBTcGVjaWZpY0hhc2giLCJhcHBIYXNoIiwiX2dldEFwcFNwZWNpZmljSGFzaCIsImdldEFwcFN0YXRlS2V5QW5kVXJsUGFyYW1ldGVycyIsIl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJnZXRUZWNobmljYWxQYXJhbWV0ZXJzIiwic2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsImFUZWNobmljYWxQYXJhbWV0ZXJzIiwib01vZGVsIiwic3RvcmVJbm5lckFwcFN0YXRlQXN5bmMiLCJiSW1tZWRpYXRlSGFzaFJlcGxhY2UiLCJiU2tpcEhhc2hSZXBsYWNlIiwicmVqZWN0IiwidGhlbiIsInN0b3JlSW5uZXJBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4iLCJyZXBsYWNlSGFzaCIsInNBcHBTdGF0ZUtleSIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5Iiwic0FwcEhhc2giLCJfcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJ2U2VsZWN0aW9uVmFyaWFudCIsIl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJzYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwib0luU2VsZWN0aW9uVmFyaWFudCIsInRvSlNPTlN0cmluZyIsIm9TZWxlY3Rpb25WYXJpYW50IiwiSlNPTiIsInBhcnNlIiwib1hBcHBTdGF0ZU9iamVjdCIsInNlbGVjdGlvblZhcmlhbnQiLCJvUmV0dXJuIiwiX3NhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4iLCJhcHBTdGF0ZUtleSIsInVuZGVmaW5lZCIsIm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50IiwidlNlbWFudGljQXR0cmlidXRlcyIsImlTdXBwcmVzc2lvbkJlaGF2aW9yIiwiY29uc3RydWN0Q29udGV4dFVybCIsInNFbnRpdHlTZXROYW1lIiwiZ2V0SW50ZXJmYWNlIiwiZ2V0SUFwcFN0YXRlS2V5IiwiY2hlY2tJc1BvdGVudGlhbGx5U2Vuc2l0aXZlIiwib0RhdGEiLCJfY2hlY2tJc1BvdGVudGlhbGx5U2Vuc2l0aXZlIiwiU2VydmljZSIsImZuR2V0RW1wdHlPYmplY3QiLCJmbkdldFByb21pc2UiLCJmbkdldEpRdWVyeVByb21pc2UiLCJvTXlEZWZmZXJlZCIsImpRdWVyeSIsIkRlZmVycmVkIiwicHJvbWlzZSIsImZuR2V0RW1wdHlTdHJpbmciLCJOYXZpZ2F0aW9uU2VydmljZXNNb2NrIiwiX1NlcnZpY2VGYWN0b3J5IiwiX3RoaXMiLCJjYWxsIiwiY3JlYXRlRW1wdHlBcHBTdGF0ZSIsImdldEFwcFN0YXRlIiwiZ2V0U3RhcnR1cEFwcFN0YXRlIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9wcm90bzIiLCJTZXJ2aWNlRmFjdG9yeSIsIk5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeSIsIl9TZXJ2aWNlRmFjdG9yeTIiLCJfcHJvdG8zIiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogSlF1ZXJ5LlByb21pc2U8dW5rbm93biwgdW5rbm93biwgdW5rbm93bj4ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLnByb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMob1RhYmxlRXZlbnRQYXJhbWV0ZXJzLCBzU2VsZWN0aW9uVmFyaWFudCwgbUlubmVyQXBwRGF0YSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IEFwcCBzcGVjaWZpYyBoYXNoLlxuXHQgKiBAcGFyYW0gYXBwSGFzaCBUaGUgcGF0aCBzdHJpbmdcblx0ICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIGJhc2UgcGF0aFxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2g6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2dldEFwcFNwZWNpZmljSGFzaChhcHBIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgc2VsZWN0aW9uVmFyaWFudCBzdHJpbmcgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdCAoc2VtYW50aWNBdHRyaWJ1dGVzIGFuZCBBcHBTdGF0ZUtleSkuXG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdFxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgYWN0aW9ucyBpbiB0aGUgZnVuY3Rpb24gaGF2ZSBiZWVuIGV4ZWN1dGVkOyBpZiB0aGUgZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsIHRoZVxuXHQgKiAgICAgICAgICBzZW1hbnRpY0F0dHJpYnV0ZXMgYXMgd2VsbCBhcyB0aGUgYXBwU3RhdGVLZXkgYXJlIHJldHVybmVkOyBpZiBhbiBlcnJvciBvY2N1cnMsIGFuIGVycm9yIG9iamVjdCBvZiB0eXBlXG5cdCAqICAgICAgICAgIHtAbGluayBzYXAuZmUubmF2aWdhdGlvbi5OYXZFcnJvcn0gaXMgcmV0dXJuZWRcblx0ICogPGJyPlxuXHQgKiBAZXhhbXBsZSA8Y29kZT5cblx0ICpcblx0ICogXHRcdHZhciBvU2VsZWN0aW9uVmFyaWFudCA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5TZWxlY3Rpb25WYXJpYW50KCk7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDb21wYW55Q29kZVwiLCBcIklcIiwgXCJFUVwiLCBcIjAwMDFcIik7XG5cdCAqIFx0XHRvU2VsZWN0aW9uVmFyaWFudC5hZGRTZWxlY3RPcHRpb24oXCJDdXN0b21lclwiLCBcIklcIiwgXCJFUVwiLCBcIkMwMDAxXCIpO1xuXHQgKiBcdFx0dmFyIHNTZWxlY3Rpb25WYXJpYW50PSBvU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKTtcblx0ICpcblx0ICogXHRcdHZhciBvTmF2aWdhdGlvbkhhbmRsZXIgPSBuZXcgc2FwLmZlLm5hdmlnYXRpb24uTmF2aWdhdGlvbkhhbmRsZXIob0NvbnRyb2xsZXIpO1xuXHQgKiBcdFx0dmFyIG9Qcm9taXNlT2JqZWN0ID0gb05hdmlnYXRpb25IYW5kbGVyLl9nZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQpO1xuXHQgKlxuXHQgKiBcdFx0b1Byb21pc2VPYmplY3QuZG9uZShmdW5jdGlvbihvU2VtYW50aWNBdHRyaWJ1dGVzLCBzQXBwU3RhdGVLZXkpe1xuXHQgKiBcdFx0XHQvLyBoZXJlIHlvdSBjYW4gYWRkIGNvZGluZyB0aGF0IHNob3VsZCBydW4gYWZ0ZXIgYWxsIGFwcCBzdGF0ZSBhbmQgdGhlIHNlbWFudGljIGF0dHJpYnV0ZXMgaGF2ZSBiZWVuIHJldHVybmVkLlxuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5mYWlsKGZ1bmN0aW9uKG9FcnJvcil7XG5cdCAqIFx0XHRcdC8vc29tZSBlcnJvciBoYW5kbGluZ1xuXHQgKiBcdFx0fSk7XG5cdCAqXG5cdCAqIDwvY29kZT5cblx0ICovXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuXHRnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMoc1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyk6IEpRdWVyeS5Qcm9taXNlPHVua25vd24sIHVua25vd24sIHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cblxuXHRjaGVja0lzUG90ZW50aWFsbHlTZW5zaXRpdmUob0RhdGE6IE9iamVjdCk6IE9iamVjdCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuX2NoZWNrSXNQb3RlbnRpYWxseVNlbnNpdGl2ZShvRGF0YSk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7TUFXYUEsaUJBQWlCLDBCQUFBQyxRQUFBO0lBQUFDLGNBQUEsQ0FBQUYsaUJBQUEsRUFBQUMsUUFBQTtJQUFBLFNBQUFELGtCQUFBO01BQUEsT0FBQUMsUUFBQSxDQUFBRSxLQUFBLE9BQUFDLFNBQUE7SUFBQTtJQUFBQyxRQUFBLENBQUFMLGlCQUFBLEdBQUFBLGlCQUFBO0lBQUEsSUFBQU0sTUFBQSxHQUFBTixpQkFBQSxDQUFBTyxTQUFBO0lBQUFELE1BQUEsQ0FLN0JFLElBQUksR0FBSixTQUFBQSxLQUFBLEVBQWE7TUFDWixNQUFNQyxRQUFRLEdBQUcsSUFBSSxDQUFDQyxVQUFVLENBQUMsQ0FBQztRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUks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
@@ -29,7 +29,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
29
29
 
30
30
  /**
31
31
  * Triggers a cross-app navigation after saving the inner and the cross-app states.
32
- *
33
32
  * @param sSemanticObject Semantic object of the target app
34
33
  * @param sActionName Action of the target app
35
34
  * @param [vNavigationParameters] Navigation parameters as an object with key/value pairs or as a string representation of
@@ -74,7 +73,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
74
73
 
75
74
  /**
76
75
  * Parses the incoming URL and returns a Promise.
77
- *
78
76
  * @returns A Promise object which returns the
79
77
  * extracted app state, the startup parameters, and the type of navigation when execution is successful,
80
78
  */
@@ -84,7 +82,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
84
82
 
85
83
  /**
86
84
  * Processes navigation-related tasks related to beforePopoverOpens event handling for the SmartLink control and returns a Promise object.
87
- *
88
85
  * @param oTableEventParameters The parameters made available by the SmartTable control when the SmartLink control has been clicked,
89
86
  * an instance of a PopOver object
90
87
  * @param sSelectionVariant Stringified JSON object as returned, for example, from getDataSuiteFormat() of the SmartFilterBar control
@@ -104,10 +101,8 @@ export class NavigationService extends Service<NavigationServiceSettings> {
104
101
 
105
102
  /**
106
103
  * Get App specific hash.
107
- *
108
104
  * @param appHash The path string
109
105
  * @returns A string representing base path
110
- *
111
106
  */
112
107
  async getAppSpecificHash(appHash: string): Promise<string | undefined> {
113
108
  return this.oNavHandler._getAppSpecificHash(appHash);
@@ -115,7 +110,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
115
110
 
116
111
  /**
117
112
  * Processes selectionVariant string and returns a Promise object (semanticAttributes and AppStateKey).
118
- *
119
113
  * @param sSelectionVariant Stringified JSON object
120
114
  * @returns A Promise object to monitor when all actions in the function have been executed; if the execution is successful, the
121
115
  * semanticAttributes as well as the appStateKey are returned; if an error occurs, an error object of type
@@ -148,7 +142,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
148
142
 
149
143
  /**
150
144
  * Gets the application specific technical parameters.
151
- *
152
145
  * @returns Containing the technical parameters.
153
146
  */
154
147
  getTechnicalParameters(): string[] {
@@ -159,7 +152,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
159
152
  * Sets the application specific technical parameters. Technical parameters will not be added to the selection variant passed to the
160
153
  * application.
161
154
  * As a default sap-system, sap-ushell-defaultedParameterNames and hcpApplicationId are considered as technical parameters.
162
- *
163
155
  * @param aTechnicalParameters List of parameter names to be considered as technical parameters. <code>null</code> or
164
156
  * <code>undefined</code> may be used to reset the complete list.
165
157
  */
@@ -170,7 +162,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
170
162
  /**
171
163
  * Sets the model that is used for verification of sensitive information. If the model is not set, the unnamed component model is used for the
172
164
  * verification of sensitive information.
173
- *
174
165
  * @param oModel Model For checking sensitive information
175
166
  */
176
167
  setModel(oModel: ODataModel): void {
@@ -179,7 +170,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
179
170
 
180
171
  /**
181
172
  * Changes the URL according to the current app state and stores the app state for later retrieval.
182
- *
183
173
  * @param mInnerAppData Object containing the current state of the app
184
174
  * @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
185
175
  * set to false if you cannot react to the resolution of the Promise, for example, when calling the beforeLinkPressed event
@@ -202,7 +192,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
202
192
 
203
193
  /**
204
194
  * Changes the URL according to the current app state and stores the app state for later retrieval.
205
- *
206
195
  * @param mInnerAppData Object containing the current state of the app
207
196
  * @param [bImmediateHashReplace] If set to false, the inner app hash will not be replaced until storing is successful; do not
208
197
  * @returns An object containing the appStateId and a promise object to monitor when all the actions of the function have been
@@ -214,7 +203,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
214
203
 
215
204
  /**
216
205
  * Changes the URL according to the current sAppStateKey. As an reaction route change event will be triggered.
217
- *
218
206
  * @param sAppStateKey The new app state key.
219
207
  */
220
208
  replaceHash(sAppStateKey: string): void {
@@ -227,7 +215,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
227
215
 
228
216
  /**
229
217
  * Get single values from SelectionVariant for url parameters.
230
- *
231
218
  * @param [vSelectionVariant]
232
219
  * @param [vSelectionVariant.oUrlParamaters]
233
220
  * @returns The url parameters
@@ -238,7 +225,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
238
225
 
239
226
  /**
240
227
  * Save app state and return immediately without waiting for response.
241
- *
242
228
  * @param oInSelectionVariant Instance of sap.fe.navigation.SelectionVariant
243
229
  * @returns AppState key
244
230
  */
@@ -258,7 +244,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
258
244
 
259
245
  /**
260
246
  * Mix Attributes and selectionVariant.
261
- *
262
247
  * @param vSemanticAttributes Object/(Array of Objects) containing key/value pairs
263
248
  * @param sSelectionVariant The selection variant in string format as provided by the SmartFilterBar control
264
249
  * @param iSuppressionBehavior Indicates whether semantic
@@ -278,7 +263,6 @@ export class NavigationService extends Service<NavigationServiceSettings> {
278
263
 
279
264
  /**
280
265
  * The method creates a context url based on provided data. This context url can either be used as.
281
- *
282
266
  * @param sEntitySetName Used for url determination
283
267
  * @param oModel The ODataModel used for url determination. If omitted, the NavigationHandler model is used.
284
268
  * @returns The context url for the given entities
@@ -293,12 +277,15 @@ export class NavigationService extends Service<NavigationServiceSettings> {
293
277
 
294
278
  /**
295
279
  * The method returns iAppState key for the current navgation handler instance.
296
- *
297
280
  * @returns IAppState key
298
281
  */
299
282
  getIAppStateKey(): string | undefined {
300
283
  return this.oNavHandler.getIAppStateKey();
301
284
  }
285
+
286
+ checkIsPotentiallySensitive(oData: Object): Object {
287
+ return this.oNavHandler._checkIsPotentiallySensitive(oData);
288
+ }
302
289
  }
303
290
  function fnGetEmptyObject(): {} {
304
291
  return {};
@@ -6,8 +6,8 @@ sap.ui.define(["sap/fe/core/ResourceModel", "sap/ui/core/service/Service", "sap/
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
9
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
10
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
10
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
11
11
  let ResourceModelService = /*#__PURE__*/function (_Service) {
12
12
  _inheritsLoose(ResourceModelService, _Service);
13
13
  function ResourceModelService() {
@@ -88,4 +88,4 @@ sap.ui.define(["sap/fe/core/ResourceModel", "sap/ui/core/service/Service", "sap/
88
88
  }(ServiceFactory);
89
89
  return ResourceModelServiceFactory;
90
90
  }, false);
91
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXNvdXJjZU1vZGVsU2VydmljZSIsImluaXQiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJtU2V0dGluZ3MiLCJzZXR0aW5ncyIsIm9GYWN0b3J5IiwiZmFjdG9yeSIsImFCdW5kbGVzIiwiYnVuZGxlcyIsImNvbmNhdCIsImVuaGFuY2VJMThuIiwibWFwIiwidkkxOG4iLCJpc0EiLCJnZXRSZXNvdXJjZUJ1bmRsZSIsImJ1bmRsZU5hbWUiLCJyZXBsYWNlIiwib1Jlc291cmNlTW9kZWwiLCJSZXNvdXJjZU1vZGVsIiwiZW5oYW5jZVdpdGgiLCJzbGljZSIsImFzeW5jIiwic2NvcGVUeXBlIiwib0NvbXBvbmVudCIsInNjb3BlT2JqZWN0Iiwic2V0TW9kZWwiLCJtb2RlbE5hbWUiLCJpbml0UHJvbWlzZSIsIlByb21pc2UiLCJhbGwiLCJfcEVuaGFuY2VkIiwicmVzb2x2ZSIsInRoZW4iLCJvQnVuZGxlIiwiX19idW5kbGUiLCJnZXRSZXNvdXJjZU1vZGVsIiwiZ2V0SW50ZXJmYWNlIiwiZXhpdCIsInJlbW92ZUdsb2JhbEluc3RhbmNlIiwiU2VydmljZSIsIlJlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeSIsIl9vSW5zdGFuY2VzIiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJzS2V5IiwiZ2V0SWQiLCJqb2luIiwiT2JqZWN0IiwiYXNzaWduIiwiU2VydmljZUZhY3RvcnkiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC9mZS9jb3JlL1Jlc291cmNlTW9kZWxcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IFNlcnZpY2UgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xudHlwZSBSZXNvdXJjZU1vZGVsU2VydmljZVNldHRpbmdzID0ge1xuXHRidW5kbGVzOiBSZXNvdXJjZUJ1bmRsZVtdO1xuXHRlbmhhbmNlSTE4bjogc3RyaW5nW107XG59O1xuZXhwb3J0IGNsYXNzIFJlc291cmNlTW9kZWxTZXJ2aWNlIGV4dGVuZHMgU2VydmljZTxSZXNvdXJjZU1vZGVsU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlITogUHJvbWlzZTx0aGlzPjtcblxuXHRvRmFjdG9yeSE6IFJlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeTtcblxuXHRvUmVzb3VyY2VNb2RlbCE6IFJlc291cmNlTW9kZWw7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXHRcdGNvbnN0IG1TZXR0aW5ncyA9IG9Db250ZXh0LnNldHRpbmdzO1xuXHRcdHRoaXMub0ZhY3RvcnkgPSBvQ29udGV4dC5mYWN0b3J5O1xuXG5cdFx0Ly8gV2hlbiBlbmhhbmNpbmcgaTE4biBrZXlzIHRoZSB2YWx1ZSBpbiB0aGUgbGFzdCByZXNvdXJjZSBidW5kbGUgdGFrZXMgcHJlY2VkZW5jZVxuXHRcdC8vIGhlbmNlIGFycmFuZ2UgdmFyaW91cyByZXNvdXJjZSBidW5kbGVzIHNvIHRoYXQgZW5oYW5jZUkxOG4gcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGlzIHRoZSBsYXN0LlxuXHRcdC8vIFRoZSBmb2xsb3dpbmcgb3JkZXIgaXMgdXNlZCA6XG5cdFx0Ly8gMS4gc2FwLmZlIGJ1bmRsZSAtIHNhcC5mZS5jb3JlLm1lc3NhZ2VidW5kbGUgKHBhc3NlZCB3aXRoIG1TZXR0aW5ncy5idW5kbGVzKVxuXHRcdC8vIDIuIHNhcC5mZSBidW5kbGUgLSBzYXAuZmUudGVtcGxhdGVzLm1lc3NhZ2VidW5kbGUgKHBhc3NlZCB3aXRoIG1TZXR0aW5ncy5idW5kbGVzKVxuXHRcdC8vIDMuIE11bHRpcGxlIGJ1bmRsZXMgcGFzc2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiBhcyBwYXJ0IG9mIGVuaGFuY2VJMThuXG5cdFx0Y29uc3QgYUJ1bmRsZXMgPSBtU2V0dGluZ3MuYnVuZGxlcy5jb25jYXQobVNldHRpbmdzLmVuaGFuY2VJMThuIHx8IFtdKS5tYXAoZnVuY3Rpb24gKHZJMThuOiBSZXNvdXJjZU1vZGVsIHwgc3RyaW5nKSB7XG5cdFx0XHQvLyBpZiB2YWx1ZSBwYXNzZWQgZm9yIGVuaGFuY2VJMThuIGlzIGEgUmVzb3VyY2UgTW9kZWwsIHJldHVybiB0aGUgYXNzb2NpYXRlZCBidW5kbGVcblx0XHRcdC8vIGVsc2UgdGhlIHZhbHVlIGlzIGEgYnVuZGxlVXJsLCByZXR1cm4gUmVzb3VyY2UgQnVuZGxlIGNvbmZpZ3VyYXRpb24gc28gdGhhdCBhIGJ1bmRsZSBjYW4gYmUgY3JlYXRlZFxuXHRcdFx0cmV0dXJuIHR5cGVvZiAodkkxOG4gYXMgQmFzZU9iamVjdCkuaXNBID09PSBcImZ1bmN0aW9uXCIgJiYgKHZJMThuIGFzIEJhc2VPYmplY3QpLmlzQShcInNhcC51aS5tb2RlbC5yZXNvdXJjZS5SZXNvdXJjZU1vZGVsXCIpXG5cdFx0XHRcdD8gKCh2STE4biBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpIGFzIFJlc291cmNlQnVuZGxlKVxuXHRcdFx0XHQ6IHsgYnVuZGxlTmFtZTogKHZJMThuIGFzIHN0cmluZykucmVwbGFjZSgvXFwvL2csIFwiLlwiKSB9O1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5vUmVzb3VyY2VNb2RlbCA9IG5ldyBSZXNvdXJjZU1vZGVsKHtcblx0XHRcdGJ1bmRsZU5hbWU6IGFCdW5kbGVzWzBdLmJ1bmRsZU5hbWUsXG5cdFx0XHRlbmhhbmNlV2l0aDogYUJ1bmRsZXMuc2xpY2UoMSksXG5cdFx0XHRhc3luYzogdHJ1ZVxuXHRcdH0pO1xuXG5cdFx0aWYgKG9Db250ZXh0LnNjb3BlVHlwZSA9PT0gXCJjb21wb25lbnRcIikge1xuXHRcdFx0Y29uc3Qgb0NvbXBvbmVudCA9IG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXHRcdFx0b0NvbXBvbmVudC5zZXRNb2RlbCh0aGlzLm9SZXNvdXJjZU1vZGVsLCBtU2V0dGluZ3MubW9kZWxOYW1lKTtcblx0XHR9XG5cblx0XHR0aGlzLmluaXRQcm9taXNlID0gUHJvbWlzZS5hbGwoW1xuXHRcdFx0dGhpcy5vUmVzb3VyY2VNb2RlbC5nZXRSZXNvdXJjZUJ1bmRsZSgpIGFzIFByb21pc2U8UmVzb3VyY2VCdW5kbGU+LFxuXHRcdFx0KHRoaXMub1Jlc291cmNlTW9kZWwgYXMgeyBfcEVuaGFuY2VkPzogYm9vbGVhbiB9KS5fcEVuaGFuY2VkIHx8IFByb21pc2UucmVzb2x2ZSgpXG5cdFx0XSkudGhlbigob0J1bmRsZTogdW5rbm93bltdKSA9PiB7XG5cdFx0XHQodGhpcy5vUmVzb3VyY2VNb2RlbCBhcyB7IF9fYnVuZGxlPzogdW5rbm93biB9KS5fX2J1bmRsZSA9IG9CdW5kbGVbMF07XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9KTtcblx0fVxuXG5cdGdldFJlc291cmNlTW9kZWwoKTogUmVzb3VyY2VNb2RlbCB7XG5cdFx0cmV0dXJuIHRoaXMub1Jlc291cmNlTW9kZWw7XG5cdH1cblxuXHRnZXRJbnRlcmZhY2UoKTogdGhpcyB7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRleGl0KCk6IHZvaWQge1xuXHRcdC8vIERlcmVnaXN0ZXIgZ2xvYmFsIGluc3RhbmNlXG5cdFx0dGhpcy5vRmFjdG9yeS5yZW1vdmVHbG9iYWxJbnN0YW5jZSgpO1xuXHR9XG59XG5cbmNsYXNzIFJlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PFJlc291cmNlTW9kZWxTZXJ2aWNlU2V0dGluZ3M+IHtcblx0X29JbnN0YW5jZXM6IFJlY29yZDxzdHJpbmcsIFJlc291cmNlTW9kZWxTZXJ2aWNlPiA9IHt9O1xuXG5cdGFzeW5jIGNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8UmVzb3VyY2VNb2RlbFNlcnZpY2VTZXR0aW5ncz4pOiBQcm9taXNlPFJlc291cmNlTW9kZWxTZXJ2aWNlPiB7XG5cdFx0Y29uc3Qgc0tleSA9XG5cdFx0XHRgJHtvU2VydmljZUNvbnRleHQuc2NvcGVPYmplY3QuZ2V0SWQoKX1fJHtvU2VydmljZUNvbnRleHQuc2V0dGluZ3MuYnVuZGxlcy5qb2luKFwiLFwiKX1gICtcblx0XHRcdChvU2VydmljZUNvbnRleHQuc2V0dGluZ3MuZW5oYW5jZUkxOG4gPyBgLCR7b1NlcnZpY2VDb250ZXh0LnNldHRpbmdzLmVuaGFuY2VJMThuLmpvaW4oXCIsXCIpfWAgOiBcIlwiKTtcblxuXHRcdGlmICghdGhpcy5fb0luc3RhbmNlc1tzS2V5XSkge1xuXHRcdFx0dGhpcy5fb0luc3RhbmNlc1tzS2V5XSA9IG5ldyBSZXNvdXJjZU1vZGVsU2VydmljZShPYmplY3QuYXNzaWduKHsgZmFjdG9yeTogdGhpcyB9LCBvU2VydmljZUNvbnRleHQpKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fb0luc3RhbmNlc1tzS2V5XS5pbml0UHJvbWlzZTtcblx0fVxuXG5cdHJlbW92ZUdsb2JhbEluc3RhbmNlKCk6IHZvaWQge1xuXHRcdHRoaXMuX29JbnN0YW5jZXMgPSB7fTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZXNvdXJjZU1vZGVsU2VydmljZUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7TUFVYUEsb0JBQW9CO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUEsT0FPaENDLElBQUksR0FBSixnQkFBYTtNQUNaLE1BQU1D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
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXNvdXJjZU1vZGVsU2VydmljZSIsIl9TZXJ2aWNlIiwiX2luaGVyaXRzTG9vc2UiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiaW5pdCIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsIm1TZXR0aW5ncyIsInNldHRpbmdzIiwib0ZhY3RvcnkiLCJmYWN0b3J5IiwiYUJ1bmRsZXMiLCJidW5kbGVzIiwiY29uY2F0IiwiZW5oYW5jZUkxOG4iLCJtYXAiLCJ2STE4biIsImlzQSIsImdldFJlc291cmNlQnVuZGxlIiwiYnVuZGxlTmFtZSIsInJlcGxhY2UiLCJvUmVzb3VyY2VNb2RlbCIsIlJlc291cmNlTW9kZWwiLCJlbmhhbmNlV2l0aCIsInNsaWNlIiwiYXN5bmMiLCJzY29wZVR5cGUiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJzZXRNb2RlbCIsIm1vZGVsTmFtZSIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsImFsbCIsIl9wRW5oYW5jZWQiLCJyZXNvbHZlIiwidGhlbiIsIm9CdW5kbGUiLCJfX2J1bmRsZSIsImdldFJlc291cmNlTW9kZWwiLCJnZXRJbnRlcmZhY2UiLCJleGl0IiwicmVtb3ZlR2xvYmFsSW5zdGFuY2UiLCJTZXJ2aWNlIiwiUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5IiwiX1NlcnZpY2VGYWN0b3J5IiwiX3RoaXMiLCJfbGVuIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfb0luc3RhbmNlcyIsIl9wcm90bzIiLCJjcmVhdGVJbnN0YW5jZSIsIm9TZXJ2aWNlQ29udGV4dCIsInNLZXkiLCJnZXRJZCIsImpvaW4iLCJPYmplY3QiLCJhc3NpZ24iLCJTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL2ZlL2NvcmUvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IHR5cGUgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgU2VydmljZSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlXCI7XG5pbXBvcnQgU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG50eXBlIFJlc291cmNlTW9kZWxTZXJ2aWNlU2V0dGluZ3MgPSB7XG5cdGJ1bmRsZXM6IFJlc291cmNlQnVuZGxlW107XG5cdGVuaGFuY2VJMThuOiBzdHJpbmdbXTtcbn07XG5leHBvcnQgY2xhc3MgUmVzb3VyY2VNb2RlbFNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPFJlc291cmNlTW9kZWxTZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9GYWN0b3J5ITogUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5O1xuXG5cdG9SZXNvdXJjZU1vZGVsITogUmVzb3VyY2VNb2RlbDtcblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cdFx0Y29uc3QgbVNldHRpbmdzID0gb0NvbnRleHQuc2V0dGluZ3M7XG5cdFx0dGhpcy5vRmFjdG9yeSA9IG9Db250ZXh0LmZhY3Rvcnk7XG5cblx0XHQvLyBXaGVuIGVuaGFuY2luZyBpMThuIGtleXMgdGhlIHZhbHVlIGluIHRoZSBsYXN0IHJlc291cmNlIGJ1bmRsZSB0YWtlcyBwcmVjZWRlbmNlXG5cdFx0Ly8gaGVuY2UgYXJyYW5nZSB2YXJpb3VzIHJlc291cmNlIGJ1bmRsZXMgc28gdGhhdCBlbmhhbmNlSTE4biBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24gaXMgdGhlIGxhc3QuXG5cdFx0Ly8gVGhlIGZvbGxvd2luZyBvcmRlciBpcyB1c2VkIDpcblx0XHQvLyAxLiBzYXAuZmUgYnVuZGxlIC0gc2FwLmZlLmNvcmUubWVzc2FnZWJ1bmRsZSAocGFzc2VkIHdpdGggbVNldHRpbmdzLmJ1bmRsZXMpXG5cdFx0Ly8gMi4gc2FwLmZlIGJ1bmRsZSAtIHNhcC5mZS50ZW1wbGF0ZXMubWVzc2FnZWJ1bmRsZSAocGFzc2VkIHdpdGggbVNldHRpbmdzLmJ1bmRsZXMpXG5cdFx0Ly8gMy4gTXVsdGlwbGUgYnVuZGxlcyBwYXNzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFzIHBhcnQgb2YgZW5oYW5jZUkxOG5cblx0XHRjb25zdCBhQnVuZGxlcyA9IG1TZXR0aW5ncy5idW5kbGVzLmNvbmNhdChtU2V0dGluZ3MuZW5oYW5jZUkxOG4gfHwgW10pLm1hcChmdW5jdGlvbiAodkkxOG46IFJlc291cmNlTW9kZWwgfCBzdHJpbmcpIHtcblx0XHRcdC8vIGlmIHZhbHVlIHBhc3NlZCBmb3IgZW5oYW5jZUkxOG4gaXMgYSBSZXNvdXJjZSBNb2RlbCwgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIGJ1bmRsZVxuXHRcdFx0Ly8gZWxzZSB0aGUgdmFsdWUgaXMgYSBidW5kbGVVcmwsIHJldHVybiBSZXNvdXJjZSBCdW5kbGUgY29uZmlndXJhdGlvbiBzbyB0aGF0IGEgYnVuZGxlIGNhbiBiZSBjcmVhdGVkXG5cdFx0XHRyZXR1cm4gdHlwZW9mICh2STE4biBhcyBCYXNlT2JqZWN0KS5pc0EgPT09IFwiZnVuY3Rpb25cIiAmJiAodkkxOG4gYXMgQmFzZU9iamVjdCkuaXNBKFwic2FwLnVpLm1vZGVsLnJlc291cmNlLlJlc291cmNlTW9kZWxcIilcblx0XHRcdFx0PyAoKHZJMThuIGFzIFJlc291cmNlTW9kZWwpLmdldFJlc291cmNlQnVuZGxlKCkgYXMgUmVzb3VyY2VCdW5kbGUpXG5cdFx0XHRcdDogeyBidW5kbGVOYW1lOiAodkkxOG4gYXMgc3RyaW5nKS5yZXBsYWNlKC9cXC8vZywgXCIuXCIpIH07XG5cdFx0fSk7XG5cblx0XHR0aGlzLm9SZXNvdXJjZU1vZGVsID0gbmV3IFJlc291cmNlTW9kZWwoe1xuXHRcdFx0YnVuZGxlTmFtZTogYUJ1bmRsZXNbMF0uYnVuZGxlTmFtZSxcblx0XHRcdGVuaGFuY2VXaXRoOiBhQnVuZGxlcy5zbGljZSgxKSxcblx0XHRcdGFzeW5jOiB0cnVlXG5cdFx0fSk7XG5cblx0XHRpZiAob0NvbnRleHQuc2NvcGVUeXBlID09PSBcImNvbXBvbmVudFwiKSB7XG5cdFx0XHRjb25zdCBvQ29tcG9uZW50ID0gb0NvbnRleHQuc2NvcGVPYmplY3Q7XG5cdFx0XHRvQ29tcG9uZW50LnNldE1vZGVsKHRoaXMub1Jlc291cmNlTW9kZWwsIG1TZXR0aW5ncy5tb2RlbE5hbWUpO1xuXHRcdH1cblxuXHRcdHRoaXMuaW5pdFByb21pc2UgPSBQcm9taXNlLmFsbChbXG5cdFx0XHR0aGlzLm9SZXNvdXJjZU1vZGVsLmdldFJlc291cmNlQnVuZGxlKCkgYXMgUHJvbWlzZTxSZXNvdXJjZUJ1bmRsZT4sXG5cdFx0XHQodGhpcy5vUmVzb3VyY2VNb2RlbCBhcyB7IF9wRW5oYW5jZWQ/OiBib29sZWFuIH0pLl9wRW5oYW5jZWQgfHwgUHJvbWlzZS5yZXNvbHZlKClcblx0XHRdKS50aGVuKChvQnVuZGxlOiB1bmtub3duW10pID0+IHtcblx0XHRcdCh0aGlzLm9SZXNvdXJjZU1vZGVsIGFzIHsgX19idW5kbGU/OiB1bmtub3duIH0pLl9fYnVuZGxlID0gb0J1bmRsZVswXTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0UmVzb3VyY2VNb2RlbCgpOiBSZXNvdXJjZU1vZGVsIHtcblx0XHRyZXR1cm4gdGhpcy5vUmVzb3VyY2VNb2RlbDtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0Ly8gRGVyZWdpc3RlciBnbG9iYWwgaW5zdGFuY2Vcblx0XHR0aGlzLm9GYWN0b3J5LnJlbW92ZUdsb2JhbEluc3RhbmNlKCk7XG5cdH1cbn1cblxuY2xhc3MgUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8UmVzb3VyY2VNb2RlbFNlcnZpY2VTZXR0aW5ncz4ge1xuXHRfb0luc3RhbmNlczogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNb2RlbFNlcnZpY2U+ID0ge307XG5cblx0YXN5bmMgY3JlYXRlSW5zdGFuY2Uob1NlcnZpY2VDb250ZXh0OiBTZXJ2aWNlQ29udGV4dDxSZXNvdXJjZU1vZGVsU2VydmljZVNldHRpbmdzPik6IFByb21pc2U8UmVzb3VyY2VNb2RlbFNlcnZpY2U+IHtcblx0XHRjb25zdCBzS2V5ID1cblx0XHRcdGAke29TZXJ2aWNlQ29udGV4dC5zY29wZU9iamVjdC5nZXRJZCgpfV8ke29TZXJ2aWNlQ29udGV4dC5zZXR0aW5ncy5idW5kbGVzLmpvaW4oXCIsXCIpfWAgK1xuXHRcdFx0KG9TZXJ2aWNlQ29udGV4dC5zZXR0aW5ncy5lbmhhbmNlSTE4biA/IGAsJHtvU2VydmljZUNvbnRleHQuc2V0dGluZ3MuZW5oYW5jZUkxOG4uam9pbihcIixcIil9YCA6IFwiXCIpO1xuXG5cdFx0aWYgKCF0aGlzLl9vSW5zdGFuY2VzW3NLZXldKSB7XG5cdFx0XHR0aGlzLl9vSW5zdGFuY2VzW3NLZXldID0gbmV3IFJlc291cmNlTW9kZWxTZXJ2aWNlKE9iamVjdC5hc3NpZ24oeyBmYWN0b3J5OiB0aGlzIH0sIG9TZXJ2aWNlQ29udGV4dCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLl9vSW5zdGFuY2VzW3NLZXldLmluaXRQcm9taXNlO1xuXHR9XG5cblx0cmVtb3ZlR2xvYmFsSW5zdGFuY2UoKTogdm9pZCB7XG5cdFx0dGhpcy5fb0luc3RhbmNlcyA9IHt9O1xuXHR9XG59XG5cbmV4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