@carto/kepler.gl 0.0.86-alpha.deck9.1 → 0.0.86

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 (423) hide show
  1. package/dist/actions/action-wrapper.js +41 -36
  2. package/dist/actions/actions.js +21 -15
  3. package/dist/actions/identity-actions.js +20 -14
  4. package/dist/actions/index.js +16 -16
  5. package/dist/actions/map-state-actions.js +18 -12
  6. package/dist/actions/map-style-actions.js +46 -30
  7. package/dist/actions/provider-actions.js +73 -49
  8. package/dist/actions/ui-state-actions.js +113 -73
  9. package/dist/actions/vis-state-actions.js +148 -152
  10. package/dist/cloud-providers/index.js +7 -6
  11. package/dist/cloud-providers/provider.js +279 -189
  12. package/dist/components/bottom-widget.js +117 -105
  13. package/dist/components/common/action-panel.js +74 -122
  14. package/dist/components/common/animation-control/animation-control.js +54 -69
  15. package/dist/components/common/animation-control/animation-controller.js +160 -134
  16. package/dist/components/common/animation-control/animation-speed-slider.js +54 -47
  17. package/dist/components/common/animation-control/floating-time-display.js +100 -120
  18. package/dist/components/common/animation-control/playback-controls.js +144 -147
  19. package/dist/components/common/animation-control/speed-control.js +23 -31
  20. package/dist/components/common/checkbox.js +70 -56
  21. package/dist/components/common/color-legend.js +110 -83
  22. package/dist/components/common/data-table/button.js +23 -31
  23. package/dist/components/common/data-table/canvas.js +5 -11
  24. package/dist/components/common/data-table/cell-size.js +61 -51
  25. package/dist/components/common/data-table/grid.js +59 -40
  26. package/dist/components/common/data-table/index.js +348 -464
  27. package/dist/components/common/data-table/option-dropdown.js +33 -50
  28. package/dist/components/common/dataset-label.js +13 -17
  29. package/dist/components/common/error-boundary.js +45 -27
  30. package/dist/components/common/field-selector.js +139 -99
  31. package/dist/components/common/field-token.js +9 -24
  32. package/dist/components/common/file-uploader/file-drop.js +115 -96
  33. package/dist/components/common/file-uploader/file-upload-progress.js +45 -68
  34. package/dist/components/common/file-uploader/file-upload.js +187 -215
  35. package/dist/components/common/file-uploader/upload-button.js +22 -35
  36. package/dist/components/common/histogram-plot.js +58 -47
  37. package/dist/components/common/icons/add.js +27 -14
  38. package/dist/components/common/icons/anchor_window.js +18 -16
  39. package/dist/components/common/icons/arrow-down-alt.js +27 -14
  40. package/dist/components/common/icons/arrow-down-solid.js +27 -14
  41. package/dist/components/common/icons/arrow-down.js +27 -14
  42. package/dist/components/common/icons/arrow-left.js +30 -17
  43. package/dist/components/common/icons/arrow-right.js +27 -14
  44. package/dist/components/common/icons/arrow-up-alt.js +28 -15
  45. package/dist/components/common/icons/arrow-up-solid.js +27 -14
  46. package/dist/components/common/icons/arrow-up.js +27 -14
  47. package/dist/components/common/icons/base.js +57 -39
  48. package/dist/components/common/icons/bug.js +29 -16
  49. package/dist/components/common/icons/cancel.js +27 -14
  50. package/dist/components/common/icons/checkmark.js +31 -18
  51. package/dist/components/common/icons/chevron-right.js +33 -20
  52. package/dist/components/common/icons/clipboard.js +28 -15
  53. package/dist/components/common/icons/clock.js +29 -16
  54. package/dist/components/common/icons/close.js +32 -19
  55. package/dist/components/common/icons/code-alt.js +29 -16
  56. package/dist/components/common/icons/copy.js +31 -18
  57. package/dist/components/common/icons/crosshairs.js +29 -16
  58. package/dist/components/common/icons/cube-3d.js +31 -18
  59. package/dist/components/common/icons/cursor-click.js +31 -18
  60. package/dist/components/common/icons/data-table.js +28 -15
  61. package/dist/components/common/icons/db.js +28 -15
  62. package/dist/components/common/icons/delete.js +29 -16
  63. package/dist/components/common/icons/docs.js +43 -30
  64. package/dist/components/common/icons/drag-n-drop.js +29 -16
  65. package/dist/components/common/icons/draw-polygon.js +46 -33
  66. package/dist/components/common/icons/email.js +31 -18
  67. package/dist/components/common/icons/expand.js +29 -16
  68. package/dist/components/common/icons/eye-seen.js +29 -16
  69. package/dist/components/common/icons/eye-unseen.js +29 -16
  70. package/dist/components/common/icons/file-type.js +19 -35
  71. package/dist/components/common/icons/file.js +27 -14
  72. package/dist/components/common/icons/files.js +26 -14
  73. package/dist/components/common/icons/filter-funnel.js +27 -14
  74. package/dist/components/common/icons/free-window.js +18 -16
  75. package/dist/components/common/icons/gear.js +29 -16
  76. package/dist/components/common/icons/hash.js +27 -14
  77. package/dist/components/common/icons/histogram.js +27 -15
  78. package/dist/components/common/icons/index.js +156 -156
  79. package/dist/components/common/icons/info.js +38 -25
  80. package/dist/components/common/icons/layers.js +27 -14
  81. package/dist/components/common/icons/left-arrow.js +29 -16
  82. package/dist/components/common/icons/legend.js +27 -14
  83. package/dist/components/common/icons/line-chart.js +27 -14
  84. package/dist/components/common/icons/login.js +30 -17
  85. package/dist/components/common/icons/logout.js +29 -16
  86. package/dist/components/common/icons/map-icon.js +32 -18
  87. package/dist/components/common/icons/map.js +32 -18
  88. package/dist/components/common/icons/messages.js +27 -14
  89. package/dist/components/common/icons/minus.js +27 -14
  90. package/dist/components/common/icons/order-by-dataset.js +17 -15
  91. package/dist/components/common/icons/order-by-list.js +9 -7
  92. package/dist/components/common/icons/pause.js +27 -14
  93. package/dist/components/common/icons/picture.js +26 -14
  94. package/dist/components/common/icons/pin.js +30 -17
  95. package/dist/components/common/icons/play.js +27 -14
  96. package/dist/components/common/icons/polygon.js +48 -35
  97. package/dist/components/common/icons/rectangle.js +49 -36
  98. package/dist/components/common/icons/reduce.js +30 -17
  99. package/dist/components/common/icons/reset.js +27 -14
  100. package/dist/components/common/icons/rocket.js +27 -14
  101. package/dist/components/common/icons/save.js +29 -16
  102. package/dist/components/common/icons/save2.js +33 -20
  103. package/dist/components/common/icons/search.js +29 -16
  104. package/dist/components/common/icons/settings.js +29 -16
  105. package/dist/components/common/icons/share.js +27 -14
  106. package/dist/components/common/icons/split.js +55 -42
  107. package/dist/components/common/icons/square-select.js +29 -16
  108. package/dist/components/common/icons/swap-horizontal.js +31 -18
  109. package/dist/components/common/icons/table.js +27 -14
  110. package/dist/components/common/icons/trash.js +29 -16
  111. package/dist/components/common/icons/upload.js +27 -14
  112. package/dist/components/common/icons/vert-dots.js +65 -52
  113. package/dist/components/common/icons/vert-three-dots.js +40 -27
  114. package/dist/components/common/icons/warning.js +39 -26
  115. package/dist/components/common/image-preview.js +33 -71
  116. package/dist/components/common/info-helper.js +29 -36
  117. package/dist/components/common/item-selector/accessor.js +13 -7
  118. package/dist/components/common/item-selector/chickleted-input.js +56 -72
  119. package/dist/components/common/item-selector/dropdown-list.js +214 -182
  120. package/dist/components/common/item-selector/item-selector-submenu.js +55 -34
  121. package/dist/components/common/item-selector/item-selector.js +194 -183
  122. package/dist/components/common/item-selector/typeahead.js +248 -236
  123. package/dist/components/common/line-chart.js +58 -80
  124. package/dist/components/common/loading-spinner.js +31 -46
  125. package/dist/components/common/logo.js +48 -61
  126. package/dist/components/common/map-layer-selector.js +25 -31
  127. package/dist/components/common/modal.js +106 -167
  128. package/dist/components/common/portaled.js +189 -169
  129. package/dist/components/common/progress-bar.js +24 -27
  130. package/dist/components/common/range-brush.js +215 -176
  131. package/dist/components/common/range-plot.js +63 -52
  132. package/dist/components/common/range-slider.js +231 -206
  133. package/dist/components/common/slider/mouse-event.js +66 -59
  134. package/dist/components/common/slider/slider-bar-handle.js +61 -51
  135. package/dist/components/common/slider/slider-handle.js +102 -127
  136. package/dist/components/common/slider/slider.js +162 -143
  137. package/dist/components/common/styled-components.js +256 -518
  138. package/dist/components/common/switch.js +11 -11
  139. package/dist/components/common/time-range-slider-time-title.js +32 -49
  140. package/dist/components/common/time-range-slider.js +45 -56
  141. package/dist/components/common/time-slider-marker.js +52 -71
  142. package/dist/components/common/tippy-tooltip.js +59 -89
  143. package/dist/components/common/toolbar-item.js +45 -53
  144. package/dist/components/common/toolbar.js +18 -24
  145. package/dist/components/common/vertical-toolbar.js +6 -13
  146. package/dist/components/container.js +119 -87
  147. package/dist/components/context.js +8 -6
  148. package/dist/components/editor/constants.js +4 -4
  149. package/dist/components/editor/editor.js +157 -122
  150. package/dist/components/editor/feature-action-panel.js +59 -52
  151. package/dist/components/editor/feature-styles.js +29 -46
  152. package/dist/components/editor/handle-style.js +29 -38
  153. package/dist/components/filters/components.js +4 -8
  154. package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +43 -33
  155. package/dist/components/filters/filter-panels/multi-select-filter-panel.js +21 -20
  156. package/dist/components/filters/filter-panels/new-filter-panel.js +31 -24
  157. package/dist/components/filters/filter-panels/polygon-filter-panel.js +31 -26
  158. package/dist/components/filters/filter-panels/range-filter-panel.js +21 -20
  159. package/dist/components/filters/filter-panels/single-select-filter-panel.js +21 -20
  160. package/dist/components/filters/filter-panels/time-range-filter-panel.js +31 -28
  161. package/dist/components/filters/index.js +10 -10
  162. package/dist/components/filters/multi-select-filter.js +9 -11
  163. package/dist/components/filters/polygon-filter.js +41 -26
  164. package/dist/components/filters/range-filter.js +7 -9
  165. package/dist/components/filters/single-select-filter.js +13 -11
  166. package/dist/components/filters/time-range-filter.js +14 -16
  167. package/dist/components/filters/time-widget.js +84 -125
  168. package/dist/components/geocoder/geocoder.js +177 -158
  169. package/dist/components/geocoder-panel.js +87 -66
  170. package/dist/components/index.js +329 -328
  171. package/dist/components/injector.js +63 -44
  172. package/dist/components/kepler-gl.js +361 -325
  173. package/dist/components/map/coordinate-info.js +16 -18
  174. package/dist/components/map/layer-hover-info.js +86 -108
  175. package/dist/components/map/layer-selector-panel.js +48 -50
  176. package/dist/components/map/locale-panel.js +44 -38
  177. package/dist/components/map/map-control-panel.js +47 -70
  178. package/dist/components/map/map-control-toolbar.js +6 -9
  179. package/dist/components/map/map-control-tooltip.js +8 -10
  180. package/dist/components/map/map-control.js +27 -35
  181. package/dist/components/map/map-draw-panel.js +48 -38
  182. package/dist/components/map/map-legend-panel.js +50 -47
  183. package/dist/components/map/map-legend.js +116 -133
  184. package/dist/components/map/map-popover.js +100 -155
  185. package/dist/components/map/split-map-button.js +34 -30
  186. package/dist/components/map/toggle-3d-button.js +27 -25
  187. package/dist/components/map-container.js +359 -313
  188. package/dist/components/maps-layout.js +26 -16
  189. package/dist/components/modal-container.js +355 -359
  190. package/dist/components/modals/add-map-style-modal.js +194 -233
  191. package/dist/components/modals/cloud-tile.js +67 -96
  192. package/dist/components/modals/data-table-modal.js +152 -155
  193. package/dist/components/modals/delete-data-modal.js +20 -20
  194. package/dist/components/modals/error-display.js +7 -9
  195. package/dist/components/modals/export-data-modal.js +140 -118
  196. package/dist/components/modals/export-image-modal.js +69 -82
  197. package/dist/components/modals/export-map-modal/components.js +18 -20
  198. package/dist/components/modals/export-map-modal/export-html-map.js +74 -82
  199. package/dist/components/modals/export-map-modal/export-json-map.js +45 -65
  200. package/dist/components/modals/export-map-modal/export-map-modal.js +47 -42
  201. package/dist/components/modals/image-modal-container.js +21 -20
  202. package/dist/components/modals/load-data-modal.js +30 -28
  203. package/dist/components/modals/load-storage-map.js +178 -277
  204. package/dist/components/modals/loading-dialog.js +19 -41
  205. package/dist/components/modals/modal-dialog.js +6 -4
  206. package/dist/components/modals/modal-tabs.js +48 -83
  207. package/dist/components/modals/overwrite-map-modal.js +30 -41
  208. package/dist/components/modals/provider-modal-container.js +42 -23
  209. package/dist/components/modals/save-map-modal.js +83 -107
  210. package/dist/components/modals/share-map-modal.js +95 -101
  211. package/dist/components/modals/status-panel.js +43 -63
  212. package/dist/components/modals/storage-map-viewer.js +70 -133
  213. package/dist/components/notification-panel/notification-item.js +97 -94
  214. package/dist/components/notification-panel.js +43 -35
  215. package/dist/components/performance.js +53 -49
  216. package/dist/components/plot-container.js +169 -151
  217. package/dist/components/side-panel/cloud-storage-dropdown.js +15 -13
  218. package/dist/components/side-panel/common/dataset-info.js +12 -16
  219. package/dist/components/side-panel/common/dataset-tag.js +27 -48
  220. package/dist/components/side-panel/common/dataset-title.js +116 -119
  221. package/dist/components/side-panel/common/source-data-catalog.js +32 -31
  222. package/dist/components/side-panel/common/source-data-selector.js +77 -52
  223. package/dist/components/side-panel/custom-panel.js +8 -6
  224. package/dist/components/side-panel/filter-manager.js +62 -48
  225. package/dist/components/side-panel/filter-panel/filter-panel-header.js +25 -35
  226. package/dist/components/side-panel/filter-panel/filter-panel.js +64 -46
  227. package/dist/components/side-panel/interaction-manager.js +18 -20
  228. package/dist/components/side-panel/interaction-panel/brush-config.js +17 -17
  229. package/dist/components/side-panel/interaction-panel/interaction-panel.js +95 -76
  230. package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +143 -118
  231. package/dist/components/side-panel/interaction-panel/tooltip-config.js +76 -95
  232. package/dist/components/side-panel/layer-manager.js +115 -105
  233. package/dist/components/side-panel/layer-panel/add-layer-button.js +54 -92
  234. package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +5 -5
  235. package/dist/components/side-panel/layer-panel/color-palette.js +37 -50
  236. package/dist/components/side-panel/layer-panel/color-range-selector.js +207 -196
  237. package/dist/components/side-panel/layer-panel/color-selector.js +110 -104
  238. package/dist/components/side-panel/layer-panel/column-selector.js +22 -34
  239. package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +4 -4
  240. package/dist/components/side-panel/layer-panel/custom-palette.js +205 -248
  241. package/dist/components/side-panel/layer-panel/custom-picker.js +69 -51
  242. package/dist/components/side-panel/layer-panel/dataset-layer-group.js +42 -37
  243. package/dist/components/side-panel/layer-panel/dataset-layer-section.js +27 -31
  244. package/dist/components/side-panel/layer-panel/dataset-section.js +35 -45
  245. package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +13 -14
  246. package/dist/components/side-panel/layer-panel/hex-column-config.js +55 -32
  247. package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +5 -5
  248. package/dist/components/side-panel/layer-panel/layer-column-config.js +46 -42
  249. package/dist/components/side-panel/layer-panel/layer-config-group.js +144 -178
  250. package/dist/components/side-panel/layer-panel/layer-configurator.js +830 -826
  251. package/dist/components/side-panel/layer-panel/layer-list.js +94 -101
  252. package/dist/components/side-panel/layer-panel/layer-panel-header.js +82 -124
  253. package/dist/components/side-panel/layer-panel/layer-panel.js +105 -111
  254. package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +58 -67
  255. package/dist/components/side-panel/layer-panel/layer-type-list-item.js +32 -47
  256. package/dist/components/side-panel/layer-panel/layer-type-selector.js +41 -30
  257. package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +43 -42
  258. package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +57 -55
  259. package/dist/components/side-panel/layer-panel/single-color-palette.js +33 -48
  260. package/dist/components/side-panel/layer-panel/text-label-panel.js +116 -81
  261. package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +102 -88
  262. package/dist/components/side-panel/layer-panel/vis-config-slider.js +85 -99
  263. package/dist/components/side-panel/layer-panel/vis-config-switch.js +29 -38
  264. package/dist/components/side-panel/map-manager.js +89 -70
  265. package/dist/components/side-panel/map-style-panel/map-layer-selector.js +60 -72
  266. package/dist/components/side-panel/map-style-panel/map-style-selector.js +42 -64
  267. package/dist/components/side-panel/panel-dropdown.js +37 -21
  268. package/dist/components/side-panel/panel-header-action.js +65 -60
  269. package/dist/components/side-panel/panel-header.js +184 -165
  270. package/dist/components/side-panel/panel-tab.js +29 -35
  271. package/dist/components/side-panel/panel-title.js +18 -15
  272. package/dist/components/side-panel/panel-toggle.js +31 -30
  273. package/dist/components/side-panel/side-bar.js +91 -100
  274. package/dist/components/side-panel.js +123 -108
  275. package/dist/connect/keplergl-connect.js +26 -17
  276. package/dist/connect/with-local-selector.js +63 -31
  277. package/dist/constants/action-types.js +115 -113
  278. package/dist/constants/color-palette.js +16 -14
  279. package/dist/constants/color-ranges.js +28 -23
  280. package/dist/constants/custom-color-ranges.js +12 -12
  281. package/dist/constants/default-settings.js +254 -323
  282. package/dist/constants/index.js +63 -63
  283. package/dist/constants/keyevent.js +4 -4
  284. package/dist/constants/tooltip.js +5 -5
  285. package/dist/constants/user-feedbacks.js +5 -9
  286. package/dist/constants/user-guides.js +10 -10
  287. package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +63 -37
  288. package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +56 -52
  289. package/dist/deckgl-layers/cluster-layer/cluster-layer.js +168 -165
  290. package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +43 -24
  291. package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +40 -27
  292. package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +40 -27
  293. package/dist/deckgl-layers/layer-utils/cluster-utils.js +68 -60
  294. package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +282 -276
  295. package/dist/deckgl-layers/layer-utils/shader-utils.js +2 -2
  296. package/dist/deckgl-layers/line-layer/line-layer.js +70 -62
  297. package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +51 -37
  298. package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +85 -65
  299. package/dist/index.js +16 -15
  300. package/dist/layers/aggregation-layer.js +331 -299
  301. package/dist/layers/arc-layer/arc-layer-icon.js +41 -27
  302. package/dist/layers/arc-layer/arc-layer.js +201 -174
  303. package/dist/layers/base-layer.js +1544 -1371
  304. package/dist/layers/cluster-layer/cluster-layer-icon.js +44 -30
  305. package/dist/layers/cluster-layer/cluster-layer.js +103 -89
  306. package/dist/layers/default-layer-icon.js +53 -39
  307. package/dist/layers/geojson-layer/geojson-layer-icon.js +55 -42
  308. package/dist/layers/geojson-layer/geojson-layer.js +353 -292
  309. package/dist/layers/geojson-layer/geojson-utils.js +36 -31
  310. package/dist/layers/grid-layer/grid-layer-icon.js +100 -87
  311. package/dist/layers/grid-layer/grid-layer.js +61 -51
  312. package/dist/layers/grid-layer/grid-utils.js +9 -13
  313. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +35 -21
  314. package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +260 -225
  315. package/dist/layers/h3-hexagon-layer/h3-utils.js +16 -16
  316. package/dist/layers/heatmap-layer/heatmap-layer-icon.js +52 -39
  317. package/dist/layers/heatmap-layer/heatmap-layer.js +171 -140
  318. package/dist/layers/hexagon-layer/hexagon-layer-icon.js +64 -51
  319. package/dist/layers/hexagon-layer/hexagon-layer.js +63 -49
  320. package/dist/layers/hexagon-layer/hexagon-utils.js +14 -15
  321. package/dist/layers/icon-layer/icon-info-modal.js +75 -82
  322. package/dist/layers/icon-layer/icon-layer-icon.js +37 -24
  323. package/dist/layers/icon-layer/icon-layer.js +303 -274
  324. package/dist/layers/index.js +29 -43
  325. package/dist/layers/layer-factory.js +41 -25
  326. package/dist/layers/layer-text-label.js +23 -21
  327. package/dist/layers/layer-update.js +18 -16
  328. package/dist/layers/line-layer/line-layer-icon.js +43 -30
  329. package/dist/layers/line-layer/line-layer.js +142 -123
  330. package/dist/layers/mapbox-utils.js +62 -61
  331. package/dist/layers/mapboxgl-layer.js +169 -124
  332. package/dist/layers/point-layer/point-layer-icon.js +59 -45
  333. package/dist/layers/point-layer/point-layer.js +386 -355
  334. package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +238 -208
  335. package/dist/layers/s2-geometry-layer/s2-layer-icon.js +35 -21
  336. package/dist/layers/s2-geometry-layer/s2-utils.js +8 -9
  337. package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +25 -24
  338. package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +115 -102
  339. package/dist/layers/scenegraph-layer/scenegraph-layer.js +172 -148
  340. package/dist/layers/trip-layer/trip-info-modal.js +30 -50
  341. package/dist/layers/trip-layer/trip-layer-icon.js +53 -40
  342. package/dist/layers/trip-layer/trip-layer.js +307 -239
  343. package/dist/layers/trip-layer/trip-utils.js +50 -34
  344. package/dist/layers/types.js +2 -2
  345. package/dist/localization/formatted-message.js +10 -8
  346. package/dist/localization/index.js +7 -7
  347. package/dist/localization/locales.js +9 -6
  348. package/dist/localization/messages.js +10 -13
  349. package/dist/localization/translations/ca.js +13 -11
  350. package/dist/localization/translations/cn.js +13 -11
  351. package/dist/localization/translations/en.js +13 -11
  352. package/dist/localization/translations/es.js +13 -11
  353. package/dist/localization/translations/fi.js +13 -11
  354. package/dist/localization/translations/ja.js +13 -11
  355. package/dist/localization/translations/pt.js +13 -11
  356. package/dist/localization/translations/ru.js +13 -11
  357. package/dist/middleware/index.js +5 -3
  358. package/dist/processors/data-processor.js +201 -164
  359. package/dist/processors/file-handler.js +233 -111
  360. package/dist/processors/index.js +4 -4
  361. package/dist/reducers/combined-updaters.js +41 -41
  362. package/dist/reducers/composer-helpers.js +45 -20
  363. package/dist/reducers/composers.js +8 -9
  364. package/dist/reducers/core.js +35 -31
  365. package/dist/reducers/index.js +22 -21
  366. package/dist/reducers/map-state-updaters.js +47 -65
  367. package/dist/reducers/map-state.js +15 -23
  368. package/dist/reducers/map-style-updaters.js +159 -233
  369. package/dist/reducers/map-style.js +16 -30
  370. package/dist/reducers/provider-state-updaters.js +229 -217
  371. package/dist/reducers/provider-state.js +17 -29
  372. package/dist/reducers/root.js +58 -86
  373. package/dist/reducers/ui-state-updaters.js +218 -337
  374. package/dist/reducers/ui-state.js +16 -45
  375. package/dist/reducers/vis-state-merger.js +209 -205
  376. package/dist/reducers/vis-state-selectors.js +19 -5
  377. package/dist/reducers/vis-state-updaters.js +876 -1003
  378. package/dist/reducers/vis-state.js +16 -75
  379. package/dist/schemas/dataset-schema.js +108 -84
  380. package/dist/schemas/index.js +29 -28
  381. package/dist/schemas/map-state-schema.js +18 -21
  382. package/dist/schemas/map-style-schema.js +55 -47
  383. package/dist/schemas/schema-manager.js +161 -147
  384. package/dist/schemas/schema-utils.js +9 -8
  385. package/dist/schemas/schema.js +87 -72
  386. package/dist/schemas/versions.js +3 -3
  387. package/dist/schemas/vis-state-schema.js +583 -441
  388. package/dist/styles/base.js +1021 -1217
  389. package/dist/styles/index.js +3 -3
  390. package/dist/styles/media-breakpoints.js +18 -23
  391. package/dist/tasks/tasks.js +39 -36
  392. package/dist/templates/export-map-html.js +4 -233
  393. package/dist/utils/aggregate-utils.js +16 -13
  394. package/dist/utils/color-utils.js +37 -29
  395. package/dist/utils/custom-scales.js +3 -3
  396. package/dist/utils/data-scale-utils.js +13 -6
  397. package/dist/utils/data-utils.js +83 -60
  398. package/dist/utils/dataset-utils.js +77 -48
  399. package/dist/utils/dom-to-image.js +163 -108
  400. package/dist/utils/dom-utils.js +105 -88
  401. package/dist/utils/export-utils.js +103 -116
  402. package/dist/utils/filter-utils.js +374 -379
  403. package/dist/utils/gl-utils.js +15 -16
  404. package/dist/utils/gpu-filter-utils.js +73 -54
  405. package/dist/utils/index.js +48 -47
  406. package/dist/utils/interaction-utils.js +46 -53
  407. package/dist/utils/layer-utils.js +78 -89
  408. package/dist/utils/locale-utils.js +16 -24
  409. package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +76 -67
  410. package/dist/utils/map-style-utils/mapbox-utils.js +3 -4
  411. package/dist/utils/mapbox-utils.js +4 -3
  412. package/dist/utils/notifications-utils.js +38 -33
  413. package/dist/utils/observe-dimensions.js +54 -42
  414. package/dist/utils/projection-utils.js +11 -14
  415. package/dist/utils/split-map-utils.js +33 -30
  416. package/dist/utils/table-utils/data-container-utils.js +14 -15
  417. package/dist/utils/table-utils/data-row.js +65 -58
  418. package/dist/utils/table-utils/index.js +2 -2
  419. package/dist/utils/table-utils/indexed-data-container.js +173 -105
  420. package/dist/utils/table-utils/kepler-table.js +386 -362
  421. package/dist/utils/table-utils/row-data-container.js +164 -99
  422. package/dist/utils/utils.js +30 -29
  423. package/package.json +1 -1
@@ -1,12 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
- exports.preventCloseSelector = exports.default = exports.StyledDropdownSelect = exports.ItemSelectorListen = void 0;
8
+ exports.preventCloseSelector = exports["default"] = exports.StyledDropdownSelect = exports.ItemSelectorListen = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
9
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
18
  var _react = _interopRequireWildcard(require("react"));
11
19
  var _classnames = _interopRequireDefault(require("classnames"));
12
20
  var _uniqBy = _interopRequireDefault(require("lodash/uniqBy"));
@@ -21,9 +29,7 @@ var _dropdownList = _interopRequireWildcard(require("./dropdown-list"));
21
29
  var _utils = require("../../../utils/utils");
22
30
  var _reactIntl = require("react-intl");
23
31
  var _localization = require("../../../localization");
24
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
- 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; }
26
- // Copyright (c) 2022 Uber Technologies, Inc.
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4; // Copyright (c) 2022 Uber Technologies, Inc.
27
33
  //
28
34
  // Permission is hereby granted, free of charge, to any person obtaining a copy
29
35
  // of this software and associated documentation files (the "Software"), to deal
@@ -42,230 +48,235 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
42
48
  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
43
49
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
44
50
  // THE SOFTWARE.
45
-
46
- const StyledDropdownSelect = exports.StyledDropdownSelect = _styledComponents.default.div.attrs({
51
+ 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); }
52
+ 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; }
53
+ 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)); }
54
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
55
+ var StyledDropdownSelect = exports.StyledDropdownSelect = _styledComponents["default"].div.attrs({
47
56
  className: 'item-selector__dropdown'
48
- })`
49
- ${props => props.inputTheme === 'secondary' ? props.theme.secondaryInput : props.inputTheme === 'light' ? props.theme.inputLT : props.theme.input};
50
-
51
- height: ${props => props.size === 'small' ? props.theme.inputBoxHeightSmall : props.theme.inputBoxHeight};
52
-
53
- .list__item__anchor {
54
- ${props => props.theme.dropdownListAnchor};
55
- }
56
- `;
57
- const DropdownSelectValue = _styledComponents.default.span`
58
- color: ${props => props.hasPlaceholder && props.inputTheme === 'light' ? props.theme.selectColorPlaceHolderLT : props.hasPlaceholder ? props.theme.selectColorPlaceHolder : props.inputTheme === 'light' ? props.theme.selectColorLT : props.theme.selectColor};
59
- overflow: hidden;
60
- text-overflow: ellipsis;
61
- white-space: nowrap;
62
-
63
- .list__item {
64
- ${props => props.inputTheme === 'light' ? props.theme.dropdownListItemLT : props.theme.dropdownListItem};
65
- }
66
-
67
- .list__item__anchor {
68
- ${props => props.inputTheme === 'light' ? props.theme.dropdownListAnchorLT : props.theme.dropdownListAnchor};
69
- }
70
- `;
71
- const DropdownSelectActionRight = _styledComponents.default.div`
72
- margin-right: 6px;
73
- display: flex;
74
- color: ${props => props.theme.subtextColor};
75
-
76
- :hover {
77
- color: ${props => props.theme.textColor};
78
- }
79
- `;
80
- const DropdownWrapper = _styledComponents.default.div`
81
- border: 0;
82
- width: 100%;
83
- left: 0;
84
- z-index: ${props => props.theme.dropdownWrapperZ};
85
- position: absolute;
86
- bottom: ${props => props.placement === 'top' ? props.theme.inputBoxHeight : 'auto'};
87
- margin-top: ${props => props.placement === 'bottom' ? `${props.theme.dropdownWapperMargin}px` : 'auto'};
88
- margin-bottom: ${props => props.placement === 'top' ? `${props.theme.dropdownWapperMargin}px` : 'auto'};
89
- `;
57
+ })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n\n height: ", ";\n\n .list__item__anchor {\n ", ";\n }\n"])), function (props) {
58
+ return props.inputTheme === 'secondary' ? props.theme.secondaryInput : props.inputTheme === 'light' ? props.theme.inputLT : props.theme.input;
59
+ }, function (props) {
60
+ return props.size === 'small' ? props.theme.inputBoxHeightSmall : props.theme.inputBoxHeight;
61
+ }, function (props) {
62
+ return props.theme.dropdownListAnchor;
63
+ });
64
+ var DropdownSelectValue = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n .list__item {\n ", ";\n }\n\n .list__item__anchor {\n ", ";\n }\n"])), function (props) {
65
+ return props.hasPlaceholder && props.inputTheme === 'light' ? props.theme.selectColorPlaceHolderLT : props.hasPlaceholder ? props.theme.selectColorPlaceHolder : props.inputTheme === 'light' ? props.theme.selectColorLT : props.theme.selectColor;
66
+ }, function (props) {
67
+ return props.inputTheme === 'light' ? props.theme.dropdownListItemLT : props.theme.dropdownListItem;
68
+ }, function (props) {
69
+ return props.inputTheme === 'light' ? props.theme.dropdownListAnchorLT : props.theme.dropdownListAnchor;
70
+ });
71
+ var DropdownSelectActionRight = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n margin-right: 6px;\n display: flex;\n color: ", ";\n\n :hover {\n color: ", ";\n }\n"])), function (props) {
72
+ return props.theme.subtextColor;
73
+ }, function (props) {
74
+ return props.theme.textColor;
75
+ });
76
+ var DropdownWrapper = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n border: 0;\n width: 100%;\n left: 0;\n z-index: ", ";\n position: absolute;\n bottom: ", ";\n margin-top: ", ";\n margin-bottom: ", ";\n"])), function (props) {
77
+ return props.theme.dropdownWrapperZ;
78
+ }, function (props) {
79
+ return props.placement === 'top' ? props.theme.inputBoxHeight : 'auto';
80
+ }, function (props) {
81
+ return props.placement === 'bottom' ? "".concat(props.theme.dropdownWapperMargin, "px") : 'auto';
82
+ }, function (props) {
83
+ return props.placement === 'top' ? "".concat(props.theme.dropdownWapperMargin, "px") : 'auto';
84
+ });
90
85
 
91
86
  // The item-selector component dismount all its children if you click outside of the component because of listensToClickOutside function.
92
87
  // If you want to prevent this behaviour when you click on a child add this class to it.
93
88
  // It is useful for example, when you add the child component on the top of tree with a Portal as dropdown-list does with item-selector-submenu
94
- const preventCloseSelector = exports.preventCloseSelector = 'prevent__close__selector';
95
- class ItemSelector extends _react.Component {
96
- constructor() {
97
- super(...arguments);
98
- (0, _defineProperty2.default)(this, "state", {
89
+ var preventCloseSelector = exports.preventCloseSelector = 'prevent__close__selector';
90
+ var ItemSelector = /*#__PURE__*/function (_Component) {
91
+ function ItemSelector() {
92
+ var _this;
93
+ (0, _classCallCheck2["default"])(this, ItemSelector);
94
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
95
+ args[_key] = arguments[_key];
96
+ }
97
+ _this = _callSuper(this, ItemSelector, [].concat(args));
98
+ (0, _defineProperty2["default"])(_this, "state", {
99
99
  showTypeahead: false
100
100
  });
101
- (0, _defineProperty2.default)(this, "handleClickOutside", e => {
101
+ (0, _defineProperty2["default"])(_this, "handleClickOutside", function (e) {
102
102
  var _e$target, _e$target$classList;
103
103
  if (e !== null && e !== void 0 && (_e$target = e.target) !== null && _e$target !== void 0 && (_e$target$classList = _e$target.classList) !== null && _e$target$classList !== void 0 && _e$target$classList.contains(preventCloseSelector)) {
104
104
  return;
105
105
  }
106
- this._hideTypeahead();
106
+ _this._hideTypeahead();
107
107
  });
108
- (0, _defineProperty2.default)(this, "_onBlur", () => {
108
+ (0, _defineProperty2["default"])(_this, "_onBlur", function () {
109
109
  // note: chickleted input is not a real form element so we call onBlur()
110
110
  // when we feel the events are appropriate
111
- if (this.props.onBlur) {
112
- this.props.onBlur();
111
+ if (_this.props.onBlur) {
112
+ _this.props.onBlur();
113
113
  }
114
114
  });
115
- (0, _defineProperty2.default)(this, "_removeItem", (item, e) => {
115
+ (0, _defineProperty2["default"])(_this, "_removeItem", function (item, e) {
116
116
  // only used when multiSelect = true
117
117
  e.preventDefault();
118
118
  e.stopPropagation();
119
- const multiSelectedItems = (0, _utils.toArray)(this.props.selectedItems);
120
- const index = multiSelectedItems.findIndex(t => t === item);
119
+ var multiSelectedItems = (0, _utils.toArray)(_this.props.selectedItems);
120
+ var index = multiSelectedItems.findIndex(function (t) {
121
+ return t === item;
122
+ });
121
123
  if (index < 0) {
122
124
  return;
123
125
  }
124
- const items = [...multiSelectedItems.slice(0, index), ...multiSelectedItems.slice(index + 1, multiSelectedItems.length)];
125
- this.props.onChange(items);
126
- if (this.props.closeOnSelect) {
127
- this.setState({
126
+ var items = [].concat((0, _toConsumableArray2["default"])(multiSelectedItems.slice(0, index)), (0, _toConsumableArray2["default"])(multiSelectedItems.slice(index + 1, multiSelectedItems.length)));
127
+ _this.props.onChange(items);
128
+ if (_this.props.closeOnSelect) {
129
+ _this.setState({
128
130
  showTypeahead: false
129
131
  });
130
- this._onBlur();
132
+ _this._onBlur();
131
133
  }
132
134
  });
133
- (0, _defineProperty2.default)(this, "_selectItem", item => {
134
- const getValue = _accessor.default.generateOptionToStringFor(this.props.getOptionValue || this.props.displayOption);
135
- const previousSelected = (0, _utils.toArray)(this.props.selectedItems);
136
- if (this.props.multiSelect) {
137
- const items = (0, _uniqBy.default)(previousSelected.concat((0, _utils.toArray)(item)), getValue);
138
- this.props.onChange(items);
135
+ (0, _defineProperty2["default"])(_this, "_selectItem", function (item) {
136
+ var getValue = _accessor["default"].generateOptionToStringFor(_this.props.getOptionValue || _this.props.displayOption);
137
+ var previousSelected = (0, _utils.toArray)(_this.props.selectedItems);
138
+ if (_this.props.multiSelect) {
139
+ var items = (0, _uniqBy["default"])(previousSelected.concat((0, _utils.toArray)(item)), getValue);
140
+ _this.props.onChange(items);
139
141
  } else {
140
- this.props.onChange(getValue(item));
142
+ _this.props.onChange(getValue(item));
141
143
  }
142
- if (this.props.closeOnSelect) {
143
- this.setState({
144
+ if (_this.props.closeOnSelect) {
145
+ _this.setState({
144
146
  showTypeahead: false
145
147
  });
146
- this._onBlur();
148
+ _this._onBlur();
147
149
  }
148
150
  });
149
- (0, _defineProperty2.default)(this, "_onErase", e => {
151
+ (0, _defineProperty2["default"])(_this, "_onErase", function (e) {
150
152
  e.stopPropagation();
151
- this.props.onChange(null);
153
+ _this.props.onChange(null);
152
154
  });
153
- (0, _defineProperty2.default)(this, "_showTypeahead", e => {
155
+ (0, _defineProperty2["default"])(_this, "_showTypeahead", function (e) {
154
156
  e.stopPropagation();
155
- if (!this.props.disabled && !this.props.isLoading) {
156
- if (!this.state.showTypeahead && this.props.onFocus) {
157
- this.props.onFocus();
157
+ if (!_this.props.disabled && !_this.props.isLoading) {
158
+ if (!_this.state.showTypeahead && _this.props.onFocus) {
159
+ _this.props.onFocus();
158
160
  }
159
- this.setState({
161
+ _this.setState({
160
162
  showTypeahead: true
161
163
  });
162
164
  }
163
165
  });
166
+ return _this;
164
167
  }
165
- _hideTypeahead() {
166
- this.setState({
167
- showTypeahead: false
168
- });
169
- this._onBlur();
170
- }
171
- _renderDropdown(intl) {
172
- const {
173
- placement = 'bottom'
174
- } = this.props;
175
- return /*#__PURE__*/_react.default.createElement(DropdownWrapper, {
176
- placement: placement
177
- }, /*#__PURE__*/_react.default.createElement(_typeahead.default, {
178
- customClasses: {
179
- results: 'list-selector',
180
- input: 'typeahead__input',
181
- listItem: 'list__item',
182
- listAnchor: 'list__item__anchor'
183
- },
184
- options: this.props.options,
185
- filterOption: this.props.filterOption,
186
- fixedOptions: this.props.fixedOptions,
187
- placeholder: this.props.typeaheadPlaceholder || intl ? intl.formatMessage({
188
- id: 'placeholder.search'
189
- }) : 'Search',
190
- onOptionSelected: this._selectItem,
191
- customListComponent: this.props.DropDownRenderComponent,
192
- customListHeaderComponent: this.props.DropdownHeaderComponent,
193
- customListItemComponent: this.props.DropDownLineItemRenderComponent,
194
- displayOption: _accessor.default.generateOptionToStringFor(this.props.displayOption),
195
- searchable: this.props.searchable,
196
- showOptionsWhenEmpty: true,
197
- selectedItems: (0, _utils.toArray)(this.props.selectedItems),
198
- light: this.props.inputTheme === 'light',
199
- withSubOptions: this.props.withSubOptions
200
- }));
201
- }
202
- render() {
203
- const selected = (0, _utils.toArray)(this.props.selectedItems);
204
- const hasValue = selected.length;
205
- const displayOption = _accessor.default.generateOptionToStringFor(this.props.displayOption);
206
- const {
207
- inputTheme = 'primary',
208
- DropDownLineItemRenderComponent = _dropdownList.ListItem
209
- } = this.props;
210
- const dropdownSelectProps = {
211
- className: (0, _classnames.default)({
212
- active: this.state.showTypeahead
213
- }),
214
- displayOption,
215
- disabled: this.props.disabled,
216
- onClick: this._showTypeahead,
217
- error: this.props.isError,
218
- inputTheme: inputTheme,
219
- size: this.props.size
220
- };
221
- const intl = this.props.intl;
222
- return /*#__PURE__*/_react.default.createElement("div", {
223
- className: "item-selector"
224
- }, /*#__PURE__*/_react.default.createElement("div", {
225
- style: {
226
- position: 'relative'
227
- }
228
- }, this.props.multiSelect ? /*#__PURE__*/_react.default.createElement(_chickletedInput.default, (0, _extends2.default)({}, dropdownSelectProps, {
229
- selectedItems: (0, _utils.toArray)(this.props.selectedItems),
230
- placeholder: this.props.placeholder,
231
- removeItem: this._removeItem,
232
- CustomChickletComponent: this.props.CustomChickletComponent,
233
- inputTheme: inputTheme
234
- })) :
235
- /*#__PURE__*/
236
- // @ts-expect-error
237
- _react.default.createElement(StyledDropdownSelect, dropdownSelectProps, /*#__PURE__*/_react.default.createElement(DropdownSelectValue, {
238
- hasPlaceholder: !hasValue,
239
- inputTheme: inputTheme,
240
- className: "item-selector__dropdown__value"
241
- }, hasValue ? /*#__PURE__*/_react.default.createElement(DropDownLineItemRenderComponent, {
242
- displayOption: displayOption,
243
- value: selected[0],
244
- light: inputTheme === 'light'
245
- }) : /*#__PURE__*/_react.default.createElement(_localization.FormattedMessage, {
246
- id: this.props.placeholder || 'placeholder.selectValue'
247
- })), this.props.erasable && hasValue ? /*#__PURE__*/_react.default.createElement(DropdownSelectActionRight, null, this.props.isLoading ? /*#__PURE__*/_react.default.createElement(_loadingSpinner.default, {
248
- size: 18,
249
- strokeWidth: 2,
250
- gap: 0
251
- }) : /*#__PURE__*/_react.default.createElement(_icons.Delete, {
252
- height: "12px",
253
- onClick: this._onErase
254
- })) : this.props.showArrow ? /*#__PURE__*/_react.default.createElement(DropdownSelectActionRight, null, /*#__PURE__*/_react.default.createElement(_icons.ArrowDown, {
255
- height: "14px",
256
- onClick: this._showTypeahead
257
- })) : null), this.state.showTypeahead && this._renderDropdown(intl)));
258
- }
259
- }
260
- (0, _defineProperty2.default)(ItemSelector, "defaultProps", {
168
+ (0, _inherits2["default"])(ItemSelector, _Component);
169
+ return (0, _createClass2["default"])(ItemSelector, [{
170
+ key: "_hideTypeahead",
171
+ value: function _hideTypeahead() {
172
+ this.setState({
173
+ showTypeahead: false
174
+ });
175
+ this._onBlur();
176
+ }
177
+ }, {
178
+ key: "_renderDropdown",
179
+ value: function _renderDropdown(intl) {
180
+ var _this$props$placement = this.props.placement,
181
+ placement = _this$props$placement === void 0 ? 'bottom' : _this$props$placement;
182
+ return /*#__PURE__*/_react["default"].createElement(DropdownWrapper, {
183
+ placement: placement
184
+ }, /*#__PURE__*/_react["default"].createElement(_typeahead["default"], {
185
+ customClasses: {
186
+ results: 'list-selector',
187
+ input: 'typeahead__input',
188
+ listItem: 'list__item',
189
+ listAnchor: 'list__item__anchor'
190
+ },
191
+ options: this.props.options,
192
+ filterOption: this.props.filterOption,
193
+ fixedOptions: this.props.fixedOptions,
194
+ placeholder: this.props.typeaheadPlaceholder || intl ? intl.formatMessage({
195
+ id: 'placeholder.search'
196
+ }) : 'Search',
197
+ onOptionSelected: this._selectItem,
198
+ customListComponent: this.props.DropDownRenderComponent,
199
+ customListHeaderComponent: this.props.DropdownHeaderComponent,
200
+ customListItemComponent: this.props.DropDownLineItemRenderComponent,
201
+ displayOption: _accessor["default"].generateOptionToStringFor(this.props.displayOption),
202
+ searchable: this.props.searchable,
203
+ showOptionsWhenEmpty: true,
204
+ selectedItems: (0, _utils.toArray)(this.props.selectedItems),
205
+ light: this.props.inputTheme === 'light',
206
+ withSubOptions: this.props.withSubOptions
207
+ }));
208
+ }
209
+ }, {
210
+ key: "render",
211
+ value: function render() {
212
+ var selected = (0, _utils.toArray)(this.props.selectedItems);
213
+ var hasValue = selected.length;
214
+ var displayOption = _accessor["default"].generateOptionToStringFor(this.props.displayOption);
215
+ var _this$props = this.props,
216
+ _this$props$inputThem = _this$props.inputTheme,
217
+ inputTheme = _this$props$inputThem === void 0 ? 'primary' : _this$props$inputThem,
218
+ _this$props$DropDownL = _this$props.DropDownLineItemRenderComponent,
219
+ DropDownLineItemRenderComponent = _this$props$DropDownL === void 0 ? _dropdownList.ListItem : _this$props$DropDownL;
220
+ var dropdownSelectProps = {
221
+ className: (0, _classnames["default"])({
222
+ active: this.state.showTypeahead
223
+ }),
224
+ displayOption: displayOption,
225
+ disabled: this.props.disabled,
226
+ onClick: this._showTypeahead,
227
+ error: this.props.isError,
228
+ inputTheme: inputTheme,
229
+ size: this.props.size
230
+ };
231
+ var intl = this.props.intl;
232
+ return /*#__PURE__*/_react["default"].createElement("div", {
233
+ className: "item-selector"
234
+ }, /*#__PURE__*/_react["default"].createElement("div", {
235
+ style: {
236
+ position: 'relative'
237
+ }
238
+ }, this.props.multiSelect ? /*#__PURE__*/_react["default"].createElement(_chickletedInput["default"], (0, _extends2["default"])({}, dropdownSelectProps, {
239
+ selectedItems: (0, _utils.toArray)(this.props.selectedItems),
240
+ placeholder: this.props.placeholder,
241
+ removeItem: this._removeItem,
242
+ CustomChickletComponent: this.props.CustomChickletComponent,
243
+ inputTheme: inputTheme
244
+ })) :
245
+ /*#__PURE__*/
246
+ // @ts-expect-error
247
+ _react["default"].createElement(StyledDropdownSelect, dropdownSelectProps, /*#__PURE__*/_react["default"].createElement(DropdownSelectValue, {
248
+ hasPlaceholder: !hasValue,
249
+ inputTheme: inputTheme,
250
+ className: "item-selector__dropdown__value"
251
+ }, hasValue ? /*#__PURE__*/_react["default"].createElement(DropDownLineItemRenderComponent, {
252
+ displayOption: displayOption,
253
+ value: selected[0],
254
+ light: inputTheme === 'light'
255
+ }) : /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
256
+ id: this.props.placeholder || 'placeholder.selectValue'
257
+ })), this.props.erasable && hasValue ? /*#__PURE__*/_react["default"].createElement(DropdownSelectActionRight, null, this.props.isLoading ? /*#__PURE__*/_react["default"].createElement(_loadingSpinner["default"], {
258
+ size: 18,
259
+ strokeWidth: 2,
260
+ gap: 0
261
+ }) : /*#__PURE__*/_react["default"].createElement(_icons.Delete, {
262
+ height: "12px",
263
+ onClick: this._onErase
264
+ })) : this.props.showArrow ? /*#__PURE__*/_react["default"].createElement(DropdownSelectActionRight, null, /*#__PURE__*/_react["default"].createElement(_icons.ArrowDown, {
265
+ height: "14px",
266
+ onClick: this._showTypeahead
267
+ })) : null), this.state.showTypeahead && this._renderDropdown(intl)));
268
+ }
269
+ }]);
270
+ }(_react.Component);
271
+ (0, _defineProperty2["default"])(ItemSelector, "defaultProps", {
261
272
  multiSelect: true,
262
273
  placeholder: 'placeholder.enterValue',
263
274
  closeOnSelect: true,
264
275
  searchable: true,
265
- DropDownRenderComponent: _dropdownList.default,
276
+ DropDownRenderComponent: _dropdownList["default"],
266
277
  DropDownLineItemRenderComponent: _dropdownList.ListItem,
267
278
  withSubOptions: false
268
279
  });
269
- const ItemSelectorListen = exports.ItemSelectorListen = (0, _reactOnclickoutside.default)(ItemSelector);
270
- var _default = exports.default = (0, _reactIntl.injectIntl)((0, _reactOnclickoutside.default)(ItemSelector));
271
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdW5pcUJ5IiwiX3JlYWN0T25jbGlja291dHNpZGUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9hY2Nlc3NvciIsIl9jaGlja2xldGVkSW5wdXQiLCJfdHlwZWFoZWFkIiwiX2ljb25zIiwiX2xvYWRpbmdTcGlubmVyIiwiX2Ryb3Bkb3duTGlzdCIsIl91dGlscyIsIl9yZWFjdEludGwiLCJfbG9jYWxpemF0aW9uIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU3R5bGVkRHJvcGRvd25TZWxlY3QiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJwcm9wcyIsImlucHV0VGhlbWUiLCJ0aGVtZSIsInNlY29uZGFyeUlucHV0IiwiaW5wdXRMVCIsImlucHV0Iiwic2l6ZSIsImlucHV0Qm94SGVpZ2h0U21hbGwiLCJpbnB1dEJveEhlaWdodCIsImRyb3Bkb3duTGlzdEFuY2hvciIsIkRyb3Bkb3duU2VsZWN0VmFsdWUiLCJzcGFuIiwiaGFzUGxhY2Vob2xkZXIiLCJzZWxlY3RDb2xvclBsYWNlSG9sZGVyTFQiLCJzZWxlY3RDb2xvclBsYWNlSG9sZGVyIiwic2VsZWN0Q29sb3JMVCIsInNlbGVjdENvbG9yIiwiZHJvcGRvd25MaXN0SXRlbUxUIiwiZHJvcGRvd25MaXN0SXRlbSIsImRyb3Bkb3duTGlzdEFuY2hvckxUIiwiRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodCIsInN1YnRleHRDb2xvciIsInRleHRDb2xvciIsIkRyb3Bkb3duV3JhcHBlciIsImRyb3Bkb3duV3JhcHBlcloiLCJwbGFjZW1lbnQiLCJkcm9wZG93bldhcHBlck1hcmdpbiIsInByZXZlbnRDbG9zZVNlbGVjdG9yIiwiSXRlbVNlbGVjdG9yIiwiQ29tcG9uZW50IiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkyIiwic2hvd1R5cGVhaGVhZCIsIl9lJHRhcmdldCIsIl9lJHRhcmdldCRjbGFzc0xpc3QiLCJ0YXJnZXQiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIl9oaWRlVHlwZWFoZWFkIiwib25CbHVyIiwiaXRlbSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwibXVsdGlTZWxlY3RlZEl0ZW1zIiwidG9BcnJheSIsInNlbGVjdGVkSXRlbXMiLCJpbmRleCIsImZpbmRJbmRleCIsIml0ZW1zIiwic2xpY2UiLCJsZW5ndGgiLCJvbkNoYW5nZSIsImNsb3NlT25TZWxlY3QiLCJzZXRTdGF0ZSIsIl9vbkJsdXIiLCJnZXRWYWx1ZSIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwiZGlzcGxheU9wdGlvbiIsInByZXZpb3VzU2VsZWN0ZWQiLCJtdWx0aVNlbGVjdCIsInVuaXFCeSIsImNvbmNhdCIsImRpc2FibGVkIiwiaXNMb2FkaW5nIiwic3RhdGUiLCJvbkZvY3VzIiwiX3JlbmRlckRyb3Bkb3duIiwiaW50bCIsImNyZWF0ZUVsZW1lbnQiLCJjdXN0b21DbGFzc2VzIiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsIm9wdGlvbnMiLCJmaWx0ZXJPcHRpb24iLCJmaXhlZE9wdGlvbnMiLCJwbGFjZWhvbGRlciIsInR5cGVhaGVhZFBsYWNlaG9sZGVyIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwib25PcHRpb25TZWxlY3RlZCIsIl9zZWxlY3RJdGVtIiwiY3VzdG9tTGlzdENvbXBvbmVudCIsIkRyb3BEb3duUmVuZGVyQ29tcG9uZW50IiwiY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCIsIkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50IiwiY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQiLCJEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50Iiwic2VhcmNoYWJsZSIsInNob3dPcHRpb25zV2hlbkVtcHR5IiwibGlnaHQiLCJ3aXRoU3ViT3B0aW9ucyIsInJlbmRlciIsInNlbGVjdGVkIiwiaGFzVmFsdWUiLCJMaXN0SXRlbSIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJjbGFzc25hbWVzIiwiYWN0aXZlIiwib25DbGljayIsIl9zaG93VHlwZWFoZWFkIiwiZXJyb3IiLCJpc0Vycm9yIiwic3R5bGUiLCJwb3NpdGlvbiIsIl9leHRlbmRzMiIsInJlbW92ZUl0ZW0iLCJfcmVtb3ZlSXRlbSIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwidmFsdWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiZXJhc2FibGUiLCJzdHJva2VXaWR0aCIsImdhcCIsIkRlbGV0ZSIsImhlaWdodCIsIl9vbkVyYXNlIiwic2hvd0Fycm93IiwiQXJyb3dEb3duIiwiRHJvcGRvd25MaXN0IiwiSXRlbVNlbGVjdG9yTGlzdGVuIiwibGlzdGVuc1RvQ2xpY2tPdXRzaWRlIiwiX2RlZmF1bHQiLCJpbmplY3RJbnRsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDb21wb25lbnRUeXBlLCBNb3VzZUV2ZW50SGFuZGxlcn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC91bmlxQnknO1xuaW1wb3J0IGxpc3RlbnNUb0NsaWNrT3V0c2lkZSBmcm9tICdyZWFjdC1vbmNsaWNrb3V0c2lkZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IEFjY2Vzc29yIGZyb20gJy4vYWNjZXNzb3InO1xuaW1wb3J0IENoaWNrbGV0ZWRJbnB1dCBmcm9tICcuL2NoaWNrbGV0ZWQtaW5wdXQnO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuL3R5cGVhaGVhZCc7XG5pbXBvcnQge0RlbGV0ZSwgQXJyb3dEb3dufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgTG9hZGluZ1NwaW5uZXIgZnJvbSAnY29tcG9uZW50cy9jb21tb24vbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcblxuaW1wb3J0IHt0b0FycmF5fSBmcm9tICd1dGlscy91dGlscyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5cbmludGVyZmFjZSBTdHlsZWREcm9wZG93blNlbGVjdCB7XG4gIGlucHV0VGhlbWU/OiBzdHJpbmc7XG4gIHNpemU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWREcm9wZG93blNlbGVjdCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdpdGVtLXNlbGVjdG9yX19kcm9wZG93bidcbn0pPFN0eWxlZERyb3Bkb3duU2VsZWN0PmBcbiAgJHtwcm9wcyA9PlxuICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdzZWNvbmRhcnknXG4gICAgICA/IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0XG4gICAgICA6IHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuaW5wdXRMVFxuICAgICAgOiBwcm9wcy50aGVtZS5pbnB1dH07XG5cbiAgaGVpZ2h0OiAke3Byb3BzID0+XG4gICAgcHJvcHMuc2l6ZSA9PT0gJ3NtYWxsJyA/IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0U21hbGwgOiBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodH07XG5cbiAgLmxpc3RfX2l0ZW1fX2FuY2hvciB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3J9O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25TZWxlY3RWYWx1ZVByb3BzIHtcbiAgaGFzUGxhY2Vob2xkZXI/OiBib29sZWFuO1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBEcm9wZG93blNlbGVjdFZhbHVlID0gc3R5bGVkLnNwYW48RHJvcGRvd25TZWxlY3RWYWx1ZVByb3BzPmBcbiAgY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5oYXNQbGFjZWhvbGRlciAmJiBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICA/IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yUGxhY2VIb2xkZXJMVFxuICAgICAgOiBwcm9wcy5oYXNQbGFjZWhvbGRlclxuICAgICAgPyBwcm9wcy50aGVtZS5zZWxlY3RDb2xvclBsYWNlSG9sZGVyXG4gICAgICA6IHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuc2VsZWN0Q29sb3JMVFxuICAgICAgOiBwcm9wcy50aGVtZS5zZWxlY3RDb2xvcn07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIC5saXN0X19pdGVtIHtcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbUxUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gIH1cblxuICAubGlzdF9faXRlbV9fYW5jaG9yIHtcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICAgID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QW5jaG9yTFRcbiAgICAgICAgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3J9O1xuICB9XG5gO1xuXG5jb25zdCBEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0ID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG5cbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25XcmFwcGVyUHJvcHMge1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG59XG5cbmNvbnN0IERyb3Bkb3duV3JhcHBlciA9IHN0eWxlZC5kaXY8RHJvcGRvd25XcmFwcGVyUHJvcHM+YFxuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclp9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMucGxhY2VtZW50ID09PSAndG9wJyA/IHByb3BzLnRoZW1lLmlucHV0Qm94SGVpZ2h0IDogJ2F1dG8nKX07XG4gIG1hcmdpbi10b3A6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5wbGFjZW1lbnQgPT09ICdib3R0b20nID8gYCR7cHJvcHMudGhlbWUuZHJvcGRvd25XYXBwZXJNYXJnaW59cHhgIDogJ2F1dG8nfTtcbiAgbWFyZ2luLWJvdHRvbTogJHtwcm9wcyA9PlxuICAgIHByb3BzLnBsYWNlbWVudCA9PT0gJ3RvcCcgPyBgJHtwcm9wcy50aGVtZS5kcm9wZG93bldhcHBlck1hcmdpbn1weGAgOiAnYXV0byd9O1xuYDtcblxuLy8gVGhlIGl0ZW0tc2VsZWN0b3IgY29tcG9uZW50IGRpc21vdW50IGFsbCBpdHMgY2hpbGRyZW4gaWYgeW91IGNsaWNrIG91dHNpZGUgb2YgdGhlIGNvbXBvbmVudCBiZWNhdXNlIG9mIGxpc3RlbnNUb0NsaWNrT3V0c2lkZSBmdW5jdGlvbi5cbi8vIElmIHlvdSB3YW50IHRvIHByZXZlbnQgdGhpcyBiZWhhdmlvdXIgd2hlbiB5b3UgY2xpY2sgb24gYSBjaGlsZCBhZGQgdGhpcyBjbGFzcyB0byBpdC5cbi8vIEl0IGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSwgd2hlbiB5b3UgYWRkIHRoZSBjaGlsZCBjb21wb25lbnQgb24gdGhlIHRvcCBvZiB0cmVlIHdpdGggYSBQb3J0YWwgYXMgZHJvcGRvd24tbGlzdCBkb2VzIHdpdGggaXRlbS1zZWxlY3Rvci1zdWJtZW51XG5leHBvcnQgY29uc3QgcHJldmVudENsb3NlU2VsZWN0b3IgPSAncHJldmVudF9fY2xvc2VfX3NlbGVjdG9yJztcblxudHlwZSBJdGVtU2VsZWN0b3JQcm9wcyA9IHtcbiAgc2VsZWN0ZWRJdGVtcz86XG4gICAgfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3Q+XG4gICAgfCBzdHJpbmdcbiAgICB8IG51bWJlclxuICAgIHwgYm9vbGVhblxuICAgIHwgb2JqZWN0XG4gICAgfCBudWxsO1xuICBvcHRpb25zOiBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3Q+O1xuICBvbkNoYW5nZTogKFxuICAgIGl0ZW1zOlxuICAgICAgfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3Q+XG4gICAgICB8IHN0cmluZ1xuICAgICAgfCBudW1iZXJcbiAgICAgIHwgYm9vbGVhblxuICAgICAgfCBvYmplY3RcbiAgICAgIHwgbnVsbFxuICApID0+IHZvaWQ7XG4gIGZpeGVkT3B0aW9ucz86IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdD4gfCBudWxsO1xuICBlcmFzYWJsZT86IGJvb2xlYW47XG4gIHNob3dBcnJvdz86IGJvb2xlYW47XG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICBkaXNwbGF5T3B0aW9uPzogc3RyaW5nIHwgKChvcHQ6IGFueSkgPT4gYW55KTtcbiAgZ2V0T3B0aW9uVmFsdWU/OiBzdHJpbmcgfCAoKG9wdDogYW55KSA9PiBhbnkpO1xuICBmaWx0ZXJPcHRpb24/OiBzdHJpbmcgfCAoKG9wdDogYW55KSA9PiBhbnkpO1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNFcnJvcj86IGJvb2xlYW47XG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIG11bHRpU2VsZWN0PzogYm9vbGVhbjtcbiAgaW5wdXRUaGVtZT86IHN0cmluZztcbiAgc2l6ZT86IHN0cmluZztcbiAgb25CbHVyPzogKCkgPT4gdm9pZDtcbiAgb25Gb2N1cz86ICgpID0+IHZvaWQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjbG9zZU9uU2VsZWN0PzogYm9vbGVhbjtcbiAgdHlwZWFoZWFkUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIERyb3Bkb3duSGVhZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+IHwgbnVsbDtcbiAgRHJvcERvd25SZW5kZXJDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT47XG4gIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT47XG4gIEN1c3RvbUNoaWNrbGV0Q29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBpbnRsOiBJbnRsU2hhcGU7XG4gIHdpdGhTdWJPcHRpb25zPzogYm9vbGVhbjtcbn07XG5cbmNsYXNzIEl0ZW1TZWxlY3RvciBleHRlbmRzIENvbXBvbmVudDxJdGVtU2VsZWN0b3JQcm9wcz4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXIuZW50ZXJWYWx1ZScsXG4gICAgY2xvc2VPblNlbGVjdDogdHJ1ZSxcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIERyb3BEb3duUmVuZGVyQ29tcG9uZW50OiBEcm9wZG93bkxpc3QsXG4gICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgd2l0aFN1Yk9wdGlvbnM6IGZhbHNlXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc2hvd1R5cGVhaGVhZDogZmFsc2VcbiAgfTtcblxuICBoYW5kbGVDbGlja091dHNpZGUgPSBlID0+IHtcbiAgICBpZiAoZT8udGFyZ2V0Py5jbGFzc0xpc3Q/LmNvbnRhaW5zKHByZXZlbnRDbG9zZVNlbGVjdG9yKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9oaWRlVHlwZWFoZWFkKCk7XG4gIH07XG5cbiAgX2hpZGVUeXBlYWhlYWQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICB0aGlzLl9vbkJsdXIoKTtcbiAgfVxuXG4gIF9vbkJsdXIgPSAoKSA9PiB7XG4gICAgLy8gbm90ZTogY2hpY2tsZXRlZCBpbnB1dCBpcyBub3QgYSByZWFsIGZvcm0gZWxlbWVudCBzbyB3ZSBjYWxsIG9uQmx1cigpXG4gICAgLy8gd2hlbiB3ZSBmZWVsIHRoZSBldmVudHMgYXJlIGFwcHJvcHJpYXRlXG4gICAgaWYgKHRoaXMucHJvcHMub25CbHVyKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfcmVtb3ZlSXRlbSA9IChpdGVtLCBlKSA9PiB7XG4gICAgLy8gb25seSB1c2VkIHdoZW4gbXVsdGlTZWxlY3QgPSB0cnVlXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3QgbXVsdGlTZWxlY3RlZEl0ZW1zID0gdG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpO1xuICAgIGNvbnN0IGluZGV4ID0gbXVsdGlTZWxlY3RlZEl0ZW1zLmZpbmRJbmRleCh0ID0+IHQgPT09IGl0ZW0pO1xuXG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gW1xuICAgICAgLi4ubXVsdGlTZWxlY3RlZEl0ZW1zLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgIC4uLm11bHRpU2VsZWN0ZWRJdGVtcy5zbGljZShpbmRleCArIDEsIG11bHRpU2VsZWN0ZWRJdGVtcy5sZW5ndGgpXG4gICAgXTtcblxuICAgIHRoaXMucHJvcHMub25DaGFuZ2UoaXRlbXMpO1xuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICAgIHRoaXMuX29uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfc2VsZWN0SXRlbSA9IGl0ZW0gPT4ge1xuICAgIGNvbnN0IGdldFZhbHVlID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvcihcbiAgICAgIHRoaXMucHJvcHMuZ2V0T3B0aW9uVmFsdWUgfHwgdGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uXG4gICAgKTtcblxuICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWQgPSB0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5tdWx0aVNlbGVjdCkge1xuICAgICAgY29uc3QgaXRlbXMgPSB1bmlxQnkocHJldmlvdXNTZWxlY3RlZC5jb25jYXQodG9BcnJheShpdGVtKSksIGdldFZhbHVlKTtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGdldFZhbHVlKGl0ZW0pKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiBmYWxzZX0pO1xuICAgICAgdGhpcy5fb25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9vbkVyYXNlOiBNb3VzZUV2ZW50SGFuZGxlciA9IGUgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShudWxsKTtcbiAgfTtcblxuICBfc2hvd1R5cGVhaGVhZDogTW91c2VFdmVudEhhbmRsZXIgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wcm9wcy5kaXNhYmxlZCAmJiAhdGhpcy5wcm9wcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICghdGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkICYmIHRoaXMucHJvcHMub25Gb2N1cykge1xuICAgICAgICB0aGlzLnByb3BzLm9uRm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzaG93VHlwZWFoZWFkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlckRyb3Bkb3duKGludGw6IEludGxTaGFwZSkge1xuICAgIGNvbnN0IHtwbGFjZW1lbnQgPSAnYm90dG9tJ30gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8RHJvcGRvd25XcmFwcGVyIHBsYWNlbWVudD17cGxhY2VtZW50fT5cbiAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgICAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9wdGlvbnM9e3RoaXMucHJvcHMub3B0aW9uc31cbiAgICAgICAgICBmaWx0ZXJPcHRpb249e3RoaXMucHJvcHMuZmlsdGVyT3B0aW9ufVxuICAgICAgICAgIGZpeGVkT3B0aW9ucz17dGhpcy5wcm9wcy5maXhlZE9wdGlvbnN9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgdGhpcy5wcm9wcy50eXBlYWhlYWRQbGFjZWhvbGRlciB8fCBpbnRsXG4gICAgICAgICAgICAgID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ3BsYWNlaG9sZGVyLnNlYXJjaCd9KVxuICAgICAgICAgICAgICA6ICdTZWFyY2gnXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e3RoaXMuX3NlbGVjdEl0ZW19XG4gICAgICAgICAgY3VzdG9tTGlzdENvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93blJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50fVxuICAgICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgZGlzcGxheU9wdGlvbj17QWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pfVxuICAgICAgICAgIHNlYXJjaGFibGU9e3RoaXMucHJvcHMuc2VhcmNoYWJsZX1cbiAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnfVxuICAgICAgICAgIHdpdGhTdWJPcHRpb25zPXt0aGlzLnByb3BzLndpdGhTdWJPcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgPC9Ecm9wZG93bldyYXBwZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9IHNlbGVjdGVkLmxlbmd0aDtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pO1xuICAgIGNvbnN0IHtpbnB1dFRoZW1lID0gJ3ByaW1hcnknLCBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50ID0gTGlzdEl0ZW19ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRyb3Bkb3duU2VsZWN0UHJvcHMgPSB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoe1xuICAgICAgICBhY3RpdmU6IHRoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZFxuICAgICAgfSksXG4gICAgICBkaXNwbGF5T3B0aW9uLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMucHJvcHMuZGlzYWJsZWQsXG4gICAgICBvbkNsaWNrOiB0aGlzLl9zaG93VHlwZWFoZWFkLFxuICAgICAgZXJyb3I6IHRoaXMucHJvcHMuaXNFcnJvcixcbiAgICAgIGlucHV0VGhlbWU6IGlucHV0VGhlbWUsXG4gICAgICBzaXplOiB0aGlzLnByb3BzLnNpemVcbiAgICB9O1xuICAgIGNvbnN0IGludGwgPSB0aGlzLnByb3BzLmludGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJpdGVtLXNlbGVjdG9yXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319PlxuICAgICAgICAgIHsvKiB0aGlzIHBhcnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBsYWJlbCAqL31cbiAgICAgICAgICB7dGhpcy5wcm9wcy5tdWx0aVNlbGVjdCA/IChcbiAgICAgICAgICAgIDxDaGlja2xldGVkSW5wdXRcbiAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIHJlbW92ZUl0ZW09e3RoaXMuX3JlbW92ZUl0ZW19XG4gICAgICAgICAgICAgIEN1c3RvbUNoaWNrbGV0Q29tcG9uZW50PXt0aGlzLnByb3BzLkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50fVxuICAgICAgICAgICAgICBpbnB1dFRoZW1lPXtpbnB1dFRoZW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgPFN0eWxlZERyb3Bkb3duU2VsZWN0IHsuLi5kcm9wZG93blNlbGVjdFByb3BzfT5cbiAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0VmFsdWVcbiAgICAgICAgICAgICAgICBoYXNQbGFjZWhvbGRlcj17IWhhc1ZhbHVlfVxuICAgICAgICAgICAgICAgIGlucHV0VGhlbWU9e2lucHV0VGhlbWV9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd25fX3ZhbHVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtoYXNWYWx1ZSA/IChcbiAgICAgICAgICAgICAgICAgIDxEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e2Rpc3BsYXlPcHRpb259XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFswXX1cbiAgICAgICAgICAgICAgICAgICAgbGlnaHQ9e2lucHV0VGhlbWUgPT09ICdsaWdodCd9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17dGhpcy5wcm9wcy5wbGFjZWhvbGRlciB8fCAncGxhY2Vob2xkZXIuc2VsZWN0VmFsdWUnfSAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RWYWx1ZT5cbiAgICAgICAgICAgICAge3RoaXMucHJvcHMuZXJhc2FibGUgJiYgaGFzVmFsdWUgPyAoXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5pc0xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciBzaXplPXsxOH0gc3Ryb2tlV2lkdGg9ezJ9IGdhcD17MH0gLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e3RoaXMuX29uRXJhc2V9IC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgKSA6IHRoaXMucHJvcHMuc2hvd0Fycm93ID8gKFxuICAgICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxNHB4XCIgb25DbGljaz17dGhpcy5fc2hvd1R5cGVhaGVhZH0gLz5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdHlsZWREcm9wZG93blNlbGVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHsvKiB0aGlzIHBhcnQgaXMgdXNlZCB0byBidWlsdCB0aGUgbGlzdCAqL31cbiAgICAgICAgICB7dGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkICYmIHRoaXMuX3JlbmRlckRyb3Bkb3duKGludGwpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW1TZWxlY3Rvckxpc3RlbiA9IGxpc3RlbnNUb0NsaWNrT3V0c2lkZShJdGVtU2VsZWN0b3IpO1xuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChsaXN0ZW5zVG9DbGlja091dHNpZGUoSXRlbVNlbGVjdG9yKSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9CQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFNLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLGdCQUFBLEdBQUFMLHNCQUFBLENBQUFG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
280
+ var ItemSelectorListen = exports.ItemSelectorListen = (0, _reactOnclickoutside["default"])(ItemSelector);
281
+ var _default = exports["default"] = (0, _reactIntl.injectIntl)((0, _reactOnclickoutside["default"])(ItemSelector));
282
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdW5pcUJ5IiwiX3JlYWN0T25jbGlja291dHNpZGUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9hY2Nlc3NvciIsIl9jaGlja2xldGVkSW5wdXQiLCJfdHlwZWFoZWFkIiwiX2ljb25zIiwiX2xvYWRpbmdTcGlubmVyIiwiX2Ryb3Bkb3duTGlzdCIsIl91dGlscyIsIl9yZWFjdEludGwiLCJfbG9jYWxpemF0aW9uIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWREcm9wZG93blNlbGVjdCIsImV4cG9ydHMiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJpbnB1dFRoZW1lIiwidGhlbWUiLCJzZWNvbmRhcnlJbnB1dCIsImlucHV0TFQiLCJpbnB1dCIsInNpemUiLCJpbnB1dEJveEhlaWdodFNtYWxsIiwiaW5wdXRCb3hIZWlnaHQiLCJkcm9wZG93bkxpc3RBbmNob3IiLCJEcm9wZG93blNlbGVjdFZhbHVlIiwic3BhbiIsImhhc1BsYWNlaG9sZGVyIiwic2VsZWN0Q29sb3JQbGFjZUhvbGRlckxUIiwic2VsZWN0Q29sb3JQbGFjZUhvbGRlciIsInNlbGVjdENvbG9yTFQiLCJzZWxlY3RDb2xvciIsImRyb3Bkb3duTGlzdEl0ZW1MVCIsImRyb3Bkb3duTGlzdEl0ZW0iLCJkcm9wZG93bkxpc3RBbmNob3JMVCIsIkRyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3IiLCJEcm9wZG93bldyYXBwZXIiLCJkcm9wZG93bldyYXBwZXJaIiwicGxhY2VtZW50IiwiY29uY2F0IiwiZHJvcGRvd25XYXBwZXJNYXJnaW4iLCJwcmV2ZW50Q2xvc2VTZWxlY3RvciIsIkl0ZW1TZWxlY3RvciIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJzaG93VHlwZWFoZWFkIiwiX2UkdGFyZ2V0IiwiX2UkdGFyZ2V0JGNsYXNzTGlzdCIsInRhcmdldCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiX2hpZGVUeXBlYWhlYWQiLCJvbkJsdXIiLCJpdGVtIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJtdWx0aVNlbGVjdGVkSXRlbXMiLCJ0b0FycmF5Iiwic2VsZWN0ZWRJdGVtcyIsImluZGV4IiwiZmluZEluZGV4IiwiaXRlbXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJvbkNoYW5nZSIsImNsb3NlT25TZWxlY3QiLCJzZXRTdGF0ZSIsIl9vbkJsdXIiLCJnZXRWYWx1ZSIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwiZGlzcGxheU9wdGlvbiIsInByZXZpb3VzU2VsZWN0ZWQiLCJtdWx0aVNlbGVjdCIsInVuaXFCeSIsImRpc2FibGVkIiwiaXNMb2FkaW5nIiwic3RhdGUiLCJvbkZvY3VzIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsIl9yZW5kZXJEcm9wZG93biIsImludGwiLCJfdGhpcyRwcm9wcyRwbGFjZW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJsaXN0SXRlbSIsImxpc3RBbmNob3IiLCJvcHRpb25zIiwiZmlsdGVyT3B0aW9uIiwiZml4ZWRPcHRpb25zIiwicGxhY2Vob2xkZXIiLCJ0eXBlYWhlYWRQbGFjZWhvbGRlciIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfc2VsZWN0SXRlbSIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJEcm9wRG93blJlbmRlckNvbXBvbmVudCIsImN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQiLCJEcm9wZG93bkhlYWRlckNvbXBvbmVudCIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzaG93T3B0aW9uc1doZW5FbXB0eSIsImxpZ2h0Iiwid2l0aFN1Yk9wdGlvbnMiLCJyZW5kZXIiLCJzZWxlY3RlZCIsImhhc1ZhbHVlIiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRpbnB1dFRoZW0iLCJfdGhpcyRwcm9wcyREcm9wRG93bkwiLCJMaXN0SXRlbSIsImRyb3Bkb3duU2VsZWN0UHJvcHMiLCJjbGFzc25hbWVzIiwiYWN0aXZlIiwib25DbGljayIsIl9zaG93VHlwZWFoZWFkIiwiZXJyb3IiLCJpc0Vycm9yIiwic3R5bGUiLCJwb3NpdGlvbiIsIl9leHRlbmRzMiIsInJlbW92ZUl0ZW0iLCJfcmVtb3ZlSXRlbSIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwiRm9ybWF0dGVkTWVzc2FnZSIsImVyYXNhYmxlIiwic3Ryb2tlV2lkdGgiLCJnYXAiLCJEZWxldGUiLCJoZWlnaHQiLCJfb25FcmFzZSIsInNob3dBcnJvdyIsIkFycm93RG93biIsIkNvbXBvbmVudCIsIkRyb3Bkb3duTGlzdCIsIkl0ZW1TZWxlY3Rvckxpc3RlbiIsImxpc3RlbnNUb0NsaWNrT3V0c2lkZSIsIl9kZWZhdWx0IiwiaW5qZWN0SW50bCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgQ29tcG9uZW50VHlwZSwgTW91c2VFdmVudEhhbmRsZXJ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gvdW5pcUJ5JztcbmltcG9ydCBsaXN0ZW5zVG9DbGlja091dHNpZGUgZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBDaGlja2xldGVkSW5wdXQgZnJvbSAnLi9jaGlja2xldGVkLWlucHV0JztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi90eXBlYWhlYWQnO1xuaW1wb3J0IHtEZWxldGUsIEFycm93RG93bn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgRHJvcGRvd25MaXN0LCB7TGlzdEl0ZW19IGZyb20gJy4vZHJvcGRvd24tbGlzdCc7XG5cbmltcG9ydCB7dG9BcnJheX0gZnJvbSAndXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtpbmplY3RJbnRsLCBJbnRsU2hhcGV9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdsb2NhbGl6YXRpb24nO1xuXG5pbnRlcmZhY2UgU3R5bGVkRHJvcGRvd25TZWxlY3Qge1xuICBpbnB1dFRoZW1lPzogc3RyaW5nO1xuICBzaXplPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgU3R5bGVkRHJvcGRvd25TZWxlY3QgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnaXRlbS1zZWxlY3Rvcl9fZHJvcGRvd24nXG59KTxTdHlsZWREcm9wZG93blNlbGVjdD5gXG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnc2Vjb25kYXJ5J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dFxuICAgICAgOiBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICA/IHByb3BzLnRoZW1lLmlucHV0TFRcbiAgICAgIDogcHJvcHMudGhlbWUuaW5wdXR9O1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnNpemUgPT09ICdzbWFsbCcgPyBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodFNtYWxsIDogcHJvcHMudGhlbWUuaW5wdXRCb3hIZWlnaHR9O1xuXG4gIC5saXN0X19pdGVtX19hbmNob3Ige1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QW5jaG9yfTtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIERyb3Bkb3duU2VsZWN0VmFsdWVQcm9wcyB7XG4gIGhhc1BsYWNlaG9sZGVyPzogYm9vbGVhbjtcbiAgaW5wdXRUaGVtZT86IHN0cmluZztcbn1cblxuY29uc3QgRHJvcGRvd25TZWxlY3RWYWx1ZSA9IHN0eWxlZC5zcGFuPERyb3Bkb3duU2VsZWN0VmFsdWVQcm9wcz5gXG4gIGNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMuaGFzUGxhY2Vob2xkZXIgJiYgcHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWxlY3RDb2xvclBsYWNlSG9sZGVyTFRcbiAgICAgIDogcHJvcHMuaGFzUGxhY2Vob2xkZXJcbiAgICAgID8gcHJvcHMudGhlbWUuc2VsZWN0Q29sb3JQbGFjZUhvbGRlclxuICAgICAgOiBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICA/IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yTFRcbiAgICAgIDogcHJvcHMudGhlbWUuc2VsZWN0Q29sb3J9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAubGlzdF9faXRlbSB7XG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0JyA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEl0ZW1MVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEl0ZW19O1xuICB9XG5cbiAgLmxpc3RfX2l0ZW1fX2FuY2hvciB7XG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J1xuICAgICAgICA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEFuY2hvckxUXG4gICAgICAgIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QW5jaG9yfTtcbiAgfVxuYDtcblxuY29uc3QgRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuXG4gIDpob3ZlciB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIERyb3Bkb3duV3JhcHBlclByb3BzIHtcbiAgcGxhY2VtZW50Pzogc3RyaW5nO1xufVxuXG5jb25zdCBEcm9wZG93bldyYXBwZXIgPSBzdHlsZWQuZGl2PERyb3Bkb3duV3JhcHBlclByb3BzPmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLnBsYWNlbWVudCA9PT0gJ3RvcCcgPyBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodCA6ICdhdXRvJyl9O1xuICBtYXJnaW4tdG9wOiAke3Byb3BzID0+XG4gICAgcHJvcHMucGxhY2VtZW50ID09PSAnYm90dG9tJyA/IGAke3Byb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4YCA6ICdhdXRvJ307XG4gIG1hcmdpbi1ib3R0b206ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5wbGFjZW1lbnQgPT09ICd0b3AnID8gYCR7cHJvcHMudGhlbWUuZHJvcGRvd25XYXBwZXJNYXJnaW59cHhgIDogJ2F1dG8nfTtcbmA7XG5cbi8vIFRoZSBpdGVtLXNlbGVjdG9yIGNvbXBvbmVudCBkaXNtb3VudCBhbGwgaXRzIGNoaWxkcmVuIGlmIHlvdSBjbGljayBvdXRzaWRlIG9mIHRoZSBjb21wb25lbnQgYmVjYXVzZSBvZiBsaXN0ZW5zVG9DbGlja091dHNpZGUgZnVuY3Rpb24uXG4vLyBJZiB5b3Ugd2FudCB0byBwcmV2ZW50IHRoaXMgYmVoYXZpb3VyIHdoZW4geW91IGNsaWNrIG9uIGEgY2hpbGQgYWRkIHRoaXMgY2xhc3MgdG8gaXQuXG4vLyBJdCBpcyB1c2VmdWwgZm9yIGV4YW1wbGUsIHdoZW4geW91IGFkZCB0aGUgY2hpbGQgY29tcG9uZW50IG9uIHRoZSB0b3Agb2YgdHJlZSB3aXRoIGEgUG9ydGFsIGFzIGRyb3Bkb3duLWxpc3QgZG9lcyB3aXRoIGl0ZW0tc2VsZWN0b3Itc3VibWVudVxuZXhwb3J0IGNvbnN0IHByZXZlbnRDbG9zZVNlbGVjdG9yID0gJ3ByZXZlbnRfX2Nsb3NlX19zZWxlY3Rvcic7XG5cbnR5cGUgSXRlbVNlbGVjdG9yUHJvcHMgPSB7XG4gIHNlbGVjdGVkSXRlbXM/OlxuICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PlxuICAgIHwgc3RyaW5nXG4gICAgfCBudW1iZXJcbiAgICB8IGJvb2xlYW5cbiAgICB8IG9iamVjdFxuICAgIHwgbnVsbDtcbiAgb3B0aW9uczogUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PjtcbiAgb25DaGFuZ2U6IChcbiAgICBpdGVtczpcbiAgICAgIHwgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0PlxuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgbnVtYmVyXG4gICAgICB8IGJvb2xlYW5cbiAgICAgIHwgb2JqZWN0XG4gICAgICB8IG51bGxcbiAgKSA9PiB2b2lkO1xuICBmaXhlZE9wdGlvbnM/OiBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3Q+IHwgbnVsbDtcbiAgZXJhc2FibGU/OiBib29sZWFuO1xuICBzaG93QXJyb3c/OiBib29sZWFuO1xuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbj86IHN0cmluZyB8ICgob3B0OiBhbnkpID0+IGFueSk7XG4gIGdldE9wdGlvblZhbHVlPzogc3RyaW5nIHwgKChvcHQ6IGFueSkgPT4gYW55KTtcbiAgZmlsdGVyT3B0aW9uPzogc3RyaW5nIHwgKChvcHQ6IGFueSkgPT4gYW55KTtcbiAgcGxhY2VtZW50Pzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzRXJyb3I/OiBib29sZWFuO1xuICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICBtdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIGlucHV0VGhlbWU/OiBzdHJpbmc7XG4gIHNpemU/OiBzdHJpbmc7XG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIG9uRm9jdXM/OiAoKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgY2xvc2VPblNlbGVjdD86IGJvb2xlYW47XG4gIHR5cGVhaGVhZFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBEcm9wZG93bkhlYWRlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PiB8IG51bGw7XG4gIERyb3BEb3duUmVuZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBDdXN0b21DaGlja2xldENvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PjtcbiAgaW50bDogSW50bFNoYXBlO1xuICB3aXRoU3ViT3B0aW9ucz86IGJvb2xlYW47XG59O1xuXG5jbGFzcyBJdGVtU2VsZWN0b3IgZXh0ZW5kcyBDb21wb25lbnQ8SXRlbVNlbGVjdG9yUHJvcHM+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyLmVudGVyVmFsdWUnLFxuICAgIGNsb3NlT25TZWxlY3Q6IHRydWUsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudDogRHJvcGRvd25MaXN0LFxuICAgIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ6IExpc3RJdGVtLFxuICAgIHdpdGhTdWJPcHRpb25zOiBmYWxzZVxuICB9O1xuXG4gIHN0YXRlID0ge1xuICAgIHNob3dUeXBlYWhlYWQ6IGZhbHNlXG4gIH07XG5cbiAgaGFuZGxlQ2xpY2tPdXRzaWRlID0gZSA9PiB7XG4gICAgaWYgKGU/LnRhcmdldD8uY2xhc3NMaXN0Py5jb250YWlucyhwcmV2ZW50Q2xvc2VTZWxlY3RvcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5faGlkZVR5cGVhaGVhZCgpO1xuICB9O1xuXG4gIF9oaWRlVHlwZWFoZWFkKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgdGhpcy5fb25CbHVyKCk7XG4gIH1cblxuICBfb25CbHVyID0gKCkgPT4ge1xuICAgIC8vIG5vdGU6IGNoaWNrbGV0ZWQgaW5wdXQgaXMgbm90IGEgcmVhbCBmb3JtIGVsZW1lbnQgc28gd2UgY2FsbCBvbkJsdXIoKVxuICAgIC8vIHdoZW4gd2UgZmVlbCB0aGUgZXZlbnRzIGFyZSBhcHByb3ByaWF0ZVxuICAgIGlmICh0aGlzLnByb3BzLm9uQmx1cikge1xuICAgICAgdGhpcy5wcm9wcy5vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbW92ZUl0ZW0gPSAoaXRlbSwgZSkgPT4ge1xuICAgIC8vIG9ubHkgdXNlZCB3aGVuIG11bHRpU2VsZWN0ID0gdHJ1ZVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IG11bHRpU2VsZWN0ZWRJdGVtcyA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBpbmRleCA9IG11bHRpU2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgodCA9PiB0ID09PSBpdGVtKTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtcyA9IFtcbiAgICAgIC4uLm11bHRpU2VsZWN0ZWRJdGVtcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi5tdWx0aVNlbGVjdGVkSXRlbXMuc2xpY2UoaW5kZXggKyAxLCBtdWx0aVNlbGVjdGVkSXRlbXMubGVuZ3RoKVxuICAgIF07XG5cbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX3NlbGVjdEl0ZW0gPSBpdGVtID0+IHtcbiAgICBjb25zdCBnZXRWYWx1ZSA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoXG4gICAgICB0aGlzLnByb3BzLmdldE9wdGlvblZhbHVlIHx8IHRoaXMucHJvcHMuZGlzcGxheU9wdGlvblxuICAgICk7XG5cbiAgICBjb25zdCBwcmV2aW91c1NlbGVjdGVkID0gdG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgaWYgKHRoaXMucHJvcHMubXVsdGlTZWxlY3QpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdW5pcUJ5KHByZXZpb3VzU2VsZWN0ZWQuY29uY2F0KHRvQXJyYXkoaXRlbSkpLCBnZXRWYWx1ZSk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShnZXRWYWx1ZShpdGVtKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICAgIHRoaXMuX29uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfb25FcmFzZTogTW91c2VFdmVudEhhbmRsZXIgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UobnVsbCk7XG4gIH07XG5cbiAgX3Nob3dUeXBlYWhlYWQ6IE1vdXNlRXZlbnRIYW5kbGVyID0gZSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMucHJvcHMuZGlzYWJsZWQgJiYgIXRoaXMucHJvcHMuaXNMb2FkaW5nKSB7XG4gICAgICBpZiAoIXRoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZCAmJiB0aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkZvY3VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgc2hvd1R5cGVhaGVhZDogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9yZW5kZXJEcm9wZG93bihpbnRsOiBJbnRsU2hhcGUpIHtcbiAgICBjb25zdCB7cGxhY2VtZW50ID0gJ2JvdHRvbSd9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duV3JhcHBlciBwbGFjZW1lbnQ9e3BsYWNlbWVudH0+XG4gICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICBjdXN0b21DbGFzc2VzPXt7XG4gICAgICAgICAgICByZXN1bHRzOiAnbGlzdC1zZWxlY3RvcicsXG4gICAgICAgICAgICBpbnB1dDogJ3R5cGVhaGVhZF9faW5wdXQnLFxuICAgICAgICAgICAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgICAgICAgICAgIGxpc3RBbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvcHRpb25zPXt0aGlzLnByb3BzLm9wdGlvbnN9XG4gICAgICAgICAgZmlsdGVyT3B0aW9uPXt0aGlzLnByb3BzLmZpbHRlck9wdGlvbn1cbiAgICAgICAgICBmaXhlZE9wdGlvbnM9e3RoaXMucHJvcHMuZml4ZWRPcHRpb25zfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgIHRoaXMucHJvcHMudHlwZWFoZWFkUGxhY2Vob2xkZXIgfHwgaW50bFxuICAgICAgICAgICAgICA/IGludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdwbGFjZWhvbGRlci5zZWFyY2gnfSlcbiAgICAgICAgICAgICAgOiAnU2VhcmNoJ1xuICAgICAgICAgIH1cbiAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXt0aGlzLl9zZWxlY3RJdGVtfVxuICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e3RoaXMucHJvcHMuRHJvcERvd25SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wZG93bkhlYWRlckNvbXBvbmVudH1cbiAgICAgICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50fVxuICAgICAgICAgIGRpc3BsYXlPcHRpb249e0FjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IodGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uKX1cbiAgICAgICAgICBzZWFyY2hhYmxlPXt0aGlzLnByb3BzLnNlYXJjaGFibGV9XG4gICAgICAgICAgc2hvd09wdGlvbnNXaGVuRW1wdHlcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyl9XG4gICAgICAgICAgbGlnaHQ9e3RoaXMucHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J31cbiAgICAgICAgICB3aXRoU3ViT3B0aW9ucz17dGhpcy5wcm9wcy53aXRoU3ViT3B0aW9uc31cbiAgICAgICAgLz5cbiAgICAgIDwvRHJvcGRvd25XcmFwcGVyPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgY29uc3QgaGFzVmFsdWUgPSBzZWxlY3RlZC5sZW5ndGg7XG4gICAgY29uc3QgZGlzcGxheU9wdGlvbiA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IodGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uKTtcbiAgICBjb25zdCB7aW5wdXRUaGVtZSA9ICdwcmltYXJ5JywgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCA9IExpc3RJdGVtfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBkcm9wZG93blNlbGVjdFByb3BzID0ge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc25hbWVzKHtcbiAgICAgICAgYWN0aXZlOiB0aGlzLnN0YXRlLnNob3dUeXBlYWhlYWRcbiAgICAgIH0pLFxuICAgICAgZGlzcGxheU9wdGlvbixcbiAgICAgIGRpc2FibGVkOiB0aGlzLnByb3BzLmRpc2FibGVkLFxuICAgICAgb25DbGljazogdGhpcy5fc2hvd1R5cGVhaGVhZCxcbiAgICAgIGVycm9yOiB0aGlzLnByb3BzLmlzRXJyb3IsXG4gICAgICBpbnB1dFRoZW1lOiBpbnB1dFRoZW1lLFxuICAgICAgc2l6ZTogdGhpcy5wcm9wcy5zaXplXG4gICAgfTtcbiAgICBjb25zdCBpbnRsID0gdGhpcy5wcm9wcy5pbnRsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2IHN0eWxlPXt7cG9zaXRpb246ICdyZWxhdGl2ZSd9fT5cbiAgICAgICAgICB7LyogdGhpcyBwYXJ0IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgbGFiZWwgKi99XG4gICAgICAgICAge3RoaXMucHJvcHMubXVsdGlTZWxlY3QgPyAoXG4gICAgICAgICAgICA8Q2hpY2tsZXRlZElucHV0XG4gICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyl9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICByZW1vdmVJdGVtPXt0aGlzLl9yZW1vdmVJdGVtfVxuICAgICAgICAgICAgICBDdXN0b21DaGlja2xldENvbXBvbmVudD17dGhpcy5wcm9wcy5DdXN0b21DaGlja2xldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgaW5wdXRUaGVtZT17aW5wdXRUaGVtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgIDxTdHlsZWREcm9wZG93blNlbGVjdCB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc30+XG4gICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdFZhbHVlXG4gICAgICAgICAgICAgICAgaGFzUGxhY2Vob2xkZXI9eyFoYXNWYWx1ZX1cbiAgICAgICAgICAgICAgICBpbnB1dFRoZW1lPXtpbnB1dFRoZW1lfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIml0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duX192YWx1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7aGFzVmFsdWUgPyAoXG4gICAgICAgICAgICAgICAgICA8RHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRbMF19XG4gICAgICAgICAgICAgICAgICAgIGxpZ2h0PXtpbnB1dFRoZW1lID09PSAnbGlnaHQnfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e3RoaXMucHJvcHMucGxhY2Vob2xkZXIgfHwgJ3BsYWNlaG9sZGVyLnNlbGVjdFZhbHVlJ30gLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L0Ryb3Bkb3duU2VsZWN0VmFsdWU+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLmVyYXNhYmxlICYmIGhhc1ZhbHVlID8gKFxuICAgICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICAgICAge3RoaXMucHJvcHMuaXNMb2FkaW5nID8gKFxuICAgICAgICAgICAgICAgICAgICA8TG9hZGluZ1NwaW5uZXIgc2l6ZT17MTh9IHN0cm9rZVdpZHRoPXsyfSBnYXA9ezB9IC8+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8RGVsZXRlIGhlaWdodD1cIjEycHhcIiBvbkNsaWNrPXt0aGlzLl9vbkVyYXNlfSAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICkgOiB0aGlzLnByb3BzLnNob3dBcnJvdyA/IChcbiAgICAgICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgICAgIDxBcnJvd0Rvd24gaGVpZ2h0PVwiMTRweFwiIG9uQ2xpY2s9e3RoaXMuX3Nob3dUeXBlYWhlYWR9IC8+XG4gICAgICAgICAgICAgICAgPC9Ecm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvU3R5bGVkRHJvcGRvd25TZWxlY3Q+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7LyogdGhpcyBwYXJ0IGlzIHVzZWQgdG8gYnVpbHQgdGhlIGxpc3QgKi99XG4gICAgICAgICAge3RoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZCAmJiB0aGlzLl9yZW5kZXJEcm9wZG93bihpbnRsKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBJdGVtU2VsZWN0b3JMaXN0ZW4gPSBsaXN0ZW5zVG9DbGlja091dHNpZGUoSXRlbVNlbGVjdG9yKTtcbmV4cG9ydCBkZWZhdWx0IGluamVjdEludGwobGlzdGVuc1RvQ2xpY2tPdXRzaWRlKEl0ZW1TZWxlY3RvcikpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxvQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFNLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLGdCQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxlQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVyxhQUFBLEdBQUFaLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBWSxNQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxVQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFkLE9BQUE7QUFBOEMsSUFBQWUsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQW5DOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMs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