@sapui5/sap.fe.core 1.111.1 → 1.112.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 (524) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +4 -4
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +11 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +27 -5
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +58 -3
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +10 -1
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +2 -1
  17. package/src/sap/fe/core/CommonUtils-dbg.js +152 -365
  18. package/src/sap/fe/core/CommonUtils.js +1 -1
  19. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  20. package/src/sap/fe/core/CommonUtils.ts +201 -478
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -1
  22. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  23. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  24. package/src/sap/fe/core/ExtensionAPI.ts +9 -1
  25. package/src/sap/fe/core/PageController-dbg.js +26 -31
  26. package/src/sap/fe/core/PageController.js +1 -1
  27. package/src/sap/fe/core/PageController.js.map +1 -1
  28. package/src/sap/fe/core/PageController.ts +17 -3
  29. package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
  30. package/src/sap/fe/core/ResourceModel.js +6 -0
  31. package/src/sap/fe/core/ResourceModel.js.map +1 -0
  32. package/src/sap/fe/core/ResourceModel.ts +67 -0
  33. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  34. package/src/sap/fe/core/TemplateComponent.ts +1 -0
  35. package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
  36. package/src/sap/fe/core/TemplateModel.ts +6 -1
  37. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
  38. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
  40. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +163 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +169 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +147 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -0
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
  52. package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +290 -362
  53. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
  54. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
  55. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
  56. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
  57. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
  58. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
  59. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
  60. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +181 -0
  61. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
  62. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  63. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
  64. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
  65. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +890 -220
  66. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/EditFlow.ts +974 -239
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
  70. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +71 -61
  73. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
  74. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
  77. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
  79. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
  80. package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
  82. package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
  83. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
  84. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
  85. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
  86. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  87. package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
  88. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  89. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  90. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  91. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  93. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  94. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  95. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  96. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  97. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  98. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  99. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  100. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  101. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  103. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  104. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  105. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  112. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  113. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  116. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
  119. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  120. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  121. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  122. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  124. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
  125. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  126. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  127. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
  128. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
  129. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  130. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  131. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
  132. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
  134. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  135. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  136. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
  137. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  145. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
  146. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  147. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  148. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
  149. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
  150. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  151. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  152. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
  153. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  154. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  156. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
  157. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
  160. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  161. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  162. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  163. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  164. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  165. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  166. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  167. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  168. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  169. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  170. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  171. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  172. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  173. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  174. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  175. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  176. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  177. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  178. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  179. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  180. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  182. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  183. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  184. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  185. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  186. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  187. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  188. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  189. package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
  190. package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
  191. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  192. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  193. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  194. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  195. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
  196. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  197. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  198. package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
  199. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
  200. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  201. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  202. package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
  203. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  204. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  205. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  206. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
  207. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  208. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  209. package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
  210. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
  211. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  212. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  213. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
  214. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  215. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  216. package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
  217. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  218. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  219. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  220. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  221. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  222. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  223. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  225. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
  226. package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
  227. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
  228. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  230. package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
  231. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
  232. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  234. package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
  235. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
  236. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  238. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
  239. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
  240. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  241. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  242. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
  243. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
  244. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  245. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  246. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
  247. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  248. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  249. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  250. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  251. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  252. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  253. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
  254. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  255. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  256. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
  257. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
  258. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  259. package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
  260. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  261. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  262. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  263. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  264. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  265. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  266. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  267. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  268. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
  269. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
  272. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
  273. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  274. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  275. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
  276. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
  277. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  278. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  279. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
  280. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
  281. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  282. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  283. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
  284. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  285. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  286. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  287. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  288. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
  289. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  290. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  291. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  292. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
  293. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  294. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  295. package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
  296. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  297. package/src/sap/fe/core/fpm/Component.ts +1 -0
  298. package/src/sap/fe/core/fpm/manifest.json +1 -1
  299. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  300. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  301. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  302. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  303. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
  304. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  305. package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
  306. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  307. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  308. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  309. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  310. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  311. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  312. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  313. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
  314. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  315. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  316. package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
  317. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
  318. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  319. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  320. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  321. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
  322. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  323. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  324. package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
  325. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
  326. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  327. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
  328. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  329. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  330. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  331. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  332. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
  333. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  334. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  335. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
  336. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
  337. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  338. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  339. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
  340. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  341. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  342. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  343. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  344. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  345. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  346. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
  347. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  348. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  349. package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
  350. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  351. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  352. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  353. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  354. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  355. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  356. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  357. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  358. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  359. package/src/sap/fe/core/library-dbg.js +2 -2
  360. package/src/sap/fe/core/library-preload.js +127 -125
  361. package/src/sap/fe/core/library-preload.js.map +1 -1
  362. package/src/sap/fe/core/library.js +1 -1
  363. package/src/sap/fe/core/library.ts +7 -0
  364. package/src/sap/fe/core/manifest.json +1 -1
  365. package/src/sap/fe/core/messagebundle.properties +33 -0
  366. package/src/sap/fe/core/messagebundle_ar.properties +12 -10
  367. package/src/sap/fe/core/messagebundle_bg.properties +11 -9
  368. package/src/sap/fe/core/messagebundle_ca.properties +11 -9
  369. package/src/sap/fe/core/messagebundle_cs.properties +11 -9
  370. package/src/sap/fe/core/messagebundle_cy.properties +11 -9
  371. package/src/sap/fe/core/messagebundle_da.properties +11 -9
  372. package/src/sap/fe/core/messagebundle_de.properties +3 -1
  373. package/src/sap/fe/core/messagebundle_el.properties +11 -9
  374. package/src/sap/fe/core/messagebundle_en.properties +3 -1
  375. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  376. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  377. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
  378. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
  379. package/src/sap/fe/core/messagebundle_es.properties +11 -9
  380. package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
  381. package/src/sap/fe/core/messagebundle_et.properties +11 -9
  382. package/src/sap/fe/core/messagebundle_fi.properties +11 -9
  383. package/src/sap/fe/core/messagebundle_fr.properties +11 -9
  384. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  385. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  386. package/src/sap/fe/core/messagebundle_hr.properties +11 -9
  387. package/src/sap/fe/core/messagebundle_hu.properties +11 -9
  388. package/src/sap/fe/core/messagebundle_id.properties +3 -1
  389. package/src/sap/fe/core/messagebundle_it.properties +11 -9
  390. package/src/sap/fe/core/messagebundle_iw.properties +11 -9
  391. package/src/sap/fe/core/messagebundle_ja.properties +11 -9
  392. package/src/sap/fe/core/messagebundle_kk.properties +11 -9
  393. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  394. package/src/sap/fe/core/messagebundle_lt.properties +11 -9
  395. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  396. package/src/sap/fe/core/messagebundle_ms.properties +12 -10
  397. package/src/sap/fe/core/messagebundle_nl.properties +12 -10
  398. package/src/sap/fe/core/messagebundle_no.properties +11 -9
  399. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  400. package/src/sap/fe/core/messagebundle_pt.properties +11 -9
  401. package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
  402. package/src/sap/fe/core/messagebundle_ro.properties +3 -1
  403. package/src/sap/fe/core/messagebundle_ru.properties +3 -1
  404. package/src/sap/fe/core/messagebundle_sh.properties +11 -9
  405. package/src/sap/fe/core/messagebundle_sk.properties +11 -9
  406. package/src/sap/fe/core/messagebundle_sl.properties +11 -9
  407. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  408. package/src/sap/fe/core/messagebundle_th.properties +11 -9
  409. package/src/sap/fe/core/messagebundle_tr.properties +11 -9
  410. package/src/sap/fe/core/messagebundle_uk.properties +11 -9
  411. package/src/sap/fe/core/messagebundle_vi.properties +12 -10
  412. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  413. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  414. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  415. package/src/sap/fe/core/operationsHelper.js +1 -1
  416. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  417. package/src/sap/fe/core/operationsHelper.ts +88 -63
  418. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  419. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  420. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  421. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  422. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  423. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  424. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
  425. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  426. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  427. package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
  428. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  429. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  430. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  431. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  432. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  433. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  434. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  435. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  436. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  437. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  438. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  439. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  440. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  441. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  442. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  443. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
  444. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  445. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  446. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
  447. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
  448. package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
  449. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  450. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  451. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  452. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
  453. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
  454. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  455. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  456. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
  457. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  458. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  459. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
  460. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  461. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  462. package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
  463. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
  464. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
  465. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
  466. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  467. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  468. package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
  469. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  470. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  471. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  472. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  473. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  474. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  475. package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
  476. package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
  477. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  478. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  479. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  480. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  481. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  482. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  483. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  484. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  485. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  486. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  487. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  488. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  489. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  490. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  491. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  492. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  493. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  494. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
  495. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  496. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  497. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  498. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  499. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  500. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  501. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  502. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  503. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  504. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  505. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  506. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  507. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  508. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  509. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  510. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  511. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  512. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  513. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  514. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  515. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  516. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  517. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  518. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  519. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  520. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  521. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  522. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  523. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  524. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/converters/helpers/SelectionVariantHelper", "sap/fe/core/formatters/TableFormatterTypes", "sap/fe/core/templating/PropertyHelper", "../../helpers/Aggregation", "../../helpers/ID", "./Criticality"], function (IssueManager, SelectionVariantHelper, TableFormatterTypes, PropertyHelper, Aggregation, ID, Criticality) {
5
+ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/converters/helpers/SelectionVariantHelper", "sap/fe/core/formatters/TableFormatterTypes", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/PropertyHelper", "../../helpers/Aggregation", "../../helpers/ID", "./Criticality"], function (IssueManager, SelectionVariantHelper, TableFormatterTypes, TypeGuards, PropertyHelper, Aggregation, ID, Criticality) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
@@ -10,6 +10,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
10
10
  var getKPIID = ID.getKPIID;
11
11
  var AggregationHelper = Aggregation.AggregationHelper;
12
12
  var isPathExpression = PropertyHelper.isPathExpression;
13
+ var isAnnotationOfType = TypeGuards.isAnnotationOfType;
13
14
  var MessageType = TableFormatterTypes.MessageType;
14
15
  var getFilterDefinitionsFromSelectionVariant = SelectionVariantHelper.getFilterDefinitionsFromSelectionVariant;
15
16
  var IssueType = IssueManager.IssueType;
@@ -210,7 +211,6 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
210
211
  }
211
212
  function getNavigationInfoFromProperty(property) {
212
213
  const annotations = property.annotations["Common"] || {};
213
-
214
214
  // Look for the semanticObject annotation (if any)
215
215
  let semanticObjectAnnotation;
216
216
  Object.keys(annotations).forEach(annotationKey => {
@@ -267,7 +267,7 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
267
267
  selectionVariantAnnotation = targetKPI.SelectionVariant;
268
268
  presentationVariantAnnotation = (_targetKPI$Detail = targetKPI.Detail) === null || _targetKPI$Detail === void 0 ? void 0 : _targetKPI$Detail.DefaultPresentationVariant;
269
269
  chartAnnotation = (_presentationVariantA3 = presentationVariantAnnotation) === null || _presentationVariantA3 === void 0 ? void 0 : (_presentationVariantA4 = _presentationVariantA3.Visualizations) === null || _presentationVariantA4 === void 0 ? void 0 : (_presentationVariantA5 = _presentationVariantA4.find(viz => {
270
- return viz.$target.$Type === "com.sap.vocabularies.UI.v1.ChartDefinitionType";
270
+ return isAnnotationOfType(viz.$target, "com.sap.vocabularies.UI.v1.ChartDefinitionType");
271
271
  })) === null || _presentationVariantA5 === void 0 ? void 0 : _presentationVariantA5.$target;
272
272
  if ((_targetKPI$Detail2 = targetKPI.Detail) !== null && _targetKPI$Detail2 !== void 0 && _targetKPI$Detail2.SemanticObject) {
273
273
  var _targetKPI$Detail$Act;
@@ -288,10 +288,10 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
288
288
  selectionVariantAnnotation = targetSPV.SelectionVariant;
289
289
  presentationVariantAnnotation = targetSPV.PresentationVariant;
290
290
  datapointAnnotation = (_presentationVariantA6 = presentationVariantAnnotation) === null || _presentationVariantA6 === void 0 ? void 0 : (_presentationVariantA7 = _presentationVariantA6.Visualizations) === null || _presentationVariantA7 === void 0 ? void 0 : (_presentationVariantA8 = _presentationVariantA7.find(viz => {
291
- return viz.$target.$Type === "com.sap.vocabularies.UI.v1.DataPointType";
291
+ return isAnnotationOfType(viz.$target, "com.sap.vocabularies.UI.v1.DataPointType");
292
292
  })) === null || _presentationVariantA8 === void 0 ? void 0 : _presentationVariantA8.$target;
293
293
  chartAnnotation = (_presentationVariantA9 = presentationVariantAnnotation) === null || _presentationVariantA9 === void 0 ? void 0 : (_presentationVariantA10 = _presentationVariantA9.Visualizations) === null || _presentationVariantA10 === void 0 ? void 0 : (_presentationVariantA11 = _presentationVariantA10.find(viz => {
294
- return viz.$target.$Type === "com.sap.vocabularies.UI.v1.ChartDefinitionType";
294
+ return isAnnotationOfType(viz.$target, "com.sap.vocabularies.UI.v1.ChartDefinitionType");
295
295
  })) === null || _presentationVariantA11 === void 0 ? void 0 : _presentationVariantA11.$target;
296
296
  } else {
297
297
  // Couldn't find a KPI or a SPV annotation with the qualifier from the manifest
@@ -371,4 +371,4 @@ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager", "sap/fe/core/conve
371
371
  _exports.getKPIDefinitions = getKPIDefinitions;
372
372
  return _exports;
373
373
  }, false);
374
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlIiwiS1BJQ2hhcnRUeXBlRnJvbVVJIiwiY29udmVydEtQSUNoYXJ0IiwiY2hhcnRBbm5vdGF0aW9uIiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJNZWFzdXJlcyIsInVuZGVmaW5lZCIsImNoYXJEaW1lbnNpb25zIiwiRGltZW5zaW9ucyIsIm1hcCIsInByb3BlcnR5UGF0aCIsImRpbUF0dHJpYnV0ZSIsIkRpbWVuc2lvbkF0dHJpYnV0ZXMiLCJmaW5kIiwiYXR0cmlidXRlIiwiRGltZW5zaW9uIiwidmFsdWUiLCJuYW1lIiwibGFiZWwiLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJMYWJlbCIsInRvU3RyaW5nIiwicm9sZSIsIlJvbGUiLCJyZXBsYWNlIiwiY2hhcnRNZWFzdXJlcyIsIm1lYXN1cmVBdHRyaWJ1dGUiLCJNZWFzdXJlQXR0cmlidXRlcyIsIk1lYXN1cmUiLCJjaGFydFR5cGUiLCJDaGFydFR5cGUiLCJkaW1lbnNpb25zIiwibWVhc3VyZXMiLCJzb3J0T3JkZXIiLCJTb3J0T3JkZXIiLCJQcm9wZXJ0eSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwibWF4SXRlbXMiLCJNYXhJdGVtcyIsInZhbHVlT2YiLCJ1cGRhdGVDdXJyZW5jeSIsImRhdGFwb2ludEFubm90YXRpb24iLCJrcGlEZWYiLCJ0YXJnZXRWYWx1ZVByb3BlcnR5IiwiVmFsdWUiLCJJU09DdXJyZW5jeSIsImN1cnJlbmN5IiwiaXNQYXRoRXhwcmVzc2lvbiIsImRhdGFwb2ludCIsInVuaXQiLCJpc0N1cnJlbmN5IiwiaXNQYXRoIiwiVW5pdCIsInVwZGF0ZUNyaXRpY2FsaXR5IiwiYWdncmVnYXRpb25IZWxwZXIiLCJDcml0aWNhbGl0eSIsImNyaXRpY2FsaXR5UHJvcGVydHkiLCJpc1Byb3BlcnR5QWdncmVnYXRhYmxlIiwiY3JpdGljYWxpdHlQYXRoIiwicGF0aCIsImNyaXRpY2FsaXR5VmFsdWUiLCJNZXNzYWdlVHlwZSIsIk5vbmUiLCJnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUiLCJDcml0aWNhbGl0eUNhbGN1bGF0aW9uIiwiY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUiLCJJbXByb3ZlbWVudERpcmVjdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzIiwicHVzaCIsIkRldmlhdGlvblJhbmdlTG93VmFsdWUiLCJUb2xlcmFuY2VSYW5nZUxvd1ZhbHVlIiwiQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUiLCJBY2NlcHRhbmNlUmFuZ2VIaWdoVmFsdWUiLCJUb2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSIsIkRldmlhdGlvblJhbmdlSGlnaFZhbHVlIiwidXBkYXRlVHJlbmQiLCJUcmVuZCIsInRyZW5kUHJvcGVydHkiLCJ0cmVuZFBhdGgiLCJ0cmVuZFZhbHVlIiwiVHJlbmRDYWxjdWxhdGlvbiIsInRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlIiwiSXNSZWxhdGl2ZURpZmZlcmVuY2UiLCJSZWZlcmVuY2VWYWx1ZSIsInJlZmVyZW5jZVByb3BlcnR5IiwidHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGgiLCJ0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlVmFsdWUiLCJ0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzIiwiU3Ryb25nRG93bkRpZmZlcmVuY2UiLCJEb3duRGlmZmVyZW5jZSIsIlVwRGlmZmVyZW5jZSIsIlN0cm9uZ1VwRGlmZmVyZW5jZSIsInVwZGF0ZVRhcmdldCIsIlRhcmdldFZhbHVlIiwidGFyZ2V0UHJvcGVydHkiLCJ0YXJnZXRQYXRoIiwidGFyZ2V0VmFsdWUiLCJnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eSIsInByb3BlcnR5Iiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJhbm5vdGF0aW9uS2V5IiwiYW5ub3RhdGlvbiIsInRlcm0iLCJxdWFsaWZpZXIiLCJyZXN1bHQiLCJzZW1hbnRpY09iamVjdCIsInVuYXZhaWxhYmxlQWN0aW9ucyIsImtleSIsImNyZWF0ZUtQSURlZmluaXRpb24iLCJrcGlOYW1lIiwia3BpQ29uZmlnIiwiY29udmVydGVyQ29udGV4dCIsImtwaUNvbnZlcnRlckNvbnRleHQiLCJnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yIiwiZW50aXR5U2V0IiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiS1BJX0lTU1VFUyIsIk5PX0FOQUxZVElDUyIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibmF2aWdhdGlvbkluZm8iLCJhS1BJQW5ub3RhdGlvbnMiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInRhcmdldEtQSSIsImtwaSIsIkRhdGFQb2ludCIsIlNlbGVjdGlvblZhcmlhbnQiLCJEZXRhaWwiLCJEZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsIlZpc3VhbGl6YXRpb25zIiwidml6IiwiJFR5cGUiLCJTZW1hbnRpY09iamVjdCIsImFjdGlvbiIsIkFjdGlvbiIsImFTUFZBbm5vdGF0aW9ucyIsInRhcmdldFNQViIsInNwdiIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJLUElfTk9UX0ZPVU5EIiwiS1BJX0RFVEFJTF9OT1RfRk9VTkQiLCJkYXRhcG9pbnRQcm9wZXJ0eSIsIk1BSU5fUFJPUEVSVFlfTk9UX0FHR1JFR0FUQUJMRSIsImNoYXJ0RGVmIiwiaWQiLCJnZXRLUElJRCIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRpdGxlIiwiVGl0bGUiLCJkZXNjcmlwdGlvbiIsIkRlc2NyaXB0aW9uIiwic2VsZWN0aW9uVmFyaWFudEZpbHRlckRlZmluaXRpb25zIiwiZ2V0RmlsdGVyRGVmaW5pdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCIsImNoYXJ0IiwiZGV0YWlsTmF2aWdhdGlvbiIsIm91dGJvdW5kTmF2aWdhdGlvbiIsIm5hdmlnYXRpb24iLCJnZXRLUElEZWZpbml0aW9ucyIsImtwaUNvbmZpZ3MiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJnZXRLUElDb25maWd1cmF0aW9uIiwia3BpRGVmcyIsIm9EZWYiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIktQSS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFubm90YXRpb25UZXJtLCBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIFByb3BlcnR5LCBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgU2VtYW50aWNPYmplY3QgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW1vblwiO1xuaW1wb3J0IHsgQ29tbW9uQW5ub3RhdGlvblRlcm1zIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB0eXBlIHtcblx0Q2hhcnQsXG5cdENyaXRpY2FsaXR5VHlwZSxcblx0RGF0YVBvaW50LFxuXHREYXRhUG9pbnRUeXBlLFxuXHRJbXByb3ZlbWVudERpcmVjdGlvblR5cGUsXG5cdEtQSSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGUsXG5cdFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQsXG5cdFNlbGVjdGlvblZhcmlhbnRUeXBlLFxuXHRUcmVuZFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMsIFVJQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5LCBJc3N1ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lzc3VlTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWx0ZXJEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9TZWxlY3Rpb25WYXJpYW50SGVscGVyXCI7XG5pbXBvcnQgeyBnZXRGaWx0ZXJEZWZpbml0aW9uc0Zyb21TZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9TZWxlY3Rpb25WYXJpYW50SGVscGVyXCI7XG5pbXBvcnQgeyBNZXNzYWdlVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1RhYmxlRm9ybWF0dGVyVHlwZXNcIjtcbmltcG9ydCB7IGlzUGF0aEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHsgQWdncmVnYXRpb25IZWxwZXIgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9BZ2dyZWdhdGlvblwiO1xuaW1wb3J0IHsgZ2V0S1BJSUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHR5cGUgeyBLUElDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGdldE1lc3NhZ2VUeXBlRnJvbUNyaXRpY2FsaXR5VHlwZSB9IGZyb20gXCIuL0NyaXRpY2FsaXR5XCI7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25JbmZvID0ge1xuXHRzZW1hbnRpY09iamVjdD86IHN0cmluZztcblx0YWN0aW9uPzogc3RyaW5nO1xuXHR1bmF2YWlsYWJsZUFjdGlvbnM/OiBzdHJpbmdbXTtcblx0b3V0Ym91bmROYXZpZ2F0aW9uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgS1BJQ2hhcnREZWZpbml0aW9uID0ge1xuXHRjaGFydFR5cGU6IHN0cmluZztcblx0ZGltZW5zaW9uczogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfVtdO1xuXHRtZWFzdXJlczogeyBuYW1lOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IHJvbGU/OiBzdHJpbmcgfVtdO1xuXHRzb3J0T3JkZXI/OiB7IG5hbWU6IHN0cmluZzsgZGVzY2VuZGluZzogYm9vbGVhbiB9W107XG5cdG1heEl0ZW1zPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgS1BJRGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG5cdGRhdGFwb2ludDoge1xuXHRcdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdFx0cHJvcGVydHlQYXRoOiBzdHJpbmc7XG5cdFx0dW5pdD86IHtcblx0XHRcdHZhbHVlOiBzdHJpbmc7XG5cdFx0XHRpc1BhdGg6IGJvb2xlYW47XG5cdFx0XHRpc0N1cnJlbmN5OiBib29sZWFuO1xuXHRcdH07XG5cdFx0Y3JpdGljYWxpdHlQYXRoPzogc3RyaW5nO1xuXHRcdGNyaXRpY2FsaXR5VmFsdWU/OiBNZXNzYWdlVHlwZTtcblx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZT86IEltcHJvdmVtZW50RGlyZWN0aW9uVHlwZTtcblx0XHRjcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcz86IChudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKVtdO1xuXHRcdHRpdGxlPzogc3RyaW5nO1xuXHRcdGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXHRcdHRyZW5kUGF0aD86IHN0cmluZztcblx0XHR0cmVuZFZhbHVlPzogc3RyaW5nO1xuXHRcdHRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VWYWx1ZT86IG51bWJlcjtcblx0XHR0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aD86IHN0cmluZztcblx0XHR0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzPzogKG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpW107XG5cdFx0dHJlbmRDYWxjdWxhdGlvbklzUmVsYXRpdmU/OiBib29sZWFuO1xuXHRcdHRhcmdldFZhbHVlPzogbnVtYmVyO1xuXHRcdHRhcmdldFBhdGg/OiBzdHJpbmc7XG5cdH07XG5cdGNoYXJ0OiBLUElDaGFydERlZmluaXRpb247XG5cdHNlbGVjdGlvblZhcmlhbnRGaWx0ZXJEZWZpbml0aW9ucz86IEZpbHRlckRlZmluaXRpb25bXTtcblx0bmF2aWdhdGlvbj86IE5hdmlnYXRpb25JbmZvO1xufTtcblxuY29uc3QgRGV2aWF0aW9uSW5kaWNhdG9yRnJvbVRyZW5kVHlwZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcblx0XCJVSS5UcmVuZFR5cGUvU3Ryb25nVXBcIjogXCJVcFwiLFxuXHRcIlVJLlRyZW5kVHlwZS9VcFwiOiBcIlVwXCIsXG5cdFwiVUkuVHJlbmRUeXBlL1N0cm9uZ0Rvd25cIjogXCJEb3duXCIsXG5cdFwiVUkuVHJlbmRUeXBlL0Rvd25cIjogXCJEb3duXCIsXG5cdFwiVUkuVHJlbmRUeXBlL1NpZGV3YXlzXCI6IFwiTm9uZVwiXG59O1xuXG5jb25zdCBLUElDaGFydFR5cGVGcm9tVUk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG5cdFwiVUkuQ2hhcnRUeXBlL0NvbHVtblN0YWNrZWRcIjogXCJTdGFja2VkQ29sdW1uXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0JhclN0YWNrZWRcIjogXCJTdGFja2VkQmFyXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0RvbnV0XCI6IFwiRG9udXRcIixcblx0XCJVSS5DaGFydFR5cGUvTGluZVwiOiBcIkxpbmVcIixcblx0XCJVSS5DaGFydFR5cGUvQnViYmxlXCI6IFwiYnViYmxlXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0NvbHVtblwiOiBcImNvbHVtblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9CYXJcIjogXCJiYXJcIixcblx0XCJVSS5DaGFydFR5cGUvVmVydGljYWxCdWxsZXRcIjogXCJ2ZXJ0aWNhbF9idWxsZXRcIixcblx0XCJVSS5DaGFydFR5cGUvQ29tYmluYXRpb25cIjogXCJjb21iaW5hdGlvblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9TY2F0dGVyXCI6IFwic2NhdHRlclwiXG59O1xuXG5mdW5jdGlvbiBjb252ZXJ0S1BJQ2hhcnQoY2hhcnRBbm5vdGF0aW9uOiBDaGFydCwgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlKTogS1BJQ2hhcnREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcblx0aWYgKGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0Ly8gV2UgbmVlZCBhdCBsZWFzdCAxIG1lYXN1cmUgKGJ1dCBubyBkaW1lbnNpb24gaXMgYWxsb3dlZCwgZS5nLiBmb3IgYnViYmxlIGNoYXJ0KVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBjaGFyRGltZW5zaW9ucyA9IGNoYXJ0QW5ub3RhdGlvbi5EaW1lbnNpb25zXG5cdFx0PyBjaGFydEFubm90YXRpb24uRGltZW5zaW9ucy5tYXAoKHByb3BlcnR5UGF0aCkgPT4ge1xuXHRcdFx0XHRjb25zdCBkaW1BdHRyaWJ1dGUgPSBjaGFydEFubm90YXRpb24uRGltZW5zaW9uQXR0cmlidXRlcz8uZmluZCgoYXR0cmlidXRlKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIGF0dHJpYnV0ZS5EaW1lbnNpb24/LnZhbHVlID09PSBwcm9wZXJ0eVBhdGgudmFsdWU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdG5hbWU6IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdFx0XHRsYWJlbDogcHJvcGVydHlQYXRoLiR0YXJnZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5MYWJlbD8udG9TdHJpbmcoKSB8fCBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRcdFx0cm9sZTogZGltQXR0cmlidXRlPy5Sb2xlPy5yZXBsYWNlKFwiVUkuQ2hhcnREaW1lbnNpb25Sb2xlVHlwZS9cIiwgXCJcIilcblx0XHRcdFx0fTtcblx0XHQgIH0pXG5cdFx0OiBbXTtcblxuXHRjb25zdCBjaGFydE1lYXN1cmVzID0gY2hhcnRBbm5vdGF0aW9uLk1lYXN1cmVzLm1hcCgocHJvcGVydHlQYXRoKSA9PiB7XG5cdFx0Y29uc3QgbWVhc3VyZUF0dHJpYnV0ZSA9IGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlQXR0cmlidXRlcz8uZmluZCgoYXR0cmlidXRlKSA9PiB7XG5cdFx0XHRyZXR1cm4gYXR0cmlidXRlLk1lYXN1cmU/LnZhbHVlID09PSBwcm9wZXJ0eVBhdGgudmFsdWU7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5hbWU6IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdGxhYmVsOiBwcm9wZXJ0eVBhdGguJHRhcmdldC5hbm5vdGF0aW9ucy5Db21tb24/LkxhYmVsPy50b1N0cmluZygpIHx8IHByb3BlcnR5UGF0aC52YWx1ZSxcblx0XHRcdHJvbGU6IG1lYXN1cmVBdHRyaWJ1dGU/LlJvbGU/LnJlcGxhY2UoXCJVSS5DaGFydE1lYXN1cmVSb2xlVHlwZS9cIiwgXCJcIilcblx0XHR9O1xuXHR9KTtcblxuXHRyZXR1cm4ge1xuXHRcdGNoYXJ0VHlwZTogS1BJQ2hhcnRUeXBlRnJvbVVJW2NoYXJ0QW5ub3RhdGlvbi5DaGFydFR5cGVdIHx8IFwiTGluZVwiLFxuXHRcdGRpbWVuc2lvbnM6IGNoYXJEaW1lbnNpb25zLFxuXHRcdG1lYXN1cmVzOiBjaGFydE1lYXN1cmVzLFxuXHRcdHNvcnRPcmRlcjogcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlNvcnRPcmRlcj8ubWFwKChzb3J0T3JkZXIpID0+IHtcblx0XHRcdHJldHVybiB7IG5hbWU6IHNvcnRPcmRlci5Qcm9wZXJ0eT8udmFsdWUgfHwgXCJcIiwgZGVzY2VuZGluZzogISFzb3J0T3JkZXIuRGVzY2VuZGluZyB9O1xuXHRcdH0pLFxuXHRcdG1heEl0ZW1zOiBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uTWF4SXRlbXM/LnZhbHVlT2YoKSBhcyBudW1iZXJcblx0fTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3VycmVuY3koZGF0YXBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50VHlwZSwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGNvbnN0IHRhcmdldFZhbHVlUHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdGlmICh0YXJnZXRWYWx1ZVByb3BlcnR5LmFubm90YXRpb25zLk1lYXN1cmVzPy5JU09DdXJyZW5jeSkge1xuXHRcdGNvbnN0IGN1cnJlbmN5ID0gdGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uSVNPQ3VycmVuY3k7XG5cdFx0aWYgKGlzUGF0aEV4cHJlc3Npb24oY3VycmVuY3kpKSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiAoY3VycmVuY3kuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiB0cnVlLFxuXHRcdFx0XHRpc1BhdGg6IHRydWVcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudW5pdCA9IHtcblx0XHRcdFx0dmFsdWU6IGN1cnJlbmN5LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IHRydWUsXG5cdFx0XHRcdGlzUGF0aDogZmFsc2Vcblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2UgaWYgKHRhcmdldFZhbHVlUHJvcGVydHkuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LlVuaXQpIHtcblx0XHRjb25zdCB1bml0ID0gdGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uVW5pdDtcblx0XHRpZiAoaXNQYXRoRXhwcmVzc2lvbih1bml0KSkge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogKHVuaXQuJHRhcmdldCBhcyB1bmtub3duIGFzIFByb3BlcnR5KS5uYW1lLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiBmYWxzZSxcblx0XHRcdFx0aXNQYXRoOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiB1bml0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGlzQ3VycmVuY3k6IGZhbHNlLFxuXHRcdFx0XHRpc1BhdGg6IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlLCBhZ2dyZWdhdGlvbkhlbHBlcjogQWdncmVnYXRpb25IZWxwZXIsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSkge1xuXHRcdGlmICh0eXBlb2YgZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0Ly8gQ3JpdGljYWxpdHkgaXMgYSBwYXRoIC0tPiBjaGVjayBpZiB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGFibGVcblx0XHRcdGNvbnN0IGNyaXRpY2FsaXR5UHJvcGVydHkgPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBhbnkgYXMgUHJvcGVydHlQYXRoKS4kdGFyZ2V0O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoY3JpdGljYWxpdHlQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVBhdGggPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248Q3JpdGljYWxpdHlUeXBlPikucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdFxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDcml0aWNhbGl0eSBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUoZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eSk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbikge1xuXHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uSW1wcm92ZW1lbnREaXJlY3Rpb247XG5cdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcyA9IFtdO1xuXHRcdHN3aXRjaCAoa3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uTW9kZSkge1xuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9UYXJnZXRcIjpcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUxvd1ZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5Ub2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRicmVhaztcblxuXHRcdFx0Y2FzZSBcIlVJLkltcHJvdmVtZW50RGlyZWN0aW9uVHlwZS9NaW5pbWl6ZVwiOlxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkRldmlhdGlvblJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgXCJVSS5JbXByb3ZlbWVudERpcmVjdGlvblR5cGUvTWF4aW1pemVcIjpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5Ob25lO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRyZW5kKGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kKSB7XG5cdFx0aWYgKHR5cGVvZiBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhIHBhdGggLS0+IGNoZWNrIGlmIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIGFnZ3JlZ2F0YWJsZVxuXHRcdFx0Y29uc3QgdHJlbmRQcm9wZXJ0eSA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIGFueSBhcyBQcm9wZXJ0eVBhdGgpLiR0YXJnZXQ7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0cmVuZFByb3BlcnR5KSkge1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kUGF0aCA9IChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kIGFzIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUcmVuZFR5cGU+KS5wYXRoO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gVGhlIHByb3BlcnR5IGlzbid0IGFnZ3JlZ2F0YWJsZSAtLT4gd2UgaWdub3JlIGl0XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmVuZCBpcyBhbiBlbnVtIFZhbHVlIC0tPiBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kVmFsdWUgPSBEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlW2RhdGFwb2ludEFubm90YXRpb24uVHJlbmRdIHx8IFwiTm9uZVwiO1xuXHRcdH1cblx0fSBlbHNlIGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24pIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLklzUmVsYXRpdmVEaWZmZXJlbmNlID8gdHJ1ZSA6IGZhbHNlO1xuXHRcdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gUmVmZXJlbmNlIHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlXG5cdFx0XHRjb25zdCByZWZlcmVuY2VQcm9wZXJ0eSA9IGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5SZWZlcmVuY2VWYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUocmVmZXJlbmNlUHJvcGVydHkpKSB7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGggPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdCBhbmQgc3dpdGNoIGJhY2sgdG8gdHJlbmQgJ05vbmUnXG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBSZWZlcmVuY2UgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlJlZmVyZW5jZVZhbHVlO1xuXHRcdH1cblx0XHRpZiAoa3BpRGVmLmRhdGFwb2ludC50cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlUGF0aCAhPT0gdW5kZWZpbmVkIHx8IGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcyA9IFtcblx0XHRcdFx0ZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlN0cm9uZ0Rvd25EaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5Eb3duRGlmZmVyZW5jZS52YWx1ZU9mKCkgYXMgbnVtYmVyLFxuXHRcdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uVXBEaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXIsXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5TdHJvbmdVcERpZmZlcmVuY2UudmFsdWVPZigpIGFzIG51bWJlclxuXHRcdFx0XTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZFZhbHVlID0gXCJOb25lXCI7XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlVGFyZ2V0KGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGFnZ3JlZ2F0aW9uSGVscGVyOiBBZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmOiBLUElEZWZpbml0aW9uKTogdm9pZCB7XG5cdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlKSB7XG5cdFx0aWYgKGRhdGFwb2ludEFubm90YXRpb24uVGFyZ2V0VmFsdWUuJHRhcmdldCkge1xuXHRcdFx0Ly8gVGFyZ2V0IHZhbHVlIGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlIChvdGhlcndpc2UgaWdub3JlKVxuXHRcdFx0Y29uc3QgdGFyZ2V0UHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlLiR0YXJnZXQgYXMgUHJvcGVydHk7XG5cdFx0XHRpZiAoYWdncmVnYXRpb25IZWxwZXIuaXNQcm9wZXJ0eUFnZ3JlZ2F0YWJsZSh0YXJnZXRQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC50YXJnZXRQYXRoID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZS5wYXRoO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUYXJnZXQgdmFsdWUgaXMgYSBzdGF0aWMgdmFsdWVcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudGFyZ2V0VmFsdWUgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShwcm9wZXJ0eTogUHJvcGVydHkpOiBOYXZpZ2F0aW9uSW5mbyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBBbm5vdGF0aW9uVGVybTxhbnk+PiA9IHByb3BlcnR5LmFubm90YXRpb25zW1wiQ29tbW9uXCJdIHx8IHt9O1xuXG5cdC8vIExvb2sgZm9yIHRoZSBzZW1hbnRpY09iamVjdCBhbm5vdGF0aW9uIChpZiBhbnkpXG5cdGxldCBzZW1hbnRpY09iamVjdEFubm90YXRpb246IFNlbWFudGljT2JqZWN0IHwgdW5kZWZpbmVkO1xuXHRPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykuZm9yRWFjaCgoYW5ub3RhdGlvbktleSkgPT4ge1xuXHRcdGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9uc1thbm5vdGF0aW9uS2V5XTtcblx0XHRpZiAoYW5ub3RhdGlvbi50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3QpIHtcblx0XHRcdGlmICghYW5ub3RhdGlvbi5xdWFsaWZpZXIgfHwgIXNlbWFudGljT2JqZWN0QW5ub3RhdGlvbikge1xuXHRcdFx0XHQvLyBXZSBhbHdheXMgdGFrZSB0aGUgYW5ub3RhdGlvbiB3aXRob3V0IHF1YWxpZmllciBpZiB0aGVyZSdzIG9uZSwgb3RoZXJ3aXNlIHdlIHRha2UgdGhlIGZpcnN0IG9uZVxuXHRcdFx0XHRzZW1hbnRpY09iamVjdEFubm90YXRpb24gPSBhbm5vdGF0aW9uO1xuXHRcdFx0fVxuXHRcdH1cblx0fSk7XG5cblx0aWYgKHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbikge1xuXHRcdGNvbnN0IHJlc3VsdCA9IHtcblx0XHRcdHNlbWFudGljT2JqZWN0OiBzZW1hbnRpY09iamVjdEFubm90YXRpb24udG9TdHJpbmcoKSxcblx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHR9O1xuXG5cdFx0Ly8gTG9vayBmb3IgdGhlIHVuYXZhaWxhYmxlIGFjdGlvbnMgKGlmIGFueSlcblx0XHRjb25zdCBhbm5vdGF0aW9uS2V5ID0gT2JqZWN0LmtleXMoYW5ub3RhdGlvbnMpLmZpbmQoKGtleSkgPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5XS50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3RVbmF2YWlsYWJsZUFjdGlvbnMgJiZcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5XS5xdWFsaWZpZXIgPT09IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbj8ucXVhbGlmaWVyXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHRcdGlmIChhbm5vdGF0aW9uS2V5KSB7XG5cdFx0XHRyZXN1bHQudW5hdmFpbGFibGVBY3Rpb25zID0gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbktleV07XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtQSURlZmluaXRpb24oa3BpTmFtZTogc3RyaW5nLCBrcGlDb25maWc6IEtQSUNvbmZpZ3VyYXRpb24sIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBLUElEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcblx0Y29uc3Qga3BpQ29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0Q29udmVydGVyQ29udGV4dEZvcihgLyR7a3BpQ29uZmlnLmVudGl0eVNldH1gKTtcblx0Y29uc3QgYWdncmVnYXRpb25IZWxwZXIgPSBuZXcgQWdncmVnYXRpb25IZWxwZXIoa3BpQ29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlKCksIGtwaUNvbnZlcnRlckNvbnRleHQpO1xuXG5cdGlmICghYWdncmVnYXRpb25IZWxwZXIuaXNBbmFseXRpY3NTdXBwb3J0ZWQoKSkge1xuXHRcdC8vIFRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllc1xuXHRcdGNvbnZlcnRlckNvbnRleHRcblx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHQuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5Lk1lZGl1bSwgSXNzdWVUeXBlLktQSV9JU1NVRVMuTk9fQU5BTFlUSUNTICsga3BpQ29uZmlnLmVudGl0eVNldCk7XG5cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0bGV0IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBTZWxlY3Rpb25WYXJpYW50VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGUgfCB1bmRlZmluZWQ7XG5cdGxldCBjaGFydEFubm90YXRpb246IENoYXJ0IHwgdW5kZWZpbmVkO1xuXHRsZXQgbmF2aWdhdGlvbkluZm86IE5hdmlnYXRpb25JbmZvIHwgdW5kZWZpbmVkO1xuXG5cdC8vIFNlYXJjaCBmb3IgYSBLUEkgd2l0aCB0aGUgcXVhbGlmaWVyIGZybW8gdGhlIG1hbmlmZXN0XG5cdGNvbnN0IGFLUElBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJVSVwiLCBVSUFubm90YXRpb25UZXJtcy5LUEkpIGFzIEtQSVtdO1xuXHRjb25zdCB0YXJnZXRLUEkgPSBhS1BJQW5ub3RhdGlvbnMuZmluZCgoa3BpKSA9PiB7XG5cdFx0cmV0dXJuIGtwaS5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdH0pO1xuXHRpZiAodGFyZ2V0S1BJKSB7XG5cdFx0ZGF0YXBvaW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5EYXRhUG9pbnQ7XG5cdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRLUEkuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5EZXRhaWw/LkRlZmF1bHRQcmVzZW50YXRpb25WYXJpYW50O1xuXHRcdGNoYXJ0QW5ub3RhdGlvbiA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uPy5WaXN1YWxpemF0aW9ucz8uZmluZCgodml6OiBhbnkpID0+IHtcblx0XHRcdHJldHVybiB2aXouJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ2hhcnREZWZpbml0aW9uVHlwZTtcblx0XHR9KT8uJHRhcmdldCBhcyBDaGFydDtcblxuXHRcdGlmICh0YXJnZXRLUEkuRGV0YWlsPy5TZW1hbnRpY09iamVjdCkge1xuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0OiB0YXJnZXRLUEkuRGV0YWlsLlNlbWFudGljT2JqZWN0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGFjdGlvbjogdGFyZ2V0S1BJLkRldGFpbC5BY3Rpb24/LnRvU3RyaW5nKCksXG5cdFx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIEZhbGxiYWNrOiB0cnkgdG8gZmluZCBhIFNQViB3aXRoIHRoZSBzYW1lIHF1YWxpZmllclxuXHRcdGNvbnN0IGFTUFZBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIlVJXCIsXG5cdFx0XHRVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0KSBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50W107XG5cdFx0Y29uc3QgdGFyZ2V0U1BWID0gYVNQVkFubm90YXRpb25zLmZpbmQoKHNwdikgPT4ge1xuXHRcdFx0cmV0dXJuIHNwdi5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdFx0fSk7XG5cdFx0aWYgKHRhcmdldFNQVikge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRTUFYuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdGFyZ2V0U1BWLlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zPy5maW5kKCh2aXo6IGFueSkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdml6LiR0YXJnZXQuJFR5cGUgPT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFQb2ludFR5cGU7XG5cdFx0XHR9KT8uJHRhcmdldCBhcyBEYXRhUG9pbnQ7XG5cdFx0XHRjaGFydEFubm90YXRpb24gPSBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbj8uVmlzdWFsaXphdGlvbnM/LmZpbmQoKHZpejogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiB2aXouJHRhcmdldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ2hhcnREZWZpbml0aW9uVHlwZTtcblx0XHRcdH0pPy4kdGFyZ2V0IGFzIENoYXJ0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDb3VsZG4ndCBmaW5kIGEgS1BJIG9yIGEgU1BWIGFubm90YXRpb24gd2l0aCB0aGUgcXVhbGlmaWVyIGZyb20gdGhlIG1hbmlmZXN0XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfTk9UX0ZPVU5EICsga3BpQ29uZmlnLnF1YWxpZmllcik7XG5cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiB8fCAhZGF0YXBvaW50QW5ub3RhdGlvbiB8fCAhY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Ly8gQ291bGRuJ3QgZmluZCBhIGNoYXJ0IG9yIGRhdGFwb2ludCBkZWZpbml0aW9uXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfREVUQUlMX05PVF9GT1VORCArIGtwaUNvbmZpZy5xdWFsaWZpZXIpO1xuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IGRhdGFwb2ludFByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoZGF0YXBvaW50UHJvcGVydHkpKSB7XG5cdFx0Ly8gVGhlIG1haW4gcHJvcGVydHkgb2YgdGhlIEtQSSBpcyBub3QgYWdncmVnYXRhYmxlIC0tPiBXZSBjYW4ndCBjYWxjdWxhdGUgaXRzIHZhbHVlIHNvIHdlIGlnbm9yZSB0aGUgS1BJXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShcblx0XHRcdFx0SXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRJc3N1ZVNldmVyaXR5Lk1lZGl1bSxcblx0XHRcdFx0SXNzdWVUeXBlLktQSV9JU1NVRVMuTUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFICsga3BpQ29uZmlnLnF1YWxpZmllclxuXHRcdFx0KTtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Ly8gQ2hhcnQgZGVmaW5pdGlvblxuXHRjb25zdCBjaGFydERlZiA9IGNvbnZlcnRLUElDaGFydChjaGFydEFubm90YXRpb24sIHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uKTtcblx0aWYgKCFjaGFydERlZikge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBrcGlEZWY6IEtQSURlZmluaXRpb24gPSB7XG5cdFx0aWQ6IGdldEtQSUlEKGtwaU5hbWUpLFxuXHRcdGVudGl0eVNldDoga3BpQ29uZmlnLmVudGl0eVNldCxcblx0XHRkYXRhcG9pbnQ6IHtcblx0XHRcdHByb3BlcnR5UGF0aDogZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS5wYXRoLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhcG9pbnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHR0aXRsZTogZGF0YXBvaW50QW5ub3RhdGlvbi5UaXRsZT8udG9TdHJpbmcoKSxcblx0XHRcdGRlc2NyaXB0aW9uOiBkYXRhcG9pbnRBbm5vdGF0aW9uLkRlc2NyaXB0aW9uPy50b1N0cmluZygpXG5cdFx0fSxcblx0XHRzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnM6IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXG5cdFx0XHQ/IGdldEZpbHRlckRlZmluaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pXG5cdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRjaGFydDogY2hhcnREZWZcblx0fTtcblxuXHQvLyBOYXZpZ2F0aW9uXG5cdGlmICghbmF2aWdhdGlvbkluZm8pIHtcblx0XHQvLyBObyBuYXZpZ2F0aW9uSW5mbyB3YXMgZm91bmQgaW4gdGhlIEtQSSBhbm5vdGF0aW9uIC0tPiB0cnkgdGhlIG91dGJvdW5kIG5hdmlnYXRpb24gZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRpZiAoa3BpQ29uZmlnLmRldGFpbE5hdmlnYXRpb24pIHtcblx0XHRcdG5hdmlnYXRpb25JbmZvID0ge1xuXHRcdFx0XHRvdXRib3VuZE5hdmlnYXRpb246IGtwaUNvbmZpZy5kZXRhaWxOYXZpZ2F0aW9uXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBObyBvdXRib3VuZCBuYXZpZ2F0aW9uIGluIHRoZSBtYW5pZmVzdCAtLT4gdHJ5IHRoZSBzZW1hbnRpYyBvYmplY3Qgb24gdGhlIERhdGFwb2ludCB2YWx1ZVxuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShkYXRhcG9pbnRQcm9wZXJ0eSk7XG5cdFx0fVxuXHR9XG5cdGlmIChuYXZpZ2F0aW9uSW5mbykge1xuXHRcdGtwaURlZi5uYXZpZ2F0aW9uID0gbmF2aWdhdGlvbkluZm87XG5cdH1cblxuXHR1cGRhdGVDdXJyZW5jeShkYXRhcG9pbnRBbm5vdGF0aW9uLCBrcGlEZWYpO1xuXHR1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblx0dXBkYXRlVHJlbmQoZGF0YXBvaW50QW5ub3RhdGlvbiwgYWdncmVnYXRpb25IZWxwZXIsIGtwaURlZik7XG5cdHVwZGF0ZVRhcmdldChkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblxuXHRyZXR1cm4ga3BpRGVmO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIEtQSSBkZWZpbml0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdCBhbmQgdGhlIGFubm90YXRpb25zLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dCBmb3IgdGhlIHBhZ2VcbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgS1BJIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLUElEZWZpbml0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogS1BJRGVmaW5pdGlvbltdIHtcblx0Y29uc3Qga3BpQ29uZmlncyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0S1BJQ29uZmlndXJhdGlvbigpLFxuXHRcdGtwaURlZnM6IEtQSURlZmluaXRpb25bXSA9IFtdO1xuXG5cdE9iamVjdC5rZXlzKGtwaUNvbmZpZ3MpLmZvckVhY2goKGtwaU5hbWUpID0+IHtcblx0XHRjb25zdCBvRGVmID0gY3JlYXRlS1BJRGVmaW5pdGlvbihrcGlOYW1lLCBrcGlDb25maWdzW2twaU5hbWVdLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRpZiAob0RlZikge1xuXHRcdFx0a3BpRGVmcy5wdXNoKG9EZWYpO1xuXHRcdH1cblx0fSk7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
374
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEZXZpYXRpb25JbmRpY2F0b3JGcm9tVHJlbmRUeXBlIiwiS1BJQ2hhcnRUeXBlRnJvbVVJIiwiY29udmVydEtQSUNoYXJ0IiwiY2hhcnRBbm5vdGF0aW9uIiwicHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24iLCJNZWFzdXJlcyIsInVuZGVmaW5lZCIsImNoYXJEaW1lbnNpb25zIiwiRGltZW5zaW9ucyIsIm1hcCIsInByb3BlcnR5UGF0aCIsImRpbUF0dHJpYnV0ZSIsIkRpbWVuc2lvbkF0dHJpYnV0ZXMiLCJmaW5kIiwiYXR0cmlidXRlIiwiRGltZW5zaW9uIiwidmFsdWUiLCJuYW1lIiwibGFiZWwiLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJMYWJlbCIsInRvU3RyaW5nIiwicm9sZSIsIlJvbGUiLCJyZXBsYWNlIiwiY2hhcnRNZWFzdXJlcyIsIm1lYXN1cmVBdHRyaWJ1dGUiLCJNZWFzdXJlQXR0cmlidXRlcyIsIk1lYXN1cmUiLCJjaGFydFR5cGUiLCJDaGFydFR5cGUiLCJkaW1lbnNpb25zIiwibWVhc3VyZXMiLCJzb3J0T3JkZXIiLCJTb3J0T3JkZXIiLCJQcm9wZXJ0eSIsImRlc2NlbmRpbmciLCJEZXNjZW5kaW5nIiwibWF4SXRlbXMiLCJNYXhJdGVtcyIsInZhbHVlT2YiLCJ1cGRhdGVDdXJyZW5jeSIsImRhdGFwb2ludEFubm90YXRpb24iLCJrcGlEZWYiLCJ0YXJnZXRWYWx1ZVByb3BlcnR5IiwiVmFsdWUiLCJJU09DdXJyZW5jeSIsImN1cnJlbmN5IiwiaXNQYXRoRXhwcmVzc2lvbiIsImRhdGFwb2ludCIsInVuaXQiLCJpc0N1cnJlbmN5IiwiaXNQYXRoIiwiVW5pdCIsInVwZGF0ZUNyaXRpY2FsaXR5IiwiYWdncmVnYXRpb25IZWxwZXIiLCJDcml0aWNhbGl0eSIsImNyaXRpY2FsaXR5UHJvcGVydHkiLCJpc1Byb3BlcnR5QWdncmVnYXRhYmxlIiwiY3JpdGljYWxpdHlQYXRoIiwicGF0aCIsImNyaXRpY2FsaXR5VmFsdWUiLCJNZXNzYWdlVHlwZSIsIk5vbmUiLCJnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUiLCJDcml0aWNhbGl0eUNhbGN1bGF0aW9uIiwiY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUiLCJJbXByb3ZlbWVudERpcmVjdGlvbiIsImNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzIiwicHVzaCIsIkRldmlhdGlvblJhbmdlTG93VmFsdWUiLCJUb2xlcmFuY2VSYW5nZUxvd1ZhbHVlIiwiQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUiLCJBY2NlcHRhbmNlUmFuZ2VIaWdoVmFsdWUiLCJUb2xlcmFuY2VSYW5nZUhpZ2hWYWx1ZSIsIkRldmlhdGlvblJhbmdlSGlnaFZhbHVlIiwidXBkYXRlVHJlbmQiLCJUcmVuZCIsInRyZW5kUHJvcGVydHkiLCJ0cmVuZFBhdGgiLCJ0cmVuZFZhbHVlIiwiVHJlbmRDYWxjdWxhdGlvbiIsInRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlIiwiSXNSZWxhdGl2ZURpZmZlcmVuY2UiLCJSZWZlcmVuY2VWYWx1ZSIsInJlZmVyZW5jZVByb3BlcnR5IiwidHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGgiLCJ0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlVmFsdWUiLCJ0cmVuZENhbGN1bGF0aW9uVHJlc2hvbGRzIiwiU3Ryb25nRG93bkRpZmZlcmVuY2UiLCJEb3duRGlmZmVyZW5jZSIsIlVwRGlmZmVyZW5jZSIsIlN0cm9uZ1VwRGlmZmVyZW5jZSIsInVwZGF0ZVRhcmdldCIsIlRhcmdldFZhbHVlIiwidGFyZ2V0UHJvcGVydHkiLCJ0YXJnZXRQYXRoIiwidGFyZ2V0VmFsdWUiLCJnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eSIsInByb3BlcnR5Iiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJhbm5vdGF0aW9uS2V5IiwiYW5ub3RhdGlvbiIsInRlcm0iLCJxdWFsaWZpZXIiLCJyZXN1bHQiLCJzZW1hbnRpY09iamVjdCIsInVuYXZhaWxhYmxlQWN0aW9ucyIsImtleSIsImNyZWF0ZUtQSURlZmluaXRpb24iLCJrcGlOYW1lIiwia3BpQ29uZmlnIiwiY29udmVydGVyQ29udGV4dCIsImtwaUNvbnZlcnRlckNvbnRleHQiLCJnZXRDb252ZXJ0ZXJDb250ZXh0Rm9yIiwiZW50aXR5U2V0IiwiQWdncmVnYXRpb25IZWxwZXIiLCJnZXRFbnRpdHlUeXBlIiwiaXNBbmFseXRpY3NTdXBwb3J0ZWQiLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiS1BJX0lTU1VFUyIsIk5PX0FOQUxZVElDUyIsInNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uIiwibmF2aWdhdGlvbkluZm8iLCJhS1BJQW5ub3RhdGlvbnMiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInRhcmdldEtQSSIsImtwaSIsIkRhdGFQb2ludCIsIlNlbGVjdGlvblZhcmlhbnQiLCJEZXRhaWwiLCJEZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsIlZpc3VhbGl6YXRpb25zIiwidml6IiwiaXNBbm5vdGF0aW9uT2ZUeXBlIiwiU2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJBY3Rpb24iLCJhU1BWQW5ub3RhdGlvbnMiLCJ0YXJnZXRTUFYiLCJzcHYiLCJQcmVzZW50YXRpb25WYXJpYW50IiwiS1BJX05PVF9GT1VORCIsIktQSV9ERVRBSUxfTk9UX0ZPVU5EIiwiZGF0YXBvaW50UHJvcGVydHkiLCJNQUlOX1BST1BFUlRZX05PVF9BR0dSRUdBVEFCTEUiLCJjaGFydERlZiIsImlkIiwiZ2V0S1BJSUQiLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJ0aXRsZSIsIlRpdGxlIiwiZGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsInNlbGVjdGlvblZhcmlhbnRGaWx0ZXJEZWZpbml0aW9ucyIsImdldEZpbHRlckRlZmluaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQiLCJjaGFydCIsImRldGFpbE5hdmlnYXRpb24iLCJvdXRib3VuZE5hdmlnYXRpb24iLCJuYXZpZ2F0aW9uIiwiZ2V0S1BJRGVmaW5pdGlvbnMiLCJrcGlDb25maWdzIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiZ2V0S1BJQ29uZmlndXJhdGlvbiIsImtwaURlZnMiLCJvRGVmIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJLUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24sIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IFNlbWFudGljT2JqZWN0IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tb25cIjtcbmltcG9ydCB7IENvbW1vbkFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvQ29tbW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdENoYXJ0LFxuXHRDcml0aWNhbGl0eVR5cGUsXG5cdERhdGFQb2ludCxcblx0RGF0YVBvaW50VHlwZSxcblx0SW1wcm92ZW1lbnREaXJlY3Rpb25UeXBlLFxuXHRLUEksXG5cdFByZXNlbnRhdGlvblZhcmlhbnRUeXBlLFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZSxcblx0VHJlbmRUeXBlXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB7IFVJQW5ub3RhdGlvblRlcm1zLCBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgSXNzdWVDYXRlZ29yeSwgSXNzdWVTZXZlcml0eSwgSXNzdWVUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIHsgRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvU2VsZWN0aW9uVmFyaWFudEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0RmlsdGVyRGVmaW5pdGlvbnNGcm9tU2VsZWN0aW9uVmFyaWFudCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvU2VsZWN0aW9uVmFyaWFudEhlbHBlclwiO1xuaW1wb3J0IHsgTWVzc2FnZVR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvZm9ybWF0dGVycy9UYWJsZUZvcm1hdHRlclR5cGVzXCI7XG5pbXBvcnQgeyBpc0Fubm90YXRpb25PZlR5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBpc1BhdGhFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uSGVscGVyIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvQWdncmVnYXRpb25cIjtcbmltcG9ydCB7IGdldEtQSUlEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB0eXBlIHsgS1BJQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRNZXNzYWdlVHlwZUZyb21Dcml0aWNhbGl0eVR5cGUgfSBmcm9tIFwiLi9Dcml0aWNhbGl0eVwiO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uSW5mbyA9IHtcblx0c2VtYW50aWNPYmplY3Q/OiBzdHJpbmc7XG5cdGFjdGlvbj86IHN0cmluZztcblx0dW5hdmFpbGFibGVBY3Rpb25zPzogc3RyaW5nW107XG5cdG91dGJvdW5kTmF2aWdhdGlvbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEtQSUNoYXJ0RGVmaW5pdGlvbiA9IHtcblx0Y2hhcnRUeXBlOiBzdHJpbmc7XG5cdGRpbWVuc2lvbnM6IHsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyByb2xlPzogc3RyaW5nIH1bXTtcblx0bWVhc3VyZXM6IHsgbmFtZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nOyByb2xlPzogc3RyaW5nIH1bXTtcblx0c29ydE9yZGVyPzogeyBuYW1lOiBzdHJpbmc7IGRlc2NlbmRpbmc6IGJvb2xlYW4gfVtdO1xuXHRtYXhJdGVtcz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEtQSURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdGVudGl0eVNldDogc3RyaW5nO1xuXHRkYXRhcG9pbnQ6IHtcblx0XHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRcdHByb3BlcnR5UGF0aDogc3RyaW5nO1xuXHRcdHVuaXQ/OiB7XG5cdFx0XHR2YWx1ZTogc3RyaW5nO1xuXHRcdFx0aXNQYXRoOiBib29sZWFuO1xuXHRcdFx0aXNDdXJyZW5jeTogYm9vbGVhbjtcblx0XHR9O1xuXHRcdGNyaXRpY2FsaXR5UGF0aD86IHN0cmluZztcblx0XHRjcml0aWNhbGl0eVZhbHVlPzogTWVzc2FnZVR5cGU7XG5cdFx0Y3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGU/OiBJbXByb3ZlbWVudERpcmVjdGlvblR5cGU7XG5cdFx0Y3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHM/OiAobnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbClbXTtcblx0XHR0aXRsZT86IHN0cmluZztcblx0XHRkZXNjcmlwdGlvbj86IHN0cmluZztcblx0XHR0cmVuZFBhdGg/OiBzdHJpbmc7XG5cdFx0dHJlbmRWYWx1ZT86IHN0cmluZztcblx0XHR0cmVuZENhbGN1bGF0aW9uUmVmZXJlbmNlVmFsdWU/OiBudW1iZXI7XG5cdFx0dHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGg/OiBzdHJpbmc7XG5cdFx0dHJlbmRDYWxjdWxhdGlvblRyZXNob2xkcz86IChudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKVtdO1xuXHRcdHRyZW5kQ2FsY3VsYXRpb25Jc1JlbGF0aXZlPzogYm9vbGVhbjtcblx0XHR0YXJnZXRWYWx1ZT86IG51bWJlcjtcblx0XHR0YXJnZXRQYXRoPzogc3RyaW5nO1xuXHR9O1xuXHRjaGFydDogS1BJQ2hhcnREZWZpbml0aW9uO1xuXHRzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnM/OiBGaWx0ZXJEZWZpbml0aW9uW107XG5cdG5hdmlnYXRpb24/OiBOYXZpZ2F0aW9uSW5mbztcbn07XG5cbmNvbnN0IERldmlhdGlvbkluZGljYXRvckZyb21UcmVuZFR5cGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG5cdFwiVUkuVHJlbmRUeXBlL1N0cm9uZ1VwXCI6IFwiVXBcIixcblx0XCJVSS5UcmVuZFR5cGUvVXBcIjogXCJVcFwiLFxuXHRcIlVJLlRyZW5kVHlwZS9TdHJvbmdEb3duXCI6IFwiRG93blwiLFxuXHRcIlVJLlRyZW5kVHlwZS9Eb3duXCI6IFwiRG93blwiLFxuXHRcIlVJLlRyZW5kVHlwZS9TaWRld2F5c1wiOiBcIk5vbmVcIlxufTtcblxuY29uc3QgS1BJQ2hhcnRUeXBlRnJvbVVJOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuXHRcIlVJLkNoYXJ0VHlwZS9Db2x1bW5TdGFja2VkXCI6IFwiU3RhY2tlZENvbHVtblwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9CYXJTdGFja2VkXCI6IFwiU3RhY2tlZEJhclwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9Eb251dFwiOiBcIkRvbnV0XCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0xpbmVcIjogXCJMaW5lXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0J1YmJsZVwiOiBcImJ1YmJsZVwiLFxuXHRcIlVJLkNoYXJ0VHlwZS9Db2x1bW5cIjogXCJjb2x1bW5cIixcblx0XCJVSS5DaGFydFR5cGUvQmFyXCI6IFwiYmFyXCIsXG5cdFwiVUkuQ2hhcnRUeXBlL1ZlcnRpY2FsQnVsbGV0XCI6IFwidmVydGljYWxfYnVsbGV0XCIsXG5cdFwiVUkuQ2hhcnRUeXBlL0NvbWJpbmF0aW9uXCI6IFwiY29tYmluYXRpb25cIixcblx0XCJVSS5DaGFydFR5cGUvU2NhdHRlclwiOiBcInNjYXR0ZXJcIlxufTtcblxuZnVuY3Rpb24gY29udmVydEtQSUNoYXJ0KGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnQsIHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZSk6IEtQSUNoYXJ0RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG5cdGlmIChjaGFydEFubm90YXRpb24uTWVhc3VyZXMgPT09IHVuZGVmaW5lZCkge1xuXHRcdC8vIFdlIG5lZWQgYXQgbGVhc3QgMSBtZWFzdXJlIChidXQgbm8gZGltZW5zaW9uIGlzIGFsbG93ZWQsIGUuZy4gZm9yIGJ1YmJsZSBjaGFydClcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Y29uc3QgY2hhckRpbWVuc2lvbnMgPSBjaGFydEFubm90YXRpb24uRGltZW5zaW9uc1xuXHRcdD8gY2hhcnRBbm5vdGF0aW9uLkRpbWVuc2lvbnMubWFwKChwcm9wZXJ0eVBhdGgpID0+IHtcblx0XHRcdFx0Y29uc3QgZGltQXR0cmlidXRlID0gY2hhcnRBbm5vdGF0aW9uLkRpbWVuc2lvbkF0dHJpYnV0ZXM/LmZpbmQoKGF0dHJpYnV0ZSkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBhdHRyaWJ1dGUuRGltZW5zaW9uPy52YWx1ZSA9PT0gcHJvcGVydHlQYXRoLnZhbHVlO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRuYW1lOiBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRcdFx0bGFiZWw6IHByb3BlcnR5UGF0aC4kdGFyZ2V0LmFubm90YXRpb25zLkNvbW1vbj8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgcHJvcGVydHlQYXRoLnZhbHVlLFxuXHRcdFx0XHRcdHJvbGU6IGRpbUF0dHJpYnV0ZT8uUm9sZT8ucmVwbGFjZShcIlVJLkNoYXJ0RGltZW5zaW9uUm9sZVR5cGUvXCIsIFwiXCIpXG5cdFx0XHRcdH07XG5cdFx0ICB9KVxuXHRcdDogW107XG5cblx0Y29uc3QgY2hhcnRNZWFzdXJlcyA9IGNoYXJ0QW5ub3RhdGlvbi5NZWFzdXJlcy5tYXAoKHByb3BlcnR5UGF0aCkgPT4ge1xuXHRcdGNvbnN0IG1lYXN1cmVBdHRyaWJ1dGUgPSBjaGFydEFubm90YXRpb24uTWVhc3VyZUF0dHJpYnV0ZXM/LmZpbmQoKGF0dHJpYnV0ZSkgPT4ge1xuXHRcdFx0cmV0dXJuIGF0dHJpYnV0ZS5NZWFzdXJlPy52YWx1ZSA9PT0gcHJvcGVydHlQYXRoLnZhbHVlO1xuXHRcdH0pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRuYW1lOiBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRsYWJlbDogcHJvcGVydHlQYXRoLiR0YXJnZXQuYW5ub3RhdGlvbnMuQ29tbW9uPy5MYWJlbD8udG9TdHJpbmcoKSB8fCBwcm9wZXJ0eVBhdGgudmFsdWUsXG5cdFx0XHRyb2xlOiBtZWFzdXJlQXR0cmlidXRlPy5Sb2xlPy5yZXBsYWNlKFwiVUkuQ2hhcnRNZWFzdXJlUm9sZVR5cGUvXCIsIFwiXCIpXG5cdFx0fTtcblx0fSk7XG5cblx0cmV0dXJuIHtcblx0XHRjaGFydFR5cGU6IEtQSUNoYXJ0VHlwZUZyb21VSVtjaGFydEFubm90YXRpb24uQ2hhcnRUeXBlXSB8fCBcIkxpbmVcIixcblx0XHRkaW1lbnNpb25zOiBjaGFyRGltZW5zaW9ucyxcblx0XHRtZWFzdXJlczogY2hhcnRNZWFzdXJlcyxcblx0XHRzb3J0T3JkZXI6IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uPy5Tb3J0T3JkZXI/Lm1hcCgoc29ydE9yZGVyKSA9PiB7XG5cdFx0XHRyZXR1cm4geyBuYW1lOiBzb3J0T3JkZXIuUHJvcGVydHk/LnZhbHVlIHx8IFwiXCIsIGRlc2NlbmRpbmc6ICEhc29ydE9yZGVyLkRlc2NlbmRpbmcgfTtcblx0XHR9KSxcblx0XHRtYXhJdGVtczogcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/Lk1heEl0ZW1zPy52YWx1ZU9mKCkgYXMgbnVtYmVyXG5cdH07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUN1cnJlbmN5KGRhdGFwb2ludEFubm90YXRpb246IERhdGFQb2ludFR5cGUsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRjb25zdCB0YXJnZXRWYWx1ZVByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRpZiAodGFyZ2V0VmFsdWVQcm9wZXJ0eS5hbm5vdGF0aW9ucy5NZWFzdXJlcz8uSVNPQ3VycmVuY3kpIHtcblx0XHRjb25zdCBjdXJyZW5jeSA9IHRhcmdldFZhbHVlUHJvcGVydHkuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LklTT0N1cnJlbmN5O1xuXHRcdGlmIChpc1BhdGhFeHByZXNzaW9uKGN1cnJlbmN5KSkge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogKGN1cnJlbmN5LiR0YXJnZXQgYXMgdW5rbm93biBhcyBQcm9wZXJ0eSkubmFtZSxcblx0XHRcdFx0aXNDdXJyZW5jeTogdHJ1ZSxcblx0XHRcdFx0aXNQYXRoOiB0cnVlXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnVuaXQgPSB7XG5cdFx0XHRcdHZhbHVlOiBjdXJyZW5jeS50b1N0cmluZygpLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiB0cnVlLFxuXHRcdFx0XHRpc1BhdGg6IGZhbHNlXG5cdFx0XHR9O1xuXHRcdH1cblx0fSBlbHNlIGlmICh0YXJnZXRWYWx1ZVByb3BlcnR5LmFubm90YXRpb25zLk1lYXN1cmVzPy5Vbml0KSB7XG5cdFx0Y29uc3QgdW5pdCA9IHRhcmdldFZhbHVlUHJvcGVydHkuYW5ub3RhdGlvbnMuTWVhc3VyZXM/LlVuaXQ7XG5cdFx0aWYgKGlzUGF0aEV4cHJlc3Npb24odW5pdCkpIHtcblx0XHRcdGtwaURlZi5kYXRhcG9pbnQudW5pdCA9IHtcblx0XHRcdFx0dmFsdWU6ICh1bml0LiR0YXJnZXQgYXMgdW5rbm93biBhcyBQcm9wZXJ0eSkubmFtZSxcblx0XHRcdFx0aXNDdXJyZW5jeTogZmFsc2UsXG5cdFx0XHRcdGlzUGF0aDogdHJ1ZVxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC51bml0ID0ge1xuXHRcdFx0XHR2YWx1ZTogdW5pdC50b1N0cmluZygpLFxuXHRcdFx0XHRpc0N1cnJlbmN5OiBmYWxzZSxcblx0XHRcdFx0aXNQYXRoOiBmYWxzZVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlQ3JpdGljYWxpdHkoZGF0YXBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50VHlwZSwgYWdncmVnYXRpb25IZWxwZXI6IEFnZ3JlZ2F0aW9uSGVscGVyLCBrcGlEZWY6IEtQSURlZmluaXRpb24pOiB2b2lkIHtcblx0aWYgKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHkpIHtcblx0XHRpZiAodHlwZW9mIGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHkgPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdC8vIENyaXRpY2FsaXR5IGlzIGEgcGF0aCAtLT4gY2hlY2sgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlXG5cdFx0XHRjb25zdCBjcml0aWNhbGl0eVByb3BlcnR5ID0gKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHkgYXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFByb3BlcnR5PikuJHRhcmdldDtcblx0XHRcdGlmIChhZ2dyZWdhdGlvbkhlbHBlci5pc1Byb3BlcnR5QWdncmVnYXRhYmxlKGNyaXRpY2FsaXR5UHJvcGVydHkpKSB7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlQYXRoID0gKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHkgYXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPENyaXRpY2FsaXR5VHlwZT4pLnBhdGg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBUaGUgcHJvcGVydHkgaXNuJ3QgYWdncmVnYXRhYmxlIC0tPiB3ZSBpZ25vcmUgaXRcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuTm9uZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gQ3JpdGljYWxpdHkgaXMgYW4gZW51bSBWYWx1ZSAtLT4gZ2V0IHRoZSBjb3JyZXNwb25kaW5nIHN0YXRpYyB2YWx1ZVxuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVZhbHVlID0gZ2V0TWVzc2FnZVR5cGVGcm9tQ3JpdGljYWxpdHlUeXBlKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHkpO1xuXHRcdH1cblx0fSBlbHNlIGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24pIHtcblx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25Nb2RlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkltcHJvdmVtZW50RGlyZWN0aW9uO1xuXHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMgPSBbXTtcblx0XHRzd2l0Y2ggKGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvbk1vZGUpIHtcblx0XHRcdGNhc2UgXCJVSS5JbXByb3ZlbWVudERpcmVjdGlvblR5cGUvVGFyZ2V0XCI6XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uRGV2aWF0aW9uUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VMb3dWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uQWNjZXB0YW5jZVJhbmdlTG93VmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkFjY2VwdGFuY2VSYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQuY3JpdGljYWxpdHlDYWxjdWxhdGlvblRocmVzaG9sZHMucHVzaChkYXRhcG9pbnRBbm5vdGF0aW9uLkNyaXRpY2FsaXR5Q2FsY3VsYXRpb24uVG9sZXJhbmNlUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkRldmlhdGlvblJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdGNhc2UgXCJVSS5JbXByb3ZlbWVudERpcmVjdGlvblR5cGUvTWluaW1pemVcIjpcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5BY2NlcHRhbmNlUmFuZ2VIaWdoVmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLlRvbGVyYW5jZVJhbmdlSGlnaFZhbHVlKTtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eUNhbGN1bGF0aW9uVGhyZXNob2xkcy5wdXNoKGRhdGFwb2ludEFubm90YXRpb24uQ3JpdGljYWxpdHlDYWxjdWxhdGlvbi5EZXZpYXRpb25SYW5nZUhpZ2hWYWx1ZSk7XG5cdFx0XHRcdGJyZWFrO1xuXG5cdFx0XHRjYXNlIFwiVUkuSW1wcm92ZW1lbnREaXJlY3Rpb25UeXBlL01heGltaXplXCI6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkRldmlhdGlvblJhbmdlTG93VmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLlRvbGVyYW5jZVJhbmdlTG93VmFsdWUpO1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LmNyaXRpY2FsaXR5Q2FsY3VsYXRpb25UaHJlc2hvbGRzLnB1c2goZGF0YXBvaW50QW5ub3RhdGlvbi5Dcml0aWNhbGl0eUNhbGN1bGF0aW9uLkFjY2VwdGFuY2VSYW5nZUxvd1ZhbHVlKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0a3BpRGVmLmRhdGFwb2ludC5jcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuTm9uZTtcblx0fVxufVxuXG5mdW5jdGlvbiB1cGRhdGVUcmVuZChkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlLCBhZ2dyZWdhdGlvbkhlbHBlcjogQWdncmVnYXRpb25IZWxwZXIsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZCkge1xuXHRcdGlmICh0eXBlb2YgZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZCA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0Ly8gVHJlbmQgaXMgYSBwYXRoIC0tPiBjaGVjayBpZiB0aGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBpcyBhZ2dyZWdhdGFibGVcblx0XHRcdGNvbnN0IHRyZW5kUHJvcGVydHkgPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZCBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248UHJvcGVydHk+KS4kdGFyZ2V0O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUodHJlbmRQcm9wZXJ0eSkpIHtcblx0XHRcdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZFBhdGggPSAoZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZCBhcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VHJlbmRUeXBlPikucGF0aDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIFRoZSBwcm9wZXJ0eSBpc24ndCBhZ2dyZWdhdGFibGUgLS0+IHdlIGlnbm9yZSBpdFxuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kVmFsdWUgPSBcIk5vbmVcIjtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gVHJlbmQgaXMgYW4gZW51bSBWYWx1ZSAtLT4gZ2V0IHRoZSBjb3JyZXNwb25kaW5nIHN0YXRpYyB2YWx1ZVxuXHRcdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZFZhbHVlID0gRGV2aWF0aW9uSW5kaWNhdG9yRnJvbVRyZW5kVHlwZVtkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kXSB8fCBcIk5vbmVcIjtcblx0XHR9XG5cdH0gZWxzZSBpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uKSB7XG5cdFx0a3BpRGVmLmRhdGFwb2ludC50cmVuZENhbGN1bGF0aW9uSXNSZWxhdGl2ZSA9IGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5Jc1JlbGF0aXZlRGlmZmVyZW5jZSA/IHRydWUgOiBmYWxzZTtcblx0XHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlJlZmVyZW5jZVZhbHVlLiR0YXJnZXQpIHtcblx0XHRcdC8vIFJlZmVyZW5jZSB2YWx1ZSBpcyBhIHBhdGggLS0+IGNoZWNrIGlmIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIGFnZ3JlZ2F0YWJsZVxuXHRcdFx0Y29uc3QgcmVmZXJlbmNlUHJvcGVydHkgPSBkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uUmVmZXJlbmNlVmFsdWUuJHRhcmdldCBhcyBQcm9wZXJ0eTtcblx0XHRcdGlmIChhZ2dyZWdhdGlvbkhlbHBlci5pc1Byb3BlcnR5QWdncmVnYXRhYmxlKHJlZmVyZW5jZVByb3BlcnR5KSkge1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VQYXRoID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlJlZmVyZW5jZVZhbHVlLnBhdGg7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBUaGUgcHJvcGVydHkgaXNuJ3QgYWdncmVnYXRhYmxlIC0tPiB3ZSBpZ25vcmUgaXQgYW5kIHN3aXRjaCBiYWNrIHRvIHRyZW5kICdOb25lJ1xuXHRcdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kVmFsdWUgPSBcIk5vbmVcIjtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gUmVmZXJlbmNlIHZhbHVlIGlzIGEgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VWYWx1ZSA9IGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5SZWZlcmVuY2VWYWx1ZTtcblx0XHR9XG5cdFx0aWYgKGtwaURlZi5kYXRhcG9pbnQudHJlbmRDYWxjdWxhdGlvblJlZmVyZW5jZVBhdGggIT09IHVuZGVmaW5lZCB8fCBrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25SZWZlcmVuY2VWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRyZW5kQ2FsY3VsYXRpb25UcmVzaG9sZHMgPSBbXG5cdFx0XHRcdGRhdGFwb2ludEFubm90YXRpb24uVHJlbmRDYWxjdWxhdGlvbi5TdHJvbmdEb3duRGlmZmVyZW5jZS52YWx1ZU9mKCkgYXMgbnVtYmVyLFxuXHRcdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uRG93bkRpZmZlcmVuY2UudmFsdWVPZigpIGFzIG51bWJlcixcblx0XHRcdFx0ZGF0YXBvaW50QW5ub3RhdGlvbi5UcmVuZENhbGN1bGF0aW9uLlVwRGlmZmVyZW5jZS52YWx1ZU9mKCkgYXMgbnVtYmVyLFxuXHRcdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uLlRyZW5kQ2FsY3VsYXRpb24uU3Ryb25nVXBEaWZmZXJlbmNlLnZhbHVlT2YoKSBhcyBudW1iZXJcblx0XHRcdF07XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGtwaURlZi5kYXRhcG9pbnQudHJlbmRWYWx1ZSA9IFwiTm9uZVwiO1xuXHR9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVRhcmdldChkYXRhcG9pbnRBbm5vdGF0aW9uOiBEYXRhUG9pbnRUeXBlLCBhZ2dyZWdhdGlvbkhlbHBlcjogQWdncmVnYXRpb25IZWxwZXIsIGtwaURlZjogS1BJRGVmaW5pdGlvbik6IHZvaWQge1xuXHRpZiAoZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZSkge1xuXHRcdGlmIChkYXRhcG9pbnRBbm5vdGF0aW9uLlRhcmdldFZhbHVlLiR0YXJnZXQpIHtcblx0XHRcdC8vIFRhcmdldCB2YWx1ZSBpcyBhIHBhdGggLS0+IGNoZWNrIGlmIHRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGlzIGFnZ3JlZ2F0YWJsZSAob3RoZXJ3aXNlIGlnbm9yZSlcblx0XHRcdGNvbnN0IHRhcmdldFByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRcdFx0aWYgKGFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUodGFyZ2V0UHJvcGVydHkpKSB7XG5cdFx0XHRcdGtwaURlZi5kYXRhcG9pbnQudGFyZ2V0UGF0aCA9IGRhdGFwb2ludEFubm90YXRpb24uVGFyZ2V0VmFsdWUucGF0aDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gVGFyZ2V0IHZhbHVlIGlzIGEgc3RhdGljIHZhbHVlXG5cdFx0XHRrcGlEZWYuZGF0YXBvaW50LnRhcmdldFZhbHVlID0gZGF0YXBvaW50QW5ub3RhdGlvbi5UYXJnZXRWYWx1ZTtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0TmF2aWdhdGlvbkluZm9Gcm9tUHJvcGVydHkocHJvcGVydHk6IFByb3BlcnR5KTogTmF2aWdhdGlvbkluZm8gfCB1bmRlZmluZWQge1xuXHRjb25zdCBhbm5vdGF0aW9ucyA9IHByb3BlcnR5LmFubm90YXRpb25zW1wiQ29tbW9uXCJdIHx8IHt9O1xuXHQvLyBMb29rIGZvciB0aGUgc2VtYW50aWNPYmplY3QgYW5ub3RhdGlvbiAoaWYgYW55KVxuXHRsZXQgc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uOiBTZW1hbnRpY09iamVjdCB8IHVuZGVmaW5lZDtcblx0T2JqZWN0LmtleXMoYW5ub3RhdGlvbnMpLmZvckVhY2goKGFubm90YXRpb25LZXkpID0+IHtcblx0XHRjb25zdCBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnNbYW5ub3RhdGlvbktleSBhcyBrZXlvZiB0eXBlb2YgYW5ub3RhdGlvbnNdO1xuXHRcdGlmIChhbm5vdGF0aW9uLnRlcm0gPT09IENvbW1vbkFubm90YXRpb25UZXJtcy5TZW1hbnRpY09iamVjdCkge1xuXHRcdFx0aWYgKCFhbm5vdGF0aW9uLnF1YWxpZmllciB8fCAhc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uKSB7XG5cdFx0XHRcdC8vIFdlIGFsd2F5cyB0YWtlIHRoZSBhbm5vdGF0aW9uIHdpdGhvdXQgcXVhbGlmaWVyIGlmIHRoZXJlJ3Mgb25lLCBvdGhlcndpc2Ugd2UgdGFrZSB0aGUgZmlyc3Qgb25lXG5cdFx0XHRcdHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbiA9IGFubm90YXRpb247XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcblxuXHRpZiAoc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0ge1xuXHRcdFx0c2VtYW50aWNPYmplY3Q6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvbi50b1N0cmluZygpLFxuXHRcdFx0dW5hdmFpbGFibGVBY3Rpb25zOiBbXVxuXHRcdH07XG5cblx0XHQvLyBMb29rIGZvciB0aGUgdW5hdmFpbGFibGUgYWN0aW9ucyAoaWYgYW55KVxuXHRcdGNvbnN0IGFubm90YXRpb25LZXkgPSBPYmplY3Qua2V5cyhhbm5vdGF0aW9ucykuZmluZCgoa2V5KSA9PiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRhbm5vdGF0aW9uc1trZXkgYXMga2V5b2YgdHlwZW9mIGFubm90YXRpb25zXS50ZXJtID09PSBDb21tb25Bbm5vdGF0aW9uVGVybXMuU2VtYW50aWNPYmplY3RVbmF2YWlsYWJsZUFjdGlvbnMgJiZcblx0XHRcdFx0YW5ub3RhdGlvbnNba2V5IGFzIGtleW9mIHR5cGVvZiBhbm5vdGF0aW9uc10ucXVhbGlmaWVyID09PSBzZW1hbnRpY09iamVjdEFubm90YXRpb24/LnF1YWxpZmllclxuXHRcdFx0KTtcblx0XHR9KTtcblx0XHRpZiAoYW5ub3RhdGlvbktleSkge1xuXHRcdFx0cmVzdWx0LnVuYXZhaWxhYmxlQWN0aW9ucyA9IGFubm90YXRpb25zW2Fubm90YXRpb25LZXkgYXMga2V5b2YgdHlwZW9mIGFubm90YXRpb25zXTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlS1BJRGVmaW5pdGlvbihrcGlOYW1lOiBzdHJpbmcsIGtwaUNvbmZpZzogS1BJQ29uZmlndXJhdGlvbiwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEtQSURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuXHRjb25zdCBrcGlDb252ZXJ0ZXJDb250ZXh0ID0gY29udmVydGVyQ29udGV4dC5nZXRDb252ZXJ0ZXJDb250ZXh0Rm9yKGAvJHtrcGlDb25maWcuZW50aXR5U2V0fWApO1xuXHRjb25zdCBhZ2dyZWdhdGlvbkhlbHBlciA9IG5ldyBBZ2dyZWdhdGlvbkhlbHBlcihrcGlDb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKSwga3BpQ29udmVydGVyQ29udGV4dCk7XG5cblx0aWYgKCFhZ2dyZWdhdGlvbkhlbHBlci5pc0FuYWx5dGljc1N1cHBvcnRlZCgpKSB7XG5cdFx0Ly8gVGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5OT19BTkFMWVRJQ1MgKyBrcGlDb25maWcuZW50aXR5U2V0KTtcblxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRsZXQgc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb246IFNlbGVjdGlvblZhcmlhbnRUeXBlIHwgdW5kZWZpbmVkO1xuXHRsZXQgZGF0YXBvaW50QW5ub3RhdGlvbjogRGF0YVBvaW50VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uOiBQcmVzZW50YXRpb25WYXJpYW50VHlwZSB8IHVuZGVmaW5lZDtcblx0bGV0IGNoYXJ0QW5ub3RhdGlvbjogQ2hhcnQgfCB1bmRlZmluZWQ7XG5cdGxldCBuYXZpZ2F0aW9uSW5mbzogTmF2aWdhdGlvbkluZm8gfCB1bmRlZmluZWQ7XG5cblx0Ly8gU2VhcmNoIGZvciBhIEtQSSB3aXRoIHRoZSBxdWFsaWZpZXIgZnJtbyB0aGUgbWFuaWZlc3Rcblx0Y29uc3QgYUtQSUFubm90YXRpb25zID0ga3BpQ29udmVydGVyQ29udGV4dC5nZXRBbm5vdGF0aW9uc0J5VGVybShcIlVJXCIsIFVJQW5ub3RhdGlvblRlcm1zLktQSSkgYXMgS1BJW107XG5cdGNvbnN0IHRhcmdldEtQSSA9IGFLUElBbm5vdGF0aW9ucy5maW5kKChrcGkpID0+IHtcblx0XHRyZXR1cm4ga3BpLnF1YWxpZmllciA9PT0ga3BpQ29uZmlnLnF1YWxpZmllcjtcblx0fSk7XG5cdGlmICh0YXJnZXRLUEkpIHtcblx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uID0gdGFyZ2V0S1BJLkRhdGFQb2ludDtcblx0XHRzZWxlY3Rpb25WYXJpYW50QW5ub3RhdGlvbiA9IHRhcmdldEtQSS5TZWxlY3Rpb25WYXJpYW50O1xuXHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdGFyZ2V0S1BJLkRldGFpbD8uRGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0Y2hhcnRBbm5vdGF0aW9uID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zPy5maW5kKCh2aXopID0+IHtcblx0XHRcdHJldHVybiBpc0Fubm90YXRpb25PZlR5cGU8Q2hhcnQ+KHZpei4kdGFyZ2V0LCBVSUFubm90YXRpb25UeXBlcy5DaGFydERlZmluaXRpb25UeXBlKTtcblx0XHR9KT8uJHRhcmdldCBhcyBDaGFydDtcblxuXHRcdGlmICh0YXJnZXRLUEkuRGV0YWlsPy5TZW1hbnRpY09iamVjdCkge1xuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSB7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0OiB0YXJnZXRLUEkuRGV0YWlsLlNlbWFudGljT2JqZWN0LnRvU3RyaW5nKCksXG5cdFx0XHRcdGFjdGlvbjogdGFyZ2V0S1BJLkRldGFpbC5BY3Rpb24/LnRvU3RyaW5nKCksXG5cdFx0XHRcdHVuYXZhaWxhYmxlQWN0aW9uczogW11cblx0XHRcdH07XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIEZhbGxiYWNrOiB0cnkgdG8gZmluZCBhIFNQViB3aXRoIHRoZSBzYW1lIHF1YWxpZmllclxuXHRcdGNvbnN0IGFTUFZBbm5vdGF0aW9ucyA9IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIlVJXCIsXG5cdFx0XHRVSUFubm90YXRpb25UZXJtcy5TZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50XG5cdFx0KSBhcyBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50W107XG5cdFx0Y29uc3QgdGFyZ2V0U1BWID0gYVNQVkFubm90YXRpb25zLmZpbmQoKHNwdikgPT4ge1xuXHRcdFx0cmV0dXJuIHNwdi5xdWFsaWZpZXIgPT09IGtwaUNvbmZpZy5xdWFsaWZpZXI7XG5cdFx0fSk7XG5cdFx0aWYgKHRhcmdldFNQVikge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24gPSB0YXJnZXRTUFYuU2VsZWN0aW9uVmFyaWFudDtcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdGFyZ2V0U1BWLlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHRkYXRhcG9pbnRBbm5vdGF0aW9uID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24/LlZpc3VhbGl6YXRpb25zPy5maW5kKCh2aXopID0+IHtcblx0XHRcdFx0cmV0dXJuIGlzQW5ub3RhdGlvbk9mVHlwZTxEYXRhUG9pbnQ+KHZpei4kdGFyZ2V0LCBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlKTtcblx0XHRcdH0pPy4kdGFyZ2V0IGFzIERhdGFQb2ludDtcblx0XHRcdGNoYXJ0QW5ub3RhdGlvbiA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uPy5WaXN1YWxpemF0aW9ucz8uZmluZCgodml6KSA9PiB7XG5cdFx0XHRcdHJldHVybiBpc0Fubm90YXRpb25PZlR5cGU8Q2hhcnQ+KHZpei4kdGFyZ2V0LCBVSUFubm90YXRpb25UeXBlcy5DaGFydERlZmluaXRpb25UeXBlKTtcblx0XHRcdH0pPy4kdGFyZ2V0IGFzIENoYXJ0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBDb3VsZG4ndCBmaW5kIGEgS1BJIG9yIGEgU1BWIGFubm90YXRpb24gd2l0aCB0aGUgcXVhbGlmaWVyIGZyb20gdGhlIG1hbmlmZXN0XG5cdFx0XHRjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdC5nZXREaWFnbm9zdGljcygpXG5cdFx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfTk9UX0ZPVU5EICsga3BpQ29uZmlnLnF1YWxpZmllcik7XG5cblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiB8fCAhZGF0YXBvaW50QW5ub3RhdGlvbiB8fCAhY2hhcnRBbm5vdGF0aW9uKSB7XG5cdFx0Ly8gQ291bGRuJ3QgZmluZCBhIGNoYXJ0IG9yIGRhdGFwb2ludCBkZWZpbml0aW9uXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuS1BJX0lTU1VFUy5LUElfREVUQUlMX05PVF9GT1VORCArIGtwaUNvbmZpZy5xdWFsaWZpZXIpO1xuXG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IGRhdGFwb2ludFByb3BlcnR5ID0gZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS4kdGFyZ2V0IGFzIFByb3BlcnR5O1xuXHRpZiAoIWFnZ3JlZ2F0aW9uSGVscGVyLmlzUHJvcGVydHlBZ2dyZWdhdGFibGUoZGF0YXBvaW50UHJvcGVydHkpKSB7XG5cdFx0Ly8gVGhlIG1haW4gcHJvcGVydHkgb2YgdGhlIEtQSSBpcyBub3QgYWdncmVnYXRhYmxlIC0tPiBXZSBjYW4ndCBjYWxjdWxhdGUgaXRzIHZhbHVlIHNvIHdlIGlnbm9yZSB0aGUgS1BJXG5cdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0LmdldERpYWdub3N0aWNzKClcblx0XHRcdC5hZGRJc3N1ZShcblx0XHRcdFx0SXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRJc3N1ZVNldmVyaXR5Lk1lZGl1bSxcblx0XHRcdFx0SXNzdWVUeXBlLktQSV9JU1NVRVMuTUFJTl9QUk9QRVJUWV9OT1RfQUdHUkVHQVRBQkxFICsga3BpQ29uZmlnLnF1YWxpZmllclxuXHRcdFx0KTtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Ly8gQ2hhcnQgZGVmaW5pdGlvblxuXHRjb25zdCBjaGFydERlZiA9IGNvbnZlcnRLUElDaGFydChjaGFydEFubm90YXRpb24sIHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uKTtcblx0aWYgKCFjaGFydERlZikge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRjb25zdCBrcGlEZWY6IEtQSURlZmluaXRpb24gPSB7XG5cdFx0aWQ6IGdldEtQSUlEKGtwaU5hbWUpLFxuXHRcdGVudGl0eVNldDoga3BpQ29uZmlnLmVudGl0eVNldCxcblx0XHRkYXRhcG9pbnQ6IHtcblx0XHRcdHByb3BlcnR5UGF0aDogZGF0YXBvaW50QW5ub3RhdGlvbi5WYWx1ZS5wYXRoLFxuXHRcdFx0YW5ub3RhdGlvblBhdGg6IGtwaUNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChkYXRhcG9pbnRBbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSksXG5cdFx0XHR0aXRsZTogZGF0YXBvaW50QW5ub3RhdGlvbi5UaXRsZT8udG9TdHJpbmcoKSxcblx0XHRcdGRlc2NyaXB0aW9uOiBkYXRhcG9pbnRBbm5vdGF0aW9uLkRlc2NyaXB0aW9uPy50b1N0cmluZygpXG5cdFx0fSxcblx0XHRzZWxlY3Rpb25WYXJpYW50RmlsdGVyRGVmaW5pdGlvbnM6IHNlbGVjdGlvblZhcmlhbnRBbm5vdGF0aW9uXG5cdFx0XHQ/IGdldEZpbHRlckRlZmluaXRpb25zRnJvbVNlbGVjdGlvblZhcmlhbnQoc2VsZWN0aW9uVmFyaWFudEFubm90YXRpb24pXG5cdFx0XHQ6IHVuZGVmaW5lZCxcblx0XHRjaGFydDogY2hhcnREZWZcblx0fTtcblxuXHQvLyBOYXZpZ2F0aW9uXG5cdGlmICghbmF2aWdhdGlvbkluZm8pIHtcblx0XHQvLyBObyBuYXZpZ2F0aW9uSW5mbyB3YXMgZm91bmQgaW4gdGhlIEtQSSBhbm5vdGF0aW9uIC0tPiB0cnkgdGhlIG91dGJvdW5kIG5hdmlnYXRpb24gZnJvbSB0aGUgbWFuaWZlc3Rcblx0XHRpZiAoa3BpQ29uZmlnLmRldGFpbE5hdmlnYXRpb24pIHtcblx0XHRcdG5hdmlnYXRpb25JbmZvID0ge1xuXHRcdFx0XHRvdXRib3VuZE5hdmlnYXRpb246IGtwaUNvbmZpZy5kZXRhaWxOYXZpZ2F0aW9uXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBObyBvdXRib3VuZCBuYXZpZ2F0aW9uIGluIHRoZSBtYW5pZmVzdCAtLT4gdHJ5IHRoZSBzZW1hbnRpYyBvYmplY3Qgb24gdGhlIERhdGFwb2ludCB2YWx1ZVxuXHRcdFx0bmF2aWdhdGlvbkluZm8gPSBnZXROYXZpZ2F0aW9uSW5mb0Zyb21Qcm9wZXJ0eShkYXRhcG9pbnRQcm9wZXJ0eSk7XG5cdFx0fVxuXHR9XG5cdGlmIChuYXZpZ2F0aW9uSW5mbykge1xuXHRcdGtwaURlZi5uYXZpZ2F0aW9uID0gbmF2aWdhdGlvbkluZm87XG5cdH1cblxuXHR1cGRhdGVDdXJyZW5jeShkYXRhcG9pbnRBbm5vdGF0aW9uLCBrcGlEZWYpO1xuXHR1cGRhdGVDcml0aWNhbGl0eShkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblx0dXBkYXRlVHJlbmQoZGF0YXBvaW50QW5ub3RhdGlvbiwgYWdncmVnYXRpb25IZWxwZXIsIGtwaURlZik7XG5cdHVwZGF0ZVRhcmdldChkYXRhcG9pbnRBbm5vdGF0aW9uLCBhZ2dyZWdhdGlvbkhlbHBlciwga3BpRGVmKTtcblxuXHRyZXR1cm4ga3BpRGVmO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIEtQSSBkZWZpbml0aW9ucyBmcm9tIHRoZSBtYW5pZmVzdCBhbmQgdGhlIGFubm90YXRpb25zLlxuICpcbiAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBjb252ZXJ0ZXIgY29udGV4dCBmb3IgdGhlIHBhZ2VcbiAqIEByZXR1cm5zIFJldHVybnMgYW4gYXJyYXkgb2YgS1BJIGRlZmluaXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLUElEZWZpbml0aW9ucyhjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogS1BJRGVmaW5pdGlvbltdIHtcblx0Y29uc3Qga3BpQ29uZmlncyA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0S1BJQ29uZmlndXJhdGlvbigpLFxuXHRcdGtwaURlZnM6IEtQSURlZmluaXRpb25bXSA9IFtdO1xuXG5cdE9iamVjdC5rZXlzKGtwaUNvbmZpZ3MpLmZvckVhY2goKGtwaU5hbWUpID0+IHtcblx0XHRjb25zdCBvRGVmID0gY3JlYXRlS1BJRGVmaW5pdGlvbihrcGlOYW1lLCBrcGlDb25maWdzW2twaU5hbWVdLCBjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRpZiAob0RlZikge1xuXHRcdFx0a3BpRGVmcy5wdXNoKG9EZWYpO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIGtwaURlZnM7XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztFQTBFQSxNQUFNQSwrQkFBdUQsR0FBRztJQUMvRCx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIseUJBQXlCLEVBQUUsTUFBTTtJQUNqQyxtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLHVCQUF1QixFQUFFO0VBQzFCLENBQUM7RUFFRCxNQUFNQyxrQkFBMEMsR0FBRztJQUNsRCw0QkFBNEIsRUFBRSxlQUFlO0lBQzdDLHlCQUF5QixFQUFFLFlBQVk7SUFDdkMsb0JBQW9CLEVBQUUsT0FBTztJQUM3QixtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLHFCQUFxQixFQUFFLFFBQVE7SUFDL0IscUJBQXFCLEVBQUUsUUFBUTtJQUMvQixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLDZCQUE2QixFQUFFLGlCQUFpQjtJQUNoRCwwQkFBMEIsRUFBRSxhQUFhO0lBQ3pDLHNCQUFzQixFQUFFO0VBQ3pCLENBQUM7RUFFRCxTQUFTQyxlQUFlLENBQUNDLGVBQXNCLEVBQUVDLDZCQUFzRCxFQUFrQztJQUFBO0lBQ3hJLElBQUlELGVBQWUsQ0FBQ0UsUUFBUSxLQUFLQyxTQUFTLEVBQUU7TUFDM0M7TUFDQSxPQUFPQSxTQUFTO0lBQ2pCO0lBRUEsTUFBTUMsY0FBYyxHQUFHSixlQUFlLENBQUNLLFVBQVUsR0FDOUNMLGVBQWUsQ0FBQ0ssVUFBVSxDQUFDQyxHQUFHLENBQUVDLFlBQVksSUFBSztNQUFBO01BQ2pE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
@@ -2,5 +2,5 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/core/converters/helpers/SelectionVariantHelper","sap/fe/core/formatters/TableFormatterTypes","sap/fe/core/templating/PropertyHelper","../../helpers/Aggregation","../../helpers/ID","./Criticality"],function(e,t,a,i,n,o,l){"use strict";var r={};var u=l.getMessageTypeFromCriticalityType;var c=o.getKPIID;var s=n.AggregationHelper;var d=i.isPathExpression;var v=a.MessageType;var p=t.getFilterDefinitionsFromSelectionVariant;var f=e.IssueType;var g=e.IssueSeverity;var y=e.IssueCategory;const C={"UI.TrendType/StrongUp":"Up","UI.TrendType/Up":"Up","UI.TrendType/StrongDown":"Down","UI.TrendType/Down":"Down","UI.TrendType/Sideways":"None"};const T={"UI.ChartType/ColumnStacked":"StackedColumn","UI.ChartType/BarStacked":"StackedBar","UI.ChartType/Donut":"Donut","UI.ChartType/Line":"Line","UI.ChartType/Bubble":"bubble","UI.ChartType/Column":"column","UI.ChartType/Bar":"bar","UI.ChartType/VerticalBullet":"vertical_bullet","UI.ChartType/Combination":"combination","UI.ChartType/Scatter":"scatter"};function h(e,t){var a,i;if(e.Measures===undefined){return undefined}const n=e.Dimensions?e.Dimensions.map(t=>{var a,i,n,o;const l=(a=e.DimensionAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Dimension)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartDimensionRoleType/","")}}):[];const o=e.Measures.map(t=>{var a,i,n,o;const l=(a=e.MeasureAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Measure)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartMeasureRoleType/","")}});return{chartType:T[e.ChartType]||"Line",dimensions:n,measures:o,sortOrder:t===null||t===void 0?void 0:(a=t.SortOrder)===null||a===void 0?void 0:a.map(e=>{var t;return{name:((t=e.Property)===null||t===void 0?void 0:t.value)||"",descending:!!e.Descending}}),maxItems:t===null||t===void 0?void 0:(i=t.MaxItems)===null||i===void 0?void 0:i.valueOf()}}function m(e,t){var a,i;const n=e.Value.$target;if((a=n.annotations.Measures)!==null&&a!==void 0&&a.ISOCurrency){var o;const e=(o=n.annotations.Measures)===null||o===void 0?void 0:o.ISOCurrency;if(d(e)){t.datapoint.unit={value:e.$target.name,isCurrency:true,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:true,isPath:false}}}else if((i=n.annotations.Measures)!==null&&i!==void 0&&i.Unit){var l;const e=(l=n.annotations.Measures)===null||l===void 0?void 0:l.Unit;if(d(e)){t.datapoint.unit={value:e.$target.name,isCurrency:false,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:false,isPath:false}}}}function I(e,t,a){if(e.Criticality){if(typeof e.Criticality==="object"){const i=e.Criticality.$target;if(t.isPropertyAggregatable(i)){a.datapoint.criticalityPath=e.Criticality.path}else{a.datapoint.criticalityValue=v.None}}else{a.datapoint.criticalityValue=u(e.Criticality)}}else if(e.CriticalityCalculation){a.datapoint.criticalityCalculationMode=e.CriticalityCalculation.ImprovementDirection;a.datapoint.criticalityCalculationThresholds=[];switch(a.datapoint.criticalityCalculationMode){case"UI.ImprovementDirectionType/Target":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Minimize":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Maximize":default:a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue)}}else{a.datapoint.criticalityValue=v.None}}function S(e,t,a){if(e.Trend){if(typeof e.Trend==="object"){const i=e.Trend.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendPath=e.Trend.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendValue=C[e.Trend]||"None"}}else if(e.TrendCalculation){a.datapoint.trendCalculationIsRelative=e.TrendCalculation.IsRelativeDifference?true:false;if(e.TrendCalculation.ReferenceValue.$target){const i=e.TrendCalculation.ReferenceValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendCalculationReferencePath=e.TrendCalculation.ReferenceValue.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendCalculationReferenceValue=e.TrendCalculation.ReferenceValue}if(a.datapoint.trendCalculationReferencePath!==undefined||a.datapoint.trendCalculationReferenceValue!==undefined){a.datapoint.trendCalculationTresholds=[e.TrendCalculation.StrongDownDifference.valueOf(),e.TrendCalculation.DownDifference.valueOf(),e.TrendCalculation.UpDifference.valueOf(),e.TrendCalculation.StrongUpDifference.valueOf()]}}else{a.datapoint.trendValue="None"}}function D(e,t,a){if(e.TargetValue){if(e.TargetValue.$target){const i=e.TargetValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.targetPath=e.TargetValue.path}}else{a.datapoint.targetValue=e.TargetValue}}}function b(e){const t=e.annotations["Common"]||{};let a;Object.keys(t).forEach(e=>{const i=t[e];if(i.term==="com.sap.vocabularies.Common.v1.SemanticObject"){if(!i.qualifier||!a){a=i}}});if(a){const e={semanticObject:a.toString(),unavailableActions:[]};const i=Object.keys(t).find(e=>{var i;return t[e].term==="com.sap.vocabularies.Common.v1.SemanticObjectUnavailableActions"&&t[e].qualifier===((i=a)===null||i===void 0?void 0:i.qualifier)});if(i){e.unavailableActions=t[i]}return e}else{return undefined}}function V(e,t,a){var i,n;const o=a.getConverterContextFor(`/${t.entitySet}`);const l=new s(o.getEntityType(),o);if(!l.isAnalyticsSupported()){a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.NO_ANALYTICS+t.entitySet);return undefined}let r;let u;let d;let v;let C;const T=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.KPI");const V=T.find(e=>e.qualifier===t.qualifier);if(V){var U,P,A,R,O;u=V.DataPoint;r=V.SelectionVariant;d=(U=V.Detail)===null||U===void 0?void 0:U.DefaultPresentationVariant;v=(P=d)===null||P===void 0?void 0:(A=P.Visualizations)===null||A===void 0?void 0:(R=A.find(e=>e.$target.$Type==="com.sap.vocabularies.UI.v1.ChartDefinitionType"))===null||R===void 0?void 0:R.$target;if((O=V.Detail)!==null&&O!==void 0&&O.SemanticObject){var M;C={semanticObject:V.Detail.SemanticObject.toString(),action:(M=V.Detail.Action)===null||M===void 0?void 0:M.toString(),unavailableActions:[]}}}else{const e=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.SelectionPresentationVariant");const i=e.find(e=>e.qualifier===t.qualifier);if(i){var $,N,w,L,_,E;r=i.SelectionVariant;d=i.PresentationVariant;u=($=d)===null||$===void 0?void 0:(N=$.Visualizations)===null||N===void 0?void 0:(w=N.find(e=>e.$target.$Type==="com.sap.vocabularies.UI.v1.DataPointType"))===null||w===void 0?void 0:w.$target;v=(L=d)===null||L===void 0?void 0:(_=L.Visualizations)===null||_===void 0?void 0:(E=_.find(e=>e.$target.$Type==="com.sap.vocabularies.UI.v1.ChartDefinitionType"))===null||E===void 0?void 0:E.$target}else{a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.KPI_NOT_FOUND+t.qualifier);return undefined}}if(!d||!u||!v){a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.KPI_DETAIL_NOT_FOUND+t.qualifier);return undefined}const j=u.Value.$target;if(!l.isPropertyAggregatable(j)){a.getDiagnostics().addIssue(y.Annotation,g.Medium,f.KPI_ISSUES.MAIN_PROPERTY_NOT_AGGREGATABLE+t.qualifier);return undefined}const q=h(v,d);if(!q){return undefined}const K={id:c(e),entitySet:t.entitySet,datapoint:{propertyPath:u.Value.path,annotationPath:o.getEntitySetBasedAnnotationPath(u.fullyQualifiedName),title:(i=u.Title)===null||i===void 0?void 0:i.toString(),description:(n=u.Description)===null||n===void 0?void 0:n.toString()},selectionVariantFilterDefinitions:r?p(r):undefined,chart:q};if(!C){if(t.detailNavigation){C={outboundNavigation:t.detailNavigation}}else{C=b(j)}}if(C){K.navigation=C}m(u,K);I(u,l,K);S(u,l,K);D(u,l,K);return K}function U(e){const t=e.getManifestWrapper().getKPIConfiguration(),a=[];Object.keys(t).forEach(i=>{const n=V(i,t[i],e);if(n){a.push(n)}});return a}r.getKPIDefinitions=U;return r},false);
5
+ sap.ui.define(["sap/fe/core/converters/helpers/IssueManager","sap/fe/core/converters/helpers/SelectionVariantHelper","sap/fe/core/formatters/TableFormatterTypes","sap/fe/core/helpers/TypeGuards","sap/fe/core/templating/PropertyHelper","../../helpers/Aggregation","../../helpers/ID","./Criticality"],function(e,t,a,i,n,o,l,r){"use strict";var u={};var c=r.getMessageTypeFromCriticalityType;var s=l.getKPIID;var d=o.AggregationHelper;var v=n.isPathExpression;var p=i.isAnnotationOfType;var f=a.MessageType;var g=t.getFilterDefinitionsFromSelectionVariant;var y=e.IssueType;var C=e.IssueSeverity;var h=e.IssueCategory;const T={"UI.TrendType/StrongUp":"Up","UI.TrendType/Up":"Up","UI.TrendType/StrongDown":"Down","UI.TrendType/Down":"Down","UI.TrendType/Sideways":"None"};const m={"UI.ChartType/ColumnStacked":"StackedColumn","UI.ChartType/BarStacked":"StackedBar","UI.ChartType/Donut":"Donut","UI.ChartType/Line":"Line","UI.ChartType/Bubble":"bubble","UI.ChartType/Column":"column","UI.ChartType/Bar":"bar","UI.ChartType/VerticalBullet":"vertical_bullet","UI.ChartType/Combination":"combination","UI.ChartType/Scatter":"scatter"};function I(e,t){var a,i;if(e.Measures===undefined){return undefined}const n=e.Dimensions?e.Dimensions.map(t=>{var a,i,n,o;const l=(a=e.DimensionAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Dimension)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartDimensionRoleType/","")}}):[];const o=e.Measures.map(t=>{var a,i,n,o;const l=(a=e.MeasureAttributes)===null||a===void 0?void 0:a.find(e=>{var a;return((a=e.Measure)===null||a===void 0?void 0:a.value)===t.value});return{name:t.value,label:((i=t.$target.annotations.Common)===null||i===void 0?void 0:(n=i.Label)===null||n===void 0?void 0:n.toString())||t.value,role:l===null||l===void 0?void 0:(o=l.Role)===null||o===void 0?void 0:o.replace("UI.ChartMeasureRoleType/","")}});return{chartType:m[e.ChartType]||"Line",dimensions:n,measures:o,sortOrder:t===null||t===void 0?void 0:(a=t.SortOrder)===null||a===void 0?void 0:a.map(e=>{var t;return{name:((t=e.Property)===null||t===void 0?void 0:t.value)||"",descending:!!e.Descending}}),maxItems:t===null||t===void 0?void 0:(i=t.MaxItems)===null||i===void 0?void 0:i.valueOf()}}function S(e,t){var a,i;const n=e.Value.$target;if((a=n.annotations.Measures)!==null&&a!==void 0&&a.ISOCurrency){var o;const e=(o=n.annotations.Measures)===null||o===void 0?void 0:o.ISOCurrency;if(v(e)){t.datapoint.unit={value:e.$target.name,isCurrency:true,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:true,isPath:false}}}else if((i=n.annotations.Measures)!==null&&i!==void 0&&i.Unit){var l;const e=(l=n.annotations.Measures)===null||l===void 0?void 0:l.Unit;if(v(e)){t.datapoint.unit={value:e.$target.name,isCurrency:false,isPath:true}}else{t.datapoint.unit={value:e.toString(),isCurrency:false,isPath:false}}}}function D(e,t,a){if(e.Criticality){if(typeof e.Criticality==="object"){const i=e.Criticality.$target;if(t.isPropertyAggregatable(i)){a.datapoint.criticalityPath=e.Criticality.path}else{a.datapoint.criticalityValue=f.None}}else{a.datapoint.criticalityValue=c(e.Criticality)}}else if(e.CriticalityCalculation){a.datapoint.criticalityCalculationMode=e.CriticalityCalculation.ImprovementDirection;a.datapoint.criticalityCalculationThresholds=[];switch(a.datapoint.criticalityCalculationMode){case"UI.ImprovementDirectionType/Target":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Minimize":a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeHighValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeHighValue);break;case"UI.ImprovementDirectionType/Maximize":default:a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.DeviationRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.ToleranceRangeLowValue);a.datapoint.criticalityCalculationThresholds.push(e.CriticalityCalculation.AcceptanceRangeLowValue)}}else{a.datapoint.criticalityValue=f.None}}function b(e,t,a){if(e.Trend){if(typeof e.Trend==="object"){const i=e.Trend.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendPath=e.Trend.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendValue=T[e.Trend]||"None"}}else if(e.TrendCalculation){a.datapoint.trendCalculationIsRelative=e.TrendCalculation.IsRelativeDifference?true:false;if(e.TrendCalculation.ReferenceValue.$target){const i=e.TrendCalculation.ReferenceValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.trendCalculationReferencePath=e.TrendCalculation.ReferenceValue.path}else{a.datapoint.trendValue="None"}}else{a.datapoint.trendCalculationReferenceValue=e.TrendCalculation.ReferenceValue}if(a.datapoint.trendCalculationReferencePath!==undefined||a.datapoint.trendCalculationReferenceValue!==undefined){a.datapoint.trendCalculationTresholds=[e.TrendCalculation.StrongDownDifference.valueOf(),e.TrendCalculation.DownDifference.valueOf(),e.TrendCalculation.UpDifference.valueOf(),e.TrendCalculation.StrongUpDifference.valueOf()]}}else{a.datapoint.trendValue="None"}}function V(e,t,a){if(e.TargetValue){if(e.TargetValue.$target){const i=e.TargetValue.$target;if(t.isPropertyAggregatable(i)){a.datapoint.targetPath=e.TargetValue.path}}else{a.datapoint.targetValue=e.TargetValue}}}function U(e){const t=e.annotations["Common"]||{};let a;Object.keys(t).forEach(e=>{const i=t[e];if(i.term==="com.sap.vocabularies.Common.v1.SemanticObject"){if(!i.qualifier||!a){a=i}}});if(a){const e={semanticObject:a.toString(),unavailableActions:[]};const i=Object.keys(t).find(e=>{var i;return t[e].term==="com.sap.vocabularies.Common.v1.SemanticObjectUnavailableActions"&&t[e].qualifier===((i=a)===null||i===void 0?void 0:i.qualifier)});if(i){e.unavailableActions=t[i]}return e}else{return undefined}}function P(e,t,a){var i,n;const o=a.getConverterContextFor(`/${t.entitySet}`);const l=new d(o.getEntityType(),o);if(!l.isAnalyticsSupported()){a.getDiagnostics().addIssue(h.Annotation,C.Medium,y.KPI_ISSUES.NO_ANALYTICS+t.entitySet);return undefined}let r;let u;let c;let v;let f;const T=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.KPI");const m=T.find(e=>e.qualifier===t.qualifier);if(m){var P,A,R,O,M;u=m.DataPoint;r=m.SelectionVariant;c=(P=m.Detail)===null||P===void 0?void 0:P.DefaultPresentationVariant;v=(A=c)===null||A===void 0?void 0:(R=A.Visualizations)===null||R===void 0?void 0:(O=R.find(e=>p(e.$target,"com.sap.vocabularies.UI.v1.ChartDefinitionType")))===null||O===void 0?void 0:O.$target;if((M=m.Detail)!==null&&M!==void 0&&M.SemanticObject){var N;f={semanticObject:m.Detail.SemanticObject.toString(),action:(N=m.Detail.Action)===null||N===void 0?void 0:N.toString(),unavailableActions:[]}}}else{const e=o.getAnnotationsByTerm("UI","com.sap.vocabularies.UI.v1.SelectionPresentationVariant");const i=e.find(e=>e.qualifier===t.qualifier);if(i){var $,w,L,_,E,j;r=i.SelectionVariant;c=i.PresentationVariant;u=($=c)===null||$===void 0?void 0:(w=$.Visualizations)===null||w===void 0?void 0:(L=w.find(e=>p(e.$target,"com.sap.vocabularies.UI.v1.DataPointType")))===null||L===void 0?void 0:L.$target;v=(_=c)===null||_===void 0?void 0:(E=_.Visualizations)===null||E===void 0?void 0:(j=E.find(e=>p(e.$target,"com.sap.vocabularies.UI.v1.ChartDefinitionType")))===null||j===void 0?void 0:j.$target}else{a.getDiagnostics().addIssue(h.Annotation,C.Medium,y.KPI_ISSUES.KPI_NOT_FOUND+t.qualifier);return undefined}}if(!c||!u||!v){a.getDiagnostics().addIssue(h.Annotation,C.Medium,y.KPI_ISSUES.KPI_DETAIL_NOT_FOUND+t.qualifier);return undefined}const q=u.Value.$target;if(!l.isPropertyAggregatable(q)){a.getDiagnostics().addIssue(h.Annotation,C.Medium,y.KPI_ISSUES.MAIN_PROPERTY_NOT_AGGREGATABLE+t.qualifier);return undefined}const K=I(v,c);if(!K){return undefined}const k={id:s(e),entitySet:t.entitySet,datapoint:{propertyPath:u.Value.path,annotationPath:o.getEntitySetBasedAnnotationPath(u.fullyQualifiedName),title:(i=u.Title)===null||i===void 0?void 0:i.toString(),description:(n=u.Description)===null||n===void 0?void 0:n.toString()},selectionVariantFilterDefinitions:r?g(r):undefined,chart:K};if(!f){if(t.detailNavigation){f={outboundNavigation:t.detailNavigation}}else{f=U(q)}}if(f){k.navigation=f}S(u,k);D(u,l,k);b(u,l,k);V(u,l,k);return k}function A(e){const t=e.getManifestWrapper().getKPIConfiguration(),a=[];Object.keys(t).forEach(i=>{const n=P(i,t[i],e);if(n){a.push(n)}});return a}u.getKPIDefinitions=A;return u},false);
6
6
  //# sourceMappingURL=KPI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KPI.js","names":["sap","ui","define","IssueManager","SelectionVariantHelper","TableFormatterTypes","PropertyHelper","Aggregation","ID","Criticality","_exports","getMessageTypeFromCriticalityType","getKPIID","AggregationHelper","isPathExpression","MessageType","getFilterDefinitionsFromSelectionVariant","IssueType","IssueSeverity","IssueCategory","DeviationIndicatorFromTrendType","KPIChartTypeFromUI","convertKPIChart","chartAnnotation","presentationVariantAnnotation","_presentationVariantA","_presentationVariantA2","Measures","undefined","charDimensions","Dimensions","map","propertyPath","_chartAnnotation$Dime","_propertyPath$$target","_propertyPath$$target2","_dimAttribute$Role","dimAttribute","DimensionAttributes","find","attribute","_attribute$Dimension","Dimension","value","name","label","$target","annotations","Common","Label","toString","role","Role","replace","chartMeasures","_chartAnnotation$Meas","_propertyPath$$target3","_propertyPath$$target4","_measureAttribute$Rol","measureAttribute","MeasureAttributes","_attribute$Measure","Measure","chartType","ChartType","dimensions","measures","sortOrder","SortOrder","_sortOrder$Property","Property","descending","Descending","maxItems","MaxItems","valueOf","updateCurrency","datapointAnnotation","kpiDef","_targetValueProperty$","_targetValueProperty$3","targetValueProperty","Value","ISOCurrency","_targetValueProperty$2","currency","datapoint","unit","isCurrency","isPath","Unit","_targetValueProperty$4","updateCriticality","aggregationHelper","criticalityProperty","isPropertyAggregatable","criticalityPath","path","criticalityValue","None","CriticalityCalculation","criticalityCalculationMode","ImprovementDirection","criticalityCalculationThresholds","push","DeviationRangeLowValue","ToleranceRangeLowValue","AcceptanceRangeLowValue","AcceptanceRangeHighValue","ToleranceRangeHighValue","DeviationRangeHighValue","updateTrend","Trend","trendProperty","trendPath","trendValue","TrendCalculation","trendCalculationIsRelative","IsRelativeDifference","ReferenceValue","referenceProperty","trendCalculationReferencePath","trendCalculationReferenceValue","trendCalculationTresholds","StrongDownDifference","DownDifference","UpDifference","StrongUpDifference","updateTarget","TargetValue","targetProperty","targetPath","targetValue","getNavigationInfoFromProperty","property","semanticObjectAnnotation","Object","keys","forEach","annotationKey","annotation","term","qualifier","result","semanticObject","unavailableActions","key","_semanticObjectAnnota","createKPIDefinition","kpiName","kpiConfig","converterContext","_datapointAnnotation$","_datapointAnnotation$2","kpiConverterContext","getConverterContextFor","entitySet","getEntityType","isAnalyticsSupported","getDiagnostics","addIssue","Annotation","Medium","KPI_ISSUES","NO_ANALYTICS","selectionVariantAnnotation","navigationInfo","aKPIAnnotations","getAnnotationsByTerm","targetKPI","kpi","_targetKPI$Detail","_presentationVariantA3","_presentationVariantA4","_presentationVariantA5","_targetKPI$Detail2","DataPoint","SelectionVariant","Detail","DefaultPresentationVariant","Visualizations","viz","$Type","SemanticObject","_targetKPI$Detail$Act","action","Action","aSPVAnnotations","targetSPV","spv","_presentationVariantA6","_presentationVariantA7","_presentationVariantA8","_presentationVariantA9","_presentationVariantA10","_presentationVariantA11","PresentationVariant","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","datapointProperty","MAIN_PROPERTY_NOT_AGGREGATABLE","chartDef","id","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","title","Title","description","Description","selectionVariantFilterDefinitions","chart","detailNavigation","outboundNavigation","navigation","getKPIDefinitions","kpiConfigs","getManifestWrapper","getKPIConfiguration","kpiDefs","oDef"],"sources":["KPI-dbg.js"],"mappings":";;;;AAIAA,IAAIC,GAAGC,OAAO,CAAC,8CAA+C,wDAAyD,6CAA8C,wCAAyC,4BAA6B,mBAAoB,iBAAkB,SAAUC,EAAcC,EAAwBC,EAAqBC,EAAgBC,EAAaC,EAAIC,GACrX,aAEA,IAAIC,EAAW,CAAC,EAChB,IAAIC,EAAoCF,EAAYE,kCACpD,IAAIC,EAAWJ,EAAGI,SAClB,IAAIC,EAAoBN,EAAYM,kBACpC,IAAIC,EAAmBR,EAAeQ,iBACtC,IAAIC,EAAcV,EAAoBU,YACtC,IAAIC,EAA2CZ,EAAuBY,yCACtE,IAAIC,EAAYd,EAAac,UAC7B,IAAIC,EAAgBf,EAAae,cACjC,IAAIC,EAAgBhB,EAAagB,cACjC,MAAMC,EAAkC,CACtC,wBAAyB,KACzB,kBAAmB,KACnB,0BAA2B,OAC3B,oBAAqB,OACrB,wBAAyB,QAE3B,MAAMC,EAAqB,CACzB,6BAA8B,gBAC9B,0BAA2B,aAC3B,qBAAsB,QACtB,oBAAqB,OACrB,sBAAuB,SACvB,sBAAuB,SACvB,mBAAoB,MACpB,8BAA+B,kBAC/B,2BAA4B,cAC5B,uBAAwB,WAE1B,SAASC,EAAgBC,EAAiBC,GACxC,IAAIC,EAAuBC,EAC3B,GAAIH,EAAgBI,WAAaC,UAAW,CAE1C,OAAOA,SACT,CACA,MAAMC,EAAiBN,EAAgBO,WAAaP,EAAgBO,WAAWC,IAAIC,IACjF,IAAIC,EAAuBC,EAAuBC,EAAwBC,EAC1E,MAAMC,GAAgBJ,EAAwBV,EAAgBe,uBAAyB,MAAQL,SAA+B,OAAS,EAAIA,EAAsBM,KAAKC,IACpK,IAAIC,EACJ,QAASA,EAAuBD,EAAUE,aAAe,MAAQD,SAA8B,OAAS,EAAIA,EAAqBE,SAAWX,EAAaW,KAAK,GAEhK,MAAO,CACLC,KAAMZ,EAAaW,MACnBE,QAASX,EAAwBF,EAAac,QAAQC,YAAYC,UAAY,MAAQd,SAA+B,OAAS,GAAKC,EAAyBD,EAAsBe,SAAW,MAAQd,SAAgC,OAAS,EAAIA,EAAuBe,aAAelB,EAAaW,MACrSQ,KAAMd,IAAiB,MAAQA,SAAsB,OAAS,GAAKD,EAAqBC,EAAae,QAAU,MAAQhB,SAA4B,OAAS,EAAIA,EAAmBiB,QAAQ,6BAA8B,IAC1N,GACE,GACL,MAAMC,EAAgB/B,EAAgBI,SAASI,IAAIC,IACjD,IAAIuB,EAAuBC,EAAwBC,EAAwBC,EAC3E,MAAMC,GAAoBJ,EAAwBhC,EAAgBqC,qBAAuB,MAAQL,SAA+B,OAAS,EAAIA,EAAsBhB,KAAKC,IACtK,IAAIqB,EACJ,QAASA,EAAqBrB,EAAUsB,WAAa,MAAQD,SAA4B,OAAS,EAAIA,EAAmBlB,SAAWX,EAAaW,KAAK,GAExJ,MAAO,CACLC,KAAMZ,EAAaW,MACnBE,QAASW,EAAyBxB,EAAac,QAAQC,YAAYC,UAAY,MAAQQ,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBP,SAAW,MAAQQ,SAAgC,OAAS,EAAIA,EAAuBP,aAAelB,EAAaW,MACxSQ,KAAMQ,IAAqB,MAAQA,SAA0B,OAAS,GAAKD,EAAwBC,EAAiBP,QAAU,MAAQM,SAA+B,OAAS,EAAIA,EAAsBL,QAAQ,2BAA4B,IAC7O,GAEH,MAAO,CACLU,UAAW1C,EAAmBE,EAAgByC,YAAc,OAC5DC,WAAYpC,EACZqC,SAAUZ,EACVa,UAAW3C,IAAkC,MAAQA,SAAuC,OAAS,GAAKC,EAAwBD,EAA8B4C,aAAe,MAAQ3C,SAA+B,OAAS,EAAIA,EAAsBM,IAAIoC,IAC3P,IAAIE,EACJ,MAAO,CACLzB,OAAQyB,EAAsBF,EAAUG,YAAc,MAAQD,SAA6B,OAAS,EAAIA,EAAoB1B,QAAU,GACtI4B,aAAcJ,EAAUK,WACzB,GAEHC,SAAUjD,IAAkC,MAAQA,SAAuC,OAAS,GAAKE,EAAyBF,EAA8BkD,YAAc,MAAQhD,SAAgC,OAAS,EAAIA,EAAuBiD,UAE9P,CACA,SAASC,EAAeC,EAAqBC,GAC3C,IAAIC,EAAuBC,EAC3B,MAAMC,EAAsBJ,EAAoBK,MAAMpC,QACtD,IAAKiC,EAAwBE,EAAoBlC,YAAYpB,YAAc,MAAQoD,SAA+B,GAAKA,EAAsBI,YAAa,CACxJ,IAAIC,EACJ,MAAMC,GAAYD,EAAyBH,EAAoBlC,YAAYpB,YAAc,MAAQyD,SAAgC,OAAS,EAAIA,EAAuBD,YACrK,GAAIrE,EAAiBuE,GAAW,CAC9BP,EAAOQ,UAAUC,KAAO,CACtB5C,MAAO0C,EAASvC,QAAQF,KACxB4C,WAAY,KACZC,OAAQ,KAEZ,KAAO,CACLX,EAAOQ,UAAUC,KAAO,CACtB5C,MAAO0C,EAASnC,WAChBsC,WAAY,KACZC,OAAQ,MAEZ,CACF,MAAO,IAAKT,EAAyBC,EAAoBlC,YAAYpB,YAAc,MAAQqD,SAAgC,GAAKA,EAAuBU,KAAM,CAC3J,IAAIC,EACJ,MAAMJ,GAAQI,EAAyBV,EAAoBlC,YAAYpB,YAAc,MAAQgE,SAAgC,OAAS,EAAIA,EAAuBD,KACjK,GAAI5E,EAAiByE,GAAO,CAC1BT,EAAOQ,UAAUC,KAAO,CACtB5C,MAAO4C,EAAKzC,QAAQF,KACpB4C,WAAY,MACZC,OAAQ,KAEZ,KAAO,CACLX,EAAOQ,UAAUC,KAAO,CACtB5C,MAAO4C,EAAKrC,WACZsC,WAAY,MACZC,OAAQ,MAEZ,CACF,CACF,CACA,SAASG,EAAkBf,EAAqBgB,EAAmBf,GACjE,GAAID,EAAoBpE,YAAa,CACnC,UAAWoE,EAAoBpE,cAAgB,SAAU,CAEvD,MAAMqF,EAAsBjB,EAAoBpE,YAAYqC,QAC5D,GAAI+C,EAAkBE,uBAAuBD,GAAsB,CACjEhB,EAAOQ,UAAUU,gBAAkBnB,EAAoBpE,YAAYwF,IACrE,KAAO,CAELnB,EAAOQ,UAAUY,iBAAmBnF,EAAYoF,IAClD,CACF,KAAO,CAELrB,EAAOQ,UAAUY,iBAAmBvF,EAAkCkE,EAAoBpE,YAC5F,CACF,MAAO,GAAIoE,EAAoBuB,uBAAwB,CACrDtB,EAAOQ,UAAUe,2BAA6BxB,EAAoBuB,uBAAuBE,qBACzFxB,EAAOQ,UAAUiB,iCAAmC,GACpD,OAAQzB,EAAOQ,UAAUe,4BACvB,IAAK,qCACHvB,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBK,wBAClG3B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBM,wBAClG5B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBO,yBAClG7B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBQ,0BAClG9B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBS,yBAClG/B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBU,yBAClG,MACF,IAAK,uCACHhC,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBQ,0BAClG9B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBS,yBAClG/B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBU,yBAClG,MACF,IAAK,uCACL,QACEhC,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBK,wBAClG3B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBM,wBAClG5B,EAAOQ,UAAUiB,iCAAiCC,KAAK3B,EAAoBuB,uBAAuBO,yBAExG,KAAO,CACL7B,EAAOQ,UAAUY,iBAAmBnF,EAAYoF,IAClD,CACF,CACA,SAASY,EAAYlC,EAAqBgB,EAAmBf,GAC3D,GAAID,EAAoBmC,MAAO,CAC7B,UAAWnC,EAAoBmC,QAAU,SAAU,CAEjD,MAAMC,EAAgBpC,EAAoBmC,MAAMlE,QAChD,GAAI+C,EAAkBE,uBAAuBkB,GAAgB,CAC3DnC,EAAOQ,UAAU4B,UAAYrC,EAAoBmC,MAAMf,IACzD,KAAO,CAELnB,EAAOQ,UAAU6B,WAAa,MAChC,CACF,KAAO,CAELrC,EAAOQ,UAAU6B,WAAa/F,EAAgCyD,EAAoBmC,QAAU,MAC9F,CACF,MAAO,GAAInC,EAAoBuC,iBAAkB,CAC/CtC,EAAOQ,UAAU+B,2BAA6BxC,EAAoBuC,iBAAiBE,qBAAuB,KAAO,MACjH,GAAIzC,EAAoBuC,iBAAiBG,eAAezE,QAAS,CAE/D,MAAM0E,EAAoB3C,EAAoBuC,iBAAiBG,eAAezE,QAC9E,GAAI+C,EAAkBE,uBAAuByB,GAAoB,CAC/D1C,EAAOQ,UAAUmC,8BAAgC5C,EAAoBuC,iBAAiBG,eAAetB,IACvG,KAAO,CAELnB,EAAOQ,UAAU6B,WAAa,MAChC,CACF,KAAO,CAELrC,EAAOQ,UAAUoC,+BAAiC7C,EAAoBuC,iBAAiBG,cACzF,CACA,GAAIzC,EAAOQ,UAAUmC,gCAAkC7F,WAAakD,EAAOQ,UAAUoC,iCAAmC9F,UAAW,CACjIkD,EAAOQ,UAAUqC,0BAA4B,CAAC9C,EAAoBuC,iBAAiBQ,qBAAqBjD,UAAWE,EAAoBuC,iBAAiBS,eAAelD,UAAWE,EAAoBuC,iBAAiBU,aAAanD,UAAWE,EAAoBuC,iBAAiBW,mBAAmBpD,UACzS,CACF,KAAO,CACLG,EAAOQ,UAAU6B,WAAa,MAChC,CACF,CACA,SAASa,EAAanD,EAAqBgB,EAAmBf,GAC5D,GAAID,EAAoBoD,YAAa,CACnC,GAAIpD,EAAoBoD,YAAYnF,QAAS,CAE3C,MAAMoF,EAAiBrD,EAAoBoD,YAAYnF,QACvD,GAAI+C,EAAkBE,uBAAuBmC,GAAiB,CAC5DpD,EAAOQ,UAAU6C,WAAatD,EAAoBoD,YAAYhC,IAChE,CACF,KAAO,CAELnB,EAAOQ,UAAU8C,YAAcvD,EAAoBoD,WACrD,CACF,CACF,CACA,SAASI,EAA8BC,GACrC,MAAMvF,EAAcuF,EAASvF,YAAY,WAAa,CAAC,EAGvD,IAAIwF,EACJC,OAAOC,KAAK1F,GAAa2F,QAAQC,IAC/B,MAAMC,EAAa7F,EAAY4F,GAC/B,GAAIC,EAAWC,OAAS,gDAAiD,CACvE,IAAKD,EAAWE,YAAcP,EAA0B,CAEtDA,EAA2BK,CAC7B,CACF,IAEF,GAAIL,EAA0B,CAC5B,MAAMQ,EAAS,CACbC,eAAgBT,EAAyBrF,WACzC+F,mBAAoB,IAItB,MAAMN,EAAgBH,OAAOC,KAAK1F,GAAaR,KAAK2G,IAClD,IAAIC,EACJ,OAAOpG,EAAYmG,GAAKL,OAAS,mEAAqE9F,EAAYmG,GAAKJ,cAAgBK,EAAwBZ,KAA8B,MAAQY,SAA+B,OAAS,EAAIA,EAAsBL,UAAU,GAEnR,GAAIH,EAAe,CACjBI,EAAOE,mBAAqBlG,EAAY4F,EAC1C,CACA,OAAOI,CACT,KAAO,CACL,OAAOnH,SACT,CACF,CACA,SAASwH,EAAoBC,EAASC,EAAWC,GAC/C,IAAIC,EAAuBC,EAC3B,MAAMC,EAAsBH,EAAiBI,uBAAuB,IAAIL,EAAUM,aAClF,MAAM/D,EAAoB,IAAIhF,EAAkB6I,EAAoBG,gBAAiBH,GACrF,IAAK7D,EAAkBiE,uBAAwB,CAE7CP,EAAiBQ,iBAAiBC,SAAS7I,EAAc8I,WAAY/I,EAAcgJ,OAAQjJ,EAAUkJ,WAAWC,aAAed,EAAUM,WACzI,OAAOhI,SACT,CACA,IAAIyI,EACJ,IAAIxF,EACJ,IAAIrD,EACJ,IAAID,EACJ,IAAI+I,EAGJ,MAAMC,EAAkBb,EAAoBc,qBAAqB,KAAM,kCACvE,MAAMC,EAAYF,EAAgBhI,KAAKmI,GAC9BA,EAAI5B,YAAcQ,EAAUR,WAErC,GAAI2B,EAAW,CACb,IAAIE,EAAmBC,EAAwBC,EAAwBC,EAAwBC,EAC/FlG,EAAsB4F,EAAUO,UAChCX,EAA6BI,EAAUQ,iBACvCzJ,GAAiCmJ,EAAoBF,EAAUS,UAAY,MAAQP,SAA2B,OAAS,EAAIA,EAAkBQ,2BAC7I5J,GAAmBqJ,EAAyBpJ,KAAmC,MAAQoJ,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBQ,kBAAoB,MAAQP,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBtI,KAAK8I,GAC3SA,EAAIvI,QAAQwI,QAAU,qDACvB,MAAQR,SAAgC,OAAS,EAAIA,EAAuBhI,QACpF,IAAKiI,EAAqBN,EAAUS,UAAY,MAAQH,SAA4B,GAAKA,EAAmBQ,eAAgB,CAC1H,IAAIC,EACJlB,EAAiB,CACftB,eAAgByB,EAAUS,OAAOK,eAAerI,WAChDuI,QAASD,EAAwBf,EAAUS,OAAOQ,UAAY,MAAQF,SAA+B,OAAS,EAAIA,EAAsBtI,WACxI+F,mBAAoB,GAExB,CACF,KAAO,CAEL,MAAM0C,EAAkBjC,EAAoBc,qBAAqB,KAAM,2DACvE,MAAMoB,EAAYD,EAAgBpJ,KAAKsJ,GAC9BA,EAAI/C,YAAcQ,EAAUR,WAErC,GAAI8C,EAAW,CACb,IAAIE,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAAyBC,EAC7H9B,EAA6BuB,EAAUX,iBACvCzJ,EAAgCoK,EAAUQ,oBAC1CvH,GAAuBiH,EAAyBtK,KAAmC,MAAQsK,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBV,kBAAoB,MAAQW,SAAgC,OAAS,GAAKC,EAAyBD,EAAuBxJ,KAAK8I,GAC/SA,EAAIvI,QAAQwI,QAAU,+CACvB,MAAQU,SAAgC,OAAS,EAAIA,EAAuBlJ,QACpFvB,GAAmB0K,EAAyBzK,KAAmC,MAAQyK,SAAgC,OAAS,GAAKC,EAA0BD,EAAuBb,kBAAoB,MAAQc,SAAiC,OAAS,GAAKC,EAA0BD,EAAwB3J,KAAK8I,GAC/SA,EAAIvI,QAAQwI,QAAU,qDACvB,MAAQa,SAAiC,OAAS,EAAIA,EAAwBrJ,OACxF,KAAO,CAELyG,EAAiBQ,iBAAiBC,SAAS7I,EAAc8I,WAAY/I,EAAcgJ,OAAQjJ,EAAUkJ,WAAWkC,cAAgB/C,EAAUR,WAC1I,OAAOlH,SACT,CACF,CACA,IAAKJ,IAAkCqD,IAAwBtD,EAAiB,CAE9EgI,EAAiBQ,iBAAiBC,SAAS7I,EAAc8I,WAAY/I,EAAcgJ,OAAQjJ,EAAUkJ,WAAWmC,qBAAuBhD,EAAUR,WACjJ,OAAOlH,SACT,CACA,MAAM2K,EAAoB1H,EAAoBK,MAAMpC,QACpD,IAAK+C,EAAkBE,uBAAuBwG,GAAoB,CAEhEhD,EAAiBQ,iBAAiBC,SAAS7I,EAAc8I,WAAY/I,EAAcgJ,OAAQjJ,EAAUkJ,WAAWqC,+BAAiClD,EAAUR,WAC3J,OAAOlH,SACT,CAGA,MAAM6K,EAAWnL,EAAgBC,EAAiBC,GAClD,IAAKiL,EAAU,CACb,OAAO7K,SACT,CACA,MAAMkD,EAAS,CACb4H,GAAI9L,EAASyI,GACbO,UAAWN,EAAUM,UACrBtE,UAAW,CACTtD,aAAc6C,EAAoBK,MAAMe,KACxC0G,eAAgBjD,EAAoBkD,gCAAgC/H,EAAoBgI,oBACxFC,OAAQtD,EAAwB3E,EAAoBkI,SAAW,MAAQvD,SAA+B,OAAS,EAAIA,EAAsBtG,WACzI8J,aAAcvD,EAAyB5E,EAAoBoI,eAAiB,MAAQxD,SAAgC,OAAS,EAAIA,EAAuBvG,YAE1JgK,kCAAmC7C,EAA6BrJ,EAAyCqJ,GAA8BzI,UACvIuL,MAAOV,GAIT,IAAKnC,EAAgB,CAEnB,GAAIhB,EAAU8D,iBAAkB,CAC9B9C,EAAiB,CACf+C,mBAAoB/D,EAAU8D,iBAElC,KAAO,CAEL9C,EAAiBjC,EAA8BkE,EACjD,CACF,CACA,GAAIjC,EAAgB,CAClBxF,EAAOwI,WAAahD,CACtB,CACA1F,EAAeC,EAAqBC,GACpCc,EAAkBf,EAAqBgB,EAAmBf,GAC1DiC,EAAYlC,EAAqBgB,EAAmBf,GACpDkD,EAAanD,EAAqBgB,EAAmBf,GACrD,OAAOA,CACT,CAQA,SAASyI,EAAkBhE,GACzB,MAAMiE,EAAajE,EAAiBkE,qBAAqBC,sBACvDC,EAAU,GACZnF,OAAOC,KAAK+E,GAAY9E,QAAQW,IAC9B,MAAMuE,EAAOxE,EAAoBC,EAASmE,EAAWnE,GAAUE,GAC/D,GAAIqE,EAAM,CACRD,EAAQnH,KAAKoH,EACf,IAEF,OAAOD,CACT,CACAjN,EAAS6M,kBAAoBA,EAC7B,OAAO7M,CACT,EAAG"}
1
+ {"version":3,"file":"KPI.js","names":["sap","ui","define","IssueManager","SelectionVariantHelper","TableFormatterTypes","TypeGuards","PropertyHelper","Aggregation","ID","Criticality","_exports","getMessageTypeFromCriticalityType","getKPIID","AggregationHelper","isPathExpression","isAnnotationOfType","MessageType","getFilterDefinitionsFromSelectionVariant","IssueType","IssueSeverity","IssueCategory","DeviationIndicatorFromTrendType","KPIChartTypeFromUI","convertKPIChart","chartAnnotation","presentationVariantAnnotation","_presentationVariantA","_presentationVariantA2","Measures","undefined","charDimensions","Dimensions","map","propertyPath","_chartAnnotation$Dime","_propertyPath$$target","_propertyPath$$target2","_dimAttribute$Role","dimAttribute","DimensionAttributes","find","attribute","_attribute$Dimension","Dimension","value","name","label","$target","annotations","Common","Label","toString","role","Role","replace","chartMeasures","_chartAnnotation$Meas","_propertyPath$$target3","_propertyPath$$target4","_measureAttribute$Rol","measureAttribute","MeasureAttributes","_attribute$Measure","Measure","chartType","ChartType","dimensions","measures","sortOrder","SortOrder","_sortOrder$Property","Property","descending","Descending","maxItems","MaxItems","valueOf","updateCurrency","datapointAnnotation","kpiDef","_targetValueProperty$","_targetValueProperty$3","targetValueProperty","Value","ISOCurrency","_targetValueProperty$2","currency","datapoint","unit","isCurrency","isPath","Unit","_targetValueProperty$4","updateCriticality","aggregationHelper","criticalityProperty","isPropertyAggregatable","criticalityPath","path","criticalityValue","None","CriticalityCalculation","criticalityCalculationMode","ImprovementDirection","criticalityCalculationThresholds","push","DeviationRangeLowValue","ToleranceRangeLowValue","AcceptanceRangeLowValue","AcceptanceRangeHighValue","ToleranceRangeHighValue","DeviationRangeHighValue","updateTrend","Trend","trendProperty","trendPath","trendValue","TrendCalculation","trendCalculationIsRelative","IsRelativeDifference","ReferenceValue","referenceProperty","trendCalculationReferencePath","trendCalculationReferenceValue","trendCalculationTresholds","StrongDownDifference","DownDifference","UpDifference","StrongUpDifference","updateTarget","TargetValue","targetProperty","targetPath","targetValue","getNavigationInfoFromProperty","property","semanticObjectAnnotation","Object","keys","forEach","annotationKey","annotation","term","qualifier","result","semanticObject","unavailableActions","key","_semanticObjectAnnota","createKPIDefinition","kpiName","kpiConfig","converterContext","_datapointAnnotation$","_datapointAnnotation$2","kpiConverterContext","getConverterContextFor","entitySet","getEntityType","isAnalyticsSupported","getDiagnostics","addIssue","Annotation","Medium","KPI_ISSUES","NO_ANALYTICS","selectionVariantAnnotation","navigationInfo","aKPIAnnotations","getAnnotationsByTerm","targetKPI","kpi","_targetKPI$Detail","_presentationVariantA3","_presentationVariantA4","_presentationVariantA5","_targetKPI$Detail2","DataPoint","SelectionVariant","Detail","DefaultPresentationVariant","Visualizations","viz","SemanticObject","_targetKPI$Detail$Act","action","Action","aSPVAnnotations","targetSPV","spv","_presentationVariantA6","_presentationVariantA7","_presentationVariantA8","_presentationVariantA9","_presentationVariantA10","_presentationVariantA11","PresentationVariant","KPI_NOT_FOUND","KPI_DETAIL_NOT_FOUND","datapointProperty","MAIN_PROPERTY_NOT_AGGREGATABLE","chartDef","id","annotationPath","getEntitySetBasedAnnotationPath","fullyQualifiedName","title","Title","description","Description","selectionVariantFilterDefinitions","chart","detailNavigation","outboundNavigation","navigation","getKPIDefinitions","kpiConfigs","getManifestWrapper","getKPIConfiguration","kpiDefs","oDef"],"sources":["KPI-dbg.js"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AnnotationTerm, PathAnnotationExpression, Property, PropertyPath } from "@sap-ux/vocabularies-types";
1
+ import type { PathAnnotationExpression, Property } from "@sap-ux/vocabularies-types";
2
2
  import type { SemanticObject } from "@sap-ux/vocabularies-types/vocabularies/Common";
3
3
  import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
4
4
  import type {
@@ -19,6 +19,7 @@ import { IssueCategory, IssueSeverity, IssueType } from "sap/fe/core/converters/
19
19
  import type { FilterDefinition } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
20
20
  import { getFilterDefinitionsFromSelectionVariant } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
21
21
  import { MessageType } from "sap/fe/core/formatters/TableFormatterTypes";
22
+ import { isAnnotationOfType } from "sap/fe/core/helpers/TypeGuards";
22
23
  import { isPathExpression } from "sap/fe/core/templating/PropertyHelper";
23
24
  import { AggregationHelper } from "../../helpers/Aggregation";
24
25
  import { getKPIID } from "../../helpers/ID";
@@ -172,7 +173,7 @@ function updateCriticality(datapointAnnotation: DataPointType, aggregationHelper
172
173
  if (datapointAnnotation.Criticality) {
173
174
  if (typeof datapointAnnotation.Criticality === "object") {
174
175
  // Criticality is a path --> check if the corresponding property is aggregatable
175
- const criticalityProperty = (datapointAnnotation.Criticality as any as PropertyPath).$target;
176
+ const criticalityProperty = (datapointAnnotation.Criticality as PathAnnotationExpression<Property>).$target;
176
177
  if (aggregationHelper.isPropertyAggregatable(criticalityProperty)) {
177
178
  kpiDef.datapoint.criticalityPath = (datapointAnnotation.Criticality as PathAnnotationExpression<CriticalityType>).path;
178
179
  } else {
@@ -217,7 +218,7 @@ function updateTrend(datapointAnnotation: DataPointType, aggregationHelper: Aggr
217
218
  if (datapointAnnotation.Trend) {
218
219
  if (typeof datapointAnnotation.Trend === "object") {
219
220
  // Trend is a path --> check if the corresponding property is aggregatable
220
- const trendProperty = (datapointAnnotation.Trend as any as PropertyPath).$target;
221
+ const trendProperty = (datapointAnnotation.Trend as PathAnnotationExpression<Property>).$target;
221
222
  if (aggregationHelper.isPropertyAggregatable(trendProperty)) {
222
223
  kpiDef.datapoint.trendPath = (datapointAnnotation.Trend as PathAnnotationExpression<TrendType>).path;
223
224
  } else {
@@ -272,12 +273,11 @@ function updateTarget(datapointAnnotation: DataPointType, aggregationHelper: Agg
272
273
  }
273
274
 
274
275
  function getNavigationInfoFromProperty(property: Property): NavigationInfo | undefined {
275
- const annotations: Record<string, AnnotationTerm<any>> = property.annotations["Common"] || {};
276
-
276
+ const annotations = property.annotations["Common"] || {};
277
277
  // Look for the semanticObject annotation (if any)
278
278
  let semanticObjectAnnotation: SemanticObject | undefined;
279
279
  Object.keys(annotations).forEach((annotationKey) => {
280
- const annotation = annotations[annotationKey];
280
+ const annotation = annotations[annotationKey as keyof typeof annotations];
281
281
  if (annotation.term === CommonAnnotationTerms.SemanticObject) {
282
282
  if (!annotation.qualifier || !semanticObjectAnnotation) {
283
283
  // We always take the annotation without qualifier if there's one, otherwise we take the first one
@@ -295,12 +295,12 @@ function getNavigationInfoFromProperty(property: Property): NavigationInfo | und
295
295
  // Look for the unavailable actions (if any)
296
296
  const annotationKey = Object.keys(annotations).find((key) => {
297
297
  return (
298
- annotations[key].term === CommonAnnotationTerms.SemanticObjectUnavailableActions &&
299
- annotations[key].qualifier === semanticObjectAnnotation?.qualifier
298
+ annotations[key as keyof typeof annotations].term === CommonAnnotationTerms.SemanticObjectUnavailableActions &&
299
+ annotations[key as keyof typeof annotations].qualifier === semanticObjectAnnotation?.qualifier
300
300
  );
301
301
  });
302
302
  if (annotationKey) {
303
- result.unavailableActions = annotations[annotationKey];
303
+ result.unavailableActions = annotations[annotationKey as keyof typeof annotations];
304
304
  }
305
305
 
306
306
  return result;
@@ -337,8 +337,8 @@ function createKPIDefinition(kpiName: string, kpiConfig: KPIConfiguration, conve
337
337
  datapointAnnotation = targetKPI.DataPoint;
338
338
  selectionVariantAnnotation = targetKPI.SelectionVariant;
339
339
  presentationVariantAnnotation = targetKPI.Detail?.DefaultPresentationVariant;
340
- chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz: any) => {
341
- return viz.$target.$Type === UIAnnotationTypes.ChartDefinitionType;
340
+ chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz) => {
341
+ return isAnnotationOfType<Chart>(viz.$target, UIAnnotationTypes.ChartDefinitionType);
342
342
  })?.$target as Chart;
343
343
 
344
344
  if (targetKPI.Detail?.SemanticObject) {
@@ -360,11 +360,11 @@ function createKPIDefinition(kpiName: string, kpiConfig: KPIConfiguration, conve
360
360
  if (targetSPV) {
361
361
  selectionVariantAnnotation = targetSPV.SelectionVariant;
362
362
  presentationVariantAnnotation = targetSPV.PresentationVariant;
363
- datapointAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz: any) => {
364
- return viz.$target.$Type === UIAnnotationTypes.DataPointType;
363
+ datapointAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz) => {
364
+ return isAnnotationOfType<DataPoint>(viz.$target, UIAnnotationTypes.DataPointType);
365
365
  })?.$target as DataPoint;
366
- chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz: any) => {
367
- return viz.$target.$Type === UIAnnotationTypes.ChartDefinitionType;
366
+ chartAnnotation = presentationVariantAnnotation?.Visualizations?.find((viz) => {
367
+ return isAnnotationOfType<Chart>(viz.$target, UIAnnotationTypes.ChartDefinitionType);
368
368
  })?.$target as Chart;
369
369
  } else {
370
370
  // Couldn't find a KPI or a SPV annotation with the qualifier from the manifest