@sapui5/sap.fe.core 1.124.2 → 1.126.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 (300) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +5 -1
  3. package/src/sap/fe/core/ActionRuntime.js +2 -2
  4. package/src/sap/fe/core/ActionRuntime.ts +4 -4
  5. package/src/sap/fe/core/AppComponent.js +2 -2
  6. package/src/sap/fe/core/AppComponent.ts +1 -1
  7. package/src/sap/fe/core/AppStateHandler.js +2 -2
  8. package/src/sap/fe/core/AppStateHandler.ts +1 -1
  9. package/src/sap/fe/core/BaseController.js +2 -2
  10. package/src/sap/fe/core/BaseController.ts +1 -1
  11. package/src/sap/fe/core/CommonUtils.js +3 -3
  12. package/src/sap/fe/core/CommonUtils.ts +12 -15
  13. package/src/sap/fe/core/ExtensionAPI.js +2 -2
  14. package/src/sap/fe/core/ExtensionAPI.ts +4 -3
  15. package/src/sap/fe/core/PageController.js +2 -2
  16. package/src/sap/fe/core/PageController.ts +1 -1
  17. package/src/sap/fe/core/ResourceModel.js +2 -2
  18. package/src/sap/fe/core/ResourceModel.ts +1 -1
  19. package/src/sap/fe/core/ReuseComponent.js +172 -0
  20. package/src/sap/fe/core/ReuseComponent.ts +165 -0
  21. package/src/sap/fe/core/TemplateComponent.js +2 -2
  22. package/src/sap/fe/core/TemplateComponent.ts +5 -1
  23. package/src/sap/fe/core/TemplateModel.js +2 -2
  24. package/src/sap/fe/core/TemplateModel.ts +1 -1
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +92 -6
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +90 -10
  27. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -1
  29. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +30 -3
  30. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +28 -4
  31. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +10 -16
  32. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +19 -16
  33. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +3 -3
  34. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +5 -5
  35. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +2 -2
  36. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +1 -1
  37. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +17 -5
  38. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +14 -6
  39. package/src/sap/fe/core/controllerextensions/ContextSharing.js +2 -2
  40. package/src/sap/fe/core/controllerextensions/ContextSharing.ts +1 -1
  41. package/src/sap/fe/core/controllerextensions/EditFlow.js +57 -43
  42. package/src/sap/fe/core/controllerextensions/EditFlow.ts +61 -46
  43. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
  44. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -11
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +8 -16
  47. package/src/sap/fe/core/controllerextensions/InternalRouting.js +10 -7
  48. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +5 -5
  49. package/src/sap/fe/core/controllerextensions/KPIManagement.js +22 -18
  50. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +28 -23
  51. package/src/sap/fe/core/controllerextensions/MessageHandler.js +4 -4
  52. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +4 -1
  53. package/src/sap/fe/core/controllerextensions/PageReady.js +21 -15
  54. package/src/sap/fe/core/controllerextensions/PageReady.ts +29 -20
  55. package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
  56. package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
  57. package/src/sap/fe/core/controllerextensions/Placeholder.js +12 -6
  58. package/src/sap/fe/core/controllerextensions/Placeholder.ts +15 -1
  59. package/src/sap/fe/core/controllerextensions/Recommendations.js +26 -8
  60. package/src/sap/fe/core/controllerextensions/Recommendations.ts +29 -3
  61. package/src/sap/fe/core/controllerextensions/Routing.js +5 -7
  62. package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
  63. package/src/sap/fe/core/controllerextensions/Share.js +4 -4
  64. package/src/sap/fe/core/controllerextensions/Share.ts +10 -6
  65. package/src/sap/fe/core/controllerextensions/SideEffects.js +20 -5
  66. package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -2
  67. package/src/sap/fe/core/controllerextensions/Telemetry.js +2 -2
  68. package/src/sap/fe/core/controllerextensions/Telemetry.ts +1 -1
  69. package/src/sap/fe/core/controllerextensions/ViewState.js +79 -81
  70. package/src/sap/fe/core/controllerextensions/ViewState.ts +117 -105
  71. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +3 -3
  72. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +1 -1
  73. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +2 -2
  75. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +17 -8
  76. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +8 -2
  77. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +10 -9
  79. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +15 -10
  80. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +2 -2
  81. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +1 -1
  82. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +130 -158
  83. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +240 -275
  84. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +2 -2
  85. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +1 -1
  86. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +46 -28
  87. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +60 -32
  88. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +2 -2
  89. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -1
  90. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +2 -2
  91. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +27 -3
  92. package/src/sap/fe/core/controls/CommandExecution.js +2 -2
  93. package/src/sap/fe/core/controls/CommandExecution.ts +2 -2
  94. package/src/sap/fe/core/controls/ComponentLoader.js +3 -3
  95. package/src/sap/fe/core/controls/ComponentLoader.ts +2 -2
  96. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +3 -3
  97. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +2 -2
  98. package/src/sap/fe/core/controls/EventDelegateHook.js +2 -2
  99. package/src/sap/fe/core/controls/EventDelegateHook.ts +2 -2
  100. package/src/sap/fe/core/controls/FormElementWrapper.js +51 -6
  101. package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -2
  102. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +3 -3
  103. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +3 -3
  104. package/src/sap/fe/core/converters/ConverterContext.js +4 -2
  105. package/src/sap/fe/core/converters/ConverterContext.ts +5 -2
  106. package/src/sap/fe/core/converters/ManifestSettings.js +8 -2
  107. package/src/sap/fe/core/converters/ManifestSettings.ts +25 -3
  108. package/src/sap/fe/core/converters/ManifestWrapper.js +12 -3
  109. package/src/sap/fe/core/converters/ManifestWrapper.ts +11 -1
  110. package/src/sap/fe/core/converters/MetaModelConverter.js +7 -6
  111. package/src/sap/fe/core/converters/MetaModelConverter.ts +6 -2
  112. package/src/sap/fe/core/converters/annotations/DataField.js +56 -16
  113. package/src/sap/fe/core/converters/annotations/DataField.ts +74 -25
  114. package/src/sap/fe/core/converters/common/AnnotationConverter.js +19 -18
  115. package/src/sap/fe/core/converters/controls/Common/Action.js +5 -5
  116. package/src/sap/fe/core/converters/controls/Common/Action.ts +14 -14
  117. package/src/sap/fe/core/converters/controls/Common/Chart.js +40 -7
  118. package/src/sap/fe/core/converters/controls/Common/Chart.ts +56 -20
  119. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +8 -11
  120. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +23 -27
  121. package/src/sap/fe/core/converters/controls/Common/Form.js +10 -3
  122. package/src/sap/fe/core/converters/controls/Common/Form.ts +13 -4
  123. package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -2
  124. package/src/sap/fe/core/converters/controls/Common/KPI.ts +6 -2
  125. package/src/sap/fe/core/converters/controls/Common/Table.js +137 -48
  126. package/src/sap/fe/core/converters/controls/Common/Table.ts +174 -52
  127. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +73 -21
  128. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +91 -20
  129. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +4 -4
  130. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +2 -2
  131. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +2 -2
  132. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +2 -2
  133. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -3
  134. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +1 -1
  135. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -16
  136. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +18 -17
  137. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +2 -2
  138. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +1 -1
  139. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +9 -9
  140. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +12 -12
  141. package/src/sap/fe/core/converters/templates/ListReportConverter.js +13 -7
  142. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -5
  143. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +9 -73
  144. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +4 -74
  145. package/src/sap/fe/core/designtime/AppComponent.designtime.js +5 -10
  146. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +3 -12
  147. package/src/sap/fe/core/formatters/CriticalityFormatter.js +4 -7
  148. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +3 -3
  149. package/src/sap/fe/core/formatters/FiscalFormat.js +5 -3
  150. package/src/sap/fe/core/formatters/FiscalFormat.ts +4 -2
  151. package/src/sap/fe/core/formatters/StandardFormatter.js +2 -2
  152. package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
  153. package/src/sap/fe/core/fpm/Component.js +3 -3
  154. package/src/sap/fe/core/fpm/Component.ts +3 -3
  155. package/src/sap/fe/core/fpm/manifest.json +1 -1
  156. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +2 -2
  157. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +1 -1
  158. package/src/sap/fe/core/helpers/BindingHelper.js +2 -2
  159. package/src/sap/fe/core/helpers/BindingHelper.ts +2 -2
  160. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +2 -2
  161. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +2 -2
  162. package/src/sap/fe/core/helpers/DeleteHelper.js +7 -4
  163. package/src/sap/fe/core/helpers/DeleteHelper.ts +9 -3
  164. package/src/sap/fe/core/helpers/MetaModelFunction.js +5 -5
  165. package/src/sap/fe/core/helpers/MetaModelFunction.ts +2 -2
  166. package/src/sap/fe/core/helpers/MetaPath.js +9 -3
  167. package/src/sap/fe/core/helpers/MetaPath.ts +8 -2
  168. package/src/sap/fe/core/helpers/ModelHelper.js +149 -3
  169. package/src/sap/fe/core/helpers/ModelHelper.ts +202 -6
  170. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +3 -3
  171. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +2 -2
  172. package/src/sap/fe/core/helpers/TitleHelper.js +4 -4
  173. package/src/sap/fe/core/helpers/TitleHelper.ts +4 -4
  174. package/src/sap/fe/core/library.js +4 -4
  175. package/src/sap/fe/core/library.ts +2 -1
  176. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +11 -3
  177. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +10 -2
  178. package/src/sap/fe/core/messagebundle.properties +8 -57
  179. package/src/sap/fe/core/messagebundle_ar.properties +2 -0
  180. package/src/sap/fe/core/messagebundle_bg.properties +2 -0
  181. package/src/sap/fe/core/messagebundle_ca.properties +2 -0
  182. package/src/sap/fe/core/messagebundle_cnr.properties +2 -0
  183. package/src/sap/fe/core/messagebundle_cs.properties +2 -0
  184. package/src/sap/fe/core/messagebundle_cy.properties +4 -2
  185. package/src/sap/fe/core/messagebundle_da.properties +2 -0
  186. package/src/sap/fe/core/messagebundle_de.properties +2 -0
  187. package/src/sap/fe/core/messagebundle_el.properties +2 -0
  188. package/src/sap/fe/core/messagebundle_en.properties +6 -57
  189. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  190. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -36
  191. package/src/sap/fe/core/messagebundle_es.properties +2 -0
  192. package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
  193. package/src/sap/fe/core/messagebundle_et.properties +2 -0
  194. package/src/sap/fe/core/messagebundle_fi.properties +2 -0
  195. package/src/sap/fe/core/messagebundle_fr.properties +2 -0
  196. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  197. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  198. package/src/sap/fe/core/messagebundle_hr.properties +2 -0
  199. package/src/sap/fe/core/messagebundle_hu.properties +3 -1
  200. package/src/sap/fe/core/messagebundle_id.properties +2 -0
  201. package/src/sap/fe/core/messagebundle_it.properties +2 -0
  202. package/src/sap/fe/core/messagebundle_iw.properties +3 -1
  203. package/src/sap/fe/core/messagebundle_ja.properties +2 -0
  204. package/src/sap/fe/core/messagebundle_kk.properties +2 -0
  205. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  206. package/src/sap/fe/core/messagebundle_lt.properties +2 -0
  207. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  208. package/src/sap/fe/core/messagebundle_mk.properties +2 -0
  209. package/src/sap/fe/core/messagebundle_ms.properties +2 -0
  210. package/src/sap/fe/core/messagebundle_nl.properties +2 -0
  211. package/src/sap/fe/core/messagebundle_no.properties +2 -0
  212. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  213. package/src/sap/fe/core/messagebundle_pt.properties +2 -0
  214. package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
  215. package/src/sap/fe/core/messagebundle_ro.properties +2 -0
  216. package/src/sap/fe/core/messagebundle_ru.properties +2 -0
  217. package/src/sap/fe/core/messagebundle_sh.properties +64 -62
  218. package/src/sap/fe/core/messagebundle_sk.properties +2 -0
  219. package/src/sap/fe/core/messagebundle_sl.properties +2 -0
  220. package/src/sap/fe/core/messagebundle_sr.properties +2 -0
  221. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  222. package/src/sap/fe/core/messagebundle_th.properties +2 -0
  223. package/src/sap/fe/core/messagebundle_tr.properties +2 -0
  224. package/src/sap/fe/core/messagebundle_uk.properties +3 -1
  225. package/src/sap/fe/core/messagebundle_vi.properties +2 -0
  226. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  227. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  228. package/src/sap/fe/core/operationsHelper.js +3 -3
  229. package/src/sap/fe/core/operationsHelper.ts +2 -2
  230. package/src/sap/fe/core/rootView/Fcl.controller.js +3 -3
  231. package/src/sap/fe/core/rootView/Fcl.controller.ts +2 -2
  232. package/src/sap/fe/core/rootView/NavContainer.controller.js +2 -2
  233. package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
  234. package/src/sap/fe/core/rootView/RootViewBaseController.js +114 -92
  235. package/src/sap/fe/core/rootView/RootViewBaseController.ts +120 -106
  236. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +2 -2
  237. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.ts +1 -1
  238. package/src/sap/fe/core/services/NavigationServiceFactory.js +6 -4
  239. package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -3
  240. package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
  241. package/src/sap/fe/core/services/RoutingServiceFactory.ts +1 -1
  242. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  243. package/src/sap/fe/core/services/ShellServicesFactory.ts +12 -2
  244. package/src/sap/fe/core/services/TelemetryServiceFactory.js +8 -2
  245. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +7 -1
  246. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +16 -9
  247. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +22 -11
  248. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +2 -2
  249. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
  250. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
  251. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  252. package/src/sap/fe/core/templating/ActionHelper.js +2 -2
  253. package/src/sap/fe/core/templating/ActionHelper.ts +2 -2
  254. package/src/sap/fe/core/templating/CommonFormatters.js +2 -2
  255. package/src/sap/fe/core/templating/CommonFormatters.ts +3 -3
  256. package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
  257. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  258. package/src/sap/fe/core/templating/DataFieldFormatters.js +4 -4
  259. package/src/sap/fe/core/templating/DataFieldFormatters.ts +2 -2
  260. package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -2
  261. package/src/sap/fe/core/templating/DataModelPathHelper.ts +2 -2
  262. package/src/sap/fe/core/templating/EntityTypeHelper.js +2 -2
  263. package/src/sap/fe/core/templating/EntityTypeHelper.ts +2 -2
  264. package/src/sap/fe/core/templating/FieldControlHelper.js +2 -2
  265. package/src/sap/fe/core/templating/FieldControlHelper.ts +2 -2
  266. package/src/sap/fe/core/templating/SemanticObjectHelper.js +2 -2
  267. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +2 -2
  268. package/src/sap/fe/core/templating/UIFormatters.js +7 -7
  269. package/src/sap/fe/core/templating/UIFormatters.ts +6 -6
  270. package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
  271. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +1 -1
  272. package/src/sap/fe/core/type/Email.js +2 -2
  273. package/src/sap/fe/core/type/Email.ts +1 -1
  274. package/src/sap/fe/core/type/FiscalDate.js +2 -2
  275. package/src/sap/fe/core/type/FiscalDate.ts +1 -1
  276. package/src/sap/fe/core/type/InputMask.js +124 -0
  277. package/src/sap/fe/core/type/InputMask.ts +131 -0
  278. package/ui5.yaml +19 -0
  279. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +0 -81
  280. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +0 -117
  281. package/src/sap/fe/core/helpers/AnnotationEnum.js +0 -33
  282. package/src/sap/fe/core/helpers/AnnotationEnum.ts +0 -21
  283. package/src/sap/fe/core/helpers/BindingToolkit.js +0 -1813
  284. package/src/sap/fe/core/helpers/BindingToolkit.ts +0 -2450
  285. package/src/sap/fe/core/helpers/ClassSupport.js +0 -584
  286. package/src/sap/fe/core/helpers/ClassSupport.ts +0 -697
  287. package/src/sap/fe/core/jsx-runtime/Fragment.js +0 -14
  288. package/src/sap/fe/core/jsx-runtime/Fragment.ts +0 -3
  289. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +0 -93
  290. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +0 -86
  291. package/src/sap/fe/core/jsx-runtime/jsx-control.js +0 -177
  292. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +0 -197
  293. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +0 -237
  294. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +0 -246
  295. package/src/sap/fe/core/jsx-runtime/jsx.js +0 -47
  296. package/src/sap/fe/core/jsx-runtime/jsx.ts +0 -71
  297. package/src/sap/fe/core/jsx-runtime/jsxs.js +0 -10
  298. package/src/sap/fe/core/jsx-runtime/jsxs.ts +0 -3
  299. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +0 -172
  300. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +0 -194
@@ -1,6 +1,7 @@
1
1
  import Log from "sap/base/Log";
2
2
  import type ResourceBundle from "sap/base/i18n/ResourceBundle";
3
3
  import type FlexibleColumnLayout from "sap/f/FlexibleColumnLayout";
4
+ import { defineUI5Class, usingExtension } from "sap/fe/base/ClassSupport";
4
5
  import type { FEView } from "sap/fe/core/BaseController";
5
6
  import BaseController from "sap/fe/core/BaseController";
6
7
  import CommonUtils from "sap/fe/core/CommonUtils";
@@ -9,7 +10,6 @@ import type TemplateComponent from "sap/fe/core/TemplateComponent";
9
10
  import { type NavigationToErrorPageResult } from "sap/fe/core/controllerextensions/MessageHandler";
10
11
  import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
11
12
  import ViewState from "sap/fe/core/controllerextensions/ViewState";
12
- import { defineUI5Class, usingExtension } from "sap/fe/core/helpers/ClassSupport";
13
13
  import { getRouteTargetNames } from "sap/fe/core/helpers/ManifestHelper";
14
14
  import SizeHelper from "sap/fe/core/helpers/SizeHelper";
15
15
  import type FclController from "sap/fe/core/rootView/Fcl.controller";
@@ -23,6 +23,7 @@ import HashChanger from "sap/ui/core/routing/HashChanger";
23
23
  import type { Route$MatchedEvent } from "sap/ui/core/routing/Route";
24
24
  import type Router from "sap/ui/core/routing/Router";
25
25
  import type Table from "sap/ui/mdc/Table";
26
+ import type CompositeBinding from "sap/ui/model/CompositeBinding";
26
27
  import type Context from "sap/ui/model/Context";
27
28
  import JSONModel from "sap/ui/model/json/JSONModel";
28
29
  import AnnotationHelper from "sap/ui/model/odata/v4/AnnotationHelper";
@@ -30,6 +31,7 @@ import type { ODataPropertyBinding$ChangeEvent } from "sap/ui/model/odata/v4/ODa
30
31
  import type ResourceModel from "sap/ui/model/resource/ResourceModel";
31
32
  import URI from "sap/ui/thirdparty/URI";
32
33
  import type AppComponent from "../AppComponent";
34
+ import Any from "../controls/Any";
33
35
 
34
36
  export type TitleInformation = {
35
37
  title?: string;
@@ -224,7 +226,7 @@ class RootViewBaseController extends BaseController {
224
226
  const oAppComponent = this.getAppComponent();
225
227
  this._scrollTablesToLastNavigatedItems();
226
228
  if (oAppComponent.getEnvironmentCapabilities().getCapabilities().UShell) {
227
- this._computeTitleHierarchy(oView);
229
+ this.computeTitleHierarchy(oView);
228
230
  }
229
231
  const bForceFocus = oAppComponent.getRouterProxy().isFocusForced();
230
232
  oAppComponent.getRouterProxy().setFocusForced(false); // reset
@@ -314,73 +316,83 @@ class RootViewBaseController extends BaseController {
314
316
  /**
315
317
  * Fetches the value of the HeaderInfo title for a given path.
316
318
  *
317
- * @param sPath The path to the entity
319
+ * @param path The path to the entity
318
320
  * @returns A promise containing the formatted title, or an empty string if no HeaderInfo title annotation is available
319
321
  */
320
- async _fetchTitleValue(sPath: string): Promise<string> {
321
- const oAppComponent = this.getAppComponent(),
322
- oModel = this.getView().getModel(),
323
- oMetaModel = oAppComponent.getMetaModel(),
324
- sMetaPath = oMetaModel.getMetaPath(sPath),
325
- oBindingViewContext = oModel.createBindingContext(sPath),
326
- sValueExpression = AnnotationHelper.format(
327
- oMetaModel.getObject(`${sMetaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value`),
328
- { context: oMetaModel.createBindingContext("/") }
329
- );
330
- if (!sValueExpression) {
322
+ async _fetchTitleValue(path: string): Promise<string> {
323
+ const appComponent = this.getAppComponent(),
324
+ model = this.getView().getModel(),
325
+ metaModel = appComponent.getMetaModel(),
326
+ metaPath = metaModel.getMetaPath(path),
327
+ bindingViewContext = model.createBindingContext(path),
328
+ headerInfoTitleValueAnnotation = metaModel.getObject(`${metaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value`),
329
+ valueExpression = AnnotationHelper.format(headerInfoTitleValueAnnotation, { context: metaModel.createBindingContext("/") });
330
+ if (!valueExpression) {
331
331
  return Promise.resolve("");
332
332
  }
333
- const sTextExpression = AnnotationHelper.format(
334
- oMetaModel.getObject(
335
- `${sMetaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@com.sap.vocabularies.Common.v1.Text`
333
+ if (headerInfoTitleValueAnnotation.$Function === "odata.concat") {
334
+ const anyObject = new Any({ any: valueExpression });
335
+ anyObject.setModel(model);
336
+ anyObject.setBindingContext(bindingViewContext);
337
+ const textBinding = anyObject.getBinding("any");
338
+ if (textBinding?.isA<CompositeBinding>("sap.ui.model.CompositeBinding")) {
339
+ await Promise.all(textBinding.getBindings().map((binding) => binding.requestValue?.()));
340
+ }
341
+ const infoTitle = anyObject.getAny();
342
+ anyObject.destroy();
343
+ return Promise.resolve(infoTitle as string);
344
+ }
345
+ const textExpression = AnnotationHelper.format(
346
+ metaModel.getObject(
347
+ `${metaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@com.sap.vocabularies.Common.v1.Text`
336
348
  ),
337
- { context: oMetaModel.createBindingContext("/") }
349
+ { context: metaModel.createBindingContext("/") }
338
350
  ),
339
- oPropertyContext = oMetaModel.getObject(`${sMetaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@`),
340
- aPromises: Promise<string>[] = [],
341
- oValueExpression = BindingParser.complexParser(sValueExpression),
342
- oPromiseForDisplayMode = new Promise(function (resolve: (value: string) => void) {
343
- const displayMode = CommonUtils.computeDisplayMode(oPropertyContext);
351
+ propertyContext = metaModel.getObject(`${metaPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value/$Path@`),
352
+ promises: Promise<string>[] = [],
353
+ parsedvalueExpression = BindingParser.complexParser(valueExpression),
354
+ promiseForDisplayMode = new Promise(function (resolve: (value: string) => void) {
355
+ const displayMode = CommonUtils.computeDisplayMode(propertyContext);
344
356
  resolve(displayMode);
345
357
  });
346
- aPromises.push(oPromiseForDisplayMode);
347
- const sValuePath = oValueExpression.parts ? oValueExpression.parts[0].path : oValueExpression.path,
348
- fnValueFormatter = oValueExpression.formatter,
349
- oValueBinding = oModel.bindProperty(sValuePath, oBindingViewContext, { $$groupId: "$auto.Heroes" });
350
- oValueBinding.initialize();
351
- const oPromiseForTitleValue = new Promise(function (resolve: (value: string) => void) {
352
- const fnChange = function (oEvent: ODataPropertyBinding$ChangeEvent): void {
353
- const sTargetValue = fnValueFormatter ? fnValueFormatter(oEvent.getSource().getValue()) : oEvent.getSource().getValue();
354
-
355
- oValueBinding.detachChange(fnChange);
356
- resolve(sTargetValue);
358
+ promises.push(promiseForDisplayMode);
359
+ const valuePath = parsedvalueExpression.parts ? parsedvalueExpression.parts[0].path : parsedvalueExpression.path,
360
+ fnValueFormatter = parsedvalueExpression.formatter,
361
+ valueBinding = model.bindProperty(valuePath, bindingViewContext, { $$groupId: "$auto.Heroes" });
362
+ valueBinding.initialize();
363
+ const promiseForTitleValue = new Promise(function (resolve: (value: string) => void) {
364
+ const fnChange = function (event: ODataPropertyBinding$ChangeEvent): void {
365
+ const targetValue = fnValueFormatter ? fnValueFormatter(event.getSource().getValue()) : event.getSource().getValue();
366
+
367
+ valueBinding.detachChange(fnChange);
368
+ resolve(targetValue);
357
369
  };
358
- oValueBinding.attachChange(fnChange);
370
+ valueBinding.attachChange(fnChange);
359
371
  });
360
- aPromises.push(oPromiseForTitleValue);
361
-
362
- if (sTextExpression) {
363
- const oTextExpression = BindingParser.complexParser(sTextExpression);
364
- let sTextPath = oTextExpression.parts ? oTextExpression.parts[0].path : oTextExpression.path;
365
- sTextPath = sValuePath.lastIndexOf("/") > -1 ? `${sValuePath.slice(0, sValuePath.lastIndexOf("/"))}/${sTextPath}` : sTextPath;
366
-
367
- const fnTextFormatter = oTextExpression.formatter,
368
- oTextBinding = oModel.bindProperty(sTextPath, oBindingViewContext, { $$groupId: "$auto.Heroes" });
369
- oTextBinding.initialize();
370
- const oPromiseForTitleText = new Promise(function (resolve: (description: string) => void) {
371
- const fnChange = function (oEvent: ODataPropertyBinding$ChangeEvent): void {
372
- const sTargetText = fnTextFormatter ? fnTextFormatter(oEvent.getSource().getValue()) : oEvent.getSource().getValue();
373
-
374
- oTextBinding.detachChange(fnChange);
375
- resolve(sTargetText);
372
+ promises.push(promiseForTitleValue);
373
+
374
+ if (textExpression) {
375
+ const parsedTextExpression = BindingParser.complexParser(textExpression);
376
+ let textPath = parsedTextExpression.parts ? parsedTextExpression.parts[0].path : parsedTextExpression.path;
377
+ textPath = valuePath.lastIndexOf("/") > -1 ? `${valuePath.slice(0, valuePath.lastIndexOf("/"))}/${textPath}` : textPath;
378
+
379
+ const fnTextFormatter = parsedTextExpression.formatter,
380
+ textBinding = model.bindProperty(textPath, bindingViewContext, { $$groupId: "$auto.Heroes" });
381
+ textBinding.initialize();
382
+ const promiseForTitleText = new Promise(function (resolve: (description: string) => void) {
383
+ const fnChange = function (event: ODataPropertyBinding$ChangeEvent): void {
384
+ const targetText = fnTextFormatter ? fnTextFormatter(event.getSource().getValue()) : event.getSource().getValue();
385
+
386
+ textBinding.detachChange(fnChange);
387
+ resolve(targetText);
376
388
  };
377
389
 
378
- oTextBinding.attachChange(fnChange);
390
+ textBinding.attachChange(fnChange);
379
391
  });
380
- aPromises.push(oPromiseForTitleText);
392
+ promises.push(promiseForTitleText);
381
393
  }
382
394
  try {
383
- const titleInfo: string[] = await Promise.all(aPromises);
395
+ const titleInfo: string[] = await Promise.all(promises);
384
396
  let formattedTitle = "";
385
397
  if (typeof titleInfo !== "string") {
386
398
  formattedTitle = this._formatTitle(titleInfo[0], titleInfo[1], titleInfo[2]);
@@ -397,7 +409,7 @@ class RootViewBaseController extends BaseController {
397
409
  *
398
410
  * @returns Decoded application-specific hash
399
411
  */
400
- _getAppSpecificHash(): string {
412
+ getAppSpecificHash(): string {
401
413
  // HashChanged isShellNavigationHashChanger
402
414
  const hashChanger = HashChanger.getInstance();
403
415
  return hashChanger.hrefForAppSpecificHash ? URI.decode(hashChanger.hrefForAppSpecificHash("")) : "#/";
@@ -426,7 +438,7 @@ class RootViewBaseController extends BaseController {
426
438
  const oMetaModel = this.getAppComponent().getMetaModel();
427
439
  const sEntityPath = oMetaModel.getMetaPath(sPath);
428
440
  const sTypeName = oMetaModel.getObject(`${sEntityPath}/@com.sap.vocabularies.UI.v1.HeaderInfo/TypeName`);
429
- const sAppSpecificHash = this._getAppSpecificHash();
441
+ const sAppSpecificHash = this.getAppSpecificHash();
430
442
  const sIntent = sAppSpecificHash + sPath.slice(1);
431
443
  return this._fetchTitleValue(sPath).then((sTitle: string) => {
432
444
  const oTitleInfo = this._computeTitleInfo(sTypeName, sTitle, sIntent);
@@ -485,84 +497,86 @@ class RootViewBaseController extends BaseController {
485
497
  /**
486
498
  * This function updates the shell title after each navigation.
487
499
  *
488
- * @param oView The current view
500
+ * @param view The current view
489
501
  * @returns A Promise that is resolved when the menu is filled properly
502
+ * @private
490
503
  */
491
- async _computeTitleHierarchy(oView: View): Promise<void> {
492
- const oAppComponent = this.getAppComponent(),
493
- oContext = oView.getBindingContext(),
494
- oCurrentPage = oView.getParent(),
495
- aTitleInformationPromises = [],
496
- sAppSpecificHash = this._getAppSpecificHash(),
497
- manifestAppSettings = oAppComponent.getManifestEntry("sap.app"),
498
- sAppTitle = manifestAppSettings.title || "",
499
- sAppSubTitle = manifestAppSettings.subTitle || "",
504
+ async computeTitleHierarchy(view: View): Promise<void> {
505
+ const appComponent = this.getAppComponent(),
506
+ context = view.getBindingContext(),
507
+ currentPage = view.getParent(),
508
+ titleInformationPromises = [],
509
+ appSpecificHash = this.getAppSpecificHash(),
510
+ manifestAppSettings = appComponent.getManifestEntry("sap.app"),
511
+ appTitle = manifestAppSettings.title || "",
512
+ appSubTitle = manifestAppSettings.subTitle || "",
500
513
  appIcon = manifestAppSettings.icon || "";
501
- let oPageTitleInformation: TitleInformation, sNewPath: string | undefined;
514
+ let pageTitleInformation: TitleInformation, newPath: string | undefined;
502
515
 
503
- if (oCurrentPage && (oCurrentPage as TemplateComponent)._getPageTitleInformation) {
504
- if (oContext) {
516
+ if (currentPage && (currentPage as TemplateComponent)._getPageTitleInformation) {
517
+ if (context) {
505
518
  // If the first page of the application is a LR, use the title and subtitle from the manifest
506
519
  if (this._getTargetTypeFromHash("") === "sap.fe.templates.ListReport") {
507
- aTitleInformationPromises.push(
508
- Promise.resolve(this._computeTitleInfo(sAppTitle, sAppSubTitle, sAppSpecificHash, appIcon))
509
- );
520
+ titleInformationPromises.push(Promise.resolve(this._computeTitleInfo(appTitle, appSubTitle, appSpecificHash, appIcon)));
510
521
  }
511
522
 
512
523
  // Then manage other pages
513
- sNewPath = oContext.getPath();
514
- const aPathParts = sNewPath.split("/");
515
- let sPath = "";
516
-
517
- aPathParts.shift(); // Remove the first segment (empty string) as it has been managed above
518
- aPathParts.pop(); // Remove the last segment as it corresponds to the current page and shouldn't appear in the menu
519
-
520
- aPathParts.forEach((sPathPart: string) => {
521
- sPath += `/${sPathPart}`;
522
- const oMetaModel = oAppComponent.getMetaModel(),
523
- sParameterPath = oMetaModel.getMetaPath(sPath),
524
- bIsParameterized = oMetaModel.getObject(`${sParameterPath}/@com.sap.vocabularies.Common.v1.ResultContext`);
525
- if (!bIsParameterized) {
526
- aTitleInformationPromises.push(this.getTitleInfoFromPath(sPath));
524
+ newPath = context.getPath();
525
+ const pathParts = newPath.split("/");
526
+ let path = "";
527
+
528
+ pathParts.shift(); // Remove the first segment (empty string) as it has been managed above
529
+ pathParts.pop(); // Remove the last segment as it corresponds to the current page and shouldn't appear in the menu
530
+ pathParts.forEach((pathPart: string) => {
531
+ path += `/${pathPart}`;
532
+ //if the associated target is not declared in the routes, we skip it
533
+ if (!appComponent.getRouter().getRouteInfoByHash(path)) {
534
+ return;
535
+ }
536
+ const metaModel = appComponent.getMetaModel(),
537
+ parameterPath = metaModel.getMetaPath(path),
538
+ isParameterized = metaModel.getObject(`${parameterPath}/@com.sap.vocabularies.Common.v1.ResultContext`);
539
+ if (!isParameterized) {
540
+ titleInformationPromises.push(this.getTitleInfoFromPath(path));
527
541
  }
528
542
  });
529
543
  }
530
544
 
531
545
  // Current page
532
- oPageTitleInformation = (oCurrentPage as TemplateComponent)._getPageTitleInformation();
533
- oPageTitleInformation = this._computeTitleInfo(
534
- oPageTitleInformation.title ?? "",
535
- oPageTitleInformation.subtitle ?? "",
536
- sAppSpecificHash + this._getHash()
546
+ pageTitleInformation = (currentPage as TemplateComponent)._getPageTitleInformation();
547
+ pageTitleInformation = this._computeTitleInfo(
548
+ pageTitleInformation.title ?? "",
549
+ pageTitleInformation.subtitle ?? "",
550
+ appSpecificHash + this._getHash()
537
551
  );
538
552
 
539
- if (oContext && sNewPath) {
540
- this._getTitleHierarchyCache()[sNewPath] = oPageTitleInformation;
553
+ if (context && newPath) {
554
+ this._getTitleHierarchyCache()[newPath] = pageTitleInformation;
541
555
  } else {
542
- this._getTitleHierarchyCache()[sAppSpecificHash] = oPageTitleInformation;
556
+ this._getTitleHierarchyCache()[appSpecificHash] = pageTitleInformation;
543
557
  }
544
558
  } else {
545
- aTitleInformationPromises.push(Promise.reject("Title information missing in HeaderInfo"));
559
+ titleInformationPromises.push(Promise.reject("Title information missing in HeaderInfo"));
546
560
  }
547
- return Promise.all(aTitleInformationPromises)
548
- .then((aTitleInfoHierarchy: TitleInformation[]): void => {
561
+ return Promise.all(titleInformationPromises)
562
+ .then((titleInfoHierarchy: TitleInformation[]): void => {
549
563
  // workaround for shell which is expecting all elements being of type string
550
- const aTitleInfoHierarchyShell = this._ensureHierarchyElementsAreStrings(aTitleInfoHierarchy),
551
- sTitle = oPageTitleInformation.title ?? "";
552
- aTitleInfoHierarchyShell.reverse();
553
- oAppComponent.getShellServices().setHierarchy(aTitleInfoHierarchyShell);
564
+ const titleInfoHierarchyShell = this._ensureHierarchyElementsAreStrings(titleInfoHierarchy),
565
+ title = pageTitleInformation.title ?? "";
566
+ titleInfoHierarchyShell.reverse();
567
+ appComponent.getShellServices().setHierarchy(titleInfoHierarchyShell);
554
568
 
555
- this._setShellMenuTitle(oAppComponent, sTitle, sAppTitle);
569
+ this._setShellMenuTitle(appComponent, title, appTitle);
556
570
  return;
557
571
  })
558
- .catch(function (sErrorMessage: unknown) {
559
- Log.error(sErrorMessage as string);
572
+ .catch(function (errorMessage: unknown) {
573
+ Log.error(errorMessage as string);
560
574
  })
561
575
  .finally(() => {
562
576
  this.bIsComputingTitleHierachy = false;
563
577
  })
564
- .catch(function (sErrorMessage: unknown) {
565
- Log.error(sErrorMessage as string);
578
+ .catch(function (errorMessage: unknown) {
579
+ Log.error(errorMessage as string);
566
580
  });
567
581
  }
568
582
 
@@ -62,7 +62,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
62
62
  }
63
63
  try {
64
64
  var _this$teamsIntegratio;
65
- return await ((_this$teamsIntegratio = this.teamsIntegration.helperService) === null || _this$teamsIntegratio === void 0 ? void 0 : _this$teamsIntegratio.enableMinimalContactsCollaboration(mail));
65
+ return await ((_this$teamsIntegratio = this.teamsIntegration.helperService) === null || _this$teamsIntegratio === void 0 ? void 0 : _this$teamsIntegratio.enableContactsCollaboration(mail));
66
66
  } catch {
67
67
  return undefined;
68
68
  }
@@ -142,4 +142,4 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/service/Service", "sap/ui/core/servi
142
142
  CollaborativeToolsServiceFactory.CollaborativeToolsServiceClass = CollaborativeToolsService;
143
143
  return CollaborativeToolsServiceFactory;
144
144
  }, false);
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiaW5pdCIsInRlYW1zSW50ZWdyYXRpb24iLCJpc0luaXRpYWxpemVkIiwiaW5pdFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldEludGVyZmFjZSIsImluaXRpYWxpemVNU1RlYW1zIiwiZGVmYXVsdCIsIlNlcnZpY2VDb250YWluZXJDbGFzcyIsImhlbHBlclNlcnZpY2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJpc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCIsImUiLCJMb2ciLCJpbmZvIiwiZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uIiwibWFpbCIsImVuYWJsZU1pbmltYWxDb250YWN0c0NvbGxhYm9yYXRpb24iLCJ1bmRlZmluZWQiLCJnZXRUZWFtQ29udGFjdFN0YXR1cyIsImVtYWlsIiwiZ2V0VGVhbXNDb250YWN0U3RhdHVzIiwiZ2V0VGVhbUNvbnRhY3RPcHRpb25zIiwiY29udGFjdE9wdGlvbnMiLCJnZXRUZWFtc0NvbnRhY3RDb2xsYWJPcHRpb25zIiwiZ2V0VGVhbUNvbnRhY3RPcHRpb24iLCJvcHRpb24iLCJjb250YWN0T3B0aW9uIiwiaSIsImxlbmd0aCIsImtleSIsImdldFRlYW1zQ29sbGFiT3B0aW9uc1ZpYVNoYXJlIiwicGFyYW1zIiwiZ2V0T3B0aW9ucyIsIlNlcnZpY2UiLCJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlRmFjdG9yeSIsImNyZWF0ZUluc3RhbmNlIiwic2VydmljZUNvbnRleHQiLCJjb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiU2VydmljZUZhY3RvcnkiLCJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlQ2xhc3MiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IHR5cGUge1xuXHRDb2xsYWJvcmF0aW9uT3B0aW9uUGFyYW1zLFxuXHRDb2xsYWJvcmF0aW9uT3B0aW9ucyxcblx0Q29udGFjdFN0YXR1cyxcblx0Q29udGFjdE9wdGlvbiBhcyBUZWFtc0NvbnRhY3RPcHRpb24sXG5cdGRlZmF1bHQgYXMgVGVhbXNIZWxwZXJTZXJ2aWNlXG59IGZyb20gXCJzYXAvc3VpdGUvdWkvY29tbW9ucy9jb2xsYWJvcmF0aW9uL1RlYW1zSGVscGVyU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2UgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcInR5cGVzL21ldGFtb2RlbF90eXBlc1wiO1xudHlwZSBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlU2V0dGluZ3MgPSB7fTtcbnR5cGUgVGVhbXNDb25uZWN0aW9uID0ge1xuXHRpc0luaXRpYWxpemVkOiBib29sZWFuO1xuXHRpc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZD86IGJvb2xlYW47XG5cdGhlbHBlclNlcnZpY2U/OiBUZWFtc0hlbHBlclNlcnZpY2U7XG5cdGNvbnRhY3RPcHRpb25zPzogVGVhbXNDb250YWN0T3B0aW9uW107XG59O1xuZXhwb3J0IGNsYXNzIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncz4ge1xuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZT47XG5cblx0dGVhbXNJbnRlZ3JhdGlvbiE6IFRlYW1zQ29ubmVjdGlvbjtcblxuXHRvRmFjdG9yeSE6IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5O1xuXG5cdGluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy50ZWFtc0ludGVncmF0aW9uID0ge1xuXHRcdFx0aXNJbml0aWFsaXplZDogZmFsc2Vcblx0XHR9O1xuXG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZU1TVGVhbXMoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHsgZGVmYXVsdDogU2VydmljZUNvbnRhaW5lckNsYXNzIH0gPSBhd2FpdCBpbXBvcnQoXCJzYXAvc3VpdGUvdWkvY29tbW9ucy9jb2xsYWJvcmF0aW9uL1NlcnZpY2VDb250YWluZXJcIik7XG5cblx0XHRcdGNvbnN0IGhlbHBlclNlcnZpY2UgPSBhd2FpdCBTZXJ2aWNlQ29udGFpbmVyQ2xhc3MuZ2V0U2VydmljZUFzeW5jKCk7XG5cdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCA9IHRydWU7XG5cdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZSA9IGhlbHBlclNlcnZpY2U7XG5cdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQgPVxuXHRcdFx0XHQvL2F3YWl0IGhlbHBlclNlcnZpY2UuaXNUZWFtc01vZGVBY3RpdmUoKSAmJiAvLyB0aGlzIGNoZWNrcyBmb3IgdXJsIHBhcmFtcyBhcHBTdGF0ZT1sZWFuJnNhcC1jb2xsYWJvcmF0aW9uLXRlYW1zPXRydWVcblx0XHRcdFx0dHlwZW9mIGhlbHBlclNlcnZpY2UuaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQgPT09IFwiZnVuY3Rpb25cIiAmJiBoZWxwZXJTZXJ2aWNlLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKCk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLmluZm8oXCJDb3VsZG4ndCBldmFsdWF0ZSB0aGUgc3VwcG9ydCBmb3IgY29udGFjdHMgY29sbGFib3JhdGlvbiBpbiBNUyBUZWFtc1wiKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uKG1haWw6IHN0cmluZyk6IFByb21pc2U8UG9wb3ZlciB8IHVuZGVmaW5lZD4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZW5hYmxlTWluaW1hbENvbnRhY3RzQ29sbGFib3JhdGlvbihtYWlsKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkID09PSB0cnVlO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFRlYW1Db250YWN0U3RhdHVzKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPENvbnRhY3RTdGF0dXNbXSB8IHVuZGVmaW5lZD4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBhd2FpdCB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZ2V0VGVhbXNDb250YWN0U3RhdHVzKGVtYWlsKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFRlYW1Db250YWN0T3B0aW9ucygpOiBQcm9taXNlPFRlYW1zQ29udGFjdE9wdGlvbltdIHwgdW5kZWZpbmVkPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHRpZiAoIXRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uY29udGFjdE9wdGlvbnMpIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5jb250YWN0T3B0aW9ucyA9IGF3YWl0IHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5oZWxwZXJTZXJ2aWNlPy5nZXRUZWFtc0NvbnRhY3RDb2xsYWJPcHRpb25zKCk7XG5cdFx0XHR9IGNhdGNoIHtcblx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5jb250YWN0T3B0aW9ucztcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtQ29udGFjdE9wdGlvbihvcHRpb246IFwiY2FsbFwiIHwgXCJjaGF0XCIgfCBcInZpZGVvQ2FsbFwiKTogUHJvbWlzZTxUZWFtc0NvbnRhY3RPcHRpb24gfCB1bmRlZmluZWQ+IHtcblx0XHRjb25zdCBjb250YWN0T3B0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0VGVhbUNvbnRhY3RPcHRpb25zKCk7XG5cdFx0bGV0IGNvbnRhY3RPcHRpb247XG5cdFx0aWYgKGNvbnRhY3RPcHRpb25zKSB7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRhY3RPcHRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChjb250YWN0T3B0aW9uc1tpXS5rZXkgPT09IG9wdGlvbikge1xuXHRcdFx0XHRcdGNvbnRhY3RPcHRpb24gPSBjb250YWN0T3B0aW9uc1tpXTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gY29udGFjdE9wdGlvbjtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtc0NvbGxhYk9wdGlvbnNWaWFTaGFyZShwYXJhbXM6IENvbGxhYm9yYXRpb25PcHRpb25QYXJhbXMpOiBQcm9taXNlPENvbGxhYm9yYXRpb25PcHRpb25zW10gfCB1bmRlZmluZWQ+IHtcblx0XHRpZiAoIXRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0luaXRpYWxpemVkKSB7XG5cdFx0XHRhd2FpdCB0aGlzLmluaXRpYWxpemVNU1RlYW1zKCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZ2V0T3B0aW9ucyhwYXJhbXMpO1xuXHR9XG59XG5cbmNsYXNzIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVNldHRpbmdzPiB7XG5cdHB1YmxpYyBzdGF0aWMgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUNsYXNzID0gQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZTtcblxuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShzZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVNldHRpbmdzPik6IFByb21pc2U8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZT4ge1xuXHRcdGNvbnN0IGNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UgPSBuZXcgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZShzZXJ2aWNlQ29udGV4dCk7XG5cdFx0cmV0dXJuIGNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UuaW5pdFByb21pc2U7XG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFtQmFBLHlCQUF5QjtJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBLE9BT3JDQyxJQUFJLEdBQUosZ0JBQWE7TUFDWixJQUFJLENBQUNDLGdCQUFnQixHQUFHO1FBQ3ZCQyxhQUFhLEVBQUU7TUFDaEIsQ0FBQztNQUVELElBQUksQ0FBQ0MsV0FBVyxHQUFHQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDekMsQ0FBQztJQUFBLE9BRURDLFlBQVksR0FBWix3QkFBMEM7TUFDekMsT0FBTyxJQUFJO0lBQ1osQ0FBQztJQUFBLE9BRWFDLGlCQUFpQixHQUEvQixtQ0FBaUQ7TUFDaEQsSUFBSTtRQUNILE1BQU07VUFBRUMsT0FBTyxFQUFFQztRQUFzQixDQUFDLEdBQUcsTUFBTSxvQkFBTyxxREFBcUQsQ0FBQztRQUU5RyxNQUFNQyxhQUFhLEdBQUcsTUFBTUQscUJBQXFCLENBQUNFLGVBQWUsRUFBRTtRQUNuRSxJQUFJLENBQUNWLGdCQUFnQixDQUFDQyxhQUFhLEdBQUcsSUFBSTtRQUMxQyxJQUFJLENBQUNELGdCQUFn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
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiaW5pdCIsInRlYW1zSW50ZWdyYXRpb24iLCJpc0luaXRpYWxpemVkIiwiaW5pdFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldEludGVyZmFjZSIsImluaXRpYWxpemVNU1RlYW1zIiwiZGVmYXVsdCIsIlNlcnZpY2VDb250YWluZXJDbGFzcyIsImhlbHBlclNlcnZpY2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJpc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCIsImUiLCJMb2ciLCJpbmZvIiwiZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uIiwibWFpbCIsImVuYWJsZUNvbnRhY3RzQ29sbGFib3JhdGlvbiIsInVuZGVmaW5lZCIsImdldFRlYW1Db250YWN0U3RhdHVzIiwiZW1haWwiLCJnZXRUZWFtc0NvbnRhY3RTdGF0dXMiLCJnZXRUZWFtQ29udGFjdE9wdGlvbnMiLCJjb250YWN0T3B0aW9ucyIsImdldFRlYW1zQ29udGFjdENvbGxhYk9wdGlvbnMiLCJnZXRUZWFtQ29udGFjdE9wdGlvbiIsIm9wdGlvbiIsImNvbnRhY3RPcHRpb24iLCJpIiwibGVuZ3RoIiwia2V5IiwiZ2V0VGVhbXNDb2xsYWJPcHRpb25zVmlhU2hhcmUiLCJwYXJhbXMiLCJnZXRPcHRpb25zIiwiU2VydmljZSIsIkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJzZXJ2aWNlQ29udGV4dCIsImNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UiLCJTZXJ2aWNlRmFjdG9yeSIsIkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VDbGFzcyJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBQb3BvdmVyIGZyb20gXCJzYXAvbS9Qb3BvdmVyXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENvbGxhYm9yYXRpb25PcHRpb25QYXJhbXMsXG5cdENvbGxhYm9yYXRpb25PcHRpb25zLFxuXHRDb250YWN0U3RhdHVzLFxuXHRDb250YWN0T3B0aW9uIGFzIFRlYW1zQ29udGFjdE9wdGlvbixcblx0ZGVmYXVsdCBhcyBUZWFtc0hlbHBlclNlcnZpY2Vcbn0gZnJvbSBcInNhcC9zdWl0ZS91aS9jb21tb25zL2NvbGxhYm9yYXRpb24vVGVhbXNIZWxwZXJTZXJ2aWNlXCI7XG5pbXBvcnQgU2VydmljZSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlXCI7XG5pbXBvcnQgU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwidHlwZXMvbWV0YW1vZGVsX3R5cGVzXCI7XG50eXBlIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncyA9IHt9O1xudHlwZSBUZWFtc0Nvbm5lY3Rpb24gPSB7XG5cdGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cdGlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkPzogYm9vbGVhbjtcblx0aGVscGVyU2VydmljZT86IFRlYW1zSGVscGVyU2VydmljZTtcblx0Y29udGFjdE9wdGlvbnM/OiBUZWFtc0NvbnRhY3RPcHRpb25bXTtcbn07XG5leHBvcnQgY2xhc3MgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZSBleHRlbmRzIFNlcnZpY2U8Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlITogUHJvbWlzZTxDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlPjtcblxuXHR0ZWFtc0ludGVncmF0aW9uITogVGVhbXNDb25uZWN0aW9uO1xuXG5cdG9GYWN0b3J5ITogQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3Rvcnk7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24gPSB7XG5cdFx0XHRpc0luaXRpYWxpemVkOiBmYWxzZVxuXHRcdH07XG5cblx0XHR0aGlzLmluaXRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2Uge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBpbml0aWFsaXplTVNUZWFtcygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgeyBkZWZhdWx0OiBTZXJ2aWNlQ29udGFpbmVyQ2xhc3MgfSA9IGF3YWl0IGltcG9ydChcInNhcC9zdWl0ZS91aS9jb21tb25zL2NvbGxhYm9yYXRpb24vU2VydmljZUNvbnRhaW5lclwiKTtcblxuXHRcdFx0Y29uc3QgaGVscGVyU2VydmljZSA9IGF3YWl0IFNlcnZpY2VDb250YWluZXJDbGFzcy5nZXRTZXJ2aWNlQXN5bmMoKTtcblx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0luaXRpYWxpemVkID0gdHJ1ZTtcblx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5oZWxwZXJTZXJ2aWNlID0gaGVscGVyU2VydmljZTtcblx0XHRcdHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCA9XG5cdFx0XHRcdC8vYXdhaXQgaGVscGVyU2VydmljZS5pc1RlYW1zTW9kZUFjdGl2ZSgpICYmIC8vIHRoaXMgY2hlY2tzIGZvciB1cmwgcGFyYW1zIGFwcFN0YXRlPWxlYW4mc2FwLWNvbGxhYm9yYXRpb24tdGVhbXM9dHJ1ZVxuXHRcdFx0XHR0eXBlb2YgaGVscGVyU2VydmljZS5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCA9PT0gXCJmdW5jdGlvblwiICYmIGhlbHBlclNlcnZpY2UuaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQoKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRMb2cuaW5mbyhcIkNvdWxkbid0IGV2YWx1YXRlIHRoZSBzdXBwb3J0IGZvciBjb250YWN0cyBjb2xsYWJvcmF0aW9uIGluIE1TIFRlYW1zXCIpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRNYWlsUG9wb3ZlckZyb21Nc1RlYW1zSW50ZWdyYXRpb24obWFpbDogc3RyaW5nKTogUHJvbWlzZTxQb3BvdmVyIHwgdW5kZWZpbmVkPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0cmV0dXJuIGF3YWl0IHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5oZWxwZXJTZXJ2aWNlPy5lbmFibGVDb250YWN0c0NvbGxhYm9yYXRpb24obWFpbCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdGFzeW5jIGlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCA9PT0gdHJ1ZTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtQ29udGFjdFN0YXR1cyhlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxDb250YWN0U3RhdHVzW10gfCB1bmRlZmluZWQ+IHtcblx0XHRpZiAoIXRoaXMudGVhbXNJbnRlZ3JhdGlvbi5pc0luaXRpYWxpemVkKSB7XG5cdFx0XHRhd2FpdCB0aGlzLmluaXRpYWxpemVNU1RlYW1zKCk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gYXdhaXQgdGhpcy50ZWFtc0ludGVncmF0aW9uLmhlbHBlclNlcnZpY2U/LmdldFRlYW1zQ29udGFjdFN0YXR1cyhlbWFpbCk7XG5cdFx0fSBjYXRjaCB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUZWFtQ29udGFjdE9wdGlvbnMoKTogUHJvbWlzZTxUZWFtc0NvbnRhY3RPcHRpb25bXSB8IHVuZGVmaW5lZD4ge1xuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmlzSW5pdGlhbGl6ZWQpIHtcblx0XHRcdGF3YWl0IHRoaXMuaW5pdGlhbGl6ZU1TVGVhbXMoKTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdGlmICghdGhpcy50ZWFtc0ludGVncmF0aW9uLmNvbnRhY3RPcHRpb25zKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHR0aGlzLnRlYW1zSW50ZWdyYXRpb24uY29udGFjdE9wdGlvbnMgPSBhd2FpdCB0aGlzLnRlYW1zSW50ZWdyYXRpb24uaGVscGVyU2VydmljZT8uZ2V0VGVhbXNDb250YWN0Q29sbGFiT3B0aW9ucygpO1xuXHRcdFx0fSBjYXRjaCB7XG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLnRlYW1zSW50ZWdyYXRpb24uY29udGFjdE9wdGlvbnM7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VGVhbUNvbnRhY3RPcHRpb24ob3B0aW9uOiBcImNhbGxcIiB8IFwiY2hhdFwiIHwgXCJ2aWRlb0NhbGxcIik6IFByb21pc2U8VGVhbXNDb250YWN0T3B0aW9uIHwgdW5kZWZpbmVkPiB7XG5cdFx0Y29uc3QgY29udGFjdE9wdGlvbnMgPSBhd2FpdCB0aGlzLmdldFRlYW1Db250YWN0T3B0aW9ucygpO1xuXHRcdGxldCBjb250YWN0T3B0aW9uO1xuXHRcdGlmIChjb250YWN0T3B0aW9ucykge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWN0T3B0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoY29udGFjdE9wdGlvbnNbaV0ua2V5ID09PSBvcHRpb24pIHtcblx0XHRcdFx0XHRjb250YWN0T3B0aW9uID0gY29udGFjdE9wdGlvbnNbaV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNvbnRhY3RPcHRpb247XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VGVhbXNDb2xsYWJPcHRpb25zVmlhU2hhcmUocGFyYW1zOiBDb2xsYWJvcmF0aW9uT3B0aW9uUGFyYW1zKTogUHJvbWlzZTxDb2xsYWJvcmF0aW9uT3B0aW9uc1tdIHwgdW5kZWZpbmVkPiB7XG5cdFx0aWYgKCF0aGlzLnRlYW1zSW50ZWdyYXRpb24uaXNJbml0aWFsaXplZCkge1xuXHRcdFx0YXdhaXQgdGhpcy5pbml0aWFsaXplTVNUZWFtcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy50ZWFtc0ludGVncmF0aW9uLmhlbHBlclNlcnZpY2U/LmdldE9wdGlvbnMocGFyYW1zKTtcblx0fVxufVxuXG5jbGFzcyBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncz4ge1xuXHRwdWJsaWMgc3RhdGljIENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VDbGFzcyA9IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2U7XG5cblx0YXN5bmMgY3JlYXRlSW5zdGFuY2Uoc2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VTZXR0aW5ncz4pOiBQcm9taXNlPENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2U+IHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlID0gbmV3IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2Uoc2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBjb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlLmluaXRQcm9taXNlO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJhQSx5QkFBeUI7SUFBQTtJQUFBO01BQUE7SUFBQTtJQUFBO0lBQUE7SUFBQSxPQU9yQ0MsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDQyxnQkFBZ0IsR0FBRztRQUN2QkMsYUFBYSxFQUFFO01BQ2hCLENBQUM7TUFFRCxJQUFJLENBQUNDLFdBQVcsR0FBR0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ3pDLENBQUM7SUFBQSxPQUVEQyxZQUFZLEdBQVosd0JBQTBDO01BQ3pDLE9BQU8sSUFBSTtJQUNaLENBQUM7SUFBQSxPQUVhQyxpQkFBaUIsR0FBL0IsbUNBQWlEO01BQ2hELElBQUk7UUFDSCxNQUFNO1VBQUVDLE9BQU8sRUFBRUM7UUFBc0IsQ0FBQyxHQUFHLE1BQU0sb0JBQU8scURBQXFELENBQUM7UUFFOUcsTUFBTUMsYUFBYSxHQUFHLE1BQU1ELHFCQUFxQixDQUFDRSxlQUFlLEVBQUU7UUFDbkUsSUFBSSxDQUFDVixnQkFBZ0IsQ0FBQ0MsYUFBYSxHQUFHLElBQUk7UUFDMUMsSUFBSSxDQUFDRCxnQkFBZ0IsQ0FBQ1MsYUFBYSxH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
@@ -56,7 +56,7 @@ export class CollaborativeToolsService extends Service<CollaborativeToolsService
56
56
  await this.initializeMSTeams();
57
57
  }
58
58
  try {
59
- return await this.teamsIntegration.helperService?.enableMinimalContactsCollaboration(mail);
59
+ return await this.teamsIntegration.helperService?.enableContactsCollaboration(mail);
60
60
  } catch {
61
61
  return undefined;
62
62
  }
@@ -74,7 +74,7 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
74
74
  * modified oTableEventParameters is returned; if an error occurs, an error object of type
75
75
  * {@link sap.fe.navigation.NavError} is returned
76
76
  */;
77
- _proto._processBeforeSmartLinkPopoverOpens = async function _processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData) {
77
+ _proto._processBeforeSmartLinkPopoverOpens = function _processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData) {
78
78
  return this.oNavHandler.processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData);
79
79
  }
80
80
 
@@ -116,8 +116,10 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
116
116
  * });
117
117
  *
118
118
  * </code>
119
- */;
120
- _proto.getAppStateKeyAndUrlParameters = async function getAppStateKeyAndUrlParameters(sSelectionVariant) {
119
+ */
120
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
121
+ ;
122
+ _proto.getAppStateKeyAndUrlParameters = function getAppStateKeyAndUrlParameters(sSelectionVariant) {
121
123
  return this.oNavHandler._getAppStateKeyAndUrlParameters(sSelectionVariant);
122
124
  }
123
125
 
@@ -332,4 +334,4 @@ sap.ui.define(["sap/fe/navigation/NavigationHandler", "sap/ui/core/service/Servi
332
334
  }(ServiceFactory);
333
335
  return NavigationServiceFactory;
334
336
  }, false);
335
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uU2VydmljZSIsImluaXQiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJvQ29tcG9uZW50Iiwic2NvcGVPYmplY3QiLCJvTmF2SGFuZGxlciIsIk5hdmlnYXRpb25IYW5kbGVyIiwic2V0TW9kZWwiLCJnZXRNb2RlbCIsImluaXRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleGl0IiwiZGVzdHJveSIsIm5hdmlnYXRlIiwic1NlbWFudGljT2JqZWN0Iiwic0FjdGlvbk5hbWUiLCJ2TmF2aWdhdGlvblBhcmFtZXRlcnMiLCJvSW5uZXJBcHBEYXRhIiwiZm5PbkVycm9yIiwib0V4dGVybmFsQXBwRGF0YSIsInNOYXZNb2RlIiwicGFyc2VOYXZpZ2F0aW9uIiwiX3Byb2Nlc3NCZWZvcmVTbWFydExpbmtQb3BvdmVyT3BlbnMiLCJvVGFibGVFdmVudFBhcmFtZXRlcnMiLCJzU2VsZWN0aW9uVmFyaWFudCIsIm1Jbm5lckFwcERhdGEiLCJwcm9jZXNzQmVmb3JlU21hcnRMaW5rUG9wb3Zlck9wZW5zIiwiZ2V0QXBwU3BlY2lmaWNIYXNoIiwiYXBwSGFzaCIsIl9nZXRBcHBTcGVjaWZpY0hhc2giLCJnZXRBcHBTdGF0ZUtleUFuZFVybFBhcmFtZXRlcnMiLCJfZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzIiwiZ2V0VGVjaG5pY2FsUGFyYW1ldGVycyIsInNldFRlY2huaWNhbFBhcmFtZXRlcnMiLCJhVGVjaG5pY2FsUGFyYW1ldGVycyIsIm9Nb2RlbCIsInN0b3JlSW5uZXJBcHBTdGF0ZUFzeW5jIiwiYkltbWVkaWF0ZUhhc2hSZXBsYWNlIiwiYlNraXBIYXNoUmVwbGFjZSIsInJlamVjdCIsInRoZW4iLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwicmVwbGFjZUhhc2giLCJzQXBwU3RhdGVLZXkiLCJyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleSIsInNBcHBIYXNoIiwiX3JlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwiZ2V0VXJsUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50IiwidlNlbGVjdGlvblZhcmlhbnQiLCJfZ2V0VVJMUGFyYW1ldGVyc0Zyb21TZWxlY3Rpb25WYXJpYW50Iiwic2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiIsIm9JblNlbGVjdGlvblZhcmlhbnQiLCJ0b0pTT05TdHJpbmciLCJvU2VsZWN0aW9uVmFyaWFudCIsIkpTT04iLCJwYXJzZSIsIm9YQXBwU3RhdGVPYmplY3QiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1JldHVybiIsIl9zYXZlQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwiYXBwU3RhdGVLZXkiLCJ1bmRlZmluZWQiLCJtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudCIsInZTZW1hbnRpY0F0dHJpYnV0ZXMiLCJpU3VwcHJlc3Npb25CZWhhdmlvciIsImNvbnN0cnVjdENvbnRleHRVcmwiLCJzRW50aXR5U2V0TmFtZSIsImdldEludGVyZmFjZSIsImdldElBcHBTdGF0ZUtleSIsIlNlcnZpY2UiLCJmbkdldEVtcHR5T2JqZWN0IiwiZm5HZXRQcm9taXNlIiwiZm5HZXRKUXVlcnlQcm9taXNlIiwib015RGVmZmVyZWQiLCJqUXVlcnkiLCJEZWZlcnJlZCIsInByb21pc2UiLCJmbkdldEVtcHR5U3RyaW5nIiwiTmF2aWdhdGlvblNlcnZpY2VzTW9jayIsImNyZWF0ZUVtcHR5QXBwU3RhdGUiLCJnZXRBcHBTdGF0ZSIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsIlNlcnZpY2VGYWN0b3J5IiwiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJvU2VydmljZUNvbnRleHQiLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJvU2VydmljZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5uZXJBcHBEYXRhIH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgTmF2aWdhdGlvbkhhbmRsZXIgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL05hdmlnYXRpb25IYW5kbGVyXCI7XG5pbXBvcnQgdHlwZSBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBTZXJ2aWNlIGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlL1NlcnZpY2VcIjtcbmltcG9ydCBTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZS9TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBqUXVlcnkgZnJvbSBcInNhcC91aS90aGlyZHBhcnR5L2pxdWVyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJ0eXBlcy9tZXRhbW9kZWxfdHlwZXNcIjtcblxudHlwZSBOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzID0ge307XG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2UgZXh0ZW5kcyBTZXJ2aWNlPE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+IHtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPHRoaXM+O1xuXG5cdG9OYXZIYW5kbGVyITogTmF2aWdhdGlvbkhhbmRsZXI7XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBvQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuXHRcdFx0b0NvbXBvbmVudCA9IG9Db250ZXh0ICYmIG9Db250ZXh0LnNjb3BlT2JqZWN0O1xuXG5cdFx0dGhpcy5vTmF2SGFuZGxlciA9IG5ldyBOYXZpZ2F0aW9uSGFuZGxlcihvQ29tcG9uZW50KTtcblx0XHR0aGlzLm9OYXZIYW5kbGVyLnNldE1vZGVsKG9Db21wb25lbnQuZ2V0TW9kZWwoKSk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGV4aXQoKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgYSBjcm9zcy1hcHAgbmF2aWdhdGlvbiBhZnRlciBzYXZpbmcgdGhlIGlubmVyIGFuZCB0aGUgY3Jvc3MtYXBwIHN0YXRlcy5cblx0ICpcblx0ICogQHBhcmFtIHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3Qgb2YgdGhlIHRhcmdldCBhcHBcblx0ICogQHBhcmFtIHNBY3Rpb25OYW1lIEFjdGlvbiBvZiB0aGUgdGFyZ2V0IGFwcFxuXHQgKiBAcGFyYW0gW3ZOYXZpZ2F0aW9uUGFyYW1ldGVyc10gTmF2aWdhdGlvbiBwYXJhbWV0ZXJzIGFzIGFuIG9iamVjdCB3aXRoIGtleS92YWx1ZSBwYWlycyBvciBhcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZlxuXHQgKiAgICAgICAgc3VjaCBhbiBvYmplY3QuIElmIHBhc3NlZCBhcyBhbiBvYmplY3QsIHRoZSBwcm9wZXJ0aWVzIGFyZSBub3QgY2hlY2tlZCBhZ2FpbnN0IHRoZSA8Y29kZT5Jc1BvdGVudGlhbFNlbnNpdGl2ZTwvY29kZT4gb3Jcblx0ICogICAgICAgIDxjb2RlPk1lYXN1cmU8L2NvZGU+IHR5cGUuXG5cdCAqIEBwYXJhbSBbb0lubmVyQXBwRGF0YV0gT2JqZWN0IGZvciBzdG9yaW5nIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGFwcFxuXHQgKiBAcGFyYW0gW2ZuT25FcnJvcl0gQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBuYXZpZ2F0aW9uIDxicj5cblx0ICogQHBhcmFtIFtvRXh0ZXJuYWxBcHBEYXRhXSBPYmplY3QgZm9yIHN0b3JpbmcgdGhlIHN0YXRlIHdoaWNoIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQgY29tcG9uZW50LlxuXHQgKiBAcGFyYW0gb0V4dGVybmFsQXBwRGF0YS52YWx1ZVRleHRzXG5cdCAqIEBwYXJhbSBvRXh0ZXJuYWxBcHBEYXRhLnByZXNlbnRhdGlvblZhcmlhbnRcblx0ICogQHBhcmFtIG9FeHRlcm5hbEFwcERhdGEuc2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcGFyYW0gW3NOYXZNb2RlXSBBcmd1bWVudCBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgRkxQLWNvbmZpZ3VyZWQgdGFyZ2V0IGZvciBvcGVuaW5nIGEgVVJMLiBJZiB1c2VkLCBvbmx5IHRoZVxuXHQgKiAgICAgICAgPGNvZGU+ZXhwbGFjZTwvY29kZT4gb3IgPGNvZGU+aW5wbGFjZTwvY29kZT4gdmFsdWVzIGFyZSBhbGxvd2VkLiBBbnkgb3RoZXIgdmFsdWUgd2lsbCBsZWFkIHRvIGFuIGV4Y2VwdGlvblxuXHQgKiAgICAgICAgPGNvZGU+TmF2aWdhdGlvbkhhbmRsZXIuSU5WQUxJRF9OQVZfTU9ERTwvY29kZT4uXG5cdCAqL1xuXHRuYXZpZ2F0ZShcblx0XHRzU2VtYW50aWNPYmplY3Q6IHN0cmluZyxcblx0XHRzQWN0aW9uTmFtZTogc3RyaW5nLFxuXHRcdHZOYXZpZ2F0aW9uUGFyYW1ldGVyczogc3RyaW5nIHwgb2JqZWN0LFxuXHRcdG9Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGEsXG5cdFx0Zm5PbkVycm9yPzogRnVuY3Rpb24sXG5cdFx0b0V4dGVybmFsQXBwRGF0YT86IHtcblx0XHRcdHZhbHVlVGV4dHM/OiBvYmplY3QgfCB1bmRlZmluZWQ7XG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50Pzogb2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudD86IG9iamVjdCB8IHVuZGVmaW5lZDtcblx0XHR9LFxuXHRcdHNOYXZNb2RlPzogc3RyaW5nXG5cdCk6IHZvaWQge1xuXHRcdC8vIFRPRE86IE5hdmlnYXRpb24gSGFuZGxlciBkb2VzIG5vdCBoYW5kbGUgbmF2aWdhdGlvbiB3aXRob3V0IGEgY29udGV4dFxuXHRcdC8vIGJ1dCBpbiB2NCBEYXRhRmllbGRGb3JJQk4gd2l0aCByZXF1aXJlc0NvbnRleHQgZmFsc2UgY2FuIHRyaWdnZXIgYSBuYXZpZ2F0aW9uIHdpdGhvdXQgYW55IGNvbnRleHRcblx0XHQvLyBUaGlzIHNob3VsZCBiZSBoYW5kbGVkXG5cdFx0dGhpcy5vTmF2SGFuZGxlci5uYXZpZ2F0ZShcblx0XHRcdHNTZW1hbnRpY09iamVjdCxcblx0XHRcdHNBY3Rpb25OYW1lLFxuXHRcdFx0dk5hdmlnYXRpb25QYXJhbWV0ZXJzLFxuXHRcdFx0b0lubmVyQXBwRGF0YSxcblx0XHRcdGZuT25FcnJvcixcblx0XHRcdG9FeHRlcm5hbEFwcERhdGEsXG5cdFx0XHRzTmF2TW9kZVxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIHRoZSBpbmNvbWluZyBVUkwgYW5kIHJldHVybnMgYSBQcm9taXNlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHdoaWNoIHJldHVybnMgdGhlXG5cdCAqIGV4dHJhY3RlZCBhcHAgc3RhdGUsIHRoZSBzdGFydHVwIHBhcmFtZXRlcnMsIGFuZCB0aGUgdHlwZSBvZiBuYXZpZ2F0aW9uIHdoZW4gZXhlY3V0aW9uIGlzIHN1Y2Nlc3NmdWwsXG5cdCAqL1xuXHRwYXJzZU5hdmlnYXRpb24oKTogalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucGFyc2VOYXZpZ2F0aW9uKCkgYXMgalF1ZXJ5LlByb21pc2U8dW5rbm93bltdPjtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm9jZXNzZXMgbmF2aWdhdGlvbi1yZWxhdGVkIHRhc2tzIHJlbGF0ZWQgdG8gYmVmb3JlUG9wb3Zlck9wZW5zIGV2ZW50IGhhbmRsaW5nIGZvciB0aGUgU21hcnRMaW5rIGNvbnRyb2wgYW5kIHJldHVybnMgYSBQcm9taXNlIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBUaGUgcGFyYW1ldGVycyBtYWRlIGF2YWlsYWJsZSBieSB0aGUgU21hcnRUYWJsZSBjb250cm9sIHdoZW4gdGhlIFNtYXJ0TGluayBjb250cm9sIGhhcyBiZWVuIGNsaWNrZWQsXG5cdCAqICAgICAgICBhbiBpbnN0YW5jZSBvZiBhIFBvcE92ZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBzU2VsZWN0aW9uVmFyaWFudCBTdHJpbmdpZmllZCBKU09OIG9iamVjdCBhcyByZXR1cm5lZCwgZm9yIGV4YW1wbGUsIGZyb20gZ2V0RGF0YVN1aXRlRm9ybWF0KCkgb2YgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIFttSW5uZXJBcHBEYXRhXSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwLiBJZiBwcm92aWRlZCwgb3BlbmluZyB0aGUgUG9wb3ZlciBpcyBkZWZlcnJlZCB1bnRpbCB0aGVcblx0ICogICAgICAgIGlubmVyIGFwcCBkYXRhIGlzIHNhdmVkIGluIGEgY29uc2lzdGVudCB3YXkuXG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIG1vZGlmaWVkIG9UYWJsZUV2ZW50UGFyYW1ldGVycyBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBlcnJvciBvYmplY3Qgb2YgdHlwZVxuXHQgKiAgICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBfcHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhcblx0XHRvVGFibGVFdmVudFBhcmFtZXRlcnM6IG9iamVjdCxcblx0XHRzU2VsZWN0aW9uVmFyaWFudDogc3RyaW5nLFxuXHRcdG1Jbm5lckFwcERhdGE/OiBJbm5lckFwcERhdGFcblx0KTogUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIucHJvY2Vzc0JlZm9yZVNtYXJ0TGlua1BvcG92ZXJPcGVucyhvVGFibGVFdmVudFBhcmFtZXRlcnMsIHNTZWxlY3Rpb25WYXJpYW50LCBtSW5uZXJBcHBEYXRhKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgQXBwIHNwZWNpZmljIGhhc2guXG5cdCAqXG5cdCAqIEBwYXJhbSBhcHBIYXNoIFRoZSBwYXRoIHN0cmluZ1xuXHQgKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgYmFzZSBwYXRoXG5cdCAqXG5cdCAqL1xuXHRhc3luYyBnZXRBcHBTcGVjaWZpY0hhc2goYXBwSGFzaDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3BlY2lmaWNIYXNoKGFwcEhhc2gpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFByb2Nlc3NlcyBzZWxlY3Rpb25WYXJpYW50IHN0cmluZyBhbmQgcmV0dXJucyBhIFByb21pc2Ugb2JqZWN0IChzZW1hbnRpY0F0dHJpYnV0ZXMgYW5kIEFwcFN0YXRlS2V5KS5cblx0ICpcblx0ICogQHBhcmFtIHNTZWxlY3Rpb25WYXJpYW50IFN0cmluZ2lmaWVkIEpTT04gb2JqZWN0XG5cdCAqIEByZXR1cm5zIEEgUHJvbWlzZSBvYmplY3QgdG8gbW9uaXRvciB3aGVuIGFsbCBhY3Rpb25zIGluIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW4gZXhlY3V0ZWQ7IGlmIHRoZSBleGVjdXRpb24gaXMgc3VjY2Vzc2Z1bCwgdGhlXG5cdCAqICAgICAgICAgIHNlbWFudGljQXR0cmlidXRlcyBhcyB3ZWxsIGFzIHRoZSBhcHBTdGF0ZUtleSBhcmUgcmV0dXJuZWQ7IGlmIGFuIGVycm9yIG9jY3VycywgYW4gZXJyb3Igb2JqZWN0IG9mIHR5cGVcblx0ICogICAgICAgICAge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLk5hdkVycm9yfSBpcyByZXR1cm5lZFxuXHQgKiA8YnI+XG5cdCAqIEBleGFtcGxlIDxjb2RlPlxuXHQgKlxuXHQgKiBcdFx0dmFyIG9TZWxlY3Rpb25WYXJpYW50ID0gbmV3IHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnQoKTtcblx0ICogXHRcdG9TZWxlY3Rpb25WYXJpYW50LmFkZFNlbGVjdE9wdGlvbihcIkNvbXBhbnlDb2RlXCIsIFwiSVwiLCBcIkVRXCIsIFwiMDAwMVwiKTtcblx0ICogXHRcdG9TZWxlY3Rpb25WYXJpYW50LmFkZFNlbGVjdE9wdGlvbihcIkN1c3RvbWVyXCIsIFwiSVwiLCBcIkVRXCIsIFwiQzAwMDFcIik7XG5cdCAqIFx0XHR2YXIgc1NlbGVjdGlvblZhcmlhbnQ9IG9TZWxlY3Rpb25WYXJpYW50LnRvSlNPTlN0cmluZygpO1xuXHQgKlxuXHQgKiBcdFx0dmFyIG9OYXZpZ2F0aW9uSGFuZGxlciA9IG5ldyBzYXAuZmUubmF2aWdhdGlvbi5OYXZpZ2F0aW9uSGFuZGxlcihvQ29udHJvbGxlcik7XG5cdCAqIFx0XHR2YXIgb1Byb21pc2VPYmplY3QgPSBvTmF2aWdhdGlvbkhhbmRsZXIuX2dldEFwcFN0YXRlS2V5QW5kVXJsUGFyYW1ldGVycyhzU2VsZWN0aW9uVmFyaWFudCk7XG5cdCAqXG5cdCAqIFx0XHRvUHJvbWlzZU9iamVjdC5kb25lKGZ1bmN0aW9uKG9TZW1hbnRpY0F0dHJpYnV0ZXMsIHNBcHBTdGF0ZUtleSl7XG5cdCAqIFx0XHRcdC8vIGhlcmUgeW91IGNhbiBhZGQgY29kaW5nIHRoYXQgc2hvdWxkIHJ1biBhZnRlciBhbGwgYXBwIHN0YXRlIGFuZCB0aGUgc2VtYW50aWMgYXR0cmlidXRlcyBoYXZlIGJlZW4gcmV0dXJuZWQuXG5cdCAqIFx0XHR9KTtcblx0ICpcblx0ICogXHRcdG9Qcm9taXNlT2JqZWN0LmZhaWwoZnVuY3Rpb24ob0Vycm9yKXtcblx0ICogXHRcdFx0Ly9zb21lIGVycm9yIGhhbmRsaW5nXG5cdCAqIFx0XHR9KTtcblx0ICpcblx0ICogPC9jb2RlPlxuXHQgKi9cblx0YXN5bmMgZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50OiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fZ2V0QXBwU3RhdGVLZXlBbmRVcmxQYXJhbWV0ZXJzKHNTZWxlY3Rpb25WYXJpYW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHJldHVybnMgQ29udGFpbmluZyB0aGUgdGVjaG5pY2FsIHBhcmFtZXRlcnMuXG5cdCAqL1xuXHRnZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk6IHN0cmluZ1tdIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5nZXRUZWNobmljYWxQYXJhbWV0ZXJzKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIFRlY2huaWNhbCBwYXJhbWV0ZXJzIHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBwYXNzZWQgdG8gdGhlXG5cdCAqIGFwcGxpY2F0aW9uLlxuXHQgKiBBcyBhIGRlZmF1bHQgc2FwLXN5c3RlbSwgc2FwLXVzaGVsbC1kZWZhdWx0ZWRQYXJhbWV0ZXJOYW1lcyBhbmQgaGNwQXBwbGljYXRpb25JZCBhcmUgY29uc2lkZXJlZCBhcyB0ZWNobmljYWwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIGFUZWNobmljYWxQYXJhbWV0ZXJzIExpc3Qgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIGJlIGNvbnNpZGVyZWQgYXMgdGVjaG5pY2FsIHBhcmFtZXRlcnMuIDxjb2RlPm51bGw8L2NvZGU+IG9yXG5cdCAqICAgICAgICA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IG1heSBiZSB1c2VkIHRvIHJlc2V0IHRoZSBjb21wbGV0ZSBsaXN0LlxuXHQgKi9cblx0c2V0VGVjaG5pY2FsUGFyYW1ldGVycyhhVGVjaG5pY2FsUGFyYW1ldGVyczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRUZWNobmljYWxQYXJhbWV0ZXJzKGFUZWNobmljYWxQYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBtb2RlbCB0aGF0IGlzIHVzZWQgZm9yIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIElmIHRoZSBtb2RlbCBpcyBub3Qgc2V0LCB0aGUgdW5uYW1lZCBjb21wb25lbnQgbW9kZWwgaXMgdXNlZCBmb3IgdGhlXG5cdCAqIHZlcmlmaWNhdGlvbiBvZiBzZW5zaXRpdmUgaW5mb3JtYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSBvTW9kZWwgTW9kZWwgRm9yIGNoZWNraW5nIHNlbnNpdGl2ZSBpbmZvcm1hdGlvblxuXHQgKi9cblx0c2V0TW9kZWwob01vZGVsOiBPRGF0YU1vZGVsKTogdm9pZCB7XG5cdFx0dGhpcy5vTmF2SGFuZGxlci5zZXRNb2RlbChvTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiAgICAgICAgc2V0IHRvIGZhbHNlIGlmIHlvdSBjYW5ub3QgcmVhY3QgdG8gdGhlIHJlc29sdXRpb24gb2YgdGhlIFByb21pc2UsIGZvciBleGFtcGxlLCB3aGVuIGNhbGxpbmcgdGhlIGJlZm9yZUxpbmtQcmVzc2VkIGV2ZW50XG5cdCAqIEBwYXJhbSBbYlNraXBIYXNoUmVwbGFjZV0gSWYgc2V0IHRvIHRydWUsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCBpbiB0aGUgc3RvcmVJbm5lckFwcFN0YXRlLiBBbHNvIHRoZSBiSW1tZWRpYXRlSGFzaFJlcGxhY2Vcblx0ICogXHRcdCAgd2lsbCBiZSBpZ25vcmVkLlxuXHQgKiBAcmV0dXJucyBBIFByb21pc2Ugb2JqZWN0IHRvIG1vbml0b3Igd2hlbiBhbGwgdGhlIGFjdGlvbnMgb2YgdGhlIGZ1bmN0aW9uIGhhdmUgYmVlbiBleGVjdXRlZDsgaWYgdGhlIGV4ZWN1dGlvbiBpcyBzdWNjZXNzZnVsLCB0aGVcblx0ICogICAgICAgICAgYXBwIHN0YXRlIGtleSBpcyByZXR1cm5lZDsgaWYgYW4gZXJyb3Igb2NjdXJzLCBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uTmF2RXJyb3J9IGlzXG5cdCAqICAgICAgICAgIHJldHVybmVkXG5cdCAqL1xuXHRhc3luYyBzdG9yZUlubmVyQXBwU3RhdGVBc3luYyhcblx0XHRtSW5uZXJBcHBEYXRhOiBJbm5lckFwcERhdGEsXG5cdFx0YkltbWVkaWF0ZUhhc2hSZXBsYWNlPzogYm9vbGVhbixcblx0XHRiU2tpcEhhc2hSZXBsYWNlPzogYm9vbGVhblxuXHQpOiBQcm9taXNlPHN0cmluZz4ge1xuXHRcdC8vIHNhZmVseSBjb252ZXJ0aW5nIEpRdWVycnkgZGVmZXJyZWQgdG8gRVM2IHByb21pc2Vcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cblx0XHRcdHRoaXMub05hdkhhbmRsZXIuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMobUlubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlLCBiU2tpcEhhc2hSZXBsYWNlKS50aGVuKHJlc29sdmUsIHJlamVjdClcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIFVSTCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgYXBwIHN0YXRlIGFuZCBzdG9yZXMgdGhlIGFwcCBzdGF0ZSBmb3IgbGF0ZXIgcmV0cmlldmFsLlxuXHQgKlxuXHQgKiBAcGFyYW0gbUlubmVyQXBwRGF0YSBPYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwXG5cdCAqIEBwYXJhbSBbYkltbWVkaWF0ZUhhc2hSZXBsYWNlXSBJZiBzZXQgdG8gZmFsc2UsIHRoZSBpbm5lciBhcHAgaGFzaCB3aWxsIG5vdCBiZSByZXBsYWNlZCB1bnRpbCBzdG9yaW5nIGlzIHN1Y2Nlc3NmdWw7IGRvIG5vdFxuXHQgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgYXBwU3RhdGVJZCBhbmQgYSBwcm9taXNlIG9iamVjdCB0byBtb25pdG9yIHdoZW4gYWxsIHRoZSBhY3Rpb25zIG9mIHRoZSBmdW5jdGlvbiBoYXZlIGJlZW5cblx0ICogZXhlY3V0ZWQ7IFBsZWFzZSBub3RlIHRoYXQgdGhlIGFwcFN0YXRlS2V5IG1heSBiZSB1bmRlZmluZWQgb3IgZW1wdHkuXG5cdCAqL1xuXHRzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGE6IElubmVyQXBwRGF0YSwgYkltbWVkaWF0ZUhhc2hSZXBsYWNlOiBib29sZWFuIHwgdW5kZWZpbmVkKTogb2JqZWN0IHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG1Jbm5lckFwcERhdGEsIGJJbW1lZGlhdGVIYXNoUmVwbGFjZSk7XG5cdH1cblxuXHQvKipcblx0ICogQ2hhbmdlcyB0aGUgVVJMIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBzQXBwU3RhdGVLZXkuIEFzIGFuIHJlYWN0aW9uIHJvdXRlIGNoYW5nZSBldmVudCB3aWxsIGJlIHRyaWdnZXJlZC5cblx0ICpcblx0ICogQHBhcmFtIHNBcHBTdGF0ZUtleSBUaGUgbmV3IGFwcCBzdGF0ZSBrZXkuXG5cdCAqL1xuXHRyZXBsYWNlSGFzaChzQXBwU3RhdGVLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMub05hdkhhbmRsZXIucmVwbGFjZUhhc2goc0FwcFN0YXRlS2V5KTtcblx0fVxuXG5cdHJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KHNBcHBIYXNoOiBzdHJpbmcsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5fcmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0FwcEhhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHNpbmdsZSB2YWx1ZXMgZnJvbSBTZWxlY3Rpb25WYXJpYW50IGZvciB1cmwgcGFyYW1ldGVycy5cblx0ICpcblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudF1cblx0ICogQHBhcmFtIFt2U2VsZWN0aW9uVmFyaWFudC5vVXJsUGFyYW1hdGVyc11cblx0ICogQHJldHVybnMgVGhlIHVybCBwYXJhbWV0ZXJzXG5cdCAqL1xuXHRnZXRVcmxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IG9iamVjdCB8IHVuZGVmaW5lZCk6IHVua25vd24ge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLl9nZXRVUkxQYXJhbWV0ZXJzRnJvbVNlbGVjdGlvblZhcmlhbnQodlNlbGVjdGlvblZhcmlhbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNhdmUgYXBwIHN0YXRlIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgd2l0aG91dCB3YWl0aW5nIGZvciByZXNwb25zZS5cblx0ICpcblx0ICogQHBhcmFtIG9JblNlbGVjdGlvblZhcmlhbnQgSW5zdGFuY2Ugb2Ygc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudFxuXHQgKiBAcmV0dXJucyBBcHBTdGF0ZSBrZXlcblx0ICovXG5cdHNhdmVBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob0luU2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKG9JblNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdGNvbnN0IHNTZWxlY3Rpb25WYXJpYW50ID0gb0luU2VsZWN0aW9uVmFyaWFudC50b0pTT05TdHJpbmcoKSwgLy8gY3JlYXRlIGFuIFNWIGZvciBhcHAgc3RhdGUgaW4gc3RyaW5nIGZvcm1hdFxuXHRcdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IEpTT04ucGFyc2Uoc1NlbGVjdGlvblZhcmlhbnQpLCAvLyBjb252ZXJ0IHN0cmluZyBpbnRvIEpTT04gdG8gc3RvcmUgaW4gQXBwU3RhdGVcblx0XHRcdFx0b1hBcHBTdGF0ZU9iamVjdCA9IHtcblx0XHRcdFx0XHRzZWxlY3Rpb25WYXJpYW50OiBvU2VsZWN0aW9uVmFyaWFudFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRvUmV0dXJuID0gdGhpcy5vTmF2SGFuZGxlci5fc2F2ZUFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybihvWEFwcFN0YXRlT2JqZWN0KTtcblx0XHRcdHJldHVybiBvUmV0dXJuPy5hcHBTdGF0ZUtleSA/IG9SZXR1cm4uYXBwU3RhdGVLZXkgOiBcIlwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBNaXggQXR0cmlidXRlcyBhbmQgc2VsZWN0aW9uVmFyaWFudC5cblx0ICpcblx0ICogQHBhcmFtIHZTZW1hbnRpY0F0dHJpYnV0ZXMgT2JqZWN0LyhBcnJheSBvZiBPYmplY3RzKSBjb250YWluaW5nIGtleS92YWx1ZSBwYWlyc1xuXHQgKiBAcGFyYW0gc1NlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IGluIHN0cmluZyBmb3JtYXQgYXMgcHJvdmlkZWQgYnkgdGhlIFNtYXJ0RmlsdGVyQmFyIGNvbnRyb2xcblx0ICogQHBhcmFtIGlTdXBwcmVzc2lvbkJlaGF2aW9yIEluZGljYXRlcyB3aGV0aGVyIHNlbWFudGljXG5cdCAqICAgICAgICBhdHRyaWJ1dGVzIHdpdGggc3BlY2lhbCB2YWx1ZXMgKHNlZSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcn0pIG11c3QgYmVcblx0ICogICAgICAgIHN1cHByZXNzZWQgYmVmb3JlIHRoZXkgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHNlbGVjdGlvbiB2YXJpYW50OyBzZXZlcmFsXG5cdCAqICAgICAgICB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU3VwcHJlc3Npb25CZWhhdmlvciBzdXBwcmVzc2lvbiBiZWhhdmlvcnN9IGNhbiBiZSBjb21iaW5lZCB3aXRoIHRoZSBiaXR3aXNlIE9SIG9wZXJhdG9yXG5cdCAqICAgICAgICAofClcblx0ICogQHJldHVybnMgSW5zdGFuY2Ugb2Yge0BsaW5rIHNhcC5mZS5uYXZpZ2F0aW9uLlNlbGVjdGlvblZhcmlhbnR9XG5cdCAqL1xuXHRtaXhBdHRyaWJ1dGVzQW5kU2VsZWN0aW9uVmFyaWFudChcblx0XHR2U2VtYW50aWNBdHRyaWJ1dGVzOiBvYmplY3QgfCB1bmtub3duW10sXG5cdFx0c1NlbGVjdGlvblZhcmlhbnQ6IHN0cmluZyB8IFNlcmlhbGl6ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdGlTdXBwcmVzc2lvbkJlaGF2aW9yPzogbnVtYmVyXG5cdCk6IFNlbGVjdGlvblZhcmlhbnQge1xuXHRcdHJldHVybiB0aGlzLm9OYXZIYW5kbGVyLm1peEF0dHJpYnV0ZXNBbmRTZWxlY3Rpb25WYXJpYW50KHZTZW1hbnRpY0F0dHJpYnV0ZXMsIHNTZWxlY3Rpb25WYXJpYW50LCBpU3VwcHJlc3Npb25CZWhhdmlvcik7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG1ldGhvZCBjcmVhdGVzIGEgY29udGV4dCB1cmwgYmFzZWQgb24gcHJvdmlkZWQgZGF0YS4gVGhpcyBjb250ZXh0IHVybCBjYW4gZWl0aGVyIGJlIHVzZWQgYXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBzRW50aXR5U2V0TmFtZSBVc2VkIGZvciB1cmwgZGV0ZXJtaW5hdGlvblxuXHQgKiBAcGFyYW0gb01vZGVsIFRoZSBPRGF0YU1vZGVsIHVzZWQgZm9yIHVybCBkZXRlcm1pbmF0aW9uLiBJZiBvbWl0dGVkLCB0aGUgTmF2aWdhdGlvbkhhbmRsZXIgbW9kZWwgaXMgdXNlZC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgdXJsIGZvciB0aGUgZ2l2ZW4gZW50aXRpZXNcblx0ICovXG5cdGNvbnN0cnVjdENvbnRleHRVcmwoc0VudGl0eVNldE5hbWU6IHN0cmluZywgb01vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vTmF2SGFuZGxlci5jb25zdHJ1Y3RDb250ZXh0VXJsKHNFbnRpdHlTZXROYW1lLCBvTW9kZWwpO1xuXHR9XG5cblx0Z2V0SW50ZXJmYWNlKCk6IHRoaXMge1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgcmV0dXJucyBpQXBwU3RhdGUga2V5IGZvciB0aGUgY3VycmVudCBuYXZnYXRpb24gaGFuZGxlciBpbnN0YW5jZS5cblx0ICpcblx0ICogQHJldHVybnMgSUFwcFN0YXRlIGtleVxuXHQgKi9cblx0Z2V0SUFwcFN0YXRlS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMub05hdkhhbmRsZXIuZ2V0SUFwcFN0YXRlS2V5KCk7XG5cdH1cbn1cbmZ1bmN0aW9uIGZuR2V0RW1wdHlPYmplY3QoKToge30ge1xuXHRyZXR1cm4ge307XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZuR2V0UHJvbWlzZSgpOiBQcm9taXNlPHt9PiB7XG5cdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xufVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG5mdW5jdGlvbiBmbkdldEpRdWVyeVByb21pc2UoKTogSlF1ZXJ5LlByb21pc2U8dW5rbm93bj4ge1xuXHRjb25zdCBvTXlEZWZmZXJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXHRvTXlEZWZmZXJlZC5yZXNvbHZlKHt9LCB7fSwgXCJpbml0aWFsXCIpO1xuXHRyZXR1cm4gb015RGVmZmVyZWQucHJvbWlzZSgpO1xufVxuXG5mdW5jdGlvbiBmbkdldEVtcHR5U3RyaW5nKCk6IHN0cmluZyB7XG5cdHJldHVybiBcIlwiO1xufVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlc01vY2sgZXh0ZW5kcyBTZXJ2aWNlRmFjdG9yeTxOYXZpZ2F0aW9uU2VydmljZVNldHRpbmdzPiB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPHRoaXM+O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0fVxuXG5cdGdldEludGVyZmFjZSgpOiB0aGlzIHtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8vIHJldHVybiBlbXB0eSBvYmplY3Rcblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZSA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0c3RvcmVJbm5lckFwcFN0YXRlV2l0aEltbWVkaWF0ZVJldHVybiA9IGZuR2V0RW1wdHlPYmplY3Q7XG5cblx0bWl4QXR0cmlidXRlc0FuZFNlbGVjdGlvblZhcmlhbnQgPSBmbkdldEVtcHR5T2JqZWN0O1xuXG5cdC8vIHJldHVybiBwcm9taXNlXG5cdGdldEFwcFN0YXRlID0gZm5HZXRQcm9taXNlO1xuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZSA9IGZuR2V0UHJvbWlzZTtcblxuXHRwYXJzZU5hdmlnYXRpb24gPSBmbkdldEpRdWVyeVByb21pc2U7XG5cblx0Ly8gcmV0dXJuIGVtcHR5IHN0cmluZ1xuXHRjb25zdHJ1Y3RDb250ZXh0VXJsID0gZm5HZXRFbXB0eVN0cmluZztcblxuXHRyZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzQXBwSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gc0FwcEhhc2ggPyBzQXBwSGFzaCA6IFwiXCI7XG5cdH1cblxuXHRnZXRJQXBwU3RhdGVLZXkgPSBmbkdldEVtcHR5U3RyaW5nO1xuXG5cdG5hdmlnYXRlKCk6IHZvaWQge1xuXHRcdC8vIERvbid0IGRvIGFueXRoaW5nXG5cdH1cbn1cblxuY2xhc3MgTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8TmF2aWdhdGlvblNlcnZpY2VTZXR0aW5ncz4ge1xuXHRhc3luYyBjcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQ6IFNlcnZpY2VDb250ZXh0PE5hdmlnYXRpb25TZXJ2aWNlU2V0dGluZ3M+KTogUHJvbWlzZTxOYXZpZ2F0aW9uU2VydmljZT4ge1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIilcblx0XHRcdD8gbmV3IE5hdmlnYXRpb25TZXJ2aWNlKG9TZXJ2aWNlQ29udGV4dClcblx0XHRcdDogbmV3IE5hdmlnYXRpb25TZXJ2aWNlc01vY2soKTtcblx0XHQvLyBXYWl0IEZvciBpbml0XG5cdFx0cmV0dXJuIG9OYXZpZ2F0aW9uU2VydmljZS5pbml0UHJvbWlzZS50aGVuKGZ1bmN0aW9uIChvU2VydmljZSkge1xuXHRcdFx0cmV0dXJuIG9TZXJ2aWNlIGFzIE5hdmlnYXRpb25TZXJ2aWNlO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7TUFXYUEsaUJBQWlCO0lBQUE7SUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUEsT0FLN0JDLElBQUksR0FBSixnQkFBYTtNQUNaLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNDLFVBQVUsRUFBRTtRQUNqQ0MsVUFBVSxHQUFHRixRQUFRLElBQUlBLFFBQVEsQ0FBQ0csV0FBVztNQUU5QyxJQUFJLENBQUNDLFdBQVcsR0FBRyxJQUFJQyxpQkFBaUIsQ0FBQ0gsVUFBVSxDQUFDO01BQ3BELElBQUksQ0FBQ0UsV0FBVyxDQUFDRSxRQUFRLENBQUNKLFVBQVUsQ0FBQ0ssUUFBUSxFQUFFLENBQUM7TUFDaEQsSUFBSSxDQUFDQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBQUEsT0FFREMsSUFBSSxHQUFKLGdCQUFhO01BQ1osSUFBSSxDQUFDUCxXQUFXLENBQUNRLE9BQU8sRUFBRTtJQUMzQjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FqQkM7SUFBQSxPQWtCQUMsUUFBUSxHQUFSLGtCQUNDQyxlQUF1QixFQUN2QkMsV0FBbUIsRUFDbkJDLHFCQUFzQyxFQUN0Q0MsYUFBNEIsRUFDNUJDLFNBQW9CLEVBQ3BCQyxnQkFJQyxFQUNEQyxRQUFpQixFQUNWO01BQ1A7TUFDQTtNQUNBO01BQ0EsSUFBSSxDQUFDaEIsV0FBVyxDQUFDUyxRQUFRLENBQ3hCQyxlQUFlLEVBQ2ZDLFdBQVcsRUFDWEMscUJBQXFCLEVBQ3JCQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsZ0JBQWdCLEVBQ2hCQyxRQUFRLENB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
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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
@@ -94,11 +94,11 @@ export class NavigationService extends Service<NavigationServiceSettings> {
94
94
  * modified oTableEventParameters is returned; if an error occurs, an error object of type
95
95
  * {@link sap.fe.navigation.NavError} is returned
96
96
  */
97
- async _processBeforeSmartLinkPopoverOpens(
97
+ _processBeforeSmartLinkPopoverOpens(
98
98
  oTableEventParameters: object,
99
99
  sSelectionVariant: string,
100
100
  mInnerAppData?: InnerAppData
101
- ): Promise<unknown> {
101
+ ): JQuery.Promise<unknown, unknown, unknown> {
102
102
  return this.oNavHandler.processBeforeSmartLinkPopoverOpens(oTableEventParameters, sSelectionVariant, mInnerAppData);
103
103
  }
104
104
 
@@ -141,7 +141,8 @@ export class NavigationService extends Service<NavigationServiceSettings> {
141
141
  *
142
142
  * </code>
143
143
  */
144
- async getAppStateKeyAndUrlParameters(sSelectionVariant: string): Promise<unknown> {
144
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
145
+ getAppStateKeyAndUrlParameters(sSelectionVariant: string): JQuery.Promise<unknown, unknown, unknown> {
145
146
  return this.oNavHandler._getAppStateKeyAndUrlParameters(sSelectionVariant);
146
147
  }
147
148