@carto/kepler.gl 0.0.81 → 0.0.82

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 (1747) hide show
  1. package/dist/actions/action-wrapper.d.ts +115 -0
  2. package/dist/actions/action-wrapper.js +5 -5
  3. package/dist/actions/actions.d.ts +195 -0
  4. package/dist/actions/actions.js +20 -15
  5. package/dist/actions/identity-actions.d.ts +61 -0
  6. package/dist/actions/identity-actions.js +15 -10
  7. package/dist/actions/index.d.ts +9 -0
  8. package/dist/actions/index.js +1 -1
  9. package/dist/actions/map-state-actions.d.ts +69 -0
  10. package/dist/actions/map-state-actions.js +15 -12
  11. package/dist/actions/map-style-actions.d.ts +146 -0
  12. package/dist/actions/map-style-actions.js +53 -29
  13. package/dist/actions/provider-actions.d.ts +153 -0
  14. package/dist/actions/provider-actions.js +73 -42
  15. package/dist/actions/ui-state-actions.d.ts +300 -0
  16. package/dist/actions/ui-state-actions.js +135 -67
  17. package/dist/actions/vis-state-actions.d.ts +821 -0
  18. package/dist/actions/vis-state-actions.js +26 -111
  19. package/dist/cloud-providers/index.d.ts +2 -0
  20. package/dist/cloud-providers/index.js +2 -2
  21. package/dist/cloud-providers/provider.d.ts +176 -0
  22. package/dist/cloud-providers/provider.js +15 -16
  23. package/dist/components/bottom-widget.d.ts +47 -0
  24. package/dist/components/bottom-widget.js +10 -7
  25. package/dist/components/common/action-panel.d.ts +27 -0
  26. package/dist/components/common/action-panel.js +5 -7
  27. package/dist/components/common/animation-control/animation-control.d.ts +24 -0
  28. package/dist/components/common/animation-control/animation-control.js +7 -6
  29. package/dist/components/common/animation-control/animation-controller.d.ts +16 -0
  30. package/dist/components/common/animation-control/animation-controller.js +51 -31
  31. package/dist/components/common/animation-control/animation-speed-slider.d.ts +12 -0
  32. package/dist/components/common/animation-control/animation-speed-slider.js +6 -9
  33. package/dist/components/common/animation-control/floating-time-display.d.ts +9 -0
  34. package/dist/components/common/animation-control/floating-time-display.js +7 -4
  35. package/dist/components/common/animation-control/playback-controls.d.ts +72 -0
  36. package/dist/components/common/animation-control/playback-controls.js +4 -5
  37. package/dist/components/common/animation-control/speed-control.d.ts +13 -0
  38. package/dist/components/common/animation-control/speed-control.js +1 -1
  39. package/dist/components/common/checkbox.d.ts +35 -0
  40. package/dist/components/common/checkbox.js +10 -27
  41. package/dist/components/common/color-legend.d.ts +43 -0
  42. package/dist/components/common/color-legend.js +11 -23
  43. package/dist/components/common/data-table/button.d.ts +8 -0
  44. package/dist/components/common/data-table/button.js +2 -2
  45. package/dist/components/common/data-table/canvas.d.ts +2 -0
  46. package/dist/components/common/data-table/canvas.js +1 -1
  47. package/dist/components/common/data-table/cell-size.d.ts +36 -0
  48. package/dist/components/common/data-table/cell-size.js +1 -1
  49. package/dist/components/common/data-table/grid.d.ts +7 -0
  50. package/dist/components/common/data-table/grid.js +18 -11
  51. package/dist/components/common/data-table/index.d.ts +143 -0
  52. package/dist/components/common/data-table/index.js +44 -47
  53. package/dist/components/common/data-table/option-dropdown.d.ts +14 -0
  54. package/dist/components/common/data-table/option-dropdown.js +2 -2
  55. package/dist/components/common/dataset-label.d.ts +10 -0
  56. package/dist/components/common/dataset-label.js +3 -3
  57. package/dist/components/common/error-boundary.d.ts +16 -0
  58. package/dist/components/common/error-boundary.js +4 -6
  59. package/dist/components/common/field-selector.d.ts +47 -0
  60. package/dist/components/common/field-selector.js +14 -48
  61. package/dist/components/common/field-token.d.ts +45 -0
  62. package/dist/components/common/field-token.js +2 -2
  63. package/dist/components/common/file-uploader/file-drop.d.ts +54 -0
  64. package/dist/components/common/file-uploader/file-drop.js +22 -21
  65. package/dist/components/common/file-uploader/file-upload-progress.d.ts +8 -0
  66. package/dist/components/common/file-uploader/file-upload-progress.js +7 -8
  67. package/dist/components/common/file-uploader/file-upload.d.ts +27 -0
  68. package/dist/components/common/file-uploader/file-upload.js +12 -14
  69. package/dist/components/common/file-uploader/upload-button.d.ts +8 -0
  70. package/dist/components/common/file-uploader/upload-button.js +37 -61
  71. package/dist/components/common/histogram-plot.d.ts +3 -0
  72. package/dist/components/common/histogram-plot.js +10 -5
  73. package/dist/components/common/icons/add.d.ts +9 -0
  74. package/dist/components/common/icons/add.js +4 -10
  75. package/dist/components/common/icons/anchor_window.d.ts +11 -0
  76. package/dist/components/common/icons/anchor_window.js +1 -6
  77. package/dist/components/common/icons/arrow-down-alt.d.ts +9 -0
  78. package/dist/components/common/icons/arrow-down-alt.js +4 -10
  79. package/dist/components/common/icons/arrow-down-solid.d.ts +9 -0
  80. package/dist/components/common/icons/arrow-down-solid.js +58 -0
  81. package/dist/components/common/icons/arrow-down.d.ts +9 -0
  82. package/dist/components/common/icons/arrow-down.js +4 -10
  83. package/dist/components/common/icons/arrow-left.d.ts +9 -0
  84. package/dist/components/common/icons/arrow-left.js +4 -10
  85. package/dist/components/common/icons/arrow-right.d.ts +9 -0
  86. package/dist/components/common/icons/arrow-right.js +4 -10
  87. package/dist/components/common/icons/arrow-up-alt.d.ts +9 -0
  88. package/dist/components/common/icons/arrow-up-alt.js +4 -10
  89. package/dist/components/common/icons/arrow-up-solid.d.ts +9 -0
  90. package/dist/components/common/icons/arrow-up-solid.js +4 -10
  91. package/dist/components/common/icons/arrow-up.d.ts +9 -0
  92. package/dist/components/common/icons/arrow-up.js +4 -10
  93. package/dist/components/common/icons/base.d.ts +29 -0
  94. package/dist/components/common/icons/base.js +7 -19
  95. package/dist/components/common/icons/bug.d.ts +9 -0
  96. package/dist/components/common/icons/bug.js +4 -10
  97. package/dist/components/common/icons/cancel.d.ts +9 -0
  98. package/dist/components/common/icons/cancel.js +4 -10
  99. package/dist/components/common/icons/checkmark.d.ts +10 -0
  100. package/dist/components/common/icons/checkmark.js +4 -10
  101. package/dist/components/common/icons/chevron-right.js +5 -6
  102. package/dist/components/common/icons/clipboard.d.ts +9 -0
  103. package/dist/components/common/icons/clipboard.js +4 -10
  104. package/dist/components/common/icons/clock.d.ts +9 -0
  105. package/dist/components/common/icons/clock.js +4 -10
  106. package/dist/components/common/icons/close.d.ts +9 -0
  107. package/dist/components/common/icons/close.js +4 -10
  108. package/dist/components/common/icons/code-alt.d.ts +9 -0
  109. package/dist/components/common/icons/code-alt.js +4 -10
  110. package/dist/components/common/icons/copy.d.ts +9 -0
  111. package/dist/components/common/icons/copy.js +4 -10
  112. package/dist/components/common/icons/crosshairs.d.ts +9 -0
  113. package/dist/components/common/icons/crosshairs.js +4 -10
  114. package/dist/components/common/icons/cube-3d.d.ts +9 -0
  115. package/dist/components/common/icons/cube-3d.js +4 -10
  116. package/dist/components/common/icons/cursor-click.d.ts +9 -0
  117. package/dist/components/common/icons/cursor-click.js +4 -10
  118. package/dist/components/common/icons/data-table.d.ts +10 -0
  119. package/dist/components/common/icons/data-table.js +4 -10
  120. package/dist/components/common/icons/db.d.ts +10 -0
  121. package/dist/components/common/icons/db.js +4 -10
  122. package/dist/components/common/icons/delete.d.ts +9 -0
  123. package/dist/components/common/icons/delete.js +4 -9
  124. package/dist/components/common/icons/docs.d.ts +9 -0
  125. package/dist/components/common/icons/docs.js +4 -10
  126. package/dist/components/common/icons/drag-n-drop.d.ts +9 -0
  127. package/dist/components/common/icons/drag-n-drop.js +4 -10
  128. package/dist/components/common/icons/draw-polygon.d.ts +10 -0
  129. package/dist/components/common/icons/draw-polygon.js +4 -13
  130. package/dist/components/common/icons/email.d.ts +9 -0
  131. package/dist/components/common/icons/email.js +4 -10
  132. package/dist/components/common/icons/expand.d.ts +9 -0
  133. package/dist/components/common/icons/expand.js +4 -10
  134. package/dist/components/common/icons/eye-seen.d.ts +9 -0
  135. package/dist/components/common/icons/eye-seen.js +4 -10
  136. package/dist/components/common/icons/eye-unseen.d.ts +9 -0
  137. package/dist/components/common/icons/eye-unseen.js +4 -10
  138. package/dist/components/common/icons/file-type.d.ts +8 -0
  139. package/dist/components/common/icons/file-type.js +1 -1
  140. package/dist/components/common/icons/file.d.ts +9 -0
  141. package/dist/components/common/icons/file.js +4 -10
  142. package/dist/components/common/icons/files.d.ts +9 -0
  143. package/dist/components/common/icons/files.js +3 -9
  144. package/dist/components/common/icons/filter-funnel.d.ts +9 -0
  145. package/dist/components/common/icons/filter-funnel.js +4 -10
  146. package/dist/components/common/icons/free-window.d.ts +11 -0
  147. package/dist/components/common/icons/free-window.js +1 -6
  148. package/dist/components/common/icons/gear.d.ts +9 -0
  149. package/dist/components/common/icons/gear.js +4 -10
  150. package/dist/components/common/icons/hash.d.ts +9 -0
  151. package/dist/components/common/icons/hash.js +4 -10
  152. package/dist/components/common/icons/histogram.d.ts +9 -0
  153. package/dist/components/common/icons/histogram.js +3 -8
  154. package/dist/components/common/icons/index.d.ts +78 -0
  155. package/dist/components/common/icons/index.js +15 -1
  156. package/dist/components/common/icons/info.d.ts +12 -0
  157. package/dist/components/common/icons/info.js +4 -10
  158. package/dist/components/common/icons/layers.d.ts +9 -0
  159. package/dist/components/common/icons/layers.js +4 -10
  160. package/dist/components/common/icons/left-arrow.d.ts +9 -0
  161. package/dist/components/common/icons/left-arrow.js +4 -10
  162. package/dist/components/common/icons/legend.d.ts +9 -0
  163. package/dist/components/common/icons/legend.js +4 -10
  164. package/dist/components/common/icons/line-chart.d.ts +9 -0
  165. package/dist/components/common/icons/line-chart.js +4 -9
  166. package/dist/components/common/icons/login.d.ts +9 -0
  167. package/dist/components/common/icons/login.js +4 -9
  168. package/dist/components/common/icons/logout.d.ts +9 -0
  169. package/dist/components/common/icons/logout.js +4 -9
  170. package/dist/components/common/icons/map-icon.d.ts +11 -0
  171. package/dist/components/common/icons/map-icon.js +4 -11
  172. package/dist/components/common/icons/map.d.ts +11 -0
  173. package/dist/components/common/icons/map.js +4 -11
  174. package/dist/components/common/icons/messages.d.ts +9 -0
  175. package/dist/components/common/icons/messages.js +4 -10
  176. package/dist/components/common/icons/minus.d.ts +9 -0
  177. package/dist/components/common/icons/minus.js +4 -10
  178. package/dist/components/common/icons/order-by-dataset.d.ts +12 -0
  179. package/dist/components/common/icons/order-by-dataset.js +51 -0
  180. package/dist/components/common/icons/order-by-list.d.ts +12 -0
  181. package/dist/components/common/icons/order-by-list.js +43 -0
  182. package/dist/components/common/icons/pause.d.ts +9 -0
  183. package/dist/components/common/icons/pause.js +4 -10
  184. package/dist/components/common/icons/picture.d.ts +9 -0
  185. package/dist/components/common/icons/picture.js +3 -9
  186. package/dist/components/common/icons/pin.d.ts +9 -0
  187. package/dist/components/common/icons/pin.js +12 -14
  188. package/dist/components/common/icons/play.d.ts +9 -0
  189. package/dist/components/common/icons/play.js +4 -10
  190. package/dist/components/common/icons/polygon.d.ts +10 -0
  191. package/dist/components/common/icons/polygon.js +4 -13
  192. package/dist/components/common/icons/rectangle.d.ts +10 -0
  193. package/dist/components/common/icons/rectangle.js +4 -13
  194. package/dist/components/common/icons/reduce.d.ts +9 -0
  195. package/dist/components/common/icons/reduce.js +4 -10
  196. package/dist/components/common/icons/reset.d.ts +9 -0
  197. package/dist/components/common/icons/reset.js +4 -10
  198. package/dist/components/common/icons/rocket.d.ts +9 -0
  199. package/dist/components/common/icons/rocket.js +4 -10
  200. package/dist/components/common/icons/save.d.ts +9 -0
  201. package/dist/components/common/icons/save.js +4 -10
  202. package/dist/components/common/icons/save2.d.ts +9 -0
  203. package/dist/components/common/icons/save2.js +4 -10
  204. package/dist/components/common/icons/search.d.ts +9 -0
  205. package/dist/components/common/icons/search.js +4 -10
  206. package/dist/components/common/icons/settings.d.ts +9 -0
  207. package/dist/components/common/icons/settings.js +4 -10
  208. package/dist/components/common/icons/share.d.ts +9 -0
  209. package/dist/components/common/icons/share.js +4 -10
  210. package/dist/components/common/icons/split.d.ts +9 -0
  211. package/dist/components/common/icons/split.js +4 -10
  212. package/dist/components/common/icons/square-select.d.ts +9 -0
  213. package/dist/components/common/icons/square-select.js +4 -10
  214. package/dist/components/common/icons/swap-horizontal.js +5 -6
  215. package/dist/components/common/icons/table.d.ts +9 -0
  216. package/dist/components/common/icons/table.js +4 -9
  217. package/dist/components/common/icons/trash.d.ts +9 -0
  218. package/dist/components/common/icons/trash.js +4 -10
  219. package/dist/components/common/icons/upload.d.ts +9 -0
  220. package/dist/components/common/icons/upload.js +4 -11
  221. package/dist/components/common/icons/vert-dots.d.ts +9 -0
  222. package/dist/components/common/icons/vert-dots.js +4 -10
  223. package/dist/components/common/icons/vert-three-dots.d.ts +9 -0
  224. package/dist/components/common/icons/vert-three-dots.js +4 -10
  225. package/dist/components/common/icons/warning.d.ts +10 -0
  226. package/dist/components/common/icons/warning.js +4 -10
  227. package/dist/components/common/image-preview.d.ts +15 -0
  228. package/dist/components/common/image-preview.js +1 -2
  229. package/dist/components/common/info-helper.d.ts +11 -0
  230. package/dist/components/common/info-helper.js +1 -7
  231. package/dist/components/common/item-selector/accessor.d.ts +7 -0
  232. package/dist/components/common/item-selector/accessor.js +1 -1
  233. package/dist/components/common/item-selector/chickleted-input.d.ts +21 -0
  234. package/dist/components/common/item-selector/chickleted-input.js +4 -24
  235. package/dist/components/common/item-selector/dropdown-list.d.ts +68 -0
  236. package/dist/components/common/item-selector/dropdown-list.js +30 -40
  237. package/dist/components/common/item-selector/item-selector-submenu.js +8 -9
  238. package/dist/components/common/item-selector/item-selector.d.ts +91 -0
  239. package/dist/components/common/item-selector/item-selector.js +33 -66
  240. package/dist/components/common/item-selector/typeahead.d.ts +115 -0
  241. package/dist/components/common/item-selector/typeahead.js +47 -72
  242. package/dist/components/common/line-chart.d.ts +34 -0
  243. package/dist/components/common/line-chart.js +9 -10
  244. package/dist/components/common/loading-spinner.d.ts +9 -0
  245. package/dist/components/common/loading-spinner.js +2 -4
  246. package/dist/components/common/logo.d.ts +8 -0
  247. package/dist/components/common/logo.js +5 -14
  248. package/dist/components/common/map-layer-selector.d.ts +13 -0
  249. package/dist/components/common/map-layer-selector.js +1 -2
  250. package/dist/components/common/modal.d.ts +49 -0
  251. package/dist/components/common/modal.js +7 -21
  252. package/dist/components/common/portaled.d.ts +527 -0
  253. package/dist/components/common/portaled.js +29 -28
  254. package/dist/components/common/progress-bar.d.ts +12 -0
  255. package/dist/components/common/progress-bar.js +1 -2
  256. package/dist/components/common/range-brush.d.ts +19 -0
  257. package/dist/components/common/range-brush.js +29 -30
  258. package/dist/components/common/range-plot.d.ts +35 -0
  259. package/dist/components/common/range-plot.js +2 -15
  260. package/dist/components/common/range-slider.d.ts +32 -0
  261. package/dist/components/common/range-slider.js +31 -46
  262. package/dist/components/common/slider/mouse-event.d.ts +27 -0
  263. package/dist/components/common/slider/mouse-event.js +49 -44
  264. package/dist/components/common/slider/slider-bar-handle.d.ts +29 -0
  265. package/dist/components/common/slider/slider-bar-handle.js +7 -16
  266. package/dist/components/common/slider/slider-handle.d.ts +33 -0
  267. package/dist/components/common/slider/slider-handle.js +12 -19
  268. package/dist/components/common/slider/slider.d.ts +70 -0
  269. package/dist/components/common/slider/slider.js +42 -62
  270. package/dist/components/common/styled-components.d.ts +119 -0
  271. package/dist/components/common/styled-components.js +21 -11
  272. package/dist/components/common/switch.d.ts +16 -0
  273. package/dist/components/common/switch.js +1 -16
  274. package/dist/components/common/time-range-slider-time-title.d.ts +9 -0
  275. package/dist/components/common/time-range-slider-time-title.js +1 -1
  276. package/dist/components/common/time-range-slider.d.ts +32 -0
  277. package/dist/components/common/time-range-slider.js +4 -22
  278. package/dist/components/common/time-slider-marker.d.ts +21 -0
  279. package/dist/components/common/time-slider-marker.js +2 -2
  280. package/dist/components/common/tippy-tooltip.d.ts +4 -0
  281. package/dist/components/common/tippy-tooltip.js +115 -0
  282. package/dist/components/common/toolbar-item.d.ts +14 -0
  283. package/dist/components/common/toolbar-item.js +8 -6
  284. package/dist/components/common/toolbar.d.ts +5 -0
  285. package/dist/components/common/toolbar.js +1 -1
  286. package/dist/components/common/vertical-toolbar.d.ts +3 -0
  287. package/dist/components/common/vertical-toolbar.js +1 -1
  288. package/dist/components/container.d.ts +39 -0
  289. package/dist/components/container.js +38 -31
  290. package/dist/components/context.d.ts +7 -0
  291. package/dist/components/context.js +1 -1
  292. package/dist/components/editor/constants.d.ts +17 -0
  293. package/dist/components/editor/constants.js +1 -1
  294. package/dist/components/editor/editor.d.ts +29 -0
  295. package/dist/components/editor/editor.js +26 -42
  296. package/dist/components/editor/feature-action-panel.d.ts +27 -0
  297. package/dist/components/editor/feature-action-panel.js +13 -18
  298. package/dist/components/editor/feature-styles.d.ts +24 -0
  299. package/dist/components/editor/feature-styles.js +3 -3
  300. package/dist/components/editor/handle-style.d.ts +38 -0
  301. package/dist/components/editor/handle-style.js +3 -3
  302. package/dist/components/filters/components.d.ts +1 -0
  303. package/dist/components/filters/components.js +1 -1
  304. package/dist/components/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
  305. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +5 -8
  306. package/dist/components/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
  307. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +3 -10
  308. package/dist/components/filters/filter-panels/new-filter-panel.d.ts +12 -0
  309. package/dist/components/filters/filter-panels/new-filter-panel.js +4 -10
  310. package/dist/components/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
  311. package/dist/components/filters/filter-panels/polygon-filter-panel.js +6 -11
  312. package/dist/components/filters/filter-panels/range-filter-panel.d.ts +9 -0
  313. package/dist/components/filters/filter-panels/range-filter-panel.js +3 -10
  314. package/dist/components/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
  315. package/dist/components/filters/filter-panels/single-select-filter-panel.js +3 -10
  316. package/dist/components/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
  317. package/dist/components/filters/filter-panels/time-range-filter-panel.js +6 -9
  318. package/dist/components/filters/filter-panels/types.d.ts +36 -0
  319. package/dist/components/filters/filter-panels/types.js +6 -0
  320. package/dist/components/filters/index.d.ts +5 -0
  321. package/dist/components/filters/index.js +1 -1
  322. package/dist/components/filters/multi-select-filter.d.ts +3 -0
  323. package/dist/components/filters/multi-select-filter.js +1 -1
  324. package/dist/components/filters/polygon-filter.d.ts +4 -0
  325. package/dist/components/filters/polygon-filter.js +3 -4
  326. package/dist/components/filters/range-filter.d.ts +8 -0
  327. package/dist/components/filters/range-filter.js +2 -2
  328. package/dist/components/filters/single-select-filter.d.ts +3 -0
  329. package/dist/components/filters/single-select-filter.js +1 -1
  330. package/dist/components/filters/time-range-filter.d.ts +28 -0
  331. package/dist/components/filters/time-range-filter.js +1 -1
  332. package/dist/components/filters/time-widget.d.ts +14 -0
  333. package/dist/components/filters/time-widget.js +2 -3
  334. package/dist/components/filters/types.d.ts +53 -0
  335. package/dist/components/filters/types.js +6 -0
  336. package/dist/components/geocoder/geocoder.d.ts +33 -0
  337. package/dist/components/geocoder/geocoder.js +17 -17
  338. package/dist/components/geocoder-panel.d.ts +28 -0
  339. package/dist/components/geocoder-panel.js +24 -31
  340. package/dist/components/index.d.ts +165 -0
  341. package/dist/components/index.js +98 -15
  342. package/dist/components/injector.d.ts +25 -0
  343. package/dist/components/injector.js +4 -4
  344. package/dist/components/kepler-gl.d.ts +302 -0
  345. package/dist/components/kepler-gl.js +60 -43
  346. package/dist/components/map/coordinate-info.d.ts +7 -0
  347. package/dist/components/map/coordinate-info.js +1 -1
  348. package/dist/components/map/layer-hover-info.d.ts +13 -0
  349. package/dist/components/map/layer-hover-info.js +1 -2
  350. package/dist/components/map/layer-selector-panel.d.ts +22 -0
  351. package/dist/components/map/layer-selector-panel.js +2 -2
  352. package/dist/components/map/locale-panel.d.ts +16 -0
  353. package/dist/components/map/locale-panel.js +17 -13
  354. package/dist/components/map/map-control-panel.d.ts +14 -0
  355. package/dist/components/map/map-control-panel.js +20 -5
  356. package/dist/components/map/map-control-toolbar.d.ts +2 -0
  357. package/dist/components/map/map-control-toolbar.js +1 -1
  358. package/dist/components/map/map-control-tooltip.d.ts +7 -0
  359. package/dist/components/map/map-control-tooltip.js +3 -3
  360. package/dist/components/map/map-control.d.ts +44 -0
  361. package/dist/components/map/map-control.js +2 -2
  362. package/dist/components/map/map-draw-panel.d.ts +21 -0
  363. package/dist/components/map/map-draw-panel.js +19 -13
  364. package/dist/components/map/map-legend-panel.d.ts +23 -0
  365. package/dist/components/map/map-legend-panel.js +101 -56
  366. package/dist/components/map/map-legend.d.ts +55 -0
  367. package/dist/components/map/map-legend.js +20 -12
  368. package/dist/components/map/map-popover.d.ts +37 -0
  369. package/dist/components/map/map-popover.js +7 -4
  370. package/dist/components/map/split-map-button.d.ts +19 -0
  371. package/dist/components/map/split-map-button.js +18 -15
  372. package/dist/components/map/toggle-3d-button.d.ts +16 -0
  373. package/dist/components/map/toggle-3d-button.js +19 -15
  374. package/dist/components/map-container.d.ts +58 -0
  375. package/dist/components/map-container.js +60 -73
  376. package/dist/components/maps-layout.d.ts +10 -0
  377. package/dist/components/maps-layout.js +6 -5
  378. package/dist/components/modal-container.d.ts +65 -0
  379. package/dist/components/modal-container.js +29 -54
  380. package/dist/components/modals/add-map-style-modal.d.ts +17 -0
  381. package/dist/components/modals/add-map-style-modal.js +10 -18
  382. package/dist/components/modals/cloud-tile.d.ts +15 -0
  383. package/dist/components/modals/cloud-tile.js +1 -1
  384. package/dist/components/modals/data-table-modal.d.ts +29 -0
  385. package/dist/components/modals/data-table-modal.js +33 -29
  386. package/dist/components/modals/delete-data-modal.d.ts +10 -0
  387. package/dist/components/modals/delete-data-modal.js +1 -1
  388. package/dist/components/modals/error-display.d.ts +6 -0
  389. package/dist/components/modals/error-display.js +1 -1
  390. package/dist/components/modals/export-data-modal.d.ts +25 -0
  391. package/dist/components/modals/export-data-modal.js +12 -28
  392. package/dist/components/modals/export-image-modal.d.ts +18 -0
  393. package/dist/components/modals/export-image-modal.js +2 -2
  394. package/dist/components/modals/export-map-modal/components.d.ts +8 -0
  395. package/dist/components/modals/export-map-modal/components.js +1 -1
  396. package/dist/components/modals/export-map-modal/export-html-map.d.ts +12 -0
  397. package/dist/components/modals/export-map-modal/export-html-map.js +1 -2
  398. package/dist/components/modals/export-map-modal/export-json-map.d.ts +9 -0
  399. package/dist/components/modals/export-map-modal/export-json-map.js +20 -9
  400. package/dist/components/modals/export-map-modal/export-map-modal.d.ts +27 -0
  401. package/dist/components/modals/export-map-modal/export-map-modal.js +6 -18
  402. package/dist/components/modals/image-modal-container.d.ts +18 -0
  403. package/dist/components/modals/image-modal-container.js +5 -5
  404. package/dist/components/modals/load-data-modal.d.ts +33 -0
  405. package/dist/components/modals/load-data-modal.js +4 -4
  406. package/dist/components/modals/load-storage-map.d.ts +26 -0
  407. package/dist/components/modals/load-storage-map.js +10 -12
  408. package/dist/components/modals/loading-dialog.d.ts +7 -0
  409. package/dist/components/modals/loading-dialog.js +1 -1
  410. package/dist/components/modals/modal-dialog.d.ts +2 -0
  411. package/dist/components/modals/modal-dialog.js +1 -1
  412. package/dist/components/modals/modal-tabs.d.ts +27 -0
  413. package/dist/components/modals/modal-tabs.js +2 -2
  414. package/dist/components/modals/overwrite-map-modal.d.ts +16 -0
  415. package/dist/components/modals/overwrite-map-modal.js +1 -1
  416. package/dist/components/modals/provider-modal-container.d.ts +23 -0
  417. package/dist/components/modals/provider-modal-container.js +8 -13
  418. package/dist/components/modals/save-map-modal.d.ts +29 -0
  419. package/dist/components/modals/save-map-modal.js +5 -6
  420. package/dist/components/modals/share-map-modal.d.ts +30 -0
  421. package/dist/components/modals/share-map-modal.js +19 -22
  422. package/dist/components/modals/status-panel.d.ts +13 -0
  423. package/dist/components/modals/status-panel.js +1 -1
  424. package/dist/components/modals/storage-map-viewer.d.ts +21 -0
  425. package/dist/components/modals/storage-map-viewer.js +5 -12
  426. package/dist/components/notification-panel/notification-item.d.ts +66 -0
  427. package/dist/components/notification-panel/notification-item.js +7 -18
  428. package/dist/components/notification-panel.d.ts +61 -0
  429. package/dist/components/notification-panel.js +6 -13
  430. package/dist/components/performance.d.ts +4 -0
  431. package/dist/components/performance.js +2 -1
  432. package/dist/components/plot-container.d.ts +24 -0
  433. package/dist/components/plot-container.js +35 -40
  434. package/dist/components/side-panel/cloud-storage-dropdown.d.ts +6 -0
  435. package/dist/components/side-panel/cloud-storage-dropdown.js +1 -1
  436. package/dist/components/side-panel/common/dataset-info.d.ts +3 -0
  437. package/dist/components/side-panel/common/dataset-info.js +1 -1
  438. package/dist/components/side-panel/common/dataset-tag.d.ts +3 -0
  439. package/dist/components/side-panel/common/dataset-tag.js +37 -13
  440. package/dist/components/side-panel/common/dataset-title.d.ts +8 -0
  441. package/dist/components/side-panel/common/dataset-title.js +49 -19
  442. package/dist/components/side-panel/common/source-data-catalog.d.ts +9 -0
  443. package/dist/components/side-panel/common/source-data-catalog.js +5 -3
  444. package/dist/components/side-panel/common/source-data-selector.d.ts +8 -0
  445. package/dist/components/side-panel/common/source-data-selector.js +18 -13
  446. package/dist/components/side-panel/common/types.d.ts +58 -0
  447. package/dist/components/side-panel/common/types.js +6 -0
  448. package/dist/components/side-panel/custom-panel.d.ts +9 -0
  449. package/dist/components/side-panel/custom-panel.js +1 -1
  450. package/dist/components/side-panel/filter-manager.d.ts +20 -0
  451. package/dist/components/side-panel/filter-manager.js +7 -15
  452. package/dist/components/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
  453. package/dist/components/side-panel/filter-panel/filter-panel-header.js +3 -6
  454. package/dist/components/side-panel/filter-panel/filter-panel.d.ts +23 -0
  455. package/dist/components/side-panel/filter-panel/filter-panel.js +15 -31
  456. package/dist/components/side-panel/interaction-manager.d.ts +14 -0
  457. package/dist/components/side-panel/interaction-manager.js +1 -1
  458. package/dist/components/side-panel/interaction-panel/brush-config.d.ts +15 -0
  459. package/dist/components/side-panel/interaction-panel/brush-config.js +1 -1
  460. package/dist/components/side-panel/interaction-panel/interaction-panel.d.ts +19 -0
  461. package/dist/components/side-panel/interaction-panel/interaction-panel.js +9 -17
  462. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
  463. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +15 -21
  464. package/dist/components/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
  465. package/dist/components/side-panel/interaction-panel/tooltip-config.js +7 -3
  466. package/dist/components/side-panel/layer-manager.d.ts +46 -0
  467. package/dist/components/side-panel/layer-manager.js +87 -192
  468. package/dist/components/side-panel/layer-panel/add-layer-button.d.ts +10 -0
  469. package/dist/components/side-panel/layer-panel/add-layer-button.js +147 -0
  470. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.d.ts +8 -0
  471. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +2 -2
  472. package/dist/components/side-panel/layer-panel/color-palette.d.ts +13 -0
  473. package/dist/components/side-panel/layer-panel/color-palette.js +7 -15
  474. package/dist/components/side-panel/layer-panel/color-range-selector.d.ts +129 -0
  475. package/dist/components/side-panel/layer-panel/color-range-selector.js +105 -142
  476. package/dist/components/side-panel/layer-panel/color-selector.d.ts +101 -0
  477. package/dist/components/side-panel/layer-panel/color-selector.js +16 -37
  478. package/dist/components/side-panel/layer-panel/column-selector.d.ts +22 -0
  479. package/dist/components/side-panel/layer-panel/column-selector.js +3 -3
  480. package/dist/components/side-panel/layer-panel/custom-markers-config-group.d.ts +6 -0
  481. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +2 -2
  482. package/dist/components/side-panel/layer-panel/custom-palette.d.ts +38 -0
  483. package/dist/components/side-panel/layer-panel/custom-palette.js +55 -61
  484. package/dist/components/side-panel/layer-panel/custom-picker.d.ts +67 -0
  485. package/dist/components/side-panel/layer-panel/custom-picker.js +7 -16
  486. package/dist/components/side-panel/layer-panel/dataset-layer-group.d.ts +24 -0
  487. package/dist/components/side-panel/layer-panel/dataset-layer-group.js +81 -0
  488. package/dist/components/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
  489. package/dist/components/side-panel/layer-panel/dataset-layer-section.js +74 -0
  490. package/dist/components/side-panel/layer-panel/dataset-section.d.ts +26 -0
  491. package/dist/components/side-panel/layer-panel/dataset-section.js +91 -0
  492. package/dist/components/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
  493. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +1 -1
  494. package/dist/components/side-panel/layer-panel/hex-column-config.d.ts +62 -0
  495. package/dist/components/side-panel/layer-panel/hex-column-config.js +4 -5
  496. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.d.ts +8 -0
  497. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +1 -1
  498. package/dist/components/side-panel/layer-panel/layer-column-config.d.ts +20 -0
  499. package/dist/components/side-panel/layer-panel/layer-column-config.js +2 -13
  500. package/dist/components/side-panel/layer-panel/layer-config-group.d.ts +37 -0
  501. package/dist/components/side-panel/layer-panel/layer-config-group.js +11 -13
  502. package/dist/components/side-panel/layer-panel/layer-configurator.d.ts +415 -0
  503. package/dist/components/side-panel/layer-panel/layer-configurator.js +70 -63
  504. package/dist/components/side-panel/layer-panel/layer-list.d.ts +20 -0
  505. package/dist/components/side-panel/layer-panel/layer-list.js +168 -0
  506. package/dist/components/side-panel/layer-panel/layer-panel-header.d.ts +43 -0
  507. package/dist/components/side-panel/layer-panel/layer-panel-header.js +10 -24
  508. package/dist/components/side-panel/layer-panel/layer-panel.d.ts +40 -0
  509. package/dist/components/side-panel/layer-panel/layer-panel.js +19 -38
  510. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.d.ts +17 -0
  511. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
  512. package/dist/components/side-panel/layer-panel/layer-type-list-item.d.ts +11 -0
  513. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +1 -1
  514. package/dist/components/side-panel/layer-panel/layer-type-selector.d.ts +23 -0
  515. package/dist/components/side-panel/layer-panel/layer-type-selector.js +2 -8
  516. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.d.ts +23 -0
  517. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +3 -3
  518. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
  519. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +116 -0
  520. package/dist/components/side-panel/layer-panel/single-color-palette.d.ts +12 -0
  521. package/dist/components/side-panel/layer-panel/single-color-palette.js +27 -58
  522. package/dist/components/side-panel/layer-panel/text-label-panel.d.ts +18 -0
  523. package/dist/components/side-panel/layer-panel/text-label-panel.js +9 -16
  524. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.d.ts +35 -0
  525. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +22 -35
  526. package/dist/components/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
  527. package/dist/components/side-panel/layer-panel/vis-config-slider.js +130 -34
  528. package/dist/components/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
  529. package/dist/components/side-panel/layer-panel/vis-config-switch.js +1 -11
  530. package/dist/components/side-panel/map-manager.d.ts +21 -0
  531. package/dist/components/side-panel/map-manager.js +9 -17
  532. package/dist/components/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
  533. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +1 -1
  534. package/dist/components/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
  535. package/dist/components/side-panel/map-style-panel/map-style-selector.js +1 -1
  536. package/dist/components/side-panel/panel-dropdown.d.ts +18 -0
  537. package/dist/components/side-panel/panel-dropdown.js +5 -13
  538. package/dist/components/side-panel/panel-header-action.d.ts +20 -0
  539. package/dist/components/side-panel/panel-header-action.js +5 -18
  540. package/dist/components/side-panel/panel-header.d.ts +78 -0
  541. package/dist/components/side-panel/panel-header.js +17 -29
  542. package/dist/components/side-panel/panel-tab.d.ts +20 -0
  543. package/dist/components/side-panel/panel-tab.js +1 -1
  544. package/dist/components/side-panel/panel-title.d.ts +4 -0
  545. package/dist/components/side-panel/panel-title.js +7 -2
  546. package/dist/components/side-panel/panel-toggle.d.ts +14 -0
  547. package/dist/components/side-panel/panel-toggle.js +2 -9
  548. package/dist/components/side-panel/side-bar.d.ts +76 -0
  549. package/dist/components/side-panel/side-bar.js +6 -14
  550. package/dist/components/side-panel.d.ts +134 -0
  551. package/dist/components/side-panel.js +19 -17
  552. package/dist/components/types.d.ts +44 -0
  553. package/dist/components/types.js +6 -0
  554. package/dist/connect/keplergl-connect.d.ts +5 -0
  555. package/dist/connect/keplergl-connect.js +1 -1
  556. package/dist/connect/with-local-selector.d.ts +6 -0
  557. package/dist/connect/with-local-selector.js +10 -13
  558. package/dist/constants/action-types.d.ts +111 -0
  559. package/dist/constants/action-types.js +8 -3
  560. package/dist/constants/color-palette.d.ts +491 -0
  561. package/dist/constants/color-palette.js +1 -1
  562. package/dist/constants/color-ranges.d.ts +24 -0
  563. package/dist/constants/color-ranges.js +3 -1
  564. package/dist/constants/custom-color-ranges.d.ts +37 -0
  565. package/dist/constants/custom-color-ranges.js +1 -1
  566. package/dist/constants/default-settings.d.ts +773 -0
  567. package/dist/constants/default-settings.js +25 -13
  568. package/dist/constants/index.d.ts +9 -0
  569. package/dist/constants/index.js +1 -1
  570. package/dist/constants/keyevent.d.ts +2 -0
  571. package/dist/constants/keyevent.js +1 -1
  572. package/dist/constants/tooltip.d.ts +165 -0
  573. package/dist/constants/tooltip.js +1 -1
  574. package/dist/constants/user-feedbacks.d.ts +5 -0
  575. package/dist/constants/user-feedbacks.js +1 -1
  576. package/dist/constants/user-guides.d.ts +9 -0
  577. package/dist/constants/user-guides.js +1 -1
  578. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.d.ts +13 -0
  579. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +13 -6
  580. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.d.ts +7 -0
  581. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +1 -1
  582. package/dist/deckgl-layers/3d-building-layer/types.d.ts +37 -0
  583. package/dist/deckgl-layers/3d-building-layer/types.js +6 -0
  584. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +4 -5
  585. package/dist/deckgl-layers/column-layer/enhanced-column-layer.d.ts +6 -0
  586. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +9 -9
  587. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +13 -0
  588. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +15 -14
  589. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.d.ts +13 -0
  590. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +15 -14
  591. package/dist/deckgl-layers/layer-utils/cluster-utils.js +4 -5
  592. package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +91 -0
  593. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +9 -10
  594. package/dist/deckgl-layers/layer-utils/shader-utils.d.ts +1 -0
  595. package/dist/deckgl-layers/layer-utils/shader-utils.js +1 -1
  596. package/dist/deckgl-layers/line-layer/line-layer.d.ts +12 -0
  597. package/dist/deckgl-layers/line-layer/line-layer.js +17 -15
  598. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.d.ts +8 -0
  599. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +18 -12
  600. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.d.ts +18 -0
  601. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +14 -5
  602. package/dist/index.d.ts +11 -0
  603. package/dist/index.js +2 -2
  604. package/dist/layers/aggregation-layer.d.ts +70 -0
  605. package/dist/layers/aggregation-layer.js +34 -24
  606. package/dist/layers/arc-layer/arc-layer-icon.d.ts +16 -0
  607. package/dist/layers/arc-layer/arc-layer-icon.js +4 -5
  608. package/dist/layers/arc-layer/arc-layer.d.ts +143 -0
  609. package/dist/layers/arc-layer/arc-layer.js +21 -19
  610. package/dist/layers/base-layer.d.ts +436 -0
  611. package/dist/layers/base-layer.js +96 -80
  612. package/dist/layers/cluster-layer/cluster-layer-icon.d.ts +16 -0
  613. package/dist/layers/cluster-layer/cluster-layer-icon.js +4 -5
  614. package/dist/layers/cluster-layer/cluster-layer.d.ts +39 -0
  615. package/dist/layers/cluster-layer/cluster-layer.js +4 -5
  616. package/dist/layers/default-layer-icon.d.ts +14 -0
  617. package/dist/layers/default-layer-icon.js +4 -5
  618. package/dist/layers/geojson-layer/geojson-layer-icon.d.ts +15 -0
  619. package/dist/layers/geojson-layer/geojson-layer-icon.js +4 -5
  620. package/dist/layers/geojson-layer/geojson-layer.d.ts +227 -0
  621. package/dist/layers/geojson-layer/geojson-layer.js +25 -15
  622. package/dist/layers/geojson-layer/geojson-utils.d.ts +44 -0
  623. package/dist/layers/geojson-layer/geojson-utils.js +19 -6
  624. package/dist/layers/grid-layer/grid-layer-icon.d.ts +15 -0
  625. package/dist/layers/grid-layer/grid-layer-icon.js +4 -5
  626. package/dist/layers/grid-layer/grid-layer.d.ts +74 -0
  627. package/dist/layers/grid-layer/grid-layer.js +5 -5
  628. package/dist/layers/grid-layer/grid-utils.d.ts +24 -0
  629. package/dist/layers/grid-layer/grid-utils.js +7 -7
  630. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.d.ts +16 -0
  631. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +4 -5
  632. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.d.ts +170 -0
  633. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +15 -8
  634. package/dist/layers/h3-hexagon-layer/h3-utils.d.ts +20 -0
  635. package/dist/layers/h3-hexagon-layer/h3-utils.js +2 -2
  636. package/dist/layers/heatmap-layer/heatmap-layer-icon.d.ts +15 -0
  637. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +4 -5
  638. package/dist/layers/heatmap-layer/heatmap-layer.d.ts +144 -0
  639. package/dist/layers/heatmap-layer/heatmap-layer.js +26 -32
  640. package/dist/layers/hexagon-layer/hexagon-layer-icon.d.ts +15 -0
  641. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +4 -5
  642. package/dist/layers/hexagon-layer/hexagon-layer.d.ts +78 -0
  643. package/dist/layers/hexagon-layer/hexagon-layer.js +5 -5
  644. package/dist/layers/hexagon-layer/hexagon-utils.d.ts +7 -0
  645. package/dist/layers/hexagon-layer/hexagon-utils.js +1 -1
  646. package/dist/layers/icon-layer/icon-info-modal.d.ts +3 -0
  647. package/dist/layers/icon-layer/icon-info-modal.js +3 -2
  648. package/dist/layers/icon-layer/icon-layer-icon.d.ts +15 -0
  649. package/dist/layers/icon-layer/icon-layer-icon.js +4 -5
  650. package/dist/layers/icon-layer/icon-layer.d.ts +119 -0
  651. package/dist/layers/icon-layer/icon-layer.js +24 -12
  652. package/dist/layers/index.d.ts +53 -0
  653. package/dist/layers/index.js +3 -3
  654. package/dist/layers/layer-factory.d.ts +150 -0
  655. package/dist/layers/layer-factory.js +54 -39
  656. package/dist/layers/layer-text-label.d.ts +7 -0
  657. package/dist/layers/layer-text-label.js +1 -3
  658. package/dist/layers/layer-update.d.ts +9 -0
  659. package/dist/layers/layer-update.js +1 -2
  660. package/dist/layers/line-layer/line-layer-icon.d.ts +15 -0
  661. package/dist/layers/line-layer/line-layer-icon.js +4 -5
  662. package/dist/layers/line-layer/line-layer.d.ts +136 -0
  663. package/dist/layers/line-layer/line-layer.js +28 -26
  664. package/dist/layers/mapbox-utils.d.ts +57 -0
  665. package/dist/layers/mapbox-utils.js +9 -14
  666. package/dist/layers/mapboxgl-layer.d.ts +87 -0
  667. package/dist/layers/mapboxgl-layer.js +19 -13
  668. package/dist/layers/point-layer/point-layer-icon.d.ts +15 -0
  669. package/dist/layers/point-layer/point-layer-icon.js +4 -5
  670. package/dist/layers/point-layer/point-layer.d.ts +272 -0
  671. package/dist/layers/point-layer/point-layer.js +31 -17
  672. package/dist/layers/s2-geometry-layer/s2-geometry-layer.d.ts +189 -0
  673. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +15 -11
  674. package/dist/layers/s2-geometry-layer/s2-layer-icon.d.ts +15 -0
  675. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +4 -5
  676. package/dist/layers/s2-geometry-layer/s2-utils.d.ts +7 -0
  677. package/dist/layers/s2-geometry-layer/s2-utils.js +7 -1
  678. package/dist/layers/scenegraph-layer/scenegraph-info-modal.d.ts +3 -0
  679. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +1 -1
  680. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.d.ts +15 -0
  681. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +4 -5
  682. package/dist/layers/scenegraph-layer/scenegraph-layer.d.ts +80 -0
  683. package/dist/layers/scenegraph-layer/scenegraph-layer.js +9 -6
  684. package/dist/layers/trip-layer/trip-info-modal.d.ts +3 -0
  685. package/dist/layers/trip-layer/trip-info-modal.js +1 -1
  686. package/dist/layers/trip-layer/trip-layer-icon.d.ts +15 -0
  687. package/dist/layers/trip-layer/trip-layer-icon.js +4 -5
  688. package/dist/layers/trip-layer/trip-layer.d.ts +157 -0
  689. package/dist/layers/trip-layer/trip-layer.js +21 -13
  690. package/dist/layers/trip-layer/trip-utils.d.ts +31 -0
  691. package/dist/layers/trip-layer/trip-utils.js +13 -14
  692. package/dist/layers/types.d.ts +15 -0
  693. package/dist/layers/types.js +1 -1
  694. package/dist/localization/formatted-message.d.ts +12 -0
  695. package/dist/localization/formatted-message.js +6 -7
  696. package/dist/localization/index.d.ts +5 -0
  697. package/dist/localization/index.js +2 -2
  698. package/dist/localization/locales.d.ts +27 -0
  699. package/dist/localization/locales.js +1 -1
  700. package/dist/localization/messages.d.ts +4 -0
  701. package/dist/localization/messages.js +37 -0
  702. package/dist/localization/translations/ca.d.ts +438 -0
  703. package/dist/localization/translations/ca.js +466 -0
  704. package/dist/localization/translations/cn.d.ts +441 -0
  705. package/dist/localization/translations/cn.js +469 -0
  706. package/dist/localization/translations/en.d.ts +466 -0
  707. package/dist/localization/translations/en.js +494 -0
  708. package/dist/localization/translations/es.d.ts +438 -0
  709. package/dist/localization/translations/es.js +466 -0
  710. package/dist/localization/translations/fi.d.ts +410 -0
  711. package/dist/localization/translations/fi.js +438 -0
  712. package/dist/localization/translations/ja.d.ts +439 -0
  713. package/dist/localization/translations/ja.js +467 -0
  714. package/dist/localization/translations/pt.d.ts +410 -0
  715. package/dist/localization/translations/pt.js +438 -0
  716. package/dist/localization/translations/ru.d.ts +447 -0
  717. package/dist/localization/translations/ru.js +475 -0
  718. package/dist/middleware/index.d.ts +8 -0
  719. package/dist/middleware/index.js +3 -3
  720. package/dist/processors/data-processor.d.ts +242 -0
  721. package/dist/processors/data-processor.js +44 -43
  722. package/dist/processors/file-handler.d.ts +28 -0
  723. package/dist/processors/file-handler.js +18 -17
  724. package/dist/processors/index.d.ts +3 -0
  725. package/dist/processors/index.js +12 -1
  726. package/dist/processors/types.d.ts +21 -0
  727. package/dist/processors/types.js +6 -0
  728. package/dist/reducers/combined-updaters.d.ts +52 -0
  729. package/dist/reducers/combined-updaters.js +3 -7
  730. package/dist/reducers/composer-helpers.d.ts +21 -0
  731. package/dist/reducers/composer-helpers.js +7 -7
  732. package/dist/reducers/composers.d.ts +12 -0
  733. package/dist/reducers/composers.js +2 -2
  734. package/dist/reducers/core.d.ts +65 -0
  735. package/dist/reducers/core.js +2 -6
  736. package/dist/reducers/index.d.ts +19 -0
  737. package/dist/reducers/index.js +14 -2
  738. package/dist/reducers/map-state-updaters.d.ts +96 -0
  739. package/dist/reducers/map-state-updaters.js +4 -11
  740. package/dist/reducers/map-state.d.ts +4 -0
  741. package/dist/reducers/map-state.js +3 -3
  742. package/dist/reducers/map-style-updaters.d.ts +204 -0
  743. package/dist/reducers/map-style-updaters.js +23 -37
  744. package/dist/reducers/map-style.d.ts +16 -0
  745. package/dist/reducers/map-style.js +3 -3
  746. package/dist/reducers/provider-state-updaters.d.ts +41 -0
  747. package/dist/reducers/provider-state-updaters.js +27 -72
  748. package/dist/reducers/provider-state.d.ts +4 -0
  749. package/dist/reducers/provider-state.js +3 -3
  750. package/dist/reducers/root.d.ts +24 -0
  751. package/dist/reducers/root.js +4 -4
  752. package/dist/reducers/types.d.ts +16 -0
  753. package/dist/reducers/types.js +6 -0
  754. package/dist/reducers/ui-state-updaters.d.ts +434 -0
  755. package/dist/reducers/ui-state-updaters.js +27 -38
  756. package/dist/reducers/ui-state.d.ts +3 -0
  757. package/dist/reducers/ui-state.js +5 -4
  758. package/dist/reducers/vis-state-merger.d.ts +110 -0
  759. package/dist/reducers/vis-state-merger.js +47 -43
  760. package/dist/reducers/vis-state-selectors.d.ts +10 -0
  761. package/dist/reducers/vis-state-selectors.js +1 -1
  762. package/dist/reducers/vis-state-updaters.d.ts +645 -0
  763. package/dist/reducers/vis-state-updaters.js +72 -126
  764. package/dist/reducers/vis-state.d.ts +4 -0
  765. package/dist/reducers/vis-state.js +4 -4
  766. package/dist/schemas/dataset-schema.d.ts +17 -0
  767. package/dist/schemas/dataset-schema.js +9 -12
  768. package/dist/schemas/index.d.ts +8 -0
  769. package/dist/schemas/index.js +2 -2
  770. package/dist/schemas/map-state-schema.d.ts +23 -0
  771. package/dist/schemas/map-state-schema.js +1 -1
  772. package/dist/schemas/map-style-schema.d.ts +38 -0
  773. package/dist/schemas/map-style-schema.js +5 -7
  774. package/dist/schemas/schema-manager.d.ts +271 -0
  775. package/dist/schemas/schema-manager.js +7 -5
  776. package/dist/schemas/schema-utils.d.ts +11 -0
  777. package/dist/schemas/schema-utils.js +1 -1
  778. package/dist/schemas/schema.d.ts +37 -0
  779. package/dist/schemas/schema.js +4 -4
  780. package/dist/schemas/versions.d.ts +5 -0
  781. package/dist/schemas/versions.js +1 -1
  782. package/dist/schemas/vis-state-schema.d.ts +214 -0
  783. package/dist/schemas/vis-state-schema.js +57 -77
  784. package/dist/styles/base.d.ts +1530 -0
  785. package/dist/styles/base.js +8 -4
  786. package/dist/styles/index.d.ts +2 -0
  787. package/dist/styles/index.js +1 -1
  788. package/dist/styles/media-breakpoints.d.ts +13 -0
  789. package/dist/styles/media-breakpoints.js +26 -7
  790. package/dist/tasks/tasks.d.ts +15 -0
  791. package/dist/tasks/tasks.js +12 -12
  792. package/dist/templates/export-map-html.d.ts +9 -0
  793. package/dist/templates/export-map-html.js +1 -1
  794. package/dist/utils/aggregate-utils.d.ts +3 -0
  795. package/dist/utils/aggregate-utils.js +1 -1
  796. package/dist/utils/color-utils.d.ts +44 -0
  797. package/dist/utils/color-utils.js +24 -9
  798. package/dist/utils/custom-scales.js +1 -1
  799. package/dist/utils/data-scale-utils.d.ts +23 -0
  800. package/dist/utils/data-scale-utils.js +1 -6
  801. package/dist/utils/data-utils.d.ts +115 -0
  802. package/dist/utils/data-utils.js +18 -39
  803. package/dist/utils/dataset-utils.d.ts +38 -0
  804. package/dist/utils/dataset-utils.js +4 -5
  805. package/dist/utils/dom-to-image.d.ts +73 -0
  806. package/dist/utils/dom-to-image.js +5 -5
  807. package/dist/utils/dom-utils.d.ts +20 -0
  808. package/dist/utils/dom-utils.js +1 -1
  809. package/dist/utils/export-utils.d.ts +56 -0
  810. package/dist/utils/export-utils.js +31 -25
  811. package/dist/utils/filter-utils.d.ts +267 -0
  812. package/dist/utils/filter-utils.js +40 -95
  813. package/dist/utils/gl-utils.d.ts +1 -0
  814. package/dist/utils/gl-utils.js +1 -1
  815. package/dist/utils/gpu-filter-utils.d.ts +28 -0
  816. package/dist/utils/gpu-filter-utils.js +13 -20
  817. package/dist/utils/index.d.ts +22 -0
  818. package/dist/utils/index.js +136 -38
  819. package/dist/utils/interaction-utils.d.ts +36 -0
  820. package/dist/utils/interaction-utils.js +10 -17
  821. package/dist/utils/layer-utils.d.ts +54 -0
  822. package/dist/utils/layer-utils.js +2 -3
  823. package/dist/utils/locale-utils.d.ts +2 -0
  824. package/dist/utils/locale-utils.js +5 -5
  825. package/dist/utils/map-info-utils.d.ts +1 -0
  826. package/dist/utils/map-info-utils.js +1 -1
  827. package/dist/utils/map-style-utils/mapbox-gl-style-editor.d.ts +64 -0
  828. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +18 -18
  829. package/dist/utils/map-style-utils/mapbox-utils.d.ts +3 -0
  830. package/dist/utils/map-style-utils/mapbox-utils.js +1 -1
  831. package/dist/utils/mapbox-utils.d.ts +7 -0
  832. package/dist/utils/mapbox-utils.js +1 -1
  833. package/dist/utils/notifications-utils.d.ts +54 -0
  834. package/dist/utils/notifications-utils.js +8 -8
  835. package/dist/utils/observe-dimensions.d.ts +15 -0
  836. package/dist/utils/observe-dimensions.js +8 -8
  837. package/dist/utils/projection-utils.d.ts +12 -0
  838. package/dist/utils/projection-utils.js +1 -1
  839. package/dist/utils/searcher-utils.d.ts +1 -0
  840. package/dist/utils/searcher-utils.js +1 -1
  841. package/dist/utils/split-map-utils.d.ts +29 -0
  842. package/dist/utils/split-map-utils.js +4 -4
  843. package/dist/utils/table-utils/data-container-interface.d.ts +115 -0
  844. package/dist/utils/table-utils/data-container-interface.js +6 -0
  845. package/dist/utils/table-utils/data-container-utils.d.ts +29 -0
  846. package/dist/utils/table-utils/data-container-utils.js +18 -7
  847. package/dist/utils/table-utils/data-row.d.ts +59 -0
  848. package/dist/utils/table-utils/data-row.js +61 -8
  849. package/dist/utils/table-utils/index.d.ts +1 -0
  850. package/dist/utils/table-utils/index.js +1 -1
  851. package/dist/utils/table-utils/indexed-data-container.d.ts +34 -0
  852. package/dist/utils/table-utils/indexed-data-container.js +18 -12
  853. package/dist/utils/table-utils/kepler-table.d.ts +168 -0
  854. package/dist/utils/table-utils/kepler-table.js +56 -22
  855. package/dist/utils/table-utils/row-data-container.d.ts +31 -0
  856. package/dist/utils/table-utils/row-data-container.js +11 -8
  857. package/dist/utils/utils.d.ts +98 -0
  858. package/dist/utils/utils.js +28 -4
  859. package/package.json +139 -60
  860. package/src/actions/action-wrapper.ts +183 -0
  861. package/src/actions/actions.ts +259 -0
  862. package/src/actions/identity-actions.ts +116 -0
  863. package/src/actions/map-state-actions.ts +116 -0
  864. package/src/actions/map-style-actions.ts +243 -0
  865. package/src/actions/provider-actions.ts +218 -0
  866. package/src/actions/ui-state-actions.ts +490 -0
  867. package/src/actions/vis-state-actions.ts +1279 -0
  868. package/src/cloud-providers/index.ts +22 -0
  869. package/src/cloud-providers/provider.ts +276 -0
  870. package/src/components/bottom-widget.tsx +277 -0
  871. package/src/components/common/action-panel.tsx +207 -0
  872. package/src/components/common/animation-control/animation-control.tsx +157 -0
  873. package/src/components/common/animation-control/animation-controller.ts +250 -0
  874. package/src/components/common/animation-control/animation-speed-slider.tsx +86 -0
  875. package/src/components/common/animation-control/floating-time-display.tsx +209 -0
  876. package/src/components/common/animation-control/playback-controls.tsx +316 -0
  877. package/src/components/common/animation-control/speed-control.tsx +71 -0
  878. package/src/components/common/checkbox.tsx +137 -0
  879. package/src/components/common/color-legend.tsx +203 -0
  880. package/src/components/common/data-table/button.tsx +54 -0
  881. package/src/components/common/data-table/cell-size.ts +185 -0
  882. package/src/components/common/data-table/grid.tsx +57 -0
  883. package/src/components/common/data-table/index.tsx +693 -0
  884. package/src/components/common/data-table/option-dropdown.tsx +122 -0
  885. package/src/components/common/dataset-label.tsx +48 -0
  886. package/src/components/common/error-boundary.tsx +47 -0
  887. package/src/components/common/field-selector.tsx +242 -0
  888. package/src/components/common/field-token.tsx +60 -0
  889. package/src/components/common/file-uploader/file-drop.tsx +209 -0
  890. package/src/components/common/file-uploader/file-upload-progress.tsx +123 -0
  891. package/src/components/common/file-uploader/file-upload.tsx +319 -0
  892. package/src/components/common/file-uploader/upload-button.tsx +89 -0
  893. package/src/components/common/histogram-plot.tsx +125 -0
  894. package/src/components/common/icons/add.tsx +37 -0
  895. package/src/components/common/icons/anchor_window.tsx +49 -0
  896. package/src/components/common/icons/arrow-down-alt.tsx +37 -0
  897. package/src/components/common/icons/arrow-down-solid.tsx +37 -0
  898. package/src/components/common/icons/arrow-down.tsx +40 -0
  899. package/src/components/common/icons/arrow-left.tsx +42 -0
  900. package/src/components/common/icons/arrow-right.tsx +40 -0
  901. package/src/components/common/icons/arrow-up-alt.tsx +40 -0
  902. package/src/components/common/icons/arrow-up-solid.tsx +37 -0
  903. package/src/components/common/icons/arrow-up.tsx +40 -0
  904. package/src/components/common/icons/base.tsx +95 -0
  905. package/src/components/common/icons/bug.tsx +40 -0
  906. package/src/components/common/icons/cancel.tsx +37 -0
  907. package/src/components/common/icons/checkmark.tsx +39 -0
  908. package/src/components/common/icons/chevron-right.js +2 -2
  909. package/src/components/common/icons/clipboard.tsx +40 -0
  910. package/src/components/common/icons/clock.tsx +38 -0
  911. package/src/components/common/icons/close.tsx +43 -0
  912. package/src/components/common/icons/code-alt.tsx +37 -0
  913. package/src/components/common/icons/copy.tsx +38 -0
  914. package/src/components/common/icons/crosshairs.tsx +37 -0
  915. package/src/components/common/icons/cube-3d.tsx +39 -0
  916. package/src/components/common/icons/cursor-click.tsx +43 -0
  917. package/src/components/common/icons/data-table.tsx +40 -0
  918. package/src/components/common/icons/db.tsx +40 -0
  919. package/src/components/common/icons/delete.tsx +39 -0
  920. package/src/components/common/icons/docs.tsx +40 -0
  921. package/src/components/common/icons/drag-n-drop.tsx +38 -0
  922. package/src/components/common/icons/draw-polygon.tsx +51 -0
  923. package/src/components/common/icons/email.tsx +39 -0
  924. package/src/components/common/icons/expand.tsx +39 -0
  925. package/src/components/common/icons/eye-seen.tsx +38 -0
  926. package/src/components/common/icons/eye-unseen.tsx +38 -0
  927. package/src/components/common/icons/file-type.tsx +71 -0
  928. package/src/components/common/icons/file.tsx +37 -0
  929. package/src/components/common/icons/files.tsx +37 -0
  930. package/src/components/common/icons/filter-funnel.tsx +37 -0
  931. package/src/components/common/icons/free-window.tsx +48 -0
  932. package/src/components/common/icons/gear.tsx +40 -0
  933. package/src/components/common/icons/hash.tsx +37 -0
  934. package/src/components/common/icons/histogram.tsx +42 -0
  935. package/src/components/common/icons/index.tsx +98 -0
  936. package/src/components/common/icons/info.tsx +48 -0
  937. package/src/components/common/icons/layers.tsx +37 -0
  938. package/src/components/common/icons/left-arrow.tsx +37 -0
  939. package/src/components/common/icons/legend.tsx +37 -0
  940. package/src/components/common/icons/line-chart.tsx +40 -0
  941. package/src/components/common/icons/login.tsx +41 -0
  942. package/src/components/common/icons/logout.tsx +38 -0
  943. package/src/components/common/icons/map-icon.tsx +62 -0
  944. package/src/components/common/icons/map.tsx +62 -0
  945. package/src/components/common/icons/messages.tsx +37 -0
  946. package/src/components/common/icons/minus.tsx +39 -0
  947. package/src/components/common/icons/order-by-dataset.tsx +49 -0
  948. package/src/components/common/icons/order-by-list.tsx +39 -0
  949. package/src/components/common/icons/pause.tsx +37 -0
  950. package/src/components/common/icons/picture.tsx +37 -0
  951. package/src/components/common/icons/pin.tsx +42 -0
  952. package/src/components/common/icons/play.tsx +37 -0
  953. package/src/components/common/icons/polygon.tsx +65 -0
  954. package/src/components/common/icons/rectangle.tsx +66 -0
  955. package/src/components/common/icons/reduce.tsx +42 -0
  956. package/src/components/common/icons/reset.tsx +37 -0
  957. package/src/components/common/icons/rocket.tsx +37 -0
  958. package/src/components/common/icons/save.tsx +38 -0
  959. package/src/components/common/icons/save2.tsx +42 -0
  960. package/src/components/common/icons/search.tsx +38 -0
  961. package/src/components/common/icons/settings.tsx +39 -0
  962. package/src/components/common/icons/share.tsx +37 -0
  963. package/src/components/common/icons/split.tsx +57 -0
  964. package/src/components/common/icons/square-select.tsx +38 -0
  965. package/src/components/common/icons/swap-horizontal.js +1 -1
  966. package/src/components/common/icons/table.tsx +41 -0
  967. package/src/components/common/icons/trash.tsx +45 -0
  968. package/src/components/common/icons/upload.tsx +37 -0
  969. package/src/components/common/icons/vert-dots.tsx +44 -0
  970. package/src/components/common/icons/vert-three-dots.tsx +39 -0
  971. package/src/components/common/icons/warning.tsx +40 -0
  972. package/src/components/common/image-preview.tsx +118 -0
  973. package/src/components/common/info-helper.tsx +91 -0
  974. package/src/components/common/item-selector/accessor.ts +45 -0
  975. package/src/components/common/item-selector/chickleted-input.tsx +153 -0
  976. package/src/components/common/item-selector/dropdown-list.tsx +269 -0
  977. package/src/components/common/item-selector/item-selector-submenu.js +2 -1
  978. package/src/components/common/item-selector/item-selector.d.ts +24 -27
  979. package/src/components/common/item-selector/item-selector.tsx +373 -0
  980. package/src/components/common/item-selector/typeahead.tsx +533 -0
  981. package/src/components/common/line-chart.tsx +170 -0
  982. package/src/components/common/loading-spinner.tsx +75 -0
  983. package/src/components/common/logo.tsx +88 -0
  984. package/src/components/common/map-layer-selector.tsx +64 -0
  985. package/src/components/common/modal.tsx +238 -0
  986. package/src/components/common/portaled.tsx +311 -0
  987. package/src/components/common/progress-bar.tsx +74 -0
  988. package/src/components/common/range-brush.tsx +276 -0
  989. package/src/components/common/range-plot.tsx +145 -0
  990. package/src/components/common/range-slider.tsx +320 -0
  991. package/src/components/common/slider/mouse-event.ts +122 -0
  992. package/src/components/common/slider/slider-bar-handle.tsx +106 -0
  993. package/src/components/common/slider/slider-handle.tsx +210 -0
  994. package/src/components/common/slider/slider.tsx +234 -0
  995. package/src/components/common/styled-components.tsx +714 -0
  996. package/src/components/common/switch.tsx +47 -0
  997. package/src/components/common/time-range-slider-time-title.tsx +87 -0
  998. package/src/components/common/time-range-slider.tsx +171 -0
  999. package/src/components/common/time-slider-marker.tsx +187 -0
  1000. package/src/components/common/tippy-tooltip.tsx +130 -0
  1001. package/src/components/common/toolbar-item.tsx +99 -0
  1002. package/src/components/common/toolbar.tsx +49 -0
  1003. package/src/components/common/vertical-toolbar.tsx +35 -0
  1004. package/src/components/container.d.ts +8 -0
  1005. package/src/components/container.tsx +189 -0
  1006. package/src/components/context.ts +32 -0
  1007. package/src/components/editor/editor.tsx +234 -0
  1008. package/src/components/editor/feature-action-panel.tsx +155 -0
  1009. package/src/components/editor/feature-styles.ts +76 -0
  1010. package/src/components/editor/handle-style.ts +89 -0
  1011. package/src/components/filters/filter-panels/filter-panel-with-field-select.tsx +118 -0
  1012. package/src/components/filters/filter-panels/multi-select-filter-panel.tsx +63 -0
  1013. package/src/components/filters/filter-panels/new-filter-panel.tsx +100 -0
  1014. package/src/components/filters/filter-panels/polygon-filter-panel.tsx +84 -0
  1015. package/src/components/filters/filter-panels/range-filter-panel.tsx +63 -0
  1016. package/src/components/filters/filter-panels/single-select-filter-panel.tsx +63 -0
  1017. package/src/components/filters/filter-panels/time-range-filter-panel.tsx +92 -0
  1018. package/src/components/filters/filter-panels/types.ts +40 -0
  1019. package/src/components/filters/multi-select-filter.tsx +37 -0
  1020. package/src/components/filters/polygon-filter.tsx +74 -0
  1021. package/src/components/filters/range-filter.tsx +44 -0
  1022. package/src/components/filters/single-select-filter.tsx +50 -0
  1023. package/src/components/filters/time-range-filter.tsx +76 -0
  1024. package/src/components/filters/time-widget.tsx +240 -0
  1025. package/src/components/filters/types.ts +78 -0
  1026. package/src/components/geocoder/geocoder.tsx +307 -0
  1027. package/src/components/geocoder-panel.tsx +199 -0
  1028. package/src/components/index.ts +269 -0
  1029. package/src/components/injector.d.ts +33 -0
  1030. package/src/components/injector.tsx +171 -0
  1031. package/src/components/kepler-gl.d.ts +1 -2
  1032. package/src/components/kepler-gl.tsx +585 -0
  1033. package/src/components/map/coordinate-info.tsx +58 -0
  1034. package/src/components/map/layer-hover-info.tsx +192 -0
  1035. package/src/components/map/layer-selector-panel.tsx +122 -0
  1036. package/src/components/map/locale-panel.tsx +110 -0
  1037. package/src/components/map/map-control-panel.tsx +142 -0
  1038. package/src/components/map/map-control-tooltip.tsx +45 -0
  1039. package/src/components/map/map-control.tsx +138 -0
  1040. package/src/components/map/map-draw-panel.tsx +145 -0
  1041. package/src/components/map/map-legend-panel.tsx +167 -0
  1042. package/src/components/map/map-legend.tsx +284 -0
  1043. package/src/components/map/map-popover.tsx +268 -0
  1044. package/src/components/map/split-map-button.tsx +98 -0
  1045. package/src/components/map/toggle-3d-button.tsx +90 -0
  1046. package/src/components/map-container.tsx +549 -0
  1047. package/src/components/maps-layout.tsx +45 -0
  1048. package/src/components/modal-container.tsx +555 -0
  1049. package/src/components/modals/add-map-style-modal.tsx +304 -0
  1050. package/src/components/modals/cloud-tile.tsx +181 -0
  1051. package/src/components/modals/data-table-modal.tsx +241 -0
  1052. package/src/components/modals/delete-data-modal.tsx +55 -0
  1053. package/src/components/modals/error-display.tsx +43 -0
  1054. package/src/components/modals/export-data-modal.tsx +201 -0
  1055. package/src/components/modals/export-image-modal.tsx +155 -0
  1056. package/src/components/modals/export-map-modal/export-html-map.tsx +164 -0
  1057. package/src/components/modals/export-map-modal/export-json-map.tsx +112 -0
  1058. package/src/components/modals/export-map-modal/export-map-modal.tsx +109 -0
  1059. package/src/components/modals/image-modal-container.tsx +86 -0
  1060. package/src/components/modals/load-data-modal.tsx +120 -0
  1061. package/src/components/modals/load-storage-map.tsx +414 -0
  1062. package/src/components/modals/loading-dialog.tsx +77 -0
  1063. package/src/components/modals/modal-tabs.tsx +137 -0
  1064. package/src/components/modals/overwrite-map-modal.tsx +113 -0
  1065. package/src/components/modals/provider-modal-container.tsx +62 -0
  1066. package/src/components/modals/save-map-modal.tsx +277 -0
  1067. package/src/components/modals/share-map-modal.tsx +217 -0
  1068. package/src/components/modals/status-panel.tsx +106 -0
  1069. package/src/components/modals/storage-map-viewer.tsx +190 -0
  1070. package/src/components/notification-panel/notification-item.tsx +143 -0
  1071. package/src/components/notification-panel.tsx +75 -0
  1072. package/src/components/performance.tsx +105 -0
  1073. package/src/components/plot-container.tsx +243 -0
  1074. package/src/components/side-panel/common/dataset-info.tsx +46 -0
  1075. package/src/components/side-panel/common/dataset-tag.tsx +86 -0
  1076. package/src/components/side-panel/common/dataset-title.tsx +187 -0
  1077. package/src/components/side-panel/common/source-data-catalog.tsx +67 -0
  1078. package/src/components/side-panel/common/source-data-selector.tsx +90 -0
  1079. package/src/components/side-panel/common/types.ts +76 -0
  1080. package/src/components/side-panel/filter-manager.tsx +120 -0
  1081. package/src/components/side-panel/filter-panel/filter-panel-header.tsx +96 -0
  1082. package/src/components/side-panel/filter-panel/filter-panel.tsx +125 -0
  1083. package/src/components/side-panel/interaction-manager.tsx +59 -0
  1084. package/src/components/side-panel/interaction-panel/brush-config.tsx +58 -0
  1085. package/src/components/side-panel/interaction-panel/interaction-panel.tsx +124 -0
  1086. package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx +243 -0
  1087. package/src/components/side-panel/interaction-panel/tooltip-config.tsx +238 -0
  1088. package/src/components/side-panel/layer-manager.tsx +242 -0
  1089. package/src/components/side-panel/layer-panel/add-layer-button.tsx +208 -0
  1090. package/src/components/side-panel/layer-panel/color-dimension-scale-selector.tsx +33 -0
  1091. package/src/components/side-panel/layer-panel/color-palette.tsx +98 -0
  1092. package/src/components/side-panel/layer-panel/color-range-selector.tsx +388 -0
  1093. package/src/components/side-panel/layer-panel/color-selector.tsx +200 -0
  1094. package/src/components/side-panel/layer-panel/column-selector.tsx +102 -0
  1095. package/src/components/side-panel/layer-panel/custom-markers-config-group.tsx +30 -0
  1096. package/src/components/side-panel/layer-panel/custom-palette.tsx +301 -0
  1097. package/src/components/side-panel/layer-panel/custom-picker.tsx +99 -0
  1098. package/src/components/side-panel/layer-panel/dataset-layer-group.tsx +99 -0
  1099. package/src/components/side-panel/layer-panel/dataset-layer-section.tsx +100 -0
  1100. package/src/components/side-panel/layer-panel/dataset-section.tsx +125 -0
  1101. package/src/components/side-panel/layer-panel/dimension-scale-selector.tsx +64 -0
  1102. package/src/components/side-panel/layer-panel/hex-column-config.tsx +53 -0
  1103. package/src/components/side-panel/layer-panel/layer-column-config.tsx +115 -0
  1104. package/src/components/side-panel/layer-panel/layer-config-group.tsx +259 -0
  1105. package/src/components/side-panel/layer-panel/layer-configurator.tsx +1419 -0
  1106. package/src/components/side-panel/layer-panel/layer-list.tsx +193 -0
  1107. package/src/components/side-panel/layer-panel/layer-panel-header.tsx +273 -0
  1108. package/src/components/side-panel/layer-panel/layer-panel.tsx +197 -0
  1109. package/src/components/side-panel/layer-panel/layer-type-dropdown-list.tsx +118 -0
  1110. package/src/components/side-panel/layer-panel/layer-type-list-item.tsx +92 -0
  1111. package/src/components/side-panel/layer-panel/layer-type-selector.tsx +115 -0
  1112. package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.tsx +123 -0
  1113. package/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx +132 -0
  1114. package/src/components/side-panel/layer-panel/single-color-palette.tsx +94 -0
  1115. package/src/components/side-panel/layer-panel/text-label-panel.tsx +189 -0
  1116. package/src/components/side-panel/layer-panel/vis-config-by-field-selector.tsx +187 -0
  1117. package/src/components/side-panel/layer-panel/vis-config-slider.tsx +237 -0
  1118. package/src/components/side-panel/layer-panel/vis-config-switch.tsx +86 -0
  1119. package/src/components/side-panel/map-manager.tsx +123 -0
  1120. package/src/components/side-panel/map-style-panel/map-layer-selector.tsx +145 -0
  1121. package/src/components/side-panel/map-style-panel/map-style-selector.tsx +122 -0
  1122. package/src/components/side-panel/panel-dropdown.tsx +54 -0
  1123. package/src/components/side-panel/panel-header-action.tsx +114 -0
  1124. package/src/components/side-panel/panel-header.tsx +386 -0
  1125. package/src/components/side-panel/panel-tab.tsx +79 -0
  1126. package/src/components/side-panel/panel-title.tsx +35 -0
  1127. package/src/components/side-panel/panel-toggle.tsx +72 -0
  1128. package/src/components/side-panel/side-bar.tsx +141 -0
  1129. package/src/components/side-panel.tsx +261 -0
  1130. package/src/components/types.ts +41 -0
  1131. package/src/connect/keplergl-connect.ts +48 -0
  1132. package/src/connect/with-local-selector.tsx +70 -0
  1133. package/src/constants/action-types.ts +188 -0
  1134. package/src/constants/color-ranges.ts +87 -0
  1135. package/src/constants/default-settings.ts +1051 -0
  1136. package/src/deckgl-layers/3d-building-layer/3d-building-layer.ts +63 -0
  1137. package/src/deckgl-layers/3d-building-layer/3d-building-utils.ts +211 -0
  1138. package/src/deckgl-layers/3d-building-layer/types.ts +29 -0
  1139. package/src/deckgl-layers/column-layer/enhanced-column-layer.ts +63 -0
  1140. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.ts +70 -0
  1141. package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.ts +70 -0
  1142. package/src/deckgl-layers/layer-utils/cluster-utils.ts +78 -0
  1143. package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +671 -0
  1144. package/src/deckgl-layers/layer-utils/shader-utils.ts +41 -0
  1145. package/src/deckgl-layers/line-layer/line-layer.ts +126 -0
  1146. package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.ts +68 -0
  1147. package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.ts +102 -0
  1148. package/src/index.ts +52 -0
  1149. package/src/layers/aggregation-layer.ts +400 -0
  1150. package/src/layers/arc-layer/arc-layer-icon.tsx +67 -0
  1151. package/src/layers/arc-layer/arc-layer.ts +294 -0
  1152. package/src/layers/base-layer.ts +1744 -0
  1153. package/src/layers/cluster-layer/cluster-layer.ts +162 -0
  1154. package/src/layers/geojson-layer/geojson-layer-icon.tsx +68 -0
  1155. package/src/layers/geojson-layer/geojson-layer.ts +462 -0
  1156. package/src/layers/geojson-layer/geojson-utils.ts +200 -0
  1157. package/src/layers/grid-layer/grid-layer-icon.tsx +53 -0
  1158. package/src/layers/grid-layer/grid-layer.ts +154 -0
  1159. package/src/layers/grid-layer/grid-utils.ts +84 -0
  1160. package/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts +340 -0
  1161. package/src/layers/h3-hexagon-layer/h3-utils.ts +67 -0
  1162. package/src/layers/heatmap-layer/heatmap-layer.ts +255 -0
  1163. package/src/layers/hexagon-layer/hexagon-layer.ts +157 -0
  1164. package/src/layers/hexagon-layer/hexagon-utils.ts +64 -0
  1165. package/src/layers/icon-layer/icon-info-modal.tsx +155 -0
  1166. package/src/layers/icon-layer/icon-layer.ts +396 -0
  1167. package/src/layers/index.ts +81 -0
  1168. package/src/layers/layer-factory.ts +707 -0
  1169. package/src/layers/layer-text-label.ts +62 -0
  1170. package/src/layers/layer-update.ts +70 -0
  1171. package/src/layers/line-layer/line-layer.ts +223 -0
  1172. package/src/layers/mapbox-utils.ts +204 -0
  1173. package/src/layers/mapboxgl-layer.ts +176 -0
  1174. package/src/layers/point-layer/point-layer.ts +507 -0
  1175. package/src/layers/s2-geometry-layer/s2-geometry-layer.ts +369 -0
  1176. package/src/layers/s2-geometry-layer/s2-utils.ts +42 -0
  1177. package/src/layers/scenegraph-layer/scenegraph-layer.ts +237 -0
  1178. package/src/layers/trip-layer/trip-layer.ts +356 -0
  1179. package/src/layers/trip-layer/trip-utils.ts +177 -0
  1180. package/src/localization/formatted-message.tsx +42 -0
  1181. package/src/localization/index.ts +29 -0
  1182. package/src/localization/locales.ts +53 -0
  1183. package/src/localization/messages.ts +40 -0
  1184. package/src/localization/translations/ca.ts +476 -0
  1185. package/src/localization/translations/cn.ts +477 -0
  1186. package/src/localization/translations/en.ts +504 -0
  1187. package/src/localization/translations/es.ts +477 -0
  1188. package/src/localization/translations/fi.ts +448 -0
  1189. package/src/localization/translations/ja.ts +477 -0
  1190. package/src/localization/translations/pt.ts +449 -0
  1191. package/src/localization/translations/ru.ts +488 -0
  1192. package/src/middleware/index.ts +35 -0
  1193. package/src/processors/data-processor.ts +723 -0
  1194. package/src/processors/file-handler.ts +250 -0
  1195. package/src/processors/index.ts +23 -0
  1196. package/src/processors/types.ts +22 -0
  1197. package/src/reducers/combined-updaters.ts +215 -0
  1198. package/src/reducers/composer-helpers.ts +75 -0
  1199. package/src/reducers/core.ts +111 -0
  1200. package/src/reducers/index.ts +116 -0
  1201. package/src/reducers/map-state-updaters.ts +271 -0
  1202. package/src/reducers/map-state.ts +47 -0
  1203. package/src/reducers/map-style-updaters.ts +638 -0
  1204. package/src/reducers/map-style.ts +53 -0
  1205. package/src/reducers/provider-state-updaters.ts +454 -0
  1206. package/src/reducers/provider-state.ts +53 -0
  1207. package/src/reducers/root.ts +230 -0
  1208. package/src/reducers/types.ts +18 -0
  1209. package/src/reducers/ui-state-updaters.ts +925 -0
  1210. package/src/reducers/ui-state.ts +75 -0
  1211. package/src/reducers/vis-state-merger.ts +625 -0
  1212. package/src/reducers/vis-state-selectors.ts +35 -0
  1213. package/src/reducers/vis-state-updaters.ts +2567 -0
  1214. package/src/reducers/vis-state.ts +157 -0
  1215. package/src/schemas/dataset-schema.ts +141 -0
  1216. package/src/schemas/index.ts +52 -0
  1217. package/src/schemas/schema-manager.ts +445 -0
  1218. package/src/schemas/schema.ts +122 -0
  1219. package/src/schemas/vis-state-schema.ts +761 -0
  1220. package/src/styles/base.ts +1642 -0
  1221. package/src/styles/media-breakpoints.ts +56 -0
  1222. package/src/tasks/tasks.ts +92 -0
  1223. package/src/typedefs/deckgl.d.ts +25 -0
  1224. package/src/utils/aggregate-utils.ts +71 -0
  1225. package/src/utils/color-utils.ts +135 -0
  1226. package/src/utils/data-scale-utils.ts +73 -0
  1227. package/src/utils/data-utils.ts +459 -0
  1228. package/src/utils/dataset-utils.ts +261 -0
  1229. package/src/utils/dom-to-image.ts +533 -0
  1230. package/src/utils/dom-utils.ts +354 -0
  1231. package/src/utils/export-utils.ts +265 -0
  1232. package/src/utils/filter-utils.ts +1181 -0
  1233. package/src/utils/gpu-filter-utils.ts +249 -0
  1234. package/src/utils/index.ts +72 -0
  1235. package/src/utils/interaction-utils.ts +212 -0
  1236. package/src/utils/layer-utils.ts +248 -0
  1237. package/src/utils/map-style-utils/mapbox-gl-style-editor.ts +227 -0
  1238. package/src/utils/notifications-utils.ts +89 -0
  1239. package/src/utils/observe-dimensions.ts +127 -0
  1240. package/src/utils/split-map-utils.ts +104 -0
  1241. package/src/utils/table-utils/data-container-interface.ts +140 -0
  1242. package/src/utils/table-utils/data-container-utils.ts +90 -0
  1243. package/src/utils/table-utils/data-row.ts +110 -0
  1244. package/src/utils/table-utils/indexed-data-container.ts +184 -0
  1245. package/src/utils/table-utils/kepler-table.ts +638 -0
  1246. package/src/utils/table-utils/row-data-container.ts +178 -0
  1247. package/src/utils/utils.ts +228 -0
  1248. package/actions.js +0 -21
  1249. package/cloud-providers.js +0 -21
  1250. package/components.js +0 -21
  1251. package/constants.js +0 -21
  1252. package/dist/components/common/icons/arrow-down-solid .js +0 -64
  1253. package/dist/localization/en.js +0 -494
  1254. package/layers.js +0 -21
  1255. package/localization.js +0 -21
  1256. package/middleware.js +0 -21
  1257. package/processors.js +0 -21
  1258. package/reducers.js +0 -21
  1259. package/schemas.js +0 -21
  1260. package/src/actions/action-wrapper.js +0 -183
  1261. package/src/actions/actions.d.ts +0 -104
  1262. package/src/actions/actions.js +0 -178
  1263. package/src/actions/identity-actions.d.ts +0 -53
  1264. package/src/actions/identity-actions.js +0 -83
  1265. package/src/actions/index.d.ts +0 -23
  1266. package/src/actions/map-state-actions.d.ts +0 -46
  1267. package/src/actions/map-state-actions.js +0 -90
  1268. package/src/actions/map-style-actions.d.ts +0 -116
  1269. package/src/actions/map-style-actions.js +0 -135
  1270. package/src/actions/provider-actions.d.ts +0 -203
  1271. package/src/actions/provider-actions.js +0 -94
  1272. package/src/actions/ui-state-actions.d.ts +0 -200
  1273. package/src/actions/ui-state-actions.js +0 -272
  1274. package/src/actions/vis-state-actions.d.ts +0 -502
  1275. package/src/actions/vis-state-actions.js +0 -919
  1276. package/src/cloud-providers/index.d.ts +0 -53
  1277. package/src/cloud-providers/index.js +0 -21
  1278. package/src/cloud-providers/provider.js +0 -233
  1279. package/src/components/bottom-widget.d.ts +0 -33
  1280. package/src/components/bottom-widget.js +0 -235
  1281. package/src/components/common/action-panel.d.ts +0 -24
  1282. package/src/components/common/action-panel.js +0 -177
  1283. package/src/components/common/animation-control/animation-control.js +0 -155
  1284. package/src/components/common/animation-control/animation-controller.js +0 -224
  1285. package/src/components/common/animation-control/animation-speed-slider.js +0 -79
  1286. package/src/components/common/animation-control/floating-time-display.js +0 -192
  1287. package/src/components/common/animation-control/playback-controls.js +0 -278
  1288. package/src/components/common/animation-control/speed-control.js +0 -71
  1289. package/src/components/common/checkbox.js +0 -128
  1290. package/src/components/common/color-legend.js +0 -198
  1291. package/src/components/common/data-table/button.js +0 -47
  1292. package/src/components/common/data-table/cell-size.js +0 -180
  1293. package/src/components/common/data-table/grid.js +0 -55
  1294. package/src/components/common/data-table/index.js +0 -620
  1295. package/src/components/common/data-table/option-dropdown.js +0 -110
  1296. package/src/components/common/dataset-label.js +0 -40
  1297. package/src/components/common/error-boundary.js +0 -43
  1298. package/src/components/common/field-selector.js +0 -233
  1299. package/src/components/common/field-token.js +0 -56
  1300. package/src/components/common/file-uploader/file-drop.d.ts +0 -19
  1301. package/src/components/common/file-uploader/file-drop.js +0 -196
  1302. package/src/components/common/file-uploader/file-upload-progress.d.ts +0 -11
  1303. package/src/components/common/file-uploader/file-upload-progress.js +0 -110
  1304. package/src/components/common/file-uploader/file-upload.d.ts +0 -22
  1305. package/src/components/common/file-uploader/file-upload.js +0 -301
  1306. package/src/components/common/file-uploader/upload-button.d.ts.wip +0 -11
  1307. package/src/components/common/file-uploader/upload-button.js +0 -83
  1308. package/src/components/common/histogram-plot.js +0 -102
  1309. package/src/components/common/icons/add.js +0 -43
  1310. package/src/components/common/icons/anchor_window.js +0 -53
  1311. package/src/components/common/icons/arrow-down-alt.js +0 -43
  1312. package/src/components/common/icons/arrow-down-solid .js +0 -43
  1313. package/src/components/common/icons/arrow-down.js +0 -46
  1314. package/src/components/common/icons/arrow-left.js +0 -48
  1315. package/src/components/common/icons/arrow-right.js +0 -46
  1316. package/src/components/common/icons/arrow-up-alt.js +0 -46
  1317. package/src/components/common/icons/arrow-up-solid.js +0 -43
  1318. package/src/components/common/icons/arrow-up.js +0 -46
  1319. package/src/components/common/icons/base.js +0 -90
  1320. package/src/components/common/icons/bug.js +0 -46
  1321. package/src/components/common/icons/cancel.js +0 -43
  1322. package/src/components/common/icons/checkmark.js +0 -45
  1323. package/src/components/common/icons/clipboard.js +0 -46
  1324. package/src/components/common/icons/clock.js +0 -44
  1325. package/src/components/common/icons/close.js +0 -49
  1326. package/src/components/common/icons/code-alt.js +0 -43
  1327. package/src/components/common/icons/copy.js +0 -44
  1328. package/src/components/common/icons/crosshairs.js +0 -43
  1329. package/src/components/common/icons/cube-3d.js +0 -45
  1330. package/src/components/common/icons/cursor-click.js +0 -49
  1331. package/src/components/common/icons/data-table.js +0 -45
  1332. package/src/components/common/icons/db.js +0 -45
  1333. package/src/components/common/icons/delete.js +0 -44
  1334. package/src/components/common/icons/docs.js +0 -46
  1335. package/src/components/common/icons/drag-n-drop.js +0 -44
  1336. package/src/components/common/icons/draw-polygon.js +0 -60
  1337. package/src/components/common/icons/email.js +0 -45
  1338. package/src/components/common/icons/expand.js +0 -45
  1339. package/src/components/common/icons/eye-seen.js +0 -44
  1340. package/src/components/common/icons/eye-unseen.js +0 -44
  1341. package/src/components/common/icons/file-type.js +0 -57
  1342. package/src/components/common/icons/file.js +0 -43
  1343. package/src/components/common/icons/files.js +0 -42
  1344. package/src/components/common/icons/filter-funnel.js +0 -43
  1345. package/src/components/common/icons/free-window.js +0 -53
  1346. package/src/components/common/icons/gear.js +0 -45
  1347. package/src/components/common/icons/hash.js +0 -43
  1348. package/src/components/common/icons/histogram.js +0 -47
  1349. package/src/components/common/icons/index.js +0 -96
  1350. package/src/components/common/icons/info.js +0 -54
  1351. package/src/components/common/icons/layers.js +0 -43
  1352. package/src/components/common/icons/left-arrow.js +0 -43
  1353. package/src/components/common/icons/legend.js +0 -43
  1354. package/src/components/common/icons/line-chart.js +0 -45
  1355. package/src/components/common/icons/login.js +0 -46
  1356. package/src/components/common/icons/logout.js +0 -43
  1357. package/src/components/common/icons/map-icon.js +0 -69
  1358. package/src/components/common/icons/map.js +0 -69
  1359. package/src/components/common/icons/messages.js +0 -43
  1360. package/src/components/common/icons/minus.js +0 -45
  1361. package/src/components/common/icons/pause.js +0 -43
  1362. package/src/components/common/icons/picture.js +0 -43
  1363. package/src/components/common/icons/pin.js +0 -43
  1364. package/src/components/common/icons/play.js +0 -43
  1365. package/src/components/common/icons/polygon.js +0 -74
  1366. package/src/components/common/icons/rectangle.js +0 -75
  1367. package/src/components/common/icons/reduce.js +0 -48
  1368. package/src/components/common/icons/reset.js +0 -43
  1369. package/src/components/common/icons/rocket.js +0 -43
  1370. package/src/components/common/icons/save.js +0 -44
  1371. package/src/components/common/icons/save2.js +0 -47
  1372. package/src/components/common/icons/search.js +0 -44
  1373. package/src/components/common/icons/settings.js +0 -45
  1374. package/src/components/common/icons/share.js +0 -43
  1375. package/src/components/common/icons/split.js +0 -63
  1376. package/src/components/common/icons/square-select.js +0 -44
  1377. package/src/components/common/icons/table.js +0 -46
  1378. package/src/components/common/icons/trash.js +0 -51
  1379. package/src/components/common/icons/upload.js +0 -44
  1380. package/src/components/common/icons/vert-dots.js +0 -50
  1381. package/src/components/common/icons/vert-three-dots.js +0 -45
  1382. package/src/components/common/icons/warning.js +0 -46
  1383. package/src/components/common/image-preview.js +0 -111
  1384. package/src/components/common/info-helper.js +0 -84
  1385. package/src/components/common/item-selector/accessor.js +0 -45
  1386. package/src/components/common/item-selector/chickleted-input.js +0 -143
  1387. package/src/components/common/item-selector/dropdown-list.js +0 -258
  1388. package/src/components/common/item-selector/item-selector.js +0 -360
  1389. package/src/components/common/item-selector/typeahead.js +0 -507
  1390. package/src/components/common/line-chart.js +0 -134
  1391. package/src/components/common/loading-spinner.js +0 -64
  1392. package/src/components/common/logo.js +0 -92
  1393. package/src/components/common/map-layer-selector.d.ts +0 -10
  1394. package/src/components/common/map-layer-selector.js +0 -54
  1395. package/src/components/common/modal.js +0 -233
  1396. package/src/components/common/portaled.js +0 -264
  1397. package/src/components/common/progress-bar.d.ts +0 -13
  1398. package/src/components/common/progress-bar.js +0 -49
  1399. package/src/components/common/range-brush.js +0 -256
  1400. package/src/components/common/range-plot.js +0 -139
  1401. package/src/components/common/range-slider.js +0 -299
  1402. package/src/components/common/slider/mouse-event.js +0 -97
  1403. package/src/components/common/slider/slider-bar-handle.js +0 -97
  1404. package/src/components/common/slider/slider-handle.js +0 -181
  1405. package/src/components/common/slider/slider.js +0 -213
  1406. package/src/components/common/styled-components.js +0 -657
  1407. package/src/components/common/switch.js +0 -50
  1408. package/src/components/common/time-range-slider-time-title.js +0 -76
  1409. package/src/components/common/time-range-slider.js +0 -163
  1410. package/src/components/common/time-slider-marker.js +0 -168
  1411. package/src/components/common/toolbar-item.d.ts +0 -14
  1412. package/src/components/common/toolbar-item.js +0 -83
  1413. package/src/components/common/toolbar.js +0 -45
  1414. package/src/components/common/vertical-toolbar.js +0 -35
  1415. package/src/components/container.js +0 -173
  1416. package/src/components/context.d.ts +0 -10
  1417. package/src/components/context.js +0 -32
  1418. package/src/components/editor/editor.js +0 -218
  1419. package/src/components/editor/feature-action-panel.js +0 -143
  1420. package/src/components/editor/feature-styles.js +0 -75
  1421. package/src/components/editor/handle-style.js +0 -89
  1422. package/src/components/filters/filter-panels/filter-panel-types.d.ts +0 -28
  1423. package/src/components/filters/filter-panels/filter-panel-with-field-select.js +0 -124
  1424. package/src/components/filters/filter-panels/multi-select-filter-panel.js +0 -75
  1425. package/src/components/filters/filter-panels/new-filter-panel.js +0 -99
  1426. package/src/components/filters/filter-panels/polygon-filter-panel.js +0 -96
  1427. package/src/components/filters/filter-panels/range-filter-panel.js +0 -75
  1428. package/src/components/filters/filter-panels/single-select-filter-panel.js +0 -75
  1429. package/src/components/filters/filter-panels/time-range-filter-panel.js +0 -95
  1430. package/src/components/filters/multi-select-filter.js +0 -36
  1431. package/src/components/filters/polygon-filter.d.ts +0 -13
  1432. package/src/components/filters/polygon-filter.js +0 -73
  1433. package/src/components/filters/range-filter.js +0 -43
  1434. package/src/components/filters/single-select-filter.js +0 -49
  1435. package/src/components/filters/time-range-filter.js +0 -68
  1436. package/src/components/filters/time-widget.js +0 -228
  1437. package/src/components/geocoder/geocoder.d.ts +0 -33
  1438. package/src/components/geocoder/geocoder.js +0 -272
  1439. package/src/components/geocoder-panel.js +0 -191
  1440. package/src/components/index.js +0 -254
  1441. package/src/components/injector.js +0 -161
  1442. package/src/components/kepler-gl.js +0 -518
  1443. package/src/components/map/coordinate-info.js +0 -53
  1444. package/src/components/map/layer-hover-info.d.ts +0 -12
  1445. package/src/components/map/layer-hover-info.js +0 -185
  1446. package/src/components/map/layer-selector-panel.d.ts +0 -16
  1447. package/src/components/map/layer-selector-panel.js +0 -106
  1448. package/src/components/map/locale-panel.d.ts +0 -12
  1449. package/src/components/map/locale-panel.js +0 -91
  1450. package/src/components/map/map-control-panel.d.ts +0 -11
  1451. package/src/components/map/map-control-panel.js +0 -98
  1452. package/src/components/map/map-control-tooltip.d.ts +0 -8
  1453. package/src/components/map/map-control-tooltip.js +0 -40
  1454. package/src/components/map/map-control.d.ts +0 -37
  1455. package/src/components/map/map-control.js +0 -100
  1456. package/src/components/map/map-draw-panel.d.ts +0 -16
  1457. package/src/components/map/map-draw-panel.js +0 -125
  1458. package/src/components/map/map-legend-panel.d.ts +0 -20
  1459. package/src/components/map/map-legend-panel.js +0 -100
  1460. package/src/components/map/map-legend.d.ts +0 -58
  1461. package/src/components/map/map-legend.js +0 -228
  1462. package/src/components/map/map-popover.d.ts +0 -28
  1463. package/src/components/map/map-popover.js +0 -250
  1464. package/src/components/map/split-map-button.d.ts +0 -19
  1465. package/src/components/map/split-map-button.js +0 -82
  1466. package/src/components/map/toggle-3d-button.d.ts +0 -16
  1467. package/src/components/map/toggle-3d-button.js +0 -75
  1468. package/src/components/map-container.d.ts +0 -18
  1469. package/src/components/map-container.js +0 -499
  1470. package/src/components/maps-layout.d.ts +0 -5
  1471. package/src/components/maps-layout.js +0 -40
  1472. package/src/components/modal-container.d.ts +0 -37
  1473. package/src/components/modal-container.js +0 -543
  1474. package/src/components/modals/add-map-style-modal.js +0 -298
  1475. package/src/components/modals/cloud-tile.js +0 -147
  1476. package/src/components/modals/data-table-modal.js +0 -217
  1477. package/src/components/modals/delete-data-modal.js +0 -48
  1478. package/src/components/modals/error-display.js +0 -39
  1479. package/src/components/modals/export-data-modal.js +0 -193
  1480. package/src/components/modals/export-image-modal.d.ts +0 -21
  1481. package/src/components/modals/export-image-modal.js +0 -144
  1482. package/src/components/modals/export-map-modal/export-html-map.d.ts +0 -21
  1483. package/src/components/modals/export-map-modal/export-html-map.js +0 -145
  1484. package/src/components/modals/export-map-modal/export-json-map.js +0 -100
  1485. package/src/components/modals/export-map-modal/export-map-modal.js +0 -114
  1486. package/src/components/modals/image-modal-container.d.ts +0 -13
  1487. package/src/components/modals/image-modal-container.js +0 -76
  1488. package/src/components/modals/load-data-modal.d.ts +0 -30
  1489. package/src/components/modals/load-data-modal.js +0 -94
  1490. package/src/components/modals/load-storage-map.js +0 -381
  1491. package/src/components/modals/loading-dialog.js +0 -69
  1492. package/src/components/modals/modal-tabs.js +0 -126
  1493. package/src/components/modals/overwrite-map-modal.d.ts +0 -18
  1494. package/src/components/modals/overwrite-map-modal.js +0 -97
  1495. package/src/components/modals/provider-modal-container.d.ts +0 -12
  1496. package/src/components/modals/provider-modal-container.js +0 -60
  1497. package/src/components/modals/save-map-modal.d.ts +0 -32
  1498. package/src/components/modals/save-map-modal.js +0 -244
  1499. package/src/components/modals/share-map-modal.js +0 -208
  1500. package/src/components/modals/status-panel.js +0 -95
  1501. package/src/components/modals/storage-map-viewer.js +0 -177
  1502. package/src/components/notification-panel/notification-item.js +0 -132
  1503. package/src/components/notification-panel.js +0 -72
  1504. package/src/components/performance.js +0 -103
  1505. package/src/components/plot-container.js +0 -228
  1506. package/src/components/side-panel/common/dataset-info.js +0 -45
  1507. package/src/components/side-panel/common/dataset-tag.js +0 -55
  1508. package/src/components/side-panel/common/dataset-title.js +0 -146
  1509. package/src/components/side-panel/common/source-data-catalog.js +0 -61
  1510. package/src/components/side-panel/common/source-data-selector.js +0 -79
  1511. package/src/components/side-panel/filter-manager.js +0 -105
  1512. package/src/components/side-panel/filter-panel/filter-panel-header.js +0 -83
  1513. package/src/components/side-panel/filter-panel/filter-panel.js +0 -126
  1514. package/src/components/side-panel/interaction-manager.js +0 -46
  1515. package/src/components/side-panel/interaction-panel/brush-config.js +0 -51
  1516. package/src/components/side-panel/interaction-panel/interaction-panel.js +0 -115
  1517. package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -199
  1518. package/src/components/side-panel/interaction-panel/tooltip-config.js +0 -190
  1519. package/src/components/side-panel/layer-manager.js +0 -290
  1520. package/src/components/side-panel/layer-panel/color-dimension-scale-selector.js +0 -33
  1521. package/src/components/side-panel/layer-panel/color-palette.js +0 -90
  1522. package/src/components/side-panel/layer-panel/color-range-selector.js +0 -359
  1523. package/src/components/side-panel/layer-panel/color-selector.js +0 -196
  1524. package/src/components/side-panel/layer-panel/column-selector.js +0 -70
  1525. package/src/components/side-panel/layer-panel/custom-markers-config-group.js +0 -30
  1526. package/src/components/side-panel/layer-panel/custom-palette.js +0 -296
  1527. package/src/components/side-panel/layer-panel/custom-picker.js +0 -88
  1528. package/src/components/side-panel/layer-panel/dimension-scale-selector.js +0 -48
  1529. package/src/components/side-panel/layer-panel/hex-column-config.js +0 -45
  1530. package/src/components/side-panel/layer-panel/layer-column-config.js +0 -113
  1531. package/src/components/side-panel/layer-panel/layer-config-group.js +0 -237
  1532. package/src/components/side-panel/layer-panel/layer-configurator.js +0 -1412
  1533. package/src/components/side-panel/layer-panel/layer-panel-header.js +0 -236
  1534. package/src/components/side-panel/layer-panel/layer-panel.js +0 -171
  1535. package/src/components/side-panel/layer-panel/layer-type-dropdown-list.js +0 -105
  1536. package/src/components/side-panel/layer-panel/layer-type-list-item.js +0 -83
  1537. package/src/components/side-panel/layer-panel/layer-type-selector.js +0 -89
  1538. package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -123
  1539. package/src/components/side-panel/layer-panel/single-color-palette.js +0 -98
  1540. package/src/components/side-panel/layer-panel/text-label-panel.js +0 -179
  1541. package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +0 -163
  1542. package/src/components/side-panel/layer-panel/vis-config-slider.js +0 -82
  1543. package/src/components/side-panel/layer-panel/vis-config-switch.js +0 -87
  1544. package/src/components/side-panel/map-manager.js +0 -114
  1545. package/src/components/side-panel/map-style-panel/map-layer-selector.js +0 -128
  1546. package/src/components/side-panel/map-style-panel/map-style-selector.js +0 -111
  1547. package/src/components/side-panel/panel-dropdown.js +0 -53
  1548. package/src/components/side-panel/panel-header-action.js +0 -106
  1549. package/src/components/side-panel/panel-header.js +0 -321
  1550. package/src/components/side-panel/panel-tab.js +0 -62
  1551. package/src/components/side-panel/panel-title.js +0 -32
  1552. package/src/components/side-panel/panel-toggle.js +0 -70
  1553. package/src/components/side-panel/side-bar.js +0 -136
  1554. package/src/components/side-panel.d.ts +0 -33
  1555. package/src/components/side-panel.js +0 -253
  1556. package/src/connect/keplergl-connect.js +0 -47
  1557. package/src/connect/with-local-selector.d.ts +0 -11
  1558. package/src/connect/with-local-selector.js +0 -67
  1559. package/src/constants/action-types.d.ts +0 -135
  1560. package/src/constants/action-types.js +0 -184
  1561. package/src/constants/color-ranges.js +0 -72
  1562. package/src/constants/default-settings.js +0 -994
  1563. package/src/deckgl-layers/3d-building-layer/3d-building-layer.js +0 -56
  1564. package/src/deckgl-layers/3d-building-layer/3d-building-utils.js +0 -192
  1565. package/src/deckgl-layers/column-layer/enhanced-column-layer.js +0 -63
  1566. package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +0 -70
  1567. package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +0 -70
  1568. package/src/deckgl-layers/layer-utils/cluster-utils.js +0 -76
  1569. package/src/deckgl-layers/layer-utils/cpu-aggregator.js +0 -583
  1570. package/src/deckgl-layers/layer-utils/shader-utils.js +0 -41
  1571. package/src/deckgl-layers/line-layer/line-layer.js +0 -122
  1572. package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +0 -57
  1573. package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.js +0 -85
  1574. package/src/index.js +0 -52
  1575. package/src/layers/aggregation-layer.js +0 -356
  1576. package/src/layers/arc-layer/arc-layer-icon.js +0 -67
  1577. package/src/layers/arc-layer/arc-layer.js +0 -221
  1578. package/src/layers/base-layer.js +0 -1545
  1579. package/src/layers/cluster-layer/cluster-layer.js +0 -125
  1580. package/src/layers/geojson-layer/geojson-layer-icon.js +0 -68
  1581. package/src/layers/geojson-layer/geojson-layer.js +0 -344
  1582. package/src/layers/geojson-layer/geojson-utils.js +0 -179
  1583. package/src/layers/grid-layer/grid-layer-icon.js +0 -53
  1584. package/src/layers/grid-layer/grid-layer.js +0 -95
  1585. package/src/layers/grid-layer/grid-utils.js +0 -71
  1586. package/src/layers/h3-hexagon-layer/h3-hexagon-layer.js +0 -264
  1587. package/src/layers/h3-hexagon-layer/h3-utils.js +0 -65
  1588. package/src/layers/heatmap-layer/heatmap-layer.js +0 -226
  1589. package/src/layers/hexagon-layer/hexagon-layer.js +0 -95
  1590. package/src/layers/hexagon-layer/hexagon-utils.js +0 -63
  1591. package/src/layers/icon-layer/icon-info-modal.js +0 -155
  1592. package/src/layers/icon-layer/icon-layer.js +0 -324
  1593. package/src/layers/index.d.ts +0 -128
  1594. package/src/layers/index.js +0 -76
  1595. package/src/layers/layer-factory.d.ts +0 -149
  1596. package/src/layers/layer-factory.js +0 -487
  1597. package/src/layers/layer-text-label.js +0 -62
  1598. package/src/layers/layer-update.js +0 -71
  1599. package/src/layers/line-layer/line-layer.js +0 -161
  1600. package/src/layers/mapbox-utils.js +0 -195
  1601. package/src/layers/mapboxgl-layer.js +0 -154
  1602. package/src/layers/point-layer/point-layer.js +0 -412
  1603. package/src/layers/s2-geometry-layer/s2-geometry-layer.js +0 -265
  1604. package/src/layers/s2-geometry-layer/s2-utils.js +0 -36
  1605. package/src/layers/scenegraph-layer/scenegraph-layer.js +0 -182
  1606. package/src/layers/trip-layer/trip-layer.js +0 -295
  1607. package/src/layers/trip-layer/trip-utils.js +0 -169
  1608. package/src/localization/en.js +0 -504
  1609. package/src/localization/formatted-message.js +0 -33
  1610. package/src/localization/index.js +0 -32
  1611. package/src/localization/locales.js +0 -46
  1612. package/src/middleware/index.js +0 -34
  1613. package/src/processors/data-processor.d.ts +0 -57
  1614. package/src/processors/data-processor.js +0 -684
  1615. package/src/processors/file-handler.d.ts +0 -46
  1616. package/src/processors/file-handler.js +0 -220
  1617. package/src/processors/index.js +0 -22
  1618. package/src/reducers/combined-updaters.d.ts +0 -26
  1619. package/src/reducers/combined-updaters.js +0 -198
  1620. package/src/reducers/composer-helpers.d.ts +0 -32
  1621. package/src/reducers/composer-helpers.js +0 -70
  1622. package/src/reducers/core.d.ts +0 -25
  1623. package/src/reducers/core.js +0 -97
  1624. package/src/reducers/index.d.ts +0 -118
  1625. package/src/reducers/index.js +0 -53
  1626. package/src/reducers/map-state-updaters.d.ts +0 -64
  1627. package/src/reducers/map-state-updaters.js +0 -224
  1628. package/src/reducers/map-state.js +0 -47
  1629. package/src/reducers/map-style-updaters.d.ts +0 -76
  1630. package/src/reducers/map-style-updaters.js +0 -541
  1631. package/src/reducers/map-style.js +0 -53
  1632. package/src/reducers/provider-state-updaters.d.ts +0 -88
  1633. package/src/reducers/provider-state-updaters.js +0 -428
  1634. package/src/reducers/provider-state.js +0 -53
  1635. package/src/reducers/root.js +0 -230
  1636. package/src/reducers/types.d.ts +0 -10
  1637. package/src/reducers/ui-state-updaters.d.ts +0 -198
  1638. package/src/reducers/ui-state-updaters.js +0 -766
  1639. package/src/reducers/ui-state.js +0 -73
  1640. package/src/reducers/vis-state-merger.d.ts +0 -78
  1641. package/src/reducers/vis-state-merger.js +0 -557
  1642. package/src/reducers/vis-state-selectors.js +0 -35
  1643. package/src/reducers/vis-state-updaters.d.ts +0 -534
  1644. package/src/reducers/vis-state-updaters.js +0 -2137
  1645. package/src/reducers/vis-state.js +0 -155
  1646. package/src/schemas/dataset-schema.js +0 -141
  1647. package/src/schemas/index.d.ts +0 -24
  1648. package/src/schemas/index.js +0 -42
  1649. package/src/schemas/schema-manager.d.ts +0 -229
  1650. package/src/schemas/schema-manager.js +0 -228
  1651. package/src/schemas/schema.d.ts +0 -47
  1652. package/src/schemas/schema.js +0 -90
  1653. package/src/schemas/versions.d.ts +0 -23
  1654. package/src/schemas/vis-state-schema.js +0 -754
  1655. package/src/styles/base.js +0 -1620
  1656. package/src/styles/media-breakpoints.js +0 -47
  1657. package/src/tasks/tasks.js +0 -92
  1658. package/src/typedefs/README.md +0 -3
  1659. package/src/typedefs/deck.gl__core.d.ts +0 -64
  1660. package/src/typedefs/deck.gl__mesh-layers.d.ts +0 -33
  1661. package/src/utils/aggregate-utils.js +0 -71
  1662. package/src/utils/color-utils.js +0 -115
  1663. package/src/utils/data-scale-utils.d.ts +0 -26
  1664. package/src/utils/data-scale-utils.js +0 -61
  1665. package/src/utils/data-utils.d.ts +0 -46
  1666. package/src/utils/data-utils.js +0 -447
  1667. package/src/utils/dataset-utils.d.ts +0 -10
  1668. package/src/utils/dataset-utils.js +0 -255
  1669. package/src/utils/dom-to-image.js +0 -533
  1670. package/src/utils/dom-utils.js +0 -354
  1671. package/src/utils/export-utils.js +0 -247
  1672. package/src/utils/filter-utils.d.ts +0 -192
  1673. package/src/utils/filter-utils.js +0 -1114
  1674. package/src/utils/gpu-filter-utils.d.ts +0 -28
  1675. package/src/utils/gpu-filter-utils.js +0 -253
  1676. package/src/utils/index.d.ts +0 -5
  1677. package/src/utils/index.js +0 -57
  1678. package/src/utils/interaction-utils.d.ts +0 -36
  1679. package/src/utils/interaction-utils.js +0 -185
  1680. package/src/utils/layer-utils.d.ts +0 -78
  1681. package/src/utils/layer-utils.js +0 -206
  1682. package/src/utils/map-style-utils/mapbox-gl-style-editor.js +0 -201
  1683. package/src/utils/notifications-utils.js +0 -83
  1684. package/src/utils/observe-dimensions.d.ts +0 -18
  1685. package/src/utils/observe-dimensions.js +0 -115
  1686. package/src/utils/split-map-utils.js +0 -104
  1687. package/src/utils/table-utils/data-container-interface.d.ts +0 -140
  1688. package/src/utils/table-utils/data-container-utils.d.ts +0 -43
  1689. package/src/utils/table-utils/data-container-utils.js +0 -61
  1690. package/src/utils/table-utils/data-row.d.ts +0 -65
  1691. package/src/utils/table-utils/data-row.js +0 -54
  1692. package/src/utils/table-utils/index.d.ts +0 -1
  1693. package/src/utils/table-utils/indexed-data-container.d.ts +0 -26
  1694. package/src/utils/table-utils/indexed-data-container.js +0 -152
  1695. package/src/utils/table-utils/kepler-table.d.ts +0 -114
  1696. package/src/utils/table-utils/kepler-table.js +0 -508
  1697. package/src/utils/table-utils/row-data-container.d.ts +0 -30
  1698. package/src/utils/table-utils/row-data-container.js +0 -151
  1699. package/src/utils/utils.js +0 -202
  1700. package/styles.js +0 -21
  1701. /package/src/actions/{index.js → index.ts} +0 -0
  1702. /package/src/components/common/data-table/{canvas.js → canvas.tsx} +0 -0
  1703. /package/src/components/editor/{constants.js → constants.ts} +0 -0
  1704. /package/src/components/filters/{components.js → components.ts} +0 -0
  1705. /package/src/components/filters/{index.js → index.ts} +0 -0
  1706. /package/src/components/map/{map-control-toolbar.js → map-control-toolbar.tsx} +0 -0
  1707. /package/src/components/modals/export-map-modal/{components.js → components.tsx} +0 -0
  1708. /package/src/components/modals/{modal-dialog.js → modal-dialog.tsx} +0 -0
  1709. /package/src/components/side-panel/{cloud-storage-dropdown.js → cloud-storage-dropdown.tsx} +0 -0
  1710. /package/src/components/side-panel/{custom-panel.js → custom-panel.tsx} +0 -0
  1711. /package/src/components/side-panel/layer-panel/{layer-aggregation-resolution.js → layer-aggregation-resolution.tsx} +0 -0
  1712. /package/src/constants/{color-palette.js → color-palette.ts} +0 -0
  1713. /package/src/constants/{custom-color-ranges.js → custom-color-ranges.ts} +0 -0
  1714. /package/src/constants/{index.js → index.ts} +0 -0
  1715. /package/src/constants/{keyevent.js → keyevent.ts} +0 -0
  1716. /package/src/constants/{tooltip.js → tooltip.ts} +0 -0
  1717. /package/src/constants/{user-feedbacks.js → user-feedbacks.ts} +0 -0
  1718. /package/src/constants/{user-guides.js → user-guides.ts} +0 -0
  1719. /package/src/layers/cluster-layer/{cluster-layer-icon.js → cluster-layer-icon.tsx} +0 -0
  1720. /package/src/layers/{default-layer-icon.js → default-layer-icon.tsx} +0 -0
  1721. /package/src/layers/h3-hexagon-layer/{h3-hexagon-layer-icon.js → h3-hexagon-layer-icon.tsx} +0 -0
  1722. /package/src/layers/heatmap-layer/{heatmap-layer-icon.js → heatmap-layer-icon.tsx} +0 -0
  1723. /package/src/layers/hexagon-layer/{hexagon-layer-icon.js → hexagon-layer-icon.tsx} +0 -0
  1724. /package/src/layers/icon-layer/{icon-layer-icon.js → icon-layer-icon.tsx} +0 -0
  1725. /package/src/layers/line-layer/{line-layer-icon.js → line-layer-icon.tsx} +0 -0
  1726. /package/src/layers/point-layer/{point-layer-icon.js → point-layer-icon.tsx} +0 -0
  1727. /package/src/layers/s2-geometry-layer/{s2-layer-icon.js → s2-layer-icon.tsx} +0 -0
  1728. /package/src/layers/scenegraph-layer/{scenegraph-info-modal.js → scenegraph-info-modal.tsx} +0 -0
  1729. /package/src/layers/scenegraph-layer/{scenegraph-layer-icon.js → scenegraph-layer-icon.tsx} +0 -0
  1730. /package/src/layers/trip-layer/{trip-info-modal.js → trip-info-modal.tsx} +0 -0
  1731. /package/src/layers/trip-layer/{trip-layer-icon.js → trip-layer-icon.tsx} +0 -0
  1732. /package/src/layers/{types.js → types.ts} +0 -0
  1733. /package/src/reducers/{composers.js → composers.ts} +0 -0
  1734. /package/src/schemas/{map-state-schema.js → map-state-schema.ts} +0 -0
  1735. /package/src/schemas/{map-style-schema.js → map-style-schema.ts} +0 -0
  1736. /package/src/schemas/{schema-utils.js → schema-utils.ts} +0 -0
  1737. /package/src/schemas/{versions.js → versions.ts} +0 -0
  1738. /package/src/styles/{index.js → index.ts} +0 -0
  1739. /package/src/templates/{export-map-html.js → export-map-html.ts} +0 -0
  1740. /package/src/utils/{gl-utils.js → gl-utils.ts} +0 -0
  1741. /package/src/utils/{locale-utils.js → locale-utils.ts} +0 -0
  1742. /package/src/utils/{map-info-utils.js → map-info-utils.ts} +0 -0
  1743. /package/src/utils/map-style-utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
  1744. /package/src/utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
  1745. /package/src/utils/{projection-utils.js → projection-utils.ts} +0 -0
  1746. /package/src/utils/{searcher-utils.js → searcher-utils.ts} +0 -0
  1747. /package/src/utils/table-utils/{index.js → index.ts} +0 -0
@@ -12,11 +12,9 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
16
15
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
17
  var _react = _interopRequireWildcard(require("react"));
19
- var _propTypes = _interopRequireDefault(require("prop-types"));
20
18
  var _reactMapGl = _interopRequireDefault(require("react-map-gl"));
21
19
  var _react2 = _interopRequireDefault(require("@deck.gl/react"));
22
20
  var _reselect = require("reselect");
@@ -63,11 +61,12 @@ var _window, _window$location, _window$location$sear; // Copyright (c) 2022 Uber
63
61
  // default-settings
64
62
  // Performance debugging
65
63
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
66
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
64
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
67
65
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
68
66
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
69
67
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
70
68
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
69
+ // @ts-expect-error
71
70
  var trackers = {};
72
71
  var PERF_DEBUG = (_window = window) === null || _window === void 0 ? void 0 : (_window$location = _window.location) === null || _window$location === void 0 ? void 0 : (_window$location$sear = _window$location.search) === null || _window$location$sear === void 0 ? void 0 : _window$location$sear.includes('PERF_DEBUG');
73
72
  if (PERF_DEBUG) {
@@ -96,12 +95,21 @@ var TRANSITION_DURATION = 0;
96
95
  MapContainerFactory.deps = [_mapPopover["default"], _mapControl["default"], _editor["default"]];
97
96
  function MapContainerFactory(MapPopover, MapControl, Editor) {
98
97
  var MapContainer = /*#__PURE__*/function (_Component) {
99
- (0, _inherits2["default"])(MapContainer, _Component);
100
98
  function MapContainer(_props) {
101
99
  var _this;
102
100
  (0, _classCallCheck2["default"])(this, MapContainer);
103
101
  _this = _callSuper(this, MapContainer, [_props]);
104
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_handleResize", function (dimensions) {
102
+ (0, _defineProperty2["default"])(_this, "previousLayers", {
103
+ // [layers.id]: mapboxLayerConfig
104
+ });
105
+ (0, _defineProperty2["default"])(_this, "displayName", 'MapContainer');
106
+ (0, _defineProperty2["default"])(_this, "_deck", null);
107
+ (0, _defineProperty2["default"])(_this, "_map", null);
108
+ (0, _defineProperty2["default"])(_this, "_ref", /*#__PURE__*/(0, _react.createRef)());
109
+ (0, _defineProperty2["default"])(_this, "_deckGLErrorsElapsed", {});
110
+ (0, _defineProperty2["default"])(_this, "_hasRendered", /*#__PURE__*/(0, _react.createRef)());
111
+ (0, _defineProperty2["default"])(_this, "_mousePosition", /*#__PURE__*/(0, _react.createRef)());
112
+ (0, _defineProperty2["default"])(_this, "_handleResize", function (dimensions) {
105
113
  var _this$props = _this.props,
106
114
  primary = _this$props.primary,
107
115
  isExport = _this$props.isExport;
@@ -112,53 +120,54 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
112
120
  }
113
121
  }
114
122
  });
115
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layersSelector", function (props) {
123
+ (0, _defineProperty2["default"])(_this, "layersSelector", function (props) {
116
124
  return props.layers;
117
125
  });
118
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layerDataSelector", function (props) {
126
+ (0, _defineProperty2["default"])(_this, "layerDataSelector", function (props) {
119
127
  return props.layerData;
120
128
  });
121
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mapLayersSelector", function (props) {
129
+ (0, _defineProperty2["default"])(_this, "mapLayersSelector", function (props) {
122
130
  return props.mapLayers;
123
131
  });
124
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layerOrderSelector", function (props) {
132
+ (0, _defineProperty2["default"])(_this, "layerOrderSelector", function (props) {
125
133
  return props.layerOrder;
126
134
  });
127
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "popupSettingsSelector", function (props) {
135
+ (0, _defineProperty2["default"])(_this, "popupSettingsSelector", function (props) {
128
136
  return props.popupSettings;
129
137
  });
130
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layersToRenderSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.layerDataSelector, _this.mapLayersSelector, _this.popupSettingsSelector, _layerUtils.prepareLayersToRender));
131
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layersForDeckSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.layerDataSelector, _layerUtils.prepareLayersForDeck));
132
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "filtersSelector", function (props) {
138
+ (0, _defineProperty2["default"])(_this, "layersToRenderSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.layerDataSelector, _this.mapLayersSelector, _this.popupSettingsSelector, _layerUtils.prepareLayersToRender));
139
+ (0, _defineProperty2["default"])(_this, "layersForDeckSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.layerDataSelector, _layerUtils.prepareLayersForDeck));
140
+ (0, _defineProperty2["default"])(_this, "filtersSelector", function (props) {
133
141
  return props.filters;
134
142
  });
135
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "polygonFilters", (0, _reselect.createSelector)(_this.filtersSelector, function (filters) {
143
+ (0, _defineProperty2["default"])(_this, "polygonFilters", (0, _reselect.createSelector)(_this.filtersSelector, function (filters) {
136
144
  return filters.filter(function (f) {
137
145
  return f.type === _defaultSettings.FILTER_TYPES.polygon;
138
146
  });
139
147
  }));
140
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mapboxLayersSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.layerDataSelector, _this.layerOrderSelector, _this.layersToRenderSelector, _mapboxUtils.generateMapboxLayers));
148
+ (0, _defineProperty2["default"])(_this, "mapboxLayersSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.layerDataSelector, _this.layerOrderSelector, _this.layersToRenderSelector, _mapboxUtils.generateMapboxLayers));
141
149
  /* component private functions */
142
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onCloseMapPopover", function () {
150
+ (0, _defineProperty2["default"])(_this, "_onCloseMapPopover", function () {
143
151
  _this.props.visStateActions.onLayerClick(null);
144
152
  });
145
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onLayerSetDomain", function (idx, colorDomain) {
153
+ (0, _defineProperty2["default"])(_this, "_onLayerSetDomain", function (idx, colorDomain) {
154
+ // @ts-expect-error
146
155
  _this.props.visStateActions.layerConfigChange(_this.props.layers[idx], {
147
156
  colorDomain: colorDomain
148
157
  });
149
158
  });
150
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_handleMapToggleLayer", function (layerId) {
159
+ (0, _defineProperty2["default"])(_this, "_handleMapToggleLayer", function (layerId) {
151
160
  var _this$props2 = _this.props,
152
161
  _this$props2$index = _this$props2.index,
153
162
  mapIndex = _this$props2$index === void 0 ? 0 : _this$props2$index,
154
163
  visStateActions = _this$props2.visStateActions;
155
164
  visStateActions.toggleLayerForMap(mapIndex, layerId);
156
165
  });
157
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onBeforeRender", function (_ref) {
166
+ (0, _defineProperty2["default"])(_this, "_onBeforeRender", function (_ref) {
158
167
  var gl = _ref.gl;
159
168
  (0, _glUtils.setLayerBlending)(gl, _this.props.layerBlending);
160
169
  });
161
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onDeckError", function (error, layer) {
170
+ (0, _defineProperty2["default"])(_this, "_onDeckError", function (error, layer) {
162
171
  if ((error === null || error === void 0 ? void 0 : error.message) === 'WebGL context is lost') {
163
172
  _this.setState({
164
173
  contextLost: true
@@ -169,7 +178,6 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
169
178
  var notificationId = "".concat(layer === null || layer === void 0 ? void 0 : layer.id, "-").concat(error === null || error === void 0 ? void 0 : error.message);
170
179
 
171
180
  // Throttle error notifications, as React doesn't like too many state changes from here.
172
- _this._deckGLErrorsElapsed = _this._deckGLErrorsElapsed || {};
173
181
  var lastShown = _this._deckGLErrorsElapsed[notificationId];
174
182
  if (!lastShown || lastShown < Date.now() - _defaultSettings.THROTTLE_NOTIFICATION_TIME) {
175
183
  _this._deckGLErrorsElapsed[notificationId] = Date.now();
@@ -183,7 +191,7 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
183
191
  }));
184
192
  }
185
193
  });
186
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onViewportChange", function (viewState) {
194
+ (0, _defineProperty2["default"])(_this, "_onViewportChange", function (viewState) {
187
195
  var _trackers$viewportCha;
188
196
  (_trackers$viewportCha = trackers.viewportChangeCount) === null || _trackers$viewportCha === void 0 ? void 0 : _trackers$viewportCha.increment();
189
197
  var width = viewState.width,
@@ -205,25 +213,28 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
205
213
  _this.props.mapStateActions.updateMap(next);
206
214
  }
207
215
  });
208
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_toggleMapControl", function (panelId) {
216
+ (0, _defineProperty2["default"])(_this, "_toggleMapControl", function (panelId) {
209
217
  var _this$props4 = _this.props,
210
218
  index = _this$props4.index,
211
219
  uiStateActions = _this$props4.uiStateActions;
212
- uiStateActions.toggleMapControl(panelId, index);
220
+ uiStateActions.toggleMapControl(panelId, Number(index));
213
221
  });
214
- _this._deck = null;
215
- _this._ref = /*#__PURE__*/(0, _react.createRef)();
216
-
217
- // Render limiting mechanism
218
- _this._hasRendered = /*#__PURE__*/(0, _react.createRef)();
219
- _this._mousePosition = /*#__PURE__*/(0, _react.createRef)();
220
222
  return _this;
221
223
  }
222
- (0, _createClass2["default"])(MapContainer, [{
224
+ (0, _inherits2["default"])(MapContainer, _Component);
225
+ return (0, _createClass2["default"])(MapContainer, [{
223
226
  key: "componentDidMount",
224
227
  value: function componentDidMount() {
228
+ if (!this._ref.current) {
229
+ return;
230
+ }
225
231
  (0, _observeDimensions.observeDimensions)(this._ref.current, this._handleResize);
226
232
  }
233
+ }, {
234
+ key: "componentWillUnmount",
235
+ value: function componentWillUnmount() {
236
+ (0, _observeDimensions.unobserveDimensions)(this._ref.current);
237
+ }
227
238
  }, {
228
239
  key: "componentDidUpdate",
229
240
  value: function componentDidUpdate() {
@@ -236,11 +247,6 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
236
247
  });
237
248
  }
238
249
  }
239
- }, {
240
- key: "componentWillUnmount",
241
- value: function componentWillUnmount() {
242
- (0, _observeDimensions.unobserveDimensions)(this._ref.current);
243
- }
244
250
  }, {
245
251
  key: "_onDeckInitialized",
246
252
  value: function _onDeckInitialized(gl) {
@@ -349,6 +355,7 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
349
355
  onViewStateChange: function onViewStateChange(_ref2) {
350
356
  var viewState = _ref2.viewState;
351
357
  // Limit updates (prevents freezes when dev tools open)
358
+ // @ts-expect-error
352
359
  if (!hasRendered.current && viewState.width > 1 && viewState.height > 1) {
353
360
  hasRendered.current = true;
354
361
  _this2._onViewportChange(viewState);
@@ -385,11 +392,20 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
385
392
  var _layer$props$visibili, _layer$props$visibili2;
386
393
  var layer = _ref3.layer,
387
394
  viewport = _ref3.viewport;
388
- if (isNaN((_layer$props$visibili = layer.props.visibilityByZoom) === null || _layer$props$visibili === void 0 ? void 0 : _layer$props$visibili.min) || isNaN((_layer$props$visibili2 = layer.props.visibilityByZoom) === null || _layer$props$visibili2 === void 0 ? void 0 : _layer$props$visibili2.max)) {
395
+ if (
396
+ // @ts-expect-error
397
+ isNaN((_layer$props$visibili = layer.props.visibilityByZoom) === null || _layer$props$visibili === void 0 ? void 0 : _layer$props$visibili.min) ||
398
+ // @ts-expect-error
399
+ isNaN((_layer$props$visibili2 = layer.props.visibilityByZoom) === null || _layer$props$visibili2 === void 0 ? void 0 : _layer$props$visibili2.max)) {
389
400
  return true;
390
401
  }
391
402
  var currentZoomRange = Math.round(mapState.zoom);
392
- return layer.props.visibilityByZoom.min <= currentZoomRange && layer.props.visibilityByZoom.max >= currentZoomRange;
403
+ return (
404
+ // @ts-expect-error
405
+ layer.props.visibilityByZoom.min <= currentZoomRange &&
406
+ // @ts-expect-error
407
+ layer.props.visibilityByZoom.max >= currentZoomRange
408
+ );
393
409
  }
394
410
  }));
395
411
  }
@@ -402,7 +418,8 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
402
418
  mapStyle = _this$props6.mapStyle,
403
419
  mapStateActions = _this$props6.mapStateActions,
404
420
  layers = _this$props6.layers,
405
- MapComponent = _this$props6.MapComponent,
421
+ _this$props6$MapCompo = _this$props6.MapComponent,
422
+ MapComponent = _this$props6$MapCompo === void 0 ? _reactMapGl["default"] : _this$props6$MapCompo,
406
423
  datasets = _this$props6.datasets,
407
424
  mapControls = _this$props6.mapControls,
408
425
  isExport = _this$props6.isExport,
@@ -446,7 +463,8 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
446
463
  onToggleMapControl: this._toggleMapControl,
447
464
  onSetEditorMode: visStateActions.setEditorMode,
448
465
  onSetLocale: uiStateActions.setLocale,
449
- onToggleEditorVisibility: visStateActions.toggleEditorVisibility
466
+ onToggleEditorVisibility: visStateActions.toggleEditorVisibility,
467
+ mapHeight: mapState.height
450
468
  }), /*#__PURE__*/_react["default"].createElement(MapComponent, (0, _extends2["default"])({}, mapProps, {
451
469
  key: "bottom",
452
470
  mapStyle: mapStyle.bottomMapStyle
@@ -465,43 +483,13 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
465
483
  }
466
484
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.StyledMapContainer, {
467
485
  ref: this._ref,
468
- style: MAP_STYLE.container,
469
- globe: mapState.globe
486
+ style: MAP_STYLE.container
470
487
  }, mapStyle.bottomMapStyle && this._renderMap());
471
488
  }
472
489
  }]);
473
- return MapContainer;
474
490
  }(_react.Component);
475
491
  (0, _defineProperty2["default"])(MapContainer, "propTypes", {
476
492
  // required
477
- datasets: _propTypes["default"].object,
478
- interactionConfig: _propTypes["default"].object.isRequired,
479
- layerBlending: _propTypes["default"].string.isRequired,
480
- layerOrder: _propTypes["default"].arrayOf(_propTypes["default"].any).isRequired,
481
- layerData: _propTypes["default"].arrayOf(_propTypes["default"].any).isRequired,
482
- layers: _propTypes["default"].arrayOf(_propTypes["default"].any).isRequired,
483
- filters: _propTypes["default"].arrayOf(_propTypes["default"].any).isRequired,
484
- mapState: _propTypes["default"].object.isRequired,
485
- mapControls: _propTypes["default"].object.isRequired,
486
- mapStyle: _propTypes["default"].object.isRequired,
487
- mapboxApiUrl: _propTypes["default"].string,
488
- visStateActions: _propTypes["default"].object.isRequired,
489
- mapStateActions: _propTypes["default"].object.isRequired,
490
- uiStateActions: _propTypes["default"].object.isRequired,
491
- // optional
492
- primary: _propTypes["default"].bool,
493
- // primary one will be reporting its size to appState
494
- readOnly: _propTypes["default"].bool,
495
- isExport: _propTypes["default"].bool,
496
- clicked: _propTypes["default"].object,
497
- hoverInfo: _propTypes["default"].object,
498
- mapLayers: _propTypes["default"].object,
499
- onMapToggleLayer: _propTypes["default"].func,
500
- onMapStyleLoaded: _propTypes["default"].func,
501
- generateThumbnail: _propTypes["default"].func,
502
- getMapboxRef: _propTypes["default"].func,
503
- index: _propTypes["default"].number,
504
- popupSettings: _propTypes["default"].object
505
493
  });
506
494
  (0, _defineProperty2["default"])(MapContainer, "defaultProps", {
507
495
  MapComponent: _reactMapGl["default"],
@@ -509,7 +497,6 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
509
497
  index: 0,
510
498
  primary: true
511
499
  });
512
- MapContainer.displayName = 'MapContainer';
513
500
  return MapContainer;
514
501
  }
515
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE1hcEdsIiwiX3JlYWN0MiIsIl9yZXNlbGVjdCIsIl9jb3JlIiwiX2xheWVycyIsIl9nZW9MYXllcnMiLCJfbm90aWZpY2F0aW9uc1V0aWxzIiwiX21hcFBvcG92ZXIiLCJfbWFwQ29udHJvbCIsIl9zdHlsZWRDb21wb25lbnRzIiwiX2VkaXRvciIsIl9tYXBib3hVdGlscyIsIl9nbFV0aWxzIiwiX21hcGJveFV0aWxzMiIsIl9sYXllclV0aWxzIiwiX2RCdWlsZGluZ0xheWVyIiwiX2RlZmF1bHRTZXR0aW5ncyIsIl9vYnNlcnZlRGltZW5zaW9ucyIsIl9sb2NhbGVzIiwiX3BlcmZvcm1hbmNlIiwiX2V4Y2x1ZGVkIiwiX3dpbmRvdyIsIl93aW5kb3ckbG9jYXRpb24iLCJfd2luZG93JGxvY2F0aW9uJHNlYXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwidmFsdWVPZiIsInRyYWNrZXJzIiwiUEVSRl9ERUJVRyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwiaW5jbHVkZXMiLCJkcmF3Q291bnQiLCJjcmVhdGVUcmFja2VyIiwidmlld3BvcnRDaGFuZ2VDb3VudCIsImNyZWF0ZUxheWVyVXBkYXRlVHJhY2tlciIsIkxheWVyIiwiVGlsZUxheWVyIiwiTUFQX1NUWUxFIiwiY29udGFpbmVyIiwiZGlzcGxheSIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJ0b3AiLCJwb2ludGVyRXZlbnRzIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwUG9wb3ZlckZhY3RvcnkiLCJNYXBDb250cm9sRmFjdG9yeSIsIkVkaXRvckZhY3RvcnkiLCJNYXBQb3BvdmVyIiwiTWFwQ29udHJvbCIsIkVkaXRvciIsIk1hcENvbnRhaW5lciIsIl9Db21wb25lbnQiLCJfaW5oZXJpdHMyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiIsImRpbWVuc2lvbnMiLCJfdGhpcyRwcm9wcyIsInByaW1hcnkiLCJpc0V4cG9ydCIsIm1hcFN0YXRlQWN0aW9ucyIsInVwZGF0ZU1hcCIsImxheWVycyIsImxheWVyRGF0YSIsIm1hcExheWVycyIsImxheWVyT3JkZXIiLCJwb3B1cFNldHRpbmdzIiwiY3JlYXRlU2VsZWN0b3IiLCJsYXllcnNTZWxlY3RvciIsImxheWVyRGF0YVNlbGVjdG9yIiwibWFwTGF5ZXJzU2VsZWN0b3IiLCJwb3B1cFNldHRpbmdzU2VsZWN0b3IiLCJwcmVwYXJlTGF5ZXJzVG9SZW5kZXIiLCJwcmVwYXJlTGF5ZXJzRm9yRGVjayIsImZpbHRlcnMiLCJmaWx0ZXJzU2VsZWN0b3IiLCJmIiwidHlwZSIsIkZJTFRFUl9UWVBFUyIsInBvbHlnb24iLCJsYXllck9yZGVyU2VsZWN0b3IiLCJsYXllcnNUb1JlbmRlclNlbGVjdG9yIiwiZ2VuZXJhdGVNYXBib3hMYXllcnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJvbkxheWVyQ2xpY2siLCJpZHgiLCJjb2xvckRvbWFpbiIsImxheWVyQ29uZmlnQ2hhbmdlIiwibGF5ZXJJZCIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzMiRpbmRleCIsImluZGV4IiwibWFwSW5kZXgiLCJ0b2dnbGVMYXllckZvck1hcCIsIl9yZWYiLCJnbCIsInNldExheWVyQmxlbmRpbmciLCJsYXllckJsZW5kaW5nIiwiZXJyb3IiLCJsYXllciIsIm1lc3NhZ2UiLCJzZXRTdGF0ZSIsImNvbnRleHRMb3N0IiwiZXJyb3JNZXNzYWdlIiwiY29uY2F0IiwiaWQiLCJub3RpZmljYXRpb25JZCIsIl9kZWNrR0xFcnJvcnNFbGFwc2VkIiwibGFzdFNob3duIiwiRGF0ZSIsIm5vdyIsIlRIUk9UVExFX05PVElGSUNBVElPTl9USU1FIiwidWlTdGF0ZUFjdGlvbnMiLCJhZGROb3RpZmljYXRpb24iLCJlcnJvck5vdGlmaWNhdGlvbiIsInZpZXdTdGF0ZSIsIl90cmFja2VycyR2aWV3cG9ydENoYSIsImluY3JlbWVudCIsInJlc3RWaWV3U3RhdGUiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiX3RoaXMkcHJvcHMzIiwibmV4dCIsInRyYW5zaXRpb25EdXJhdGlvbiIsIm9uVmlld1N0YXRlQ2hhbmdlIiwicGFuZWxJZCIsIl90aGlzJHByb3BzNCIsInRvZ2dsZU1hcENvbnRyb2wiLCJfZGVjayIsImNyZWF0ZVJlZiIsIl9oYXNSZW5kZXJlZCIsIl9tb3VzZVBvc2l0aW9uIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsImN1cnJlbnQiLCJfaGFuZGxlUmVzaXplIiwiY29tcG9uZW50RGlkVXBkYXRlIiwiX3RoaXMkc3RhdGUiLCJzdGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwidW5vYnNlcnZlRGltZW5zaW9ucyIsIl9vbkRlY2tJbml0aWFsaXplZCIsIm9uRGVja0luaXRpYWxpemVkIiwiX3JlbmRlck1hcFBvcG92ZXIiLCJsYXllcnNUb1JlbmRlciIsIl9nZXRIb3ZlclhZIiwidmlld3BvcnQiLCJsbmdMYXQiLCJzY3JlZW5Db29yZCIsInByb2plY3QiLCJ4IiwieSIsIl9yZW5kZXJEZWNrT3ZlcmxheSIsImxheWVyc0ZvckRlY2siLCJfdHJhY2tlcnMkZHJhd0NvdW50IiwiX3RoaXMkcHJvcHMkZGVja0dsUHJvIiwiX3RoaXMyIiwiX3RoaXMkcHJvcHMkZGVja0dsUHJvMiIsIl90aGlzJHByb3BzNSIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJtYXBib3hBcGlVcmwiLCJtYXNrUG9seWdvbiIsIm1vdXNlUG9zaXRpb24iLCJkZWNrR2xMYXllcnMiLCJkZWNrR2xQcm9wcyIsImRhdGFMYXllcnMiLCJzbGljZSIsInJldmVyc2UiLCJyZWR1Y2UiLCJvdmVybGF5cyIsImxheWVyQ2FsbGJhY2tzIiwib25TZXRMYXllckRvbWFpbiIsInZhbCIsIl9vbkxheWVyU2V0RG9tYWluIiwibGF5ZXJPdmVybGF5IiwicmVuZGVyRGVja0dsTGF5ZXIiLCJsYXllcnNPblRvcCIsIlNvbGlkUG9seWdvbkxheWVyIiwiTUFTS19MQVlFUl9JRCIsIm9wZXJhdGlvbiIsIk9QRVJBVElPTiIsIk1BU0siLCJkYXRhIiwiZGF0YUNvbXBhcmF0b3IiLCJvbGREYXRhIiwiZ2V0UG9seWdvbiIsImQiLCJnZXRGaWxsQ29sb3IiLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJUaHJlZURCdWlsZGluZ0xheWVyIiwidGhyZWVEQnVpbGRpbmdDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiaGFzUmVuZGVyZWQiLCJyZXNldEhhc1JlbmRlcmVkIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImNvbnRyb2xsZXIiLCJnbE9wdGlvbnMiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJfcmVmMiIsIl9vblZpZXdwb3J0Q2hhbmdlIiwib25CZWZvcmVSZW5kZXIiLCJvcHRzIiwiX29uQmVmb3JlUmVuZGVyIiwib25Ib3ZlciIsImluZm8iLCJvbkxheWVySG92ZXIiLCJwaXhlbCIsIm9uQ2xpY2siLCJvbkRyYWdTdGFydCIsIm9uRXJyb3IiLCJfb25EZWNrRXJyb3IiLCJyZWYiLCJjb21wIiwiZGVjayIsIm9uV2ViR0xJbml0aWFsaXplZCIsImxheWVyRmlsdGVyIiwiX3JlZjMiLCJfbGF5ZXIkcHJvcHMkdmlzaWJpbGkiLCJfbGF5ZXIkcHJvcHMkdmlzaWJpbGkyIiwiaXNOYU4iLCJ2aXNpYmlsaXR5Qnlab29tIiwibWluIiwibWF4IiwiY3VycmVudFpvb21SYW5nZSIsIk1hdGgiLCJyb3VuZCIsInpvb20iLCJfcmVuZGVyTWFwIiwiX3RoaXMkcHJvcHM2IiwiTWFwQ29tcG9uZW50IiwiZGF0YXNldHMiLCJtYXBDb250cm9scyIsImxvY2FsZSIsImludGVyYWN0aW9uQ29uZmlnIiwiZWRpdG9yIiwiZ2VuZXJhdGVUaHVtYm5haWwiLCJsYXllcnNGb3JEZWNrU2VsZWN0b3IiLCJtYXBQcm9wcyIsInRyYW5zZm9ybVJlcXVlc3QiLCJpc1NwbGl0IiwiRnJhZ21lbnQiLCJhdmFpbGFibGVMb2NhbGVzIiwiTE9DQUxFX0NPREVTIiwiZHJhZ1JvdGF0ZSIsInJlYWRPbmx5Iiwic2NhbGUiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJvblRvZ2dsZVBlcnNwZWN0aXZlIiwidG9nZ2xlUGVyc3BlY3RpdmUiLCJvblRvZ2dsZVNwbGl0TWFwIiwidG9nZ2xlU3BsaXRNYXAiLCJvbk1hcFRvZ2dsZUxheWVyIiwiX2hhbmRsZU1hcFRvZ2dsZUxheWVyIiwib25Ub2dnbGVNYXBDb250cm9sIiwiX3RvZ2dsZU1hcENvbnRyb2wiLCJvblNldEVkaXRvck1vZGUiLCJzZXRFZGl0b3JNb2RlIiwib25TZXRMb2NhbGUiLCJzZXRMb2NhbGUiLCJvblRvZ2dsZUVkaXRvclZpc2liaWxpdHkiLCJ0b2dnbGVFZGl0b3JWaXNpYmlsaXR5IiwiYm90dG9tTWFwU3R5bGUiLCJyZW5kZXJQZXJmb3JtYW5jZVN0YXRzIiwicmVuZGVyIiwiX3RoaXMkc3RhdGUyIiwiX3RoaXMkcHJvcHM3IiwiU3R5bGVkTWFwQ29udGFpbmVyIiwic3R5bGUiLCJnbG9iZSIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJzdHJpbmciLCJhcnJheU9mIiwiYW55IiwiYm9vbCIsImNsaWNrZWQiLCJob3ZlckluZm8iLCJmdW5jIiwib25NYXBTdHlsZUxvYWRlZCIsImdldE1hcGJveFJlZiIsIm51bWJlciIsIk1hcGJveEdMTWFwIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9tYXAtY29udGFpbmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTWFwYm94R0xNYXAgZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBEZWNrR0wgZnJvbSAnQGRlY2suZ2wvcmVhY3QnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IHtPUEVSQVRJT04sIExheWVyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7U29saWRQb2x5Z29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge1RpbGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvZ2VvLWxheWVycyc7XG5pbXBvcnQge2Vycm9yTm90aWZpY2F0aW9ufSBmcm9tICd1dGlscy9ub3RpZmljYXRpb25zLXV0aWxzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IE1hcFBvcG92ZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1wb3BvdmVyJztcbmltcG9ydCBNYXBDb250cm9sRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL21hcC9tYXAtY29udHJvbCc7XG5pbXBvcnQge1N0eWxlZE1hcENvbnRhaW5lcn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgRWRpdG9yRmFjdG9yeSBmcm9tICcuL2VkaXRvci9lZGl0b3InO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHtnZW5lcmF0ZU1hcGJveExheWVyc30gZnJvbSAnbGF5ZXJzL21hcGJveC11dGlscyc7XG5pbXBvcnQge3NldExheWVyQmxlbmRpbmd9IGZyb20gJ3V0aWxzL2dsLXV0aWxzJztcbmltcG9ydCB7dHJhbnNmb3JtUmVxdWVzdH0gZnJvbSAndXRpbHMvbWFwLXN0eWxlLXV0aWxzL21hcGJveC11dGlscyc7XG5pbXBvcnQge3JlbmRlckRlY2tHbExheWVyLCBwcmVwYXJlTGF5ZXJzVG9SZW5kZXIsIHByZXBhcmVMYXllcnNGb3JEZWNrfSBmcm9tICd1dGlscy9sYXllci11dGlscyc7XG5cbi8vIGRlZmF1bHQtc2V0dGluZ3NcbmltcG9ydCBUaHJlZURCdWlsZGluZ0xheWVyIGZyb20gJ2RlY2tnbC1sYXllcnMvM2QtYnVpbGRpbmctbGF5ZXIvM2QtYnVpbGRpbmctbGF5ZXInO1xuaW1wb3J0IHtGSUxURVJfVFlQRVMsIE1BU0tfTEFZRVJfSUQsIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJy4uL3V0aWxzL29ic2VydmUtZGltZW5zaW9ucyc7XG5pbXBvcnQge0xPQ0FMRV9DT0RFU30gZnJvbSAnbG9jYWxpemF0aW9uL2xvY2FsZXMnO1xuXG4vLyBQZXJmb3JtYW5jZSBkZWJ1Z2dpbmdcbmltcG9ydCB7Y3JlYXRlVHJhY2tlciwgY3JlYXRlTGF5ZXJVcGRhdGVUcmFja2VyLCByZW5kZXJQZXJmb3JtYW5jZVN0YXRzfSBmcm9tICcuL3BlcmZvcm1hbmNlJztcbmNvbnN0IHRyYWNrZXJzID0ge307XG5jb25zdCBQRVJGX0RFQlVHID0gd2luZG93Py5sb2NhdGlvbj8uc2VhcmNoPy5pbmNsdWRlcygnUEVSRl9ERUJVRycpO1xuaWYgKFBFUkZfREVCVUcpIHtcbiAgdHJhY2tlcnMuZHJhd0NvdW50ID0gY3JlYXRlVHJhY2tlcignZHJhd3MnKTtcbiAgdHJhY2tlcnMudmlld3BvcnRDaGFuZ2VDb3VudCA9IGNyZWF0ZVRyYWNrZXIoJ3ZpZXdwb3J0IGNoYW5nZXMnKTtcbiAgY3JlYXRlTGF5ZXJVcGRhdGVUcmFja2VyKCdzdGF0ZSB1cGRhdGVzJywgW0xheWVyLCBUaWxlTGF5ZXJdKTtcbn1cblxuLyoqIEB0eXBlIHt7W2tleTogc3RyaW5nXTogUmVhY3QuQ1NTUHJvcGVydGllc319ICovXG5jb25zdCBNQVBfU1RZTEUgPSB7XG4gIGNvbnRhaW5lcjoge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJSdcbiAgfSxcbiAgdG9wOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnMHB4JyxcbiAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9XG59O1xuXG5jb25zdCBUUkFOU0lUSU9OX0RVUkFUSU9OID0gMDtcblxuTWFwQ29udGFpbmVyRmFjdG9yeS5kZXBzID0gW01hcFBvcG92ZXJGYWN0b3J5LCBNYXBDb250cm9sRmFjdG9yeSwgRWRpdG9yRmFjdG9yeV07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1hcENvbnRhaW5lckZhY3RvcnkoTWFwUG9wb3ZlciwgTWFwQ29udHJvbCwgRWRpdG9yKSB7XG4gIGNsYXNzIE1hcENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIC8vIHJlcXVpcmVkXG4gICAgICBkYXRhc2V0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIGludGVyYWN0aW9uQ29uZmlnOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBsYXllckJsZW5kaW5nOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgICBsYXllck9yZGVyOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJEYXRhOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbGF5ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgZmlsdGVyczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcbiAgICAgIG1hcFN0YXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBDb250cm9sczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3R5bGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcGJveEFwaVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHZpc1N0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICB1aVN0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuXG4gICAgICAvLyBvcHRpb25hbFxuICAgICAgcHJpbWFyeTogUHJvcFR5cGVzLmJvb2wsIC8vIHByaW1hcnkgb25lIHdpbGwgYmUgcmVwb3J0aW5nIGl0cyBzaXplIHRvIGFwcFN0YXRlXG4gICAgICByZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBpc0V4cG9ydDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBjbGlja2VkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaG92ZXJJbmZvOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgbWFwTGF5ZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgb25NYXBUb2dnbGVMYXllcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbk1hcFN0eWxlTG9hZGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdlbmVyYXRlVGh1bWJuYWlsOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdldE1hcGJveFJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHBvcHVwU2V0dGluZ3M6IFByb3BUeXBlcy5vYmplY3RcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIE1hcENvbXBvbmVudDogTWFwYm94R0xNYXAsXG4gICAgICBkZWNrR2xQcm9wczoge30sXG4gICAgICBpbmRleDogMCxcbiAgICAgIHByaW1hcnk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgdGhpcy5fZGVjayA9IG51bGw7XG4gICAgICB0aGlzLl9yZWYgPSBjcmVhdGVSZWYoKTtcblxuICAgICAgLy8gUmVuZGVyIGxpbWl0aW5nIG1lY2hhbmlzbVxuICAgICAgdGhpcy5faGFzUmVuZGVyZWQgPSBjcmVhdGVSZWYoKTtcbiAgICAgIHRoaXMuX21vdXNlUG9zaXRpb24gPSBjcmVhdGVSZWYoKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IGNvbnRleHRMb3N0ID0gdGhpcy5zdGF0ZT8uY29udGV4dExvc3Q7XG5cbiAgICAgIGlmIChjb250ZXh0TG9zdCkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tZGlkLXVwZGF0ZS1zZXQtc3RhdGVcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IGZhbHNlfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgICBjb25zdCB7cHJpbWFyeSwgaXNFeHBvcnR9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmIChwcmltYXJ5KSB7XG4gICAgICAgIGNvbnN0IHttYXBTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgaWYgKCFpc0V4cG9ydCAmJiBkaW1lbnNpb25zICYmIGRpbWVuc2lvbnMud2lkdGggPiAwICYmIGRpbWVuc2lvbnMuaGVpZ2h0ID4gMCkge1xuICAgICAgICAgIG1hcFN0YXRlQWN0aW9ucy51cGRhdGVNYXAoZGltZW5zaW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgbGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllcnM7XG4gICAgbGF5ZXJEYXRhU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllckRhdGE7XG4gICAgbWFwTGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5tYXBMYXllcnM7XG4gICAgbGF5ZXJPcmRlclNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubGF5ZXJPcmRlcjtcbiAgICBwb3B1cFNldHRpbmdzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5wb3B1cFNldHRpbmdzO1xuXG4gICAgbGF5ZXJzVG9SZW5kZXJTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICB0aGlzLm1hcExheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5wb3B1cFNldHRpbmdzU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzVG9SZW5kZXJcbiAgICApO1xuICAgIGxheWVyc0ZvckRlY2tTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICBwcmVwYXJlTGF5ZXJzRm9yRGVja1xuICAgICk7XG4gICAgZmlsdGVyc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuZmlsdGVycztcbiAgICBwb2x5Z29uRmlsdGVycyA9IGNyZWF0ZVNlbGVjdG9yKHRoaXMuZmlsdGVyc1NlbGVjdG9yLCBmaWx0ZXJzID0+XG4gICAgICBmaWx0ZXJzLmZpbHRlcihmID0+IGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnBvbHlnb24pXG4gICAgKTtcblxuICAgIG1hcGJveExheWVyc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJPcmRlclNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllcnNUb1JlbmRlclNlbGVjdG9yLFxuICAgICAgZ2VuZXJhdGVNYXBib3hMYXllcnNcbiAgICApO1xuXG4gICAgLyogY29tcG9uZW50IHByaXZhdGUgZnVuY3Rpb25zICovXG4gICAgX29uQ2xvc2VNYXBQb3BvdmVyID0gKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMub25MYXllckNsaWNrKG51bGwpO1xuICAgIH07XG5cbiAgICBfb25MYXllclNldERvbWFpbiA9IChpZHgsIGNvbG9yRG9tYWluKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5sYXllckNvbmZpZ0NoYW5nZSh0aGlzLnByb3BzLmxheWVyc1tpZHhdLCB7XG4gICAgICAgIGNvbG9yRG9tYWluXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX2hhbmRsZU1hcFRvZ2dsZUxheWVyID0gbGF5ZXJJZCA9PiB7XG4gICAgICBjb25zdCB7aW5kZXg6IG1hcEluZGV4ID0gMCwgdmlzU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICB2aXNTdGF0ZUFjdGlvbnMudG9nZ2xlTGF5ZXJGb3JNYXAobWFwSW5kZXgsIGxheWVySWQpO1xuICAgIH07XG5cbiAgICBfb25EZWNrSW5pdGlhbGl6ZWQoZ2wpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRGVja0luaXRpYWxpemVkKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQodGhpcy5fZGVjaywgZ2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9vbkJlZm9yZVJlbmRlciA9ICh7Z2x9KSA9PiB7XG4gICAgICBzZXRMYXllckJsZW5kaW5nKGdsLCB0aGlzLnByb3BzLmxheWVyQmxlbmRpbmcpO1xuICAgIH07XG5cbiAgICBfb25EZWNrRXJyb3IgPSAoZXJyb3IsIGxheWVyKSA9PiB7XG4gICAgICBpZiAoZXJyb3I/Lm1lc3NhZ2UgPT09ICdXZWJHTCBjb250ZXh0IGlzIGxvc3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRleHRMb3N0OiB0cnVlfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIGluIGRlY2suZ2w6ICR7ZXJyb3I/Lm1lc3NhZ2V9IGluICR7bGF5ZXI/LmlkfWA7XG4gICAgICBjb25zdCBub3RpZmljYXRpb25JZCA9IGAke2xheWVyPy5pZH0tJHtlcnJvcj8ubWVzc2FnZX1gO1xuXG4gICAgICAvLyBUaHJvdHRsZSBlcnJvciBub3RpZmljYXRpb25zLCBhcyBSZWFjdCBkb2Vzbid0IGxpa2UgdG9vIG1hbnkgc3RhdGUgY2hhbmdlcyBmcm9tIGhlcmUuXG4gICAgICB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkID0gdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZCB8fCB7fTtcbiAgICAgIGNvbnN0IGxhc3RTaG93biA9IHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdO1xuICAgICAgaWYgKCFsYXN0U2hvd24gfHwgbGFzdFNob3duIDwgRGF0ZS5ub3coKSAtIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FKSB7XG4gICAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBDcmVhdGUgbmV3IGVycm9yIG5vdGlmaWNhdGlvbiBvciB1cGRhdGUgZXhpc3Rpbmcgb25lIHdpdGggc2FtZSBpZC5cbiAgICAgICAgLy8gVXBkYXRlIGlzIHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBvcmRlciBvZiBub3RpZmljYXRpb25zIGFzIHRoZXkgcHJvYmFibHkgYXJlIGdvaW5nIHRvIFwianVtcFwiIGJhc2VkIG9uIG9yZGVyIG9mIGVycm9ycy5cbiAgICAgICAgY29uc3Qge3VpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbihcbiAgICAgICAgICBlcnJvck5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBpZDogbm90aWZpY2F0aW9uSWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBjb21wb25lbnQgcmVuZGVyIGZ1bmN0aW9ucyAqL1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIF9yZW5kZXJNYXBQb3BvdmVyKGxheWVyc1RvUmVuZGVyKSB7XG4gICAgICAvLyBPdmVycmlkZW4gaW4gQnVpbGRlcjogZmVhdHVyZXMvYnVpbGRlci91aS9LZXBsZXJHbC9NYXBDb250YWluZXIvTWFwQ29udGFpbmVyLnRzeFxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbiAgICBfZ2V0SG92ZXJYWSh2aWV3cG9ydCwgbG5nTGF0KSB7XG4gICAgICBjb25zdCBzY3JlZW5Db29yZCA9ICF2aWV3cG9ydCB8fCAhbG5nTGF0ID8gbnVsbCA6IHZpZXdwb3J0LnByb2plY3QobG5nTGF0KTtcbiAgICAgIHJldHVybiBzY3JlZW5Db29yZCAmJiB7eDogc2NyZWVuQ29vcmRbMF0sIHk6IHNjcmVlbkNvb3JkWzFdfTtcbiAgICB9XG5cbiAgICBfcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIGxheWVyRGF0YSxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFza1BvbHlnb25cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBtb3VzZVBvc2l0aW9uID0gdGhpcy5fbW91c2VQb3NpdGlvbjtcblxuICAgICAgdHJhY2tlcnMuZHJhd0NvdW50Py5pbmNyZW1lbnQoKTtcblxuICAgICAgLy8gaW5pdGlhbGlzZSBsYXllcnMgZnJvbSBwcm9wcyBpZiBleGlzdHNcbiAgICAgIGxldCBkZWNrR2xMYXllcnMgPSB0aGlzLnByb3BzLmRlY2tHbFByb3BzPy5sYXllcnMgfHwgW107XG5cbiAgICAgIC8vIHdhaXQgdW50aWwgZGF0YSBpcyByZWFkeSBiZWZvcmUgcmVuZGVyIGRhdGEgbGF5ZXJzXG4gICAgICBpZiAobGF5ZXJEYXRhICYmIGxheWVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbGFzdCBsYXllciByZW5kZXIgZmlyc3RcbiAgICAgICAgY29uc3QgZGF0YUxheWVycyA9IGxheWVyT3JkZXJcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAuZmlsdGVyKGlkeCA9PiBsYXllcnNGb3JEZWNrW2xheWVyc1tpZHhdLmlkXSlcbiAgICAgICAgICAucmVkdWNlKChvdmVybGF5cywgaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXllckNhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgICAgb25TZXRMYXllckRvbWFpbjogdmFsID0+IHRoaXMuX29uTGF5ZXJTZXREb21haW4oaWR4LCB2YWwpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPdmVybGF5ID0gcmVuZGVyRGVja0dsTGF5ZXIodGhpcy5wcm9wcywgbGF5ZXJDYWxsYmFja3MsIGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gb3ZlcmxheXMuY29uY2F0KGxheWVyT3ZlcmxheSB8fCBbXSk7XG4gICAgICAgICAgfSwgW10pO1xuICAgICAgICBkZWNrR2xMYXllcnMgPSBkZWNrR2xMYXllcnMuY29uY2F0KGRhdGFMYXllcnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzT25Ub3ApIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdCh0aGlzLnByb3BzLmRlY2tHbFByb3BzLmxheWVyc09uVG9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hc2tQb2x5Z29uKSB7XG4gICAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICAgIG5ldyBTb2xpZFBvbHlnb25MYXllcih7XG4gICAgICAgICAgICBpZDogTUFTS19MQVlFUl9JRCxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogT1BFUkFUSU9OLk1BU0ssXG4gICAgICAgICAgICBkYXRhOiBbbWFza1BvbHlnb25dLFxuICAgICAgICAgICAgZGF0YUNvbXBhcmF0b3I6IChkYXRhLCBvbGREYXRhKSA9PiBkYXRhWzBdID09PSBvbGREYXRhWzBdLFxuICAgICAgICAgICAgZ2V0UG9seWdvbjogZCA9PiBkLFxuICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiBbMjU1LCAyNTUsIDI1NSwgMjU1XVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXBTdHlsZS52aXNpYmxlTGF5ZXJHcm91cHNbJzNkIGJ1aWxkaW5nJ10pIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgICAgbmV3IFRocmVlREJ1aWxkaW5nTGF5ZXIoe1xuICAgICAgICAgICAgaWQ6ICdfa2VwbGVyZ2xfM2QtYnVpbGRpbmcnLFxuICAgICAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICAgICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcixcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIExpbWl0IHJlbmRlcnNcbiAgICAgIGNvbnN0IGhhc1JlbmRlcmVkID0gdGhpcy5faGFzUmVuZGVyZWQ7XG4gICAgICBjb25zdCByZXNldEhhc1JlbmRlcmVkID0gKCkgPT4gKGhhc1JlbmRlcmVkLmN1cnJlbnQgPSBmYWxzZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxEZWNrR0xcbiAgICAgICAgICBjb250cm9sbGVyPXt0cnVlfVxuICAgICAgICAgIHsuLi50aGlzLnByb3BzLmRlY2tHbFByb3BzfVxuICAgICAgICAgIGdsT3B0aW9ucz17e3ByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX19XG4gICAgICAgICAgdmlld1N0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGV9KSA9PiB7XG4gICAgICAgICAgICAvLyBMaW1pdCB1cGRhdGVzIChwcmV2ZW50cyBmcmVlemVzIHdoZW4gZGV2IHRvb2xzIG9wZW4pXG4gICAgICAgICAgICBpZiAoIWhhc1JlbmRlcmVkLmN1cnJlbnQgJiYgdmlld1N0YXRlLndpZHRoID4gMSAmJiB2aWV3U3RhdGUuaGVpZ2h0ID4gMSkge1xuICAgICAgICAgICAgICBoYXNSZW5kZXJlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5fb25WaWV3cG9ydENoYW5nZSh2aWV3U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9XCJkZWZhdWx0LWRlY2tnbC1vdmVybGF5XCJcbiAgICAgICAgICBsYXllcnM9e2RlY2tHbExheWVyc31cbiAgICAgICAgICBvbkJlZm9yZVJlbmRlcj17b3B0cyA9PiB7XG4gICAgICAgICAgICByZXNldEhhc1JlbmRlcmVkKCk7XG4gICAgICAgICAgICB0aGlzLl9vbkJlZm9yZVJlbmRlcihvcHRzKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIC8vIG9uSG92ZXI9e3Zpc1N0YXRlQWN0aW9ucy5vbkxheWVySG92ZXJ9XG4gICAgICAgICAgb25Ib3Zlcj17aW5mbyA9PiB7XG4gICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnMub25MYXllckhvdmVyKGluZm8pO1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0ge21vdXNlUG9zaXRpb246IGluZm8ucGl4ZWx9O1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25DbGljaz17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJDbGlja31cbiAgICAgICAgICBvbkRyYWdTdGFydD17KCkgPT4ge1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uRXJyb3I9e3RoaXMuX29uRGVja0Vycm9yfVxuICAgICAgICAgIHJlZj17Y29tcCA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLmRlY2sgJiYgY29tcC5kZWNrICE9PSB0aGlzLl9kZWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RlY2sgPSBjb21wLmRlY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbldlYkdMSW5pdGlhbGl6ZWQ9e2dsID0+IHRoaXMuX29uRGVja0luaXRpYWxpemVkKGdsKX1cbiAgICAgICAgICBsYXllckZpbHRlcj17KHtsYXllciwgdmlld3BvcnR9KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGlzTmFOKGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20/Lm1pbikgfHxcbiAgICAgICAgICAgICAgaXNOYU4obGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbT8ubWF4KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudFpvb21SYW5nZSA9IE1hdGgucm91bmQobWFwU3RhdGUuem9vbSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20ubWluIDw9IGN1cnJlbnRab29tUmFuZ2UgJiZcbiAgICAgICAgICAgICAgbGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbS5tYXggPj0gY3VycmVudFpvb21SYW5nZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfb25WaWV3cG9ydENoYW5nZSA9IHZpZXdTdGF0ZSA9PiB7XG4gICAgICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50Py5pbmNyZW1lbnQoKTtcbiAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCAuLi5yZXN0Vmlld1N0YXRlfSA9IHZpZXdTdGF0ZTtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgLy8gcmVhY3QtbWFwLWdsIHNlbmRzIDAsMCBkaW1lbnNpb25zIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgICAgLy8gYWZ0ZXIgd2UgaGF2ZSByZWNlaXZlZCBwcm9wZXIgZGltZW5zaW9ucyBmcm9tIG9ic2VydmVEaW1lbnNpb25zXG4gICAgICBjb25zdCBuZXh0ID0ge1xuICAgICAgICAuLi4od2lkdGggPiAwICYmIGhlaWdodCA+IDAgPyB2aWV3U3RhdGUgOiByZXN0Vmlld1N0YXRlKSxcbiAgICAgICAgLy8gZW5hYmxpbmcgdHJhbnNpdGlvbiBpbiB0d28gbWFwcyBtYXkgbGVhZCB0byBlbmRsZXNzIHVwZGF0ZSBsb29wc1xuICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb246IHByaW1hcnkgPyBUUkFOU0lUSU9OX0RVUkFUSU9OIDogMFxuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmlld1N0YXRlQ2hhbmdlKG5leHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXhwb3J0KSB7XG4gICAgICAgIHRoaXMucHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChuZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RvZ2dsZU1hcENvbnRyb2wgPSBwYW5lbElkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleCwgdWlTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdWlTdGF0ZUFjdGlvbnMudG9nZ2xlTWFwQ29udHJvbChwYW5lbElkLCBpbmRleCk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICBfcmVuZGVyTWFwKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICBNYXBDb21wb25lbnQsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBtYXBDb250cm9scyxcbiAgICAgICAgaXNFeHBvcnQsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHByaW1hcnksXG4gICAgICAgIGdlbmVyYXRlVGh1bWJuYWlsXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdCxcbiAgICAgICAgZ2VuZXJhdGVUaHVtYm5haWxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBCb29sZWFuKG1hcFN0YXRlLmlzU3BsaXQpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxNYXBDb250cm9sXG4gICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzPXtPYmplY3Qua2V5cyhMT0NBTEVfQ09ERVMpfVxuICAgICAgICAgICAgZHJhZ1JvdGF0ZT17bWFwU3RhdGUuZHJhZ1JvdGF0ZX1cbiAgICAgICAgICAgIGlzU3BsaXQ9e2lzU3BsaXR9XG4gICAgICAgICAgICBwcmltYXJ5PXtwcmltYXJ5fVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICBsYXllcnNUb1JlbmRlcj17bGF5ZXJzVG9SZW5kZXJ9XG4gICAgICAgICAgICBtYXBJbmRleD17aW5kZXh9XG4gICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICByZWFkT25seT17dGhpcy5wcm9wcy5yZWFkT25seX1cbiAgICAgICAgICAgIHNjYWxlPXttYXBTdGF0ZS5zY2FsZSB8fCAxfVxuICAgICAgICAgICAgdG9wPXtpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2RlciAmJiBpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkID8gNTIgOiAwfVxuICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlUGVyc3BlY3RpdmU9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVQZXJzcGVjdGl2ZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlU3BsaXRNYXA9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVTcGxpdE1hcH1cbiAgICAgICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI9e3RoaXMuX2hhbmRsZU1hcFRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sPXt0aGlzLl90b2dnbGVNYXBDb250cm9sfVxuICAgICAgICAgICAgb25TZXRFZGl0b3JNb2RlPXt2aXNTdGF0ZUFjdGlvbnMuc2V0RWRpdG9yTW9kZX1cbiAgICAgICAgICAgIG9uU2V0TG9jYWxlPXt1aVN0YXRlQWN0aW9ucy5zZXRMb2NhbGV9XG4gICAgICAgICAgICBvblRvZ2dsZUVkaXRvclZpc2liaWxpdHk9e3Zpc1N0YXRlQWN0aW9ucy50b2dnbGVFZGl0b3JWaXNpYmlsaXR5fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPE1hcENvbXBvbmVudCB7Li4ubWFwUHJvcHN9IGtleT1cImJvdHRvbVwiIG1hcFN0eWxlPXttYXBTdHlsZS5ib3R0b21NYXBTdHlsZX0+XG4gICAgICAgICAgICB7UEVSRl9ERUJVRyAmJiByZW5kZXJQZXJmb3JtYW5jZVN0YXRzKCl9XG4gICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjayl9XG4gICAgICAgICAgPC9NYXBDb21wb25lbnQ+XG4gICAgICAgICAge3RoaXMuX3JlbmRlck1hcFBvcG92ZXIobGF5ZXJzVG9SZW5kZXIpfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge21hcFN0YXRlLCBtYXBTdHlsZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgY29udGV4dExvc3QgPSB0aGlzLnN0YXRlPy5jb250ZXh0TG9zdDtcblxuICAgICAgaWYgKGNvbnRleHRMb3N0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyIHJlZj17dGhpcy5fcmVmfSBzdHlsZT17TUFQX1NUWUxFLmNvbnRhaW5lcn0gZ2xvYmU9e21hcFN0YXRlLmdsb2JlfT5cbiAgICAgICAgICB7bWFwU3R5bGUuYm90dG9tTWFwU3R5bGUgJiYgdGhpcy5fcmVuZGVyTWFwKCl9XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBNYXBDb250YWluZXIuZGlzcGxheU5hbWUgPSAnTWFwQ29udGFpbmVyJztcblxuICByZXR1cm4gTWFwQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxPQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxtQkFBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsV0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVksaUJBQUEsR0FBQVosT0FBQTtBQUVBLElBQUFhLE9BQUEsR0FBQVgsc0JBQUEsQ0FBQUYsT0FBQTtBQUdBLElBQUFjLFlBQUEsR0FBQWQsT0FBQTtBQUNBLElBQUFlLFFBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixhQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLFdBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IsZUFBQSxHQUFB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
502
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RNYXBHbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3QyIiwiX3Jlc2VsZWN0IiwiX2NvcmUiLCJfbGF5ZXJzIiwiX2dlb0xheWVycyIsIl9ub3RpZmljYXRpb25zVXRpbHMiLCJfbWFwUG9wb3ZlciIsIl9tYXBDb250cm9sIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfZWRpdG9yIiwiX21hcGJveFV0aWxzIiwiX2dsVXRpbHMiLCJfbWFwYm94VXRpbHMyIiwiX2xheWVyVXRpbHMiLCJfZEJ1aWxkaW5nTGF5ZXIiLCJfZGVmYXVsdFNldHRpbmdzIiwiX29ic2VydmVEaW1lbnNpb25zIiwiX2xvY2FsZXMiLCJfcGVyZm9ybWFuY2UiLCJfZXhjbHVkZWQiLCJfd2luZG93IiwiX3dpbmRvdyRsb2NhdGlvbiIsIl93aW5kb3ckbG9jYXRpb24kc2VhciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwidHJhY2tlcnMiLCJQRVJGX0RFQlVHIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJpbmNsdWRlcyIsImRyYXdDb3VudCIsImNyZWF0ZVRyYWNrZXIiLCJ2aWV3cG9ydENoYW5nZUNvdW50IiwiY3JlYXRlTGF5ZXJVcGRhdGVUcmFja2VyIiwiTGF5ZXIiLCJUaWxlTGF5ZXIiLCJNQVBfU1RZTEUiLCJjb250YWluZXIiLCJkaXNwbGF5IiwicG9zaXRpb24iLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsInBvaW50ZXJFdmVudHMiLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsImRlcHMiLCJNYXBQb3BvdmVyRmFjdG9yeSIsIk1hcENvbnRyb2xGYWN0b3J5IiwiRWRpdG9yRmFjdG9yeSIsIk1hcFBvcG92ZXIiLCJNYXBDb250cm9sIiwiRWRpdG9yIiwiTWFwQ29udGFpbmVyIiwiX0NvbXBvbmVudCIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiY3JlYXRlUmVmIiwiZGltZW5zaW9ucyIsIl90aGlzJHByb3BzIiwicHJpbWFyeSIsImlzRXhwb3J0IiwibWFwU3RhdGVBY3Rpb25zIiwidXBkYXRlTWFwIiwibGF5ZXJzIiwibGF5ZXJEYXRhIiwibWFwTGF5ZXJzIiwibGF5ZXJPcmRlciIsInBvcHVwU2V0dGluZ3MiLCJjcmVhdGVTZWxlY3RvciIsImxheWVyc1NlbGVjdG9yIiwibGF5ZXJEYXRhU2VsZWN0b3IiLCJtYXBMYXllcnNTZWxlY3RvciIsInBvcHVwU2V0dGluZ3NTZWxlY3RvciIsInByZXBhcmVMYXllcnNUb1JlbmRlciIsInByZXBhcmVMYXllcnNGb3JEZWNrIiwiZmlsdGVycyIsImZpbHRlcnNTZWxlY3RvciIsImYiLCJ0eXBlIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsImxheWVyT3JkZXJTZWxlY3RvciIsImxheWVyc1RvUmVuZGVyU2VsZWN0b3IiLCJnZW5lcmF0ZU1hcGJveExheWVycyIsInZpc1N0YXRlQWN0aW9ucyIsIm9uTGF5ZXJDbGljayIsImlkeCIsImNvbG9yRG9tYWluIiwibGF5ZXJDb25maWdDaGFuZ2UiLCJsYXllcklkIiwiX3RoaXMkcHJvcHMyIiwiX3RoaXMkcHJvcHMyJGluZGV4IiwiaW5kZXgiLCJtYXBJbmRleCIsInRvZ2dsZUxheWVyRm9yTWFwIiwiX3JlZiIsImdsIiwic2V0TGF5ZXJCbGVuZGluZyIsImxheWVyQmxlbmRpbmciLCJlcnJvciIsImxheWVyIiwibWVzc2FnZSIsInNldFN0YXRlIiwiY29udGV4dExvc3QiLCJlcnJvck1lc3NhZ2UiLCJjb25jYXQiLCJpZCIsIm5vdGlmaWNhdGlvbklkIiwibGFzdFNob3duIiwiX2RlY2tHTEVycm9yc0VsYXBzZWQiLCJEYXRlIiwibm93IiwiVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUiLCJ1aVN0YXRlQWN0aW9ucyIsImFkZE5vdGlmaWNhdGlvbiIsImVycm9yTm90aWZpY2F0aW9uIiwidmlld1N0YXRlIiwiX3RyYWNrZXJzJHZpZXdwb3J0Q2hhIiwiaW5jcmVtZW50IiwicmVzdFZpZXdTdGF0ZSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllczIiLCJfdGhpcyRwcm9wczMiLCJuZXh0IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJwYW5lbElkIiwiX3RoaXMkcHJvcHM0IiwidG9nZ2xlTWFwQ29udHJvbCIsIk51bWJlciIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsImN1cnJlbnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsIl9oYW5kbGVSZXNpemUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInVub2JzZXJ2ZURpbWVuc2lvbnMiLCJjb21wb25lbnREaWRVcGRhdGUiLCJfdGhpcyRzdGF0ZSIsInN0YXRlIiwiX29uRGVja0luaXRpYWxpemVkIiwib25EZWNrSW5pdGlhbGl6ZWQiLCJfZGVjayIsIl9yZW5kZXJNYXBQb3BvdmVyIiwibGF5ZXJzVG9SZW5kZXIiLCJfZ2V0SG92ZXJYWSIsInZpZXdwb3J0IiwibG5nTGF0Iiwic2NyZWVuQ29vcmQiLCJwcm9qZWN0IiwieCIsInkiLCJfcmVuZGVyRGVja092ZXJsYXkiLCJsYXllcnNGb3JEZWNrIiwiX3RyYWNrZXJzJGRyYXdDb3VudCIsIl90aGlzJHByb3BzJGRlY2tHbFBybyIsIl90aGlzMiIsIl90aGlzJHByb3BzJGRlY2tHbFBybzIiLCJfdGhpcyRwcm9wczUiLCJtYXBTdGF0ZSIsIm1hcFN0eWxlIiwibWFwYm94QXBpVXJsIiwibWFza1BvbHlnb24iLCJtb3VzZVBvc2l0aW9uIiwiX21vdXNlUG9zaXRpb24iLCJkZWNrR2xMYXllcnMiLCJkZWNrR2xQcm9wcyIsImRhdGFMYXllcnMiLCJzbGljZSIsInJldmVyc2UiLCJyZWR1Y2UiLCJvdmVybGF5cyIsImxheWVyQ2FsbGJhY2tzIiwib25TZXRMYXllckRvbWFpbiIsInZhbCIsIl9vbkxheWVyU2V0RG9tYWluIiwibGF5ZXJPdmVybGF5IiwicmVuZGVyRGVja0dsTGF5ZXIiLCJsYXllcnNPblRvcCIsIlNvbGlkUG9seWdvbkxheWVyIiwiTUFTS19MQVlFUl9JRCIsIm9wZXJhdGlvbiIsIk9QRVJBVElPTiIsIk1BU0siLCJkYXRhIiwiZGF0YUNvbXBhcmF0b3IiLCJvbGREYXRhIiwiZ2V0UG9seWdvbiIsImQiLCJnZXRGaWxsQ29sb3IiLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJUaHJlZURCdWlsZGluZ0xheWVyIiwidGhyZWVEQnVpbGRpbmdDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiaGFzUmVuZGVyZWQiLCJfaGFzUmVuZGVyZWQiLCJyZXNldEhhc1JlbmRlcmVkIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsImNvbnRyb2xsZXIiLCJnbE9wdGlvbnMiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJfcmVmMiIsIl9vblZpZXdwb3J0Q2hhbmdlIiwib25CZWZvcmVSZW5kZXIiLCJvcHRzIiwiX29uQmVmb3JlUmVuZGVyIiwib25Ib3ZlciIsImluZm8iLCJvbkxheWVySG92ZXIiLCJwaXhlbCIsIm9uQ2xpY2siLCJvbkRyYWdTdGFydCIsIm9uRXJyb3IiLCJfb25EZWNrRXJyb3IiLCJyZWYiLCJjb21wIiwiZGVjayIsIm9uV2ViR0xJbml0aWFsaXplZCIsImxheWVyRmlsdGVyIiwiX3JlZjMiLCJfbGF5ZXIkcHJvcHMkdmlzaWJpbGkiLCJfbGF5ZXIkcHJvcHMkdmlzaWJpbGkyIiwiaXNOYU4iLCJ2aXNpYmlsaXR5Qnlab29tIiwibWluIiwibWF4IiwiY3VycmVudFpvb21SYW5nZSIsIk1hdGgiLCJyb3VuZCIsInpvb20iLCJfcmVuZGVyTWFwIiwiX3RoaXMkcHJvcHM2IiwiX3RoaXMkcHJvcHM2JE1hcENvbXBvIiwiTWFwQ29tcG9uZW50IiwiTWFwYm94R0xNYXAiLCJkYXRhc2V0cyIsIm1hcENvbnRyb2xzIiwibG9jYWxlIiwiaW50ZXJhY3Rpb25Db25maWciLCJlZGl0b3IiLCJnZW5lcmF0ZVRodW1ibmFpbCIsImxheWVyc0ZvckRlY2tTZWxlY3RvciIsIm1hcFByb3BzIiwidHJhbnNmb3JtUmVxdWVzdCIsImlzU3BsaXQiLCJGcmFnbWVudCIsImF2YWlsYWJsZUxvY2FsZXMiLCJMT0NBTEVfQ09ERVMiLCJkcmFnUm90YXRlIiwicmVhZE9ubHkiLCJzY2FsZSIsImdlb2NvZGVyIiwiZW5hYmxlZCIsIm9uVG9nZ2xlUGVyc3BlY3RpdmUiLCJ0b2dnbGVQZXJzcGVjdGl2ZSIsIm9uVG9nZ2xlU3BsaXRNYXAiLCJ0b2dnbGVTcGxpdE1hcCIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJfaGFuZGxlTWFwVG9nZ2xlTGF5ZXIiLCJvblRvZ2dsZU1hcENvbnRyb2wiLCJfdG9nZ2xlTWFwQ29udHJvbCIsIm9uU2V0RWRpdG9yTW9kZSIsInNldEVkaXRvck1vZGUiLCJvblNldExvY2FsZSIsInNldExvY2FsZSIsIm9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eSIsInRvZ2dsZUVkaXRvclZpc2liaWxpdHkiLCJtYXBIZWlnaHQiLCJib3R0b21NYXBTdHlsZSIsInJlbmRlclBlcmZvcm1hbmNlU3RhdHMiLCJyZW5kZXIiLCJfdGhpcyRzdGF0ZTIiLCJfdGhpcyRwcm9wczciLCJTdHlsZWRNYXBDb250YWluZXIiLCJzdHlsZSIsIkNvbXBvbmVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL21hcC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBNYXBib3hHTE1hcCBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge09QRVJBVElPTiwgTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtTb2xpZFBvbHlnb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7VGlsZUxheWVyfSBmcm9tICdAZGVjay5nbC9nZW8tbGF5ZXJzJztcbmltcG9ydCB7ZXJyb3JOb3RpZmljYXRpb259IGZyb20gJ3V0aWxzL25vdGlmaWNhdGlvbnMtdXRpbHMnO1xuXG5pbXBvcnQgKiBhcyBWaXNTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy92aXMtc3RhdGUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBNYXBTdGF0ZUFjdGlvbnMgZnJvbSAnYWN0aW9ucy9tYXAtc3RhdGUtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBVSVN0YXRlQWN0aW9ucyBmcm9tICdhY3Rpb25zL3VpLXN0YXRlLWFjdGlvbnMnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgTWFwUG9wb3ZlckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9tYXAvbWFwLXBvcG92ZXInO1xuaW1wb3J0IE1hcENvbnRyb2xGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1jb250cm9sJztcbmltcG9ydCB7U3R5bGVkTWFwQ29udGFpbmVyfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBFZGl0b3JGYWN0b3J5IGZyb20gJy4vZWRpdG9yL2VkaXRvcic7XG5cbi8vIHV0aWxzXG5pbXBvcnQge2dlbmVyYXRlTWFwYm94TGF5ZXJzfSBmcm9tICdsYXllcnMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7c2V0TGF5ZXJCbGVuZGluZ30gZnJvbSAndXRpbHMvZ2wtdXRpbHMnO1xuaW1wb3J0IHt0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICd1dGlscy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7cmVuZGVyRGVja0dsTGF5ZXIsIHByZXBhcmVMYXllcnNUb1JlbmRlciwgcHJlcGFyZUxheWVyc0ZvckRlY2t9IGZyb20gJ3V0aWxzL2xheWVyLXV0aWxzJztcblxuLy8gZGVmYXVsdC1zZXR0aW5nc1xuaW1wb3J0IFRocmVlREJ1aWxkaW5nTGF5ZXIgZnJvbSAnZGVja2dsLWxheWVycy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllcic7XG5pbXBvcnQge0ZJTFRFUl9UWVBFUywgTUFTS19MQVlFUl9JRCwgVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUV9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcblxuaW1wb3J0IHtvYnNlcnZlRGltZW5zaW9ucywgdW5vYnNlcnZlRGltZW5zaW9uc30gZnJvbSAnLi4vdXRpbHMvb2JzZXJ2ZS1kaW1lbnNpb25zJztcbmltcG9ydCB7TE9DQUxFX0NPREVTfSBmcm9tICdsb2NhbGl6YXRpb24vbG9jYWxlcyc7XG5pbXBvcnQge1xuICBEYXRhc2V0cyxcbiAgRmlsdGVyLFxuICBJbnRlcmFjdGlvbkNvbmZpZyxcbiAgTWFwQ29udHJvbHMsXG4gIE1hcFN0YXRlLFxuICBNYXBTdHlsZSxcbiAgVmlld3BvcnRcbn0gZnJvbSAncmVkdWNlcnMnO1xuaW1wb3J0IHtTcGxpdE1hcExheWVyc30gZnJvbSAncmVkdWNlcnMvdmlzLXN0YXRlLXVwZGF0ZXJzJztcbmltcG9ydCB7TGF5ZXJCYXNlQ29uZmlnLCBWaXN1YWxDaGFubmVsRG9tYWlufSBmcm9tICdsYXllcnMvYmFzZS1sYXllcic7XG5cbi8vIFBlcmZvcm1hbmNlIGRlYnVnZ2luZ1xuaW1wb3J0IHtjcmVhdGVUcmFja2VyLCBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIsIHJlbmRlclBlcmZvcm1hbmNlU3RhdHN9IGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuLy8gQHRzLWV4cGVjdC1lcnJvclxuY29uc3QgdHJhY2tlcnM6IHtkcmF3Q291bnQ/OiBSZXR1cm5UeXBlPGNyZWF0ZVRyYWNrZXI+LCB2aWV3cG9ydENoYW5nZUNvdW50PzogUmV0dXJuVHlwZTxjcmVhdGVUcmFja2VyPn0gPSB7fTtcbmNvbnN0IFBFUkZfREVCVUcgPSB3aW5kb3c/LmxvY2F0aW9uPy5zZWFyY2g/LmluY2x1ZGVzKCdQRVJGX0RFQlVHJyk7XG5pZiAoUEVSRl9ERUJVRykge1xuICB0cmFja2Vycy5kcmF3Q291bnQgPSBjcmVhdGVUcmFja2VyKCdkcmF3cycpO1xuICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50ID0gY3JlYXRlVHJhY2tlcigndmlld3BvcnQgY2hhbmdlcycpO1xuICBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIoJ3N0YXRlIHVwZGF0ZXMnLCBbTGF5ZXIsIFRpbGVMYXllcl0pO1xufVxuXG4vKiogQHR5cGUge3tba2V5OiBzdHJpbmddOiBSZWFjdC5DU1NQcm9wZXJ0aWVzfX0gKi9cbmNvbnN0IE1BUF9TVFlMRToge1trZXk6IHN0cmluZ106IFJlYWN0LkNTU1Byb3BlcnRpZXN9ID0ge1xuICBjb250YWluZXI6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnXG4gIH0sXG4gIHRvcDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogJzBweCcsXG4gICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJSdcbiAgfVxufTtcblxuY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTiA9IDA7XG5cbk1hcENvbnRhaW5lckZhY3RvcnkuZGVwcyA9IFtNYXBQb3BvdmVyRmFjdG9yeSwgTWFwQ29udHJvbEZhY3RvcnksIEVkaXRvckZhY3RvcnldO1xuXG50eXBlIE1hcGJveFN0eWxlID0gc3RyaW5nIHwgb2JqZWN0IHwgdW5kZWZpbmVkO1xuXG5pbnRlcmZhY2UgTWFwQ29udGFpbmVyUHJvcHMge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGludGVyYWN0aW9uQ29uZmlnOiBJbnRlcmFjdGlvbkNvbmZpZztcbiAgbGF5ZXJCbGVuZGluZzogc3RyaW5nO1xuICBsYXllck9yZGVyOiBudW1iZXJbXTtcbiAgbGF5ZXJEYXRhOiBhbnlbXTtcbiAgbGF5ZXJzOiBMYXllcltdO1xuICBmaWx0ZXJzOiBGaWx0ZXJbXTtcbiAgbWFwU3RhdGU6IE1hcFN0YXRlO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0eWxlOiB7Ym90dG9tTWFwU3R5bGU/OiBNYXBib3hTdHlsZTsgdG9wTWFwU3R5bGU/OiBNYXBib3hTdHlsZX0gJiBNYXBTdHlsZTtcbiAgbW91c2VQb3M6IGFueTtcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHN0cmluZztcbiAgbWFwYm94QXBpVXJsOiBzdHJpbmc7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuXG4gIC8vIG9wdGlvbmFsXG4gIHByaW1hcnk/OiBib29sZWFuOyAvLyBwcmltYXJ5IG9uZSB3aWxsIGJlIHJlcG9ydGluZyBpdHMgc2l6ZSB0byBhcHBTdGF0ZVxuICByZWFkT25seT86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgY2xpY2tlZD86IGFueTtcbiAgaG92ZXJJbmZvPzogYW55O1xuICBtYXBMYXllcnM/OiBTcGxpdE1hcExheWVycyB8IG51bGw7XG4gIG9uTWFwVG9nZ2xlTGF5ZXI/OiBGdW5jdGlvbjtcbiAgb25NYXBTdHlsZUxvYWRlZD86IEZ1bmN0aW9uO1xuICBvbk1hcFJlbmRlcj86IEZ1bmN0aW9uO1xuICBnZXRNYXBib3hSZWY/OiAobWFwYm94PzogdHlwZW9mIE1hcGJveEdMTWFwIHwgbnVsbCwgaW5kZXg/OiBudW1iZXIpID0+IHZvaWQ7XG4gIGluZGV4PzogbnVtYmVyO1xuXG4gIGxvY2FsZT86IGFueTtcbiAgZWRpdG9yPzogYW55O1xuICBNYXBDb21wb25lbnQ/OiB0eXBlb2YgTWFwYm94R0xNYXA7XG4gIGRlY2tHbFByb3BzPzogYW55O1xuICBvbkRlY2tJbml0aWFsaXplZD86IChhOiBhbnksIGI6IGFueSkgPT4gdm9pZDtcbiAgb25WaWV3U3RhdGVDaGFuZ2U/OiAodmlld3BvcnQ6IFZpZXdwb3J0KSA9PiB2b2lkO1xuXG4gIGdlbmVyYXRlVGh1bWJuYWlsPzogRnVuY3Rpb247XG4gIHBvcHVwU2V0dGluZ3M/OiBhbnk7XG4gIG1hc2tQb2x5Z29uPzogYW55O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYXBDb250YWluZXJGYWN0b3J5KFxuICBNYXBQb3BvdmVyLFxuICBNYXBDb250cm9sLFxuICBFZGl0b3Jcbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8TWFwQ29udGFpbmVyUHJvcHM+IHtcbiAgY2xhc3MgTWFwQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50PE1hcENvbnRhaW5lclByb3BzPiB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIC8vIHJlcXVpcmVkXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBNYXBDb21wb25lbnQ6IE1hcGJveEdMTWFwLFxuICAgICAgZGVja0dsUHJvcHM6IHt9LFxuICAgICAgaW5kZXg6IDAsXG4gICAgICBwcmltYXJ5OiB0cnVlXG4gICAgfTtcblxuICAgIHByZXZpb3VzTGF5ZXJzID0ge1xuICAgICAgLy8gW2xheWVycy5pZF06IG1hcGJveExheWVyQ29uZmlnXG4gICAgfTtcblxuICAgIGRpc3BsYXlOYW1lID0gJ01hcENvbnRhaW5lcic7XG5cbiAgICBfZGVjazogYW55ID0gbnVsbDtcbiAgICBfbWFwOiBtYXBib3hnbC5NYXAgfCBudWxsID0gbnVsbDtcbiAgICBfcmVmID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgIF9kZWNrR0xFcnJvcnNFbGFwc2VkOiB7W2lkOiBzdHJpbmddOiBudW1iZXJ9ID0ge307XG5cbiAgICBfaGFzUmVuZGVyZWQ6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4gPSBjcmVhdGVSZWY8Ym9vbGVhbj4oKTtcbiAgICBfbW91c2VQb3NpdGlvbjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxhbnk+ID0gY3JlYXRlUmVmPGFueT4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBpZiAoIXRoaXMuX3JlZi5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMuX3JlZi5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLl9yZWYuY3VycmVudCBhcyBFbGVtZW50KTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCBjb250ZXh0TG9zdCA9ICh0aGlzLnN0YXRlIGFzIGFueSk/LmNvbnRleHRMb3N0O1xuXG4gICAgICBpZiAoY29udGV4dExvc3QpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRleHRMb3N0OiBmYWxzZX0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHByaW1hcnkpIHtcbiAgICAgICAgY29uc3Qge21hcFN0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuICAgICAgICBpZiAoIWlzRXhwb3J0ICYmIGRpbWVuc2lvbnMgJiYgZGltZW5zaW9ucy53aWR0aCA+IDAgJiYgZGltZW5zaW9ucy5oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChkaW1lbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBsYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVycztcbiAgICBsYXllckRhdGFTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVyRGF0YTtcbiAgICBtYXBMYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLm1hcExheWVycztcbiAgICBsYXllck9yZGVyU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllck9yZGVyO1xuICAgIHBvcHVwU2V0dGluZ3NTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnBvcHVwU2V0dGluZ3M7XG5cbiAgICBsYXllcnNUb1JlbmRlclNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubWFwTGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLnBvcHVwU2V0dGluZ3NTZWxlY3RvcixcbiAgICAgIHByZXBhcmVMYXllcnNUb1JlbmRlclxuICAgICk7XG4gICAgbGF5ZXJzRm9yRGVja1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHByZXBhcmVMYXllcnNGb3JEZWNrXG4gICAgKTtcbiAgICBmaWx0ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIHBvbHlnb25GaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IodGhpcy5maWx0ZXJzU2VsZWN0b3IsIGZpbHRlcnMgPT5cbiAgICAgIGZpbHRlcnMuZmlsdGVyKGYgPT4gZi50eXBlID09PSBGSUxURVJfVFlQRVMucG9seWdvbilcbiAgICApO1xuXG4gICAgbWFwYm94TGF5ZXJzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMubGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyRGF0YVNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllck9yZGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IsXG4gICAgICBnZW5lcmF0ZU1hcGJveExheWVyc1xuICAgICk7XG5cbiAgICAvKiBjb21wb25lbnQgcHJpdmF0ZSBmdW5jdGlvbnMgKi9cbiAgICBfb25DbG9zZU1hcFBvcG92ZXIgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5vbkxheWVyQ2xpY2sobnVsbCk7XG4gICAgfTtcblxuICAgIF9vbkxheWVyU2V0RG9tYWluID0gKGlkeDogbnVtYmVyLCBjb2xvckRvbWFpbjogVmlzdWFsQ2hhbm5lbERvbWFpbikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMubGF5ZXJDb25maWdDaGFuZ2UodGhpcy5wcm9wcy5sYXllcnNbaWR4XSwge1xuICAgICAgICBjb2xvckRvbWFpblxuICAgICAgfSBhcyBQYXJ0aWFsPExheWVyQmFzZUNvbmZpZz4pO1xuICAgIH07XG5cbiAgICBfaGFuZGxlTWFwVG9nZ2xlTGF5ZXIgPSBsYXllcklkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleDogbWFwSW5kZXggPSAwLCB2aXNTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgIHZpc1N0YXRlQWN0aW9ucy50b2dnbGVMYXllckZvck1hcChtYXBJbmRleCwgbGF5ZXJJZCk7XG4gICAgfTtcblxuICAgIF9vbkRlY2tJbml0aWFsaXplZChnbCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkRlY2tJbml0aWFsaXplZCh0aGlzLl9kZWNrLCBnbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX29uQmVmb3JlUmVuZGVyID0gKHtnbH0pID0+IHtcbiAgICAgIHNldExheWVyQmxlbmRpbmcoZ2wsIHRoaXMucHJvcHMubGF5ZXJCbGVuZGluZyk7XG4gICAgfTtcblxuICAgIF9vbkRlY2tFcnJvciA9IChlcnJvciwgbGF5ZXIpID0+IHtcbiAgICAgIGlmIChlcnJvcj8ubWVzc2FnZSA9PT0gJ1dlYkdMIGNvbnRleHQgaXMgbG9zdCcpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3IgaW4gZGVjay5nbDogJHtlcnJvcj8ubWVzc2FnZX0gaW4gJHtsYXllcj8uaWR9YDtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbklkID0gYCR7bGF5ZXI/LmlkfS0ke2Vycm9yPy5tZXNzYWdlfWA7XG5cbiAgICAgIC8vIFRocm90dGxlIGVycm9yIG5vdGlmaWNhdGlvbnMsIGFzIFJlYWN0IGRvZXNuJ3QgbGlrZSB0b28gbWFueSBzdGF0ZSBjaGFuZ2VzIGZyb20gaGVyZS5cbiAgICAgIGNvbnN0IGxhc3RTaG93biA9IHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdO1xuICAgICAgaWYgKCFsYXN0U2hvd24gfHwgbGFzdFNob3duIDwgRGF0ZS5ub3coKSAtIFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FKSB7XG4gICAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWRbbm90aWZpY2F0aW9uSWRdID0gRGF0ZS5ub3coKTtcblxuICAgICAgICAvLyBDcmVhdGUgbmV3IGVycm9yIG5vdGlmaWNhdGlvbiBvciB1cGRhdGUgZXhpc3Rpbmcgb25lIHdpdGggc2FtZSBpZC5cbiAgICAgICAgLy8gVXBkYXRlIGlzIHJlcXVpcmVkIHRvIHByZXNlcnZlIHRoZSBvcmRlciBvZiBub3RpZmljYXRpb25zIGFzIHRoZXkgcHJvYmFibHkgYXJlIGdvaW5nIHRvIFwianVtcFwiIGJhc2VkIG9uIG9yZGVyIG9mIGVycm9ycy5cbiAgICAgICAgY29uc3Qge3VpU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLmFkZE5vdGlmaWNhdGlvbihcbiAgICAgICAgICBlcnJvck5vdGlmaWNhdGlvbih7XG4gICAgICAgICAgICBtZXNzYWdlOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICBpZDogbm90aWZpY2F0aW9uSWRcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvKiBjb21wb25lbnQgcmVuZGVyIGZ1bmN0aW9ucyAqL1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIF9yZW5kZXJNYXBQb3BvdmVyKGxheWVyc1RvUmVuZGVyKSB7XG4gICAgICAvLyBPdmVycmlkZW4gaW4gQnVpbGRlcjogZmVhdHVyZXMvYnVpbGRlci91aS9LZXBsZXJHbC9NYXBDb250YWluZXIvTWFwQ29udGFpbmVyLnRzeFxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbiAgICBfZ2V0SG92ZXJYWSh2aWV3cG9ydCwgbG5nTGF0KSB7XG4gICAgICBjb25zdCBzY3JlZW5Db29yZCA9ICF2aWV3cG9ydCB8fCAhbG5nTGF0ID8gbnVsbCA6IHZpZXdwb3J0LnByb2plY3QobG5nTGF0KTtcbiAgICAgIHJldHVybiBzY3JlZW5Db29yZCAmJiB7eDogc2NyZWVuQ29vcmRbMF0sIHk6IHNjcmVlbkNvb3JkWzFdfTtcbiAgICB9XG5cbiAgICBfcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjaykge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIGxheWVyRGF0YSxcbiAgICAgICAgbGF5ZXJPcmRlcixcbiAgICAgICAgbGF5ZXJzLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFza1BvbHlnb25cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBtb3VzZVBvc2l0aW9uID0gdGhpcy5fbW91c2VQb3NpdGlvbjtcblxuICAgICAgdHJhY2tlcnMuZHJhd0NvdW50Py5pbmNyZW1lbnQoKTtcblxuICAgICAgLy8gaW5pdGlhbGlzZSBsYXllcnMgZnJvbSBwcm9wcyBpZiBleGlzdHNcbiAgICAgIGxldCBkZWNrR2xMYXllcnMgPSB0aGlzLnByb3BzLmRlY2tHbFByb3BzPy5sYXllcnMgfHwgW107XG5cbiAgICAgIC8vIHdhaXQgdW50aWwgZGF0YSBpcyByZWFkeSBiZWZvcmUgcmVuZGVyIGRhdGEgbGF5ZXJzXG4gICAgICBpZiAobGF5ZXJEYXRhICYmIGxheWVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbGFzdCBsYXllciByZW5kZXIgZmlyc3RcbiAgICAgICAgY29uc3QgZGF0YUxheWVycyA9IGxheWVyT3JkZXJcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAuZmlsdGVyKGlkeCA9PiBsYXllcnNGb3JEZWNrW2xheWVyc1tpZHhdLmlkXSlcbiAgICAgICAgICAucmVkdWNlKChvdmVybGF5cywgaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXllckNhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgICAgb25TZXRMYXllckRvbWFpbjogdmFsID0+IHRoaXMuX29uTGF5ZXJTZXREb21haW4oaWR4LCB2YWwpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPdmVybGF5ID0gcmVuZGVyRGVja0dsTGF5ZXIodGhpcy5wcm9wcywgbGF5ZXJDYWxsYmFja3MsIGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gb3ZlcmxheXMuY29uY2F0KGxheWVyT3ZlcmxheSB8fCBbXSk7XG4gICAgICAgICAgfSwgW10pO1xuICAgICAgICBkZWNrR2xMYXllcnMgPSBkZWNrR2xMYXllcnMuY29uY2F0KGRhdGFMYXllcnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzT25Ub3ApIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdCh0aGlzLnByb3BzLmRlY2tHbFByb3BzLmxheWVyc09uVG9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hc2tQb2x5Z29uKSB7XG4gICAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICAgIG5ldyBTb2xpZFBvbHlnb25MYXllcih7XG4gICAgICAgICAgICBpZDogTUFTS19MQVlFUl9JRCxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogT1BFUkFUSU9OLk1BU0ssXG4gICAgICAgICAgICBkYXRhOiBbbWFza1BvbHlnb25dLFxuICAgICAgICAgICAgZGF0YUNvbXBhcmF0b3I6IChkYXRhLCBvbGREYXRhKSA9PiBkYXRhWzBdID09PSBvbGREYXRhWzBdLFxuICAgICAgICAgICAgZ2V0UG9seWdvbjogZCA9PiBkLFxuICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiBbMjU1LCAyNTUsIDI1NSwgMjU1XVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXBTdHlsZS52aXNpYmxlTGF5ZXJHcm91cHNbJzNkIGJ1aWxkaW5nJ10pIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgICAgbmV3IChUaHJlZURCdWlsZGluZ0xheWVyIGFzIGFueSkoe1xuICAgICAgICAgICAgaWQ6ICdfa2VwbGVyZ2xfM2QtYnVpbGRpbmcnLFxuICAgICAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICAgICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcixcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgIGdldEZpbGxDb2xvcjogbWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvclxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIExpbWl0IHJlbmRlcnNcbiAgICAgIGNvbnN0IGhhc1JlbmRlcmVkID0gdGhpcy5faGFzUmVuZGVyZWQ7XG4gICAgICBjb25zdCByZXNldEhhc1JlbmRlcmVkID0gKCkgPT4gKGhhc1JlbmRlcmVkLmN1cnJlbnQgPSBmYWxzZSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxEZWNrR0xcbiAgICAgICAgICBjb250cm9sbGVyPXt0cnVlfVxuICAgICAgICAgIHsuLi50aGlzLnByb3BzLmRlY2tHbFByb3BzfVxuICAgICAgICAgIGdsT3B0aW9ucz17e3ByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZX19XG4gICAgICAgICAgdmlld1N0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGV9KSA9PiB7XG4gICAgICAgICAgICAvLyBMaW1pdCB1cGRhdGVzIChwcmV2ZW50cyBmcmVlemVzIHdoZW4gZGV2IHRvb2xzIG9wZW4pXG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICBpZiAoIWhhc1JlbmRlcmVkLmN1cnJlbnQgJiYgdmlld1N0YXRlLndpZHRoID4gMSAmJiB2aWV3U3RhdGUuaGVpZ2h0ID4gMSkge1xuICAgICAgICAgICAgICBoYXNSZW5kZXJlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5fb25WaWV3cG9ydENoYW5nZSh2aWV3U3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9XCJkZWZhdWx0LWRlY2tnbC1vdmVybGF5XCJcbiAgICAgICAgICBsYXllcnM9e2RlY2tHbExheWVyc31cbiAgICAgICAgICBvbkJlZm9yZVJlbmRlcj17b3B0cyA9PiB7XG4gICAgICAgICAgICByZXNldEhhc1JlbmRlcmVkKCk7XG4gICAgICAgICAgICB0aGlzLl9vbkJlZm9yZVJlbmRlcihvcHRzKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIC8vIG9uSG92ZXI9e3Zpc1N0YXRlQWN0aW9ucy5vbkxheWVySG92ZXJ9XG4gICAgICAgICAgb25Ib3Zlcj17aW5mbyA9PiB7XG4gICAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnMub25MYXllckhvdmVyKGluZm8pO1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0ge21vdXNlUG9zaXRpb246IGluZm8ucGl4ZWx9O1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25DbGljaz17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJDbGlja31cbiAgICAgICAgICBvbkRyYWdTdGFydD17KCkgPT4ge1xuICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uRXJyb3I9e3RoaXMuX29uRGVja0Vycm9yfVxuICAgICAgICAgIHJlZj17Y29tcCA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLmRlY2sgJiYgY29tcC5kZWNrICE9PSB0aGlzLl9kZWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RlY2sgPSBjb21wLmRlY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbldlYkdMSW5pdGlhbGl6ZWQ9e2dsID0+IHRoaXMuX29uRGVja0luaXRpYWxpemVkKGdsKX1cbiAgICAgICAgICBsYXllckZpbHRlcj17KHtsYXllciwgdmlld3BvcnR9KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgICAgaXNOYU4obGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbT8ubWluKSB8fFxuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgIGlzTmFOKGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20/Lm1heClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRab29tUmFuZ2UgPSBNYXRoLnJvdW5kKG1hcFN0YXRlLnpvb20pO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgIGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20ubWluIDw9IGN1cnJlbnRab29tUmFuZ2UgJiZcbiAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICBsYXllci5wcm9wcy52aXNpYmlsaXR5Qnlab29tLm1heCA+PSBjdXJyZW50Wm9vbVJhbmdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIF9vblZpZXdwb3J0Q2hhbmdlID0gdmlld1N0YXRlID0+IHtcbiAgICAgIHRyYWNrZXJzLnZpZXdwb3J0Q2hhbmdlQ291bnQ/LmluY3JlbWVudCgpO1xuICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHQsIC4uLnJlc3RWaWV3U3RhdGV9ID0gdmlld1N0YXRlO1xuICAgICAgY29uc3Qge3ByaW1hcnksIGlzRXhwb3J0fSA9IHRoaXMucHJvcHM7XG4gICAgICAvLyByZWFjdC1tYXAtZ2wgc2VuZHMgMCwwIGRpbWVuc2lvbnMgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAgICAvLyBhZnRlciB3ZSBoYXZlIHJlY2VpdmVkIHByb3BlciBkaW1lbnNpb25zIGZyb20gb2JzZXJ2ZURpbWVuc2lvbnNcbiAgICAgIGNvbnN0IG5leHQgPSB7XG4gICAgICAgIC4uLih3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCA/IHZpZXdTdGF0ZSA6IHJlc3RWaWV3U3RhdGUpLFxuICAgICAgICAvLyBlbmFibGluZyB0cmFuc2l0aW9uIGluIHR3byBtYXBzIG1heSBsZWFkIHRvIGVuZGxlc3MgdXBkYXRlIGxvb3BzXG4gICAgICAgIHRyYW5zaXRpb25EdXJhdGlvbjogcHJpbWFyeSA/IFRSQU5TSVRJT05fRFVSQVRJT04gOiAwXG4gICAgICB9O1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uVmlld1N0YXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25WaWV3U3RhdGVDaGFuZ2UobmV4dCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFeHBvcnQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5tYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKG5leHQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdG9nZ2xlTWFwQ29udHJvbCA9IHBhbmVsSWQgPT4ge1xuICAgICAgY29uc3Qge2luZGV4LCB1aVN0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuXG4gICAgICB1aVN0YXRlQWN0aW9ucy50b2dnbGVNYXBDb250cm9sKHBhbmVsSWQsIE51bWJlcihpbmRleCkpO1xuICAgIH07XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgX3JlbmRlck1hcCgpIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBtYXBTdGF0ZUFjdGlvbnMsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgTWFwQ29tcG9uZW50ID0gTWFwYm94R0xNYXAsXG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBtYXBDb250cm9scyxcbiAgICAgICAgaXNFeHBvcnQsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMsXG4gICAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgICAgaW50ZXJhY3Rpb25Db25maWcsXG4gICAgICAgIGVkaXRvcixcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIHByaW1hcnksXG4gICAgICAgIGdlbmVyYXRlVGh1bWJuYWlsXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdCxcbiAgICAgICAgZ2VuZXJhdGVUaHVtYm5haWxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBCb29sZWFuKG1hcFN0YXRlLmlzU3BsaXQpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxNYXBDb250cm9sXG4gICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICBhdmFpbGFibGVMb2NhbGVzPXtPYmplY3Qua2V5cyhMT0NBTEVfQ09ERVMpfVxuICAgICAgICAgICAgZHJhZ1JvdGF0ZT17bWFwU3RhdGUuZHJhZ1JvdGF0ZX1cbiAgICAgICAgICAgIGlzU3BsaXQ9e2lzU3BsaXR9XG4gICAgICAgICAgICBwcmltYXJ5PXtwcmltYXJ5fVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgICAgICBsYXllcnNUb1JlbmRlcj17bGF5ZXJzVG9SZW5kZXJ9XG4gICAgICAgICAgICBtYXBJbmRleD17aW5kZXh9XG4gICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICByZWFkT25seT17dGhpcy5wcm9wcy5yZWFkT25seX1cbiAgICAgICAgICAgIHNjYWxlPXttYXBTdGF0ZS5zY2FsZSB8fCAxfVxuICAgICAgICAgICAgdG9wPXtpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2RlciAmJiBpbnRlcmFjdGlvbkNvbmZpZy5nZW9jb2Rlci5lbmFibGVkID8gNTIgOiAwfVxuICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlUGVyc3BlY3RpdmU9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVQZXJzcGVjdGl2ZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlU3BsaXRNYXA9e21hcFN0YXRlQWN0aW9ucy50b2dnbGVTcGxpdE1hcH1cbiAgICAgICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI9e3RoaXMuX2hhbmRsZU1hcFRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgb25Ub2dnbGVNYXBDb250cm9sPXt0aGlzLl90b2dnbGVNYXBDb250cm9sfVxuICAgICAgICAgICAgb25TZXRFZGl0b3JNb2RlPXt2aXNTdGF0ZUFjdGlvbnMuc2V0RWRpdG9yTW9kZX1cbiAgICAgICAgICAgIG9uU2V0TG9jYWxlPXt1aVN0YXRlQWN0aW9ucy5zZXRMb2NhbGV9XG4gICAgICAgICAgICBvblRvZ2dsZUVkaXRvclZpc2liaWxpdHk9e3Zpc1N0YXRlQWN0aW9ucy50b2dnbGVFZGl0b3JWaXNpYmlsaXR5fVxuICAgICAgICAgICAgbWFwSGVpZ2h0PXttYXBTdGF0ZS5oZWlnaHR9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8TWFwQ29tcG9uZW50IHsuLi5tYXBQcm9wc30ga2V5PVwiYm90dG9tXCIgbWFwU3R5bGU9e21hcFN0eWxlLmJvdHRvbU1hcFN0eWxlfT5cbiAgICAgICAgICAgIHtQRVJGX0RFQlVHICYmIHJlbmRlclBlcmZvcm1hbmNlU3RhdHMoKX1cbiAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJEZWNrT3ZlcmxheShsYXllcnNGb3JEZWNrKX1cbiAgICAgICAgICA8L01hcENvbXBvbmVudD5cbiAgICAgICAgICB7dGhpcy5fcmVuZGVyTWFwUG9wb3ZlcihsYXllcnNUb1JlbmRlcil9XG4gICAgICAgIDwvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7bWFwU3RhdGUsIG1hcFN0eWxlfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBjb250ZXh0TG9zdCA9ICh0aGlzLnN0YXRlIGFzIGFueSk/LmNvbnRleHRMb3N0O1xuXG4gICAgICBpZiAoY29udGV4dExvc3QpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNYXBDb250YWluZXIgcmVmPXt0aGlzLl9yZWZ9IHN0eWxlPXtNQVBfU1RZTEUuY29udGFpbmVyfT5cbiAgICAgICAgICB7bWFwU3R5bGUuYm90dG9tTWFwU3R5bGUgJiYgdGhpcy5fcmVuZGVyTWFwKCl9XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gTWFwQ29udGFpbmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBcUJBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLG1CQUFBLEdBQUFSLE9BQUE7QUFPQSxJQUFBUyxXQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVyxpQkFBQSxHQUFBWCxPQUFBO0FBRUEsSUFBQVksT0FBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBR0EsSUFBQWEsWUFBQSxHQUFB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
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface MapsLayoutFactoryProps {
3
+ className?: string;
4
+ children?: React.ReactNode;
5
+ }
6
+ declare function MapsLayoutFactory(): React.ComponentType<MapsLayoutFactoryProps>;
7
+ declare namespace MapsLayoutFactory {
8
+ var deps: any[];
9
+ }
10
+ export default MapsLayoutFactory;
@@ -38,19 +38,20 @@ var Outer = _styledComponents["default"].div(_templateObject || (_templateObject
38
38
  MapsLayoutFactory.deps = [];
39
39
  function MapsLayoutFactory() {
40
40
  var MapsLayout = /*#__PURE__*/function (_React$Component) {
41
- (0, _inherits2["default"])(MapsLayout, _React$Component);
42
41
  function MapsLayout() {
43
42
  (0, _classCallCheck2["default"])(this, MapsLayout);
44
43
  return _callSuper(this, MapsLayout, arguments);
45
44
  }
46
- (0, _createClass2["default"])(MapsLayout, [{
45
+ (0, _inherits2["default"])(MapsLayout, _React$Component);
46
+ return (0, _createClass2["default"])(MapsLayout, [{
47
47
  key: "render",
48
48
  value: function render() {
49
- return /*#__PURE__*/_react["default"].createElement(Outer, null, this.props.children);
49
+ return /*#__PURE__*/_react["default"].createElement(Outer, {
50
+ className: this.props.className
51
+ }, this.props.children);
50
52
  }
51
53
  }]);
52
- return MapsLayout;
53
54
  }(_react["default"].Component);
54
55
  return MapsLayout;
55
56
  }
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3RlbXBsYXRlT2JqZWN0IiwiX2NhbGxTdXBlciIsInQiLCJvIiwiZSIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJPdXRlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTWFwc0xheW91dEZhY3RvcnkiLCJkZXBzIiwiTWFwc0xheW91dCIsIl9SZWFjdCRDb21wb25lbnQiLCJfaW5oZXJpdHMyIiwiX2NsYXNzQ2FsbENoZWNrMiIsImFyZ3VtZW50cyIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJwcm9wcyIsImNoaWxkcmVuIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9tYXBzLWxheW91dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IE91dGVyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuYDtcblxuTWFwc0xheW91dEZhY3RvcnkuZGVwcyA9IFtdO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYXBzTGF5b3V0RmFjdG9yeSgpIHtcbiAgY2xhc3MgTWFwc0xheW91dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIDxPdXRlcj57dGhpcy5wcm9wcy5jaGlsZHJlbn08L091dGVyPjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIE1hcHNMYXlvdXQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwQixJQUFBRSxlQUFBLEVBckIxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLFNBQUFDLFdBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFdBQUFELENBQUEsT0FBQUUsZ0JBQUEsYUFBQUYsQ0FBQSxPQUFBRywyQkFBQSxhQUFBSixDQUFBLEVBQUFLLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTixDQUFBLEVBQUFDLENBQUEsWUFBQUMsZ0JBQUEsYUFBQUgsQ0FBQSxFQUFBUSxXQUFBLElBQUFQLENBQUEsQ0FBQVEsS0FBQSxDQUFBVCxDQUFBLEVBQUFFLENBQUE7QUFBQSxTQUFBRywwQkFBQSxjQUFBTCxDQUFBLElBQUFVLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFDLElBQUEsQ0FBQVAsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUFWLENBQUEsYUFBQUsseUJBQUEsWUFBQUEsMEJBQUEsYUFBQUwsQ0FBQTtBQUtBLElBQU1jLEtBQUssR0FBR0MsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBbEIsZUFBQSxLQUFBQSxlQUFBLE9BQUFtQix1QkFBQSxnR0FLdkI7QUFFREMsaUJBQWlCLENBQUNDLElBQUksR0FBRyxFQUFFO0FBRVosU0FBU0QsaUJBQWlCQSxDQUFBLEVBQUc7RUFBQSxJQUNwQ0UsVUFBVSwwQkFBQUMsZ0JBQUE7SUFBQSxJQUFBQyxVQUFBLGFBQUFGLFVBQUEsRUFBQUMsZ0JBQUE7SUFBQSxTQUFBRCxXQUFBO01BQUEsSUFBQUcsZ0JBQUEsbUJBQUFILFVBQUE7TUFBQSxPQUFBckIsVUFBQSxPQUFBcUIsVUFBQSxFQUFBSSxTQUFBO0lBQUE7SUFBQSxJQUFBQyxhQUFBLGFBQUFMLFVBQUE7TUFBQU0sR0FBQTtNQUFBQyxLQUFBLEVBQ2QsU0FBQUMsT0FBQSxFQUFTO1FBQ1Asb0JBQU8vQixNQUFBLFlBQUFnQyxhQUFBLENBQUNmLEtBQUssUUFBRSxJQUFJLENBQUNnQixLQUFLLENBQUNDLFFBQWdCLENBQUM7TUFDN0M7SUFBQztJQUFBLE9BQUFYLFVBQUE7RUFBQSxFQUhzQlksaUJBQUssQ0FBQ0MsU0FBUztFQUt4QyxPQUFPYixVQUFVO0FBQ25CIn0=
57
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3RlbXBsYXRlT2JqZWN0IiwiX2NhbGxTdXBlciIsInQiLCJvIiwiZSIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJPdXRlciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTWFwc0xheW91dEZhY3RvcnkiLCJkZXBzIiwiTWFwc0xheW91dCIsIl9SZWFjdCRDb21wb25lbnQiLCJfY2xhc3NDYWxsQ2hlY2syIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJwcm9wcyIsImNoaWxkcmVuIiwiUmVhY3QiLCJDb21wb25lbnQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9tYXBzLWxheW91dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5jb25zdCBPdXRlciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbmA7XG5cbk1hcHNMYXlvdXRGYWN0b3J5LmRlcHMgPSBbXTtcblxuaW50ZXJmYWNlIE1hcHNMYXlvdXRGYWN0b3J5UHJvcHMge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYXBzTGF5b3V0RmFjdG9yeSgpOiBSZWFjdC5Db21wb25lbnRUeXBlPE1hcHNMYXlvdXRGYWN0b3J5UHJvcHM+IHtcbiAgY2xhc3MgTWFwc0xheW91dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxNYXBzTGF5b3V0RmFjdG9yeVByb3BzPiB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIDxPdXRlciBjbGFzc05hbWU9e3RoaXMucHJvcHMuY2xhc3NOYW1lfT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L091dGVyPjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIE1hcHNMYXlvdXQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUEwQixJQUFBRSxlQUFBLEVBckIxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBLFNBQUFDLFdBQUFDLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFdBQUFELENBQUEsT0FBQUUsZ0JBQUEsYUFBQUYsQ0FBQSxPQUFBRywyQkFBQSxhQUFBSixDQUFBLEVBQUFLLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTixDQUFBLEVBQUFDLENBQUEsWUFBQUMsZ0JBQUEsYUFBQUgsQ0FBQSxFQUFBUSxXQUFBLElBQUFQLENBQUEsQ0FBQVEsS0FBQSxDQUFBVCxDQUFBLEVBQUFFLENBQUE7QUFBQSxTQUFBRywwQkFBQSxjQUFBTCxDQUFBLElBQUFVLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFDLElBQUEsQ0FBQVAsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUFWLENBQUEsYUFBQUsseUJBQUEsWUFBQUEsMEJBQUEsYUFBQUwsQ0FBQTtBQUtBLElBQU1jLEtBQUssR0FBR0MsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBbEIsZUFBQSxLQUFBQSxlQUFBLE9BQUFtQix1QkFBQSxnR0FLdkI7QUFFREMsaUJBQWlCLENBQUNDLElBQUksR0FBRyxFQUFFO0FBT1osU0FBU0QsaUJBQWlCQSxDQUFBLEVBQWdEO0VBQUEsSUFDakZFLFVBQVUsMEJBQUFDLGdCQUFBO0lBQUEsU0FBQUQsV0FBQTtNQUFBLElBQUFFLGdCQUFBLG1CQUFBRixVQUFBO01BQUEsT0FBQXJCLFVBQUEsT0FBQXFCLFVBQUEsRUFBQUcsU0FBQTtJQUFBO0lBQUEsSUFBQUMsVUFBQSxhQUFBSixVQUFBLEVBQUFDLGdCQUFBO0lBQUEsV0FBQUksYUFBQSxhQUFBTCxVQUFBO01BQUFNLEdBQUE7TUFBQUMsS0FBQSxFQUNkLFNBQUFDLE1BQU1BLENBQUEsRUFBRztRQUNQLG9CQUFPL0IsTUFBQSxZQUFBZ0MsYUFBQSxDQUFDZixLQUFLO1VBQUNnQixTQUFTLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUNEO1FBQVUsR0FBRSxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsUUFBZ0IsQ0FBQztNQUM5RTtJQUFDO0VBQUEsRUFIc0JDLGlCQUFLLENBQUNDLFNBQVM7RUFLeEMsT0FBT2QsVUFBVTtBQUNuQiIsImlnbm9yZUxpc3QiOltdfQ==