@sapui5/sap.fe.core 1.111.0 → 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} +279 -335
  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 -932
  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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.core",
3
- "version": "1.111.0",
3
+ "version": "1.112.0",
4
4
  "description": "SAPUI5 Library sap.fe.core",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -6,7 +6,7 @@
6
6
  SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.111.0</version>
9
+ <version>1.112.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.core</documentation>
12
12
 
@@ -24,7 +24,7 @@ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/he
24
24
  * @returns The action enablement promises
25
25
  * @ui5-restricted
26
26
  */
27
- setActionEnablement: function (oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, sControl) {
27
+ setActionEnablement: async function (oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, sControl) {
28
28
  const aPromises = [];
29
29
  for (const sAction in oActionOperationAvailableMap) {
30
30
  let aRequestPromises = [];
@@ -82,7 +82,7 @@ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/he
82
82
  var _oView$getViewData;
83
83
  const iViewLevel = (_oView$getViewData = oView.getViewData()) === null || _oView$getViewData === void 0 ? void 0 : _oView$getViewData.viewLevel;
84
84
  if (iViewLevel > 1) {
85
- var _oContext$getModel, _oContext$getModel$ge, _annotations$UI, _annotations$UI$Updat;
85
+ var _oContext$getModel, _oContext$getModel$ge, _entitySet$annotation, _entitySet$annotation2;
86
86
  const oContext = oView.getBindingContext();
87
87
  const oAppComponent = CommonUtils.getAppComponent(oView);
88
88
  const sMetaPath = ModelHelper.getMetaPathForContext(oContext);
@@ -93,7 +93,7 @@ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/he
93
93
  const entityType = converterContext.getEntityType();
94
94
  let updateHidden;
95
95
  //Find the Update Hidden of the root entity set and bind the property to AnyElement, any changes in the path of the root UpdateHidden will be updated via the property, internal model context is updated based on the property
96
- const bUpdateHidden = entitySet && !ModelHelper.isSingleton(entitySet) && ((_annotations$UI = entitySet.annotations.UI) === null || _annotations$UI === void 0 ? void 0 : (_annotations$UI$Updat = _annotations$UI.UpdateHidden) === null || _annotations$UI$Updat === void 0 ? void 0 : _annotations$UI$Updat.valueOf());
96
+ const bUpdateHidden = entitySet && !ModelHelper.isSingleton(entitySet) && ((_entitySet$annotation = entitySet.annotations.UI) === null || _entitySet$annotation === void 0 ? void 0 : (_entitySet$annotation2 = _entitySet$annotation.UpdateHidden) === null || _entitySet$annotation2 === void 0 ? void 0 : _entitySet$annotation2.valueOf());
97
97
  if (bUpdateHidden !== true) {
98
98
  updateHidden = ModelHelper.isUpdateHidden(entitySet, entityType);
99
99
  }
@@ -179,4 +179,4 @@ sap.ui.define(["sap/base/util/merge", "sap/fe/core/CommonUtils", "sap/fe/core/he
179
179
  };
180
180
  return ActionRuntime;
181
181
  }, false);
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImkiLCJsZW5ndGgiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsIlByb21pc2UiLCJhbGwiLCJzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaCIsIm9WaWV3Iiwib0xpc3RCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSIsIm9Db250cm9scyIsImNvbnRyb2xzIiwic0tleSIsImNvbnRyb2xJZCIsIm9UYWJsZSIsImJ5SWQiLCJpc0EiLCJvUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJnZXRCaW5kaW5nQ29udGV4dCIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJjdXN0b21EYXRhIiwiZ2V0U2VsZWN0ZWRDb250ZXh0cyIsInVwZGF0ZUVkaXRCdXR0b25WaXNpYmlsaXR5QW5kRW5hYmxlbWVudCIsImlWaWV3TGV2ZWwiLCJnZXRWaWV3RGF0YSIsInZpZXdMZXZlbCIsIm9Db250ZXh0Iiwib0FwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsInNNZXRhUGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0TWV0YVBhdGhGb3JDb250ZXh0Iiwic0VudGl0eVNldCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwibWV0YUNvbnRleHQiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsImdldENvbnRleHQiLCJnZXRQYXRoIiwiY29udmVydGVyQ29udGV4dCIsIkNvbnZlcnRlckNvbnRleHQiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJnZXREaWFnbm9zdGljcyIsIm1lcmdlIiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJ1cGRhdGVIaWRkZW4iLCJiVXBkYXRlSGlkZGVuIiwiaXNTaW5nbGV0b24iLCJhbm5vdGF0aW9ucyIsIlVJIiwiVXBkYXRlSGlkZGVuIiwidmFsdWVPZiIsImlzVXBkYXRlSGlkZGVuIiwic0VkaXRFbmFibGVCaW5kaW5nIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0RHJhZnRSb290UGF0aCIsInNTdGlja3lSb290UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwic1BhdGgiLCJvUm9vdENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsInNIaWRkZW5FeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJlcXVhbCIsImdldEhpZGRlbkV4cHJlc3Npb24iLCJ1cGRhdGVFZGl0TW9kZWxDb250ZXh0Iiwic0JpbmRpbmdFeHByZXNzaW9uIiwib0hpZGRlbkVsZW1lbnQiLCJBbnlFbGVtZW50IiwiYW55VGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50IiwiZ2V0QmluZGluZyIsIiQkZ3JvdXBJZCIsImF0dGFjaENoYW5nZSIsIm9FdmVudCIsIm9OZXdWYWx1ZSIsImdldFNvdXJjZSIsImdldEV4dGVybmFsVmFsdWUiLCJzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoIiwib1RyYW5zZm9ybWVkQmluZGluZyIsInRyYW5zZm9ybVJlY3Vyc2l2ZWx5Iiwib0JpbmRpbmdFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJwYXRoIiwic1Jlc3VsdCIsInNldER5bmFtaWNBY3Rpb25Db250ZXh0cyIsInJlcXVlc3RQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWN0aW9uUnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVNldCwgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJzYXAvYmFzZS91dGlsL21lcmdlXCI7XG5pbXBvcnQgdHlwZSB7IF9SZXF1ZXN0ZWRQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBQYXRoSW5Nb2RlbEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHsgY29tcGlsZUV4cHJlc3Npb24sIGNvbnN0YW50LCBlcXVhbCwgdHJhbnNmb3JtUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCB0eXBlIHsgT0RhdGFMaXN0QmluZGluZywgVjRDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3R5cGVzL2V4dGVuc2lvbl90eXBlc1wiO1xuaW1wb3J0IEFueUVsZW1lbnQgZnJvbSBcIi4vY29udHJvbHMvQW55RWxlbWVudFwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4vY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEJhc2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcIi4vY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRFZGl0QnV0dG9uRW5hYmxlZCwgZ2V0SGlkZGVuRXhwcmVzc2lvbiB9IGZyb20gXCIuL2NvbnZlcnRlcnMvb2JqZWN0UGFnZS9IZWFkZXJBbmRGb290ZXJBY3Rpb25cIjtcblxuY29uc3QgQWN0aW9uUnVudGltZSA9IHtcblx0LyoqXG5cdCAqIFNldHMgdGhlIGFjdGlvbiBlbmFibGVtZW50LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2V0QWN0aW9uRW5hYmxlbWVudFxuXHQgKiBAcGFyYW0gb0ludGVybmFsTW9kZWxDb250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IG1vZGVsXG5cdCAqIEBwYXJhbSBvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwIE1hcCBjb250YWluaW5nIHRoZSBvcGVyYXRpb24gYXZhaWxhYmlsaXR5IG9mIGFjdGlvbnNcblx0ICogQHBhcmFtIGFTZWxlY3RlZENvbnRleHRzIEFycmF5IGNvbnRhaW5pbmcgc2VsZWN0ZWQgY29udGV4dHMgb2YgdGhlIGNoYXJ0XG5cdCAqIEBwYXJhbSBzQ29udHJvbCBDb250cm9sIG5hbWVcblx0ICogQHJldHVybnMgVGhlIGFjdGlvbiBlbmFibGVtZW50IHByb21pc2VzXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0c2V0QWN0aW9uRW5hYmxlbWVudDogZnVuY3Rpb24gKFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0XHRhU2VsZWN0ZWRDb250ZXh0czogVjRDb250ZXh0W10sXG5cdFx0c0NvbnRyb2w6IHN0cmluZ1xuXHQpIHtcblx0XHRjb25zdCBhUHJvbWlzZXMgPSBbXTtcblx0XHRmb3IgKGNvbnN0IHNBY3Rpb24gaW4gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCkge1xuXHRcdFx0bGV0IGFSZXF1ZXN0UHJvbWlzZXM6IFByb21pc2U8X1JlcXVlc3RlZFByb3BlcnR5PltdID0gW107XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0FjdGlvbiwgZmFsc2UpO1xuXHRcdFx0Y29uc3Qgc1Byb3BlcnR5ID0gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcFtzQWN0aW9uXTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGFTZWxlY3RlZENvbnRleHRzW2ldO1xuXHRcdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Db250ZXh0RGF0YSA9IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0XHRcdFx0aWYgKHNDb250cm9sID09PSBcImNoYXJ0XCIpIHtcblx0XHRcdFx0XHRcdGlmICgoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB8fCBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdChzUHJvcGVydHkpKSB7XG5cdFx0XHRcdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzQWN0aW9uLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdFx0XHRhUmVxdWVzdFByb21pc2VzID0gdGhpcy5fc2V0QWN0aW9uRW5hYmxlbWVudEZvclRhYmxlKFxuXHRcdFx0XHRcdFx0XHRvU2VsZWN0ZWRDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdHNBY3Rpb24sXG5cdFx0XHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0YVJlcXVlc3RQcm9taXNlc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdGlmICghYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0XHRcdFx0YkVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0XHRcdFx0YUFwcGxpY2FibGU6IFtdLFxuXHRcdFx0XHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0YVByb21pc2VzLnB1c2goQ29tbW9uVXRpbHMuc2V0Q29udGV4dHNCYXNlZE9uT3BlcmF0aW9uQXZhaWxhYmxlKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgW10pKTtcblx0XHRcdFx0fSBlbHNlIGlmIChhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGggJiYgdHlwZW9mIHNQcm9wZXJ0eSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHRcdC8vIFdoZW4gYWxsIHByb3BlcnR5IHZhbHVlcyBoYXZlIGJlZW4gcmV0cmlldmVkLCBzZXRcblx0XHRcdFx0XHQvLyBUaGUgYXBwbGljYWJsZSBhbmQgbm90LWFwcGxpY2FibGUgc2VsZWN0ZWQgY29udGV4dHMgZm9yIGVhY2ggYWN0aW9uIGFuZFxuXHRcdFx0XHRcdC8vIFRoZSBlbmFibGVkIHByb3BlcnR5IG9mIHRoZSBkeW5hbWljIGFjdGlvbiBpbiBpbnRlcm5hbCBtb2RlbCBjb250ZXh0LlxuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZShvSW50ZXJuYWxNb2RlbENvbnRleHQsIGFSZXF1ZXN0UHJvbWlzZXMpKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoYVByb21pc2VzKTtcblx0fSxcblx0c2V0QWN0aW9uRW5hYmxlbWVudEFmdGVyUGF0Y2g6IGZ1bmN0aW9uIChvVmlldzogVmlldywgb0xpc3RCaW5kaW5nOiBPRGF0YUxpc3RCaW5kaW5nLCBvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0KSB7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSA9IG9JbnRlcm5hbE1vZGVsQ29udGV4dD8uZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cdFx0Y29uc3Qgb0NvbnRyb2xzID0gKG9JbnRlcm5hbE1vZGVsQ29udGV4dERhdGE/LmNvbnRyb2xzIHx8IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRyb2xJZD86IHN0cmluZyB9Pjtcblx0XHRmb3IgKGNvbnN0IHNLZXkgaW4gb0NvbnRyb2xzKSB7XG5cdFx0XHRpZiAob0NvbnRyb2xzW3NLZXldICYmIG9Db250cm9sc1tzS2V5XS5jb250cm9sSWQpIHtcblx0XHRcdFx0Y29uc3Qgb1RhYmxlID0gb1ZpZXcuYnlJZChzS2V5KTtcblx0XHRcdFx0aWYgKG9UYWJsZSAmJiBvVGFibGUuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdFx0XHRjb25zdCBvUm93QmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCk7XG5cdFx0XHRcdFx0aWYgKG9Sb3dCaW5kaW5nID09IG9MaXN0QmluZGluZykge1xuXHRcdFx0XHRcdFx0QWN0aW9uUnVudGltZS5zZXRBY3Rpb25FbmFibGVtZW50KFxuXHRcdFx0XHRcdFx0XHRvVGFibGUuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0SlNPTi5wYXJzZShvVGFibGUuZGF0YShcIm9wZXJhdGlvbkF2YWlsYWJsZU1hcFwiKS5jdXN0b21EYXRhKSxcblx0XHRcdFx0XHRcdFx0b1RhYmxlLmdldFNlbGVjdGVkQ29udGV4dHMoKSBhcyBWNENvbnRleHRbXSxcblx0XHRcdFx0XHRcdFx0XCJ0YWJsZVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHR1cGRhdGVFZGl0QnV0dG9uVmlzaWJpbGl0eUFuZEVuYWJsZW1lbnQob1ZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBpVmlld0xldmVsID0gKG9WaWV3LmdldFZpZXdEYXRhKCkgYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3MpPy52aWV3TGV2ZWw7XG5cdFx0aWYgKChpVmlld0xldmVsIGFzIG51bWJlcikgPiAxKSB7XG5cdFx0XHRjb25zdCBvQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgVjRDb250ZXh0O1xuXHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudChvVmlldyk7XG5cdFx0XHRjb25zdCBzTWV0YVBhdGggPSBNb2RlbEhlbHBlci5nZXRNZXRhUGF0aEZvckNvbnRleHQob0NvbnRleHQpO1xuXHRcdFx0Y29uc3Qgc0VudGl0eVNldCA9IE1vZGVsSGVscGVyLmdldFJvb3RFbnRpdHlTZXRQYXRoKHNNZXRhUGF0aCk7XG5cdFx0XHRjb25zdCBtZXRhQ29udGV4dCA9IG9Db250ZXh0Py5nZXRNb2RlbCgpPy5nZXRNZXRhTW9kZWwoKT8uZ2V0Q29udGV4dChvQ29udGV4dD8uZ2V0UGF0aCgpKTtcblx0XHRcdGNvbnN0IGNvbnZlcnRlckNvbnRleHQgPSBDb252ZXJ0ZXJDb250ZXh0Py5jcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8oXG5cdFx0XHRcdHNFbnRpdHlTZXQsXG5cdFx0XHRcdG1ldGFDb250ZXh0LFxuXHRcdFx0XHRvQXBwQ29tcG9uZW50LmdldERpYWdub3N0aWNzKCksXG5cdFx0XHRcdG1lcmdlLFxuXHRcdFx0XHR1bmRlZmluZWRcblx0XHRcdCk7XG5cdFx0XHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpO1xuXHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0bGV0IHVwZGF0ZUhpZGRlbjtcblx0XHRcdC8vRmluZCB0aGUgVXBkYXRlIEhpZGRlbiBvZiB0aGUgcm9vdCBlbnRpdHkgc2V0IGFuZCBiaW5kIHRoZSBwcm9wZXJ0eSB0byBBbnlFbGVtZW50LCBhbnkgY2hhbmdlcyBpbiB0aGUgcGF0aCBvZiB0aGUgcm9vdCBVcGRhdGVIaWRkZW4gd2lsbCBiZSB1cGRhdGVkIHZpYSB0aGUgcHJvcGVydHksIGludGVybmFsIG1vZGVsIGNvbnRleHQgaXMgdXBkYXRlZCBiYXNlZCBvbiB0aGUgcHJvcGVydHlcblx0XHRcdGNvbnN0IGJVcGRhdGVIaWRkZW4gPVxuXHRcdFx0XHRlbnRpdHlTZXQgJiYgIU1vZGVsSGVscGVyLmlzU2luZ2xldG9uKGVudGl0eVNldCkgJiYgKGVudGl0eVNldCBhcyBFbnRpdHlTZXQpLmFubm90YXRpb25zLlVJPy5VcGRhdGVIaWRkZW4/LnZhbHVlT2YoKTtcblx0XHRcdGlmIChiVXBkYXRlSGlkZGVuICE9PSB0cnVlKSB7XG5cdFx0XHRcdHVwZGF0ZUhpZGRlbiA9IE1vZGVsSGVscGVyLmlzVXBkYXRlSGlkZGVuKGVudGl0eVNldCwgZW50aXR5VHlwZSk7XG5cdFx0XHR9XG5cdFx0XHQvL0ZpbmQgdGhlIG9wZXJhdGlvbiBhdmFpbGFibGUgcHJvcGVydHkgb2YgdGhlIHJvb3QgZWRpdCBjb25maWd1cmF0aW9uIGFuZCBmZXRjaCB0aGUgcHJvcGVydHkgdXNpbmcgQW55RWxlbWVudFxuXHRcdFx0Y29uc3Qgc0VkaXRFbmFibGVCaW5kaW5nID0gZ2V0RWRpdEJ1dHRvbkVuYWJsZWQoY29udmVydGVyQ29udGV4dCwgdW5kZWZpbmVkKTtcblx0XHRcdGNvbnN0IGRyYWZ0Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXREcmFmdFJvb3RQYXRoKG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNTdGlja3lSb290UGF0aCA9IE1vZGVsSGVscGVyLmdldFN0aWNreVJvb3RQYXRoKG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNQYXRoID0gZHJhZnRSb290UGF0aCB8fCBzU3RpY2t5Um9vdFBhdGg7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0aWYgKHNQYXRoKSB7XG5cdFx0XHRcdGNvbnN0IG9Sb290Q29udGV4dCA9IG9WaWV3LmdldE1vZGVsKCkuYmluZENvbnRleHQoc1BhdGgpLmdldEJvdW5kQ29udGV4dCgpIGFzIFY0Q29udGV4dDtcblx0XHRcdFx0aWYgKHVwZGF0ZUhpZGRlbiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc0hpZGRlbkV4cHJlc3Npb24gPSBjb21waWxlRXhwcmVzc2lvbihlcXVhbChnZXRIaWRkZW5FeHByZXNzaW9uKGNvbnZlcnRlckNvbnRleHQsIHVwZGF0ZUhpZGRlbiksIGZhbHNlKSk7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVFZGl0TW9kZWxDb250ZXh0KHNIaWRkZW5FeHByZXNzaW9uLCBvVmlldywgb1Jvb3RDb250ZXh0LCBcInJvb3RFZGl0VmlzaWJsZVwiLCBvSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChzRWRpdEVuYWJsZUJpbmRpbmcpIHtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUVkaXRNb2RlbENvbnRleHQoc0VkaXRFbmFibGVCaW5kaW5nLCBvVmlldywgb1Jvb3RDb250ZXh0LCBcInJvb3RFZGl0RW5hYmxlZFwiLCBvSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdHVwZGF0ZUVkaXRNb2RlbENvbnRleHQ6IGZ1bmN0aW9uIChcblx0XHRzQmluZGluZ0V4cHJlc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZCxcblx0XHRvVmlldzogVmlldyxcblx0XHRvUm9vdENvbnRleHQ6IFY0Q29udGV4dCxcblx0XHRzUHJvcGVydHk6IHN0cmluZyxcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0XG5cdCkge1xuXHRcdGlmIChzQmluZGluZ0V4cHJlc3Npb24pIHtcblx0XHRcdGNvbnN0IG9IaWRkZW5FbGVtZW50ID0gbmV3IEFueUVsZW1lbnQoeyBhbnlUZXh0OiBzQmluZGluZ0V4cHJlc3Npb24gfSk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5zZXRCaW5kaW5nQ29udGV4dChudWxsKTtcblx0XHRcdG9WaWV3LmFkZERlcGVuZGVudChvSGlkZGVuRWxlbWVudCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5nZXRCaW5kaW5nKFwiYW55VGV4dFwiKTtcblx0XHRcdGNvbnN0IG9Db250ZXh0ID0gb0hpZGRlbkVsZW1lbnRcblx0XHRcdFx0LmdldE1vZGVsKClcblx0XHRcdFx0Py5iaW5kQ29udGV4dChvUm9vdENvbnRleHQuZ2V0UGF0aCgpLCBvUm9vdENvbnRleHQsIHsgJCRncm91cElkOiBcIiRhdXRvLkhlcm9lc1wiIH0pXG5cdFx0XHRcdD8uZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5zZXRCaW5kaW5nQ29udGV4dChvQ29udGV4dCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudD8uZ2V0QmluZGluZyhcImFueVRleHRcIik/LmF0dGFjaENoYW5nZSgob0V2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvTmV3VmFsdWUgPSAob0V2ZW50LmdldFNvdXJjZSgpIGFzIFByb3BlcnR5QmluZGluZykuZ2V0RXh0ZXJuYWxWYWx1ZSgpO1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc1Byb3BlcnR5LCBvTmV3VmFsdWUpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXG5cdF9zZXRBY3Rpb25FbmFibGVtZW50Rm9yVGFibGU6IGZ1bmN0aW9uIChcblx0XHRvU2VsZWN0ZWRDb250ZXh0OiBWNENvbnRleHQgfCB1bmRlZmluZWQsXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0OiBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRzQWN0aW9uOiBzdHJpbmcsXG5cdFx0c1Byb3BlcnR5OiBzdHJpbmcsXG5cdFx0YVJlcXVlc3RQcm9taXNlczogUHJvbWlzZTxfUmVxdWVzdGVkUHJvcGVydHk+W11cblx0KSB7XG5cdFx0Ly8gUmVzZXQgYWxsIHByb3BlcnRpZXMgYmVmb3JlIGNvbXB1dGF0aW9uXG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0YkVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0YUFwcGxpY2FibGU6IFtdLFxuXHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0fSk7XG5cdFx0Ly8gTm90ZSB0aGF0IG5vbiBkeW5hbWljIGFjdGlvbnMgYXJlIG5vdCBwcm9jZXNzZWQgaGVyZS4gVGhleSBhcmUgZW5hYmxlZCBiZWNhdXNlXG5cdFx0Ly8gb25lIG9yIG1vcmUgYXJlIHNlbGVjdGVkIGFuZCB0aGUgc2Vjb25kIHBhcnQgb2YgdGhlIGNvbmRpdGlvbiBpbiB0aGUgdGVtcGxhdGluZ1xuXHRcdC8vIGlzIHRoZW4gdW5kZWZpbmVkIGFuZCB0aHVzIHRoZSBidXR0b24gdGFrZXMgdGhlIGRlZmF1bHQgZW5hYmxpbmcsIHdoaWNoIGlzIHRydWUhXG5cdFx0Y29uc3QgYUFwcGxpY2FibGUgPSBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoID0gYCR7b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufS9iRW5hYmxlZGA7XG5cdFx0aWYgKHR5cGVvZiBzUHJvcGVydHkgPT09IFwib2JqZWN0XCIgJiYgc1Byb3BlcnR5ICE9PSBudWxsICYmIHNQcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdCgpIGFzIFJlY29yZDxzdHJpbmcsIFByaW1pdGl2ZVR5cGU+O1xuXHRcdFx0XHRjb25zdCBvVHJhbnNmb3JtZWRCaW5kaW5nID0gdHJhbnNmb3JtUmVjdXJzaXZlbHkoXG5cdFx0XHRcdFx0c1Byb3BlcnR5LFxuXHRcdFx0XHRcdFwiUGF0aEluTW9kZWxcIixcblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1mdW5jXG5cdFx0XHRcdFx0ZnVuY3Rpb24gKG9CaW5kaW5nRXhwcmVzc2lvbjogUGF0aEluTW9kZWxFeHByZXNzaW9uPFByaW1pdGl2ZVR5cGU+KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb0NvbnRleHREYXRhID8gY29uc3RhbnQob0NvbnRleHREYXRhW29CaW5kaW5nRXhwcmVzc2lvbi5wYXRoXSkgOiBjb25zdGFudChmYWxzZSk7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbnN0IHNSZXN1bHQgPSBjb21waWxlRXhwcmVzc2lvbihvVHJhbnNmb3JtZWRCaW5kaW5nKTtcblx0XHRcdFx0aWYgKHNSZXN1bHQgPT09IFwidHJ1ZVwiKSB7XG5cdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHRcdFx0YUFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRhTm90QXBwbGljYWJsZS5wdXNoKG9TZWxlY3RlZENvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb21tb25VdGlscy5zZXREeW5hbWljQWN0aW9uQ29udGV4dHMob0ludGVybmFsTW9kZWxDb250ZXh0LCBzQWN0aW9uLCBhQXBwbGljYWJsZSwgYU5vdEFwcGxpY2FibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBvQ29udGV4dERhdGEgPSBvU2VsZWN0ZWRDb250ZXh0Py5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPjtcblx0XHRcdGlmIChzUHJvcGVydHkgPT09IG51bGwgJiYgISFvQ29udGV4dERhdGFbYCMke3NBY3Rpb259YF0pIHtcblx0XHRcdFx0Ly9sb29rIGZvciBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBpZiBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgbm90IG51bGxcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHR9IGVsc2UgaWYgKG9TZWxlY3RlZENvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHQvLyBDb2xsZWN0IHByb21pc2VzIHRvIHJldHJpZXZlIHNpbmdsZXRvbiBvciBub3JtYWwgcHJvcGVydHkgdmFsdWUgYXN5bmNocm9ub3VzbHlcblx0XHRcdFx0YVJlcXVlc3RQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnJlcXVlc3RQcm9wZXJ0eShvU2VsZWN0ZWRDb250ZXh0LCBzQWN0aW9uLCBzUHJvcGVydHksIHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgpKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGFSZXF1ZXN0UHJvbWlzZXM7XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBBY3Rpb25SdW50aW1lO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7O0VBa0JBLE1BQU1BLGFBQWEsR0FBRztJQUNyQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0MsbUJBQW1CLEVBQUUsVUFDcEJDLHFCQUEyQyxFQUMzQ0MsNEJBQW9ELEVBQ3BEQyxpQkFBOEIsRUFDOUJDLFFBQWdCLEVBQ2Y7TUFDRCxNQUFNQyxTQUFTLEdBQUcsRUFBRTtNQUNwQixLQUFLLE1BQU1DLE9BQU8sSUFBSUosNEJBQTRCLEVBQUU7UUFDbkQsSUFBSUssZ0JBQStDLEdBQUcsRUFBRTtRQUN4RE4scUJBQXFCLENBQUNPLFdBQVcsQ0FBQ0YsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUNqRCxNQUFNRyxTQUFTLEdBQUdQLDRCQUE0QixDQUFDSSxPQUFPLENBQUM7UUFDdkQsS0FBSyxJQUFJSSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdQLGlCQUFpQixDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO1VBQ2xELE1BQU1FLGdCQUFnQixHQUFHVCxpQkFBaUIsQ0FBQ08sQ0FBQyxDQUFDO1VBQzdDLElBQUlFLGdCQUFnQixFQUFFO1lBQ3JCLE1BQU1DLFlBQVksR0FBR0QsZ0JB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
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsImFSZXF1ZXN0UHJvbWlzZXMiLCJzZXRQcm9wZXJ0eSIsInNQcm9wZXJ0eSIsImkiLCJsZW5ndGgiLCJvU2VsZWN0ZWRDb250ZXh0Iiwib0NvbnRleHREYXRhIiwiZ2V0T2JqZWN0IiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsInB1c2giLCJDb21tb25VdGlscyIsInNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZSIsIlByb21pc2UiLCJhbGwiLCJzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaCIsIm9WaWV3Iiwib0xpc3RCaW5kaW5nIiwib0ludGVybmFsTW9kZWxDb250ZXh0RGF0YSIsIm9Db250cm9scyIsImNvbnRyb2xzIiwic0tleSIsImNvbnRyb2xJZCIsIm9UYWJsZSIsImJ5SWQiLCJpc0EiLCJvUm93QmluZGluZyIsImdldFJvd0JpbmRpbmciLCJnZXRCaW5kaW5nQ29udGV4dCIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJjdXN0b21EYXRhIiwiZ2V0U2VsZWN0ZWRDb250ZXh0cyIsInVwZGF0ZUVkaXRCdXR0b25WaXNpYmlsaXR5QW5kRW5hYmxlbWVudCIsImlWaWV3TGV2ZWwiLCJnZXRWaWV3RGF0YSIsInZpZXdMZXZlbCIsIm9Db250ZXh0Iiwib0FwcENvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsInNNZXRhUGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0TWV0YVBhdGhGb3JDb250ZXh0Iiwic0VudGl0eVNldCIsImdldFJvb3RFbnRpdHlTZXRQYXRoIiwibWV0YUNvbnRleHQiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsImdldENvbnRleHQiLCJnZXRQYXRoIiwiY29udmVydGVyQ29udGV4dCIsIkNvbnZlcnRlckNvbnRleHQiLCJjcmVhdGVDb252ZXJ0ZXJDb250ZXh0Rm9yTWFjcm8iLCJnZXREaWFnbm9zdGljcyIsIm1lcmdlIiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwiZ2V0RW50aXR5U2V0IiwiZW50aXR5VHlwZSIsImdldEVudGl0eVR5cGUiLCJ1cGRhdGVIaWRkZW4iLCJiVXBkYXRlSGlkZGVuIiwiaXNTaW5nbGV0b24iLCJhbm5vdGF0aW9ucyIsIlVJIiwiVXBkYXRlSGlkZGVuIiwidmFsdWVPZiIsImlzVXBkYXRlSGlkZGVuIiwic0VkaXRFbmFibGVCaW5kaW5nIiwiZ2V0RWRpdEJ1dHRvbkVuYWJsZWQiLCJkcmFmdFJvb3RQYXRoIiwiZ2V0RHJhZnRSb290UGF0aCIsInNTdGlja3lSb290UGF0aCIsImdldFN0aWNreVJvb3RQYXRoIiwic1BhdGgiLCJvUm9vdENvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldEJvdW5kQ29udGV4dCIsInNIaWRkZW5FeHByZXNzaW9uIiwiY29tcGlsZUV4cHJlc3Npb24iLCJlcXVhbCIsImdldEhpZGRlbkV4cHJlc3Npb24iLCJ1cGRhdGVFZGl0TW9kZWxDb250ZXh0Iiwic0JpbmRpbmdFeHByZXNzaW9uIiwib0hpZGRlbkVsZW1lbnQiLCJBbnlFbGVtZW50IiwiYW55VGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRGVwZW5kZW50IiwiZ2V0QmluZGluZyIsIiQkZ3JvdXBJZCIsImF0dGFjaENoYW5nZSIsIm9FdmVudCIsIm9OZXdWYWx1ZSIsImdldFNvdXJjZSIsImdldEV4dGVybmFsVmFsdWUiLCJzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoIiwib1RyYW5zZm9ybWVkQmluZGluZyIsInRyYW5zZm9ybVJlY3Vyc2l2ZWx5Iiwib0JpbmRpbmdFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJwYXRoIiwic1Jlc3VsdCIsInNldER5bmFtaWNBY3Rpb25Db250ZXh0cyIsInJlcXVlc3RQcm9wZXJ0eSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQWN0aW9uUnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByaW1pdGl2ZVR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCBtZXJnZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9tZXJnZVwiO1xuaW1wb3J0IHR5cGUgeyBfUmVxdWVzdGVkUHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgUGF0aEluTW9kZWxFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBjb25zdGFudCwgZXF1YWwsIHRyYW5zZm9ybVJlY3Vyc2l2ZWx5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBQcm9wZXJ0eUJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9Qcm9wZXJ0eUJpbmRpbmdcIjtcbmltcG9ydCBBbnlFbGVtZW50IGZyb20gXCIuL2NvbnRyb2xzL0FueUVsZW1lbnRcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBCYXNlTWFuaWZlc3RTZXR0aW5ncyB9IGZyb20gXCIuL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0RWRpdEJ1dHRvbkVuYWJsZWQsIGdldEhpZGRlbkV4cHJlc3Npb24gfSBmcm9tIFwiLi9jb252ZXJ0ZXJzL29iamVjdFBhZ2UvSGVhZGVyQW5kRm9vdGVyQWN0aW9uXCI7XG5cbmNvbnN0IEFjdGlvblJ1bnRpbWUgPSB7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBhY3Rpb24gZW5hYmxlbWVudC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNldEFjdGlvbkVuYWJsZW1lbnRcblx0ICogQHBhcmFtIG9JbnRlcm5hbE1vZGVsQ29udGV4dCBPYmplY3QgY29udGFpbmluZyB0aGUgY29udGV4dCBtb2RlbFxuXHQgKiBAcGFyYW0gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcCBNYXAgY29udGFpbmluZyB0aGUgb3BlcmF0aW9uIGF2YWlsYWJpbGl0eSBvZiBhY3Rpb25zXG5cdCAqIEBwYXJhbSBhU2VsZWN0ZWRDb250ZXh0cyBBcnJheSBjb250YWluaW5nIHNlbGVjdGVkIGNvbnRleHRzIG9mIHRoZSBjaGFydFxuXHQgKiBAcGFyYW0gc0NvbnRyb2wgQ29udHJvbCBuYW1lXG5cdCAqIEByZXR1cm5zIFRoZSBhY3Rpb24gZW5hYmxlbWVudCBwcm9taXNlc1xuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEFjdGlvbkVuYWJsZW1lbnQ6IGFzeW5jIGZ1bmN0aW9uIChcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG5cdFx0YVNlbGVjdGVkQ29udGV4dHM6IENvbnRleHRbXSxcblx0XHRzQ29udHJvbDogc3RyaW5nXG5cdCkge1xuXHRcdGNvbnN0IGFQcm9taXNlcyA9IFtdO1xuXHRcdGZvciAoY29uc3Qgc0FjdGlvbiBpbiBvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwKSB7XG5cdFx0XHRsZXQgYVJlcXVlc3RQcm9taXNlczogUHJvbWlzZTxfUmVxdWVzdGVkUHJvcGVydHk+W10gPSBbXTtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzQWN0aW9uLCBmYWxzZSk7XG5cdFx0XHRjb25zdCBzUHJvcGVydHkgPSBvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwW3NBY3Rpb25dO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBvU2VsZWN0ZWRDb250ZXh0ID0gYVNlbGVjdGVkQ29udGV4dHNbaV07XG5cdFx0XHRcdGlmIChvU2VsZWN0ZWRDb250ZXh0KSB7XG5cdFx0XHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRcdFx0XHRpZiAoc0NvbnRyb2wgPT09IFwiY2hhcnRcIikge1xuXHRcdFx0XHRcdFx0aWYgKChzUHJvcGVydHkgPT09IG51bGwgJiYgISFvQ29udGV4dERhdGFbYCMke3NBY3Rpb259YF0pIHx8IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KHNQcm9wZXJ0eSkpIHtcblx0XHRcdFx0XHRcdFx0Ly9sb29rIGZvciBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBpZiBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgbm90IG51bGxcblx0XHRcdFx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNBY3Rpb24sIHRydWUpO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2UgaWYgKHNDb250cm9sID09PSBcInRhYmxlXCIpIHtcblx0XHRcdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXMgPSB0aGlzLl9zZXRBY3Rpb25FbmFibGVtZW50Rm9yVGFibGUoXG5cdFx0XHRcdFx0XHRcdG9TZWxlY3RlZENvbnRleHQsXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0XHRcdFx0c0FjdGlvbixcblx0XHRcdFx0XHRcdFx0c1Byb3BlcnR5LFxuXHRcdFx0XHRcdFx0XHRhUmVxdWVzdFByb21pc2VzXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHNDb250cm9sID09PSBcInRhYmxlXCIpIHtcblx0XHRcdFx0aWYgKCFhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGgpIHtcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoYGR5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn1gLCB7XG5cdFx0XHRcdFx0XHRiRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRcdFx0XHRhQXBwbGljYWJsZTogW10sXG5cdFx0XHRcdFx0XHRhTm90QXBwbGljYWJsZTogW11cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaChDb21tb25VdGlscy5zZXRDb250ZXh0c0Jhc2VkT25PcGVyYXRpb25BdmFpbGFibGUob0ludGVybmFsTW9kZWxDb250ZXh0LCBbXSkpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFTZWxlY3RlZENvbnRleHRzLmxlbmd0aCAmJiB0eXBlb2Ygc1Byb3BlcnR5ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdFx0Ly8gV2hlbiBhbGwgcHJvcGVydHkgdmFsdWVzIGhhdmUgYmVlbiByZXRyaWV2ZWQsIHNldFxuXHRcdFx0XHRcdC8vIFRoZSBhcHBsaWNhYmxlIGFuZCBub3QtYXBwbGljYWJsZSBzZWxlY3RlZCBjb250ZXh0cyBmb3IgZWFjaCBhY3Rpb24gYW5kXG5cdFx0XHRcdFx0Ly8gVGhlIGVuYWJsZWQgcHJvcGVydHkgb2YgdGhlIGR5bmFtaWMgYWN0aW9uIGluIGludGVybmFsIG1vZGVsIGNvbnRleHQuXG5cdFx0XHRcdFx0YVByb21pc2VzLnB1c2goQ29tbW9uVXRpbHMuc2V0Q29udGV4dHNCYXNlZE9uT3BlcmF0aW9uQXZhaWxhYmxlKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgYVJlcXVlc3RQcm9taXNlcykpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpO1xuXHR9LFxuXHRzZXRBY3Rpb25FbmFibGVtZW50QWZ0ZXJQYXRjaDogZnVuY3Rpb24gKG9WaWV3OiBWaWV3LCBvTGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcsIG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQpIHtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHREYXRhID0gb0ludGVybmFsTW9kZWxDb250ZXh0Py5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRjb25zdCBvQ29udHJvbHMgPSAob0ludGVybmFsTW9kZWxDb250ZXh0RGF0YT8uY29udHJvbHMgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHsgY29udHJvbElkPzogc3RyaW5nIH0+O1xuXHRcdGZvciAoY29uc3Qgc0tleSBpbiBvQ29udHJvbHMpIHtcblx0XHRcdGlmIChvQ29udHJvbHNbc0tleV0gJiYgb0NvbnRyb2xzW3NLZXldLmNvbnRyb2xJZCkge1xuXHRcdFx0XHRjb25zdCBvVGFibGUgPSBvVmlldy5ieUlkKHNLZXkpO1xuXHRcdFx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0E8VGFibGU+KFwic2FwLnVpLm1kYy5UYWJsZVwiKSkge1xuXHRcdFx0XHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gb1RhYmxlLmdldFJvd0JpbmRpbmcoKTtcblx0XHRcdFx0XHRpZiAob1Jvd0JpbmRpbmcgPT0gb0xpc3RCaW5kaW5nKSB7XG5cdFx0XHRcdFx0XHRBY3Rpb25SdW50aW1lLnNldEFjdGlvbkVuYWJsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHRKU09OLnBhcnNlKG9UYWJsZS5kYXRhKFwib3BlcmF0aW9uQXZhaWxhYmxlTWFwXCIpLmN1c3RvbURhdGEpLFxuXHRcdFx0XHRcdFx0XHRvVGFibGUuZ2V0U2VsZWN0ZWRDb250ZXh0cygpIGFzIENvbnRleHRbXSxcblx0XHRcdFx0XHRcdFx0XCJ0YWJsZVwiXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHR1cGRhdGVFZGl0QnV0dG9uVmlzaWJpbGl0eUFuZEVuYWJsZW1lbnQob1ZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBpVmlld0xldmVsID0gKG9WaWV3LmdldFZpZXdEYXRhKCkgYXMgQmFzZU1hbmlmZXN0U2V0dGluZ3MpPy52aWV3TGV2ZWw7XG5cdFx0aWYgKChpVmlld0xldmVsIGFzIG51bWJlcikgPiAxKSB7XG5cdFx0XHRjb25zdCBvQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQob1ZpZXcpO1xuXHRcdFx0Y29uc3Qgc01ldGFQYXRoID0gTW9kZWxIZWxwZXIuZ2V0TWV0YVBhdGhGb3JDb250ZXh0KG9Db250ZXh0KTtcblx0XHRcdGNvbnN0IHNFbnRpdHlTZXQgPSBNb2RlbEhlbHBlci5nZXRSb290RW50aXR5U2V0UGF0aChzTWV0YVBhdGgpO1xuXHRcdFx0Y29uc3QgbWV0YUNvbnRleHQgPSBvQ29udGV4dD8uZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk/LmdldENvbnRleHQob0NvbnRleHQ/LmdldFBhdGgoKSk7XG5cdFx0XHRjb25zdCBjb252ZXJ0ZXJDb250ZXh0ID0gQ29udmVydGVyQ29udGV4dD8uY3JlYXRlQ29udmVydGVyQ29udGV4dEZvck1hY3JvKFxuXHRcdFx0XHRzRW50aXR5U2V0LFxuXHRcdFx0XHRtZXRhQ29udGV4dCxcblx0XHRcdFx0b0FwcENvbXBvbmVudC5nZXREaWFnbm9zdGljcygpLFxuXHRcdFx0XHRtZXJnZSxcblx0XHRcdFx0dW5kZWZpbmVkXG5cdFx0XHQpO1xuXHRcdFx0Y29uc3QgZW50aXR5U2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKTtcblx0XHRcdGNvbnN0IGVudGl0eVR5cGUgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKTtcblx0XHRcdGxldCB1cGRhdGVIaWRkZW47XG5cdFx0XHQvL0ZpbmQgdGhlIFVwZGF0ZSBIaWRkZW4gb2YgdGhlIHJvb3QgZW50aXR5IHNldCBhbmQgYmluZCB0aGUgcHJvcGVydHkgdG8gQW55RWxlbWVudCwgYW55IGNoYW5nZXMgaW4gdGhlIHBhdGggb2YgdGhlIHJvb3QgVXBkYXRlSGlkZGVuIHdpbGwgYmUgdXBkYXRlZCB2aWEgdGhlIHByb3BlcnR5LCBpbnRlcm5hbCBtb2RlbCBjb250ZXh0IGlzIHVwZGF0ZWQgYmFzZWQgb24gdGhlIHByb3BlcnR5XG5cdFx0XHRjb25zdCBiVXBkYXRlSGlkZGVuID0gZW50aXR5U2V0ICYmICFNb2RlbEhlbHBlci5pc1NpbmdsZXRvbihlbnRpdHlTZXQpICYmIGVudGl0eVNldC5hbm5vdGF0aW9ucy5VST8uVXBkYXRlSGlkZGVuPy52YWx1ZU9mKCk7XG5cdFx0XHRpZiAoYlVwZGF0ZUhpZGRlbiAhPT0gdHJ1ZSkge1xuXHRcdFx0XHR1cGRhdGVIaWRkZW4gPSBNb2RlbEhlbHBlci5pc1VwZGF0ZUhpZGRlbihlbnRpdHlTZXQsIGVudGl0eVR5cGUpO1xuXHRcdFx0fVxuXHRcdFx0Ly9GaW5kIHRoZSBvcGVyYXRpb24gYXZhaWxhYmxlIHByb3BlcnR5IG9mIHRoZSByb290IGVkaXQgY29uZmlndXJhdGlvbiBhbmQgZmV0Y2ggdGhlIHByb3BlcnR5IHVzaW5nIEFueUVsZW1lbnRcblx0XHRcdGNvbnN0IHNFZGl0RW5hYmxlQmluZGluZyA9IGdldEVkaXRCdXR0b25FbmFibGVkKGNvbnZlcnRlckNvbnRleHQsIHVuZGVmaW5lZCk7XG5cdFx0XHRjb25zdCBkcmFmdFJvb3RQYXRoID0gTW9kZWxIZWxwZXIuZ2V0RHJhZnRSb290UGF0aChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzU3RpY2t5Um9vdFBhdGggPSBNb2RlbEhlbHBlci5nZXRTdGlja3lSb290UGF0aChvQ29udGV4dCk7XG5cdFx0XHRjb25zdCBzUGF0aCA9IGRyYWZ0Um9vdFBhdGggfHwgc1N0aWNreVJvb3RQYXRoO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdGlmIChzUGF0aCkge1xuXHRcdFx0XHRjb25zdCBvUm9vdENvbnRleHQgPSBvVmlldy5nZXRNb2RlbCgpLmJpbmRDb250ZXh0KHNQYXRoKS5nZXRCb3VuZENvbnRleHQoKSBhcyBDb250ZXh0O1xuXHRcdFx0XHRpZiAodXBkYXRlSGlkZGVuICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRjb25zdCBzSGlkZGVuRXhwcmVzc2lvbiA9IGNvbXBpbGVFeHByZXNzaW9uKGVxdWFsKGdldEhpZGRlbkV4cHJlc3Npb24oY29udmVydGVyQ29udGV4dCwgdXBkYXRlSGlkZGVuKSwgZmFsc2UpKTtcblx0XHRcdFx0XHR0aGlzLnVwZGF0ZUVkaXRNb2RlbENvbnRleHQoc0hpZGRlbkV4cHJlc3Npb24sIG9WaWV3LCBvUm9vdENvbnRleHQsIFwicm9vdEVkaXRWaXNpYmxlXCIsIG9JbnRlcm5hbE1vZGVsQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHNFZGl0RW5hYmxlQmluZGluZykge1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlRWRpdE1vZGVsQ29udGV4dChzRWRpdEVuYWJsZUJpbmRpbmcsIG9WaWV3LCBvUm9vdENvbnRleHQsIFwicm9vdEVkaXRFbmFibGVkXCIsIG9JbnRlcm5hbE1vZGVsQ29udGV4dCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0dXBkYXRlRWRpdE1vZGVsQ29udGV4dDogZnVuY3Rpb24gKFxuXHRcdHNCaW5kaW5nRXhwcmVzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRcdG9WaWV3OiBWaWV3LFxuXHRcdG9Sb290Q29udGV4dDogQ29udGV4dCxcblx0XHRzUHJvcGVydHk6IHN0cmluZyxcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQ6IEludGVybmFsTW9kZWxDb250ZXh0XG5cdCkge1xuXHRcdGlmIChzQmluZGluZ0V4cHJlc3Npb24pIHtcblx0XHRcdGNvbnN0IG9IaWRkZW5FbGVtZW50ID0gbmV3IEFueUVsZW1lbnQoeyBhbnlUZXh0OiBzQmluZGluZ0V4cHJlc3Npb24gfSk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5zZXRCaW5kaW5nQ29udGV4dChudWxsKTtcblx0XHRcdG9WaWV3LmFkZERlcGVuZGVudChvSGlkZGVuRWxlbWVudCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5nZXRCaW5kaW5nKFwiYW55VGV4dFwiKTtcblx0XHRcdGNvbnN0IG9Db250ZXh0ID0gb0hpZGRlbkVsZW1lbnRcblx0XHRcdFx0LmdldE1vZGVsKClcblx0XHRcdFx0Py5iaW5kQ29udGV4dChvUm9vdENvbnRleHQuZ2V0UGF0aCgpLCBvUm9vdENvbnRleHQsIHsgJCRncm91cElkOiBcIiRhdXRvLkhlcm9lc1wiIH0pXG5cdFx0XHRcdD8uZ2V0Qm91bmRDb250ZXh0KCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudC5zZXRCaW5kaW5nQ29udGV4dChvQ29udGV4dCk7XG5cdFx0XHRvSGlkZGVuRWxlbWVudD8uZ2V0QmluZGluZyhcImFueVRleHRcIik/LmF0dGFjaENoYW5nZSgob0V2ZW50OiBFdmVudCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvTmV3VmFsdWUgPSAob0V2ZW50LmdldFNvdXJjZSgpIGFzIFByb3BlcnR5QmluZGluZykuZ2V0RXh0ZXJuYWxWYWx1ZSgpO1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc1Byb3BlcnR5LCBvTmV3VmFsdWUpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXG5cdF9zZXRBY3Rpb25FbmFibGVtZW50Rm9yVGFibGU6IGZ1bmN0aW9uIChcblx0XHRvU2VsZWN0ZWRDb250ZXh0OiBDb250ZXh0IHwgdW5kZWZpbmVkLFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0c0FjdGlvbjogc3RyaW5nLFxuXHRcdHNQcm9wZXJ0eTogc3RyaW5nLFxuXHRcdGFSZXF1ZXN0UHJvbWlzZXM6IFByb21pc2U8X1JlcXVlc3RlZFByb3BlcnR5PltdXG5cdCkge1xuXHRcdC8vIFJlc2V0IGFsbCBwcm9wZXJ0aWVzIGJlZm9yZSBjb21wdXRhdGlvblxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufWAsIHtcblx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFBcHBsaWNhYmxlOiBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlOiBbXVxuXHRcdH0pO1xuXHRcdC8vIE5vdGUgdGhhdCBub24gZHluYW1pYyBhY3Rpb25zIGFyZSBub3QgcHJvY2Vzc2VkIGhlcmUuIFRoZXkgYXJlIGVuYWJsZWQgYmVjYXVzZVxuXHRcdC8vIG9uZSBvciBtb3JlIGFyZSBzZWxlY3RlZCBhbmQgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBjb25kaXRpb24gaW4gdGhlIHRlbXBsYXRpbmdcblx0XHQvLyBpcyB0aGVuIHVuZGVmaW5lZCBhbmQgdGh1cyB0aGUgYnV0dG9uIHRha2VzIHRoZSBkZWZhdWx0IGVuYWJsaW5nLCB3aGljaCBpcyB0cnVlIVxuXHRcdGNvbnN0IGFBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRhTm90QXBwbGljYWJsZSA9IFtdLFxuXHRcdFx0c0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCA9IGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2R5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn0vYkVuYWJsZWRgO1xuXHRcdGlmICh0eXBlb2Ygc1Byb3BlcnR5ID09PSBcIm9iamVjdFwiICYmIHNQcm9wZXJ0eSAhPT0gbnVsbCAmJiBzUHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKG9TZWxlY3RlZENvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKSBhcyBSZWNvcmQ8c3RyaW5nLCBQcmltaXRpdmVUeXBlPjtcblx0XHRcdFx0Y29uc3Qgb1RyYW5zZm9ybWVkQmluZGluZyA9IHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KFxuXHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcIlBhdGhJbk1vZGVsXCIsXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuXHRcdFx0XHRcdGZ1bmN0aW9uIChvQmluZGluZ0V4cHJlc3Npb246IFBhdGhJbk1vZGVsRXhwcmVzc2lvbjxQcmltaXRpdmVUeXBlPikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9Db250ZXh0RGF0YSA/IGNvbnN0YW50KG9Db250ZXh0RGF0YVtvQmluZGluZ0V4cHJlc3Npb24ucGF0aF0pIDogY29uc3RhbnQoZmFsc2UpO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBzUmVzdWx0ID0gY29tcGlsZUV4cHJlc3Npb24ob1RyYW5zZm9ybWVkQmluZGluZyk7XG5cdFx0XHRcdGlmIChzUmVzdWx0ID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0XHRcdGFBcHBsaWNhYmxlLnB1c2gob1NlbGVjdGVkQ29udGV4dCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YU5vdEFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29tbW9uVXRpbHMuc2V0RHluYW1pY0FjdGlvbkNvbnRleHRzKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgc0FjdGlvbiwgYUFwcGxpY2FibGUsIGFOb3RBcHBsaWNhYmxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dD8uZ2V0T2JqZWN0KCkgYXMgUmVjb3JkPHN0cmluZywgUHJpbWl0aXZlVHlwZT47XG5cdFx0XHRpZiAoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB7XG5cdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0fSBlbHNlIGlmIChvU2VsZWN0ZWRDb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0Ly8gQ29sbGVjdCBwcm9taXNlcyB0byByZXRyaWV2ZSBzaW5nbGV0b24gb3Igbm9ybWFsIHByb3BlcnR5IHZhbHVlIGFzeW5jaHJvbm91c2x5XG5cdFx0XHRcdGFSZXF1ZXN0UHJvbWlzZXMucHVzaChDb21tb25VdGlscy5yZXF1ZXN0UHJvcGVydHkob1NlbGVjdGVkQ29udGV4dCwgc0FjdGlvbiwgc1Byb3BlcnR5LCBzRHluYW1pY0FjdGlvbkVuYWJsZWRQYXRoKSk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBhUmVxdWVzdFByb21pc2VzO1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgQWN0aW9uUnVudGltZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztFQW1CQSxNQUFNQSxhQUFhLEdBQUc7SUFDckI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLG1CQUFtQixFQUFFLGdCQUNwQkMscUJBQTJDLEVBQzNDQyw0QkFBb0QsRUFDcERDLGlCQUE0QixFQUM1QkMsUUFBZ0IsRUFDZjtNQUNELE1BQU1DLFNBQVMsR0FBRyxFQUFFO01BQ3BCLEtBQUssTUFBTUMsT0FBTyxJQUFJSiw0QkFBNEIsRUFBRTtRQUNuRCxJQUFJSyxnQkFBK0MsR0FBRyxFQUFFO1FBQ3hETixxQkFBcUIsQ0FBQ08sV0FBVyxDQUFDRixPQUFPLEVBQUUsS0FBSyxDQUFDO1FBQ2pELE1BQU1HLFNBQVMsR0FBR1AsNEJBQTRCLENBQUNJLE9BQU8sQ0FBQztRQUN2RCxLQUFLLElBQUlJLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR1AsaUJBQWlCLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7VUFDbEQsTUFBTUUsZ0JBQWdCLEdBQUdULGlCQUFpQixDQUFDTyxDQUFDLENBQUM7VUFDN0MsSUFBSUUsZ0JBQWdCLEVBQUU7WUFDckIsTUFBTUMsWUFBWSxHQUFH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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/base/util/merge","sap/fe/core/CommonUtils","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","./controls/AnyElement","./converters/ConverterContext","./converters/objectPage/HeaderAndFooterAction"],function(t,e,n,o,i,l,s){"use strict";var a=s.getHiddenExpression;var d=s.getEditButtonEnabled;var r=n.transformRecursively;var c=n.equal;var u=n.constant;var g=n.compileExpression;const p={setActionEnablement:function(t,n,o,i){const l=[];for(const s in n){let a=[];t.setProperty(s,false);const d=n[s];for(let e=0;e<o.length;e++){const n=o[e];if(n){const e=n.getObject();if(i==="chart"){if(d===null&&!!e[`#${s}`]||n.getObject(d)){t.setProperty(s,true);break}}else if(i==="table"){a=this._setActionEnablementForTable(n,t,s,d,a)}}}if(i==="table"){if(!o.length){t.setProperty(`dynamicActions/${s}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});l.push(e.setContextsBasedOnOperationAvailable(t,[]))}else if(o.length&&typeof d==="string"){l.push(e.setContextsBasedOnOperationAvailable(t,a))}}}return Promise.all(l)},setActionEnablementAfterPatch:function(t,e,n){const o=n===null||n===void 0?void 0:n.getObject();const i=(o===null||o===void 0?void 0:o.controls)||{};for(const n in i){if(i[n]&&i[n].controlId){const o=t.byId(n);if(o&&o.isA("sap.ui.mdc.Table")){const t=o.getRowBinding();if(t==e){p.setActionEnablement(o.getBindingContext("internal"),JSON.parse(o.data("operationAvailableMap").customData),o.getSelectedContexts(),"table")}}}}},updateEditButtonVisibilityAndEnablement(n){var i;const s=(i=n.getViewData())===null||i===void 0?void 0:i.viewLevel;if(s>1){var r,u,p,f;const i=n.getBindingContext();const s=e.getAppComponent(n);const v=o.getMetaPathForContext(i);const b=o.getRootEntitySetPath(v);const h=i===null||i===void 0?void 0:(r=i.getModel())===null||r===void 0?void 0:(u=r.getMetaModel())===null||u===void 0?void 0:u.getContext(i===null||i===void 0?void 0:i.getPath());const x=l===null||l===void 0?void 0:l.createConverterContextForMacro(b,h,s.getDiagnostics(),t,undefined);const y=x.getEntitySet();const C=x.getEntityType();let E;const A=y&&!o.isSingleton(y)&&((p=y.annotations.UI)===null||p===void 0?void 0:(f=p.UpdateHidden)===null||f===void 0?void 0:f.valueOf());if(A!==true){E=o.isUpdateHidden(y,C)}const m=d(x,undefined);const P=o.getDraftRootPath(i);const B=o.getStickyRootPath(i);const M=P||B;const O=n.getBindingContext("internal");if(M){const t=n.getModel().bindContext(M).getBoundContext();if(E!==undefined){const e=g(c(a(x,E),false));this.updateEditModelContext(e,n,t,"rootEditVisible",O)}if(m){this.updateEditModelContext(m,n,t,"rootEditEnabled",O)}}}},updateEditModelContext:function(t,e,n,o,l){if(t){var s,a,d;const r=new i({anyText:t});r.setBindingContext(null);e.addDependent(r);r.getBinding("anyText");const c=(s=r.getModel())===null||s===void 0?void 0:(a=s.bindContext(n.getPath(),n,{$$groupId:"$auto.Heroes"}))===null||a===void 0?void 0:a.getBoundContext();r.setBindingContext(c);r===null||r===void 0?void 0:(d=r.getBinding("anyText"))===null||d===void 0?void 0:d.attachChange(t=>{const e=t.getSource().getExternalValue();l.setProperty(o,e)})}},_setActionEnablementForTable:function(t,n,o,i,l){n.setProperty(`dynamicActions/${o}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});const s=[],a=[],d=`${n.getPath()}/dynamicActions/${o}/bEnabled`;if(typeof i==="object"&&i!==null&&i!==undefined){if(t){const e=t.getObject();const o=r(i,"PathInModel",function(t){return e?u(e[t.path]):u(false)},true);const l=g(o);if(l==="true"){n.getModel().setProperty(d,true);s.push(t)}else{a.push(t)}}e.setDynamicActionContexts(n,o,s,a)}else{const s=t===null||t===void 0?void 0:t.getObject();if(i===null&&!!s[`#${o}`]){n.getModel().setProperty(d,true)}else if(t!==undefined){l.push(e.requestProperty(t,o,i,d))}}return l}};return p},false);
5
+ sap.ui.define(["sap/base/util/merge","sap/fe/core/CommonUtils","sap/fe/core/helpers/BindingToolkit","sap/fe/core/helpers/ModelHelper","./controls/AnyElement","./converters/ConverterContext","./converters/objectPage/HeaderAndFooterAction"],function(t,e,n,o,i,l,s){"use strict";var a=s.getHiddenExpression;var d=s.getEditButtonEnabled;var r=n.transformRecursively;var c=n.equal;var u=n.constant;var g=n.compileExpression;const p={setActionEnablement:async function(t,n,o,i){const l=[];for(const s in n){let a=[];t.setProperty(s,false);const d=n[s];for(let e=0;e<o.length;e++){const n=o[e];if(n){const e=n.getObject();if(i==="chart"){if(d===null&&!!e[`#${s}`]||n.getObject(d)){t.setProperty(s,true);break}}else if(i==="table"){a=this._setActionEnablementForTable(n,t,s,d,a)}}}if(i==="table"){if(!o.length){t.setProperty(`dynamicActions/${s}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});l.push(e.setContextsBasedOnOperationAvailable(t,[]))}else if(o.length&&typeof d==="string"){l.push(e.setContextsBasedOnOperationAvailable(t,a))}}}return Promise.all(l)},setActionEnablementAfterPatch:function(t,e,n){const o=n===null||n===void 0?void 0:n.getObject();const i=(o===null||o===void 0?void 0:o.controls)||{};for(const n in i){if(i[n]&&i[n].controlId){const o=t.byId(n);if(o&&o.isA("sap.ui.mdc.Table")){const t=o.getRowBinding();if(t==e){p.setActionEnablement(o.getBindingContext("internal"),JSON.parse(o.data("operationAvailableMap").customData),o.getSelectedContexts(),"table")}}}}},updateEditButtonVisibilityAndEnablement(n){var i;const s=(i=n.getViewData())===null||i===void 0?void 0:i.viewLevel;if(s>1){var r,u,p,f;const i=n.getBindingContext();const s=e.getAppComponent(n);const v=o.getMetaPathForContext(i);const b=o.getRootEntitySetPath(v);const y=i===null||i===void 0?void 0:(r=i.getModel())===null||r===void 0?void 0:(u=r.getMetaModel())===null||u===void 0?void 0:u.getContext(i===null||i===void 0?void 0:i.getPath());const h=l===null||l===void 0?void 0:l.createConverterContextForMacro(b,y,s.getDiagnostics(),t,undefined);const x=h.getEntitySet();const C=h.getEntityType();let E;const A=x&&!o.isSingleton(x)&&((p=x.annotations.UI)===null||p===void 0?void 0:(f=p.UpdateHidden)===null||f===void 0?void 0:f.valueOf());if(A!==true){E=o.isUpdateHidden(x,C)}const m=d(h,undefined);const P=o.getDraftRootPath(i);const B=o.getStickyRootPath(i);const M=P||B;const O=n.getBindingContext("internal");if(M){const t=n.getModel().bindContext(M).getBoundContext();if(E!==undefined){const e=g(c(a(h,E),false));this.updateEditModelContext(e,n,t,"rootEditVisible",O)}if(m){this.updateEditModelContext(m,n,t,"rootEditEnabled",O)}}}},updateEditModelContext:function(t,e,n,o,l){if(t){var s,a,d;const r=new i({anyText:t});r.setBindingContext(null);e.addDependent(r);r.getBinding("anyText");const c=(s=r.getModel())===null||s===void 0?void 0:(a=s.bindContext(n.getPath(),n,{$$groupId:"$auto.Heroes"}))===null||a===void 0?void 0:a.getBoundContext();r.setBindingContext(c);r===null||r===void 0?void 0:(d=r.getBinding("anyText"))===null||d===void 0?void 0:d.attachChange(t=>{const e=t.getSource().getExternalValue();l.setProperty(o,e)})}},_setActionEnablementForTable:function(t,n,o,i,l){n.setProperty(`dynamicActions/${o}`,{bEnabled:false,aApplicable:[],aNotApplicable:[]});const s=[],a=[],d=`${n.getPath()}/dynamicActions/${o}/bEnabled`;if(typeof i==="object"&&i!==null&&i!==undefined){if(t){const e=t.getObject();const o=r(i,"PathInModel",function(t){return e?u(e[t.path]):u(false)},true);const l=g(o);if(l==="true"){n.getModel().setProperty(d,true);s.push(t)}else{a.push(t)}}e.setDynamicActionContexts(n,o,s,a)}else{const s=t===null||t===void 0?void 0:t.getObject();if(i===null&&!!s[`#${o}`]){n.getModel().setProperty(d,true)}else if(t!==undefined){l.push(e.requestProperty(t,o,i,d))}}return l}};return p},false);
6
6
  //# sourceMappingURL=ActionRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionRuntime.js","names":["sap","ui","define","merge","CommonUtils","BindingToolkit","ModelHelper","AnyElement","ConverterContext","HeaderAndFooterAction","getHiddenExpression","getEditButtonEnabled","transformRecursively","equal","constant","compileExpression","ActionRuntime","setActionEnablement","oInternalModelContext","oActionOperationAvailableMap","aSelectedContexts","sControl","aPromises","sAction","aRequestPromises","setProperty","sProperty","i","length","oSelectedContext","oContextData","getObject","this","_setActionEnablementForTable","bEnabled","aApplicable","aNotApplicable","push","setContextsBasedOnOperationAvailable","Promise","all","setActionEnablementAfterPatch","oView","oListBinding","oInternalModelContextData","oControls","controls","sKey","controlId","oTable","byId","isA","oRowBinding","getRowBinding","getBindingContext","JSON","parse","data","customData","getSelectedContexts","updateEditButtonVisibilityAndEnablement","_oView$getViewData","iViewLevel","getViewData","viewLevel","_oContext$getModel","_oContext$getModel$ge","_annotations$UI","_annotations$UI$Updat","oContext","oAppComponent","getAppComponent","sMetaPath","getMetaPathForContext","sEntitySet","getRootEntitySetPath","metaContext","getModel","getMetaModel","getContext","getPath","converterContext","createConverterContextForMacro","getDiagnostics","undefined","entitySet","getEntitySet","entityType","getEntityType","updateHidden","bUpdateHidden","isSingleton","annotations","UI","UpdateHidden","valueOf","isUpdateHidden","sEditEnableBinding","draftRootPath","getDraftRootPath","sStickyRootPath","getStickyRootPath","sPath","oRootContext","bindContext","getBoundContext","sHiddenExpression","updateEditModelContext","sBindingExpression","_oHiddenElement$getMo","_oHiddenElement$getMo2","_oHiddenElement$getBi","oHiddenElement","anyText","setBindingContext","addDependent","getBinding","$$groupId","attachChange","oEvent","oNewValue","getSource","getExternalValue","sDynamicActionEnabledPath","oTransformedBinding","oBindingExpression","path","sResult","setDynamicActionContexts","requestProperty"],"sources":["ActionRuntime-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"ActionRuntime.js","names":["sap","ui","define","merge","CommonUtils","BindingToolkit","ModelHelper","AnyElement","ConverterContext","HeaderAndFooterAction","getHiddenExpression","getEditButtonEnabled","transformRecursively","equal","constant","compileExpression","ActionRuntime","setActionEnablement","async","oInternalModelContext","oActionOperationAvailableMap","aSelectedContexts","sControl","aPromises","sAction","aRequestPromises","setProperty","sProperty","i","length","oSelectedContext","oContextData","getObject","this","_setActionEnablementForTable","bEnabled","aApplicable","aNotApplicable","push","setContextsBasedOnOperationAvailable","Promise","all","setActionEnablementAfterPatch","oView","oListBinding","oInternalModelContextData","oControls","controls","sKey","controlId","oTable","byId","isA","oRowBinding","getRowBinding","getBindingContext","JSON","parse","data","customData","getSelectedContexts","updateEditButtonVisibilityAndEnablement","_oView$getViewData","iViewLevel","getViewData","viewLevel","_oContext$getModel","_oContext$getModel$ge","_entitySet$annotation","_entitySet$annotation2","oContext","oAppComponent","getAppComponent","sMetaPath","getMetaPathForContext","sEntitySet","getRootEntitySetPath","metaContext","getModel","getMetaModel","getContext","getPath","converterContext","createConverterContextForMacro","getDiagnostics","undefined","entitySet","getEntitySet","entityType","getEntityType","updateHidden","bUpdateHidden","isSingleton","annotations","UI","UpdateHidden","valueOf","isUpdateHidden","sEditEnableBinding","draftRootPath","getDraftRootPath","sStickyRootPath","getStickyRootPath","sPath","oRootContext","bindContext","getBoundContext","sHiddenExpression","updateEditModelContext","sBindingExpression","_oHiddenElement$getMo","_oHiddenElement$getMo2","_oHiddenElement$getBi","oHiddenElement","anyText","setBindingContext","addDependent","getBinding","$$groupId","attachChange","oEvent","oNewValue","getSource","getExternalValue","sDynamicActionEnabledPath","oTransformedBinding","oBindingExpression","path","sResult","setDynamicActionContexts","requestProperty"],"sources":["ActionRuntime-dbg.js"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { EntitySet, PrimitiveType } from "@sap-ux/vocabularies-types";
1
+ import type { PrimitiveType } from "@sap-ux/vocabularies-types";
2
2
  import merge from "sap/base/util/merge";
3
3
  import type { _RequestedProperty } from "sap/fe/core/CommonUtils";
4
4
  import CommonUtils from "sap/fe/core/CommonUtils";
@@ -9,8 +9,9 @@ import ModelHelper from "sap/fe/core/helpers/ModelHelper";
9
9
  import type Event from "sap/ui/base/Event";
10
10
  import type View from "sap/ui/core/mvc/View";
11
11
  import type Table from "sap/ui/mdc/Table";
12
+ import type Context from "sap/ui/model/odata/v4/Context";
13
+ import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
12
14
  import type PropertyBinding from "sap/ui/model/PropertyBinding";
13
- import type { ODataListBinding, V4Context } from "../../../../../../types/extension_types";
14
15
  import AnyElement from "./controls/AnyElement";
15
16
  import ConverterContext from "./converters/ConverterContext";
16
17
  import type { BaseManifestSettings } from "./converters/ManifestSettings";
@@ -29,10 +30,10 @@ const ActionRuntime = {
29
30
  * @returns The action enablement promises
30
31
  * @ui5-restricted
31
32
  */
32
- setActionEnablement: function (
33
+ setActionEnablement: async function (
33
34
  oInternalModelContext: InternalModelContext,
34
35
  oActionOperationAvailableMap: Record<string, string>,
35
- aSelectedContexts: V4Context[],
36
+ aSelectedContexts: Context[],
36
37
  sControl: string
37
38
  ) {
38
39
  const aPromises = [];
@@ -91,7 +92,7 @@ const ActionRuntime = {
91
92
  ActionRuntime.setActionEnablement(
92
93
  oTable.getBindingContext("internal") as InternalModelContext,
93
94
  JSON.parse(oTable.data("operationAvailableMap").customData),
94
- oTable.getSelectedContexts() as V4Context[],
95
+ oTable.getSelectedContexts() as Context[],
95
96
  "table"
96
97
  );
97
98
  }
@@ -103,7 +104,7 @@ const ActionRuntime = {
103
104
  updateEditButtonVisibilityAndEnablement(oView: View) {
104
105
  const iViewLevel = (oView.getViewData() as BaseManifestSettings)?.viewLevel;
105
106
  if ((iViewLevel as number) > 1) {
106
- const oContext = oView.getBindingContext() as V4Context;
107
+ const oContext = oView.getBindingContext() as Context;
107
108
  const oAppComponent = CommonUtils.getAppComponent(oView);
108
109
  const sMetaPath = ModelHelper.getMetaPathForContext(oContext);
109
110
  const sEntitySet = ModelHelper.getRootEntitySetPath(sMetaPath);
@@ -119,8 +120,7 @@ const ActionRuntime = {
119
120
  const entityType = converterContext.getEntityType();
120
121
  let updateHidden;
121
122
  //Find the Update Hidden of the root entity set and bind the property to AnyElement, any changes in the path of the root UpdateHidden will be updated via the property, internal model context is updated based on the property
122
- const bUpdateHidden =
123
- entitySet && !ModelHelper.isSingleton(entitySet) && (entitySet as EntitySet).annotations.UI?.UpdateHidden?.valueOf();
123
+ const bUpdateHidden = entitySet && !ModelHelper.isSingleton(entitySet) && entitySet.annotations.UI?.UpdateHidden?.valueOf();
124
124
  if (bUpdateHidden !== true) {
125
125
  updateHidden = ModelHelper.isUpdateHidden(entitySet, entityType);
126
126
  }
@@ -131,7 +131,7 @@ const ActionRuntime = {
131
131
  const sPath = draftRootPath || sStickyRootPath;
132
132
  const oInternalModelContext = oView.getBindingContext("internal") as InternalModelContext;
133
133
  if (sPath) {
134
- const oRootContext = oView.getModel().bindContext(sPath).getBoundContext() as V4Context;
134
+ const oRootContext = oView.getModel().bindContext(sPath).getBoundContext() as Context;
135
135
  if (updateHidden !== undefined) {
136
136
  const sHiddenExpression = compileExpression(equal(getHiddenExpression(converterContext, updateHidden), false));
137
137
  this.updateEditModelContext(sHiddenExpression, oView, oRootContext, "rootEditVisible", oInternalModelContext);
@@ -146,7 +146,7 @@ const ActionRuntime = {
146
146
  updateEditModelContext: function (
147
147
  sBindingExpression: string | undefined,
148
148
  oView: View,
149
- oRootContext: V4Context,
149
+ oRootContext: Context,
150
150
  sProperty: string,
151
151
  oInternalModelContext: InternalModelContext
152
152
  ) {
@@ -168,7 +168,7 @@ const ActionRuntime = {
168
168
  },
169
169
 
170
170
  _setActionEnablementForTable: function (
171
- oSelectedContext: V4Context | undefined,
171
+ oSelectedContext: Context | undefined,
172
172
  oInternalModelContext: InternalModelContext,
173
173
  sAction: string,
174
174
  sProperty: string,
@@ -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/base/Log", "sap/fe/core/AppStateHandler", "sap/fe/core/controllerextensions/routing/RouterProxy", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/library", "sap/fe/core/manifestMerger/ChangePageConfiguration", "sap/fe/core/support/Diagnostics", "sap/ui/core/Core", "sap/ui/core/UIComponent", "sap/ui/model/json/JSONModel", "./converters/MetaModelConverter", "./helpers/SemanticDateOperators"], function (Log, AppStateHandler, RouterProxy, ClassSupport, ModelHelper, library, ChangePageConfiguration, Diagnostics, Core, UIComponent, JSONModel, MetaModelConverter, SemanticDateOperators) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/core/AppStateHandler", "sap/fe/core/controllerextensions/routing/RouterProxy", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/library", "sap/fe/core/manifestMerger/ChangePageConfiguration", "sap/fe/core/support/Diagnostics", "sap/ui/core/Core", "sap/ui/core/UIComponent", "sap/ui/model/json/JSONModel", "./controllerextensions/BusyLocker", "./converters/MetaModelConverter", "./helpers/SemanticDateOperators"], function (Log, AppStateHandler, RouterProxy, ClassSupport, ModelHelper, library, ChangePageConfiguration, Diagnostics, Core, UIComponent, JSONModel, BusyLocker, MetaModelConverter, SemanticDateOperators) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _class, _class2;
@@ -300,7 +300,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/AppStateHandler", "sap/fe/core/contr
300
300
  Log.info(`Rootcontainer: "${NAVCONF.NAVCONTAINER.VIEWNAME}" - Routerclass: "${NAVCONF.NAVCONTAINER.ROUTERCLASS}"`);
301
301
  } else if (((_oManifestUI5$rootVie2 = oManifestUI5.rootView) === null || _oManifestUI5$rootVie2 === void 0 ? void 0 : (_oManifestUI5$rootVie3 = _oManifestUI5$rootVie2.viewName) === null || _oManifestUI5$rootVie3 === void 0 ? void 0 : _oManifestUI5$rootVie3.indexOf("sap.fe.core.rootView")) !== -1) {
302
302
  var _oManifestUI5$routing7, _oManifestUI5$routing8;
303
- throw Error(`\nWrong configuration for the couple (rootView/routerClass) in manifest file.\n` + `Current values are :(${oManifestUI5.rootView.viewName}/${(_oManifestUI5$routing7 = oManifestUI5.routing) === null || _oManifestUI5$routing7 === void 0 ? void 0 : (_oManifestUI5$routing8 = _oManifestUI5$routing7.config) === null || _oManifestUI5$routing8 === void 0 ? void 0 : _oManifestUI5$routing8.routerClass})\n` + `Expected values are \n` + `\t - (${NAVCONF.NAVCONTAINER.VIEWNAME}/${NAVCONF.NAVCONTAINER.ROUTERCLASS})\n` + `\t - (${NAVCONF.FCL.VIEWNAME}/${NAVCONF.FCL.ROUTERCLASS})`);
303
+ throw Error(`\nWrong configuration for the couple (rootView/routerClass) in manifest file.\n` + `Current values are :(${oManifestUI5.rootView.viewName}/${((_oManifestUI5$routing7 = oManifestUI5.routing) === null || _oManifestUI5$routing7 === void 0 ? void 0 : (_oManifestUI5$routing8 = _oManifestUI5$routing7.config) === null || _oManifestUI5$routing8 === void 0 ? void 0 : _oManifestUI5$routing8.routerClass) || "<missing router class>"})\n` + `Expected values are \n` + `\t - (${NAVCONF.NAVCONTAINER.VIEWNAME}/${NAVCONF.NAVCONTAINER.ROUTERCLASS})\n` + `\t - (${NAVCONF.FCL.VIEWNAME}/${NAVCONF.FCL.ROUTERCLASS})`);
304
304
  } else {
305
305
  Log.info(`Rootcontainer: "${oManifestUI5.rootView.viewName}" - Routerclass: "${NAVCONF.NAVCONTAINER.ROUTERCLASS}"`);
306
306
  }
@@ -326,6 +326,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/AppStateHandler", "sap/fe/core/contr
326
326
  }
327
327
  this.getRouter().initialize();
328
328
  this.getRouterProxy().init(this, this._isFclEnabled());
329
+ return;
329
330
  }).catch(error => {
330
331
  const oResourceBundle = Core.getLibraryResourceBundle("sap.fe.core");
331
332
  this.getRootViewController().displayErrorPage(oResourceBundle.getText("C_APP_COMPONENT_SAPFE_APPSTART_TECHNICAL_ISSUES"), {
@@ -338,14 +339,15 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/AppStateHandler", "sap/fe/core/contr
338
339
  if (this.bInitializeRouting) {
339
340
  return this.getRoutingService().initializeRouting().then(() => {
340
341
  if (this.getRootViewController()) {
341
- return finalizedRoutingInitialization();
342
+ finalizedRoutingInitialization();
342
343
  } else {
343
344
  this.getRootControl().attachAfterInit(function () {
344
345
  finalizedRoutingInitialization();
345
346
  });
346
347
  }
348
+ return;
347
349
  }).catch(function (err) {
348
- Log.error(`cannot cannot initialize routing: ${err}`);
350
+ Log.error(`cannot cannot initialize routing: ${err.toString()}`);
349
351
  });
350
352
  }
351
353
  };
@@ -427,9 +429,29 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/AppStateHandler", "sap/fe/core/contr
427
429
  _proto.suspend = function suspend() {
428
430
  // called by FLP when app sap-keep-alive is enabled and app is suspended
429
431
  this.getRootViewController().viewState.onSuspend();
432
+ }
433
+
434
+ /**
435
+ * navigateBasedOnStartupParameter function is a public api that acts as a wrapper to _manageDeepLinkStartup function. It passes the startup parameters further to _manageDeepLinkStartup function
436
+ *
437
+ * @param startupParameters Defines the startup parameters which is further passed to _manageDeepLinkStartup function.
438
+ */;
439
+ _proto.navigateBasedOnStartupParameter = async function navigateBasedOnStartupParameter(startupParameters) {
440
+ try {
441
+ if (!BusyLocker.isLocked(this.getModel("ui"))) {
442
+ if (!startupParameters) {
443
+ startupParameters = null;
444
+ }
445
+ const routingService = this.getRoutingService();
446
+ await routingService._manageDeepLinkStartup(startupParameters);
447
+ }
448
+ } catch (exception) {
449
+ Log.error(exception);
450
+ BusyLocker.unlock(this.getModel("ui"));
451
+ }
430
452
  };
431
453
  return AppComponent;
432
454
  }(UIComponent), _class2.instanceMap = {}, _class2)) || _class);
433
455
  return AppComponent;
434
456
  }, false);
435
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGFydHVwTW9kZSIsImxpYnJhcnkiLCJOQVZDT05GIiwiRkNMIiwiVklFV05BTUUiLCJWSUVXTkFNRV9DT01QQVRJQklMSVRZIiwiUk9VVEVSQ0xBU1MiLCJOQVZDT05UQUlORVIiLCJBcHBDb21wb25lbnQiLCJkZWZpbmVVSTVDbGFzcyIsImludGVyZmFjZXMiLCJjb25maWciLCJmdWxsV2lkdGgiLCJtYW5pZmVzdCIsInNlcnZpY2VzIiwicmVzb3VyY2VNb2RlbCIsImZhY3RvcnlOYW1lIiwic3RhcnR1cCIsInNldHRpbmdzIiwiYnVuZGxlcyIsIm1vZGVsTmFtZSIsInJvdXRpbmdTZXJ2aWNlIiwic2hlbGxTZXJ2aWNlcyIsIlNoZWxsVUlTZXJ2aWNlIiwibmF2aWdhdGlvblNlcnZpY2UiLCJlbnZpcm9ubWVudENhcGFiaWxpdGllcyIsInNpZGVFZmZlY3RzU2VydmljZSIsImFzeW5jQ29tcG9uZW50U2VydmljZSIsInJvb3RWaWV3Iiwidmlld05hbWUiLCJ0eXBlIiwiYXN5bmMiLCJpZCIsInJvdXRpbmciLCJjb250cm9sSWQiLCJyb3V0ZXJDbGFzcyIsInZpZXdUeXBlIiwiY29udHJvbEFnZ3JlZ2F0aW9uIiwiY29udGFpbmVyT3B0aW9ucyIsInByb3BhZ2F0ZU1vZGVsIiwiZGVzaWdudGltZSIsInN0YXJ0dXBNb2RlIiwiTm9ybWFsIiwiX2lzRmNsRW5hYmxlZCIsIm9NYW5pZmVzdFVJNSIsImdldE1hbmlmZXN0RW50cnkiLCJpbml0aWFsaXplRmVhdHVyZVRvZ2dsZXMiLCJjaGFuZ2VQYWdlQ29uZmlndXJhdGlvbiIsInBhZ2VJZCIsInBhdGgiLCJ2YWx1ZSIsImNoYW5nZUNvbmZpZ3VyYXRpb24iLCJnZXRNYW5pZmVzdCIsImdldFJvdXRlclByb3h5IiwiX29Sb3V0ZXJQcm94eSIsImdldEFwcFN0YXRlSGFuZGxlciIsIl9vQXBwU3RhdGVIYW5kbGVyIiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRhaW5lciIsImdldENvbnRlbnQiLCJnZXRTdGFydHVwTW9kZSIsInNldFN0YXJ0dXBNb2RlQ3JlYXRlIiwiQ3JlYXRlIiwic2V0U3RhcnR1cE1vZGVBdXRvQ3JlYXRlIiwiQXV0b0NyZWF0ZSIsInNldFN0YXJ0dXBNb2RlRGVlcGxpbmsiLCJEZWVwbGluayIsImluaXQiLCJ1aU1vZGVsIiwiSlNPTk1vZGVsIiwiZWRpdE1vZGUiLCJFZGl0TW9kZSIsIkRpc3BsYXkiLCJpc0VkaXRhYmxlIiwiZHJhZnRTdGF0dXMiLCJEcmFmdFN0YXR1cyIsIkNsZWFyIiwiYnVzeSIsImJ1c3lMb2NhbCIsInBhZ2VzIiwib0ludGVybmFsTW9kZWwiLCJzZXREZWZhdWx0QmluZGluZ01vZGUiLCJNb2RlbEhlbHBlciIsImVuaGFuY2VVaUpTT05Nb2RlbCIsImVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbCIsInNldE1vZGVsIiwiYkluaXRpYWxpemVSb3V0aW5nIiwidW5kZWZpbmVkIiwiUm91dGVyUHJveHkiLCJBcHBTdGF0ZUhhbmRsZXIiLCJfb0RpYWdub3N0aWNzIiwiRGlhZ25vc3RpY3MiLCJvTW9kZWwiLCJnZXRNb2RlbCIsImlzQSIsImVudGl0eUNvbnRhaW5lciIsImdldE1ldGFNb2RlbCIsInJlcXVlc3RPYmplY3QiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkxvZyIsImluZm8iLCJpbmRleE9mIiwiRXJyb3IiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJhZGRTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJpbnN0YW5jZU1hcCIsImdldElkIiwib25TZXJ2aWNlc1N0YXJ0ZWQiLCJmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24iLCJ0aGVuIiwiYXR0YWNoUm91dGVNYXRjaGVycyIsImdldFJvdXRlciIsImluaXRpYWxpemUiLCJjYXRjaCIsImVycm9yIiwib1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImRpc3BsYXlFcnJvclBhZ2UiLCJnZXRUZXh0IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIm1lc3NhZ2UiLCJGQ0xMZXZlbCIsImdldFJvdXRpbmdTZXJ2aWNlIiwiaW5pdGlhbGl6ZVJvdXRpbmciLCJhdHRhY2hBZnRlckluaXQiLCJlcnIiLCJleGl0IiwiZGVzdHJveSIsImRlbGV0ZU1vZGVsQ2FjaGVEYXRhIiwiZ2V0RGlhZ25vc3RpY3MiLCJiU3VwcHJlc3NJbnZhbGlkYXRlIiwid2luZG93IiwiX3JvdXRpbmciLCJlIiwib01haW5Nb2RlbCIsIm9Nb2RlbHMiLCJvSGVhZGVycyIsIm9SZXF1ZXN0b3IiLCJqUXVlcnkiLCJleHRlbmQiLCJtSGVhZGVycyIsImJlZm9yZUV4aXQiLCJnZXRTaGVsbFNlcnZpY2VzIiwiZ2V0TmF2aWdhdGlvblNlcnZpY2UiLCJnZXRTaWRlRWZmZWN0c1NlcnZpY2UiLCJnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcyIsImdldFN0YXJ0dXBQYXJhbWV0ZXJzIiwib0NvbXBvbmVudERhdGEiLCJnZXRDb21wb25lbnREYXRhIiwic3RhcnR1cFBhcmFtZXRlcnMiLCJyZXN0b3JlIiwidmlld1N0YXRlIiwib25SZXN0b3JlIiwic3VzcGVuZCIsIm9uU3VzcGVuZCIsIlVJQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBDb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBGbGV4aWJsZUNvbHVtbkxheW91dCBmcm9tIFwic2FwL2YvRmxleGlibGVDb2x1bW5MYXlvdXRcIjtcbmltcG9ydCBBcHBTdGF0ZUhhbmRsZXIgZnJvbSBcInNhcC9mZS9jb3JlL0FwcFN0YXRlSGFuZGxlclwiO1xuaW1wb3J0IFJvdXRlclByb3h5IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9yb3V0aW5nL1JvdXRlclByb3h5XCI7XG5pbXBvcnQgdHlwZSB7IENvbnRlbnREZW5zaXRpZXNUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IGxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB7IGNoYW5nZUNvbmZpZ3VyYXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvbWFuaWZlc3RNZXJnZXIvQ2hhbmdlUGFnZUNvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB0eXBlIFJvb3RWaWV3QmFzZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL3Jvb3RWaWV3L1Jvb3RWaWV3QmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIHsgRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0Vudmlyb25tZW50U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1JvdXRpbmdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgeyBJU2hlbGxTZXJ2aWNlcyB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaGVsbFNlcnZpY2VzRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgeyBTaWRlRWZmZWN0c1NlcnZpY2UgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IERpYWdub3N0aWNzIGZyb20gXCJzYXAvZmUvY29yZS9zdXBwb3J0L0RpYWdub3N0aWNzXCI7XG5pbXBvcnQgdHlwZSBOYXZDb250YWluZXIgZnJvbSBcInNhcC9tL05hdkNvbnRhaW5lclwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgVUlDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL1VJQ29tcG9uZW50XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgeyBkZWxldGVNb2RlbENhY2hlRGF0YSB9IGZyb20gXCIuL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgU2VtYW50aWNEYXRlT3BlcmF0b3JzIGZyb20gXCIuL2hlbHBlcnMvU2VtYW50aWNEYXRlT3BlcmF0b3JzXCI7XG5cbmNvbnN0IFN0YXJ0dXBNb2RlID0gbGlicmFyeS5TdGFydHVwTW9kZTtcblxuY29uc3QgTkFWQ09ORiA9IHtcblx0RkNMOiB7XG5cdFx0VklFV05BTUU6IFwic2FwLmZlLmNvcmUucm9vdFZpZXcuRmNsXCIsXG5cdFx0VklFV05BTUVfQ09NUEFUSUJJTElUWTogXCJzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIudmlldy5GY2xcIixcblx0XHRST1VURVJDTEFTUzogXCJzYXAuZi5yb3V0aW5nLlJvdXRlclwiXG5cdH0sXG5cdE5BVkNPTlRBSU5FUjoge1xuXHRcdFZJRVdOQU1FOiBcInNhcC5mZS5jb3JlLnJvb3RWaWV3Lk5hdkNvbnRhaW5lclwiLFxuXHRcdFZJRVdOQU1FX0NPTVBBVElCSUxJVFk6IFwic2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLnZpZXcuTmF2Q29udGFpbmVyXCIsXG5cdFx0Uk9VVEVSQ0xBU1M6IFwic2FwLm0ucm91dGluZy5Sb3V0ZXJcIlxuXHR9XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdENvbnRlbnRBcHAgPSB7XG5cdGNyb3NzTmF2aWdhdGlvbj86IHtcblx0XHRvdXRib3VuZHM/OiBSZWNvcmQ8XG5cdFx0XHRzdHJpbmcsXG5cdFx0XHR7XG5cdFx0XHRcdHNlbWFudGljT2JqZWN0OiBzdHJpbmc7XG5cdFx0XHRcdGFjdGlvbjogc3RyaW5nO1xuXHRcdFx0XHRwYXJhbWV0ZXJzOiBzdHJpbmc7XG5cdFx0XHR9XG5cdFx0Pjtcblx0fTtcblx0dGl0bGU/OiBzdHJpbmc7XG5cdHN1YlRpdGxlPzogc3RyaW5nO1xuXHRpY29uPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RDb250ZW50VUk1ID0ge1xuXHRjb250ZW50RGVuc2l0aWVzPzogQ29udGVudERlbnNpdGllc1R5cGU7XG5cdHBhZ2VSZWFkeVRpbWVvdXQ/OiBudW1iZXI7XG5cdHJvb3RWaWV3Pzoge1xuXHRcdHZpZXdOYW1lOiBzdHJpbmc7XG5cdH07XG5cdHJvdXRpbmc/OiB7XG5cdFx0Y29uZmlnPzoge1xuXHRcdFx0cm91dGVyQ2xhc3M6IHN0cmluZztcblx0XHRcdGNvbnRyb2xJZD86IHN0cmluZztcblx0XHR9O1xuXHRcdHJvdXRlczoge1xuXHRcdFx0cGF0dGVybjogc3RyaW5nO1xuXHRcdFx0bmFtZTogc3RyaW5nO1xuXHRcdFx0dGFyZ2V0OiBzdHJpbmc7XG5cdFx0fVtdO1xuXHRcdHRhcmdldHM/OiBSZWNvcmQ8XG5cdFx0XHRzdHJpbmcsXG5cdFx0XHR7XG5cdFx0XHRcdGlkOiBzdHJpbmc7XG5cdFx0XHRcdG5hbWU6IHN0cmluZztcblx0XHRcdFx0b3B0aW9ucz86IHtcblx0XHRcdFx0XHRzZXR0aW5ncz86IG9iamVjdDtcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHQ+O1xuXHR9O1xuXHRtb2RlbHM6IFJlY29yZDxcblx0XHRzdHJpbmcsXG5cdFx0e1xuXHRcdFx0dHlwZT86IHN0cmluZztcblx0XHRcdGRhdGFTb3VyY2U/OiBzdHJpbmc7XG5cdFx0XHRzZXR0aW5ncz86IG9iamVjdDtcblx0XHR9XG5cdD47XG59O1xuXG5leHBvcnQgdHlwZSBNYW5pZmVzdENvbnRlbnQgPSB7XG5cdFwic2FwLmFwcFwiPzogTWFuaWZlc3RDb250ZW50QXBwO1xuXHRcInNhcC51aTVcIj86IE1hbmlmZXN0Q29udGVudFVJNTtcblx0XCJzYXAuZmVcIj86IHtcblx0XHRmb3JtPzoge1xuXHRcdFx0cmV0cmlldmVUZXh0RnJvbVZhbHVlTGlzdD86IGJvb2xlYW47XG5cdFx0fTtcblx0fTtcbn07XG5leHBvcnQgdHlwZSBDb21wb25lbnREYXRhID0ge1xuXHRzdGFydHVwUGFyYW1ldGVycz86IHtcblx0XHRwcmVmZXJyZWRNb2RlPzogc3RyaW5nW107XG5cdH0gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duW10+O1xufTtcbi8qKlxuICogTWFpbiBjbGFzcyBmb3IgY29tcG9uZW50cyB1c2VkIGZvciBhbiBhcHBsaWNhdGlvbiBpbiBTQVAgRmlvcmkgZWxlbWVudHMuXG4gKlxuICogQXBwbGljYXRpb24gZGV2ZWxvcGVycyB1c2luZyB0aGUgdGVtcGxhdGVzIGFuZCBidWlsZGluZyBibG9ja3MgcHJvdmlkZWQgYnkgU0FQIEZpb3JpIGVsZW1lbnRzIHNob3VsZCBjcmVhdGUgdGhlaXIgYXBwcyBieSBleHRlbmRpbmcgdGhpcyBjb21wb25lbnQuXG4gKiBUaGlzIGVuc3VyZXMgdGhhdCBhbGwgdGhlIG5lY2Vzc2FyeSBzZXJ2aWNlcyB0aGF0IHlvdSBuZWVkIGZvciB0aGUgYnVpbGRpbmcgYmxvY2tzIGFuZCB0ZW1wbGF0ZXMgdG8gd29yayBwcm9wZXJseSBhcmUgc3RhcnRlZC5cbiAqXG4gKiBXaGVuIHlvdSB1c2Ugc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50IGFzIHRoZSBiYXNlIGNvbXBvbmVudCwgeW91IGFsc28gbmVlZCB0byB1c2UgYSByb290Vmlldy4gU0FQIEZpb3JpIGVsZW1lbnRzIHByb3ZpZGVzIHR3byBvcHRpb25zOiA8YnIvPlxuICogIC0gc2FwLmZlLmNvcmUucm9vdFZpZXcuTmF2Q29udGFpbmVyIHdoZW4gdXNpbmcgc2FwLm0ucm91dGluZy5Sb3V0ZXIgPGJyLz5cbiAqICAtIHNhcC5mZS5jb3JlLnJvb3RWaWV3LkZjbCB3aGVuIHVzaW5nIHNhcC5mLnJvdXRpbmcuUm91dGVyIChGQ0wgdXNlIGNhc2UpIDxici8+XG4gKlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHB1YmxpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLkFwcENvbXBvbmVudFwiLCB7XG5cdGludGVyZmFjZXM6IFtcInNhcC51aS5jb3JlLklBc3luY0NvbnRlbnRDcmVhdGlvblwiXSxcblx0Y29uZmlnOiB7XG5cdFx0ZnVsbFdpZHRoOiB0cnVlXG5cdH0sXG5cdG1hbmlmZXN0OiB7XG5cdFx0XCJzYXAudWk1XCI6IHtcblx0XHRcdHNlcnZpY2VzOiB7XG5cdFx0XHRcdHJlc291cmNlTW9kZWw6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5SZXNvdXJjZU1vZGVsU2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiLFxuXHRcdFx0XHRcdHNldHRpbmdzOiB7XG5cdFx0XHRcdFx0XHRidW5kbGVzOiBbXCJzYXAuZmUuY29yZS5tZXNzYWdlYnVuZGxlXCJdLFxuXHRcdFx0XHRcdFx0bW9kZWxOYW1lOiBcInNhcC5mZS5pMThuXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHJvdXRpbmdTZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuUm91dGluZ1NlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzaGVsbFNlcnZpY2VzOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2hlbGxTZXJ2aWNlc1wiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFNoZWxsVUlTZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLnVzaGVsbC51aTVzZXJ2aWNlLlNoZWxsVUlTZXJ2aWNlXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0bmF2aWdhdGlvblNlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5OYXZpZ2F0aW9uU2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGVudmlyb25tZW50Q2FwYWJpbGl0aWVzOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuRW52aXJvbm1lbnRTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0c2lkZUVmZmVjdHNTZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2lkZUVmZmVjdHNTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0YXN5bmNDb21wb25lbnRTZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuQXN5bmNDb21wb25lbnRTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHJvb3RWaWV3OiB7XG5cdFx0XHRcdHZpZXdOYW1lOiBOQVZDT05GLk5BVkNPTlRBSU5FUi5WSUVXTkFNRSxcblx0XHRcdFx0dHlwZTogXCJYTUxcIixcblx0XHRcdFx0YXN5bmM6IHRydWUsXG5cdFx0XHRcdGlkOiBcImFwcFJvb3RWaWV3XCJcblx0XHRcdH0sXG5cdFx0XHRyb3V0aW5nOiB7XG5cdFx0XHRcdGNvbmZpZzoge1xuXHRcdFx0XHRcdGNvbnRyb2xJZDogXCJhcHBDb250ZW50XCIsXG5cdFx0XHRcdFx0cm91dGVyQ2xhc3M6IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlJPVVRFUkNMQVNTLFxuXHRcdFx0XHRcdHZpZXdUeXBlOiBcIlhNTFwiLFxuXHRcdFx0XHRcdGNvbnRyb2xBZ2dyZWdhdGlvbjogXCJwYWdlc1wiLFxuXHRcdFx0XHRcdGFzeW5jOiB0cnVlLFxuXHRcdFx0XHRcdGNvbnRhaW5lck9wdGlvbnM6IHtcblx0XHRcdFx0XHRcdHByb3BhZ2F0ZU1vZGVsOiB0cnVlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRkZXNpZ250aW1lOiBcInNhcC9mZS9jb3JlL2Rlc2lnbnRpbWUvQXBwQ29tcG9uZW50LmRlc2lnbnRpbWVcIixcblxuXHRsaWJyYXJ5OiBcInNhcC5mZS5jb3JlXCJcbn0pXG5jbGFzcyBBcHBDb21wb25lbnQgZXh0ZW5kcyBVSUNvbXBvbmVudCB7XG5cdHN0YXRpYyBpbnN0YW5jZU1hcDogUmVjb3JkPHN0cmluZywgQXBwQ29tcG9uZW50PiA9IHt9O1xuXHRwcml2YXRlIF9vUm91dGVyUHJveHkhOiBSb3V0ZXJQcm94eTtcblx0cHJpdmF0ZSBfb0FwcFN0YXRlSGFuZGxlciE6IEFwcFN0YXRlSGFuZGxlcjtcblx0cHJpdmF0ZSBiSW5pdGlhbGl6ZVJvdXRpbmc/OiBib29sZWFuO1xuXHRwcml2YXRlIF9vRGlhZ25vc3RpY3MhOiBEaWFnbm9zdGljcztcblx0cHJpdmF0ZSBlbnRpdHlDb250YWluZXIhOiBQcm9taXNlPHZvaWQ+O1xuXHRwcml2YXRlIHN0YXJ0dXBNb2RlOiBzdHJpbmcgPSBTdGFydHVwTW9kZS5Ob3JtYWw7XG5cblx0LyoqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudC5nZXRNZXRhZGF0YVxuXHQgKiBAZnVuY3Rpb25cblx0ICovXG5cblx0X2lzRmNsRW5hYmxlZCgpIHtcblx0XHRjb25zdCBvTWFuaWZlc3RVSTUgPSB0aGlzLmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWk1XCIpO1xuXHRcdHJldHVybiBvTWFuaWZlc3RVSTU/LnJvdXRpbmc/LmNvbmZpZz8ucm91dGVyQ2xhc3MgPT09IE5BVkNPTkYuRkNMLlJPVVRFUkNMQVNTO1xuXHR9XG5cblx0LyoqXG5cdCAqIFByb3ZpZGVzIGEgaG9vayB0byBpbml0aWFsaXplIGZlYXR1cmUgdG9nZ2xlcy5cblx0ICpcblx0ICogVGhpcyBob29rIGlzIGJlaW5nIGNhbGxlZCBieSB0aGUgU0FQIEZpb3JpIGVsZW1lbnRzIEFwcENvbXBvbmVudCBhdCB0aGUgdGltZSBmZWF0dXJlIHRvZ2dsZXMgY2FuIGJlIGluaXRpYWxpemVkLlxuXHQgKiBUbyBjaGFuZ2UgcGFnZSBjb25maWd1cmF0aW9uIHVzZSB0aGUge0BsaW5rIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudCNjaGFuZ2VQYWdlQ29uZmlndXJhdGlvbn0gbWV0aG9kLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2luaXRpYWxpemVGZWF0dXJlVG9nZ2xlc1xuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGluaXRpYWxpemVGZWF0dXJlVG9nZ2xlcygpOiB2b2lkIHtcblx0XHQvLyB0aGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBhcHBsaWNhdGlvbnNcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGFuZ2VzIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gb2YgU0FQIEZpb3JpIGVsZW1lbnRzLlxuXHQgKlxuXHQgKiBUaGlzIG1ldGhvZCBlbmFibGVzIHlvdSB0byBjaGFuZ2UgdGhlIHBhZ2UgY29uZmlndXJhdGlvbiBvZiBTQVAgRmlvcmkgZWxlbWVudHMuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjY2hhbmdlUGFnZUNvbmZpZ3VyYXRpb25cblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudFxuXHQgKiBAcGFyYW0gcGFnZUlkIFRoZSBJRCBvZiB0aGUgcGFnZSBmb3Igd2hpY2ggdGhlIGNvbmZpZ3VyYXRpb24gaXMgdG8gYmUgY2hhbmdlZC5cblx0ICogQHBhcmFtIHBhdGggVGhlIHBhdGggaW4gdGhlIHBhZ2Ugc2V0dGluZ3MgZm9yIHdoaWNoIHRoZSBjb25maWd1cmF0aW9uIGlzIHRvIGJlIGNoYW5nZWQuXG5cdCAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBjb25maWd1cmF0aW9uLiBUaGlzIGNvdWxkIGJlIGEgcGxhaW4gdmFsdWUgbGlrZSBhIHN0cmluZywgb3IgYSBCb29sZWFuLCBvciBhIHN0cnVjdHVyZWQgb2JqZWN0LlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRjaGFuZ2VQYWdlQ29uZmlndXJhdGlvbihwYWdlSWQ6IHN0cmluZywgcGF0aDogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuXHRcdGNoYW5nZUNvbmZpZ3VyYXRpb24odGhpcy5nZXRNYW5pZmVzdCgpLCBwYWdlSWQsIHBhdGgsIHZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYSByZWZlcmVuY2UgdG8gdGhlIFJvdXRlclByb3h5LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2dldFJvdXRlclByb3h5XG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMgQSBSZWZlcmVuY2UgdG8gdGhlIFJvdXRlclByb3h5XG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAZmluYWxcblx0ICovXG5cdGdldFJvdXRlclByb3h5KCk6IFJvdXRlclByb3h5IHtcblx0XHRyZXR1cm4gdGhpcy5fb1JvdXRlclByb3h5O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgQXBwU3RhdGVIYW5kbGVyLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2dldEFwcFN0YXRlSGFuZGxlclxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBBcHBTdGF0ZUhhbmRsZXJcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0QXBwU3RhdGVIYW5kbGVyKCkge1xuXHRcdHJldHVybiB0aGlzLl9vQXBwU3RhdGVIYW5kbGVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgbmF2L0ZDTCBDb250cm9sbGVyLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2dldFJvb3RWaWV3Q29udHJvbGxlclxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEByZXR1cm5zICBBIHJlZmVyZW5jZSB0byB0aGUgRkNMIENvbnRyb2xsZXJcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0Um9vdFZpZXdDb250cm9sbGVyKCk6IFJvb3RWaWV3QmFzZUNvbnRyb2xsZXIge1xuXHRcdHJldHVybiB0aGlzLmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgTmF2Q29udGFpbmVyIGNvbnRyb2wgb3IgdGhlIEZDTCBjb250cm9sLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2dldFJvb3RDb250YWluZXJcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudFxuXHQgKiBAcmV0dXJucyAgQSByZWZlcmVuY2UgdG8gTmF2Q29udGFpbmVyIGNvbnRyb2wgb3IgdGhlIEZDTCBjb250cm9sXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAZmluYWxcblx0ICovXG5cdGdldFJvb3RDb250YWluZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250ZW50KClbMF0gYXMgTmF2Q29udGFpbmVyIHwgRmxleGlibGVDb2x1bW5MYXlvdXQ7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBzdGFydHVwIG1vZGUgb2YgdGhlIGFwcC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIHN0YXJ0dXAgbW9kZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Z2V0U3RhcnR1cE1vZGUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5zdGFydHVwTW9kZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgdGhlIHN0YXJ0dXAgbW9kZSBmb3IgdGhlIGFwcCB0byAnQ3JlYXRlJy5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHNldFN0YXJ0dXBNb2RlQ3JlYXRlKCkge1xuXHRcdHRoaXMuc3RhcnR1cE1vZGUgPSBTdGFydHVwTW9kZS5DcmVhdGU7XG5cdH1cblxuXHQvKipcblx0ICogU2V0IHRoZSBzdGFydHVwIG1vZGUgZm9yIHRoZSBhcHAgdG8gJ0F1dG9DcmVhdGUnLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0c2V0U3RhcnR1cE1vZGVBdXRvQ3JlYXRlKCkge1xuXHRcdHRoaXMuc3RhcnR1cE1vZGUgPSBTdGFydHVwTW9kZS5BdXRvQ3JlYXRlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0aGUgc3RhcnR1cCBtb2RlIGZvciB0aGUgYXBwIHRvICdEZWVwbGluaycuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRzZXRTdGFydHVwTW9kZURlZXBsaW5rKCkge1xuXHRcdHRoaXMuc3RhcnR1cE1vZGUgPSBTdGFydHVwTW9kZS5EZWVwbGluaztcblx0fVxuXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5pbml0aWFsaXplRmVhdHVyZVRvZ2dsZXMoKTtcblxuXHRcdGNvbnN0IHVpTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdGVkaXRNb2RlOiBsaWJyYXJ5LkVkaXRNb2RlLkRpc3BsYXksXG5cdFx0XHRpc0VkaXRhYmxlOiBmYWxzZSxcblx0XHRcdGRyYWZ0U3RhdHVzOiBsaWJyYXJ5LkRyYWZ0U3RhdHVzLkNsZWFyLFxuXHRcdFx0YnVzeTogZmFsc2UsXG5cdFx0XHRidXN5TG9jYWw6IHt9LFxuXHRcdFx0cGFnZXM6IHt9XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdHBhZ2VzOiB7fVxuXHRcdH0pO1xuXHRcdC8vIHNldCB0aGUgYmluZGluZyBPbmVXYXkgZm9yIHVpTW9kZWwgdG8gcHJldmVudCBjaGFuZ2VzIGlmIGNvbnRyb2xsZXIgZXh0ZW5zaW9ucyBtb2RpZnkgYSBib3VuZCBwcm9wZXJ0eSBvZiBhIGNvbnRyb2xcblx0XHR1aU1vZGVsLnNldERlZmF1bHRCaW5kaW5nTW9kZShcIk9uZVdheVwiKTtcblx0XHQvLyBmb3IgaW50ZXJuYWwgbW9kZWwgYmluZGluZyBuZWVkcyB0byBiZSB0d28gd2F5XG5cdFx0TW9kZWxIZWxwZXIuZW5oYW5jZVVpSlNPTk1vZGVsKHVpTW9kZWwsIGxpYnJhcnkpO1xuXHRcdE1vZGVsSGVscGVyLmVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbChvSW50ZXJuYWxNb2RlbCk7XG5cblx0XHR0aGlzLnNldE1vZGVsKHVpTW9kZWwsIFwidWlcIik7XG5cdFx0dGhpcy5zZXRNb2RlbChvSW50ZXJuYWxNb2RlbCwgXCJpbnRlcm5hbFwiKTtcblxuXHRcdHRoaXMuYkluaXRpYWxpemVSb3V0aW5nID0gdGhpcy5iSW5pdGlhbGl6ZVJvdXRpbmcgIT09IHVuZGVmaW5lZCA/IHRoaXMuYkluaXRpYWxpemVSb3V0aW5nIDogdHJ1ZTtcblx0XHR0aGlzLl9vUm91dGVyUHJveHkgPSBuZXcgUm91dGVyUHJveHkoKTtcblx0XHR0aGlzLl9vQXBwU3RhdGVIYW5kbGVyID0gbmV3IEFwcFN0YXRlSGFuZGxlcih0aGlzKTtcblx0XHR0aGlzLl9vRGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY3MoKTtcblxuXHRcdGNvbnN0IG9Nb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRcdGlmIChvTW9kZWw/LmlzQT8uKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhTW9kZWxcIikpIHtcblx0XHRcdHRoaXMuZW50aXR5Q29udGFpbmVyID0gb01vZGVsLmdldE1ldGFNb2RlbCgpLnJlcXVlc3RPYmplY3QoXCIvJEVudGl0eUNvbnRhaW5lci9cIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIG5vdCBhbiBPRGF0YSB2NCBzZXJ2aWNlXG5cdFx0XHR0aGlzLmVudGl0eUNvbnRhaW5lciA9IFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9NYW5pZmVzdFVJNSA9IHRoaXMuZ2V0TWFuaWZlc3QoKVtcInNhcC51aTVcIl07XG5cdFx0aWYgKG9NYW5pZmVzdFVJNT8ucm9vdFZpZXc/LnZpZXdOYW1lKSB7XG5cdFx0XHQvLyBUaGUgYXBwbGljYXRpb24gc3BlY2lmaWVkIGFuIG93biByb290IHZpZXcgaW4gdGhlIG1hbmlmZXN0XG5cblx0XHRcdC8vIFJvb3QgVmlldyB3YXMgbW92ZWQgZnJvbSBzYXAuZmUudGVtcGxhdGVzIHRvIHNhcC5mZS5jb3JlIC0ga2VlcCBpdCBjb21wYXRpYmxlXG5cdFx0XHRpZiAob01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lID09PSBOQVZDT05GLkZDTC5WSUVXTkFNRV9DT01QQVRJQklMSVRZKSB7XG5cdFx0XHRcdG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZSA9IE5BVkNPTkYuRkNMLlZJRVdOQU1FO1xuXHRcdFx0fSBlbHNlIGlmIChvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgPT09IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FX0NPTVBBVElCSUxJVFkpIHtcblx0XHRcdFx0b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lID0gTkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChcblx0XHRcdFx0b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lID09PSBOQVZDT05GLkZDTC5WSUVXTkFNRSAmJlxuXHRcdFx0XHRvTWFuaWZlc3RVSTUucm91dGluZz8uY29uZmlnPy5yb3V0ZXJDbGFzcyA9PT0gTkFWQ09ORi5GQ0wuUk9VVEVSQ0xBU1Ncblx0XHRcdCkge1xuXHRcdFx0XHRMb2cuaW5mbyhgUm9vdGNvbnRhaW5lcjogXCIke05BVkNPTkYuRkNMLlZJRVdOQU1FfVwiIC0gUm91dGVyY2xhc3M6IFwiJHtOQVZDT05GLkZDTC5ST1VURVJDTEFTU31cImApO1xuXHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lID09PSBOQVZDT05GLk5BVkNPTlRBSU5FUi5WSUVXTkFNRSAmJlxuXHRcdFx0XHRvTWFuaWZlc3RVSTUucm91dGluZz8uY29uZmlnPy5yb3V0ZXJDbGFzcyA9PT0gTkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1Ncblx0XHRcdCkge1xuXHRcdFx0XHRMb2cuaW5mbyhgUm9vdGNvbnRhaW5lcjogXCIke05BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FfVwiIC0gUm91dGVyY2xhc3M6IFwiJHtOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTU31cImApO1xuXHRcdFx0fSBlbHNlIGlmIChvTWFuaWZlc3RVSTUucm9vdFZpZXc/LnZpZXdOYW1lPy5pbmRleE9mKFwic2FwLmZlLmNvcmUucm9vdFZpZXdcIikgIT09IC0xKSB7XG5cdFx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRcdGBcXG5Xcm9uZyBjb25maWd1cmF0aW9uIGZvciB0aGUgY291cGxlIChyb290Vmlldy9yb3V0ZXJDbGFzcykgaW4gbWFuaWZlc3QgZmlsZS5cXG5gICtcblx0XHRcdFx0XHRcdGBDdXJyZW50IHZhbHVlcyBhcmUgOigke29NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZX0vJHtvTWFuaWZlc3RVSTUucm91dGluZz8uY29uZmlnPy5yb3V0ZXJDbGFzc30pXFxuYCArXG5cdFx0XHRcdFx0XHRgRXhwZWN0ZWQgdmFsdWVzIGFyZSBcXG5gICtcblx0XHRcdFx0XHRcdGBcXHQgLSAoJHtOQVZDT05GLk5BVkNPTlRBSU5FUi5WSUVXTkFNRX0vJHtOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTU30pXFxuYCArXG5cdFx0XHRcdFx0XHRgXFx0IC0gKCR7TkFWQ09ORi5GQ0wuVklFV05BTUV9LyR7TkFWQ09ORi5GQ0wuUk9VVEVSQ0xBU1N9KWBcblx0XHRcdFx0KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdExvZy5pbmZvKGBSb290Y29udGFpbmVyOiBcIiR7b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lfVwiIC0gUm91dGVyY2xhc3M6IFwiJHtOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTU31cImApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFkZGluZyBTZW1hbnRpYyBEYXRlIE9wZXJhdG9yc1xuXHRcdC8vIENvbW1lbnRpbmcgc2luY2UgaXQgaXMgbm90IG5lZWRlZCBmb3IgU2luZ2xlUmFuZ2Vcblx0XHRTZW1hbnRpY0RhdGVPcGVyYXRvcnMuYWRkU2VtYW50aWNEYXRlT3BlcmF0b3JzKCk7XG5cblx0XHQvLyB0aGUgaW5pdCBmdW5jdGlvbiBjb25maWd1cmVzIHRoZSByb3V0aW5nIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgYWJvdmVcblx0XHQvLyBpdCB3aWxsIGNhbGwgdGhlIGNyZWF0ZUNvbnRlbnQgZnVuY3Rpb24gdG8gaW5zdGFudGlhdGUgdGhlIFJvb3RWaWV3IGFuZCBhZGQgaXQgdG8gdGhlIFVJQ29tcG9uZW50IGFnZ3JlZ2F0aW9uc1xuXG5cdFx0c3VwZXIuaW5pdCgpO1xuXHRcdEFwcENvbXBvbmVudC5pbnN0YW5jZU1hcFt0aGlzLmdldElkKCldID0gdGhpcztcblx0fVxuXHRvblNlcnZpY2VzU3RhcnRlZCgpIHtcblx0XHQvL3JvdXRlciBtdXN0IGJlIHN0YXJ0ZWQgb25jZSB0aGUgcm9vdGNvbnRhaW5lciBpcyBpbml0aWFsaXplZFxuXHRcdC8vc3RhcnRpbmcgb2YgdGhlIHJvdXRlclxuXHRcdGNvbnN0IGZpbmFsaXplZFJvdXRpbmdJbml0aWFsaXphdGlvbiA9ICgpID0+IHtcblx0XHRcdHRoaXMuZW50aXR5Q29udGFpbmVyXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKS5hdHRhY2hSb3V0ZU1hdGNoZXJzKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmdldFJvb3RWaWV3Q29udHJvbGxlcigpLmF0dGFjaFJvdXRlTWF0Y2hlcnMoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy5nZXRSb3V0ZXIoKS5pbml0aWFsaXplKCk7XG5cdFx0XHRcdFx0dGhpcy5nZXRSb3V0ZXJQcm94eSgpLmluaXQodGhpcywgdGhpcy5faXNGY2xFbmFibGVkKCkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IG9SZXNvdXJjZUJ1bmRsZSA9IENvcmUuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIik7XG5cblx0XHRcdFx0XHR0aGlzLmdldFJvb3RWaWV3Q29udHJvbGxlcigpLmRpc3BsYXlFcnJvclBhZ2UoXG5cdFx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfQVBQX0NPTVBPTkVOVF9TQVBGRV9BUFBTVEFSVF9URUNITklDQUxfSVNTVUVTXCIpLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0aXRsZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX0NPTU1PTl9TQVBGRV9FUlJPUlwiKSxcblx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdEZDTExldmVsOiAwXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdGlmICh0aGlzLmJJbml0aWFsaXplUm91dGluZykge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0Um91dGluZ1NlcnZpY2UoKVxuXHRcdFx0XHQuaW5pdGlhbGl6ZVJvdXRpbmcoKVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24oKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5nZXRSb290Q29udHJvbCgpLmF0dGFjaEFmdGVySW5pdChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRcdGZpbmFsaXplZFJvdXRpbmdJbml0aWFsaXphdGlvbigpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycjogRXJyb3IpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoYGNhbm5vdCBjYW5ub3QgaW5pdGlhbGl6ZSByb3V0aW5nOiAke2Vycn1gKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdGV4aXQoKSB7XG5cdFx0dGhpcy5fb0FwcFN0YXRlSGFuZGxlci5kZXN0cm95KCk7XG5cdFx0dGhpcy5fb1JvdXRlclByb3h5LmRlc3Ryb3koKTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGRlbGV0ZSB0aGlzLl9vQXBwU3RhdGVIYW5kbGVyO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0ZGVsZXRlIHRoaXMuX29Sb3V0ZXJQcm94eTtcblx0XHRkZWxldGVNb2RlbENhY2hlRGF0YSh0aGlzLmdldE1ldGFNb2RlbCgpKTtcblx0XHR0aGlzLmdldE1vZGVsKFwidWlcIikuZGVzdHJveSgpO1xuXHR9XG5cdGdldE1ldGFNb2RlbCgpOiBPRGF0YU1ldGFNb2RlbCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0fVxuXHRnZXREaWFnbm9zdGljcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fb0RpYWdub3N0aWNzO1xuXHR9XG5cdGRlc3Ryb3koYlN1cHByZXNzSW52YWxpZGF0ZT86IGJvb2xlYW4pIHtcblx0XHQvLyBMRUFLUywgd2l0aCB3b3JrYXJvdW5kIGZvciBzb21lIEZsZXggLyBNREMgaXNzdWVcblx0XHR0cnkge1xuXHRcdFx0Ly8gXHQvLyBUaGlzIG9uZSBpcyBvbmx5IGEgbGVhayBpZiB5b3UgZG9uJ3QgZ28gYmFjayB0byB0aGUgc2FtZSBjb21wb25lbnQgaW4gdGhlIGxvbmcgcnVuXG5cdFx0XHQvL2RlbGV0ZSBzYXAudWkuZmwuRmxleENvbnRyb2xsZXJGYWN0b3J5Ll9jb21wb25lbnRJbnN0YW50aWF0aW9uUHJvbWlzZXNbdGhpcy5nZXRJZCgpXTtcblxuXHRcdFx0ZGVsZXRlIEFwcENvbXBvbmVudC5pbnN0YW5jZU1hcFt0aGlzLmdldElkKCldO1xuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRkZWxldGUgKHdpbmRvdyBhcyB1bmtub3duKS5fcm91dGluZztcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRMb2cuaW5mbyhlIGFzIHN0cmluZyk7XG5cdFx0fVxuXG5cdFx0Ly9XT1JLQVJPVU5EIGZvciBzdGlja3kgZGlzY2FyZCByZXF1ZXN0IDogZHVlIHRvIGFzeW5jIGNhbGxiYWNrLCByZXF1ZXN0IHRyaWdnZXJlZCBieSB0aGUgZXhpdEFwcGxpY2F0aW9uIHdpbGwgYmUgc2VuZCBhZnRlciB0aGUgVUlDb21wb25lbnQucHJvdG90eXBlLmRlc3Ryb3lcblx0XHQvL3NvIHdlIG5lZWQgdG8gY29weSB0aGUgUmVxdWVzdG9yIGhlYWRlcnMgYXMgaXQgd2lsbCBiZSBkZXN0cm95XG5cblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGNvbnN0IG9NYWluTW9kZWwgPSB0aGlzLm9Nb2RlbHNbdW5kZWZpbmVkXTtcblx0XHRsZXQgb0hlYWRlcnM7XG5cdFx0aWYgKG9NYWluTW9kZWwub1JlcXVlc3Rvcikge1xuXHRcdFx0b0hlYWRlcnMgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvTWFpbk1vZGVsLm9SZXF1ZXN0b3IubUhlYWRlcnMpO1xuXHRcdH1cblxuXHRcdC8vIEFzIHdlIG5lZWQgdG8gY2xlYW51cCB0aGUgYXBwbGljYXRpb24gLyBoYW5kbGUgdGhlIGRpcnR5IG9iamVjdCB3ZSBuZWVkIHRvIGNhbGwgb3VyIGNsZWFudXAgYmVmb3JlIHRoZSBtb2RlbHMgYXJlIGRlc3Ryb3llZFxuXHRcdHRoaXMuZ2V0Um91dGluZ1NlcnZpY2UoKT8uYmVmb3JlRXhpdCgpO1xuXHRcdHN1cGVyLmRlc3Ryb3koYlN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0aWYgKG9IZWFkZXJzICYmIG9NYWluTW9kZWwub1JlcXVlc3Rvcikge1xuXHRcdFx0b01haW5Nb2RlbC5vUmVxdWVzdG9yLm1IZWFkZXJzID0gb0hlYWRlcnM7XG5cdFx0fVxuXHR9XG5cdGdldFJvdXRpbmdTZXJ2aWNlKCk6IFJvdXRpbmdTZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgUm91dGluZ1NlcnZpY2U7IC8vIG92ZXJyaWRlbiBhdCBydW50aW1lXG5cdH1cblx0Z2V0U2hlbGxTZXJ2aWNlcygpOiBJU2hlbGxTZXJ2aWNlcyB7XG5cdFx0cmV0dXJuIHt9IGFzIElTaGVsbFNlcnZpY2VzOyAvLyBvdmVycmlkZW4gYXQgcnVudGltZVxuXHR9XG5cdGdldE5hdmlnYXRpb25TZXJ2aWNlKCk6IE5hdmlnYXRpb25TZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgTmF2aWdhdGlvblNlcnZpY2U7IC8vIG92ZXJyaWRlbiBhdCBydW50aW1lXG5cdH1cblx0Z2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk6IFNpZGVFZmZlY3RzU2VydmljZSB7XG5cdFx0cmV0dXJuIHt9IGFzIFNpZGVFZmZlY3RzU2VydmljZTtcblx0fVxuXHRnZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1NlcnZpY2Uge1xuXHRcdHJldHVybiB7fSBhcyBFbnZpcm9ubWVudENhcGFiaWxpdGllc1NlcnZpY2U7XG5cdH1cblxuXHRhc3luYyBnZXRTdGFydHVwUGFyYW1ldGVycygpIHtcblx0XHRjb25zdCBvQ29tcG9uZW50RGF0YSA9IHRoaXMuZ2V0Q29tcG9uZW50RGF0YSgpO1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fSk7XG5cdH1cblx0cmVzdG9yZSgpIHtcblx0XHQvLyBjYWxsZWQgYnkgRkxQIHdoZW4gYXBwIHNhcC1rZWVwLWFsaXZlIGlzIGVuYWJsZWQgYW5kIGFwcCBpcyByZXN0b3JlZFxuXHRcdHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkudmlld1N0YXRlLm9uUmVzdG9yZSgpO1xuXHR9XG5cdHN1c3BlbmQoKSB7XG5cdFx0Ly8gY2FsbGVkIGJ5IEZMUCB3aGVuIGFwcCBzYXAta2VlcC1hbGl2ZSBpcyBlbmFibGVkIGFuZCBhcHAgaXMgc3VzcGVuZGVkXG5cdFx0dGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKS52aWV3U3RhdGUub25TdXNwZW5kKCk7XG5cdH1cbn1cblxuaW50ZXJmYWNlIEFwcENvbXBvbmVudCBleHRlbmRzIFVJQ29tcG9uZW50IHtcblx0Z2V0TWFuaWZlc3QoKTogTWFuaWZlc3RDb250ZW50O1xuXHRnZXRNYW5pZmVzdEVudHJ5KGVudHJ5OiBcInNhcC5hcHBcIik6IE1hbmlmZXN0Q29udGVudEFwcDtcblx0Z2V0TWFuaWZlc3RFbnRyeShlbnRyeTogXCJzYXAudWk1XCIpOiBNYW5pZmVzdENvbnRlbnRVSTU7XG5cdGdldENvbXBvbmVudERhdGEoKTogQ29tcG9uZW50RGF0YTtcblx0Z2V0Um9vdENvbnRyb2woKToge1xuXHRcdGdldENvbnRyb2xsZXIoKTogUm9vdFZpZXdCYXNlQ29udHJvbGxlcjtcblx0fSAmIFZpZXc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwcENvbXBvbmVudDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7OztFQTBCQSxNQUFNQSxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0QsV0FBVztFQUV2QyxNQUFNRSxPQUFPLEdBQUc7SUFDZkMsR0FBRyxFQUFFO01BQ0pDLFFBQVEsRUFBRSwwQkFBMEI7TUFDcENDLHNCQUFzQixFQUFFLHlDQUF5QztNQUNqRUMsV0FBVyxFQUFFO0lBQ2QsQ0FBQztJQUNEQyxZQUFZLEVBQUU7TUFDYkgsUUFBUSxFQUFFLG1DQUFtQztNQUM3Q0Msc0JBQXNCLEVBQUUsa0RBQWtEO01BQzFF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
457
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGFydHVwTW9kZSIsImxpYnJhcnkiLCJOQVZDT05GIiwiRkNMIiwiVklFV05BTUUiLCJWSUVXTkFNRV9DT01QQVRJQklMSVRZIiwiUk9VVEVSQ0xBU1MiLCJOQVZDT05UQUlORVIiLCJBcHBDb21wb25lbnQiLCJkZWZpbmVVSTVDbGFzcyIsImludGVyZmFjZXMiLCJjb25maWciLCJmdWxsV2lkdGgiLCJtYW5pZmVzdCIsInNlcnZpY2VzIiwicmVzb3VyY2VNb2RlbCIsImZhY3RvcnlOYW1lIiwic3RhcnR1cCIsInNldHRpbmdzIiwiYnVuZGxlcyIsIm1vZGVsTmFtZSIsInJvdXRpbmdTZXJ2aWNlIiwic2hlbGxTZXJ2aWNlcyIsIlNoZWxsVUlTZXJ2aWNlIiwibmF2aWdhdGlvblNlcnZpY2UiLCJlbnZpcm9ubWVudENhcGFiaWxpdGllcyIsInNpZGVFZmZlY3RzU2VydmljZSIsImFzeW5jQ29tcG9uZW50U2VydmljZSIsInJvb3RWaWV3Iiwidmlld05hbWUiLCJ0eXBlIiwiYXN5bmMiLCJpZCIsInJvdXRpbmciLCJjb250cm9sSWQiLCJyb3V0ZXJDbGFzcyIsInZpZXdUeXBlIiwiY29udHJvbEFnZ3JlZ2F0aW9uIiwiY29udGFpbmVyT3B0aW9ucyIsInByb3BhZ2F0ZU1vZGVsIiwiZGVzaWdudGltZSIsInN0YXJ0dXBNb2RlIiwiTm9ybWFsIiwiX2lzRmNsRW5hYmxlZCIsIm9NYW5pZmVzdFVJNSIsImdldE1hbmlmZXN0RW50cnkiLCJpbml0aWFsaXplRmVhdHVyZVRvZ2dsZXMiLCJjaGFuZ2VQYWdlQ29uZmlndXJhdGlvbiIsInBhZ2VJZCIsInBhdGgiLCJ2YWx1ZSIsImNoYW5nZUNvbmZpZ3VyYXRpb24iLCJnZXRNYW5pZmVzdCIsImdldFJvdXRlclByb3h5IiwiX29Sb3V0ZXJQcm94eSIsImdldEFwcFN0YXRlSGFuZGxlciIsIl9vQXBwU3RhdGVIYW5kbGVyIiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRhaW5lciIsImdldENvbnRlbnQiLCJnZXRTdGFydHVwTW9kZSIsInNldFN0YXJ0dXBNb2RlQ3JlYXRlIiwiQ3JlYXRlIiwic2V0U3RhcnR1cE1vZGVBdXRvQ3JlYXRlIiwiQXV0b0NyZWF0ZSIsInNldFN0YXJ0dXBNb2RlRGVlcGxpbmsiLCJEZWVwbGluayIsImluaXQiLCJ1aU1vZGVsIiwiSlNPTk1vZGVsIiwiZWRpdE1vZGUiLCJFZGl0TW9kZSIsIkRpc3BsYXkiLCJpc0VkaXRhYmxlIiwiZHJhZnRTdGF0dXMiLCJEcmFmdFN0YXR1cyIsIkNsZWFyIiwiYnVzeSIsImJ1c3lMb2NhbCIsInBhZ2VzIiwib0ludGVybmFsTW9kZWwiLCJzZXREZWZhdWx0QmluZGluZ01vZGUiLCJNb2RlbEhlbHBlciIsImVuaGFuY2VVaUpTT05Nb2RlbCIsImVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbCIsInNldE1vZGVsIiwiYkluaXRpYWxpemVSb3V0aW5nIiwidW5kZWZpbmVkIiwiUm91dGVyUHJveHkiLCJBcHBTdGF0ZUhhbmRsZXIiLCJfb0RpYWdub3N0aWNzIiwiRGlhZ25vc3RpY3MiLCJvTW9kZWwiLCJnZXRNb2RlbCIsImlzQSIsImVudGl0eUNvbnRhaW5lciIsImdldE1ldGFNb2RlbCIsInJlcXVlc3RPYmplY3QiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkxvZyIsImluZm8iLCJpbmRleE9mIiwiRXJyb3IiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJhZGRTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJpbnN0YW5jZU1hcCIsImdldElkIiwib25TZXJ2aWNlc1N0YXJ0ZWQiLCJmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24iLCJ0aGVuIiwiYXR0YWNoUm91dGVNYXRjaGVycyIsImdldFJvdXRlciIsImluaXRpYWxpemUiLCJjYXRjaCIsImVycm9yIiwib1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImRpc3BsYXlFcnJvclBhZ2UiLCJnZXRUZXh0IiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIm1lc3NhZ2UiLCJGQ0xMZXZlbCIsImdldFJvdXRpbmdTZXJ2aWNlIiwiaW5pdGlhbGl6ZVJvdXRpbmciLCJhdHRhY2hBZnRlckluaXQiLCJlcnIiLCJ0b1N0cmluZyIsImV4aXQiLCJkZXN0cm95IiwiZGVsZXRlTW9kZWxDYWNoZURhdGEiLCJnZXREaWFnbm9zdGljcyIsImJTdXBwcmVzc0ludmFsaWRhdGUiLCJ3aW5kb3ciLCJfcm91dGluZyIsImUiLCJvTWFpbk1vZGVsIiwib01vZGVscyIsIm9IZWFkZXJzIiwib1JlcXVlc3RvciIsImpRdWVyeSIsImV4dGVuZCIsIm1IZWFkZXJzIiwiYmVmb3JlRXhpdCIsImdldFNoZWxsU2VydmljZXMiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0U3RhcnR1cFBhcmFtZXRlcnMiLCJvQ29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJzdGFydHVwUGFyYW1ldGVycyIsInJlc3RvcmUiLCJ2aWV3U3RhdGUiLCJvblJlc3RvcmUiLCJzdXNwZW5kIiwib25TdXNwZW5kIiwibmF2aWdhdGVCYXNlZE9uU3RhcnR1cFBhcmFtZXRlciIsIkJ1c3lMb2NrZXIiLCJpc0xvY2tlZCIsIl9tYW5hZ2VEZWVwTGlua1N0YXJ0dXAiLCJleGNlcHRpb24iLCJ1bmxvY2siLCJVSUNvbXBvbmVudCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQXBwQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgRmxleGlibGVDb2x1bW5MYXlvdXQgZnJvbSBcInNhcC9mL0ZsZXhpYmxlQ29sdW1uTGF5b3V0XCI7XG5pbXBvcnQgQXBwU3RhdGVIYW5kbGVyIGZyb20gXCJzYXAvZmUvY29yZS9BcHBTdGF0ZUhhbmRsZXJcIjtcbmltcG9ydCBSb3V0ZXJQcm94eSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvcm91dGluZy9Sb3V0ZXJQcm94eVwiO1xuaW1wb3J0IHR5cGUgeyBDb250ZW50RGVuc2l0aWVzVHlwZSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01hbmlmZXN0U2V0dGluZ3NcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgeyBjaGFuZ2VDb25maWd1cmF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL21hbmlmZXN0TWVyZ2VyL0NoYW5nZVBhZ2VDb25maWd1cmF0aW9uXCI7XG5pbXBvcnQgdHlwZSBSb290Vmlld0Jhc2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9yb290Vmlldy9Sb290Vmlld0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9FbnZpcm9ubWVudFNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL05hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHR5cGUgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9Sb3V0aW5nU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgSVNoZWxsU2VydmljZXMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2hlbGxTZXJ2aWNlc0ZhY3RvcnlcIjtcbmltcG9ydCB0eXBlIHsgU2lkZUVmZmVjdHNTZXJ2aWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1NpZGVFZmZlY3RzU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBEaWFnbm9zdGljcyBmcm9tIFwic2FwL2ZlL2NvcmUvc3VwcG9ydC9EaWFnbm9zdGljc1wiO1xuaW1wb3J0IHR5cGUgTmF2Q29udGFpbmVyIGZyb20gXCJzYXAvbS9OYXZDb250YWluZXJcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IFVJQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9VSUNvbXBvbmVudFwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvQnVzeUxvY2tlclwiO1xuaW1wb3J0IHsgZGVsZXRlTW9kZWxDYWNoZURhdGEgfSBmcm9tIFwiLi9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwiLi9oZWxwZXJzL1NlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuXG5jb25zdCBTdGFydHVwTW9kZSA9IGxpYnJhcnkuU3RhcnR1cE1vZGU7XG5cbmNvbnN0IE5BVkNPTkYgPSB7XG5cdEZDTDoge1xuXHRcdFZJRVdOQU1FOiBcInNhcC5mZS5jb3JlLnJvb3RWaWV3LkZjbFwiLFxuXHRcdFZJRVdOQU1FX0NPTVBBVElCSUxJVFk6IFwic2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLnZpZXcuRmNsXCIsXG5cdFx0Uk9VVEVSQ0xBU1M6IFwic2FwLmYucm91dGluZy5Sb3V0ZXJcIlxuXHR9LFxuXHROQVZDT05UQUlORVI6IHtcblx0XHRWSUVXTkFNRTogXCJzYXAuZmUuY29yZS5yb290Vmlldy5OYXZDb250YWluZXJcIixcblx0XHRWSUVXTkFNRV9DT01QQVRJQklMSVRZOiBcInNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci52aWV3Lk5hdkNvbnRhaW5lclwiLFxuXHRcdFJPVVRFUkNMQVNTOiBcInNhcC5tLnJvdXRpbmcuUm91dGVyXCJcblx0fVxufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RDb250ZW50QXBwID0ge1xuXHRjcm9zc05hdmlnYXRpb24/OiB7XG5cdFx0b3V0Ym91bmRzPzogUmVjb3JkPFxuXHRcdFx0c3RyaW5nLFxuXHRcdFx0e1xuXHRcdFx0XHRzZW1hbnRpY09iamVjdDogc3RyaW5nO1xuXHRcdFx0XHRhY3Rpb246IHN0cmluZztcblx0XHRcdFx0cGFyYW1ldGVyczogc3RyaW5nO1xuXHRcdFx0fVxuXHRcdD47XG5cdH07XG5cdHRpdGxlPzogc3RyaW5nO1xuXHRzdWJUaXRsZT86IHN0cmluZztcblx0aWNvbj86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0Q29udGVudFVJNSA9IHtcblx0Y29udGVudERlbnNpdGllcz86IENvbnRlbnREZW5zaXRpZXNUeXBlO1xuXHRwYWdlUmVhZHlUaW1lb3V0PzogbnVtYmVyO1xuXHRyb290Vmlldz86IHtcblx0XHR2aWV3TmFtZTogc3RyaW5nO1xuXHR9O1xuXHRyb3V0aW5nPzoge1xuXHRcdGNvbmZpZz86IHtcblx0XHRcdHJvdXRlckNsYXNzOiBzdHJpbmc7XG5cdFx0XHRjb250cm9sSWQ/OiBzdHJpbmc7XG5cdFx0fTtcblx0XHRyb3V0ZXM6IHtcblx0XHRcdHBhdHRlcm46IHN0cmluZztcblx0XHRcdG5hbWU6IHN0cmluZztcblx0XHRcdHRhcmdldDogc3RyaW5nO1xuXHRcdH1bXTtcblx0XHR0YXJnZXRzPzogUmVjb3JkPFxuXHRcdFx0c3RyaW5nLFxuXHRcdFx0e1xuXHRcdFx0XHRpZDogc3RyaW5nO1xuXHRcdFx0XHRuYW1lOiBzdHJpbmc7XG5cdFx0XHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRcdFx0c2V0dGluZ3M/OiBvYmplY3Q7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0Pjtcblx0fTtcblx0bW9kZWxzOiBSZWNvcmQ8XG5cdFx0c3RyaW5nLFxuXHRcdHtcblx0XHRcdHR5cGU/OiBzdHJpbmc7XG5cdFx0XHRkYXRhU291cmNlPzogc3RyaW5nO1xuXHRcdFx0c2V0dGluZ3M/OiBvYmplY3Q7XG5cdFx0fVxuXHQ+O1xufTtcblxuZXhwb3J0IHR5cGUgTWFuaWZlc3RDb250ZW50ID0ge1xuXHRcInNhcC5hcHBcIj86IE1hbmlmZXN0Q29udGVudEFwcDtcblx0XCJzYXAudWk1XCI/OiBNYW5pZmVzdENvbnRlbnRVSTU7XG5cdFwic2FwLmZlXCI/OiB7XG5cdFx0Zm9ybT86IHtcblx0XHRcdHJldHJpZXZlVGV4dEZyb21WYWx1ZUxpc3Q/OiBib29sZWFuO1xuXHRcdH07XG5cdH07XG59O1xuZXhwb3J0IHR5cGUgQ29tcG9uZW50RGF0YSA9IHtcblx0c3RhcnR1cFBhcmFtZXRlcnM/OiB7XG5cdFx0cHJlZmVycmVkTW9kZT86IHN0cmluZ1tdO1xuXHR9ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bltdPjtcblx0Ly9mZUVudmlyb25tZW50IGlzIG9iamVjdCB3aGljaCBpcyByZWNlaXZlZCBhcyBhIHBhcnQgb2YgdGhlIGNvbXBvbmVudCBkYXRhIGZvciBNeSBJbmJveCBhcHBsaWNhdGlvbnMuXG5cdGZlRW52aXJvbm1lbnQ/OiB7XG5cdFx0Ly9XaXRoaW4gdGhpcyBvYmplY3QgdGhleSBwYXNzIGEgZnVuY3Rpb24gY2FsbGVkIGdldEludGVudCgpIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNlbWFudGljT2JqZWN0IGFuZCBhY3Rpb24gYXMgc2VwYXJhdGUgcHJvcGVydHktdmFsdWUgZW50cmllcyB0aGF0IGFyZSB0aGVuIHVzZWQgdG8gdXBkYXRlIHRoZSByZWxhdGVkIGFwcHMgYnV0dG9uLlxuXHRcdGdldEludGVudDogRnVuY3Rpb247XG5cdFx0Ly9XaXRoaW4gdGhpcyBvYmplY3QgdGhleSBwYXNzIGEgZnVuY3Rpb24gY2FsbGVkIGdldFNoYXJlQ29udHJvbFZpc2liaWxpdHkoKSB0aGF0IHJldHVybnMgYm9vbGVhbiB2YWx1ZXModHJ1ZSBvciBmYWxzZSkgd2hpY2ggZGV0ZXJtaW5lcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgc2hhcmUgYnV0dG9uLlxuXHRcdGdldFNoYXJlQ29udHJvbFZpc2liaWxpdHk6IEZ1bmN0aW9uO1xuXHR9O1xufTtcblxuZXhwb3J0IHR5cGUgU3RhcnR1cFBhcmFtZXRlcnMgPSB7XG5cdHByZWZlcnJlZE1vZGU/OiBzdHJpbmdbXTtcbn0gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duW10+O1xuLyoqXG4gKiBNYWluIGNsYXNzIGZvciBjb21wb25lbnRzIHVzZWQgZm9yIGFuIGFwcGxpY2F0aW9uIGluIFNBUCBGaW9yaSBlbGVtZW50cy5cbiAqXG4gKiBBcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHVzaW5nIHRoZSB0ZW1wbGF0ZXMgYW5kIGJ1aWxkaW5nIGJsb2NrcyBwcm92aWRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMgc2hvdWxkIGNyZWF0ZSB0aGVpciBhcHBzIGJ5IGV4dGVuZGluZyB0aGlzIGNvbXBvbmVudC5cbiAqIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCB0aGUgbmVjZXNzYXJ5IHNlcnZpY2VzIHRoYXQgeW91IG5lZWQgZm9yIHRoZSBidWlsZGluZyBibG9ja3MgYW5kIHRlbXBsYXRlcyB0byB3b3JrIHByb3Blcmx5IGFyZSBzdGFydGVkLlxuICpcbiAqIFdoZW4geW91IHVzZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQgYXMgdGhlIGJhc2UgY29tcG9uZW50LCB5b3UgYWxzbyBuZWVkIHRvIHVzZSBhIHJvb3RWaWV3LiBTQVAgRmlvcmkgZWxlbWVudHMgcHJvdmlkZXMgdHdvIG9wdGlvbnM6IDxici8+XG4gKiAgLSBzYXAuZmUuY29yZS5yb290Vmlldy5OYXZDb250YWluZXIgd2hlbiB1c2luZyBzYXAubS5yb3V0aW5nLlJvdXRlciA8YnIvPlxuICogIC0gc2FwLmZlLmNvcmUucm9vdFZpZXcuRmNsIHdoZW4gdXNpbmcgc2FwLmYucm91dGluZy5Sb3V0ZXIgKEZDTCB1c2UgY2FzZSkgPGJyLz5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XCIsIHtcblx0aW50ZXJmYWNlczogW1wic2FwLnVpLmNvcmUuSUFzeW5jQ29udGVudENyZWF0aW9uXCJdLFxuXHRjb25maWc6IHtcblx0XHRmdWxsV2lkdGg6IHRydWVcblx0fSxcblx0bWFuaWZlc3Q6IHtcblx0XHRcInNhcC51aTVcIjoge1xuXHRcdFx0c2VydmljZXM6IHtcblx0XHRcdFx0cmVzb3VyY2VNb2RlbDoge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlJlc291cmNlTW9kZWxTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCIsXG5cdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdGJ1bmRsZXM6IFtcInNhcC5mZS5jb3JlLm1lc3NhZ2VidW5kbGVcIl0sXG5cdFx0XHRcdFx0XHRtb2RlbE5hbWU6IFwic2FwLmZlLmkxOG5cIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0cm91dGluZ1NlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Sb3V0aW5nU2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNoZWxsU2VydmljZXM6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0U2hlbGxVSVNlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAudXNoZWxsLnVpNXNlcnZpY2UuU2hlbGxVSVNlcnZpY2VcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRuYXZpZ2F0aW9uU2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW52aXJvbm1lbnRDYXBhYmlsaXRpZXM6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5FbnZpcm9ubWVudFNlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzaWRlRWZmZWN0c1NlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaWRlRWZmZWN0c1NlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRhc3luY0NvbXBvbmVudFNlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Bc3luY0NvbXBvbmVudFNlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0cm9vdFZpZXc6IHtcblx0XHRcdFx0dmlld05hbWU6IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FLFxuXHRcdFx0XHR0eXBlOiBcIlhNTFwiLFxuXHRcdFx0XHRhc3luYzogdHJ1ZSxcblx0XHRcdFx0aWQ6IFwiYXBwUm9vdFZpZXdcIlxuXHRcdFx0fSxcblx0XHRcdHJvdXRpbmc6IHtcblx0XHRcdFx0Y29uZmlnOiB7XG5cdFx0XHRcdFx0Y29udHJvbElkOiBcImFwcENvbnRlbnRcIixcblx0XHRcdFx0XHRyb3V0ZXJDbGFzczogTkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1MsXG5cdFx0XHRcdFx0dmlld1R5cGU6IFwiWE1MXCIsXG5cdFx0XHRcdFx0Y29udHJvbEFnZ3JlZ2F0aW9uOiBcInBhZ2VzXCIsXG5cdFx0XHRcdFx0YXN5bmM6IHRydWUsXG5cdFx0XHRcdFx0Y29udGFpbmVyT3B0aW9uczoge1xuXHRcdFx0XHRcdFx0cHJvcGFnYXRlTW9kZWw6IHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGRlc2lnbnRpbWU6IFwic2FwL2ZlL2NvcmUvZGVzaWdudGltZS9BcHBDb21wb25lbnQuZGVzaWdudGltZVwiLFxuXG5cdGxpYnJhcnk6IFwic2FwLmZlLmNvcmVcIlxufSlcbmNsYXNzIEFwcENvbXBvbmVudCBleHRlbmRzIFVJQ29tcG9uZW50IHtcblx0c3RhdGljIGluc3RhbmNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBBcHBDb21wb25lbnQ+ID0ge307XG5cblx0cHJpdmF0ZSBfb1JvdXRlclByb3h5ITogUm91dGVyUHJveHk7XG5cblx0cHJpdmF0ZSBfb0FwcFN0YXRlSGFuZGxlciE6IEFwcFN0YXRlSGFuZGxlcjtcblxuXHRwcml2YXRlIGJJbml0aWFsaXplUm91dGluZz86IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBfb0RpYWdub3N0aWNzITogRGlhZ25vc3RpY3M7XG5cblx0cHJpdmF0ZSBlbnRpdHlDb250YWluZXIhOiBQcm9taXNlPHZvaWQ+O1xuXG5cdHByaXZhdGUgc3RhcnR1cE1vZGU6IHN0cmluZyA9IFN0YXJ0dXBNb2RlLk5vcm1hbDtcblxuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblxuXHRfaXNGY2xFbmFibGVkKCkge1xuXHRcdGNvbnN0IG9NYW5pZmVzdFVJNSA9IHRoaXMuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC51aTVcIik7XG5cdFx0cmV0dXJuIG9NYW5pZmVzdFVJNT8ucm91dGluZz8uY29uZmlnPy5yb3V0ZXJDbGFzcyA9PT0gTkFWQ09ORi5GQ0wuUk9VVEVSQ0xBU1M7XG5cdH1cblxuXHQvKipcblx0ICogUHJvdmlkZXMgYSBob29rIHRvIGluaXRpYWxpemUgZmVhdHVyZSB0b2dnbGVzLlxuXHQgKlxuXHQgKiBUaGlzIGhvb2sgaXMgYmVpbmcgY2FsbGVkIGJ5IHRoZSBTQVAgRmlvcmkgZWxlbWVudHMgQXBwQ29tcG9uZW50IGF0IHRoZSB0aW1lIGZlYXR1cmUgdG9nZ2xlcyBjYW4gYmUgaW5pdGlhbGl6ZWQuXG5cdCAqIFRvIGNoYW5nZSBwYWdlIGNvbmZpZ3VyYXRpb24gdXNlIHRoZSB7QGxpbmsgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2NoYW5nZVBhZ2VDb25maWd1cmF0aW9ufSBtZXRob2QuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjaW5pdGlhbGl6ZUZlYXR1cmVUb2dnbGVzXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0aW5pdGlhbGl6ZUZlYXR1cmVUb2dnbGVzKCk6IHZvaWQge1xuXHRcdC8vIHRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGFwcGxpY2F0aW9uc1xuXHR9XG5cblx0LyoqXG5cdCAqIENoYW5nZXMgdGhlIHBhZ2UgY29uZmlndXJhdGlvbiBvZiBTQVAgRmlvcmkgZWxlbWVudHMuXG5cdCAqXG5cdCAqIFRoaXMgbWV0aG9kIGVuYWJsZXMgeW91IHRvIGNoYW5nZSB0aGUgcGFnZSBjb25maWd1cmF0aW9uIG9mIFNBUCBGaW9yaSBlbGVtZW50cy5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudCNjaGFuZ2VQYWdlQ29uZmlndXJhdGlvblxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEBwYXJhbSBwYWdlSWQgVGhlIElEIG9mIHRoZSBwYWdlIGZvciB3aGljaCB0aGUgY29uZmlndXJhdGlvbiBpcyB0byBiZSBjaGFuZ2VkLlxuXHQgKiBAcGFyYW0gcGF0aCBUaGUgcGF0aCBpbiB0aGUgcGFnZSBzZXR0aW5ncyBmb3Igd2hpY2ggdGhlIGNvbmZpZ3VyYXRpb24gaXMgdG8gYmUgY2hhbmdlZC5cblx0ICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgdmFsdWUgb2YgdGhlIGNvbmZpZ3VyYXRpb24uIFRoaXMgY291bGQgYmUgYSBwbGFpbiB2YWx1ZSBsaWtlIGEgc3RyaW5nLCBvciBhIEJvb2xlYW4sIG9yIGEgc3RydWN0dXJlZCBvYmplY3QuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGNoYW5nZVBhZ2VDb25maWd1cmF0aW9uKHBhZ2VJZDogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG5cdFx0Y2hhbmdlQ29uZmlndXJhdGlvbih0aGlzLmdldE1hbmlmZXN0KCksIHBhZ2VJZCwgcGF0aCwgdmFsdWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgUm91dGVyUHJveHkuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0Um91dGVyUHJveHlcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudFxuXHQgKiBAcmV0dXJucyBBIFJlZmVyZW5jZSB0byB0aGUgUm91dGVyUHJveHlcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0Um91dGVyUHJveHkoKTogUm91dGVyUHJveHkge1xuXHRcdHJldHVybiB0aGlzLl9vUm91dGVyUHJveHk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBBcHBTdGF0ZUhhbmRsZXIuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0QXBwU3RhdGVIYW5kbGVyXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIEFwcFN0YXRlSGFuZGxlclxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRnZXRBcHBTdGF0ZUhhbmRsZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX29BcHBTdGF0ZUhhbmRsZXI7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBuYXYvRkNMIENvbnRyb2xsZXIuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0Um9vdFZpZXdDb250cm9sbGVyXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMgIEEgcmVmZXJlbmNlIHRvIHRoZSBGQ0wgQ29udHJvbGxlclxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRnZXRSb290Vmlld0NvbnRyb2xsZXIoKTogUm9vdFZpZXdCYXNlQ29udHJvbGxlciB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBOYXZDb250YWluZXIgY29udHJvbCBvciB0aGUgRkNMIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0Um9vdENvbnRhaW5lclxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEByZXR1cm5zICBBIHJlZmVyZW5jZSB0byBOYXZDb250YWluZXIgY29udHJvbCBvciB0aGUgRkNMIGNvbnRyb2xcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0Um9vdENvbnRhaW5lcigpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRSb290Q29udHJvbCgpLmdldENvbnRlbnQoKVswXSBhcyBOYXZDb250YWluZXIgfCBGbGV4aWJsZUNvbHVtbkxheW91dDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIHN0YXJ0dXAgbW9kZSBvZiB0aGUgYXBwLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgc3RhcnR1cCBtb2RlXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRTdGFydHVwTW9kZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnN0YXJ0dXBNb2RlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0aGUgc3RhcnR1cCBtb2RlIGZvciB0aGUgYXBwIHRvICdDcmVhdGUnLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0c2V0U3RhcnR1cE1vZGVDcmVhdGUoKSB7XG5cdFx0dGhpcy5zdGFydHVwTW9kZSA9IFN0YXJ0dXBNb2RlLkNyZWF0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgdGhlIHN0YXJ0dXAgbW9kZSBmb3IgdGhlIGFwcCB0byAnQXV0b0NyZWF0ZScuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRzZXRTdGFydHVwTW9kZUF1dG9DcmVhdGUoKSB7XG5cdFx0dGhpcy5zdGFydHVwTW9kZSA9IFN0YXJ0dXBNb2RlLkF1dG9DcmVhdGU7XG5cdH1cblxuXHQvKipcblx0ICogU2V0IHRoZSBzdGFydHVwIG1vZGUgZm9yIHRoZSBhcHAgdG8gJ0RlZXBsaW5rJy5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHNldFN0YXJ0dXBNb2RlRGVlcGxpbmsoKSB7XG5cdFx0dGhpcy5zdGFydHVwTW9kZSA9IFN0YXJ0dXBNb2RlLkRlZXBsaW5rO1xuXHR9XG5cblx0aW5pdCgpIHtcblx0XHR0aGlzLmluaXRpYWxpemVGZWF0dXJlVG9nZ2xlcygpO1xuXG5cdFx0Y29uc3QgdWlNb2RlbCA9IG5ldyBKU09OTW9kZWwoe1xuXHRcdFx0ZWRpdE1vZGU6IGxpYnJhcnkuRWRpdE1vZGUuRGlzcGxheSxcblx0XHRcdGlzRWRpdGFibGU6IGZhbHNlLFxuXHRcdFx0ZHJhZnRTdGF0dXM6IGxpYnJhcnkuRHJhZnRTdGF0dXMuQ2xlYXIsXG5cdFx0XHRidXN5OiBmYWxzZSxcblx0XHRcdGJ1c3lMb2NhbDoge30sXG5cdFx0XHRwYWdlczoge31cblx0XHR9KTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbCA9IG5ldyBKU09OTW9kZWwoe1xuXHRcdFx0cGFnZXM6IHt9XG5cdFx0fSk7XG5cdFx0Ly8gc2V0IHRoZSBiaW5kaW5nIE9uZVdheSBmb3IgdWlNb2RlbCB0byBwcmV2ZW50IGNoYW5nZXMgaWYgY29udHJvbGxlciBleHRlbnNpb25zIG1vZGlmeSBhIGJvdW5kIHByb3BlcnR5IG9mIGEgY29udHJvbFxuXHRcdHVpTW9kZWwuc2V0RGVmYXVsdEJpbmRpbmdNb2RlKFwiT25lV2F5XCIpO1xuXHRcdC8vIGZvciBpbnRlcm5hbCBtb2RlbCBiaW5kaW5nIG5lZWRzIHRvIGJlIHR3byB3YXlcblx0XHRNb2RlbEhlbHBlci5lbmhhbmNlVWlKU09OTW9kZWwodWlNb2RlbCwgbGlicmFyeSk7XG5cdFx0TW9kZWxIZWxwZXIuZW5oYW5jZUludGVybmFsSlNPTk1vZGVsKG9JbnRlcm5hbE1vZGVsKTtcblxuXHRcdHRoaXMuc2V0TW9kZWwodWlNb2RlbCwgXCJ1aVwiKTtcblx0XHR0aGlzLnNldE1vZGVsKG9JbnRlcm5hbE1vZGVsLCBcImludGVybmFsXCIpO1xuXG5cdFx0dGhpcy5iSW5pdGlhbGl6ZVJvdXRpbmcgPSB0aGlzLmJJbml0aWFsaXplUm91dGluZyAhPT0gdW5kZWZpbmVkID8gdGhpcy5iSW5pdGlhbGl6ZVJvdXRpbmcgOiB0cnVlO1xuXHRcdHRoaXMuX29Sb3V0ZXJQcm94eSA9IG5ldyBSb3V0ZXJQcm94eSgpO1xuXHRcdHRoaXMuX29BcHBTdGF0ZUhhbmRsZXIgPSBuZXcgQXBwU3RhdGVIYW5kbGVyKHRoaXMpO1xuXHRcdHRoaXMuX29EaWFnbm9zdGljcyA9IG5ldyBEaWFnbm9zdGljcygpO1xuXG5cdFx0Y29uc3Qgb01vZGVsID0gdGhpcy5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdFx0aWYgKG9Nb2RlbD8uaXNBPy4oXCJzYXAudWkubW9kZWwub2RhdGEudjQuT0RhdGFNb2RlbFwiKSkge1xuXHRcdFx0dGhpcy5lbnRpdHlDb250YWluZXIgPSBvTW9kZWwuZ2V0TWV0YU1vZGVsKCkucmVxdWVzdE9iamVjdChcIi8kRW50aXR5Q29udGFpbmVyL1wiKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gbm90IGFuIE9EYXRhIHY0IHNlcnZpY2Vcblx0XHRcdHRoaXMuZW50aXR5Q29udGFpbmVyID0gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgb01hbmlmZXN0VUk1ID0gdGhpcy5nZXRNYW5pZmVzdCgpW1wic2FwLnVpNVwiXTtcblx0XHRpZiAob01hbmlmZXN0VUk1Py5yb290Vmlldz8udmlld05hbWUpIHtcblx0XHRcdC8vIFRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpZWQgYW4gb3duIHJvb3QgdmlldyBpbiB0aGUgbWFuaWZlc3RcblxuXHRcdFx0Ly8gUm9vdCBWaWV3IHdhcyBtb3ZlZCBmcm9tIHNhcC5mZS50ZW1wbGF0ZXMgdG8gc2FwLmZlLmNvcmUgLSBrZWVwIGl0IGNvbXBhdGlibGVcblx0XHRcdGlmIChvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgPT09IE5BVkNPTkYuRkNMLlZJRVdOQU1FX0NPTVBBVElCSUxJVFkpIHtcblx0XHRcdFx0b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lID0gTkFWQ09ORi5GQ0wuVklFV05BTUU7XG5cdFx0XHR9IGVsc2UgaWYgKG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZSA9PT0gTkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUVfQ09NUEFUSUJJTElUWSkge1xuXHRcdFx0XHRvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgPSBOQVZDT05GLk5BVkNPTlRBSU5FUi5WSUVXTkFNRTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgPT09IE5BVkNPTkYuRkNMLlZJRVdOQU1FICYmXG5cdFx0XHRcdG9NYW5pZmVzdFVJNS5yb3V0aW5nPy5jb25maWc/LnJvdXRlckNsYXNzID09PSBOQVZDT05GLkZDTC5ST1VURVJDTEFTU1xuXHRcdFx0KSB7XG5cdFx0XHRcdExvZy5pbmZvKGBSb290Y29udGFpbmVyOiBcIiR7TkFWQ09ORi5GQ0wuVklFV05BTUV9XCIgLSBSb3V0ZXJjbGFzczogXCIke05BVkNPTkYuRkNMLlJPVVRFUkNMQVNTfVwiYCk7XG5cdFx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0XHRvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgPT09IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FICYmXG5cdFx0XHRcdG9NYW5pZmVzdFVJNS5yb3V0aW5nPy5jb25maWc/LnJvdXRlckNsYXNzID09PSBOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTU1xuXHRcdFx0KSB7XG5cdFx0XHRcdExvZy5pbmZvKGBSb290Y29udGFpbmVyOiBcIiR7TkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUV9XCIgLSBSb3V0ZXJjbGFzczogXCIke05BVkNPTkYuTkFWQ09OVEFJTkVSLlJPVVRFUkNMQVNTfVwiYCk7XG5cdFx0XHR9IGVsc2UgaWYgKG9NYW5pZmVzdFVJNS5yb290Vmlldz8udmlld05hbWU/LmluZGV4T2YoXCJzYXAuZmUuY29yZS5yb290Vmlld1wiKSAhPT0gLTEpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFx0YFxcbldyb25nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb3VwbGUgKHJvb3RWaWV3L3JvdXRlckNsYXNzKSBpbiBtYW5pZmVzdCBmaWxlLlxcbmAgK1xuXHRcdFx0XHRcdFx0YEN1cnJlbnQgdmFsdWVzIGFyZSA6KCR7b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lfS8ke1xuXHRcdFx0XHRcdFx0XHRvTWFuaWZlc3RVSTUucm91dGluZz8uY29uZmlnPy5yb3V0ZXJDbGFzcyB8fCBcIjxtaXNzaW5nIHJvdXRlciBjbGFzcz5cIlxuXHRcdFx0XHRcdFx0fSlcXG5gICtcblx0XHRcdFx0XHRcdGBFeHBlY3RlZCB2YWx1ZXMgYXJlIFxcbmAgK1xuXHRcdFx0XHRcdFx0YFxcdCAtICgke05BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FfS8ke05BVkNPTkYuTkFWQ09OVEFJTkVSLlJPVVRFUkNMQVNTfSlcXG5gICtcblx0XHRcdFx0XHRcdGBcXHQgLSAoJHtOQVZDT05GLkZDTC5WSUVXTkFNRX0vJHtOQVZDT05GLkZDTC5ST1VURVJDTEFTU30pYFxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0TG9nLmluZm8oYFJvb3Rjb250YWluZXI6IFwiJHtvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWV9XCIgLSBSb3V0ZXJjbGFzczogXCIke05BVkNPTkYuTkFWQ09OVEFJTkVSLlJPVVRFUkNMQVNTfVwiYCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQWRkaW5nIFNlbWFudGljIERhdGUgT3BlcmF0b3JzXG5cdFx0Ly8gQ29tbWVudGluZyBzaW5jZSBpdCBpcyBub3QgbmVlZGVkIGZvciBTaW5nbGVSYW5nZVxuXHRcdFNlbWFudGljRGF0ZU9wZXJhdG9ycy5hZGRTZW1hbnRpY0RhdGVPcGVyYXRvcnMoKTtcblxuXHRcdC8vIHRoZSBpbml0IGZ1bmN0aW9uIGNvbmZpZ3VyZXMgdGhlIHJvdXRpbmcgYWNjb3JkaW5nIHRvIHRoZSBzZXR0aW5ncyBhYm92ZVxuXHRcdC8vIGl0IHdpbGwgY2FsbCB0aGUgY3JlYXRlQ29udGVudCBmdW5jdGlvbiB0byBpbnN0YW50aWF0ZSB0aGUgUm9vdFZpZXcgYW5kIGFkZCBpdCB0byB0aGUgVUlDb21wb25lbnQgYWdncmVnYXRpb25zXG5cblx0XHRzdXBlci5pbml0KCk7XG5cdFx0QXBwQ29tcG9uZW50Lmluc3RhbmNlTWFwW3RoaXMuZ2V0SWQoKV0gPSB0aGlzO1xuXHR9XG5cblx0b25TZXJ2aWNlc1N0YXJ0ZWQoKSB7XG5cdFx0Ly9yb3V0ZXIgbXVzdCBiZSBzdGFydGVkIG9uY2UgdGhlIHJvb3Rjb250YWluZXIgaXMgaW5pdGlhbGl6ZWRcblx0XHQvL3N0YXJ0aW5nIG9mIHRoZSByb3V0ZXJcblx0XHRjb25zdCBmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24gPSAoKSA9PiB7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnRhaW5lclxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkuYXR0YWNoUm91dGVNYXRjaGVycykge1xuXHRcdFx0XHRcdFx0dGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKS5hdHRhY2hSb3V0ZU1hdGNoZXJzKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRoaXMuZ2V0Um91dGVyKCkuaW5pdGlhbGl6ZSgpO1xuXHRcdFx0XHRcdHRoaXMuZ2V0Um91dGVyUHJveHkoKS5pbml0KHRoaXMsIHRoaXMuX2lzRmNsRW5hYmxlZCgpKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgb1Jlc291cmNlQnVuZGxlID0gQ29yZS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUuY29yZVwiKTtcblxuXHRcdFx0XHRcdHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkuZGlzcGxheUVycm9yUGFnZShcblx0XHRcdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19BUFBfQ09NUE9ORU5UX1NBUEZFX0FQUFNUQVJUX1RFQ0hOSUNBTF9JU1NVRVNcIiksXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfQ09NTU9OX1NBUEZFX0VSUk9SXCIpLFxuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogZXJyb3IubWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0RkNMTGV2ZWw6IDBcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0aWYgKHRoaXMuYkluaXRpYWxpemVSb3V0aW5nKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRSb3V0aW5nU2VydmljZSgpXG5cdFx0XHRcdC5pbml0aWFsaXplUm91dGluZygpXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKSkge1xuXHRcdFx0XHRcdFx0ZmluYWxpemVkUm91dGluZ0luaXRpYWxpemF0aW9uKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMuZ2V0Um9vdENvbnRyb2woKS5hdHRhY2hBZnRlckluaXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24oKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyOiBFcnJvcikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihgY2Fubm90IGNhbm5vdCBpbml0aWFsaXplIHJvdXRpbmc6ICR7ZXJyLnRvU3RyaW5nKCl9YCk7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGV4aXQoKSB7XG5cdFx0dGhpcy5fb0FwcFN0YXRlSGFuZGxlci5kZXN0cm95KCk7XG5cdFx0dGhpcy5fb1JvdXRlclByb3h5LmRlc3Ryb3koKTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGRlbGV0ZSB0aGlzLl9vQXBwU3RhdGVIYW5kbGVyO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0ZGVsZXRlIHRoaXMuX29Sb3V0ZXJQcm94eTtcblx0XHRkZWxldGVNb2RlbENhY2hlRGF0YSh0aGlzLmdldE1ldGFNb2RlbCgpKTtcblx0XHR0aGlzLmdldE1vZGVsKFwidWlcIikuZGVzdHJveSgpO1xuXHR9XG5cblx0Z2V0TWV0YU1vZGVsKCk6IE9EYXRhTWV0YU1vZGVsIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHR9XG5cblx0Z2V0RGlhZ25vc3RpY3MoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX29EaWFnbm9zdGljcztcblx0fVxuXG5cdGRlc3Ryb3koYlN1cHByZXNzSW52YWxpZGF0ZT86IGJvb2xlYW4pIHtcblx0XHQvLyBMRUFLUywgd2l0aCB3b3JrYXJvdW5kIGZvciBzb21lIEZsZXggLyBNREMgaXNzdWVcblx0XHR0cnkge1xuXHRcdFx0Ly8gXHQvLyBUaGlzIG9uZSBpcyBvbmx5IGEgbGVhayBpZiB5b3UgZG9uJ3QgZ28gYmFjayB0byB0aGUgc2FtZSBjb21wb25lbnQgaW4gdGhlIGxvbmcgcnVuXG5cdFx0XHQvL2RlbGV0ZSBzYXAudWkuZmwuRmxleENvbnRyb2xsZXJGYWN0b3J5Ll9jb21wb25lbnRJbnN0YW50aWF0aW9uUHJvbWlzZXNbdGhpcy5nZXRJZCgpXTtcblxuXHRcdFx0ZGVsZXRlIEFwcENvbXBvbmVudC5pbnN0YW5jZU1hcFt0aGlzLmdldElkKCldO1xuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRkZWxldGUgKHdpbmRvdyBhcyB1bmtub3duKS5fcm91dGluZztcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRMb2cuaW5mbyhlIGFzIHN0cmluZyk7XG5cdFx0fVxuXG5cdFx0Ly9XT1JLQVJPVU5EIGZvciBzdGlja3kgZGlzY2FyZCByZXF1ZXN0IDogZHVlIHRvIGFzeW5jIGNhbGxiYWNrLCByZXF1ZXN0IHRyaWdnZXJlZCBieSB0aGUgZXhpdEFwcGxpY2F0aW9uIHdpbGwgYmUgc2VuZCBhZnRlciB0aGUgVUlDb21wb25lbnQucHJvdG90eXBlLmRlc3Ryb3lcblx0XHQvL3NvIHdlIG5lZWQgdG8gY29weSB0aGUgUmVxdWVzdG9yIGhlYWRlcnMgYXMgaXQgd2lsbCBiZSBkZXN0cm95XG5cblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGNvbnN0IG9NYWluTW9kZWwgPSB0aGlzLm9Nb2RlbHNbdW5kZWZpbmVkXTtcblx0XHRsZXQgb0hlYWRlcnM7XG5cdFx0aWYgKG9NYWluTW9kZWwub1JlcXVlc3Rvcikge1xuXHRcdFx0b0hlYWRlcnMgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvTWFpbk1vZGVsLm9SZXF1ZXN0b3IubUhlYWRlcnMpO1xuXHRcdH1cblxuXHRcdC8vIEFzIHdlIG5lZWQgdG8gY2xlYW51cCB0aGUgYXBwbGljYXRpb24gLyBoYW5kbGUgdGhlIGRpcnR5IG9iamVjdCB3ZSBuZWVkIHRvIGNhbGwgb3VyIGNsZWFudXAgYmVmb3JlIHRoZSBtb2RlbHMgYXJlIGRlc3Ryb3llZFxuXHRcdHRoaXMuZ2V0Um91dGluZ1NlcnZpY2UoKT8uYmVmb3JlRXhpdCgpO1xuXHRcdHN1cGVyLmRlc3Ryb3koYlN1cHByZXNzSW52YWxpZGF0ZSk7XG5cdFx0aWYgKG9IZWFkZXJzICYmIG9NYWluTW9kZWwub1JlcXVlc3Rvcikge1xuXHRcdFx0b01haW5Nb2RlbC5vUmVxdWVzdG9yLm1IZWFkZXJzID0gb0hlYWRlcnM7XG5cdFx0fVxuXHR9XG5cblx0Z2V0Um91dGluZ1NlcnZpY2UoKTogUm91dGluZ1NlcnZpY2Uge1xuXHRcdHJldHVybiB7fSBhcyBSb3V0aW5nU2VydmljZTsgLy8gb3ZlcnJpZGVuIGF0IHJ1bnRpbWVcblx0fVxuXG5cdGdldFNoZWxsU2VydmljZXMoKTogSVNoZWxsU2VydmljZXMge1xuXHRcdHJldHVybiB7fSBhcyBJU2hlbGxTZXJ2aWNlczsgLy8gb3ZlcnJpZGVuIGF0IHJ1bnRpbWVcblx0fVxuXG5cdGdldE5hdmlnYXRpb25TZXJ2aWNlKCk6IE5hdmlnYXRpb25TZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgTmF2aWdhdGlvblNlcnZpY2U7IC8vIG92ZXJyaWRlbiBhdCBydW50aW1lXG5cdH1cblxuXHRnZXRTaWRlRWZmZWN0c1NlcnZpY2UoKTogU2lkZUVmZmVjdHNTZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgU2lkZUVmZmVjdHNTZXJ2aWNlO1xuXHR9XG5cblx0Z2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKTogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlO1xuXHR9XG5cblx0YXN5bmMgZ2V0U3RhcnR1cFBhcmFtZXRlcnMoKSB7XG5cdFx0Y29uc3Qgb0NvbXBvbmVudERhdGEgPSB0aGlzLmdldENvbXBvbmVudERhdGEoKTtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKChvQ29tcG9uZW50RGF0YSAmJiBvQ29tcG9uZW50RGF0YS5zdGFydHVwUGFyYW1ldGVycykgfHwge30pO1xuXHR9XG5cblx0cmVzdG9yZSgpIHtcblx0XHQvLyBjYWxsZWQgYnkgRkxQIHdoZW4gYXBwIHNhcC1rZWVwLWFsaXZlIGlzIGVuYWJsZWQgYW5kIGFwcCBpcyByZXN0b3JlZFxuXHRcdHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkudmlld1N0YXRlLm9uUmVzdG9yZSgpO1xuXHR9XG5cblx0c3VzcGVuZCgpIHtcblx0XHQvLyBjYWxsZWQgYnkgRkxQIHdoZW4gYXBwIHNhcC1rZWVwLWFsaXZlIGlzIGVuYWJsZWQgYW5kIGFwcCBpcyBzdXNwZW5kZWRcblx0XHR0aGlzLmdldFJvb3RWaWV3Q29udHJvbGxlcigpLnZpZXdTdGF0ZS5vblN1c3BlbmQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBuYXZpZ2F0ZUJhc2VkT25TdGFydHVwUGFyYW1ldGVyIGZ1bmN0aW9uIGlzIGEgcHVibGljIGFwaSB0aGF0IGFjdHMgYXMgYSB3cmFwcGVyIHRvIF9tYW5hZ2VEZWVwTGlua1N0YXJ0dXAgZnVuY3Rpb24uIEl0IHBhc3NlcyB0aGUgc3RhcnR1cCBwYXJhbWV0ZXJzIGZ1cnRoZXIgdG8gX21hbmFnZURlZXBMaW5rU3RhcnR1cCBmdW5jdGlvblxuXHQgKlxuXHQgKiBAcGFyYW0gc3RhcnR1cFBhcmFtZXRlcnMgRGVmaW5lcyB0aGUgc3RhcnR1cCBwYXJhbWV0ZXJzIHdoaWNoIGlzIGZ1cnRoZXIgcGFzc2VkIHRvIF9tYW5hZ2VEZWVwTGlua1N0YXJ0dXAgZnVuY3Rpb24uXG5cdCAqL1xuXG5cdGFzeW5jIG5hdmlnYXRlQmFzZWRPblN0YXJ0dXBQYXJhbWV0ZXIoc3RhcnR1cFBhcmFtZXRlcnM6IFN0YXJ0dXBQYXJhbWV0ZXJzIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuXHRcdHRyeSB7XG5cdFx0XHRpZiAoIUJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcy5nZXRNb2RlbChcInVpXCIpKSkge1xuXHRcdFx0XHRpZiAoIXN0YXJ0dXBQYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0c3RhcnR1cFBhcmFtZXRlcnMgPSBudWxsO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnN0IHJvdXRpbmdTZXJ2aWNlID0gdGhpcy5nZXRSb3V0aW5nU2VydmljZSgpO1xuXHRcdFx0XHRhd2FpdCByb3V0aW5nU2VydmljZS5fbWFuYWdlRGVlcExpbmtTdGFydHVwKHN0YXJ0dXBQYXJhbWV0ZXJzKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChleGNlcHRpb246IHVua25vd24pIHtcblx0XHRcdExvZy5lcnJvcihleGNlcHRpb24gYXMgc3RyaW5nKTtcblx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMuZ2V0TW9kZWwoXCJ1aVwiKSk7XG5cdFx0fVxuXHR9XG59XG5cbmludGVyZmFjZSBBcHBDb21wb25lbnQgZXh0ZW5kcyBVSUNvbXBvbmVudCB7XG5cdGdldE1hbmlmZXN0KCk6IE1hbmlmZXN0Q29udGVudDtcblx0Z2V0TWFuaWZlc3RFbnRyeShlbnRyeTogXCJzYXAuYXBwXCIpOiBNYW5pZmVzdENvbnRlbnRBcHA7XG5cdGdldE1hbmlmZXN0RW50cnkoZW50cnk6IFwic2FwLnVpNVwiKTogTWFuaWZlc3RDb250ZW50VUk1O1xuXHRnZXRDb21wb25lbnREYXRhKCk6IENvbXBvbmVudERhdGE7XG5cdGdldFJvb3RDb250cm9sKCk6IHtcblx0XHRnZXRDb250cm9sbGVyKCk6IFJvb3RWaWV3QmFzZUNvbnRyb2xsZXI7XG5cdH0gJiBWaWV3O1xufVxuXG5leHBvcnQgZGVmYXVsdCBBcHBDb21wb25lbnQ7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7RUEyQkEsTUFBTUEsV0FBVyxHQUFHQyxPQUFPLENBQUNELFdBQVc7RUFFdkMsTUFBTUUsT0FBTyxHQUFHO0lBQ2ZDLEdBQUcsRUFBRTtNQUNKQyxRQUFRLEVBQUUsMEJBQTBCO01BQ3BDQyxzQkFBc0IsRUFBRSx5Q0FBeUM7TUFDakVDLFdBQVcs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