@kando-env/kando-ui 1.2.228-alpha.129 → 1.2.228-alpha.13

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 (582) hide show
  1. package/lib/Router.js +66 -8
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +41 -11
  3. package/lib/Widgets/EventsRow/EventsRow.js +42 -15
  4. package/lib/Widgets/Map/GraphUtils.js +4 -1
  5. package/lib/Widgets/Map/Map.js +108 -95
  6. package/lib/Widgets/Map/Map.scss +0 -2
  7. package/lib/Widgets/Map/MapUtils.js +58 -7
  8. package/lib/Widgets/Map/areas/AreaPolygon.js +27 -7
  9. package/lib/Widgets/Map/areas/AreaPolygons.js +22 -9
  10. package/lib/Widgets/Map/edges/Edge.js +31 -10
  11. package/lib/Widgets/Map/edges/Edge.scss +2 -7
  12. package/lib/Widgets/Map/edges/Edges.js +20 -11
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +22 -7
  14. package/lib/Widgets/Map/events/Event.js +23 -7
  15. package/lib/Widgets/Map/events/EventIndicator.js +43 -20
  16. package/lib/Widgets/Map/events/EventPath.js +20 -5
  17. package/lib/Widgets/Map/events/EventUtils.js +62 -15
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +19 -5
  19. package/lib/Widgets/Map/events/PointOfEvent.js +34 -5
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +14 -4
  21. package/lib/Widgets/Map/events/Snail.js +19 -7
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +54 -15
  23. package/lib/Widgets/Map/map/FloatingGraph.js +19 -3
  24. package/lib/Widgets/Map/map/GraphDateButton.js +9 -3
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +11 -5
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +10 -4
  27. package/lib/Widgets/Map/points/PointIcon.js +16 -3
  28. package/lib/Widgets/Map/points/PointIcon.scss +1 -16
  29. package/lib/Widgets/Map/points/PointMarker.js +28 -13
  30. package/lib/Widgets/Map/points/PointMarkers.js +88 -56
  31. package/lib/Widgets/Map/points/PointUtils.js +114 -32
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +53 -19
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +19 -4
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +13 -1
  35. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +5 -1
  36. package/lib/Widgets/MostPolluting/Areas/Areas.js +53 -19
  37. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +1 -1
  38. package/lib/Widgets/MostPolluting/Areas/areasResponse.interface.js +1 -1
  39. package/lib/Widgets/MostPolluting/Areas/styles.js +7 -1
  40. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +11 -3
  41. package/lib/Widgets/MostPolluting/Factories/Factories.js +64 -30
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +21 -4
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +10 -1
  44. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +17 -4
  45. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +7 -3
  46. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +1 -1
  47. package/lib/Widgets/MostPolluting/Factories/factoriesResponse.interface.js +1 -1
  48. package/lib/Widgets/MostPolluting/Factories/styles.js +7 -1
  49. package/lib/Widgets/MostPolluting/MostPolluting.js +24 -37
  50. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +17 -13
  51. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +9 -2
  52. package/lib/Widgets/MostPolluting/ShowMore/styles.js +5 -1
  53. package/lib/Widgets/MostPolluting/assets/index.js +28 -17
  54. package/lib/Widgets/MostPolluting/components/ChangePercent.js +16 -1
  55. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +26 -15
  56. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +26 -4
  57. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +33 -25
  58. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +20 -4
  59. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +43 -29
  60. package/lib/Widgets/MostPolluting/models.js +1 -1
  61. package/lib/Widgets/MostPolluting/styles.js +7 -1
  62. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +9 -2
  63. package/lib/Widgets/PotentialImpactSummary/Icon.js +11 -1
  64. package/lib/Widgets/PotentialImpactSummary/index.js +29 -7
  65. package/lib/Widgets/PotentialImpactSummary/index.test.js +36 -17
  66. package/lib/Widgets/PotentialImpactSummary/styles.js +15 -2
  67. package/lib/Widgets/PotentialImpactSummary/useCasesResponse.interface.js +1 -1
  68. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +10 -4
  69. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +21 -7
  70. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +29 -19
  71. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +24 -15
  72. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +21 -7
  73. package/lib/Widgets/QualitySummary/QualitySummary.js +24 -8
  74. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +2 -2
  75. package/lib/Widgets/QualitySummary/qualitySummaryResponse.interface.js +1 -1
  76. package/lib/Widgets/QualitySummary/styles.js +16 -3
  77. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +21 -10
  78. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +34 -9
  79. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +18 -9
  80. package/lib/Widgets/UtilityInformation/UtilityInformation.js +59 -30
  81. package/lib/Widgets/UtilityInformation/UtilityInformationResponse.interface.js +1 -1
  82. package/lib/Widgets/UtilityInformation/styles.js +22 -2
  83. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +2 -2
  84. package/lib/assets/icons/index.js +8 -5
  85. package/lib/assets/icons/kandoStepper/index.js +14 -9
  86. package/lib/assets/map/pin-suction.svg +23 -6
  87. package/lib/components/ApplyButton/ApplyButton.js +11 -5
  88. package/lib/components/ApplyButton/index.js +4 -1
  89. package/lib/components/Backdrop/Backdrop.js +8 -2
  90. package/lib/components/ContentLoader/ContentLoader.js +12 -7
  91. package/lib/components/ContentLoader/index.js +2 -1
  92. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +14 -7
  93. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +8 -2
  94. package/lib/components/CustomInputs/DoubleTabs/styles.js +10 -2
  95. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +18 -5
  96. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +5 -1
  97. package/lib/components/CustomInputs/Search/Search.js +38 -13
  98. package/lib/components/CustomInputs/Search/index.js +4 -1
  99. package/lib/components/CustomInputs/Select/Select.js +33 -33
  100. package/lib/components/CustomInputs/Select/Select.stories.js +8 -2
  101. package/lib/components/DamageType/DamageType.js +76 -37
  102. package/lib/components/DamageType/index.js +4 -1
  103. package/lib/components/DataLoaderError/DataLoaderError.js +10 -4
  104. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +16 -6
  105. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +37 -17
  106. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -12
  107. package/lib/components/DischargeHeatmap/HighchartsOptions.js +10 -6
  108. package/lib/components/DischargeHeatmap/index.js +4 -1
  109. package/lib/components/DischargeHeatmap/mocks/handlers.js +4 -3
  110. package/lib/components/DischargeHeatmap/popupText.js +16 -1
  111. package/lib/components/DischargeHeatmap/titles.js +8 -1
  112. package/lib/components/DischargeHeatmap/types.js +1 -1
  113. package/lib/components/ErrorBoundary.js +15 -3
  114. package/lib/components/Events/Events.js +30 -5
  115. package/lib/components/Events/index.js +4 -1
  116. package/lib/components/Graph/Graph.js +74 -31
  117. package/lib/components/Graph/index.js +4 -1
  118. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +7 -1
  119. package/lib/components/Header/Breadcrumbs/index.js +4 -1
  120. package/lib/components/Header/DoubleTabs/DoubleTabs.js +30 -14
  121. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +8 -2
  122. package/lib/components/Header/DoubleTabs/styles.js +10 -2
  123. package/lib/components/Header/Header.js +7 -1
  124. package/lib/components/Header/Header.stories.js +8 -2
  125. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +12 -8
  126. package/lib/components/Header/InfoBar/InfoBar.js +30 -10
  127. package/lib/components/Header/InfoBar/Search/Control.js +13 -2
  128. package/lib/components/Header/InfoBar/Search/GroupLabel.js +12 -1
  129. package/lib/components/Header/InfoBar/Search/Search.js +26 -5
  130. package/lib/components/Header/InfoBar/Search/SearchContainer.js +21 -4
  131. package/lib/components/Header/InfoBar/Search/index.js +4 -1
  132. package/lib/components/Header/InfoBar/Search/searchStyle.js +4 -1
  133. package/lib/components/Header/KandoNavbar/KandoNavbar.js +91 -46
  134. package/lib/components/Header/KandoNavbar/index.js +4 -1
  135. package/lib/components/Header/Slideshow/Slideshow.js +71 -35
  136. package/lib/components/Header/Slideshow/index.js +4 -1
  137. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +7 -1
  138. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +15 -2
  139. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +15 -1
  140. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +24 -7
  141. package/lib/components/Header/Toolbar/Toolbar.js +84 -46
  142. package/lib/components/InfoBar/InfoBar.js +23 -8
  143. package/lib/components/InfoBar/InfoBar.stories.js +8 -2
  144. package/lib/components/KandoModal/KandoModal.js +42 -19
  145. package/lib/components/KandoModal/index.js +4 -1
  146. package/lib/components/Link.js +11 -2
  147. package/lib/components/Links/CustomRedirect/CustomRedirect.js +12 -3
  148. package/lib/components/Links/StyledLink/StyledLink.js +16 -6
  149. package/lib/components/Links/StyledNavLink/StyledNavLink.js +14 -4
  150. package/lib/components/LiveEvents/CarouselSlide.js +11 -5
  151. package/lib/components/LiveEvents/LiveEvents.js +10 -1
  152. package/lib/components/LiveEvents/index.js +4 -1
  153. package/lib/components/LoaderByPercent/LoaderByPercent.js +23 -13
  154. package/lib/components/Map/Map.js +26 -12
  155. package/lib/components/Map/index.js +4 -1
  156. package/lib/components/Modal/Modal.js +10 -3
  157. package/lib/components/NarrowHeader.js +12 -1
  158. package/lib/components/PointInfo/PointInfo.js +22 -10
  159. package/lib/components/PointInfo/index.js +4 -1
  160. package/lib/components/PopupModal/PopupModal.js +17 -6
  161. package/lib/components/PopupModal/PopupModal.stories.js +11 -2
  162. package/lib/components/Sector/Sector.js +13 -4
  163. package/lib/components/Sector/Sector.test.js +8 -3
  164. package/lib/components/Sector/index.js +4 -1
  165. package/lib/components/Sector/sectorIcons.js +27 -1
  166. package/lib/components/SevereEvent/Eta/Eta.js +40 -20
  167. package/lib/components/SevereEvent/Eta/styles.js +5 -1
  168. package/lib/components/SevereEvent/SevereEvent.js +36 -15
  169. package/lib/components/Spinner/Spinner.js +10 -5
  170. package/lib/components/Spinner/Spinner.stories.js +8 -2
  171. package/lib/components/Spinner/index.js +4 -1
  172. package/lib/components/Spinner/styles.js +9 -1
  173. package/lib/components/Tabs/Tabs.js +24 -4
  174. package/lib/components/Tabs/Tabs.stories.js +8 -2
  175. package/lib/components/Tabs/assets/index.js +6 -1
  176. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -2
  177. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +43 -12
  178. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +36 -12
  179. package/lib/components/TimeRangeSelector/KandoRangePicker/index.js +4 -1
  180. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +29 -9
  181. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +9 -4
  182. package/lib/components/TimeRangeSelector/TimeRangeItem/index.js +4 -1
  183. package/lib/components/TimeRangeSelector/TimeRangeList.js +13 -4
  184. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +24 -11
  185. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +36 -11
  186. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +10 -2
  187. package/lib/components/TimeRangeSelector/constants.js +2 -2
  188. package/lib/components/TimeRangeSelector/index.js +4 -1
  189. package/lib/components/Toggle/Toggle.js +21 -7
  190. package/lib/components/Toggle/index.js +4 -1
  191. package/lib/components/TrendGraph/TrendGraph.js +49 -16
  192. package/lib/components/TrendGraph/index.js +4 -1
  193. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +37 -13
  194. package/lib/components/TrendGraphNVL/index.js +4 -1
  195. package/lib/development-environment/index.js +13 -1
  196. package/lib/development-environment/mock/browser.js +8 -1
  197. package/lib/development-environment/mock/get.js +5 -1
  198. package/lib/development-environment/mock/handlers.js +26 -1
  199. package/lib/development-environment/mock/mockBus.js +7 -2
  200. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +1 -1
  201. package/lib/development-environment/mock/mockObjects/areaInformation.js +1 -1
  202. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +1 -1
  203. package/lib/development-environment/mock/mockObjects/areaSitesData.js +1 -1
  204. package/lib/development-environment/mock/mockObjects/areasJson.js +1 -1
  205. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +1 -1
  206. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +1 -1
  207. package/lib/development-environment/mock/mockObjects/data-menuData.js +1 -1
  208. package/lib/development-environment/mock/mockObjects/data-search.js +1 -1
  209. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +1 -1
  210. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +1 -1
  211. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +1 -1
  212. package/lib/development-environment/mock/mockObjects/eventsJson.js +1 -1
  213. package/lib/development-environment/mock/mockObjects/metascore.js +1 -1
  214. package/lib/development-environment/mock/mockObjects/permissionsJson.js +1 -1
  215. package/lib/development-environment/mock/mockObjects/pointsJson.js +1 -1
  216. package/lib/development-environment/mock/mockObjects/site-info.js +1 -1
  217. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +1 -1
  218. package/lib/development-environment/togly/ToglyDashboard.js +22 -4
  219. package/lib/development-environment/togly/ToglyItem.js +25 -5
  220. package/lib/development-environment/togly/flags.js +1 -1
  221. package/lib/development-environment/togly/init.js +6 -1
  222. package/lib/development-environment/togly/macro.js +9 -7
  223. package/lib/development-environment/togly/useDoubleKeyDown.js +8 -1
  224. package/lib/development-environment/togly/useLocalStorage.js +19 -12
  225. package/lib/hooks/useApi.js +29 -10
  226. package/lib/hooks/useApiWithDashboardQuery.js +30 -10
  227. package/lib/hooks/useClickOutside.js +5 -1
  228. package/lib/hooks/useInitializeHeaders.js +9 -2
  229. package/lib/hooks/useKandoFetch.js +27 -13
  230. package/lib/hooks/useMap.js +35 -8
  231. package/lib/hooks/useNavContext.js +22 -13
  232. package/lib/hooks/useQueryURL.js +4 -1
  233. package/lib/hooks/useRemoveExistingLayers.js +7 -2
  234. package/lib/hooks/useUpdateEventBodyTail.js +10 -1
  235. package/lib/hooks/useUserTimeZone.js +9 -1
  236. package/lib/hooks/useUserTimeZone.test.js +9 -1
  237. package/lib/hooks/useWindowSize.js +19 -14
  238. package/lib/i18n/en.json +4 -42
  239. package/lib/i18n/en_uk.json +3 -25
  240. package/lib/i18n/fr.json +2 -24
  241. package/lib/i18n/he.json +3 -33
  242. package/lib/i18n/it.json +2 -24
  243. package/lib/index.js +29 -21
  244. package/lib/macros/getVersion.js +3 -2
  245. package/lib/models/IAction.js +1 -1
  246. package/lib/models/IAppState.js +1 -1
  247. package/lib/pages/AreaPage/AreaPage.js +38 -13
  248. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +17 -6
  249. package/lib/pages/AreaPage/Dashboard/Dashboard.js +24 -3
  250. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +35 -11
  251. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +8 -6
  252. package/lib/pages/AreaPage/Dashboard/Sites/Sites.js +65 -46
  253. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +10 -1
  254. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +15 -3
  255. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +7 -3
  256. package/lib/pages/AreaPage/Dashboard/Sites/SitesResponse.interface.js +1 -1
  257. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +1 -1
  258. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +11 -3
  259. package/lib/pages/AssessmentPage/AssessmentPage.js +30 -5
  260. package/lib/pages/CannyWidget/Feedback.js +25 -10
  261. package/lib/pages/CovidPage/CovidPage.js +14 -1
  262. package/lib/pages/CovidPage/components/Body.js +33 -9
  263. package/lib/pages/CovidPage/components/Map.js +38 -20
  264. package/lib/pages/CovidPage/components/Sidebar.js +18 -4
  265. package/lib/pages/CovidPage/components/Summary.js +29 -8
  266. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +37 -13
  267. package/lib/pages/CovidPage/components/TrendGraphNVL/index.js +4 -1
  268. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +42 -16
  269. package/lib/pages/CovidPage/components/TrendPopupContent/index.js +4 -1
  270. package/lib/pages/CovidPage/components/areas/Area.js +33 -6
  271. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +45 -4
  272. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +18 -5
  273. package/lib/pages/CovidPage/components/areas/AreasList.js +33 -14
  274. package/lib/pages/CovidPage/components/areas/Sort.js +19 -5
  275. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -2
  276. package/lib/pages/EventsPage/Body/Body.js +19 -2
  277. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +28 -11
  278. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +31 -11
  279. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +11 -4
  280. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -3
  281. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +10 -5
  282. package/lib/pages/EventsPage/DragAndDropArea/index.js +4 -1
  283. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +36 -26
  284. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +24 -5
  285. package/lib/pages/EventsPage/EventsPage.js +13 -1
  286. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +32 -9
  287. package/lib/pages/EventsPage/events/EventsStyle.scss +0 -1
  288. package/lib/pages/EventsPage/events/MoreInfo.js +19 -1
  289. package/lib/pages/EventsPage/events/Sidebar.js +18 -5
  290. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +29 -5
  291. package/lib/pages/EventsPage/events/event_info/EventDetails.js +32 -8
  292. package/lib/pages/EventsPage/events/event_info/EventInfo.js +42 -14
  293. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +14 -2
  294. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +40 -10
  295. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +12 -1
  296. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +30 -8
  297. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +8 -1
  298. package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/LineChartYear/LineChartYear.js +27 -7
  299. package/lib/pages/EventsPage/events/event_info/MockHistoryInformation/MockHistoryInformation.js +10 -2
  300. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +21 -5
  301. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsLineChart.js +23 -4
  302. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +22 -4
  303. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +33 -6
  304. package/lib/pages/EventsPage/events/event_info/samplings/Sampling.js +15 -3
  305. package/lib/pages/EventsPage/events/event_info/samplings/Samplings.js +10 -2
  306. package/lib/pages/EventsPage/events/event_info/sources/Source.js +31 -8
  307. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +20 -4
  308. package/lib/pages/EventsPage/events/events_list/EventItem.js +24 -3
  309. package/lib/pages/EventsPage/events/events_list/EventUtils.js +13 -2
  310. package/lib/pages/EventsPage/events/events_list/EventsList.js +134 -56
  311. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +32 -11
  312. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +96 -35
  313. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +55 -10
  314. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +17 -5
  315. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +38 -15
  316. package/lib/pages/EventsPage/events/events_list/Sort.js +23 -4
  317. package/lib/pages/ImportFileWizard/FileUploadRespones.js +19 -4
  318. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +8 -2
  319. package/lib/pages/ImportFileWizard/ImportFile.js +29 -10
  320. package/lib/pages/ImportFileWizard/ResponseBody.js +12 -3
  321. package/lib/pages/ImportFileWizard/ValidationForm.js +27 -7
  322. package/lib/pages/ImportFileWizard/ValidationResponse.js +30 -6
  323. package/lib/pages/ImportFileWizard/importFileUtils.js +2 -1
  324. package/lib/pages/ImportFileWizard/index.js +4 -1
  325. package/lib/pages/ImportGisPage/ImportGisContainer.js +27 -7
  326. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +27 -10
  327. package/lib/pages/ImportGisPage/importGisUtils.js +13 -1
  328. package/lib/pages/ImportGisProcess/index.js +18 -4
  329. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +19 -5
  330. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +10 -3
  331. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +8 -1
  332. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +58 -25
  333. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -2
  334. package/lib/pages/NotificationsPage/Notification/Notification.js +16 -8
  335. package/lib/pages/NotificationsPage/Notifications.interface.js +1 -1
  336. package/lib/pages/NotificationsPage/Notifications.mock.js +1 -1
  337. package/lib/pages/NotificationsPage/Notifications.stories.js +10 -2
  338. package/lib/pages/NotificationsPage/NotificationsPage.js +35 -11
  339. package/lib/pages/NotificationsPage/assets/index.js +24 -15
  340. package/lib/pages/NotificationsPageV2/NotificationsPage.js +83 -35
  341. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +24 -4
  342. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +42 -17
  343. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +49 -18
  344. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +49 -6
  345. package/lib/pages/NotificationsPageV2/notificationUtils.js +31 -8
  346. package/lib/pages/OldSitePage/IDashboardData.js +1 -1
  347. package/lib/pages/OldSitePage/OldSitePage.js +77 -16
  348. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +16 -3
  349. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +8 -2
  350. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -4
  351. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +12 -5
  352. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -2
  353. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +23 -7
  354. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +20 -6
  355. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +10 -4
  356. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -2
  357. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +24 -9
  358. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +12 -4
  359. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +59 -28
  360. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
  361. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  362. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +18 -3
  363. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +15 -2
  364. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +16 -8
  365. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +16 -1
  366. package/lib/pages/OldSitePage/SamplingParameters/models.js +1 -1
  367. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +10 -2
  368. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +7 -2
  369. package/lib/pages/ProfilePage/Container.js +6 -2
  370. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +43 -16
  371. package/lib/pages/ProfilePage/ProfilePage.js +115 -172
  372. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +32 -9
  373. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +17 -7
  374. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +14 -3
  375. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +48 -20
  376. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +21 -4
  377. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +15 -7
  378. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +29 -8
  379. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -6
  380. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +21 -9
  381. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -1
  382. package/lib/pages/SamplingsPage/DesktopActions/index.js +4 -1
  383. package/lib/pages/SamplingsPage/NavigationDropdown.js +21 -3
  384. package/lib/pages/SamplingsPage/NewSamplingAction.js +84 -38
  385. package/lib/pages/SamplingsPage/SamplingMobileModal.js +65 -12
  386. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +19 -5
  387. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +14 -3
  388. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +56 -22
  389. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +20 -4
  390. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +14 -1
  391. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +115 -43
  392. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +42 -11
  393. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +47 -14
  394. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +49 -15
  395. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +21 -7
  396. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +8 -2
  397. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +11 -1
  398. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +36 -7
  399. package/lib/pages/SamplingsPage/SamplingsMobileList.js +34 -10
  400. package/lib/pages/SamplingsPage/SamplingsPage.js +39 -14
  401. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +48 -14
  402. package/lib/pages/SamplingsPage/index.js +3 -1
  403. package/lib/pages/SamplingsPage/samplingsPageUtils.js +30 -7
  404. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +10 -2
  405. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +8 -2
  406. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +17 -3
  407. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +11 -6
  408. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +23 -15
  409. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +16 -7
  410. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +27 -18
  411. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +12 -2
  412. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +26 -9
  413. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +20 -6
  414. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +10 -4
  415. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +12 -2
  416. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +24 -9
  417. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +12 -4
  418. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +68 -32
  419. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +2 -2
  420. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  421. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +19 -4
  422. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +15 -2
  423. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +38 -17
  424. package/lib/pages/SitePage/SamplingParameters/dataParser.js +29 -13
  425. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +7 -3
  426. package/lib/pages/SitePage/SamplingParameters/models.js +1 -1
  427. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +10 -2
  428. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +8 -2
  429. package/lib/pages/SitePage/SiteInformation/ContributorItem.js +12 -5
  430. package/lib/pages/SitePage/SiteInformation/EmptyState.js +10 -1
  431. package/lib/pages/SitePage/SiteInformation/PollutionContributor.js +15 -5
  432. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +51 -20
  433. package/lib/pages/SitePage/SiteInformation/style.js +8 -2
  434. package/lib/pages/SitePage/SitePage.js +54 -13
  435. package/lib/pages/UploadLabResult/index.js +8 -1
  436. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +59 -19
  437. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +9 -2
  438. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +16 -2
  439. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +8 -2
  440. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +35 -9
  441. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +5 -1
  442. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +7 -1
  443. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +10 -1
  444. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +16 -7
  445. package/lib/pages/UtilityDashboardPage/MostSevereEvents/models.js +1 -1
  446. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -23
  447. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +5 -1
  448. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +30 -17
  449. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +19 -13
  450. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +18 -9
  451. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +20 -5
  452. package/lib/pages/WbeDashboard/ExpandableComponent.js +14 -6
  453. package/lib/pages/WbeDashboard/GraphWrapper.js +28 -8
  454. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -6
  455. package/lib/pages/WbeDashboard/SearchInput.js +22 -4
  456. package/lib/pages/WbeDashboard/SummaryGraph.js +76 -56
  457. package/lib/pages/WbeDashboard/SummaryGraphModal.js +13 -1
  458. package/lib/pages/WbeDashboard/Tabs.js +9 -4
  459. package/lib/pages/WbeDashboard/WbeDashboardPage.js +157 -68
  460. package/lib/pages/WbeDashboard/WbeSummaryBar.js +49 -19
  461. package/lib/providers/Slideshow/SlideshowContext.js +5 -3
  462. package/lib/providers/Slideshow/SlideshowProvider.js +31 -16
  463. package/lib/providers/Slideshow/SlideshowRunner.js +17 -7
  464. package/lib/providers/UrlHistory/UrlHistoryContext.js +7 -3
  465. package/lib/providers/UrlHistory/UrlHistoryProvider.js +13 -1
  466. package/lib/providers/UrlHistory/index.js +8 -5
  467. package/lib/providers/UrlHistory/useLastVisited.js +7 -1
  468. package/lib/react-app-env.d.js +1 -1
  469. package/lib/store/ImportGis/action.js +1 -1
  470. package/lib/store/ImportGis/actionTypes.js +2 -1
  471. package/lib/store/ImportGis/actionsCreator.js +17 -7
  472. package/lib/store/ImportGis/models/gisImports.js +1 -1
  473. package/lib/store/ImportGis/reducer.js +17 -1
  474. package/lib/store/WBE/actionTypes.js +1 -1
  475. package/lib/store/WBE/actions.js +3 -1
  476. package/lib/store/WBE/models/IAreaWBE.js +1 -1
  477. package/lib/store/WBE/models/IWBE.js +1 -1
  478. package/lib/store/WBE/models/IWBEState.js +1 -1
  479. package/lib/store/WBE/reducer.js +9 -2
  480. package/lib/store/areas/actionTypes.js +2 -2
  481. package/lib/store/areas/actions.js +11 -2
  482. package/lib/store/areas/models/IArea.js +1 -1
  483. package/lib/store/areas/models/IAreasState.js +1 -1
  484. package/lib/store/areas/reducer.js +9 -1
  485. package/lib/store/context/actionTypes.js +2 -2
  486. package/lib/store/context/actions.js +6 -2
  487. package/lib/store/context/contextMiddlewares.js +9 -1
  488. package/lib/store/context/models/INavContext.js +1 -1
  489. package/lib/store/context/models/INavContextState.js +1 -1
  490. package/lib/store/context/reducer.js +9 -2
  491. package/lib/store/dashboard/dashboardSlice.js +3 -1
  492. package/lib/store/dashboard/periodType.js +1 -1
  493. package/lib/store/edges/actionTypes.js +2 -2
  494. package/lib/store/edges/actions.js +9 -3
  495. package/lib/store/edges/models/IEdge.js +1 -1
  496. package/lib/store/edges/models/IEdgesState.js +1 -1
  497. package/lib/store/edges/reducer.js +16 -2
  498. package/lib/store/events/actionTypes.js +2 -2
  499. package/lib/store/events/actions.js +30 -12
  500. package/lib/store/events/models/IEvent.js +1 -1
  501. package/lib/store/events/models/IEventsState.js +1 -1
  502. package/lib/store/events/models/ISource.js +1 -1
  503. package/lib/store/events/reducer.js +41 -3
  504. package/lib/store/filters/IFilter.js +1 -1
  505. package/lib/store/filters/IFilterItem.js +1 -1
  506. package/lib/store/global/actionTypes.js +2 -2
  507. package/lib/store/global/actions.js +21 -11
  508. package/lib/store/global/models/IGlobalState.js +1 -1
  509. package/lib/store/global/reducer.js +18 -2
  510. package/lib/store/permissions/permissionsSlice.js +6 -1
  511. package/lib/store/points/actionTypes.js +2 -2
  512. package/lib/store/points/actions.js +5 -1
  513. package/lib/store/points/models/IGroup.js +1 -1
  514. package/lib/store/points/models/IPoint.js +1 -1
  515. package/lib/store/points/models/IPointsState.js +1 -1
  516. package/lib/store/points/reducer.js +7 -1
  517. package/lib/store/rootActionTypes.js +1 -1
  518. package/lib/store/rootActions.js +3 -1
  519. package/lib/store/rootReducer.js +23 -4
  520. package/lib/store/rootStore.js +12 -4
  521. package/lib/store/samplings/action.js +1 -1
  522. package/lib/store/samplings/actionTypes.js +2 -1
  523. package/lib/store/samplings/actionsCreator.js +5 -2
  524. package/lib/store/samplings/models/Samplings.js +1 -1
  525. package/lib/store/samplings/reducer.js +9 -1
  526. package/lib/styles/StylesLayout.js +7 -1
  527. package/lib/styles/theme/theme.js +4 -2
  528. package/lib/test/mocks/browser.js +7 -3
  529. package/lib/test/test-utils.js +21 -11
  530. package/lib/ui-kit/Button/Button.js +23 -15
  531. package/lib/ui-kit/Button/Button.test.js +26 -6
  532. package/lib/ui-kit/Button/ButtonUtils.js +1 -1
  533. package/lib/ui-kit/Checkbox/Checkbox.js +21 -7
  534. package/lib/ui-kit/DropDown/DropDown.js +16 -5
  535. package/lib/ui-kit/DropDown/DropDown.test.js +12 -6
  536. package/lib/ui-kit/DropDown/DropDownItem.js +13 -5
  537. package/lib/ui-kit/DropDown/DropdownToggle.js +13 -2
  538. package/lib/ui-kit/IconAction/IconAction.js +9 -3
  539. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +52 -32
  540. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +28 -24
  541. package/lib/ui-kit/KandoList/KandoList.js +16 -5
  542. package/lib/ui-kit/KandoList/kandoListUtils.js +1 -1
  543. package/lib/ui-kit/KandoTable/KandoTable.js +36 -24
  544. package/lib/ui-kit/KandoTable/KandoTable.test.js +16 -1
  545. package/lib/ui-kit/KandoTable/kandoTableUtils.js +1 -1
  546. package/lib/ui-kit/Layout/Layout.js +8 -1
  547. package/lib/ui-kit/MobileInput/MobileInput.js +33 -18
  548. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +14 -8
  549. package/lib/ui-kit/ModalConfirmation/index.js +3 -1
  550. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -5
  551. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +11 -3
  552. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +11 -4
  553. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +14 -5
  554. package/lib/ui-kit/Tooltip/Tooltip.js +8 -3
  555. package/lib/ui-kit/index.js +15 -1
  556. package/lib/ui-kit/kandoStepper/KandoStepper.js +7 -2
  557. package/lib/utilities/ActionUtility.js +2 -1
  558. package/lib/utilities/Alert.js +10 -2
  559. package/lib/utilities/Analytics.js +12 -2
  560. package/lib/utilities/Array.js +6 -2
  561. package/lib/utilities/Enum.js +16 -12
  562. package/lib/utilities/ErrorBoundary.js +18 -3
  563. package/lib/utilities/File.js +24 -5
  564. package/lib/utilities/GetDir.js +8 -4
  565. package/lib/utilities/KandoDate.js +7 -1
  566. package/lib/utilities/KandoModal.js +22 -7
  567. package/lib/utilities/LocalStorage.js +13 -2
  568. package/lib/utilities/ThousandsToK.js +3 -1
  569. package/lib/utilities/TimeFormat.js +19 -6
  570. package/lib/utilities/Truncate.js +27 -7
  571. package/lib/utilities/edgesMath.js +25 -5
  572. package/lib/utilities/i18n.js +14 -1
  573. package/lib/utilities/kql.js +10 -3
  574. package/lib/utilities/map/icons.js +18 -1
  575. package/lib/utilities/scoreToColor.js +8 -1
  576. package/lib/utilities/time.js +9 -2
  577. package/lib/utilities/uploadToS3.js +9 -1
  578. package/lib/utilities/urls.js +14 -32
  579. package/package.json +1 -4
  580. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +0 -17
  581. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +0 -67
  582. package/lib/utilities/polylinedecorator.js +0 -383
@@ -1,109 +1,156 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- exports.WbeDashboardPage = void 0;
10
+ exports.WbeDashboardPage = exports.WBEIsraelId = void 0;
11
+
9
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
13
+
10
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
15
+
11
16
  var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
21
+
14
22
  var _reactRedux = require("react-redux");
23
+
15
24
  var _reactRouterDom = require("react-router-dom");
25
+
16
26
  var _Analytics = require("../../utilities/Analytics");
27
+
17
28
  var _SearchInput = require("./SearchInput");
29
+
18
30
  var _reactFontawesome = require("@fortawesome/react-fontawesome");
31
+
19
32
  var _GraphWrapper = require("./GraphWrapper");
33
+
20
34
  var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
35
+
21
36
  var _actions = require("../../store/context/actions");
37
+
22
38
  var _ThousandsToK = require("../../utilities/ThousandsToK");
39
+
23
40
  var _DrillDownIcon = require("@svgr/webpack?-svgo!./DrillDownIcon.svg");
41
+
24
42
  var _BaseLevel = require("@svgr/webpack?-svgo!./BaseLevel.svg");
43
+
25
44
  var _reactDataTableComponent = require("react-data-table-component");
45
+
26
46
  var _nvlStatusHelper = require("../CovidPage/components/nvlStatusHelper");
47
+
27
48
  var _Map = require("../../Widgets/Map/Map");
49
+
28
50
  var _KandoTable = require("ui-kit/KandoTable/KandoTable");
51
+
29
52
  var _Tabs = require("./Tabs");
53
+
30
54
  var _useKandoFetch2 = _interopRequireDefault(require("../../hooks/useKandoFetch"));
55
+
31
56
  var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
57
+
32
58
  var _Dropdown = _interopRequireDefault(require("react-bootstrap/cjs/Dropdown"));
59
+
33
60
  var _DropdownButton = _interopRequireDefault(require("react-bootstrap/cjs/DropdownButton"));
61
+
34
62
  var _axios = _interopRequireDefault(require("axios"));
63
+
35
64
  var _Truncate = _interopRequireDefault(require("../../utilities/Truncate"));
65
+
36
66
  var _ExpandableComponent = require("./ExpandableComponent");
67
+
37
68
  var _Spinner = require("../../components/Spinner/Spinner");
69
+
38
70
  var _WbeSummaryBar = require("./WbeSummaryBar");
71
+
39
72
  var _ErrorBoundary = _interopRequireDefault(require("../../utilities/ErrorBoundary"));
73
+
40
74
  var _theme = require("../../styles/theme/theme");
41
- var _useKandoFetch3 = _interopRequireDefault(require("hooks/useKandoFetch"));
42
- var _urls = require("utilities/urls");
75
+
43
76
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
77
+
44
78
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
79
+
45
80
  var TABLE_ROWS_PER_PAGE = 25;
46
81
  var MAPBOX_WBE_DASHBOARD_STYLE = 'ckzzkjsi7005f14o9im0mczs9';
82
+ var WBEIsraelId = 463;
83
+ exports.WBEIsraelId = WBEIsraelId;
84
+
47
85
  var WbeDashboardPage = function WbeDashboardPage() {
48
86
  var getWAId = function getWAId() {
49
87
  return query.get('water_authority_id');
50
88
  };
89
+
51
90
  var fetchUrl = function fetchUrl(firstParam) {
52
- return "/api_ui/wbe_dashboard/".concat(selectedPathogen, "/").concat(firstParam, "?water_authority_id=").concat(getWAId());
53
- };
54
- var pathogensUrl = function pathogensUrl() {
55
- return (0, _urls.urls)({
56
- waterAuthorityId: getWAId()
57
- }).wbeDashboard.pathogens.url;
91
+ return "/api_ui/wbe_dashboard/".concat(firstParam, "?water_authority_id=").concat(getWAId(), "&tag=").concat(getTag());
58
92
  };
93
+
59
94
  var DEFAULT_TABS = [_i18n.default.t('components.wbe_dashboard.cities'), _i18n.default.t('components.wbe_dashboard.monitored_areas')];
95
+
60
96
  var convertTabNameToParam = function convertTabNameToParam(tab_name) {
61
97
  if (tab_name === _i18n.default.t('components.wbe_dashboard.cities')) {
62
98
  return 'city';
63
99
  } else if (tab_name === _i18n.default.t('components.wbe_dashboard.monitored_areas')) {
64
100
  return 'monitored';
65
101
  }
102
+
66
103
  return 'city';
67
104
  };
105
+
68
106
  var query = (0, _useQueryURL.default)();
69
- var getPathogen = function getPathogen() {
70
- return query.get('pathogen') || 'covid';
107
+
108
+ var getTag = function getTag() {
109
+ return query.get('tag');
71
110
  };
111
+
112
+ var defaultTag = getTag() === null ? _i18n.default.t('components.wbe_dashboard.all') : getTag();
113
+
72
114
  var _useState = (0, _react.useState)([]),
73
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
74
- currentData = _useState2[0],
75
- setCurrentData = _useState2[1];
76
- var _useState3 = (0, _react.useState)([]),
77
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
78
- mapAreas = _useState4[0],
79
- setMapAreas = _useState4[1];
115
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
116
+ currentData = _useState2[0],
117
+ setCurrentData = _useState2[1];
118
+
119
+ var _useState3 = (0, _react.useState)(defaultTag),
120
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
121
+ selectedTag = _useState4[0],
122
+ setSelectedTag = _useState4[1];
123
+
80
124
  var _useState5 = (0, _react.useState)([]),
81
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
82
- mapZoom = _useState6[0],
83
- setMapZoom = _useState6[1];
125
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
126
+ mapAreas = _useState6[0],
127
+ setMapAreas = _useState6[1];
128
+
84
129
  var _useState7 = (0, _react.useState)([]),
85
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
86
- rows = _useState8[0],
87
- setRows = _useState8[1];
88
- var _useState9 = (0, _react.useState)(DEFAULT_TABS),
89
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
90
- tabs = _useState10[0],
91
- setTabs = _useState10[1];
92
- var _useState11 = (0, _react.useState)(tabs[0]),
93
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
94
- selectedTab = _useState12[0],
95
- setSelectedTab = _useState12[1];
96
- var _useState13 = (0, _react.useState)(getPathogen()),
97
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
98
- selectedPathogen = _useState14[0],
99
- setSelectedPathogen = _useState14[1];
130
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
131
+ mapZoom = _useState8[0],
132
+ setMapZoom = _useState8[1];
133
+
134
+ var _useState9 = (0, _react.useState)([]),
135
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
136
+ rows = _useState10[0],
137
+ setRows = _useState10[1];
138
+
139
+ var _useState11 = (0, _react.useState)(DEFAULT_TABS),
140
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
141
+ tabs = _useState12[0],
142
+ setTabs = _useState12[1];
143
+
144
+ var _useState13 = (0, _react.useState)(tabs[0]),
145
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
146
+ selectedTab = _useState14[0],
147
+ setSelectedTab = _useState14[1];
148
+
100
149
  var _useKandoFetch = (0, _useKandoFetch2.default)(fetchUrl(convertTabNameToParam(selectedTab))),
101
- data = _useKandoFetch.data,
102
- isFetching = _useKandoFetch.isFetching,
103
- setFetching = _useKandoFetch.setFetching;
104
- var _UseKandoFetch = (0, _useKandoFetch3.default)(pathogensUrl()),
105
- pathogens = _UseKandoFetch.data,
106
- isFetchingPathogens = _UseKandoFetch.isFetching;
150
+ data = _useKandoFetch.data,
151
+ isFetching = _useKandoFetch.isFetching,
152
+ setFetching = _useKandoFetch.setFetching;
153
+
107
154
  var dispatch = (0, _reactRedux.useDispatch)();
108
155
  var navContext = (0, _reactRedux.useSelector)(function (state) {
109
156
  return state.nav_context_data.navContext;
@@ -112,8 +159,10 @@ var WbeDashboardPage = function WbeDashboardPage() {
112
159
  return state.global_data;
113
160
  });
114
161
  var isRtl = navContext.locale === 'he' ? true : false;
162
+
115
163
  var colorForRow = function colorForRow(row) {
116
164
  var quality;
165
+
117
166
  if (!row.sample_active) {
118
167
  quality = 'inactive-sampling';
119
168
  } else if (isInfected(row.nvl)) {
@@ -121,8 +170,10 @@ var WbeDashboardPage = function WbeDashboardPage() {
121
170
  } else {
122
171
  quality = 'clean';
123
172
  }
173
+
124
174
  return "row_name--".concat(quality);
125
175
  };
176
+
126
177
  var columns = _react.default.useMemo(function () {
127
178
  return [{
128
179
  name: _i18n.default.t('components.wbe_dashboard.name'),
@@ -156,7 +207,11 @@ var WbeDashboardPage = function WbeDashboardPage() {
156
207
  sortable: true,
157
208
  cell: function cell(row) {
158
209
  return /*#__PURE__*/_react.default.createElement("div", {
159
- "data-tag": "allowRowEvents"
210
+ "data-tag": "allowRowEvents",
211
+ style: {
212
+ textAlign: 'center',
213
+ width: '100%'
214
+ }
160
215
  }, row.nvl);
161
216
  }
162
217
  }, {
@@ -199,12 +254,22 @@ var WbeDashboardPage = function WbeDashboardPage() {
199
254
  return /*#__PURE__*/_react.default.createElement("div", {
200
255
  "data-tag": "allowRowEvents"
201
256
  }, /*#__PURE__*/_react.default.createElement(_GraphWrapper.GraphWrapper, {
202
- key: row.id,
203
257
  row: row,
204
- water_authority_id: getWAId(),
205
- pathogen: selectedPathogen
258
+ water_authority_id: getWAId()
206
259
  }));
207
260
  }
261
+ }, {
262
+ name: _i18n.default.t('components.wbe_dashboard.tag'),
263
+ selector: function selector(row) {
264
+ return row.tags;
265
+ },
266
+ sortable: true,
267
+ cell: function cell(row) {
268
+ return /*#__PURE__*/_react.default.createElement("div", {
269
+ "data-tag": "allowRowEvents",
270
+ className: 'table-tags'
271
+ }, row.tags.join(', '));
272
+ }
208
273
  }, {
209
274
  name: _i18n.default.t('components.wbe_dashboard.population'),
210
275
  selector: function selector(row) {
@@ -217,15 +282,18 @@ var WbeDashboardPage = function WbeDashboardPage() {
217
282
  }, (0, _ThousandsToK.kFormatter)(parseInt(row.population)));
218
283
  }
219
284
  }];
220
- }, [isRtl, selectedPathogen]);
285
+ }, [isRtl]);
286
+
221
287
  var initializeMapAreas = function initializeMapAreas(areas) {
222
288
  var mappedWithColor = areas.map(function (a) {
223
289
  a.wbe_dashboard_name = a.name;
224
290
  a.showColorOnlyInBorders = true;
291
+
225
292
  if (!a.sample_active) {
226
293
  a.color = _theme.theme.colorScheme.natural.n60;
227
294
  return a;
228
295
  }
296
+
229
297
  if (isInfected(a.nvl)) {
230
298
  a.color = _theme.theme.colorScheme.data.R100;
231
299
  return a;
@@ -236,51 +304,63 @@ var WbeDashboardPage = function WbeDashboardPage() {
236
304
  });
237
305
  setMapAreas(mappedWithColor);
238
306
  };
307
+
239
308
  var zoomToArea = function zoomToArea(area) {
240
309
  area.shape_data !== undefined && setMapZoom(area.shape_data);
241
310
  };
311
+
242
312
  var zoomAllAreas = function zoomAllAreas(data) {
243
313
  var shapeData = data.map(function (datum) {
244
314
  return datum.shape_data;
245
315
  });
246
316
  setMapZoom(shapeData);
247
317
  };
318
+
248
319
  var isInfected = function isInfected(nvl) {
249
320
  if ((0, _nvlStatusHelper.levelNVL)(nvl) === 'clean') {
250
321
  return false;
251
322
  } else if ((0, _nvlStatusHelper.levelNVL)(nvl) === 'low' || (0, _nvlStatusHelper.levelNVL)(nvl) === 'medium' || (0, _nvlStatusHelper.levelNVL)(nvl) === 'high') {
252
323
  return true;
253
324
  }
325
+
254
326
  return;
255
327
  };
328
+
256
329
  var history = (0, _reactRouterDom.useHistory)();
257
330
  var waterAuthorityId = (0, _reactRedux.useSelector)(function (state) {
258
331
  return state.global_data.waterAuthorityId;
259
332
  });
260
333
  var dir = navContext.locale === 'he' ? _reactDataTableComponent.Direction.RTL : _reactDataTableComponent.Direction.LTR;
334
+ var tags = [_i18n.default.t('components.wbe_dashboard.all') + ' ', 'דסק ערבי', 'דסק חרדי', 'דסק כללי'];
335
+
261
336
  var filterResultsAndSetRows = function filterResultsAndSetRows(text) {
262
337
  var results = currentData.filter(function (el) {
263
338
  return el.name.toLowerCase().includes(text.toLowerCase());
264
339
  });
265
340
  setRows(results);
266
341
  };
342
+
267
343
  var handleOnRowExpand = function handleOnRowExpand(expanded, row) {
268
344
  expanded && zoomToArea(row);
269
345
  !expanded && zoomAllAreas(data);
270
346
  };
347
+
271
348
  var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
272
349
  return state.global_data.waterAuthorityName;
273
350
  });
274
- var handleSelectPathogenClick = function handleSelectPathogenClick(pathogen) {
275
- (0, _Analytics.analyticsTrack)('WBE Status Report - Pathogen change clicked', {
276
- pathogen: pathogen,
351
+
352
+ var handleSelectTagClick = function handleSelectTagClick(tag) {
353
+ (0, _Analytics.analyticsTrack)('WBE Status Report - Tag change clicked', {
354
+ tag: tag,
277
355
  utility_name: waterAuthorityName
278
356
  });
279
- setSelectedPathogen(pathogen);
280
- history.push("/wbe_dashboard/index?locale=".concat(navContext.locale, "&water_authority_id=").concat(waterAuthorityId, "&pathogen=").concat(pathogen));
357
+ setSelectedTag(tag);
358
+ history.push("/wbe_dashboard/index?locale=".concat(navContext.locale, "&water_authority_id=").concat(waterAuthorityId, "&tag=").concat(tag));
281
359
  };
360
+
282
361
  var fetchForTabSelection = function fetchForTabSelection(tab) {
283
362
  setFetching(true);
363
+
284
364
  _axios.default.get(fetchUrl(tab)).then(function (response) {
285
365
  var responseData = response.data.data;
286
366
  setFetching(false);
@@ -291,15 +371,18 @@ var WbeDashboardPage = function WbeDashboardPage() {
291
371
  zoomAllAreas(responseData);
292
372
  });
293
373
  };
374
+
294
375
  var handleTabSelectionClick = function handleTabSelectionClick(tab) {
295
376
  if (!isFetching) {
296
377
  setSelectedTab(tab);
378
+
297
379
  if (tab !== _i18n.default.t('components.wbe_dashboard.custom')) {
298
380
  tab = tab === _i18n.default.t('components.wbe_dashboard.cities') ? 'city' : tab === _i18n.default.t('components.wbe_dashboard.monitored_areas') ? 'monitored' : '';
299
381
  fetchForTabSelection(tab);
300
382
  }
301
383
  }
302
384
  };
385
+
303
386
  var initializeDrilledArea = function initializeDrilledArea(response) {
304
387
  var data = response.data.data;
305
388
  setRows(data);
@@ -307,16 +390,20 @@ var WbeDashboardPage = function WbeDashboardPage() {
307
390
  initializeMapAreas(data);
308
391
  zoomAllAreas(data);
309
392
  };
393
+
310
394
  var handleAreaClick = function handleAreaClick(area) {
311
395
  zoomToArea(area);
396
+
312
397
  if (area.has_children) {
313
398
  setTabs([].concat((0, _toConsumableArray2.default)(tabs), [_i18n.default.t('components.wbe_dashboard.custom')]));
314
399
  setSelectedTab(_i18n.default.t('components.wbe_dashboard.custom'));
400
+
315
401
  _axios.default.get(fetchUrl(area.id)).then(function (response) {
316
402
  initializeDrilledArea(response);
317
403
  });
318
404
  }
319
405
  };
406
+
320
407
  var initializeComponent = function initializeComponent() {
321
408
  setCurrentData(data);
322
409
  setRows(data);
@@ -329,32 +416,28 @@ var WbeDashboardPage = function WbeDashboardPage() {
329
416
  initializeMapAreas(data);
330
417
  zoomAllAreas(data);
331
418
  };
419
+
332
420
  (0, _react.useEffect)(function () {
333
421
  if (!isFetching && data !== null) {
334
422
  initializeComponent();
335
423
  }
336
- }, [isFetching, selectedPathogen, data]);
337
- var pathogenTitle = !isFetchingPathogens && (pathogens === null || pathogens === void 0 ? void 0 : pathogens.find(function (item) {
338
- return item.toLowerCase() === selectedPathogen.toLowerCase();
339
- })) || '';
340
- var dropDownTitle = pathogenTitle || _i18n.default.t('components.wbe_dashboard.pathogen_not_found');
341
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Content, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h1", null, "".concat(_i18n.default.t('components.wbe_dashboard.table_name'), " (").concat(pathogenTitle || getPathogen(), ")")), !isFetchingPathogens && pathogens.length === 0 && /*#__PURE__*/_react.default.createElement("h3", null, _i18n.default.t('components.wbe_dashboard.pathogen_not_found')), /*#__PURE__*/_react.default.createElement(ActionsContainer, null, !isFetchingPathogens && pathogens.length > 1 && /*#__PURE__*/_react.default.createElement(_DropdownButton.default, {
424
+ }, [isFetching, selectedTag, data]);
425
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Content, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h1", null, _i18n.default.t('components.wbe_dashboard.table_name')), /*#__PURE__*/_react.default.createElement(ActionsContainer, null, waterAuthorityId === WBEIsraelId && /*#__PURE__*/_react.default.createElement(_DropdownButton.default, {
342
426
  id: "dropdown-basic-button",
343
427
  className: 'button button--sort',
344
- title: dropDownTitle + ' ',
428
+ title: selectedTag + ' ',
345
429
  variant: "secondary"
346
- }, pathogens.map(function (pathogen) {
430
+ }, tags.map(function (tag) {
347
431
  return /*#__PURE__*/_react.default.createElement(_Dropdown.default.Item, {
348
432
  href: "#",
349
433
  onClick: function onClick() {
350
- return handleSelectPathogenClick(pathogen);
434
+ return handleSelectTagClick(tag);
351
435
  },
352
436
  style: {
353
437
  textAlign: navContext.locale === 'he' ? 'right' : 'left'
354
438
  }
355
- }, pathogen);
439
+ }, tag);
356
440
  })))), /*#__PURE__*/_react.default.createElement(FirstSection, null, /*#__PURE__*/_react.default.createElement(_WbeSummaryBar.WbeSummaryBar, {
357
- pathogen: selectedPathogen,
358
441
  waterAuthorityId: waterAuthorityId,
359
442
  isRtl: isRtl
360
443
  })), /*#__PURE__*/_react.default.createElement(SecondSection, null, /*#__PURE__*/_react.default.createElement(_SearchInput.SearchInput, {
@@ -374,9 +457,11 @@ var WbeDashboardPage = function WbeDashboardPage() {
374
457
  areaToCenterBy: mapZoom,
375
458
  edges: [],
376
459
  points: [],
460
+ events: [],
377
461
  global_data: globalData,
378
462
  mapBoxStyle: MAPBOX_WBE_DASHBOARD_STYLE
379
463
  }))), !isFetching && rows !== null && /*#__PURE__*/_react.default.createElement(_KandoTable.KandoTable, {
464
+ isRtl: isRtl,
380
465
  onRowExpandToggled: handleOnRowExpand,
381
466
  data: rows,
382
467
  columns: columns,
@@ -384,37 +469,41 @@ var WbeDashboardPage = function WbeDashboardPage() {
384
469
  expandableRows: true,
385
470
  paginationPerPage: TABLE_ROWS_PER_PAGE,
386
471
  rowComponent: _ExpandableComponent.ExpandedComponent,
387
- expandableRowsComponentProps: {
388
- pathogen: selectedPathogen
389
- },
390
472
  defaultSortFieldId: 3
391
473
  })))));
392
474
  };
475
+
393
476
  exports.WbeDashboardPage = WbeDashboardPage;
477
+
394
478
  var RowName = _styledComponents.default.div.withConfig({
395
479
  displayName: "WbeDashboardPage__RowName",
396
480
  componentId: "sc-14f81cv-0"
397
481
  })(["width:100%;.row_name{.expandable-icon{width:30px;height:30px;transition:.2s ease-in;border-radius:4px;display:flex;align-items:center;padding:0 4px;span{margin-inline-start:2px;}}&--clean{color:#27a63a;.expandable-icon{background:#27a63a;}}&--infected{color:#e10036;.expandable-icon{background:#e10036;}}&--inactive-sampling{color:", ";.expandable-icon{background:", ";}}.name{position:absolute;font-weight:100;", " top:16px;width:7.5em;margin-inline-start:3px;}}}"], _theme.theme.colorScheme.natural.n60, _theme.theme.colorScheme.natural.n60, function (p) {
398
482
  return p.isRtl ? 'right: 51px;' : 'left: 51px;';
399
483
  });
484
+
400
485
  var ActionsContainer = _styledComponents.default.div.withConfig({
401
486
  displayName: "WbeDashboardPage__ActionsContainer",
402
487
  componentId: "sc-14f81cv-1"
403
488
  })(["display:flex;justify-content:start;align-items:center;"]);
489
+
404
490
  var FirstSection = _styledComponents.default.div.withConfig({
405
491
  displayName: "WbeDashboardPage__FirstSection",
406
492
  componentId: "sc-14f81cv-2"
407
493
  })(["margin:85px 0 20px 0;"]);
494
+
408
495
  var SecondSection = _styledComponents.default.div.withConfig({
409
496
  displayName: "WbeDashboardPage__SecondSection",
410
497
  componentId: "sc-14f81cv-3"
411
498
  })(["padding:20px;background:#fcfcfc;border:1px solid #e7e7e7;border-radius:6px;"]);
499
+
412
500
  var MapTableContainer = _styledComponents.default.div.withConfig({
413
501
  displayName: "WbeDashboardPage__MapTableContainer",
414
502
  componentId: "sc-14f81cv-4"
415
- })(["display:flex;justify-content:start;flex-direction:row-reverse;.map-container{width:unset !important;.event-timerange{display:none;}#map{height:69vh;width:30vw;}}[data-testid='kando-table']{width:100%;}[data-column-id='1']{justify-content:flex-start !important;overflow:visible;position:relative;cursor:pointer;&:hover{.name{color:white !important;}.expandable-icon{width:calc(120px + 1vw);transition:0.2s cubic-bezier(0.65,0.05,0.36,1);}}}.spinner-container{width:100%;display:flex;justify-content:center;}"]);
503
+ })(["display:flex;justify-content:start;flex-direction:row-reverse;.map-container{width:unset !important;.event-timerange{display:none;}#map{height:69vh;width:30vw;}}[data-testid='kando-table']{width:100%;}[data-column-id='1']{justify-content:flex-start !important;overflow:visible;position:relative;cursor:pointer;&:hover{.name{color:white !important;}.expandable-icon{width:calc(120px + 1vw);transition:0.2s cubic-bezier(0.65,0.05,0.36,1);}}}.table-tags{text-align:center;}.spinner-container{width:100%;display:flex;justify-content:center;}"]);
504
+
416
505
  var Content = _styledComponents.default.div.withConfig({
417
506
  displayName: "WbeDashboardPage__Content",
418
507
  componentId: "sc-14f81cv-5"
419
508
  })(["@media (max-width:576px){padding:20px;}h1{font-weight:bold;}padding:60px 60px;"]);
420
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdFJvdXRlckRvbSIsIl9BbmFseXRpY3MiLCJfU2VhcmNoSW5wdXQiLCJfcmVhY3RGb250YXdlc29tZSIsIl9HcmFwaFdyYXBwZXIiLCJfZnJlZVNvbGlkU3ZnSWNvbnMiLCJfYWN0aW9ucyIsIl9UaG91c2FuZHNUb0siLCJfRHJpbGxEb3duSWNvbiIsIl9CYXNlTGV2ZWwiLCJfcmVhY3REYXRhVGFibGVDb21wb25lbnQiLCJfbnZsU3RhdHVzSGVscGVyIiwiX01hcCIsIl9LYW5kb1RhYmxlIiwiX1RhYnMiLCJfdXNlS2FuZG9GZXRjaDIiLCJfdXNlUXVlcnlVUkwiLCJfRHJvcGRvd24iLCJfRHJvcGRvd25CdXR0b24iLCJfYXhpb3MiLCJfVHJ1bmNhdGUiLCJfRXhwYW5kYWJsZUNvbXBvbmVudCIsIl9TcGlubmVyIiwiX1diZVN1bW1hcnlCYXIiLCJfRXJyb3JCb3VuZGFyeSIsIl90aGVtZSIsIl91c2VLYW5kb0ZldGNoMyIsIl91cmxzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJUQUJMRV9ST1dTX1BFUl9QQUdFIiwiTUFQQk9YX1dCRV9EQVNIQk9BUkRfU1RZTEUiLCJXYmVEYXNoYm9hcmRQYWdlIiwiZ2V0V0FJZCIsInF1ZXJ5IiwiZmV0Y2hVcmwiLCJmaXJzdFBhcmFtIiwiY29uY2F0Iiwic2VsZWN0ZWRQYXRob2dlbiIsInBhdGhvZ2Vuc1VybCIsInVybHMiLCJ3YXRlckF1dGhvcml0eUlkIiwid2JlRGFzaGJvYXJkIiwicGF0aG9nZW5zIiwidXJsIiwiREVGQVVMVF9UQUJTIiwiaTE4biIsInQiLCJjb252ZXJ0VGFiTmFtZVRvUGFyYW0iLCJ0YWJfbmFtZSIsInVzZVF1ZXJ5VVJMIiwiZ2V0UGF0aG9nZW4iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJjdXJyZW50RGF0YSIsInNldEN1cnJlbnREYXRhIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJtYXBBcmVhcyIsInNldE1hcEFyZWFzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJtYXBab29tIiwic2V0TWFwWm9vbSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4Iiwicm93cyIsInNldFJvd3MiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJ0YWJzIiwic2V0VGFicyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJzZWxlY3RlZFRhYiIsInNldFNlbGVjdGVkVGFiIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNldFNlbGVjdGVkUGF0aG9nZW4iLCJfdXNlS2FuZG9GZXRjaCIsInVzZUthbmRvRmV0Y2giLCJkYXRhIiwiaXNGZXRjaGluZyIsInNldEZldGNoaW5nIiwiX1VzZUthbmRvRmV0Y2giLCJVc2VLYW5kb0ZldGNoIiwiaXNGZXRjaGluZ1BhdGhvZ2VucyIsImRpc3BhdGNoIiwidXNlRGlzcGF0Y2giLCJuYXZDb250ZXh0IiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIm5hdl9jb250ZXh0X2RhdGEiLCJnbG9iYWxEYXRhIiwiZ2xvYmFsX2RhdGEiLCJpc1J0bCIsImxvY2FsZSIsImNvbG9yRm9yUm93Iiwicm93IiwicXVhbGl0eSIsInNhbXBsZV9hY3RpdmUiLCJpc0luZmVjdGVkIiwibnZsIiwiY29sdW1ucyIsIlJlYWN0IiwidXNlTWVtbyIsIm5hbWUiLCJzZWxlY3RvciIsInNvcnRhYmxlIiwiY2VsbCIsImNyZWF0ZUVsZW1lbnQiLCJSb3dOYW1lIiwiY2xhc3NOYW1lIiwib25DbGljayIsImhhbmRsZUFyZWFDbGljayIsImhhc19jaGlsZHJlbiIsIlJlYWN0Q29tcG9uZW50IiwiY2hhcmFjdGVycyIsImluaGVyaXRUZXh0QWxpZ24iLCJudmxfY2hhbmdlIiwic3R5bGUiLCJkaXJlY3Rpb24iLCJjb2xvciIsIm1hcmdpbiIsIkZvbnRBd2Vzb21lSWNvbiIsImljb24iLCJmYUNoZXZyb25VcCIsImZhQ2hldnJvbkRvd24iLCJsYXN0X3VwZGF0ZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiR3JhcGhXcmFwcGVyIiwiaWQiLCJ3YXRlcl9hdXRob3JpdHlfaWQiLCJwYXRob2dlbiIsInBvcHVsYXRpb24iLCJrRm9ybWF0dGVyIiwicGFyc2VJbnQiLCJpbml0aWFsaXplTWFwQXJlYXMiLCJhcmVhcyIsIm1hcHBlZFdpdGhDb2xvciIsIm1hcCIsImEiLCJ3YmVfZGFzaGJvYXJkX25hbWUiLCJzaG93Q29sb3JPbmx5SW5Cb3JkZXJzIiwidGhlbWUiLCJjb2xvclNjaGVtZSIsIm5hdHVyYWwiLCJuNjAiLCJSMTAwIiwiRzEwMCIsInpvb21Ub0FyZWEiLCJhcmVhIiwic2hhcGVfZGF0YSIsInVuZGVmaW5lZCIsInpvb21BbGxBcmVhcyIsInNoYXBlRGF0YSIsImRhdHVtIiwibGV2ZWxOVkwiLCJoaXN0b3J5IiwidXNlSGlzdG9yeSIsImRpciIsIkRpcmVjdGlvbiIsIlJUTCIsIkxUUiIsImZpbHRlclJlc3VsdHNBbmRTZXRSb3dzIiwidGV4dCIsInJlc3VsdHMiLCJmaWx0ZXIiLCJlbCIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJoYW5kbGVPblJvd0V4cGFuZCIsImV4cGFuZGVkIiwid2F0ZXJBdXRob3JpdHlOYW1lIiwiaGFuZGxlU2VsZWN0UGF0aG9nZW5DbGljayIsImFuYWx5dGljc1RyYWNrIiwidXRpbGl0eV9uYW1lIiwicHVzaCIsImZldGNoRm9yVGFiU2VsZWN0aW9uIiwidGFiIiwiYXhpb3MiLCJ0aGVuIiwicmVzcG9uc2UiLCJyZXNwb25zZURhdGEiLCJoYW5kbGVUYWJTZWxlY3Rpb25DbGljayIsImluaXRpYWxpemVEcmlsbGVkQXJlYSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJpbml0aWFsaXplQ29tcG9uZW50IiwidXBkYXRlTmF2Q29udGV4dCIsInVzZUVmZmVjdCIsInBhdGhvZ2VuVGl0bGUiLCJmaW5kIiwiaXRlbSIsImRyb3BEb3duVGl0bGUiLCJGcmFnbWVudCIsIkNvbnRlbnQiLCJsZW5ndGgiLCJBY3Rpb25zQ29udGFpbmVyIiwidGl0bGUiLCJ2YXJpYW50IiwiSXRlbSIsImhyZWYiLCJ0ZXh0QWxpZ24iLCJGaXJzdFNlY3Rpb24iLCJXYmVTdW1tYXJ5QmFyIiwiU2Vjb25kU2VjdGlvbiIsIlNlYXJjaElucHV0Iiwib25DaGFuZ2VCZWhhdmlvciIsIlRhYnMiLCJoYW5kbGVPbkNsaWNrIiwiTWFwVGFibGVDb250YWluZXIiLCJTcGlubmVyIiwiTWFwIiwiYXJlYVRvQ2VudGVyQnkiLCJlZGdlcyIsInBvaW50cyIsIm1hcEJveFN0eWxlIiwiS2FuZG9UYWJsZSIsIm9uUm93RXhwYW5kVG9nZ2xlZCIsImV4cGFuZGFibGVSb3dzIiwicGFnaW5hdGlvblBlclBhZ2UiLCJyb3dDb21wb25lbnQiLCJFeHBhbmRlZENvbXBvbmVudCIsImV4cGFuZGFibGVSb3dzQ29tcG9uZW50UHJvcHMiLCJkZWZhdWx0U29ydEZpZWxkSWQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhZ2VzL1diZURhc2hib2FyZC9XYmVEYXNoYm9hcmRQYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBhbmFseXRpY3NUcmFjayB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICcuL1NlYXJjaElucHV0JztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBHcmFwaFdyYXBwZXIgfSBmcm9tICcuL0dyYXBoV3JhcHBlcic7XG5pbXBvcnQgeyBmYUNoZXZyb25Eb3duLCBmYUNoZXZyb25VcCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnLi4vLi4vc3RvcmUvcm9vdFJlZHVjZXInO1xuaW1wb3J0IHsgdXBkYXRlTmF2Q29udGV4dCB9IGZyb20gJy4uLy4uL3N0b3JlL2NvbnRleHQvYWN0aW9ucyc7XG5pbXBvcnQgeyBrRm9ybWF0dGVyIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1Rob3VzYW5kc1RvSyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBEcmlsbERvd25JY29uIH0gZnJvbSAnLi9EcmlsbERvd25JY29uLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBCYXNlTGV2ZWwgfSBmcm9tICcuL0Jhc2VMZXZlbC5zdmcnO1xuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAncmVhY3QtZGF0YS10YWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgbGV2ZWxOVkwgfSBmcm9tICcuLi9Db3ZpZFBhZ2UvY29tcG9uZW50cy9udmxTdGF0dXNIZWxwZXInO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnLi4vLi4vV2lkZ2V0cy9NYXAvTWFwJztcbmltcG9ydCB7IEthbmRvVGFibGUgfSBmcm9tICdzcmMvdWkta2l0L0thbmRvVGFibGUvS2FuZG9UYWJsZSc7XG5pbXBvcnQgeyBUYWJzIH0gZnJvbSAnLi9UYWJzJztcbmltcG9ydCB1c2VLYW5kb0ZldGNoIGZyb20gJy4uLy4uL2hvb2tzL3VzZUthbmRvRmV0Y2gnO1xuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJy4uLy4uL2hvb2tzL3VzZVF1ZXJ5VVJMJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IERyb3Bkb3duIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9janMvRHJvcGRvd24nO1xuaW1wb3J0IERyb3Bkb3duQnV0dG9uIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9janMvRHJvcGRvd25CdXR0b24nO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBUcnVuY2F0ZSBmcm9tICcuLi8uLi91dGlsaXRpZXMvVHJ1bmNhdGUnO1xuaW1wb3J0IHsgRXhwYW5kZWRDb21wb25lbnQgfSBmcm9tICcuL0V4cGFuZGFibGVDb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IFdiZVN1bW1hcnlCYXIgfSBmcm9tICcuL1diZVN1bW1hcnlCYXInO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IFVzZUthbmRvRmV0Y2ggZnJvbSAnc3JjL2hvb2tzL3VzZUthbmRvRmV0Y2gnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJ3NyYy91dGlsaXRpZXMvdXJscyc7XG5jb25zdCBUQUJMRV9ST1dTX1BFUl9QQUdFID0gMjU7XG5jb25zdCBNQVBCT1hfV0JFX0RBU0hCT0FSRF9TVFlMRSA9ICdja3p6a2pzaTcwMDVmMTRvOWltMG1jenM5JztcblxuZXhwb3J0IGNvbnN0IFdiZURhc2hib2FyZFBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IGdldFdBSWQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgnd2F0ZXJfYXV0aG9yaXR5X2lkJyk7XG4gIH07XG4gIGNvbnN0IGZldGNoVXJsID0gKGZpcnN0UGFyYW0pID0+IHtcbiAgICByZXR1cm4gYC9hcGlfdWkvd2JlX2Rhc2hib2FyZC8ke3NlbGVjdGVkUGF0aG9nZW59LyR7Zmlyc3RQYXJhbX0/d2F0ZXJfYXV0aG9yaXR5X2lkPSR7Z2V0V0FJZCgpfWA7XG4gIH07XG4gIGNvbnN0IHBhdGhvZ2Vuc1VybCA9ICgpID0+XG4gICAgdXJscyh7IHdhdGVyQXV0aG9yaXR5SWQ6IGdldFdBSWQoKSB9KS53YmVEYXNoYm9hcmQucGF0aG9nZW5zLnVybDtcbiAgY29uc3QgREVGQVVMVF9UQUJTID0gW1xuICAgIGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLmNpdGllcycpLFxuICAgIGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLm1vbml0b3JlZF9hcmVhcycpLFxuICBdO1xuICBjb25zdCBjb252ZXJ0VGFiTmFtZVRvUGFyYW0gPSAodGFiX25hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmICh0YWJfbmFtZSA9PT0gaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQuY2l0aWVzJykpIHtcbiAgICAgIHJldHVybiAnY2l0eSc7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRhYl9uYW1lID09PSBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5tb25pdG9yZWRfYXJlYXMnKVxuICAgICkge1xuICAgICAgcmV0dXJuICdtb25pdG9yZWQnO1xuICAgIH1cblxuICAgIHJldHVybiAnY2l0eSc7XG4gIH07XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgZ2V0UGF0aG9nZW4gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmdldCgncGF0aG9nZW4nKSB8fCAnY292aWQnO1xuICB9O1xuXG4gIGNvbnN0IFtjdXJyZW50RGF0YSwgc2V0Q3VycmVudERhdGFdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbbWFwQXJlYXMsIHNldE1hcEFyZWFzXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFttYXBab29tLCBzZXRNYXBab29tXSA9IHVzZVN0YXRlPGFueVtdPihbXSk7XG4gIGNvbnN0IFtyb3dzLCBzZXRSb3dzXSA9IHVzZVN0YXRlPGFueT4oW10pO1xuICBjb25zdCBbdGFicywgc2V0VGFic10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oREVGQVVMVF9UQUJTKTtcbiAgY29uc3QgW3NlbGVjdGVkVGFiLCBzZXRTZWxlY3RlZFRhYl0gPSB1c2VTdGF0ZTxzdHJpbmc+KHRhYnNbMF0pO1xuICBjb25zdCBbc2VsZWN0ZWRQYXRob2dlbiwgc2V0U2VsZWN0ZWRQYXRob2dlbl0gPSB1c2VTdGF0ZTxzdHJpbmc+KFxuICAgIGdldFBhdGhvZ2VuKCksXG4gICk7XG4gIGNvbnN0IHsgZGF0YSwgaXNGZXRjaGluZywgc2V0RmV0Y2hpbmcgfSA9IHVzZUthbmRvRmV0Y2goXG4gICAgZmV0Y2hVcmwoY29udmVydFRhYk5hbWVUb1BhcmFtKHNlbGVjdGVkVGFiKSksXG4gICk7XG4gIGNvbnN0IHsgZGF0YTogcGF0aG9nZW5zLCBpc0ZldGNoaW5nOiBpc0ZldGNoaW5nUGF0aG9nZW5zIH0gPSBVc2VLYW5kb0ZldGNoKFxuICAgIHBhdGhvZ2Vuc1VybCgpLFxuICApO1xuXG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgY29uc3QgbmF2Q29udGV4dCA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLm5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dCxcbiAgKTtcbiAgY29uc3QgZ2xvYmFsRGF0YSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLmdsb2JhbF9kYXRhLFxuICApO1xuICBjb25zdCBpc1J0bDogYm9vbGVhbiA9IG5hdkNvbnRleHQubG9jYWxlID09PSAnaGUnID8gdHJ1ZSA6IGZhbHNlO1xuICBjb25zdCBjb2xvckZvclJvdyA9IChyb3cpID0+IHtcbiAgICBsZXQgcXVhbGl0eTtcbiAgICBpZiAoIXJvdy5zYW1wbGVfYWN0aXZlKSB7XG4gICAgICBxdWFsaXR5ID0gJ2luYWN0aXZlLXNhbXBsaW5nJztcbiAgICB9IGVsc2UgaWYgKGlzSW5mZWN0ZWQocm93Lm52bCkpIHtcbiAgICAgIHF1YWxpdHkgPSAnaW5mZWN0ZWQnO1xuICAgIH0gZWxzZSB7XG4gICAgICBxdWFsaXR5ID0gJ2NsZWFuJztcbiAgICB9XG5cbiAgICByZXR1cm4gYHJvd19uYW1lLS0ke3F1YWxpdHl9YDtcbiAgfTtcbiAgY29uc3QgY29sdW1uczogYW55ID0gUmVhY3QudXNlTWVtbyhcbiAgICAoKSA9PiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLm5hbWUnKSxcbiAgICAgICAgc2VsZWN0b3I6IChyb3cpID0+IHJvdy5uYW1lLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbDogKHJvdzogeyBuYW1lOiBzdHJpbmc7IG52bDogbnVtYmVyOyBoYXNfY2hpbGRyZW46IGJvb2xlYW4gfSkgPT4gKFxuICAgICAgICAgIDxSb3dOYW1lIGlzUnRsPXtpc1J0bH0+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGRhdGEtdGFnPVwiYWxsb3dSb3dFdmVudHNcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Byb3dfbmFtZSAke2NvbG9yRm9yUm93KHJvdyl9YH1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUFyZWFDbGljayhyb3cpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2V4cGFuZGFibGUtaWNvbid9PlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAge3Jvdy5oYXNfY2hpbGRyZW4gJiYgPERyaWxsRG93bkljb24gLz59XG4gICAgICAgICAgICAgICAgICB7IXJvdy5oYXNfY2hpbGRyZW4gJiYgPEJhc2VMZXZlbCAvPn1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eyduYW1lJ30+XG4gICAgICAgICAgICAgICAgPFRydW5jYXRlIGNoYXJhY3RlcnM9ezN9IGluaGVyaXRUZXh0QWxpZ249e3RydWV9PlxuICAgICAgICAgICAgICAgICAge3Jvdy5uYW1lfVxuICAgICAgICAgICAgICAgIDwvVHJ1bmNhdGU+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvUm93TmFtZT5cbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLm52bF9zY29yZScpLFxuICAgICAgICBzZWxlY3RvcjogKHJvdykgPT4gcm93Lm52bCxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIGNlbGw6IChyb3c6IHsgbnZsOiBudW1iZXIgfSkgPT4gKFxuICAgICAgICAgIDxkaXYgZGF0YS10YWc9XCJhbGxvd1Jvd0V2ZW50c1wiPntyb3cubnZsfTwvZGl2PlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQucGVyY2VudGFnZV9mcm9tX2xhc3Rfc2FtcGxpbmcnKSxcbiAgICAgICAgc2VsZWN0b3I6IChyb3cpID0+IHJvdy5udmxfY2hhbmdlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbDogKHJvdzogeyBudmxfY2hhbmdlOiBudW1iZXIgfSkgPT4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGRhdGEtdGFnPVwiYWxsb3dSb3dFdmVudHNcIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICcjMDAwMDAwJywgbWFyZ2luOiAnMCA2cHgnIH19PlxuICAgICAgICAgICAgICB7cm93Lm52bF9jaGFuZ2V9JVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgICAgICBpY29uPXtyb3cubnZsX2NoYW5nZSA+IDAgPyBmYUNoZXZyb25VcCA6IGZhQ2hldnJvbkRvd259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5sYXN0X3NhbXBsZWQnKSxcbiAgICAgICAgc2VsZWN0b3I6ICdsYXN0X3NhbXBsZWQnLFxuICAgICAgICBzb3J0YWJsZTogKHJvdykgPT4gcm93Lmxhc3RfdXBkYXRlZCxcbiAgICAgICAgY2VsbDogKHJvdzogeyBsYXN0X3VwZGF0ZWQ6IHN0cmluZyB9KSA9PiAoXG4gICAgICAgICAgPGRpdiBkYXRhLXRhZz1cImFsbG93Um93RXZlbnRzXCI+XG4gICAgICAgICAgICB7cm93Lmxhc3RfdXBkYXRlZCA9PT0gbnVsbFxuICAgICAgICAgICAgICA/ICctJ1xuICAgICAgICAgICAgICA6IG5ldyBEYXRlKHJvdy5sYXN0X3VwZGF0ZWQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tR0InKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLnRyZW5kX2dyYXBoJyksXG4gICAgICAgIHNlbGVjdG9yOiAndHJlbmRfZ3JhcGgnLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbDogKHJvdzogeyBpZDogbnVtYmVyIH0pID0+IChcbiAgICAgICAgICA8ZGl2IGRhdGEtdGFnPVwiYWxsb3dSb3dFdmVudHNcIj5cbiAgICAgICAgICAgIDxHcmFwaFdyYXBwZXJcbiAgICAgICAgICAgICAga2V5PXtyb3cuaWR9XG4gICAgICAgICAgICAgIHJvdz17cm93fVxuICAgICAgICAgICAgICB3YXRlcl9hdXRob3JpdHlfaWQ9e2dldFdBSWQoKX1cbiAgICAgICAgICAgICAgcGF0aG9nZW49e3NlbGVjdGVkUGF0aG9nZW59XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQucG9wdWxhdGlvbicpLFxuICAgICAgICBzZWxlY3RvcjogKHJvdykgPT4gcm93LnBvcHVsYXRpb24sXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICBjZWxsOiAocm93OiB7IHBvcHVsYXRpb246IHN0cmluZyB9KSA9PiAoXG4gICAgICAgICAgPGRpdiBkYXRhLXRhZz1cImFsbG93Um93RXZlbnRzXCI+XG4gICAgICAgICAgICB7a0Zvcm1hdHRlcihwYXJzZUludChyb3cucG9wdWxhdGlvbikpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICBdLFxuICAgIFtpc1J0bCwgc2VsZWN0ZWRQYXRob2dlbl0sXG4gICk7XG5cbiAgY29uc3QgaW5pdGlhbGl6ZU1hcEFyZWFzID0gKGFyZWFzKSA9PiB7XG4gICAgY29uc3QgbWFwcGVkV2l0aENvbG9yID0gYXJlYXMubWFwKChhOiBhbnkpID0+IHtcbiAgICAgIGEud2JlX2Rhc2hib2FyZF9uYW1lID0gYS5uYW1lO1xuICAgICAgYS5zaG93Q29sb3JPbmx5SW5Cb3JkZXJzID0gdHJ1ZTtcblxuICAgICAgaWYgKCFhLnNhbXBsZV9hY3RpdmUpIHtcbiAgICAgICAgYS5jb2xvciA9IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjYwO1xuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzSW5mZWN0ZWQoYS5udmwpKSB7XG4gICAgICAgIGEuY29sb3IgPSB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlIxMDA7XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYS5jb2xvciA9IHRoZW1lLmNvbG9yU2NoZW1lLmRhdGEuRzEwMDtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBzZXRNYXBBcmVhcyhtYXBwZWRXaXRoQ29sb3IpO1xuICB9O1xuXG4gIGNvbnN0IHpvb21Ub0FyZWEgPSAoYXJlYSkgPT4ge1xuICAgIGFyZWEuc2hhcGVfZGF0YSAhPT0gdW5kZWZpbmVkICYmIHNldE1hcFpvb20oYXJlYS5zaGFwZV9kYXRhKTtcbiAgfTtcblxuICBjb25zdCB6b29tQWxsQXJlYXMgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHNoYXBlRGF0YSA9IGRhdGEubWFwKChkYXR1bSkgPT4ge1xuICAgICAgcmV0dXJuIGRhdHVtLnNoYXBlX2RhdGE7XG4gICAgfSk7XG5cbiAgICBzZXRNYXBab29tKHNoYXBlRGF0YSk7XG4gIH07XG5cbiAgY29uc3QgaXNJbmZlY3RlZCA9IChudmw6IG51bWJlcikgPT4ge1xuICAgIGlmIChsZXZlbE5WTChudmwpID09PSAnY2xlYW4nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxldmVsTlZMKG52bCkgPT09ICdsb3cnIHx8XG4gICAgICBsZXZlbE5WTChudmwpID09PSAnbWVkaXVtJyB8fFxuICAgICAgbGV2ZWxOVkwobnZsKSA9PT0gJ2hpZ2gnXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH07XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PlxuICAgICAgc3RhdGUuZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZCxcbiAgKTtcblxuICBjb25zdCBkaXI6IERpcmVjdGlvbiA9XG4gICAgbmF2Q29udGV4dC5sb2NhbGUgPT09ICdoZScgPyBEaXJlY3Rpb24uUlRMIDogRGlyZWN0aW9uLkxUUjtcblxuICBjb25zdCBmaWx0ZXJSZXN1bHRzQW5kU2V0Um93cyA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBsZXQgcmVzdWx0cyA9IGN1cnJlbnREYXRhLmZpbHRlcihmdW5jdGlvbiAoZWw6IGFueSkge1xuICAgICAgcmV0dXJuIGVsLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgc2V0Um93cyhyZXN1bHRzKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVPblJvd0V4cGFuZCA9IChleHBhbmRlZCwgcm93KSA9PiB7XG4gICAgZXhwYW5kZWQgJiYgem9vbVRvQXJlYShyb3cpO1xuICAgICFleHBhbmRlZCAmJiB6b29tQWxsQXJlYXMoZGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UGF0aG9nZW5DbGljayA9IChwYXRob2dlbikgPT4ge1xuICAgIGFuYWx5dGljc1RyYWNrKCdXQkUgU3RhdHVzIFJlcG9ydCAtIFBhdGhvZ2VuIGNoYW5nZSBjbGlja2VkJywge1xuICAgICAgcGF0aG9nZW46IHBhdGhvZ2VuLFxuICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gICAgc2V0U2VsZWN0ZWRQYXRob2dlbihwYXRob2dlbik7XG4gICAgaGlzdG9yeS5wdXNoKFxuICAgICAgYC93YmVfZGFzaGJvYXJkL2luZGV4P2xvY2FsZT0ke25hdkNvbnRleHQubG9jYWxlfSZ3YXRlcl9hdXRob3JpdHlfaWQ9JHt3YXRlckF1dGhvcml0eUlkfSZwYXRob2dlbj0ke3BhdGhvZ2VufWAsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmZXRjaEZvclRhYlNlbGVjdGlvbiA9ICh0YWIpID0+IHtcbiAgICBzZXRGZXRjaGluZyh0cnVlKTtcbiAgICBheGlvcy5nZXQoZmV0Y2hVcmwodGFiKSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGxldCByZXNwb25zZURhdGEgPSByZXNwb25zZS5kYXRhLmRhdGE7XG5cbiAgICAgIHNldEZldGNoaW5nKGZhbHNlKTtcbiAgICAgIHNldFRhYnMoREVGQVVMVF9UQUJTKTtcbiAgICAgIHNldFJvd3MocmVzcG9uc2VEYXRhKTtcbiAgICAgIHNldEN1cnJlbnREYXRhKHJlc3BvbnNlRGF0YSk7XG4gICAgICBpbml0aWFsaXplTWFwQXJlYXMocmVzcG9uc2VEYXRhKTtcbiAgICAgIHpvb21BbGxBcmVhcyhyZXNwb25zZURhdGEpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRhYlNlbGVjdGlvbkNsaWNrID0gKHRhYikgPT4ge1xuICAgIGlmICghaXNGZXRjaGluZykge1xuICAgICAgc2V0U2VsZWN0ZWRUYWIodGFiKTtcblxuICAgICAgaWYgKHRhYiAhPT0gaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQuY3VzdG9tJykpIHtcbiAgICAgICAgdGFiID1cbiAgICAgICAgICB0YWIgPT09IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLmNpdGllcycpXG4gICAgICAgICAgICA/ICdjaXR5J1xuICAgICAgICAgICAgOiB0YWIgPT09IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLm1vbml0b3JlZF9hcmVhcycpXG4gICAgICAgICAgICA/ICdtb25pdG9yZWQnXG4gICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIGZldGNoRm9yVGFiU2VsZWN0aW9uKHRhYik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGluaXRpYWxpemVEcmlsbGVkQXJlYSA9IChyZXNwb25zZSkgPT4ge1xuICAgIGxldCBkYXRhID0gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIHNldFJvd3MoZGF0YSk7XG4gICAgc2V0Q3VycmVudERhdGEoZGF0YSk7XG4gICAgaW5pdGlhbGl6ZU1hcEFyZWFzKGRhdGEpO1xuICAgIHpvb21BbGxBcmVhcyhkYXRhKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVBcmVhQ2xpY2sgPSAoYXJlYSkgPT4ge1xuICAgIHpvb21Ub0FyZWEoYXJlYSk7XG5cbiAgICBpZiAoYXJlYS5oYXNfY2hpbGRyZW4pIHtcbiAgICAgIHNldFRhYnMoWy4uLnRhYnMsIGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLmN1c3RvbScpXSk7XG4gICAgICBzZXRTZWxlY3RlZFRhYihpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5jdXN0b20nKSk7XG5cbiAgICAgIGF4aW9zLmdldChmZXRjaFVybChhcmVhLmlkKSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaW5pdGlhbGl6ZURyaWxsZWRBcmVhKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpbml0aWFsaXplQ29tcG9uZW50ID0gKCkgPT4ge1xuICAgIHNldEN1cnJlbnREYXRhKGRhdGEpO1xuICAgIHNldFJvd3MoZGF0YSk7XG4gICAgYW5hbHl0aWNzVHJhY2soJ1dCRSBTdGF0dXMgUmVwb3J0Jywge1xuICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gICAgZGlzcGF0Y2godXBkYXRlTmF2Q29udGV4dCh7IG5hbWU6ICd3YmVfZGFzaGJvYXJkJyB9KSk7XG4gICAgaW5pdGlhbGl6ZU1hcEFyZWFzKGRhdGEpO1xuICAgIHpvb21BbGxBcmVhcyhkYXRhKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNGZXRjaGluZyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgICBpbml0aWFsaXplQ29tcG9uZW50KCk7XG4gICAgfVxuICB9LCBbaXNGZXRjaGluZywgc2VsZWN0ZWRQYXRob2dlbiwgZGF0YV0pO1xuXG4gIGNvbnN0IHBhdGhvZ2VuVGl0bGUgPVxuICAgICghaXNGZXRjaGluZ1BhdGhvZ2VucyAmJlxuICAgICAgcGF0aG9nZW5zPy5maW5kKFxuICAgICAgICAoaXRlbSkgPT4gaXRlbS50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZFBhdGhvZ2VuLnRvTG93ZXJDYXNlKCksXG4gICAgICApKSB8fFxuICAgICcnO1xuICBjb25zdCBkcm9wRG93blRpdGxlID1cbiAgICBwYXRob2dlblRpdGxlIHx8IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLnBhdGhvZ2VuX25vdF9mb3VuZCcpO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxDb250ZW50PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxoMT5cbiAgICAgICAgICAgIHtgJHtpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC50YWJsZV9uYW1lJyl9ICgke1xuICAgICAgICAgICAgICBwYXRob2dlblRpdGxlIHx8IGdldFBhdGhvZ2VuKClcbiAgICAgICAgICAgIH0pYH1cbiAgICAgICAgICA8L2gxPlxuICAgICAgICAgIHshaXNGZXRjaGluZ1BhdGhvZ2VucyAmJiBwYXRob2dlbnMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgIDxoMz57aTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQucGF0aG9nZW5fbm90X2ZvdW5kJyl9PC9oMz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxBY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICAgICAgeyFpc0ZldGNoaW5nUGF0aG9nZW5zICYmIHBhdGhvZ2Vucy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICAgICAgPERyb3Bkb3duQnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJkcm9wZG93bi1iYXNpYy1idXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2J1dHRvbiBidXR0b24tLXNvcnQnfVxuICAgICAgICAgICAgICAgIHRpdGxlPXtkcm9wRG93blRpdGxlICsgJyAnfVxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3BhdGhvZ2Vucy5tYXAoKHBhdGhvZ2VuKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3RQYXRob2dlbkNsaWNrKHBhdGhvZ2VuKX1cbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXZDb250ZXh0LmxvY2FsZSA9PT0gJ2hlJyA/ICdyaWdodCcgOiAnbGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtwYXRob2dlbn1cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5JdGVtPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bkJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9BY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPEZpcnN0U2VjdGlvbj5cbiAgICAgICAgICA8V2JlU3VtbWFyeUJhclxuICAgICAgICAgICAgcGF0aG9nZW49e3NlbGVjdGVkUGF0aG9nZW59XG4gICAgICAgICAgICB3YXRlckF1dGhvcml0eUlkPXt3YXRlckF1dGhvcml0eUlkfVxuICAgICAgICAgICAgaXNSdGw9e2lzUnRsfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRmlyc3RTZWN0aW9uPlxuXG4gICAgICAgIDxTZWNvbmRTZWN0aW9uPlxuICAgICAgICAgIDxTZWFyY2hJbnB1dCBvbkNoYW5nZUJlaGF2aW9yPXtmaWx0ZXJSZXN1bHRzQW5kU2V0Um93c30gLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RhYnMtY29udGFpbmVyJ30+XG4gICAgICAgICAgICA8VGFic1xuICAgICAgICAgICAgICB0YWJzPXt0YWJzfVxuICAgICAgICAgICAgICBzZWxlY3RlZFRhYj17c2VsZWN0ZWRUYWJ9XG4gICAgICAgICAgICAgIGhhbmRsZU9uQ2xpY2s9e2hhbmRsZVRhYlNlbGVjdGlvbkNsaWNrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8TWFwVGFibGVDb250YWluZXIgaXNSdGw9e2lzUnRsfT5cbiAgICAgICAgICAgIHtpc0ZldGNoaW5nICYmIDxTcGlubmVyIC8+fVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtYXAtY29udGFpbmVyJ30+XG4gICAgICAgICAgICAgIHshaXNGZXRjaGluZyAmJiByb3dzICE9PSBudWxsICYmIG1hcFpvb20gIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgPE1hcFxuICAgICAgICAgICAgICAgICAgICBhcmVhcz17bWFwQXJlYXN9XG4gICAgICAgICAgICAgICAgICAgIGFyZWFUb0NlbnRlckJ5PXttYXBab29tfVxuICAgICAgICAgICAgICAgICAgICBlZGdlcz17W119XG4gICAgICAgICAgICAgICAgICAgIHBvaW50cz17W119XG4gICAgICAgICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxEYXRhfVxuICAgICAgICAgICAgICAgICAgICBtYXBCb3hTdHlsZT17TUFQQk9YX1dCRV9EQVNIQk9BUkRfU1RZTEV9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgeyFpc0ZldGNoaW5nICYmIHJvd3MgIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgICA8S2FuZG9UYWJsZVxuICAgICAgICAgICAgICAgIG9uUm93RXhwYW5kVG9nZ2xlZD17aGFuZGxlT25Sb3dFeHBhbmR9XG4gICAgICAgICAgICAgICAgZGF0YT17cm93c31cbiAgICAgICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbj17ZGlyfVxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGVSb3dzPXt0cnVlfVxuICAgICAgICAgICAgICAgIHBhZ2luYXRpb25QZXJQYWdlPXtUQUJMRV9ST1dTX1BFUl9QQUdFfVxuICAgICAgICAgICAgICAgIHJvd0NvbXBvbmVudD17RXhwYW5kZWRDb21wb25lbnR9XG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZVJvd3NDb21wb25lbnRQcm9wcz17eyBwYXRob2dlbjogc2VsZWN0ZWRQYXRob2dlbiB9fVxuICAgICAgICAgICAgICAgIGRlZmF1bHRTb3J0RmllbGRJZD17M31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9NYXBUYWJsZUNvbnRhaW5lcj5cbiAgICAgICAgPC9TZWNvbmRTZWN0aW9uPlxuICAgICAgPC9Db250ZW50PlxuICAgIDwvPlxuICApO1xufTtcblxuY29uc3QgUm93TmFtZSA9IHN0eWxlZC5kaXY8eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgICB3aWR0aDogMTAwJTtcbiAgICAgIFxuICAgIC5yb3dfbmFtZSB7XG4gICAgICAuZXhwYW5kYWJsZS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogLjJzIGVhc2UtaW47ICAgICAgXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgIFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAycHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICYtLWNsZWFuIHtcbiAgICAgICAgIGNvbG9yOiAjMjdhNjNhOyBcbiAgICAgICAgIC5leHBhbmRhYmxlLWljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzI3YTYzYTsgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJi0taW5mZWN0ZWQge1xuICAgICAgICAgIGNvbG9yOiAjZTEwMDM2O1xuICAgICAgICAgIC5leHBhbmRhYmxlLWljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2UxMDAzNjsgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJi0taW5hY3RpdmUtc2FtcGxpbmcge1xuICAgICAgICAgIGNvbG9yOiAke3RoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjYwfTtcbiAgICAgICAgICAuZXhwYW5kYWJsZS1pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNjB9OyAgICAgICAgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAubmFtZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICAgICAgJHsocCkgPT4gKHAuaXNSdGwgPyAncmlnaHQ6IDUxcHg7JyA6ICdsZWZ0OiA1MXB4OycpfVxuICAgICAgICAgIHRvcDogMTZweDtcbiAgICAgICAgICB3aWR0aDogNy41ZW07XG4gICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgO1xuXG5jb25zdCBBY3Rpb25zQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IEZpcnN0U2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbjogODVweCAwIDIwcHggMDtcbmA7XG5cbmNvbnN0IFNlY29uZFNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmNmY2ZjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTdlN2U3O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG5gO1xuXG5jb25zdCBNYXBUYWJsZUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAubWFwLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgLmV2ZW50LXRpbWVyYW5nZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAjbWFwIHtcbiAgICAgIGhlaWdodDogNjl2aDtcbiAgICAgIHdpZHRoOiAzMHZ3O1xuICAgIH1cbiAgfVxuICBbZGF0YS10ZXN0aWQ9J2thbmRvLXRhYmxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIFtkYXRhLWNvbHVtbi1pZD0nMSddIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIge1xuICAgICAgLm5hbWUge1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5leHBhbmRhYmxlLWljb24ge1xuICAgICAgICB3aWR0aDogY2FsYygxMjBweCArIDF2dyk7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zcGlubmVyLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuYDtcblxuY29uc3QgQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gIH1cblxuICBoMSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4g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
509
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9XYmVEYXNoYm9hcmQvV2JlRGFzaGJvYXJkUGFnZS50c3giXSwibmFtZXMiOlsiVEFCTEVfUk9XU19QRVJfUEFHRSIsIk1BUEJPWF9XQkVfREFTSEJPQVJEX1NUWUxFIiwiV0JFSXNyYWVsSWQiLCJXYmVEYXNoYm9hcmRQYWdlIiwiZ2V0V0FJZCIsInF1ZXJ5IiwiZ2V0IiwiZmV0Y2hVcmwiLCJmaXJzdFBhcmFtIiwiZ2V0VGFnIiwiREVGQVVMVF9UQUJTIiwiaTE4biIsInQiLCJjb252ZXJ0VGFiTmFtZVRvUGFyYW0iLCJ0YWJfbmFtZSIsImRlZmF1bHRUYWciLCJjdXJyZW50RGF0YSIsInNldEN1cnJlbnREYXRhIiwic2VsZWN0ZWRUYWciLCJzZXRTZWxlY3RlZFRhZyIsIm1hcEFyZWFzIiwic2V0TWFwQXJlYXMiLCJtYXBab29tIiwic2V0TWFwWm9vbSIsInJvd3MiLCJzZXRSb3dzIiwidGFicyIsInNldFRhYnMiLCJzZWxlY3RlZFRhYiIsInNldFNlbGVjdGVkVGFiIiwiZGF0YSIsImlzRmV0Y2hpbmciLCJzZXRGZXRjaGluZyIsImRpc3BhdGNoIiwibmF2Q29udGV4dCIsInN0YXRlIiwibmF2X2NvbnRleHRfZGF0YSIsImdsb2JhbERhdGEiLCJnbG9iYWxfZGF0YSIsImlzUnRsIiwibG9jYWxlIiwiY29sb3JGb3JSb3ciLCJyb3ciLCJxdWFsaXR5Iiwic2FtcGxlX2FjdGl2ZSIsImlzSW5mZWN0ZWQiLCJudmwiLCJjb2x1bW5zIiwiUmVhY3QiLCJ1c2VNZW1vIiwibmFtZSIsInNlbGVjdG9yIiwic29ydGFibGUiLCJjZWxsIiwiaGFuZGxlQXJlYUNsaWNrIiwiaGFzX2NoaWxkcmVuIiwidGV4dEFsaWduIiwid2lkdGgiLCJudmxfY2hhbmdlIiwiZGlyZWN0aW9uIiwiY29sb3IiLCJtYXJnaW4iLCJmYUNoZXZyb25VcCIsImZhQ2hldnJvbkRvd24iLCJsYXN0X3VwZGF0ZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidGFncyIsImpvaW4iLCJwb3B1bGF0aW9uIiwicGFyc2VJbnQiLCJpbml0aWFsaXplTWFwQXJlYXMiLCJhcmVhcyIsIm1hcHBlZFdpdGhDb2xvciIsIm1hcCIsImEiLCJ3YmVfZGFzaGJvYXJkX25hbWUiLCJzaG93Q29sb3JPbmx5SW5Cb3JkZXJzIiwidGhlbWUiLCJjb2xvclNjaGVtZSIsIm5hdHVyYWwiLCJuNjAiLCJSMTAwIiwiRzEwMCIsInpvb21Ub0FyZWEiLCJhcmVhIiwic2hhcGVfZGF0YSIsInVuZGVmaW5lZCIsInpvb21BbGxBcmVhcyIsInNoYXBlRGF0YSIsImRhdHVtIiwiaGlzdG9yeSIsIndhdGVyQXV0aG9yaXR5SWQiLCJkaXIiLCJEaXJlY3Rpb24iLCJSVEwiLCJMVFIiLCJmaWx0ZXJSZXN1bHRzQW5kU2V0Um93cyIsInRleHQiLCJyZXN1bHRzIiwiZmlsdGVyIiwiZWwiLCJ0b0xvd2VyQ2FzZSIsImluY2x1ZGVzIiwiaGFuZGxlT25Sb3dFeHBhbmQiLCJleHBhbmRlZCIsIndhdGVyQXV0aG9yaXR5TmFtZSIsImhhbmRsZVNlbGVjdFRhZ0NsaWNrIiwidGFnIiwidXRpbGl0eV9uYW1lIiwicHVzaCIsImZldGNoRm9yVGFiU2VsZWN0aW9uIiwidGFiIiwiYXhpb3MiLCJ0aGVuIiwicmVzcG9uc2UiLCJyZXNwb25zZURhdGEiLCJoYW5kbGVUYWJTZWxlY3Rpb25DbGljayIsImluaXRpYWxpemVEcmlsbGVkQXJlYSIsImlkIiwiaW5pdGlhbGl6ZUNvbXBvbmVudCIsIkV4cGFuZGVkQ29tcG9uZW50IiwiUm93TmFtZSIsInN0eWxlZCIsImRpdiIsInAiLCJBY3Rpb25zQ29udGFpbmVyIiwiRmlyc3RTZWN0aW9uIiwiU2Vjb25kU2VjdGlvbiIsIk1hcFRhYmxlQ29udGFpbmVyIiwiQ29udGVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7Ozs7O0FB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ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyBhbmFseXRpY3NUcmFjayB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BbmFseXRpY3MnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICcuL1NlYXJjaElucHV0JztcbmltcG9ydCB7IEZvbnRBd2Vzb21lSWNvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9yZWFjdC1mb250YXdlc29tZSc7XG5pbXBvcnQgeyBHcmFwaFdyYXBwZXIgfSBmcm9tICcuL0dyYXBoV3JhcHBlcic7XG5pbXBvcnQgeyBmYUNoZXZyb25Eb3duLCBmYUNoZXZyb25VcCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnLi4vLi4vc3RvcmUvcm9vdFJlZHVjZXInO1xuaW1wb3J0IHsgdXBkYXRlTmF2Q29udGV4dCB9IGZyb20gJy4uLy4uL3N0b3JlL2NvbnRleHQvYWN0aW9ucyc7XG5pbXBvcnQgeyBrRm9ybWF0dGVyIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1Rob3VzYW5kc1RvSyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBEcmlsbERvd25JY29uIH0gZnJvbSAnLi9EcmlsbERvd25JY29uLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBCYXNlTGV2ZWwgfSBmcm9tICcuL0Jhc2VMZXZlbC5zdmcnO1xuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAncmVhY3QtZGF0YS10YWJsZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgbGV2ZWxOVkwgfSBmcm9tICcuLi9Db3ZpZFBhZ2UvY29tcG9uZW50cy9udmxTdGF0dXNIZWxwZXInO1xuaW1wb3J0IHsgTWFwIH0gZnJvbSAnLi4vLi4vV2lkZ2V0cy9NYXAvTWFwJztcbmltcG9ydCB7IEthbmRvVGFibGUgfSBmcm9tICdzcmMvdWkta2l0L0thbmRvVGFibGUvS2FuZG9UYWJsZSc7XG5pbXBvcnQgeyBUYWJzIH0gZnJvbSAnLi9UYWJzJztcbmltcG9ydCB1c2VLYW5kb0ZldGNoIGZyb20gJy4uLy4uL2hvb2tzL3VzZUthbmRvRmV0Y2gnO1xuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJy4uLy4uL2hvb2tzL3VzZVF1ZXJ5VVJMJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IERyb3Bkb3duIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9janMvRHJvcGRvd24nO1xuaW1wb3J0IERyb3Bkb3duQnV0dG9uIGZyb20gJ3JlYWN0LWJvb3RzdHJhcC9janMvRHJvcGRvd25CdXR0b24nO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBUcnVuY2F0ZSBmcm9tICcuLi8uLi91dGlsaXRpZXMvVHJ1bmNhdGUnO1xuaW1wb3J0IHsgRXhwYW5kZWRDb21wb25lbnQgfSBmcm9tICcuL0V4cGFuZGFibGVDb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IFdiZVN1bW1hcnlCYXIgfSBmcm9tICcuL1diZVN1bW1hcnlCYXInO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tICcuLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuY29uc3QgVEFCTEVfUk9XU19QRVJfUEFHRSA9IDI1O1xuY29uc3QgTUFQQk9YX1dCRV9EQVNIQk9BUkRfU1RZTEUgPSAnY2t6emtqc2k3MDA1ZjE0bzlpbTBtY3pzOSc7XG5cbmV4cG9ydCBjb25zdCBXQkVJc3JhZWxJZCA9IDQ2MztcbmV4cG9ydCBjb25zdCBXYmVEYXNoYm9hcmRQYWdlID0gKCkgPT4ge1xuICBjb25zdCBnZXRXQUlkID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3dhdGVyX2F1dGhvcml0eV9pZCcpO1xuICB9O1xuICBjb25zdCBmZXRjaFVybCA9IChmaXJzdFBhcmFtKSA9PiB7XG4gICAgcmV0dXJuIGAvYXBpX3VpL3diZV9kYXNoYm9hcmQvJHtmaXJzdFBhcmFtfT93YXRlcl9hdXRob3JpdHlfaWQ9JHtnZXRXQUlkKCl9JnRhZz0ke2dldFRhZygpfWA7XG4gIH07XG4gIGNvbnN0IERFRkFVTFRfVEFCUyA9IFtcbiAgICBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5jaXRpZXMnKSxcbiAgICBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5tb25pdG9yZWRfYXJlYXMnKSxcbiAgXTtcbiAgY29uc3QgY29udmVydFRhYk5hbWVUb1BhcmFtID0gKHRhYl9uYW1lOiBzdHJpbmcpID0+IHtcbiAgICBpZiAodGFiX25hbWUgPT09IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLmNpdGllcycpKSB7XG4gICAgICByZXR1cm4gJ2NpdHknO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0YWJfbmFtZSA9PT0gaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQubW9uaXRvcmVkX2FyZWFzJylcbiAgICApIHtcbiAgICAgIHJldHVybiAnbW9uaXRvcmVkJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ2NpdHknO1xuICB9O1xuICBjb25zdCBxdWVyeSA9IHVzZVF1ZXJ5VVJMKCk7XG4gIGNvbnN0IGdldFRhZyA9ICgpID0+IHtcbiAgICByZXR1cm4gcXVlcnkuZ2V0KCd0YWcnKTtcbiAgfTtcbiAgY29uc3QgZGVmYXVsdFRhZyA9XG4gICAgZ2V0VGFnKCkgPT09IG51bGwgPyBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5hbGwnKSA6IGdldFRhZygpO1xuICBjb25zdCBbY3VycmVudERhdGEsIHNldEN1cnJlbnREYXRhXSA9IHVzZVN0YXRlKFtdKTtcbiAgY29uc3QgW3NlbGVjdGVkVGFnLCBzZXRTZWxlY3RlZFRhZ10gPSB1c2VTdGF0ZTxzdHJpbmc+KGRlZmF1bHRUYWchKTtcbiAgY29uc3QgW21hcEFyZWFzLCBzZXRNYXBBcmVhc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbbWFwWm9vbSwgc2V0TWFwWm9vbV0gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICBjb25zdCBbcm93cywgc2V0Um93c10gPSB1c2VTdGF0ZTxhbnk+KFtdKTtcbiAgY29uc3QgW3RhYnMsIHNldFRhYnNdID0gdXNlU3RhdGU8c3RyaW5nW10+KERFRkFVTFRfVEFCUyk7XG4gIGNvbnN0IFtzZWxlY3RlZFRhYiwgc2V0U2VsZWN0ZWRUYWJdID0gdXNlU3RhdGU8c3RyaW5nPih0YWJzWzBdKTtcbiAgY29uc3QgeyBkYXRhLCBpc0ZldGNoaW5nLCBzZXRGZXRjaGluZyB9ID0gdXNlS2FuZG9GZXRjaChcbiAgICBmZXRjaFVybChjb252ZXJ0VGFiTmFtZVRvUGFyYW0oc2VsZWN0ZWRUYWIpKSxcbiAgKTtcblxuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IG5hdkNvbnRleHQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5uYXZfY29udGV4dF9kYXRhLm5hdkNvbnRleHQsXG4gICk7XG4gIGNvbnN0IGdsb2JhbERhdGEgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IFJldHVyblR5cGU8dHlwZW9mIGFwcFJlZHVjZXI+KSA9PiBzdGF0ZS5nbG9iYWxfZGF0YSxcbiAgKTtcbiAgY29uc3QgaXNSdGw6IGJvb2xlYW4gPSBuYXZDb250ZXh0LmxvY2FsZSA9PT0gJ2hlJyA/IHRydWUgOiBmYWxzZTtcbiAgY29uc3QgY29sb3JGb3JSb3cgPSAocm93KSA9PiB7XG4gICAgbGV0IHF1YWxpdHk7XG4gICAgaWYgKCFyb3cuc2FtcGxlX2FjdGl2ZSkge1xuICAgICAgcXVhbGl0eSA9ICdpbmFjdGl2ZS1zYW1wbGluZyc7XG4gICAgfSBlbHNlIGlmIChpc0luZmVjdGVkKHJvdy5udmwpKSB7XG4gICAgICBxdWFsaXR5ID0gJ2luZmVjdGVkJztcbiAgICB9IGVsc2Uge1xuICAgICAgcXVhbGl0eSA9ICdjbGVhbic7XG4gICAgfVxuXG4gICAgcmV0dXJuIGByb3dfbmFtZS0tJHtxdWFsaXR5fWA7XG4gIH07XG4gIGNvbnN0IGNvbHVtbnM6IGFueSA9IFJlYWN0LnVzZU1lbW8oXG4gICAgKCkgPT4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5uYW1lJyksXG4gICAgICAgIHNlbGVjdG9yOiAocm93KSA9PiByb3cubmFtZSxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIGNlbGw6IChyb3c6IHsgbmFtZTogc3RyaW5nOyBudmw6IG51bWJlcjsgaGFzX2NoaWxkcmVuOiBib29sZWFuIH0pID0+IChcbiAgICAgICAgICA8Um93TmFtZSBpc1J0bD17aXNSdGx9PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBkYXRhLXRhZz1cImFsbG93Um93RXZlbnRzXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcm93X25hbWUgJHtjb2xvckZvclJvdyhyb3cpfWB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVBcmVhQ2xpY2socm93KTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydleHBhbmRhYmxlLWljb24nfT5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgIHtyb3cuaGFzX2NoaWxkcmVuICYmIDxEcmlsbERvd25JY29uIC8+fVxuICAgICAgICAgICAgICAgICAgeyFyb3cuaGFzX2NoaWxkcmVuICYmIDxCYXNlTGV2ZWwgLz59XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXsnbmFtZSd9PlxuICAgICAgICAgICAgICAgIDxUcnVuY2F0ZSBjaGFyYWN0ZXJzPXszfSBpbmhlcml0VGV4dEFsaWduPXt0cnVlfT5cbiAgICAgICAgICAgICAgICAgIHtyb3cubmFtZX1cbiAgICAgICAgICAgICAgICA8L1RydW5jYXRlPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L1Jvd05hbWU+XG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5udmxfc2NvcmUnKSxcbiAgICAgICAgc2VsZWN0b3I6IChyb3cpID0+IHJvdy5udmwsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICBjZWxsOiAocm93OiB7IG52bDogbnVtYmVyIH0pID0+IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBkYXRhLXRhZz1cImFsbG93Um93RXZlbnRzXCJcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtyb3cubnZsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQucGVyY2VudGFnZV9mcm9tX2xhc3Rfc2FtcGxpbmcnKSxcbiAgICAgICAgc2VsZWN0b3I6IChyb3cpID0+IHJvdy5udmxfY2hhbmdlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbDogKHJvdzogeyBudmxfY2hhbmdlOiBudW1iZXIgfSkgPT4gKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGRhdGEtdGFnPVwiYWxsb3dSb3dFdmVudHNcIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnbHRyJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgY29sb3I6ICcjMDAwMDAwJywgbWFyZ2luOiAnMCA2cHgnIH19PlxuICAgICAgICAgICAgICB7cm93Lm52bF9jaGFuZ2V9JVxuICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIDxGb250QXdlc29tZUljb25cbiAgICAgICAgICAgICAgICBpY29uPXtyb3cubnZsX2NoYW5nZSA+IDAgPyBmYUNoZXZyb25VcCA6IGZhQ2hldnJvbkRvd259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5sYXN0X3NhbXBsZWQnKSxcbiAgICAgICAgc2VsZWN0b3I6ICdsYXN0X3NhbXBsZWQnLFxuICAgICAgICBzb3J0YWJsZTogKHJvdykgPT4gcm93Lmxhc3RfdXBkYXRlZCxcbiAgICAgICAgY2VsbDogKHJvdzogeyBsYXN0X3VwZGF0ZWQ6IHN0cmluZyB9KSA9PiAoXG4gICAgICAgICAgPGRpdiBkYXRhLXRhZz1cImFsbG93Um93RXZlbnRzXCI+XG4gICAgICAgICAgICB7cm93Lmxhc3RfdXBkYXRlZCA9PT0gbnVsbFxuICAgICAgICAgICAgICA/ICctJ1xuICAgICAgICAgICAgICA6IG5ldyBEYXRlKHJvdy5sYXN0X3VwZGF0ZWQpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tR0InKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLnRyZW5kX2dyYXBoJyksXG4gICAgICAgIHNlbGVjdG9yOiAndHJlbmRfZ3JhcGgnLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbDogKHJvdzogeyBpZDogbnVtYmVyIH0pID0+IChcbiAgICAgICAgICA8ZGl2IGRhdGEtdGFnPVwiYWxsb3dSb3dFdmVudHNcIj5cbiAgICAgICAgICAgIDxHcmFwaFdyYXBwZXIgcm93PXtyb3d9IHdhdGVyX2F1dGhvcml0eV9pZD17Z2V0V0FJZCgpfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQudGFnJyksXG4gICAgICAgIHNlbGVjdG9yOiAocm93KSA9PiByb3cudGFncyxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIGNlbGw6IChyb3c6IHsgdGFnczogYW55IH0pID0+IChcbiAgICAgICAgICA8ZGl2IGRhdGEtdGFnPVwiYWxsb3dSb3dFdmVudHNcIiBjbGFzc05hbWU9eyd0YWJsZS10YWdzJ30+XG4gICAgICAgICAgICB7cm93LnRhZ3Muam9pbignLCAnKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLnBvcHVsYXRpb24nKSxcbiAgICAgICAgc2VsZWN0b3I6IChyb3cpID0+IHJvdy5wb3B1bGF0aW9uLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbDogKHJvdzogeyBwb3B1bGF0aW9uOiBzdHJpbmcgfSkgPT4gKFxuICAgICAgICAgIDxkaXYgZGF0YS10YWc9XCJhbGxvd1Jvd0V2ZW50c1wiPlxuICAgICAgICAgICAge2tGb3JtYXR0ZXIocGFyc2VJbnQocm93LnBvcHVsYXRpb24pKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBbaXNSdGxdLFxuICApO1xuXG4gIGNvbnN0IGluaXRpYWxpemVNYXBBcmVhcyA9IChhcmVhcykgPT4ge1xuICAgIGNvbnN0IG1hcHBlZFdpdGhDb2xvciA9IGFyZWFzLm1hcCgoYTogYW55KSA9PiB7XG4gICAgICBhLndiZV9kYXNoYm9hcmRfbmFtZSA9IGEubmFtZTtcbiAgICAgIGEuc2hvd0NvbG9yT25seUluQm9yZGVycyA9IHRydWU7XG5cbiAgICAgIGlmICghYS5zYW1wbGVfYWN0aXZlKSB7XG4gICAgICAgIGEuY29sb3IgPSB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm42MDtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0luZmVjdGVkKGEubnZsKSkge1xuICAgICAgICBhLmNvbG9yID0gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5SMTAwO1xuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGEuY29sb3IgPSB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLkcxMDA7XG4gICAgICAgIHJldHVybiBhO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgc2V0TWFwQXJlYXMobWFwcGVkV2l0aENvbG9yKTtcbiAgfTtcblxuICBjb25zdCB6b29tVG9BcmVhID0gKGFyZWEpID0+IHtcbiAgICBhcmVhLnNoYXBlX2RhdGEgIT09IHVuZGVmaW5lZCAmJiBzZXRNYXBab29tKGFyZWEuc2hhcGVfZGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgem9vbUFsbEFyZWFzID0gKGRhdGEpID0+IHtcbiAgICBjb25zdCBzaGFwZURhdGEgPSBkYXRhLm1hcCgoZGF0dW0pID0+IHtcbiAgICAgIHJldHVybiBkYXR1bS5zaGFwZV9kYXRhO1xuICAgIH0pO1xuXG4gICAgc2V0TWFwWm9vbShzaGFwZURhdGEpO1xuICB9O1xuXG4gIGNvbnN0IGlzSW5mZWN0ZWQgPSAobnZsOiBudW1iZXIpID0+IHtcbiAgICBpZiAobGV2ZWxOVkwobnZsKSA9PT0gJ2NsZWFuJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsZXZlbE5WTChudmwpID09PSAnbG93JyB8fFxuICAgICAgbGV2ZWxOVkwobnZsKSA9PT0gJ21lZGl1bScgfHxcbiAgICAgIGxldmVsTlZMKG52bCkgPT09ICdoaWdoJ1xuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9O1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCB3YXRlckF1dGhvcml0eUlkID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT5cbiAgICAgIHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG5cbiAgY29uc3QgZGlyOiBEaXJlY3Rpb24gPVxuICAgIG5hdkNvbnRleHQubG9jYWxlID09PSAnaGUnID8gRGlyZWN0aW9uLlJUTCA6IERpcmVjdGlvbi5MVFI7XG5cbiAgY29uc3QgdGFncyA9IFtcbiAgICBpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5hbGwnKSArICcgJyxcbiAgICAn15PXodenINei16jXkdeZJyxcbiAgICAn15PXodenINeX16jXk9eZJyxcbiAgICAn15PXodenINeb15zXnNeZJyxcbiAgXTtcblxuICBjb25zdCBmaWx0ZXJSZXN1bHRzQW5kU2V0Um93cyA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBsZXQgcmVzdWx0cyA9IGN1cnJlbnREYXRhLmZpbHRlcihmdW5jdGlvbiAoZWw6IGFueSkge1xuICAgICAgcmV0dXJuIGVsLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpO1xuICAgIH0pO1xuXG4gICAgc2V0Um93cyhyZXN1bHRzKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVPblJvd0V4cGFuZCA9IChleHBhbmRlZCwgcm93KSA9PiB7XG4gICAgZXhwYW5kZWQgJiYgem9vbVRvQXJlYShyb3cpO1xuICAgICFleHBhbmRlZCAmJiB6b29tQWxsQXJlYXMoZGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgd2F0ZXJBdXRob3JpdHlOYW1lID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eU5hbWUsXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0VGFnQ2xpY2sgPSAodGFnKSA9PiB7XG4gICAgYW5hbHl0aWNzVHJhY2soJ1dCRSBTdGF0dXMgUmVwb3J0IC0gVGFnIGNoYW5nZSBjbGlja2VkJywge1xuICAgICAgdGFnOiB0YWcsXG4gICAgICB1dGlsaXR5X25hbWU6IHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICB9KTtcbiAgICBzZXRTZWxlY3RlZFRhZyh0YWcpO1xuICAgIGhpc3RvcnkucHVzaChcbiAgICAgIGAvd2JlX2Rhc2hib2FyZC9pbmRleD9sb2NhbGU9JHtuYXZDb250ZXh0LmxvY2FsZX0md2F0ZXJfYXV0aG9yaXR5X2lkPSR7d2F0ZXJBdXRob3JpdHlJZH0mdGFnPSR7dGFnfWAsXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBmZXRjaEZvclRhYlNlbGVjdGlvbiA9ICh0YWIpID0+IHtcbiAgICBzZXRGZXRjaGluZyh0cnVlKTtcbiAgICBheGlvcy5nZXQoZmV0Y2hVcmwodGFiKSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgIGxldCByZXNwb25zZURhdGEgPSByZXNwb25zZS5kYXRhLmRhdGE7XG5cbiAgICAgIHNldEZldGNoaW5nKGZhbHNlKTtcbiAgICAgIHNldFRhYnMoREVGQVVMVF9UQUJTKTtcbiAgICAgIHNldFJvd3MocmVzcG9uc2VEYXRhKTtcbiAgICAgIHNldEN1cnJlbnREYXRhKHJlc3BvbnNlRGF0YSk7XG4gICAgICBpbml0aWFsaXplTWFwQXJlYXMocmVzcG9uc2VEYXRhKTtcbiAgICAgIHpvb21BbGxBcmVhcyhyZXNwb25zZURhdGEpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVRhYlNlbGVjdGlvbkNsaWNrID0gKHRhYikgPT4ge1xuICAgIGlmICghaXNGZXRjaGluZykge1xuICAgICAgc2V0U2VsZWN0ZWRUYWIodGFiKTtcblxuICAgICAgaWYgKHRhYiAhPT0gaTE4bi50KCdjb21wb25lbnRzLndiZV9kYXNoYm9hcmQuY3VzdG9tJykpIHtcbiAgICAgICAgdGFiID1cbiAgICAgICAgICB0YWIgPT09IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLmNpdGllcycpXG4gICAgICAgICAgICA/ICdjaXR5J1xuICAgICAgICAgICAgOiB0YWIgPT09IGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLm1vbml0b3JlZF9hcmVhcycpXG4gICAgICAgICAgICA/ICdtb25pdG9yZWQnXG4gICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgIGZldGNoRm9yVGFiU2VsZWN0aW9uKHRhYik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGluaXRpYWxpemVEcmlsbGVkQXJlYSA9IChyZXNwb25zZSkgPT4ge1xuICAgIGxldCBkYXRhID0gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIHNldFJvd3MoZGF0YSk7XG4gICAgc2V0Q3VycmVudERhdGEoZGF0YSk7XG4gICAgaW5pdGlhbGl6ZU1hcEFyZWFzKGRhdGEpO1xuICAgIHpvb21BbGxBcmVhcyhkYXRhKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVBcmVhQ2xpY2sgPSAoYXJlYSkgPT4ge1xuICAgIHpvb21Ub0FyZWEoYXJlYSk7XG5cbiAgICBpZiAoYXJlYS5oYXNfY2hpbGRyZW4pIHtcbiAgICAgIHNldFRhYnMoWy4uLnRhYnMsIGkxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLmN1c3RvbScpXSk7XG4gICAgICBzZXRTZWxlY3RlZFRhYihpMThuLnQoJ2NvbXBvbmVudHMud2JlX2Rhc2hib2FyZC5jdXN0b20nKSk7XG5cbiAgICAgIGF4aW9zLmdldChmZXRjaFVybChhcmVhLmlkKSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaW5pdGlhbGl6ZURyaWxsZWRBcmVhKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpbml0aWFsaXplQ29tcG9uZW50ID0gKCkgPT4ge1xuICAgIHNldEN1cnJlbnREYXRhKGRhdGEpO1xuICAgIHNldFJvd3MoZGF0YSk7XG4gICAgYW5hbHl0aWNzVHJhY2soJ1dCRSBTdGF0dXMgUmVwb3J0Jywge1xuICAgICAgdXRpbGl0eV9uYW1lOiB3YXRlckF1dGhvcml0eU5hbWUsXG4gICAgfSk7XG4gICAgZGlzcGF0Y2godXBkYXRlTmF2Q29udGV4dCh7IG5hbWU6ICd3YmVfZGFzaGJvYXJkJyB9KSk7XG4gICAgaW5pdGlhbGl6ZU1hcEFyZWFzKGRhdGEpO1xuICAgIHpvb21BbGxBcmVhcyhkYXRhKTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNGZXRjaGluZyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgICBpbml0aWFsaXplQ29tcG9uZW50KCk7XG4gICAgfVxuICB9LCBbaXNGZXRjaGluZywgc2VsZWN0ZWRUYWcsIGRhdGFdKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Q29udGVudD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8aDE+e2kxOG4udCgnY29tcG9uZW50cy53YmVfZGFzaGJvYXJkLnRhYmxlX25hbWUnKX08L2gxPlxuICAgICAgICAgIDxBY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICAgICAge3dhdGVyQXV0aG9yaXR5SWQgPT09IFdCRUlzcmFlbElkICYmIChcbiAgICAgICAgICAgICAgPERyb3Bkb3duQnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJkcm9wZG93bi1iYXNpYy1idXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2J1dHRvbiBidXR0b24tLXNvcnQnfVxuICAgICAgICAgICAgICAgIHRpdGxlPXtzZWxlY3RlZFRhZyArICcgJ31cbiAgICAgICAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0YWdzLm1hcCgodGFnKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8RHJvcGRvd24uSXRlbVxuICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3RUYWdDbGljayh0YWcpfVxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hdkNvbnRleHQubG9jYWxlID09PSAnaGUnID8gJ3JpZ2h0JyA6ICdsZWZ0JyxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3RhZ31cbiAgICAgICAgICAgICAgICAgICAgPC9Ecm9wZG93bi5JdGVtPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bkJ1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9BY3Rpb25zQ29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPEZpcnN0U2VjdGlvbj5cbiAgICAgICAgICA8V2JlU3VtbWFyeUJhciB3YXRlckF1dGhvcml0eUlkPXt3YXRlckF1dGhvcml0eUlkfSBpc1J0bD17aXNSdGx9IC8+XG4gICAgICAgIDwvRmlyc3RTZWN0aW9uPlxuXG4gICAgICAgIDxTZWNvbmRTZWN0aW9uPlxuICAgICAgICAgIDxTZWFyY2hJbnB1dCBvbkNoYW5nZUJlaGF2aW9yPXtmaWx0ZXJSZXN1bHRzQW5kU2V0Um93c30gLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3RhYnMtY29udGFpbmVyJ30+XG4gICAgICAgICAgICA8VGFic1xuICAgICAgICAgICAgICB0YWJzPXt0YWJzfVxuICAgICAgICAgICAgICBzZWxlY3RlZFRhYj17c2VsZWN0ZWRUYWJ9XG4gICAgICAgICAgICAgIGhhbmRsZU9uQ2xpY2s9e2hhbmRsZVRhYlNlbGVjdGlvbkNsaWNrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8TWFwVGFibGVDb250YWluZXIgaXNSdGw9e2lzUnRsfT5cbiAgICAgICAgICAgIHtpc0ZldGNoaW5nICYmIDxTcGlubmVyIC8+fVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydtYXAtY29udGFpbmVyJ30+XG4gICAgICAgICAgICAgIHshaXNGZXRjaGluZyAmJiByb3dzICE9PSBudWxsICYmIG1hcFpvb20gIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgICAgIDxFcnJvckJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgICAgPE1hcFxuICAgICAgICAgICAgICAgICAgICBhcmVhcz17bWFwQXJlYXN9XG4gICAgICAgICAgICAgICAgICAgIGFyZWFUb0NlbnRlckJ5PXttYXBab29tfVxuICAgICAgICAgICAgICAgICAgICBlZGdlcz17W119XG4gICAgICAgICAgICAgICAgICAgIHBvaW50cz17W119XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50cz17W119XG4gICAgICAgICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxEYXRhfVxuICAgICAgICAgICAgICAgICAgICBtYXBCb3hTdHlsZT17TUFQQk9YX1dCRV9EQVNIQk9BUkRfU1RZTEV9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgeyFpc0ZldGNoaW5nICYmIHJvd3MgIT09IG51bGwgJiYgKFxuICAgICAgICAgICAgICA8S2FuZG9UYWJsZVxuICAgICAgICAgICAgICAgIGlzUnRsPXtpc1J0bH1cbiAgICAgICAgICAgICAgICBvblJvd0V4cGFuZFRvZ2dsZWQ9e2hhbmRsZU9uUm93RXhwYW5kfVxuICAgICAgICAgICAgICAgIGRhdGE9e3Jvd3N9XG4gICAgICAgICAgICAgICAgY29sdW1ucz17Y29sdW1uc31cbiAgICAgICAgICAgICAgICBkaXJlY3Rpb249e2Rpcn1cbiAgICAgICAgICAgICAgICBleHBhbmRhYmxlUm93cz17dHJ1ZX1cbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uUGVyUGFnZT17VEFCTEVfUk9XU19QRVJfUEFHRX1cbiAgICAgICAgICAgICAgICByb3dDb21wb25lbnQ9e0V4cGFuZGVkQ29tcG9uZW50fVxuICAgICAgICAgICAgICAgIGRlZmF1bHRTb3J0RmllbGRJZD17M31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9NYXBUYWJsZUNvbnRhaW5lcj5cbiAgICAgICAgPC9TZWNvbmRTZWN0aW9uPlxuICAgICAgPC9Db250ZW50PlxuICAgIDwvPlxuICApO1xufTtcblxuY29uc3QgUm93TmFtZSA9IHN0eWxlZC5kaXY8eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgICB3aWR0aDogMTAwJTtcbiAgICAgIFxuICAgIC5yb3dfbmFtZSB7XG4gICAgICAuZXhwYW5kYWJsZS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgdHJhbnNpdGlvbjogLjJzIGVhc2UtaW47ICAgICAgXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgIFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAycHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICYtLWNsZWFuIHtcbiAgICAgICAgIGNvbG9yOiAjMjdhNjNhOyBcbiAgICAgICAgIC5leHBhbmRhYmxlLWljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzI3YTYzYTsgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJi0taW5mZWN0ZWQge1xuICAgICAgICAgIGNvbG9yOiAjZTEwMDM2O1xuICAgICAgICAgIC5leHBhbmRhYmxlLWljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2UxMDAzNjsgICAgICAgIFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgJi0taW5hY3RpdmUtc2FtcGxpbmcge1xuICAgICAgICAgIGNvbG9yOiAke3RoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjYwfTtcbiAgICAgICAgICAuZXhwYW5kYWJsZS1pY29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7dGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNjB9OyAgICAgICAgXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAubmFtZSB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICAgICAgJHsocCkgPT4gKHAuaXNSdGwgPyAncmlnaHQ6IDUxcHg7JyA6ICdsZWZ0OiA1MXB4OycpfVxuICAgICAgICAgIHRvcDogMTZweDtcbiAgICAgICAgICB3aWR0aDogNy41ZW07XG4gICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgO1xuXG5jb25zdCBBY3Rpb25zQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IEZpcnN0U2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbjogODVweCAwIDIwcHggMDtcbmA7XG5cbmNvbnN0IFNlY29uZFNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjZmNmY2ZjO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTdlN2U3O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG5gO1xuXG5jb25zdCBNYXBUYWJsZUNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBpc1J0bDogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAubWFwLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgLmV2ZW50LXRpbWVyYW5nZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAjbWFwIHtcbiAgICAgIGhlaWdodDogNjl2aDtcbiAgICAgIHdpZHRoOiAzMHZ3O1xuICAgIH1cbiAgfVxuICBbZGF0YS10ZXN0aWQ9J2thbmRvLXRhYmxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIFtkYXRhLWNvbHVtbi1pZD0nMSddIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICY6aG92ZXIge1xuICAgICAgLm5hbWUge1xuICAgICAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIC5leHBhbmRhYmxlLWljb24ge1xuICAgICAgICB3aWR0aDogY2FsYygxMjBweCArIDF2dyk7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuMDUsIDAuMzYsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJsZS10YWdzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuc3Bpbm5lci1jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbmA7XG5cbmNvbnN0IENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBAbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICB9XG5cbiAgaDEge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgcGFkZGluZzogNjBweCA2MHB4O1xuYDtcbiJdfQ==