@alauda-fe/common 1.0.0-next.0 → 1.0.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/a-chart/chart.component.d.ts +1 -1
  2. package/a-chart/components/{index.d.ts → public-api.d.ts} +1 -1
  3. package/a-chart/public-api.d.ts +1 -1
  4. package/a-metric-chart/public-api.d.ts +1 -0
  5. package/a-metric-chart/types.d.ts +4 -2
  6. package/a-metric-chart/utils/util.d.ts +6 -4
  7. package/api/api-compatible.interceptor.d.ts +46 -0
  8. package/api/helpers.d.ts +1 -1
  9. package/api/k8s-api-resource.service.d.ts +1 -1
  10. package/api/k8s-api.service.d.ts +1 -1
  11. package/api/monitor-api.service.d.ts +2 -1
  12. package/api/platform-ui.service.d.ts +1 -1
  13. package/api/product.service.d.ts +1 -1
  14. package/api/project-api.service.d.ts +1 -1
  15. package/api/public-api.d.ts +1 -0
  16. package/api/resource-update.service.d.ts +1 -1
  17. package/api/types.d.ts +1 -1
  18. package/array-form-table/base-string-map-form.component.d.ts +1 -1
  19. package/array-form-table/form/component.d.ts +12 -1
  20. package/array-form-table/form/module.d.ts +1 -1
  21. package/array-form-table/key-value-form/component.d.ts +1 -1
  22. package/array-form-table/public-api.d.ts +1 -0
  23. package/array-form-table/string-array-form/component.d.ts +39 -0
  24. package/assets/icons/prod-icons.js +1 -1
  25. package/async-data/async-data-loader.d.ts +1 -1
  26. package/async-data/types.d.ts +1 -1
  27. package/authorization/guard.service.d.ts +1 -1
  28. package/authorization/state.service.d.ts +1 -1
  29. package/business/module-info/api.service.d.ts +2 -2
  30. package/business/notification-disabled-container/component.d.ts +14 -0
  31. package/business/notification-disabled-container/public-api.d.ts +1 -0
  32. package/business/public-api.d.ts +1 -0
  33. package/business/resource-select/base-list.d.ts +2 -2
  34. package/business/resource-select/context.service.d.ts +2 -2
  35. package/business/resource-select/exports/namespace-page/component.d.ts +1 -1
  36. package/business/resource-select/exports/namespace-selector/component.d.ts +1 -1
  37. package/business/resource-select/internals/cluster-list/component.d.ts +1 -2
  38. package/business/resource-select/internals/namespace-list/component.d.ts +2 -3
  39. package/business/resource-select/internals/project-list/component.d.ts +1 -1
  40. package/business/resource-select/project.service.d.ts +3 -2
  41. package/business/resource-select/types.d.ts +1 -1
  42. package/business/resource-select/utils.d.ts +1 -1
  43. package/chart/common/chart/chart.component.d.ts +2 -3
  44. package/chart/common/{index.d.ts → public-api.d.ts} +0 -1
  45. package/chart/public-api.d.ts +2 -1
  46. package/chart/utils.d.ts +1 -1
  47. package/code/code-editor-configs.d.ts +2 -1
  48. package/code/code.module.d.ts +8 -8
  49. package/code/k8s-yaml-display-dialog/component.d.ts +1 -1
  50. package/code/resource-yaml-display/component.d.ts +2 -4
  51. package/core/abstract/base-form-container.d.ts +1 -1
  52. package/core/components/public-api.d.ts +6 -0
  53. package/core/constants/constants.d.ts +1 -0
  54. package/core/constants/patterns.d.ts +83 -1
  55. package/core/constants/status-icons.d.ts +3 -0
  56. package/core/guards/leave-edit-page.guard.d.ts +1 -1
  57. package/core/module.d.ts +19 -19
  58. package/core/pipes/duration.pipe.d.ts +10 -0
  59. package/core/pipes/img-theme.pipe.d.ts +1 -1
  60. package/core/pipes/k8s-util.pipe.d.ts +2 -2
  61. package/core/pipes/page-env.pipe.d.ts +1 -1
  62. package/core/pipes/{index.d.ts → public-api.d.ts} +2 -1
  63. package/core/pipes/sanitize.pipe.d.ts +10 -0
  64. package/core/pipes/time.pipe.d.ts +2 -2
  65. package/core/public-api.d.ts +9 -9
  66. package/core/services/aui-paginator-intl.service.d.ts +1 -1
  67. package/core/services/aui-tooltip-copy-intl.service.d.ts +1 -1
  68. package/core/services/custom-code-editor-intl.service.d.ts +1 -1
  69. package/core/services/intercept-deactivate.service.d.ts +1 -1
  70. package/core/services/k8s-util.service.d.ts +2 -2
  71. package/core/services/workspace-helper.service.d.ts +1 -1
  72. package/core/services/yaml-util.service.d.ts +1 -1
  73. package/core/types/k8s/core.d.ts +11 -1
  74. package/core/types/k8s/crd.d.ts +98 -3
  75. package/core/types/k8s/raw.d.ts +9 -12
  76. package/core/types/{index.d.ts → public-api.d.ts} +1 -1
  77. package/core/types/resource-definitions.d.ts +27 -2
  78. package/core/utils/browser.d.ts +1 -0
  79. package/core/utils/common.d.ts +12 -1
  80. package/core/utils/decorators.d.ts +3 -1
  81. package/core/utils/k8s-util.d.ts +3 -1
  82. package/core/utils/node.d.ts +1 -1
  83. package/core/utils/observable.d.ts +1 -0
  84. package/core/utils/{index.d.ts → public-api.d.ts} +1 -1
  85. package/core/utils/sort-fn.d.ts +2 -0
  86. package/core/utils/unit.d.ts +0 -3
  87. package/core/utils/version.d.ts +1 -1
  88. package/core/utils/workspace.d.ts +1 -1
  89. package/core/utils/yaml.d.ts +2 -1
  90. package/custom-columns-setting/component.d.ts +1 -1
  91. package/esm2022/a-chart/a-chart.module.mjs +2 -2
  92. package/esm2022/a-chart/chart-status.component.mjs +2 -2
  93. package/esm2022/a-chart/chart.component.mjs +5 -4
  94. package/esm2022/a-chart/components/base-component.mjs +2 -2
  95. package/esm2022/a-chart/components/legend/public-api.mjs +4 -0
  96. package/esm2022/a-chart/components/public-api.mjs +4 -0
  97. package/esm2022/a-chart/components/title.component.mjs +4 -4
  98. package/esm2022/a-chart/public-api.mjs +2 -2
  99. package/esm2022/a-chart/utils.mjs +2 -2
  100. package/esm2022/a-metric-chart/a-metric-chart.component.mjs +57 -32
  101. package/esm2022/a-metric-chart/a-metric-chart.module.mjs +4 -4
  102. package/esm2022/a-metric-chart/bar-gauge/bar-gauge.component.mjs +2 -2
  103. package/esm2022/a-metric-chart/base-chart.component.mjs +2 -2
  104. package/esm2022/a-metric-chart/public-api.mjs +2 -1
  105. package/esm2022/a-metric-chart/table-chart/table-chart.component.mjs +2 -2
  106. package/esm2022/a-metric-chart/types.mjs +2 -1
  107. package/esm2022/a-metric-chart/utils/public-api.mjs +4 -0
  108. package/esm2022/a-metric-chart/utils/unit.mjs +2 -2
  109. package/esm2022/a-metric-chart/utils/util.mjs +28 -23
  110. package/esm2022/api/api-compatible.interceptor.mjs +101 -0
  111. package/esm2022/api/cluster-version.service.mjs +2 -2
  112. package/esm2022/api/crypto.interceptor.mjs +2 -2
  113. package/esm2022/api/helpers.mjs +2 -2
  114. package/esm2022/api/k8s-api-resource.service.mjs +2 -2
  115. package/esm2022/api/k8s-api.service.mjs +4 -4
  116. package/esm2022/api/monitor-api.service.mjs +2 -2
  117. package/esm2022/api/platform-ui.service.mjs +2 -2
  118. package/esm2022/api/product.service.mjs +2 -2
  119. package/esm2022/api/project-api.service.mjs +2 -2
  120. package/esm2022/api/public-api.mjs +2 -1
  121. package/esm2022/api/resource-update.service.mjs +1 -1
  122. package/esm2022/api/types.mjs +1 -1
  123. package/esm2022/array-form-table/base-string-map-form.component.mjs +1 -1
  124. package/esm2022/array-form-table/form/component.mjs +93 -50
  125. package/esm2022/array-form-table/form/module.mjs +7 -4
  126. package/esm2022/array-form-table/key-value-form/component.mjs +4 -4
  127. package/esm2022/array-form-table/key-value-table/component.mjs +3 -3
  128. package/esm2022/array-form-table/public-api.mjs +2 -1
  129. package/esm2022/array-form-table/string-array-form/component.mjs +267 -0
  130. package/esm2022/async-data/async-data-loader.mjs +1 -1
  131. package/esm2022/async-data/error-page/component.mjs +2 -2
  132. package/esm2022/async-data/types.mjs +1 -1
  133. package/esm2022/authorization/guard.service.mjs +3 -3
  134. package/esm2022/authorization/interceptor.service.mjs +2 -2
  135. package/esm2022/authorization/state.service.mjs +3 -3
  136. package/esm2022/business/module-info/api.service.mjs +5 -5
  137. package/esm2022/business/notification-disabled-container/component.mjs +87 -0
  138. package/esm2022/business/notification-disabled-container/public-api.mjs +2 -0
  139. package/esm2022/business/public-api.mjs +2 -1
  140. package/esm2022/business/resource-select/base-list.mjs +4 -4
  141. package/esm2022/business/resource-select/context.service.mjs +3 -3
  142. package/esm2022/business/resource-select/exports/namespace-page/component.mjs +3 -3
  143. package/esm2022/business/resource-select/exports/namespace-selector/component.mjs +3 -3
  144. package/esm2022/business/resource-select/internals/cluster-list/component.mjs +1 -1
  145. package/esm2022/business/resource-select/internals/data-grid/component.mjs +2 -2
  146. package/esm2022/business/resource-select/internals/meshgroup-list/component.mjs +2 -3
  147. package/esm2022/business/resource-select/internals/namespace-list/component.mjs +7 -7
  148. package/esm2022/business/resource-select/internals/no-data/component.mjs +3 -3
  149. package/esm2022/business/resource-select/internals/project-list/component.mjs +3 -3
  150. package/esm2022/business/resource-select/internals/resource-dashboard/component.mjs +3 -3
  151. package/esm2022/business/resource-select/internals/selector-popup/component.mjs +2 -2
  152. package/esm2022/business/resource-select/module.mjs +3 -3
  153. package/esm2022/business/resource-select/project.service.mjs +4 -4
  154. package/esm2022/business/resource-select/types.mjs +1 -1
  155. package/esm2022/business/resource-select/utils.mjs +1 -1
  156. package/esm2022/chart/chart.module.mjs +2 -2
  157. package/esm2022/chart/chart.service.mjs +2 -2
  158. package/esm2022/chart/common/chart/chart.component.mjs +2 -2
  159. package/esm2022/chart/common/{index.mjs → public-api.mjs} +1 -2
  160. package/esm2022/chart/common/tooltip/tooltip.component.mjs +2 -2
  161. package/esm2022/chart/public-api.mjs +3 -2
  162. package/esm2022/chart/utils.mjs +1 -1
  163. package/esm2022/code/code-editor-configs.mjs +5 -1
  164. package/esm2022/code/code.module.mjs +12 -11
  165. package/esm2022/code/k8s-yaml-display-dialog/component.mjs +1 -1
  166. package/esm2022/code/resource-yaml-display/component.mjs +26 -7
  167. package/esm2022/core/abstract/base-form-container.mjs +3 -3
  168. package/esm2022/core/abstract/public-api.mjs +3 -0
  169. package/esm2022/core/components/public-api.mjs +7 -0
  170. package/esm2022/core/constants/constants.mjs +2 -1
  171. package/esm2022/core/constants/patterns.mjs +102 -4
  172. package/esm2022/core/constants/public-api.mjs +6 -0
  173. package/esm2022/core/constants/status-icons.mjs +30 -1
  174. package/esm2022/core/constants/tokens.mjs +2 -2
  175. package/esm2022/core/directives/public-api.mjs +11 -0
  176. package/esm2022/core/guards/leave-edit-page.guard.mjs +5 -5
  177. package/esm2022/core/guards/public-api.mjs +5 -0
  178. package/esm2022/core/module.mjs +11 -11
  179. package/esm2022/core/pipes/duration.pipe.mjs +51 -0
  180. package/esm2022/core/pipes/img-header.pipe.mjs +2 -2
  181. package/esm2022/core/pipes/img-theme.pipe.mjs +3 -2
  182. package/esm2022/core/pipes/k8s-util.pipe.mjs +4 -4
  183. package/esm2022/core/pipes/page-env.pipe.mjs +3 -3
  184. package/esm2022/core/pipes/public-api.mjs +19 -0
  185. package/esm2022/core/pipes/safe.pipe.mjs +7 -2
  186. package/esm2022/core/pipes/sanitize.pipe.mjs +31 -0
  187. package/esm2022/core/pipes/time.pipe.mjs +8 -8
  188. package/esm2022/core/public-api.mjs +10 -10
  189. package/esm2022/core/services/aui-paginator-intl.service.mjs +3 -3
  190. package/esm2022/core/services/aui-tooltip-copy-intl.service.mjs +3 -3
  191. package/esm2022/core/services/context.service.mjs +2 -2
  192. package/esm2022/core/services/custom-code-editor-intl.service.mjs +4 -4
  193. package/esm2022/core/services/feature-gate.service.mjs +3 -3
  194. package/esm2022/core/services/intercept-deactivate.service.mjs +3 -3
  195. package/esm2022/core/services/k8s-util.service.mjs +4 -6
  196. package/esm2022/core/services/public-api.mjs +15 -0
  197. package/esm2022/core/services/time.service.mjs +2 -2
  198. package/esm2022/core/services/workspace-helper.service.mjs +1 -1
  199. package/esm2022/core/services/yaml-util.service.mjs +5 -4
  200. package/esm2022/core/types/k8s/core.mjs +1 -1
  201. package/esm2022/core/types/k8s/crd.mjs +16 -1
  202. package/esm2022/core/types/k8s/public-api.mjs +4 -0
  203. package/esm2022/core/types/k8s/raw.mjs +3 -2
  204. package/esm2022/core/types/public-api.mjs +11 -0
  205. package/esm2022/core/types/resource-definitions.mjs +19 -4
  206. package/esm2022/core/utils/browser.mjs +5 -1
  207. package/esm2022/core/utils/cache-store.mjs +2 -2
  208. package/esm2022/core/utils/common.mjs +55 -3
  209. package/esm2022/core/utils/decorators.mjs +22 -1
  210. package/esm2022/core/utils/k8s-util.mjs +5 -3
  211. package/esm2022/core/utils/node.mjs +2 -2
  212. package/esm2022/core/utils/observable.mjs +11 -2
  213. package/esm2022/core/utils/public-api.mjs +23 -0
  214. package/esm2022/core/utils/sort-fn.mjs +7 -0
  215. package/esm2022/core/utils/unit.mjs +1 -13
  216. package/esm2022/core/utils/workspace.mjs +1 -1
  217. package/esm2022/core/utils/yaml.mjs +9 -1
  218. package/esm2022/custom-columns-setting/component.mjs +1 -1
  219. package/esm2022/editable-text/public-api.mjs +3 -0
  220. package/esm2022/effect-directive/event.directive.mjs +2 -2
  221. package/esm2022/exec/public-api.mjs +8 -0
  222. package/esm2022/exec/service.mjs +2 -3
  223. package/esm2022/exec/terminal/component.mjs +13 -17
  224. package/esm2022/exec/terminal-group/component.mjs +2 -2
  225. package/esm2022/feature-gate-forbidden/public-api.mjs +3 -0
  226. package/esm2022/form/errors-mapper/base-errors-mapper.mjs +42 -0
  227. package/esm2022/form/errors-mapper/default-errors-mapper.service.mjs +65 -0
  228. package/esm2022/form/errors-mapper/errors-mapper-component/component.mjs +71 -0
  229. package/esm2022/form/errors-mapper/errors-mapper.directive.mjs +115 -0
  230. package/esm2022/{errors-mapper → form/errors-mapper}/errors-mapper.module.mjs +1 -1
  231. package/esm2022/form/errors-mapper/public-api.mjs +5 -0
  232. package/esm2022/form/errors-mapper/types.mjs +2 -0
  233. package/esm2022/form/labels-editor/component.mjs +5 -6
  234. package/esm2022/form/public-api.mjs +7 -0
  235. package/esm2022/form/taints-editor/component.mjs +5 -5
  236. package/esm2022/form/upload-file/component.mjs +114 -0
  237. package/esm2022/form/validators/module.mjs +2 -2
  238. package/esm2022/form/validators/public-api.mjs +2 -2
  239. package/esm2022/form/validators/resource-limit.mjs +2 -2
  240. package/esm2022/form/validators/strong-password/public-api.mjs +4 -0
  241. package/esm2022/form/validators/strong-password/strong-password-tooltip/component.mjs +2 -2
  242. package/esm2022/form/validators/utils.mjs +3 -3
  243. package/esm2022/graph-canvas/components/graph-canvas.component.mjs +6 -3
  244. package/esm2022/graph-canvas/components/graph-link.component.mjs +8 -2
  245. package/esm2022/graph-canvas/components/graph-node.directive.mjs +2 -2
  246. package/esm2022/graph-canvas/graph-store.service.mjs +13 -2
  247. package/esm2022/graph-canvas/types.mjs +1 -1
  248. package/esm2022/grid-layout/grid-layout.service.mjs +1 -1
  249. package/esm2022/grid-layout/grid-placeholder.service.mjs +1 -1
  250. package/esm2022/grid-layout/public-api.mjs +11 -0
  251. package/esm2022/grid-layout/utils/client-rect.utils.mjs +1 -1
  252. package/esm2022/grid-layout/utils/scroll.utils.mjs +1 -1
  253. package/esm2022/help-document/component.mjs +14 -16
  254. package/esm2022/help-document/directive.mjs +17 -4
  255. package/esm2022/help-document/module.mjs +5 -6
  256. package/esm2022/help-document/service.mjs +7 -4
  257. package/esm2022/k8s-resource-list/footer/component.mjs +2 -2
  258. package/esm2022/k8s-resource-list/k8s-resource-list.mjs +2 -2
  259. package/esm2022/k8s-resource-list/k8s-resource-paged-list.mjs +2 -3
  260. package/esm2022/k8s-resource-list/types.mjs +1 -1
  261. package/esm2022/k8s-resource-list/utils.mjs +1 -1
  262. package/esm2022/k8s-shared/k8s-shared-util.service.mjs +152 -0
  263. package/esm2022/k8s-shared/public-api.mjs +10 -0
  264. package/esm2022/k8s-shared/update-description-dialog/component.mjs +112 -0
  265. package/esm2022/k8s-shared/update-display-name-dialog/component.mjs +133 -0
  266. package/esm2022/k8s-shared/update-key-value-dialog/component.mjs +111 -0
  267. package/esm2022/license/license-api.mjs +1 -1
  268. package/esm2022/license/license-error/module.mjs +2 -2
  269. package/esm2022/license/license.guard.mjs +3 -3
  270. package/esm2022/license/license.service.mjs +1 -1
  271. package/esm2022/metric-chart/helpers.mjs +3 -3
  272. package/esm2022/metric-chart/metric-chart.component.mjs +6 -4
  273. package/esm2022/metric-chart/public-api.mjs +1 -2
  274. package/esm2022/metric-chart/types.mjs +1 -1
  275. package/esm2022/metric-chart/utils.mjs +2 -2
  276. package/esm2022/multi-search/action-input/component.mjs +4 -4
  277. package/esm2022/multi-search/form/component.mjs +3 -3
  278. package/esm2022/multi-search/multi-search-tags/component.mjs +2 -2
  279. package/esm2022/multi-search/public-api.mjs +5 -0
  280. package/esm2022/mutable/mosaic/mosaic.component.mjs +2 -2
  281. package/esm2022/notification/errors-mapper.mjs +1 -1
  282. package/esm2022/notification/helpers.mjs +1 -1
  283. package/esm2022/notification/notification-util.service.mjs +4 -4
  284. package/esm2022/notification/resource-error.interceptor.mjs +2 -2
  285. package/esm2022/page-guard/component/component.mjs +3 -3
  286. package/esm2022/page-guard/module.mjs +4 -4
  287. package/esm2022/page-scaffold/module.mjs +5 -5
  288. package/esm2022/page-scaffold/navigation/breadcrumb/breadcrumb.component.mjs +1 -1
  289. package/esm2022/page-scaffold/navigation/breadcrumb/module.mjs +2 -2
  290. package/esm2022/page-scaffold/navigation/breadcrumb/public-api.mjs +5 -0
  291. package/esm2022/page-scaffold/navigation/lottie-icons/public-api.mjs +3 -0
  292. package/esm2022/page-scaffold/navigation/module.mjs +2 -2
  293. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.component.mjs +5 -5
  294. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.module.mjs +2 -2
  295. package/esm2022/page-scaffold/navigation/nav-menu/nav-menu.types.mjs +1 -1
  296. package/esm2022/page-scaffold/navigation/nav-menu/public-api.mjs +4 -0
  297. package/esm2022/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.mjs +2 -2
  298. package/esm2022/page-scaffold/navigation/navconfig-loader/public-api.mjs +8 -0
  299. package/esm2022/page-scaffold/navigation/public-api.mjs +7 -0
  300. package/esm2022/page-scaffold/page/notices/maintenance.component.mjs +32 -26
  301. package/esm2022/page-scaffold/page/page.component.mjs +20 -12
  302. package/esm2022/page-scaffold/page/page.module.mjs +2 -2
  303. package/esm2022/page-scaffold/page/public-api.mjs +5 -0
  304. package/esm2022/page-scaffold/page-header/account-menu/component/component.mjs +2 -2
  305. package/esm2022/page-scaffold/page-header/common-layout/common-layout.module.mjs +3 -3
  306. package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +2 -2
  307. package/esm2022/page-scaffold/page-header/common-layout/namespace-select/component.mjs +3 -4
  308. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +7 -7
  309. package/esm2022/page-scaffold/page-header/common-layout/project-select/base-selection.mjs +2 -2
  310. package/esm2022/page-scaffold/page-header/common-layout/store.service.mjs +3 -3
  311. package/esm2022/page-scaffold/page-header/enterprise-support-status/component.mjs +2 -2
  312. package/esm2022/page-scaffold/page-header/header-notify/notify.service.mjs +3 -3
  313. package/esm2022/page-scaffold/page-header/header-notify/utils.mjs +1 -1
  314. package/esm2022/page-scaffold/page-header/help-menu/component/component.mjs +3 -3
  315. package/esm2022/page-scaffold/page-header/public-api.mjs +14 -0
  316. package/esm2022/page-scaffold/public-api.mjs +5 -0
  317. package/esm2022/permission/helpers.mjs +2 -5
  318. package/esm2022/permission/k8s-permission.service.mjs +2 -3
  319. package/esm2022/permission/permission.guard.mjs +3 -3
  320. package/esm2022/permission/public-api.mjs +1 -2
  321. package/esm2022/permission/types.mjs +2 -2
  322. package/esm2022/pie-derivative-chart/donut-status/component.mjs +1 -1
  323. package/esm2022/public-api.mjs +11 -11
  324. package/esm2022/scm/declare.directive.mjs +27 -0
  325. package/esm2022/scm/password-input/component.mjs +104 -67
  326. package/esm2022/scm/password-input/module.mjs +16 -13
  327. package/esm2022/scm/password-input/public-api.mjs +3 -0
  328. package/esm2022/scm/public-api.mjs +10 -0
  329. package/esm2022/scm/pure-pipe/calc.pipe.mjs +3 -2
  330. package/esm2022/scm/pure-pipe/module.mjs +3 -4
  331. package/esm2022/scm/pure-pipe/public-api.mjs +4 -0
  332. package/esm2022/scm/pure-pipe/pure.pipe.mjs +1 -1
  333. package/esm2022/scm/resource-multi-select/component.mjs +7 -9
  334. package/esm2022/scm/resource-multi-select/util.mjs +1 -1
  335. package/esm2022/scm/search-panel/component.mjs +2 -2
  336. package/esm2022/searchable-selector/component.mjs +4 -2
  337. package/esm2022/skeleton/item/component.mjs +1 -1
  338. package/esm2022/skeleton/module.mjs +2 -2
  339. package/esm2022/table/component.mjs +4 -4
  340. package/esm2022/table/helper.mjs +2 -2
  341. package/esm2022/table/module.mjs +1 -1
  342. package/esm2022/table/types.mjs +1 -1
  343. package/esm2022/table/util.service.mjs +3 -3
  344. package/esm2022/translate/constants.mjs +1 -1
  345. package/esm2022/translate/en.json +30 -4
  346. package/esm2022/translate/helpers.mjs +15 -1
  347. package/esm2022/translate/public-api.mjs +1 -2
  348. package/esm2022/translate/translate.module.mjs +3 -7
  349. package/esm2022/translate/types.mjs +1 -1
  350. package/esm2022/translate/zh.json +28 -2
  351. package/esm2022/view-chart/custom-template/dropdown-legend.mjs +1 -1
  352. package/esm2022/view-chart/legend/legend.component.mjs +1 -1
  353. package/esm2022/view-chart/view-chart.module.mjs +2 -2
  354. package/esm2022/view-zchart/custom-template/dropdown-legend.mjs +1 -1
  355. package/esm2022/view-zchart/legend/legend.component.mjs +1 -1
  356. package/esm2022/view-zchart/types.mjs +2 -0
  357. package/esm2022/view-zchart/units.mjs +2 -2
  358. package/esm2022/view-zchart/view-zchart.component.mjs +10 -5
  359. package/esm2022/widget/confirm-delete/confirm-delete.component.mjs +2 -2
  360. package/esm2022/widget/confirm-delete/utils.mjs +1 -1
  361. package/esm2022/widget/current-time/component.mjs +4 -4
  362. package/esm2022/widget/date-range-picker/component.mjs +10 -11
  363. package/esm2022/widget/field-set/index.mjs +14 -0
  364. package/esm2022/widget/field-set/item/component.mjs +2 -2
  365. package/esm2022/widget/foldable-block/component.mjs +2 -2
  366. package/esm2022/widget/foldable-item-in-table/component.mjs +3 -3
  367. package/esm2022/widget/loading-mask/loading-mask.component.mjs +2 -2
  368. package/esm2022/widget/public-api.mjs +3 -4
  369. package/esm2022/widget/relative-time/component.mjs +4 -4
  370. package/esm2022/widget/status-icon/status-icon.component.mjs +102 -0
  371. package/esm2022/widget/tags-label/component.mjs +3 -3
  372. package/esm2022/widget/terminating-tag/component.mjs +1 -1
  373. package/esm2022/widget/zero-state/zero-state.component.mjs +3 -3
  374. package/esm2022/window-channel/base-window-channel.mjs +1 -1
  375. package/esm2022/window-channel/host-window-channel.service.mjs +15 -15
  376. package/esm2022/window-channel/public-api.mjs +5 -0
  377. package/esm2022/window-channel/utils.mjs +1 -1
  378. package/esm2022/xterm/xterm-terminal/xterm-terminal.component.mjs +4 -4
  379. package/esm2022/xterm/xterm.component.mjs +5 -2
  380. package/exec/service.d.ts +1 -1
  381. package/exec/terminal/component.d.ts +1 -1
  382. package/{errors-mapper → form/errors-mapper}/base-errors-mapper.d.ts +2 -2
  383. package/{errors-mapper → form/errors-mapper}/default-errors-mapper.service.d.ts +1 -1
  384. package/{errors-mapper → form/errors-mapper}/errors-mapper-component/component.d.ts +1 -1
  385. package/{errors-mapper → form/errors-mapper}/errors-mapper.directive.d.ts +1 -1
  386. package/{errors-mapper → form/errors-mapper}/types.d.ts +1 -1
  387. package/form/labels-editor/component.d.ts +1 -1
  388. package/form/{index.d.ts → public-api.d.ts} +2 -0
  389. package/form/taints-editor/component.d.ts +2 -2
  390. package/form/upload-file/component.d.ts +32 -0
  391. package/form/validators/public-api.d.ts +1 -1
  392. package/form/validators/resource-limit.d.ts +1 -1
  393. package/form/validators/strong-password/{index.d.ts → public-api.d.ts} +1 -1
  394. package/form/validators/utils.d.ts +1 -1
  395. package/graph-canvas/components/graph-canvas.component.d.ts +3 -2
  396. package/graph-canvas/graph-store.service.d.ts +3 -1
  397. package/graph-canvas/types.d.ts +2 -0
  398. package/grid-layout/grid-layout.service.d.ts +2 -2
  399. package/grid-layout/grid-placeholder.service.d.ts +1 -1
  400. package/grid-layout/utils/client-rect.utils.d.ts +1 -1
  401. package/help-document/component.d.ts +0 -1
  402. package/help-document/directive.d.ts +10 -1
  403. package/k8s-resource-list/footer/component.d.ts +1 -1
  404. package/k8s-resource-list/k8s-resource-list.d.ts +1 -1
  405. package/k8s-resource-list/k8s-resource-paged-list.d.ts +1 -1
  406. package/k8s-resource-list/types.d.ts +1 -1
  407. package/k8s-resource-list/utils.d.ts +1 -1
  408. package/k8s-shared/k8s-shared-util.service.d.ts +40 -0
  409. package/k8s-shared/public-api.d.ts +9 -0
  410. package/k8s-shared/update-description-dialog/component.d.ts +25 -0
  411. package/k8s-shared/update-display-name-dialog/component.d.ts +27 -0
  412. package/k8s-shared/update-key-value-dialog/component.d.ts +39 -0
  413. package/license/license-api.d.ts +1 -1
  414. package/license/license.guard.d.ts +1 -1
  415. package/metric-chart/metric-chart.component.d.ts +3 -2
  416. package/metric-chart/public-api.d.ts +0 -1
  417. package/metric-chart/types.d.ts +1 -1
  418. package/metric-chart/utils.d.ts +1 -1
  419. package/notification/errors-mapper.d.ts +1 -1
  420. package/notification/helpers.d.ts +1 -1
  421. package/notification/notification-util.service.d.ts +2 -2
  422. package/notification/resource-error.interceptor.d.ts +1 -1
  423. package/package.json +1 -1
  424. package/page-guard/module.d.ts +3 -0
  425. package/page-scaffold/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
  426. package/page-scaffold/navigation/nav-menu/nav-menu.component.d.ts +1 -1
  427. package/page-scaffold/navigation/nav-menu/nav-menu.types.d.ts +1 -1
  428. package/page-scaffold/navigation/navconfig-loader/navconfig-loader.service.d.ts +2 -2
  429. package/page-scaffold/navigation/public-api.d.ts +6 -0
  430. package/page-scaffold/page/notices/maintenance.component.d.ts +7 -7
  431. package/page-scaffold/page/page.component.d.ts +2 -1
  432. package/page-scaffold/page-header/common-layout/context.service.d.ts +1 -1
  433. package/page-scaffold/page-header/common-layout/namespace-select/component.d.ts +1 -1
  434. package/page-scaffold/page-header/common-layout/product-select/component.d.ts +2 -2
  435. package/page-scaffold/page-header/common-layout/store.service.d.ts +1 -1
  436. package/page-scaffold/page-header/header-notify/notify.service.d.ts +1 -1
  437. package/page-scaffold/page-header/header-notify/utils.d.ts +1 -1
  438. package/page-scaffold/page-header/help-menu/component/component.d.ts +1 -1
  439. package/page-scaffold/public-api.d.ts +4 -0
  440. package/permission/helpers.d.ts +1 -10
  441. package/permission/k8s-permission.service.d.ts +1 -1
  442. package/permission/permission.guard.d.ts +1 -1
  443. package/permission/public-api.d.ts +0 -1
  444. package/permission/types.d.ts +1 -1
  445. package/pie-derivative-chart/donut-status/component.d.ts +1 -1
  446. package/public-api.d.ts +10 -10
  447. package/scm/declare.directive.d.ts +8 -0
  448. package/scm/password-input/component.d.ts +5 -1
  449. package/scm/password-input/module.d.ts +2 -2
  450. package/scm/{index.d.ts → public-api.d.ts} +3 -2
  451. package/scm/pure-pipe/calc.pipe.d.ts +1 -1
  452. package/scm/pure-pipe/module.d.ts +3 -3
  453. package/scm/pure-pipe/pure.pipe.d.ts +1 -1
  454. package/scm/resource-multi-select/component.d.ts +4 -3
  455. package/scm/resource-multi-select/util.d.ts +1 -1
  456. package/skeleton/item/component.d.ts +1 -1
  457. package/styles/global.scss +1 -2
  458. package/styles/mixins.scss +39 -0
  459. package/styles/tailwind-preset.scss +1 -1
  460. package/table/component.d.ts +1 -1
  461. package/table/helper.d.ts +1 -1
  462. package/table/types.d.ts +1 -1
  463. package/table/util.service.d.ts +1 -1
  464. package/translate/constants.d.ts +1 -1
  465. package/translate/helpers.d.ts +3 -0
  466. package/translate/public-api.d.ts +0 -1
  467. package/translate/translate.module.d.ts +54 -3
  468. package/translate/types.d.ts +1 -1
  469. package/view-chart/custom-template/dropdown-legend.d.ts +1 -1
  470. package/view-chart/legend/legend.component.d.ts +1 -1
  471. package/view-zchart/custom-template/dropdown-legend.d.ts +1 -1
  472. package/view-zchart/legend/legend.component.d.ts +1 -1
  473. package/view-zchart/types.d.ts +22 -0
  474. package/view-zchart/units.d.ts +1 -1
  475. package/view-zchart/view-zchart.component.d.ts +7 -2
  476. package/widget/confirm-delete/utils.d.ts +1 -1
  477. package/widget/current-time/component.d.ts +1 -1
  478. package/widget/date-range-picker/component.d.ts +1 -1
  479. package/widget/field-set/index.d.ts +7 -0
  480. package/widget/foldable-item-in-table/component.d.ts +1 -1
  481. package/widget/public-api.d.ts +2 -3
  482. package/widget/relative-time/component.d.ts +1 -1
  483. package/widget/status-icon/status-icon.component.d.ts +16 -0
  484. package/widget/tags-label/component.d.ts +1 -1
  485. package/widget/terminating-tag/component.d.ts +1 -1
  486. package/window-channel/base-window-channel.d.ts +1 -1
  487. package/window-channel/utils.d.ts +0 -1
  488. package/core/components/index.d.ts +0 -1
  489. package/core/components/tree/index.d.ts +0 -1
  490. package/core/components/tree/public-api.d.ts +0 -6
  491. package/core/index.d.ts +0 -1
  492. package/core/pipes/trust-url.pipe.d.ts +0 -19
  493. package/core/utils/k8s-pattern.d.ts +0 -12
  494. package/esm2022/a-chart/components/index.mjs +0 -4
  495. package/esm2022/a-chart/components/legend/index.mjs +0 -4
  496. package/esm2022/a-metric-chart/utils/index.mjs +0 -4
  497. package/esm2022/core/abstract/index.mjs +0 -3
  498. package/esm2022/core/components/index.mjs +0 -2
  499. package/esm2022/core/components/tree/index.mjs +0 -2
  500. package/esm2022/core/components/tree/public-api.mjs +0 -7
  501. package/esm2022/core/constants/index.mjs +0 -6
  502. package/esm2022/core/directives/index.mjs +0 -11
  503. package/esm2022/core/guards/index.mjs +0 -5
  504. package/esm2022/core/index.mjs +0 -2
  505. package/esm2022/core/pipes/index.mjs +0 -18
  506. package/esm2022/core/pipes/trust-url.pipe.mjs +0 -28
  507. package/esm2022/core/services/index.mjs +0 -15
  508. package/esm2022/core/types/index.mjs +0 -11
  509. package/esm2022/core/types/k8s/index.mjs +0 -4
  510. package/esm2022/core/utils/index.mjs +0 -23
  511. package/esm2022/core/utils/k8s-pattern.mjs +0 -13
  512. package/esm2022/editable-text/index.mjs +0 -3
  513. package/esm2022/errors-mapper/base-errors-mapper.mjs +0 -42
  514. package/esm2022/errors-mapper/default-errors-mapper.service.mjs +0 -65
  515. package/esm2022/errors-mapper/errors-mapper-component/component.mjs +0 -71
  516. package/esm2022/errors-mapper/errors-mapper.directive.mjs +0 -115
  517. package/esm2022/errors-mapper/public-api.mjs +0 -5
  518. package/esm2022/errors-mapper/types.mjs +0 -2
  519. package/esm2022/exec/index.mjs +0 -8
  520. package/esm2022/feature-gate-forbidden/index.mjs +0 -3
  521. package/esm2022/form/index.mjs +0 -5
  522. package/esm2022/form/validators/strong-password/index.mjs +0 -4
  523. package/esm2022/form/validators/strong-password/strong-password-tooltip/index.mjs +0 -2
  524. package/esm2022/grid-layout/index.mjs +0 -11
  525. package/esm2022/metric-chart/range-util.mjs +0 -35
  526. package/esm2022/multi-search/index.mjs +0 -5
  527. package/esm2022/page-scaffold/index.mjs +0 -5
  528. package/esm2022/page-scaffold/navigation/breadcrumb/index.mjs +0 -5
  529. package/esm2022/page-scaffold/navigation/index.mjs +0 -7
  530. package/esm2022/page-scaffold/navigation/lottie-icons/index.mjs +0 -3
  531. package/esm2022/page-scaffold/navigation/nav-menu/index.mjs +0 -4
  532. package/esm2022/page-scaffold/navigation/navconfig-loader/index.mjs +0 -8
  533. package/esm2022/page-scaffold/page/index.mjs +0 -5
  534. package/esm2022/page-scaffold/page-header/index.mjs +0 -14
  535. package/esm2022/permission/admin.guard.mjs +0 -43
  536. package/esm2022/scm/index.mjs +0 -9
  537. package/esm2022/scm/password-input/index.mjs +0 -3
  538. package/esm2022/scm/pure-pipe/index.mjs +0 -4
  539. package/esm2022/translate/pick-locale.pipe.mjs +0 -34
  540. package/esm2022/window-channel/index.mjs +0 -5
  541. package/form/validators/strong-password/strong-password-tooltip/index.d.ts +0 -1
  542. package/metric-chart/range-util.d.ts +0 -1
  543. package/page-scaffold/index.d.ts +0 -4
  544. package/page-scaffold/navigation/index.d.ts +0 -6
  545. package/permission/admin.guard.d.ts +0 -14
  546. package/translate/pick-locale.pipe.d.ts +0 -12
  547. /package/a-chart/components/legend/{index.d.ts → public-api.d.ts} +0 -0
  548. /package/a-metric-chart/utils/{index.d.ts → public-api.d.ts} +0 -0
  549. /package/core/abstract/{index.d.ts → public-api.d.ts} +0 -0
  550. /package/core/constants/{index.d.ts → public-api.d.ts} +0 -0
  551. /package/core/directives/{index.d.ts → public-api.d.ts} +0 -0
  552. /package/core/guards/{index.d.ts → public-api.d.ts} +0 -0
  553. /package/core/services/{index.d.ts → public-api.d.ts} +0 -0
  554. /package/core/types/k8s/{index.d.ts → public-api.d.ts} +0 -0
  555. /package/editable-text/{index.d.ts → public-api.d.ts} +0 -0
  556. /package/exec/{index.d.ts → public-api.d.ts} +0 -0
  557. /package/feature-gate-forbidden/{index.d.ts → public-api.d.ts} +0 -0
  558. /package/{errors-mapper → form/errors-mapper}/errors-mapper.module.d.ts +0 -0
  559. /package/{errors-mapper → form/errors-mapper}/public-api.d.ts +0 -0
  560. /package/grid-layout/{index.d.ts → public-api.d.ts} +0 -0
  561. /package/multi-search/{index.d.ts → public-api.d.ts} +0 -0
  562. /package/page-scaffold/navigation/breadcrumb/{index.d.ts → public-api.d.ts} +0 -0
  563. /package/page-scaffold/navigation/lottie-icons/{index.d.ts → public-api.d.ts} +0 -0
  564. /package/page-scaffold/navigation/nav-menu/{index.d.ts → public-api.d.ts} +0 -0
  565. /package/page-scaffold/navigation/navconfig-loader/{index.d.ts → public-api.d.ts} +0 -0
  566. /package/page-scaffold/page/{index.d.ts → public-api.d.ts} +0 -0
  567. /package/page-scaffold/page-header/{index.d.ts → public-api.d.ts} +0 -0
  568. /package/scm/password-input/{index.d.ts → public-api.d.ts} +0 -0
  569. /package/scm/pure-pipe/{index.d.ts → public-api.d.ts} +0 -0
  570. /package/window-channel/{index.d.ts → public-api.d.ts} +0 -0
@@ -151,11 +151,11 @@ export class BarGaugeComponent extends BaseComponentChart {
151
151
  i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(6, 3, ctx.data$));
152
152
  i0.ɵɵadvance(2);
153
153
  i0.ɵɵproperty("status", ctx.status)("customError", ctx.customError);
154
- } }, styles: ["[_nghost-%COMP%]{height:100%;width:100%;padding-top:16px}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%]{justify-content:space-between;flex-direction:row}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{flex-direction:column;justify-content:flex-end}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{transition:height 1s ease 0s;margin-bottom:4px}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .empty-bar[_ngcontent-%COMP%]{margin-top:4px}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{height:25px;text-align:center}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .legend[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:not(:last-child){margin-right:10px}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:20px}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{flex-direction:row-reverse;justify-content:flex-end;align-items:stretch}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{transition:width 1s ease 0s}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .empty-bar[_ngcontent-%COMP%]{margin-right:4px}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .legend[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{width:40px;display:flex;align-items:center}[_nghost-%COMP%] .empty-bar[_ngcontent-%COMP%]{border-radius:2px}[_nghost-%COMP%] .bar[_ngcontent-%COMP%]{border-radius:2px}[_nghost-%COMP%] .legend[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-1))}"], changeDetection: 0 }); }
154
+ } }, styles: ["[_nghost-%COMP%]{height:100%;width:100%;padding-top:16px}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%]{justify-content:space-between;flex-direction:row}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{flex-direction:column;justify-content:flex-end}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{transition:height 1s ease 0s;margin-bottom:4px}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .empty-bar[_ngcontent-%COMP%]{margin-top:4px}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{height:25px;text-align:center}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .legend[_ngcontent-%COMP%]{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}[_nghost-%COMP%] .vertical[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:not(:last-child){margin-right:10px}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .item[_ngcontent-%COMP%]:not(:last-child){margin-bottom:20px}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .wrapper[_ngcontent-%COMP%]{flex-direction:row-reverse;justify-content:flex-end;align-items:stretch}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .bar[_ngcontent-%COMP%]{transition:width 1s ease 0s}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .empty-bar[_ngcontent-%COMP%]{margin-right:4px}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .legend[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .horizontal[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{width:40px;display:flex;align-items:center;white-space:nowrap}[_nghost-%COMP%] .empty-bar[_ngcontent-%COMP%]{border-radius:2px}[_nghost-%COMP%] .bar[_ngcontent-%COMP%]{border-radius:2px}[_nghost-%COMP%] .legend[_ngcontent-%COMP%]{color:rgb(var(--aui-color-n-1))}"], changeDetection: 0 }); }
155
155
  }
156
156
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BarGaugeComponent, [{
157
157
  type: Component,
158
- args: [{ selector: 'a-bar-gauge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bar-gauge tw-h-full tw-w-full\"\n #barGauge\n aclResize\n (resized)=\"containerWidth = $event.width\"\n>\n <div class=\"tw-flex\">\n <div class=\"achart-title tw-flex-1 tw-break-all\">\n <ng-content select=\"a-title\"></ng-content>\n </div>\n </div>\n <div\n class=\"bar tw-h-full tw-w-full\"\n *ngIf=\"data$ | async as series\"\n >\n <div\n *ngIf=\"!status.noData\"\n class=\"body tw-h-full tw-w-full tw-flex\"\n [ngClass]=\"{\n 'vertical': options.layout | pure: isVertical,\n 'horizontal': !(options.layout | pure: isVertical),\n }\"\n >\n <div\n class=\"item tw-h-full tw-w-full\"\n *ngFor=\"let item of series\"\n >\n <div\n class=\"legend tw-text-center tw-text-overflow tw-mb-4\"\n *ngIf=\"!(options.layout | pure: isVertical)\"\n [ngClass]=\"{ 'tw-text-center': options.layout | pure: isVertical }\"\n >\n {{ $any(item).name }}\n </div>\n <div\n class=\"wrapper tw-flex tw-h-full\"\n #wrapper\n [style.width]=\"containerWidth | pure: getWrapperWidth\"\n >\n <div class=\"value tw-text-n-1 tw-text-xl tw-text-center\">\n {{ $any(item).displayName }}\n <ng-container *ngIf=\"$any(item).displayName | pure: showUnit\">{{\n $any(item)?.unit | translate: {} : true\n }}</ng-container>\n </div>\n <div\n class=\"empty-bar tw-flex tw-relative tw-bg-n-8\"\n [ngStyle]=\"item | pure: getEmptyStyle\"\n ></div>\n <div\n class=\"bar\"\n [ngStyle]=\"item | pure: getBarStyle\"\n ></div>\n <div\n class=\"legend tw-text-center tw-text-overflow\"\n *ngIf=\"options.layout | pure: isVertical\"\n [ngClass]=\"{ 'tw-text-center': options.layout | pure: isVertical }\"\n >\n {{ $any(item).name }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <acl-chart-status\n [status]=\"status\"\n [customError]=\"customError\"\n (refresh)=\"refresh.next()\"\n ></acl-chart-status>\n</div>\n", styles: [":host{height:100%;width:100%;padding-top:16px}:host .vertical{justify-content:space-between;flex-direction:row}:host .vertical .wrapper{flex-direction:column;justify-content:flex-end}:host .vertical .bar{transition:height 1s ease 0s;margin-bottom:4px}:host .vertical .empty-bar{margin-top:4px}:host .vertical .value{height:25px;text-align:center}:host .vertical .legend{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}:host .vertical .item:not(:last-child){margin-right:10px}:host .horizontal{display:flex;flex-direction:column}:host .horizontal .item{display:flex;flex-direction:column}:host .horizontal .item:not(:last-child){margin-bottom:20px}:host .horizontal .wrapper{flex-direction:row-reverse;justify-content:flex-end;align-items:stretch}:host .horizontal .bar{transition:width 1s ease 0s}:host .horizontal .empty-bar{margin-right:4px}:host .horizontal .legend{display:flex;align-items:center}:host .horizontal .value{width:40px;display:flex;align-items:center}:host .empty-bar{border-radius:2px}:host .bar{border-radius:2px}:host .legend{color:rgb(var(--aui-color-n-1))}\n"] }]
158
+ args: [{ selector: 'a-bar-gauge', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"bar-gauge tw-h-full tw-w-full\"\n #barGauge\n aclResize\n (resized)=\"containerWidth = $event.width\"\n>\n <div class=\"tw-flex\">\n <div class=\"achart-title tw-flex-1 tw-break-all\">\n <ng-content select=\"a-title\"></ng-content>\n </div>\n </div>\n <div\n class=\"bar tw-h-full tw-w-full\"\n *ngIf=\"data$ | async as series\"\n >\n <div\n *ngIf=\"!status.noData\"\n class=\"body tw-h-full tw-w-full tw-flex\"\n [ngClass]=\"{\n 'vertical': options.layout | pure: isVertical,\n 'horizontal': !(options.layout | pure: isVertical),\n }\"\n >\n <div\n class=\"item tw-h-full tw-w-full\"\n *ngFor=\"let item of series\"\n >\n <div\n class=\"legend tw-text-center tw-text-overflow tw-mb-4\"\n *ngIf=\"!(options.layout | pure: isVertical)\"\n [ngClass]=\"{ 'tw-text-center': options.layout | pure: isVertical }\"\n >\n {{ $any(item).name }}\n </div>\n <div\n class=\"wrapper tw-flex tw-h-full\"\n #wrapper\n [style.width]=\"containerWidth | pure: getWrapperWidth\"\n >\n <div class=\"value tw-text-n-1 tw-text-xl tw-text-center\">\n {{ $any(item).displayName }}\n <ng-container *ngIf=\"$any(item).displayName | pure: showUnit\">{{\n $any(item)?.unit | translate: {} : true\n }}</ng-container>\n </div>\n <div\n class=\"empty-bar tw-flex tw-relative tw-bg-n-8\"\n [ngStyle]=\"item | pure: getEmptyStyle\"\n ></div>\n <div\n class=\"bar\"\n [ngStyle]=\"item | pure: getBarStyle\"\n ></div>\n <div\n class=\"legend tw-text-center tw-text-overflow\"\n *ngIf=\"options.layout | pure: isVertical\"\n [ngClass]=\"{ 'tw-text-center': options.layout | pure: isVertical }\"\n >\n {{ $any(item).name }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <acl-chart-status\n [status]=\"status\"\n [customError]=\"customError\"\n (refresh)=\"refresh.next()\"\n ></acl-chart-status>\n</div>\n", styles: [":host{height:100%;width:100%;padding-top:16px}:host .vertical{justify-content:space-between;flex-direction:row}:host .vertical .wrapper{flex-direction:column;justify-content:flex-end}:host .vertical .bar{transition:height 1s ease 0s;margin-bottom:4px}:host .vertical .empty-bar{margin-top:4px}:host .vertical .value{height:25px;text-align:center}:host .vertical .legend{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}:host .vertical .item:not(:last-child){margin-right:10px}:host .horizontal{display:flex;flex-direction:column}:host .horizontal .item{display:flex;flex-direction:column}:host .horizontal .item:not(:last-child){margin-bottom:20px}:host .horizontal .wrapper{flex-direction:row-reverse;justify-content:flex-end;align-items:stretch}:host .horizontal .bar{transition:width 1s ease 0s}:host .horizontal .empty-bar{margin-right:4px}:host .horizontal .legend{display:flex;align-items:center}:host .horizontal .value{width:40px;display:flex;align-items:center;white-space:nowrap}:host .empty-bar{border-radius:2px}:host .bar{border-radius:2px}:host .legend{color:rgb(var(--aui-color-n-1))}\n"] }]
159
159
  }], null, { options: [{
160
160
  type: Input
161
161
  }] }); })();
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { Directive, EventEmitter, Input, Output, TemplateRef, } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
- import { ObservableInput } from '../core';
4
+ import { ObservableInput } from '../core/public-api';
5
5
  import * as i0 from "@angular/core";
6
6
  export class BaseComponentChart {
7
7
  constructor() {
@@ -27,4 +27,4 @@ __decorate([
27
27
  }], data$: [], refresh: [{
28
28
  type: Output
29
29
  }] }); })();
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYS1tZXRyaWMtY2hhcnQvYmFzZS1jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQVdZLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBQzlDO21GQVhZLGtCQUFrQjtvRUFBbEIsa0JBQWtCOztBQVE3QjtJQURDLGVBQWUsRUFBRTs4QkFDVixVQUFVO2lEQUFlO3VGQVJ0QixrQkFBa0I7Y0FEOUIsU0FBUztnQkFFQyxNQUFNO2tCQUFkLEtBQUs7WUFFRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csV0FBVztrQkFBbkIsS0FBSztZQUVHLElBQUk7a0JBQVosS0FBSztZQUVOLEtBQUssTUFFSyxPQUFPO2tCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQUNoYXJ0RGF0YSwgQUNoYXJ0U3RhdHVzIH0gZnJvbSAnLi4vYS1jaGFydC90eXBlcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICcuLi9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUNvbXBvbmVudENoYXJ0IHtcbiAgQElucHV0KCkgc3RhdHVzOiBBQ2hhcnRTdGF0dXM7XG5cbiAgQElucHV0KCkgY3VzdG9tTm9EYXRhOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHN0cmluZztcbiAgQElucHV0KCkgY3VzdG9tRXJyb3I6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBJbnB1dCgpIGRhdGE6IEFDaGFydERhdGFbXTtcbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGRhdGEkITogT2JzZXJ2YWJsZTxBQ2hhcnREYXRhW10+O1xuXG4gIEBPdXRwdXQoKSByZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYS1tZXRyaWMtY2hhcnQvYmFzZS1jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUdyRCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBV1ksWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FDOUM7bUZBWFksa0JBQWtCO29FQUFsQixrQkFBa0I7O0FBUTdCO0lBREMsZUFBZSxFQUFFOzhCQUNWLFVBQVU7aURBQWU7dUZBUnRCLGtCQUFrQjtjQUQ5QixTQUFTO2dCQUVDLE1BQU07a0JBQWQsS0FBSztZQUVHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBRUcsSUFBSTtrQkFBWixLQUFLO1lBRU4sS0FBSyxNQUVLLE9BQU87a0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBQ2hhcnREYXRhLCBBQ2hhcnRTdGF0dXMgfSBmcm9tICcuLi9hLWNoYXJ0L3R5cGVzJztcbmltcG9ydCB7IE9ic2VydmFibGVJbnB1dCB9IGZyb20gJy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnRDaGFydCB7XG4gIEBJbnB1dCgpIHN0YXR1czogQUNoYXJ0U3RhdHVzO1xuXG4gIEBJbnB1dCgpIGN1c3RvbU5vRGF0YTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmc7XG4gIEBJbnB1dCgpIGN1c3RvbUVycm9yOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKSBkYXRhOiBBQ2hhcnREYXRhW107XG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBkYXRhJCE6IE9ic2VydmFibGU8QUNoYXJ0RGF0YVtdPjtcblxuICBAT3V0cHV0KCkgcmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiJdfQ==
@@ -11,4 +11,5 @@ export * from './bar-gauge/bar-gauge.component';
11
11
  export * from './types';
12
12
  export * from './utils/util';
13
13
  export * from './metric-chart-refresh.service';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGEtbWV0cmljLWNoYXJ0XG4gKiBAcHJlZmVycmVkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hLW1ldHJpYy1jaGFydC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hLW1ldHJpYy1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0LWNoYXJ0L3N0YXQtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY2hhcnQvdGFibGUtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYmFyLWdhdWdlL2Jhci1nYXVnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL3V0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRyaWMtY2hhcnQtcmVmcmVzaC5zZXJ2aWNlJztcbiJdfQ==
14
+ export * from './utils/range';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGEtbWV0cmljLWNoYXJ0XG4gKiBAcHJlZmVycmVkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hLW1ldHJpYy1jaGFydC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9hLW1ldHJpYy1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0LWNoYXJ0L3N0YXQtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUtY2hhcnQvdGFibGUtY2hhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYmFyLWdhdWdlL2Jhci1nYXVnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL3V0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXRyaWMtY2hhcnQtcmVmcmVzaC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvcmFuZ2UnO1xuIl19
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
3
  import dayjs from 'dayjs';
4
4
  import { get, uniq } from 'lodash-es';
5
5
  import { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';
6
- import { DATE_TIME_FORMAT, ObservableInput, publishRef } from '../../core';
6
+ import { DATE_TIME_FORMAT, ObservableInput, publishRef, } from '../../core/public-api';
7
7
  import { BaseComponentChart } from '../base-chart.component';
8
8
  import * as i0 from "@angular/core";
9
9
  function TableChartComponent_div_4_ng_container_4_aui_table_header_cell_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {
@@ -198,4 +198,4 @@ __decorate([
198
198
  }], paginator: [{
199
199
  type: Input
200
200
  }] }); })();
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2EtbWV0cmljLWNoYXJ0L3RhYmxlLWNoYXJ0L3RhYmxlLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC90YWJsZS1jaGFydC90YWJsZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztJQ2lCL0MsNkJBRUM7SUFDQyxZQUNGO0lBQUEsMEJBQWU7OztJQURiLGVBQ0Y7SUFERSwwQ0FDRjs7O0lBVEYsNkNBR0M7O0lBQ0MsWUFDQTs7SUFBQSxvSUFJZTs7SUFDakIsaUJBQXdCOzs7OztJQVR0QiwrRUFBNkM7SUFHN0MsZUFDQTtJQURBLDRYQUNBO0lBQ0csZUFBb0Q7SUFBcEQseUxBQW9EOzs7O0lBS3pELHNDQUdDOztJQUNDLGdDQUdDO0lBQ0MsWUFDRjs7O0lBQUEsaUJBQU8sRUFBQTs7Ozs7SUFSUCwrRUFBNkM7SUFLM0MsZUFBNEM7SUFBNUMsK0lBQTRDO0lBRTVDLGVBQ0Y7SUFERSw0V0FDRjs7O0lBdEJOLDZC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LHFFQXFETTtZQUNOLDJDQUlDO1lBREMsOEdBQVcsa0JBQWMsSUFBQztZQUMzQixpQkFBbUIsRUFBQTs7WUF2RGpCLGVBQVU7WUFBViwrQkFBVTtZQW9EWCxlQUFrQjtZQUFsQixvQ0FBa0IsZ0NBQUE7OztBRDNDRDtJQUFsQixlQUFlLEVBQUU7OEJBQVMsVUFBVTtrREFBYzt1RkFGeEMsbUJBQW1CO2NBTi9CLFNBQVM7MkJBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNO2dCQUd0QyxJQUFJO2tCQUFaLEtBQUs7WUFDYSxLQUFLLE1BRWYsU0FBUztrQkFBakIsS0FBSztZQUVHLFNBQVM7a0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IGdldCwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEQVRFX1RJTUVfRk9STUFULCBPYnNlcnZhYmxlSW5wdXQsIHB1Ymxpc2hSZWYgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRDaGFydCB9IGZyb20gJy4uL2Jhc2UtY2hhcnQuY29tcG9uZW50JztcblxudHlwZSBUYWJsZUl0ZW0gPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2EtdGFibGUtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnRDaGFydCB7XG4gIEBJbnB1dCgpIGxpc3Q6IFRhYmxlSXRlbVtdO1xuICBAT2JzZXJ2YWJsZUlucHV0KCkgbGlzdCQhOiBPYnNlcnZhYmxlPFRhYmxlSXRlbVtdPjtcblxuICBASW5wdXQoKSBhbGlnbm1lbnQ6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICBASW5wdXQoKSBwYWdpbmF0b3I6IHtcbiAgICBsYXlvdXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIGN1cnJlbnRQYWdlPzogbnVtYmVyO1xuICAgIHBhZ2VJbmRleD86IG51bWJlcjtcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgICB0b3RhbD86IG51bWJlcjtcbiAgfTtcblxuICBnZXQgY29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0Py5sZW5ndGhcbiAgICAgID8gdGhpcy5saXN0LnJlZHVjZShcbiAgICAgICAgICAocHJldiwgaXRlbSkgPT4gdW5pcShbLi4ucHJldiwgLi4uT2JqZWN0LmtleXMoaXRlbSldKSxcbiAgICAgICAgICBbXSxcbiAgICAgICAgKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIGdldCBfc3RhdHVzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMubGVuZ3RoID8gdGhpcy5zdGF0dXMgOiB7IC4uLnRoaXMuc3RhdHVzLCBub0RhdGE6IHRydWUgfTtcbiAgfVxuXG4gIGdldEFsaWdubWVudENsYXNzKHR5cGU6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jykge1xuICAgIHJldHVybiB7XG4gICAgICBsZWZ0OiAndHctanVzdGlmeS1zdGFydCcsXG4gICAgICBjZW50ZXI6ICd0dy1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICByaWdodDogJ3R3LWp1c3RpZnktZW5kJyxcbiAgICB9W3R5cGVdO1xuICB9XG5cbiAgcGFnaW5hdG9yJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHtcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBwYWdlU2l6ZTogNSxcbiAgfSk7XG5cbiAgdGFibGVMaXN0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubGlzdCQsIHRoaXMucGFnaW5hdG9yJCRdKS5waXBlKFxuICAgIG1hcCgoW2l0ZW0sIHsgY3VycmVudFBhZ2UsIHBhZ2VTaXplIH1dKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gZ2V0KGl0ZW0/LlswXSwgWyd0aW1lJywgJ3ZhbHVlJ10pXG4gICAgICAgID8gaXRlbS5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+IChiLnRpbWUudmFsdWUgYXMgbnVtYmVyKSAtIChhLnRpbWUudmFsdWUgYXMgbnVtYmVyKSxcbiAgICAgICAgICApXG4gICAgICAgIDogaXRlbTtcbiAgICAgIGlmICghdGhpcy5wYWdpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdC5zbGljZSgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplLCBjdXJyZW50UGFnZSAqIHBhZ2VTaXplKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZm9ybWF0KHZhbHVlOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdW5pdDogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZGF0YTogc3RyaW5nIHwgbnVtYmVyID0gdmFsdWU7XG4gICAgaWYgKHVuaXQgPT09ICclJykge1xuICAgICAgZGF0YSA9IGlzTmFOKCt2YWx1ZSkgfHwgIXZhbHVlID8gdmFsdWUgOiArdmFsdWUgKiAxMDA7XG4gICAgfVxuICAgIGlmICh0eXBlLmluY2x1ZGVzKCd2YWx1ZScpKSB7XG4gICAgICByZXR1cm4gaXNOYU4oK2RhdGEpIHx8ICFkYXRhID8gZGF0YSA6ICsoK2RhdGEpPy50b0ZpeGVkKDIpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3RpbWUnOiB7XG4gICAgICAgIHJldHVybiBkYXlqcygrZGF0YSAqIDEwMDApLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGN1cnJlbnRQYWdlOiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2luYXRvciQkLm5leHQoe1xuICAgICAgY3VycmVudFBhZ2UsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUgfHwgNSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInR3LWgtZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwidHctZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2hhcnQtdGl0bGUgdHctZmxleC0xIHR3LWJyZWFrLWFsbFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRhYmxlIHR3LW10LThcIlxuICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiAnY2FsYygxMDAlIC0gMTVweCknIH1cIlxuICAgICpuZ0lmPVwibGlzdFwiXG4gID5cbiAgICA8ZGl2IFthdWlUYWJsZVNjcm9sbFdyYXBwZXJdPVwicGFnaW5hdG9yID8gJ2NhbGMoMTAwJSAtIDQ4cHgpJyA6ICcxMDAlJ1wiPlxuICAgICAgPGF1aS10YWJsZVxuICAgICAgICBbZGF0YVNvdXJjZV09XCJjb2x1bW5zLmxlbmd0aCA/ICh0YWJsZUxpc3QkIHwgYXN5bmMpIDogW11cIlxuICAgICAgICBhdWlUYWJsZVNjcm9sbGFibGVcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFthdWlUYWJsZUNvbHVtbkRlZl09XCJjb2x1bW5cIj5cbiAgICAgICAgICAgIDxhdWktdGFibGUtaGVhZGVyLWNlbGxcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImFsaWdubWVudCB8IHB1cmU6IGdldEFsaWdubWVudENsYXNzXCJcbiAgICAgICAgICAgICAgKmF1aVRhYmxlSGVhZGVyQ2VsbERlZlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyRhbnkobGlzdD8uWzBdPy5bY29sdW1uXT8uc291cmNlTmFtZSkgPT09ICd0aW1lJyAmJiAhJGFueShsaXN0Py5bMF0/Lltjb2x1bW5dPy5kaXNwbGF5TmFtZSkgID8gIChjb2x1bW4gfCB0cmFuc2xhdGUpIDogY29sdW1uIH19XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiRhbnkodGFibGVMaXN0JCB8IGFzeW5jKT8uWzBdPy5bY29sdW1uXT8udW5pdCBhcyB1bml0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICh7eyB1bml0IH19KVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYXVpLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgPGF1aS10YWJsZS1jZWxsXG4gICAgICAgICAgICAgIFtjbGFzc109XCJhbGlnbm1lbnQgfCBwdXJlOiBnZXRBbGlnbm1lbnRDbGFzc1wiXG4gICAgICAgICAgICAgICphdWlUYWJsZUNlbGxEZWY9XCJsZXQgaXRlbTsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1lbGxpcHNpcyB0dy1vdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGl0ZW0/Lltjb2x1bW5dPy5jb2xvciB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0/Lltjb2x1bW5dPy52YWx1ZSB8IHB1cmU6IGZvcm1hdDppdGVtPy5bY29sdW1uXT8uc291cmNlTmFtZTogaXRlbT8uW2NvbHVtbl0/LnVuaXQgfCBhY2xGaWVsZE5vdEF2YWlsYWJsZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2F1aS10YWJsZS1jZWxsPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YXVpLXRhYmxlLWhlYWRlci1yb3dcbiAgICAgICAgICAqYXVpVGFibGVIZWFkZXJSb3dEZWY9XCJjb2x1bW5zOyBzdGlja3k6IHRydWVcIlxuICAgICAgICA+PC9hdWktdGFibGUtaGVhZGVyLXJvdz5cbiAgICAgICAgPGF1aS10YWJsZS1yb3dcbiAgICAgICAgICAqYXVpVGFibGVSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBjb2x1bW5zXCJcbiAgICAgICAgPjwvYXVpLXRhYmxlLXJvdz5cbiAgICAgIDwvYXVpLXRhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxhdWktcGFnaW5hdG9yXG4gICAgICAqbmdJZj1cInBhZ2luYXRvclwiXG4gICAgICBsYXlvdXQ9XCJwYWdlclwiXG4gICAgICBbY3VycmVudFBhZ2VdPVwiKHBhZ2luYXRvciQkIHwgYXN5bmMpLmN1cnJlbnRQYWdlXCJcbiAgICAgIFtwYWdlU2l6ZV09XCIocGFnaW5hdG9yJCQgfCBhc3luYykucGFnZVNpemVcIlxuICAgICAgW3RvdGFsXT1cImxpc3QubGVuZ3RoIHx8IDBcIlxuICAgICAgKGN1cnJlbnRQYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9hdWktcGFnaW5hdG9yPlxuICA8L2Rpdj5cbiAgPGFjbC1jaGFydC1zdGF0dXNcbiAgICBbc3RhdHVzXT1cIl9zdGF0dXNcIlxuICAgIFtjdXN0b21FcnJvcl09XCJjdXN0b21FcnJvclwiXG4gICAgKHJlZnJlc2gpPVwicmVmcmVzaC5uZXh0KClcIlxuICA+PC9hY2wtY2hhcnQtc3RhdHVzPlxuPC9kaXY+XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2EtbWV0cmljLWNoYXJ0L3RhYmxlLWNoYXJ0L3RhYmxlLWNoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC90YWJsZS1jaGFydC90YWJsZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsVUFBVSxHQUNYLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztJQ2EvQyw2QkFFQztJQUNDLFlBQ0Y7SUFBQSwwQkFBZTs7O0lBRGIsZUFDRjtJQURFLDBDQUNGOzs7SUFURiw2Q0FHQzs7SUFDQyxZQUNBOztJQUFBLG9JQUllOztJQUNqQixpQkFBd0I7Ozs7O0lBVHRCLCtFQUE2QztJQUc3QyxlQUNBO0lBREEsNFhBQ0E7SUFDRyxlQUFvRDtJQUFwRCx5TEFBb0Q7Ozs7SUFLekQsc0NBR0M7O0lBQ0MsZ0NBR0M7SUFDQyxZQUNGOzs7SUFBQSxpQkFBTyxFQUFBOzs7OztJQVJQLCtFQUE2QztJQUszQyxlQUE0QztJQUE1QywrSUFBNEM7SUFFNUMsZUFDRjtJQURFLDRXQUNGOzs7SUF0Qk4s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RVIscUVBcURNO1lBQ04sMkNBSUM7WUFEQyw4R0FBVyxrQkFBYyxJQUFDO1lBQzNCLGlCQUFtQixFQUFBOztZQXZEakIsZUFBVTtZQUFWLCtCQUFVO1lBb0RYLGVBQWtCO1lBQWxCLG9DQUFrQixnQ0FBQTs7O0FEdkNEO0lBQWxCLGVBQWUsRUFBRTs4QkFBUyxVQUFVO2tEQUFjO3VGQUZ4QyxtQkFBbUI7Y0FOL0IsU0FBUzsyQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07Z0JBR3RDLElBQUk7a0JBQVosS0FBSztZQUNhLEtBQUssTUFFZixTQUFTO2tCQUFqQixLQUFLO1lBRUcsU0FBUztrQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgZ2V0LCB1bmlxIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIERBVEVfVElNRV9GT1JNQVQsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgcHVibGlzaFJlZixcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnRDaGFydCB9IGZyb20gJy4uL2Jhc2UtY2hhcnQuY29tcG9uZW50JztcblxudHlwZSBUYWJsZUl0ZW0gPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2EtdGFibGUtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1jaGFydC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDaGFydENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnRDaGFydCB7XG4gIEBJbnB1dCgpIGxpc3Q6IFRhYmxlSXRlbVtdO1xuICBAT2JzZXJ2YWJsZUlucHV0KCkgbGlzdCQhOiBPYnNlcnZhYmxlPFRhYmxlSXRlbVtdPjtcblxuICBASW5wdXQoKSBhbGlnbm1lbnQ6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcblxuICBASW5wdXQoKSBwYWdpbmF0b3I6IHtcbiAgICBsYXlvdXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIGN1cnJlbnRQYWdlPzogbnVtYmVyO1xuICAgIHBhZ2VJbmRleD86IG51bWJlcjtcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgICB0b3RhbD86IG51bWJlcjtcbiAgfTtcblxuICBnZXQgY29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5saXN0Py5sZW5ndGhcbiAgICAgID8gdGhpcy5saXN0LnJlZHVjZShcbiAgICAgICAgICAocHJldiwgaXRlbSkgPT4gdW5pcShbLi4ucHJldiwgLi4uT2JqZWN0LmtleXMoaXRlbSldKSxcbiAgICAgICAgICBbXSxcbiAgICAgICAgKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIGdldCBfc3RhdHVzKCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMubGVuZ3RoID8gdGhpcy5zdGF0dXMgOiB7IC4uLnRoaXMuc3RhdHVzLCBub0RhdGE6IHRydWUgfTtcbiAgfVxuXG4gIGdldEFsaWdubWVudENsYXNzKHR5cGU6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jykge1xuICAgIHJldHVybiB7XG4gICAgICBsZWZ0OiAndHctanVzdGlmeS1zdGFydCcsXG4gICAgICBjZW50ZXI6ICd0dy1qdXN0aWZ5LWNlbnRlcicsXG4gICAgICByaWdodDogJ3R3LWp1c3RpZnktZW5kJyxcbiAgICB9W3R5cGVdO1xuICB9XG5cbiAgcGFnaW5hdG9yJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHtcbiAgICBjdXJyZW50UGFnZTogMSxcbiAgICBwYWdlU2l6ZTogNSxcbiAgfSk7XG5cbiAgdGFibGVMaXN0JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMubGlzdCQsIHRoaXMucGFnaW5hdG9yJCRdKS5waXBlKFxuICAgIG1hcCgoW2l0ZW0sIHsgY3VycmVudFBhZ2UsIHBhZ2VTaXplIH1dKSA9PiB7XG4gICAgICBjb25zdCBsaXN0ID0gZ2V0KGl0ZW0/LlswXSwgWyd0aW1lJywgJ3ZhbHVlJ10pXG4gICAgICAgID8gaXRlbS5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+IChiLnRpbWUudmFsdWUgYXMgbnVtYmVyKSAtIChhLnRpbWUudmFsdWUgYXMgbnVtYmVyKSxcbiAgICAgICAgICApXG4gICAgICAgIDogaXRlbTtcbiAgICAgIGlmICghdGhpcy5wYWdpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGlzdC5zbGljZSgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplLCBjdXJyZW50UGFnZSAqIHBhZ2VTaXplKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZm9ybWF0KHZhbHVlOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdW5pdDogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgZGF0YTogc3RyaW5nIHwgbnVtYmVyID0gdmFsdWU7XG4gICAgaWYgKHVuaXQgPT09ICclJykge1xuICAgICAgZGF0YSA9IGlzTmFOKCt2YWx1ZSkgfHwgIXZhbHVlID8gdmFsdWUgOiArdmFsdWUgKiAxMDA7XG4gICAgfVxuICAgIGlmICh0eXBlLmluY2x1ZGVzKCd2YWx1ZScpKSB7XG4gICAgICByZXR1cm4gaXNOYU4oK2RhdGEpIHx8ICFkYXRhID8gZGF0YSA6ICsoK2RhdGEpPy50b0ZpeGVkKDIpO1xuICAgIH1cbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ3RpbWUnOiB7XG4gICAgICAgIHJldHVybiBkYXlqcygrZGF0YSAqIDEwMDApLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUKTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlKGN1cnJlbnRQYWdlOiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2luYXRvciQkLm5leHQoe1xuICAgICAgY3VycmVudFBhZ2UsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3IucGFnZVNpemUgfHwgNSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInR3LWgtZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwidHctZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY2hhcnQtdGl0bGUgdHctZmxleC0xIHR3LWJyZWFrLWFsbFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYS10aXRsZVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInRhYmxlIHR3LW10LThcIlxuICAgIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiAnY2FsYygxMDAlIC0gMTVweCknIH1cIlxuICAgICpuZ0lmPVwibGlzdFwiXG4gID5cbiAgICA8ZGl2IFthdWlUYWJsZVNjcm9sbFdyYXBwZXJdPVwicGFnaW5hdG9yID8gJ2NhbGMoMTAwJSAtIDQ4cHgpJyA6ICcxMDAlJ1wiPlxuICAgICAgPGF1aS10YWJsZVxuICAgICAgICBbZGF0YVNvdXJjZV09XCJjb2x1bW5zLmxlbmd0aCA/ICh0YWJsZUxpc3QkIHwgYXN5bmMpIDogW11cIlxuICAgICAgICBhdWlUYWJsZVNjcm9sbGFibGVcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFthdWlUYWJsZUNvbHVtbkRlZl09XCJjb2x1bW5cIj5cbiAgICAgICAgICAgIDxhdWktdGFibGUtaGVhZGVyLWNlbGxcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImFsaWdubWVudCB8IHB1cmU6IGdldEFsaWdubWVudENsYXNzXCJcbiAgICAgICAgICAgICAgKmF1aVRhYmxlSGVhZGVyQ2VsbERlZlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyRhbnkobGlzdD8uWzBdPy5bY29sdW1uXT8uc291cmNlTmFtZSkgPT09ICd0aW1lJyAmJiAhJGFueShsaXN0Py5bMF0/Lltjb2x1bW5dPy5kaXNwbGF5TmFtZSkgID8gIChjb2x1bW4gfCB0cmFuc2xhdGUpIDogY29sdW1uIH19XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiRhbnkodGFibGVMaXN0JCB8IGFzeW5jKT8uWzBdPy5bY29sdW1uXT8udW5pdCBhcyB1bml0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICh7eyB1bml0IH19KVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYXVpLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgPGF1aS10YWJsZS1jZWxsXG4gICAgICAgICAgICAgIFtjbGFzc109XCJhbGlnbm1lbnQgfCBwdXJlOiBnZXRBbGlnbm1lbnRDbGFzc1wiXG4gICAgICAgICAgICAgICphdWlUYWJsZUNlbGxEZWY9XCJsZXQgaXRlbTsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHctdGV4dC1lbGxpcHNpcyB0dy1vdmVyZmxvdy1oaWRkZW5cIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGl0ZW0/Lltjb2x1bW5dPy5jb2xvciB9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0/Lltjb2x1bW5dPy52YWx1ZSB8IHB1cmU6IGZvcm1hdDppdGVtPy5bY29sdW1uXT8uc291cmNlTmFtZTogaXRlbT8uW2NvbHVtbl0/LnVuaXQgfCBhY2xGaWVsZE5vdEF2YWlsYWJsZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2F1aS10YWJsZS1jZWxsPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YXVpLXRhYmxlLWhlYWRlci1yb3dcbiAgICAgICAgICAqYXVpVGFibGVIZWFkZXJSb3dEZWY9XCJjb2x1bW5zOyBzdGlja3k6IHRydWVcIlxuICAgICAgICA+PC9hdWktdGFibGUtaGVhZGVyLXJvdz5cbiAgICAgICAgPGF1aS10YWJsZS1yb3dcbiAgICAgICAgICAqYXVpVGFibGVSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBjb2x1bW5zXCJcbiAgICAgICAgPjwvYXVpLXRhYmxlLXJvdz5cbiAgICAgIDwvYXVpLXRhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxhdWktcGFnaW5hdG9yXG4gICAgICAqbmdJZj1cInBhZ2luYXRvclwiXG4gICAgICBsYXlvdXQ9XCJwYWdlclwiXG4gICAgICBbY3VycmVudFBhZ2VdPVwiKHBhZ2luYXRvciQkIHwgYXN5bmMpLmN1cnJlbnRQYWdlXCJcbiAgICAgIFtwYWdlU2l6ZV09XCIocGFnaW5hdG9yJCQgfCBhc3luYykucGFnZVNpemVcIlxuICAgICAgW3RvdGFsXT1cImxpc3QubGVuZ3RoIHx8IDBcIlxuICAgICAgKGN1cnJlbnRQYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9hdWktcGFnaW5hdG9yPlxuICA8L2Rpdj5cbiAgPGFjbC1jaGFydC1zdGF0dXNcbiAgICBbc3RhdHVzXT1cIl9zdGF0dXNcIlxuICAgIFtjdXN0b21FcnJvcl09XCJjdXN0b21FcnJvclwiXG4gICAgKHJlZnJlc2gpPVwicmVmcmVzaC5uZXh0KClcIlxuICA+PC9hY2wtY2hhcnQtc3RhdHVzPlxuPC9kaXY+XG4iXX0=
@@ -13,5 +13,6 @@ export var Orientation;
13
13
  (function (Orientation) {
14
14
  Orientation["VERTICAL"] = "vertical";
15
15
  Orientation["HORIZONTAL"] = "horizontal";
16
+ Orientation["AUTO"] = "auto";
16
17
  })(Orientation || (Orientation = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYS1tZXRyaWMtY2hhcnQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxDQUFOLElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUF5Q0QsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQixrQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsU0FBUyxLQUFULFNBQVMsUUFHcEI7QUEyQkQsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixvQ0FBdUIsQ0FBQTtJQUN2Qix3Q0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgWE9SIH0gZnJvbSAndHMtZXNzZW50aWFscyc7XG5pbXBvcnQgeyBMZWdlbmRPcHQsIE9wdGlvbnMsIFRvb2x0aXBPcHRpb24sIFRvb2x0aXBWYWx1ZSB9IGZyb20gJ3p6LWNoYXJ0JztcblxuaW1wb3J0IHsgTW9uaXRvck1ldHJpY1Jlc3VsdCB9IGZyb20gJy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFN0cmluZ01hcCwgV29ya3NwYWNlUGFyYW1zIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbiB9IGZyb20gJy4uL3RyYW5zbGF0ZS90eXBlcyc7XG5cbmV4cG9ydCBlbnVtIE1ldHJpY1Njb3BlIHtcbiAgJ0NMVVNURVInID0gJ2NsdXN0ZXInLFxuICAnUFJPSkVDVCcgPSAncHJvamVjdCcsXG4gICdXT1JLU1BBQ0UnID0gJ3dvcmtzcGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIExlZ2VuZFBhcmFtcyA9XG4gIHwgc3RyaW5nXG4gIHwgKChwYXJhbXM6IEluZGljYXRvclBhcmFtcywgcmVzdWx0OiBNb25pdG9yTWV0cmljUmVzdWx0KSA9PiBzdHJpbmcpO1xuXG5leHBvcnQgdHlwZSBTZXJpZXNQYXJhbXMgPSBQYXJ0aWFsPFxuICBYT1I8eyBpbmRpY2F0b3JzOiBzdHJpbmcgfCBzdHJpbmdbXSB9LCB7IGV4cHI6IHN0cmluZyB9PiAmIHtcbiAgICBpbnZpc2libGU/OiBib29sZWFuOyAvLyDpmpDol4/nmoTmjIfmoIfvvIzkuI3nlKjkuo7nlLvnur9cbiAgICBjb2xvcj86IHN0cmluZzsgLy8g57q/6aKc6Imy77yM5LiN56m/5L2/55So6buY6K6k6Imy5YC8XG4gICAgLy8g5aSa5p2h57q/5LiL5L2/55SoIG1ldHJpYyDlsZXnpLrlm77kvossIOaUr+aMgeWkmuS4qnzliIblibIncG9kfHBvZE5hbWUn77yM5ZCO6Z2i5pyf5pyb5pSv5oyBZ28gdGVtcGxhdGVcbiAgICBsZWdlbmQ/OiBMZWdlbmRQYXJhbXM7IC8vIOWPr+aMh+WummxlZ2VuZCDkuI3orr7nva7kvb/nlKggaW5kaWNhdG9ycyDnmoTjgILmlK/mjIFmbiDoh6rlrprkuYlsZWdlbmQg57+76K+R562JXG4gIH1cbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljUGFyYW1zIHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIHNjb3BlPzogTWV0cmljU2NvcGU7IC8vIG1ldHJpYyDojIPlm7RcbiAgc2NvcGVWYWx1ZT86IHN0cmluZyB8IFdvcmtzcGFjZVBhcmFtcztcbiAgZGVwZW5kZW50RGF0YT86IGJvb2xlYW47IC8vIOS+nei1luaVsOaNru+8jOWkmuadoee6v+WcuuaZr1xuICB2YXJpYWJsZVNvdXJjZT86IFN0cmluZ01hcCB8IFN0cmluZ01hcFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZldGNoUGFyYW1zIHtcbiAgaW5kaWNhdG9yUGFyYW1zOiBJbmRpY2F0b3JQYXJhbXNbXTtcbiAgbWV0cmljUGFyYW1zOiBNZXRyaWNQYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kaWNhdG9yUGFyYW1zIHtcbiAgaWQ/OiBzdHJpbmc7IC8vIOebkeaOp+mdouadv+S9v+eUqO+8jOWFtuS7luaXoOmcgOS8oOWFpVxuICBleHByPzogc3RyaW5nO1xuICBpbmRpY2F0b3JzPzogc3RyaW5nO1xuICB2YXJpYWJsZXM6IHN0cmluZ1tdO1xuICB1bml0Pzogc3RyaW5nO1xuICBsZWdlbmQ/OiBzdHJpbmc7XG4gIGNvbG9yPzogc3RyaW5nO1xuICBpbnZpc2libGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBBVW5pdFR5cGUge1xuICBNRU1PUlkgPSAnbWVtb3J5JyxcbiAgQ0FQQUNJVFkgPSAnY2FwYWNpdHknLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFNYXRjaFVuaXRQYXJhbXMge1xuICBiYXNlPzogbnVtYmVyO1xuICB0aHJlc2hvbGQ/OiBudW1iZXI7XG4gIHVuaXRUeXBlPzogQVVuaXRUeXBlO1xuICB1bml0UmFuZ2U/OiBzdHJpbmdbXTtcbiAgZGVmYXVsdFByZWZpeD86IGJvb2xlYW47XG4gIHByZWZpeD86IHN0cmluZztcbiAgYmFzZVVuaXQ/OiBzdHJpbmc7XG4gIGdyb3Vwcz86IEFycmF5PHsgYmFzZTogbnVtYmVyOyByYW5nZTogc3RyaW5nW10gfT47XG4gIGNvbnZlcnNpb25zPzogSW5kaWNhdG9yVW5pdENvbnZlcnNpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JVbml0IHtcbiAgdHlwZTogc3RyaW5nO1xuICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb247XG4gIGNvbnZlcnNpb25zOiBJbmRpY2F0b3JVbml0Q29udmVyc2lvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclVuaXRDb252ZXJzaW9uIHtcbiAgYWxpYXM6IHN0cmluZ1tdO1xuICB1bml0OiBzdHJpbmc7XG4gIHNjYWxlcjogbnVtYmVyO1xuICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb247XG59XG5cbmV4cG9ydCBlbnVtIE9yaWVudGF0aW9uIHtcbiAgJ1ZFUlRJQ0FMJyA9ICd2ZXJ0aWNhbCcsXG4gICdIT1JJWk9OVEFMJyA9ICdob3Jpem9udGFsJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWdlbmRPcHRpb24gZXh0ZW5kcyBMZWdlbmRPcHQge1xuICBzeW1ib2w/OiAnY2lyY2xlJyB8ICdzcXVhcmUnIHwgJ2xpbmUnO1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nIHwgJ2Ryb3Bkb3duJztcbiAgdHJhbnNsYXRpb24/OiBib29sZWFuO1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xuICBzZWxlY3RBbGxOYW1lPzogYm9vbGVhbjtcbiAgZGlyZWN0aW9uPzogT3JpZW50YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQU1ldHJpY0NoYXJ0T3B0aW9uc1xuICBleHRlbmRzIE9taXQ8T3B0aW9ucywgJ3RpdGxlJyB8ICdsZWdlbmQnIHwgJ3Rvb2x0aXAnPiB7XG4gIHRpdGxlPzoge1xuICAgIHRleHQ/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIGRlc2NyaXB0aW9uQ29udGV4dD86IFN0cmluZ01hcDtcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gIH07XG4gIGxlZ2VuZD86IExlZ2VuZE9wdGlvbiB8IGJvb2xlYW47XG4gIHRvb2x0aXA/OiBNZXRyaWNDaGFydFRvb2x0aXBPcHRpb24gfCBib29sZWFuO1xuICB0YWJsZT86IFRhYmxlQ2hhcnRPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY0NoYXJ0VG9vbHRpcE9wdGlvblxuICBleHRlbmRzIE9taXQ8VG9vbHRpcE9wdGlvbiwgJ2l0ZW1Gb3JtYXR0ZXInPiB7XG4gIGl0ZW1Gb3JtYXR0ZXI/OlxuICAgIHwgKCh2YWx1ZTogVG9vbHRpcFZhbHVlW10pID0+IHN0cmluZyB8IFRvb2x0aXBWYWx1ZVtdIHwgRWxlbWVudClcbiAgICB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICB0aXRsZUZvcm1hdHRlcj86XG4gICAgfCBzdHJpbmdcbiAgICB8ICgodGl0bGU6IHN0cmluZywgdmFsdWVzOiBUb29sdGlwVmFsdWVbXSkgPT4gc3RyaW5nKVxuICAgIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIGl0ZW1UZW1wbGF0ZUNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdG9vbHRpcFRpdGxlQ29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ2hhcnRPcHRpb25zIHtcbiAgYWxpZ25tZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICBwYWdpbmF0aW9uPzogVGFibGVQYWdpbmF0b3JDaGFydE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQYWdpbmF0b3JDaGFydE9wdGlvbnMge1xuICBsYXlvdXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBjdXJyZW50UGFnZT86IG51bWJlcjtcbiAgcGFnZUluZGV4PzogbnVtYmVyO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgdG90YWw/OiBudW1iZXI7XG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYS1tZXRyaWMtY2hhcnQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxDQUFOLElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSlcsV0FBVyxLQUFYLFdBQVcsUUFJdEI7QUEwQ0QsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQixrQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsU0FBUyxLQUFULFNBQVMsUUFHcEI7QUEyQkQsTUFBTSxDQUFOLElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQixvQ0FBdUIsQ0FBQTtJQUN2Qix3Q0FBMkIsQ0FBQTtJQUMzQiw0QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBYT1IgfSBmcm9tICd0cy1lc3NlbnRpYWxzJztcbmltcG9ydCB7IExlZ2VuZE9wdCwgT3B0aW9ucywgVG9vbHRpcE9wdGlvbiwgVG9vbHRpcFZhbHVlIH0gZnJvbSAnenotY2hhcnQnO1xuXG5pbXBvcnQgeyBNb25pdG9yTWV0cmljUmVzdWx0IH0gZnJvbSAnLi4vYXBpL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgU3RyaW5nTWFwLCBXb3Jrc3BhY2VQYXJhbXMgfSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICcuLi90cmFuc2xhdGUvdHlwZXMnO1xuXG5leHBvcnQgZW51bSBNZXRyaWNTY29wZSB7XG4gICdDTFVTVEVSJyA9ICdjbHVzdGVyJyxcbiAgJ1BST0pFQ1QnID0gJ3Byb2plY3QnLFxuICAnV09SS1NQQUNFJyA9ICd3b3Jrc3BhY2UnLFxufVxuXG5leHBvcnQgdHlwZSBMZWdlbmRQYXJhbXMgPVxuICB8IHN0cmluZ1xuICB8ICgocGFyYW1zOiBJbmRpY2F0b3JQYXJhbXMsIHJlc3VsdDogTW9uaXRvck1ldHJpY1Jlc3VsdCkgPT4gc3RyaW5nKTtcblxuZXhwb3J0IHR5cGUgU2VyaWVzUGFyYW1zID0gUGFydGlhbDxcbiAgWE9SPHsgaW5kaWNhdG9yczogc3RyaW5nIHwgc3RyaW5nW10gfSwgeyBleHByOiBzdHJpbmcgfT4gJiB7XG4gICAgaW52aXNpYmxlPzogYm9vbGVhbjsgLy8g6ZqQ6JeP55qE5oyH5qCH77yM5LiN55So5LqO55S757q/XG4gICAgY29sb3I/OiBzdHJpbmc7IC8vIOe6v+minOiJsu+8jOS4jeepv+S9v+eUqOm7mOiupOiJsuWAvFxuICAgIC8vIOWkmuadoee6v+S4i+S9v+eUqCBtZXRyaWMg5bGV56S65Zu+5L6LLCDmlK/mjIHlpJrkuKp85YiG5YmyJ3BvZHxwb2ROYW1lJ++8jOWQjumdouacn+acm+aUr+aMgWdvIHRlbXBsYXRlXG4gICAgbGVnZW5kPzogTGVnZW5kUGFyYW1zOyAvLyDlj6/mjIflrppsZWdlbmQg5LiN6K6+572u5L2/55SoIGluZGljYXRvcnMg55qE44CC5pSv5oyBZm4g6Ieq5a6a5LmJbGVnZW5kIOe/u+ivkeetiVxuICB9XG4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY1BhcmFtcyB7XG4gIHN0YXJ0OiBudW1iZXI7XG4gIGVuZDogbnVtYmVyO1xuICBzdGVwPzogbnVtYmVyO1xuICBzY29wZT86IE1ldHJpY1Njb3BlOyAvLyBtZXRyaWMg6IyD5Zu0XG4gIHNjb3BlVmFsdWU/OiBzdHJpbmcgfCBXb3Jrc3BhY2VQYXJhbXM7XG4gIGRlcGVuZGVudERhdGE/OiBib29sZWFuOyAvLyDkvp3otZbmlbDmja7vvIzlpJrmnaHnur/lnLrmma9cbiAgdmFyaWFibGVTb3VyY2U/OiBTdHJpbmdNYXAgfCBTdHJpbmdNYXBbXTtcbiAgaXNJbmRleD86IGJvb2xlYW47IC8vIFRPRE/vvJog55uR5o6n6Z2i5p2/5LiL5LiA5Liq5oyH5qCH5a+55bqU5LiA5LiqIHZhciDvvIzmoLnmja5pbmRleCDljLnphY3vvIzlhbbku5blnLrmma/pu5jorqTkvKDlhaXmlbDnu4Tor7fmsYLlpJrmrKFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZXRjaFBhcmFtcyB7XG4gIGluZGljYXRvclBhcmFtczogSW5kaWNhdG9yUGFyYW1zW107XG4gIG1ldHJpY1BhcmFtczogTWV0cmljUGFyYW1zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGljYXRvclBhcmFtcyB7XG4gIGlkPzogc3RyaW5nOyAvLyDnm5HmjqfpnaLmnb/kvb/nlKjvvIzlhbbku5bml6DpnIDkvKDlhaVcbiAgZXhwcj86IHN0cmluZztcbiAgaW5kaWNhdG9ycz86IHN0cmluZztcbiAgdmFyaWFibGVzOiBzdHJpbmdbXTtcbiAgdW5pdD86IHN0cmluZztcbiAgbGVnZW5kPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgaW52aXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQVVuaXRUeXBlIHtcbiAgTUVNT1JZID0gJ21lbW9yeScsXG4gIENBUEFDSVRZID0gJ2NhcGFjaXR5Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBTWF0Y2hVbml0UGFyYW1zIHtcbiAgYmFzZT86IG51bWJlcjtcbiAgdGhyZXNob2xkPzogbnVtYmVyO1xuICB1bml0VHlwZT86IEFVbml0VHlwZTtcbiAgdW5pdFJhbmdlPzogc3RyaW5nW107XG4gIGRlZmF1bHRQcmVmaXg/OiBib29sZWFuO1xuICBwcmVmaXg/OiBzdHJpbmc7XG4gIGJhc2VVbml0Pzogc3RyaW5nO1xuICBncm91cHM/OiBBcnJheTx7IGJhc2U6IG51bWJlcjsgcmFuZ2U6IHN0cmluZ1tdIH0+O1xuICBjb252ZXJzaW9ucz86IEluZGljYXRvclVuaXRDb252ZXJzaW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kaWNhdG9yVW5pdCB7XG4gIHR5cGU6IHN0cmluZztcbiAgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uO1xuICBjb252ZXJzaW9uczogSW5kaWNhdG9yVW5pdENvbnZlcnNpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JVbml0Q29udmVyc2lvbiB7XG4gIGFsaWFzOiBzdHJpbmdbXTtcbiAgdW5pdDogc3RyaW5nO1xuICBzY2FsZXI6IG51bWJlcjtcbiAgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uO1xufVxuXG5leHBvcnQgZW51bSBPcmllbnRhdGlvbiB7XG4gICdWRVJUSUNBTCcgPSAndmVydGljYWwnLFxuICAnSE9SSVpPTlRBTCcgPSAnaG9yaXpvbnRhbCcsXG4gICdBVVRPJyA9ICdhdXRvJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZWdlbmRPcHRpb24gZXh0ZW5kcyBMZWdlbmRPcHQge1xuICBzeW1ib2w/OiAnY2lyY2xlJyB8ICdzcXVhcmUnIHwgJ2xpbmUnO1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgc3RyaW5nIHwgJ2Ryb3Bkb3duJztcbiAgdHJhbnNsYXRpb24/OiBib29sZWFuO1xuICBzZWxlY3RBbGw/OiBib29sZWFuO1xuICBzZWxlY3RBbGxOYW1lPzogYm9vbGVhbjtcbiAgZGlyZWN0aW9uPzogT3JpZW50YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQU1ldHJpY0NoYXJ0T3B0aW9uc1xuICBleHRlbmRzIE9taXQ8T3B0aW9ucywgJ3RpdGxlJyB8ICdsZWdlbmQnIHwgJ3Rvb2x0aXAnPiB7XG4gIHRpdGxlPzoge1xuICAgIHRleHQ/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIGRlc2NyaXB0aW9uQ29udGV4dD86IFN0cmluZ01hcDtcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gIH07XG4gIGxlZ2VuZD86IExlZ2VuZE9wdGlvbiB8IGJvb2xlYW47XG4gIHRvb2x0aXA/OiBNZXRyaWNDaGFydFRvb2x0aXBPcHRpb24gfCBib29sZWFuO1xuICB0YWJsZT86IFRhYmxlQ2hhcnRPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY0NoYXJ0VG9vbHRpcE9wdGlvblxuICBleHRlbmRzIE9taXQ8VG9vbHRpcE9wdGlvbiwgJ2l0ZW1Gb3JtYXR0ZXInPiB7XG4gIGl0ZW1Gb3JtYXR0ZXI/OlxuICAgIHwgKCh2YWx1ZTogVG9vbHRpcFZhbHVlW10pID0+IHN0cmluZyB8IFRvb2x0aXBWYWx1ZVtdIHwgRWxlbWVudClcbiAgICB8IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICB0aXRsZUZvcm1hdHRlcj86XG4gICAgfCBzdHJpbmdcbiAgICB8ICgodGl0bGU6IHN0cmluZywgdmFsdWVzOiBUb29sdGlwVmFsdWVbXSkgPT4gc3RyaW5nKVxuICAgIHwgVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gIGl0ZW1UZW1wbGF0ZUNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdG9vbHRpcFRpdGxlQ29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ2hhcnRPcHRpb25zIHtcbiAgYWxpZ25tZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICBwYWdpbmF0aW9uPzogVGFibGVQYWdpbmF0b3JDaGFydE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVQYWdpbmF0b3JDaGFydE9wdGlvbnMge1xuICBsYXlvdXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBjdXJyZW50UGFnZT86IG51bWJlcjtcbiAgcGFnZUluZGV4PzogbnVtYmVyO1xuICBwYWdlU2l6ZT86IG51bWJlcjtcbiAgdG90YWw/OiBudW1iZXI7XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './range';
2
+ export * from './unit';
3
+ export * from './util';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC91dGlscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL3VuaXQnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsJztcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { last, max } from 'lodash-es';
2
- import { UNITS } from '../../core/utils';
2
+ import { UNITS } from '../../core/utils/public-api';
3
3
  import { AUnitType } from '../types';
4
4
  export const MATCH_UNIT_DEFAULT_BASE = 1024;
5
5
  export function adaptChartUnit(data, adaptUnitParams) {
@@ -80,4 +80,4 @@ export function getIndicatorAdaptUnit(unit, unitMapper) {
80
80
  conversions,
81
81
  };
82
82
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC91dGlscy91bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQW9CLFNBQVMsRUFBaUIsTUFBTSxVQUFVLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBRTVDLE1BQU0sVUFBVSxjQUFjLENBQzVCLElBR0UsRUFDRixlQUEyQztJQUUzQyxJQUFJLElBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUNuQyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsSUFBSSxlQUFlLEVBQUUsSUFBSSxFQUFFO1FBQ2hFLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0tBQzdCO0lBQ0QsTUFBTSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxFQUFFLEtBQUssR0FDWixHQUFHLFNBQVMsQ0FDWCxJQUFJLEVBQ0osQ0FBQyxlQUFlLEtBQUssSUFBSTtRQUN2QixDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxlQUFlLENBQXFCLENBQ3pDLENBQUM7SUFDRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFDRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixlQUdFLEVBQ0YsTUFBeUI7SUFFekIsT0FBTyxTQUFTLENBQ2QsR0FBRyxDQUNELGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNsRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNyQixDQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBeUI7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxPQUFPO1FBQ0wsSUFBSTtRQUNKLElBQUk7UUFDSixRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBVSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBeUM7SUFDM0QsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWTtJQUNoQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLO0NBQzVCLENBQUM7QUFDRixTQUFTLFVBQVUsQ0FDakIsS0FBYSxFQUNiLEVBQ0UsSUFBSSxHQUFHLHVCQUF1QixFQUM5QixTQUFTLEdBQUcsR0FBRyxFQUNmLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUM3QixNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsTUFDWSxFQUFFO0lBRXhCLE1BQU0sS0FBSyxHQUFHLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUM5QztJQUNELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLFVBQVU7UUFDMUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFO1FBQzVCLE1BQU0sS0FBSyxHQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ3pFLElBQUksS0FBSyxJQUFJLFNBQVMsRUFBRTtZQUN0QixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQ25EO1FBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7UUFDdkQsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7S0FDbEQ7SUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFpQjtJQUN6QyxPQUFPLENBQ0wsQ0FBQyxHQUFHO1FBQ0osR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFDO1FBQ2pCLEdBQUcsRUFBRSxLQUFLLENBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FDdEUsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsSUFBWSxFQUNaLFVBQTJCO0lBRTNCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUU7WUFDUixLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDRixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxPQUFPO1FBQ0wsYUFBYSxFQUFFLEtBQUs7UUFDcEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTTtRQUN2QyxTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkMsV0FBVztLQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFzdCwgbWF4IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL2EtY2hhcnQvdHlwZXMnO1xuaW1wb3J0IHsgVU5JVFMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFNYXRjaFVuaXRQYXJhbXMsIEFVbml0VHlwZSwgSW5kaWNhdG9yVW5pdCB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IE1BVENIX1VOSVRfREVGQVVMVF9CQVNFID0gMTAyNDtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0Q2hhcnRVbml0KFxuICBkYXRhOiBBcnJheTx7XG4gICAgZGF0YT86IEFycmF5PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT47XG4gICAgdmFsdWVzPzogQXJyYXk8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PjtcbiAgfT4sXG4gIGFkYXB0VW5pdFBhcmFtczogYm9vbGVhbiB8IEFNYXRjaFVuaXRQYXJhbXMsXG4pIHtcbiAgbGV0IGJhc2UgPSBNQVRDSF9VTklUX0RFRkFVTFRfQkFTRTtcbiAgaWYgKHR5cGVvZiBhZGFwdFVuaXRQYXJhbXMgPT09ICdvYmplY3QnICYmIGFkYXB0VW5pdFBhcmFtcz8uYmFzZSkge1xuICAgIGJhc2UgPSBhZGFwdFVuaXRQYXJhbXMuYmFzZTtcbiAgfVxuICBjb25zdCB7XG4gICAgdW5pdCxcbiAgICBleHBvbmVudCxcbiAgICBiYXNlOiBfYmFzZSxcbiAgfSA9IGFkYXB0VW5pdChcbiAgICBkYXRhLFxuICAgIChhZGFwdFVuaXRQYXJhbXMgPT09IHRydWVcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IGFkYXB0VW5pdFBhcmFtcykgYXMgQU1hdGNoVW5pdFBhcmFtcyxcbiAgKTtcbiAgcmV0dXJuIHsgYmFzZTogX2Jhc2UgfHwgYmFzZSwgZXhwb25lbnQsIHVuaXQgfTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGFwdFVuaXQoXG4gIHNlcmllc09yTWV0cmljczogQXJyYXk8e1xuICAgIGRhdGE/OiBBcnJheTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+O1xuICAgIHZhbHVlcz86IEFycmF5PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT47XG4gIH0+LFxuICBwYXJhbXM/OiBBTWF0Y2hVbml0UGFyYW1zLFxuKSB7XG4gIHJldHVybiBtYXRjaFVuaXQoXG4gICAgbWF4PG51bWJlcj4oXG4gICAgICBzZXJpZXNPck1ldHJpY3MuZmxhdE1hcCgoeyBkYXRhLCB2YWx1ZXMgPSBkYXRhIH0pID0+XG4gICAgICAgIHZhbHVlcy5tYXAoZCA9PiBkLnkpLFxuICAgICAgKSxcbiAgICApLFxuICAgIHBhcmFtcyxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoVW5pdCh2YWx1ZTogbnVtYmVyLCBwYXJhbXM/OiBBTWF0Y2hVbml0UGFyYW1zKSB7XG4gIGNvbnN0IHsgdW5pdCwgdW5pdHMsIGJhc2UgfSA9IF9tYXRjaFVuaXQodmFsdWUsIHBhcmFtcyk7XG4gIHJldHVybiB7XG4gICAgdW5pdCxcbiAgICBiYXNlLFxuICAgIGV4cG9uZW50OiB1bml0cy5pbmRleE9mKHVuaXQpLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgQkFTRV9VTklUUyA9IFsnSycsICdNJywgJ0cnLCAnVCcsICdQJywgJ0UnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBNRU1PUllfVU5JVFMgPSBCQVNFX1VOSVRTLm1hcCh1bml0ID0+IHVuaXQgKyAnaScpO1xuZXhwb3J0IGNvbnN0IFVuaXRNYXA6IHsgW2tleTogc3RyaW5nXTogcmVhZG9ubHkgc3RyaW5nW10gfSA9IHtcbiAgW0FVbml0VHlwZS5NRU1PUlldOiBNRU1PUllfVU5JVFMsXG4gIFtBVW5pdFR5cGUuQ0FQQUNJVFldOiBVTklUUyxcbn07XG5mdW5jdGlvbiBfbWF0Y2hVbml0KFxuICB2YWx1ZTogbnVtYmVyLFxuICB7XG4gICAgYmFzZSA9IE1BVENIX1VOSVRfREVGQVVMVF9CQVNFLFxuICAgIHRocmVzaG9sZCA9IDgwMCxcbiAgICB1bml0VHlwZSA9IEFVbml0VHlwZS5DQVBBQ0lUWSxcbiAgICBncm91cHMsXG4gICAgdW5pdFJhbmdlLFxuICAgIGJhc2VVbml0LFxuICB9OiBBTWF0Y2hVbml0UGFyYW1zID0ge30sXG4pIHtcbiAgY29uc3QgdW5pdHMgPSB1bml0UmFuZ2UgfHwgVW5pdE1hcFt1bml0VHlwZV07XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4geyB1bml0OiBiYXNlVW5pdCB8fCB1bml0c1swXSwgdW5pdHMgfTtcbiAgfVxuICBjb25zdCBjbG9uZVVuaXRzID0gdW5pdHMubWFwKGl0ZW0gPT4gaXRlbSk7XG4gIGNvbnN0IGluZGV4ID0gdW5pdHMuaW5kZXhPZihiYXNlVW5pdCB8fCB1bml0c1swXSk7XG4gIGNvbnN0IGlzUG9zaXRpdmUgPSB2YWx1ZSA+IHRocmVzaG9sZDtcbiAgY29uc3QgdW5pdHNMaXN0ID0gaXNQb3NpdGl2ZVxuICAgID8gY2xvbmVVbml0cy5zcGxpY2UoaW5kZXgpXG4gICAgOiBjbG9uZVVuaXRzLnNwbGljZSgwLCBpbmRleCArIDEpLnJldmVyc2UoKTtcbiAgbGV0IHVuaXRCYXNlID0gMTtcbiAgZm9yIChjb25zdCB1bml0IG9mIHVuaXRzTGlzdCkge1xuICAgIGNvbnN0IF9iYXNlOiBudW1iZXIgPVxuICAgICAgZ3JvdXBzPy5maW5kKGcgPT4gZy5yYW5nZT8uc2xpY2UoMCwgLTEpPy5pbmNsdWRlcyh1bml0KSk/LmJhc2UgfHwgYmFzZTtcbiAgICBpZiAodmFsdWUgPD0gdGhyZXNob2xkKSB7XG4gICAgICByZXR1cm4geyB1bml0LCBiYXNlOiB1bml0QmFzZSwgdW5pdHM6IHVuaXRzTGlzdCB9O1xuICAgIH1cbiAgICBpc1Bvc2l0aXZlID8gKHVuaXRCYXNlICo9IF9iYXNlKSA6ICh1bml0QmFzZSAvPSBfYmFzZSk7XG4gICAgaXNQb3NpdGl2ZSA/ICh2YWx1ZSAvPSBfYmFzZSkgOiAodmFsdWUgKj0gX2Jhc2UpO1xuICB9XG4gIHJldHVybiB7IHVuaXQ6IGxhc3QodW5pdHNMaXN0KSwgYmFzZTogdW5pdEJhc2UsIHVuaXRzOiB1bml0c0xpc3QgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc05vRGF0YShyZXM6IEFDaGFydERhdGFbXSkge1xuICByZXR1cm4gKFxuICAgICFyZXMgfHxcbiAgICByZXM/Lmxlbmd0aCA9PT0gMCB8fFxuICAgIHJlcz8uZXZlcnkoXG4gICAgICBpdGVtID0+ICFpdGVtPy52YWx1ZXM/Lmxlbmd0aCB8fCBpdGVtLnZhbHVlcy5ldmVyeShkID0+IGQueSA9PT0gbnVsbCksXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5kaWNhdG9yQWRhcHRVbml0KFxuICB1bml0OiBzdHJpbmcsXG4gIHVuaXRNYXBwZXI6IEluZGljYXRvclVuaXRbXSxcbikge1xuICBpZiAoIXVuaXQgfHwgIXVuaXRNYXBwZXI/Lmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGxldCBpbmRleCA9IDA7XG4gIGNvbnN0IHVuaXRNYXAgPSB1bml0TWFwcGVyLmZpbmQoaXRlbSA9PlxuICAgIGl0ZW0uY29udmVyc2lvbnMuc29tZSgoYywgaSkgPT4ge1xuICAgICAgY29uc3QgcGFzcyA9IFsuLi5jLmFsaWFzLCBjLnVuaXRdLmluY2x1ZGVzKHVuaXQpO1xuICAgICAgaWYgKHBhc3MpIHtcbiAgICAgICAgaW5kZXggPSBpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhc3M7XG4gICAgfSksXG4gICk7XG4gIGlmICghdW5pdE1hcCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IF9jb252ZXJzaW9ucyA9IFsuLi51bml0TWFwLmNvbnZlcnNpb25zXTtcbiAgY29uc3QgY29udmVyc2lvbnMgPSBfY29udmVyc2lvbnMuc3BsaWNlKGluZGV4KTtcbiAgcmV0dXJuIHtcbiAgICBkZWZhdWx0UHJlZml4OiBmYWxzZSxcbiAgICBiYXNlOiB1bml0TWFwLmNvbnZlcnNpb25zW2luZGV4XS5zY2FsZXIsXG4gICAgdW5pdFJhbmdlOiBjb252ZXJzaW9ucy5tYXAoZCA9PiBkLnVuaXQpLFxuICAgIGNvbnZlcnNpb25zLFxuICB9O1xufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC91dGlscy91bml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQW9CLFNBQVMsRUFBaUIsTUFBTSxVQUFVLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBRTVDLE1BQU0sVUFBVSxjQUFjLENBQzVCLElBR0UsRUFDRixlQUEyQztJQUUzQyxJQUFJLElBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUNuQyxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsSUFBSSxlQUFlLEVBQUUsSUFBSSxFQUFFO1FBQ2hFLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO0tBQzdCO0lBQ0QsTUFBTSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxFQUFFLEtBQUssR0FDWixHQUFHLFNBQVMsQ0FDWCxJQUFJLEVBQ0osQ0FBQyxlQUFlLEtBQUssSUFBSTtRQUN2QixDQUFDLENBQUMsU0FBUztRQUNYLENBQUMsQ0FBQyxlQUFlLENBQXFCLENBQ3pDLENBQUM7SUFDRixPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFDRCxNQUFNLFVBQVUsU0FBUyxDQUN2QixlQUdFLEVBQ0YsTUFBeUI7SUFFekIsT0FBTyxTQUFTLENBQ2QsR0FBRyxDQUNELGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNsRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNyQixDQUNGLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBeUI7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN4RCxPQUFPO1FBQ0wsSUFBSTtRQUNKLElBQUk7UUFDSixRQUFRLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDOUIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBVSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBeUM7SUFDM0QsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWTtJQUNoQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLO0NBQzVCLENBQUM7QUFDRixTQUFTLFVBQVUsQ0FDakIsS0FBYSxFQUNiLEVBQ0UsSUFBSSxHQUFHLHVCQUF1QixFQUM5QixTQUFTLEdBQUcsR0FBRyxFQUNmLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUM3QixNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsTUFDWSxFQUFFO0lBRXhCLE1BQU0sS0FBSyxHQUFHLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUM5QztJQUNELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO0lBQ3JDLE1BQU0sU0FBUyxHQUFHLFVBQVU7UUFDMUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFO1FBQzVCLE1BQU0sS0FBSyxHQUNULE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ3pFLElBQUksS0FBSyxJQUFJLFNBQVMsRUFBRTtZQUN0QixPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQ25EO1FBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7UUFDdkQsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUM7S0FDbEQ7SUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNyRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFpQjtJQUN6QyxPQUFPLENBQ0wsQ0FBQyxHQUFHO1FBQ0osR0FBRyxFQUFFLE1BQU0sS0FBSyxDQUFDO1FBQ2pCLEdBQUcsRUFBRSxLQUFLLENBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FDdEUsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsSUFBWSxFQUNaLFVBQTJCO0lBRTNCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUU7WUFDUixLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDRixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxPQUFPO1FBQ0wsYUFBYSxFQUFFLEtBQUs7UUFDcEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTTtRQUN2QyxTQUFTLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkMsV0FBVztLQUNaLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbGFzdCwgbWF4IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL2EtY2hhcnQvdHlwZXMnO1xuaW1wb3J0IHsgVU5JVFMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQU1hdGNoVW5pdFBhcmFtcywgQVVuaXRUeXBlLCBJbmRpY2F0b3JVbml0IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgTUFUQ0hfVU5JVF9ERUZBVUxUX0JBU0UgPSAxMDI0O1xuXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRDaGFydFVuaXQoXG4gIGRhdGE6IEFycmF5PHtcbiAgICBkYXRhPzogQXJyYXk8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PjtcbiAgICB2YWx1ZXM/OiBBcnJheTx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+O1xuICB9PixcbiAgYWRhcHRVbml0UGFyYW1zOiBib29sZWFuIHwgQU1hdGNoVW5pdFBhcmFtcyxcbikge1xuICBsZXQgYmFzZSA9IE1BVENIX1VOSVRfREVGQVVMVF9CQVNFO1xuICBpZiAodHlwZW9mIGFkYXB0VW5pdFBhcmFtcyA9PT0gJ29iamVjdCcgJiYgYWRhcHRVbml0UGFyYW1zPy5iYXNlKSB7XG4gICAgYmFzZSA9IGFkYXB0VW5pdFBhcmFtcy5iYXNlO1xuICB9XG4gIGNvbnN0IHtcbiAgICB1bml0LFxuICAgIGV4cG9uZW50LFxuICAgIGJhc2U6IF9iYXNlLFxuICB9ID0gYWRhcHRVbml0KFxuICAgIGRhdGEsXG4gICAgKGFkYXB0VW5pdFBhcmFtcyA9PT0gdHJ1ZVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogYWRhcHRVbml0UGFyYW1zKSBhcyBBTWF0Y2hVbml0UGFyYW1zLFxuICApO1xuICByZXR1cm4geyBiYXNlOiBfYmFzZSB8fCBiYXNlLCBleHBvbmVudCwgdW5pdCB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0VW5pdChcbiAgc2VyaWVzT3JNZXRyaWNzOiBBcnJheTx7XG4gICAgZGF0YT86IEFycmF5PHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfT47XG4gICAgdmFsdWVzPzogQXJyYXk8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PjtcbiAgfT4sXG4gIHBhcmFtcz86IEFNYXRjaFVuaXRQYXJhbXMsXG4pIHtcbiAgcmV0dXJuIG1hdGNoVW5pdChcbiAgICBtYXg8bnVtYmVyPihcbiAgICAgIHNlcmllc09yTWV0cmljcy5mbGF0TWFwKCh7IGRhdGEsIHZhbHVlcyA9IGRhdGEgfSkgPT5cbiAgICAgICAgdmFsdWVzLm1hcChkID0+IGQueSksXG4gICAgICApLFxuICAgICksXG4gICAgcGFyYW1zLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hVbml0KHZhbHVlOiBudW1iZXIsIHBhcmFtcz86IEFNYXRjaFVuaXRQYXJhbXMpIHtcbiAgY29uc3QgeyB1bml0LCB1bml0cywgYmFzZSB9ID0gX21hdGNoVW5pdCh2YWx1ZSwgcGFyYW1zKTtcbiAgcmV0dXJuIHtcbiAgICB1bml0LFxuICAgIGJhc2UsXG4gICAgZXhwb25lbnQ6IHVuaXRzLmluZGV4T2YodW5pdCksXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBCQVNFX1VOSVRTID0gWydLJywgJ00nLCAnRycsICdUJywgJ1AnLCAnRSddIGFzIGNvbnN0O1xuZXhwb3J0IGNvbnN0IE1FTU9SWV9VTklUUyA9IEJBU0VfVU5JVFMubWFwKHVuaXQgPT4gdW5pdCArICdpJyk7XG5leHBvcnQgY29uc3QgVW5pdE1hcDogeyBba2V5OiBzdHJpbmddOiByZWFkb25seSBzdHJpbmdbXSB9ID0ge1xuICBbQVVuaXRUeXBlLk1FTU9SWV06IE1FTU9SWV9VTklUUyxcbiAgW0FVbml0VHlwZS5DQVBBQ0lUWV06IFVOSVRTLFxufTtcbmZ1bmN0aW9uIF9tYXRjaFVuaXQoXG4gIHZhbHVlOiBudW1iZXIsXG4gIHtcbiAgICBiYXNlID0gTUFUQ0hfVU5JVF9ERUZBVUxUX0JBU0UsXG4gICAgdGhyZXNob2xkID0gODAwLFxuICAgIHVuaXRUeXBlID0gQVVuaXRUeXBlLkNBUEFDSVRZLFxuICAgIGdyb3VwcyxcbiAgICB1bml0UmFuZ2UsXG4gICAgYmFzZVVuaXQsXG4gIH06IEFNYXRjaFVuaXRQYXJhbXMgPSB7fSxcbikge1xuICBjb25zdCB1bml0cyA9IHVuaXRSYW5nZSB8fCBVbml0TWFwW3VuaXRUeXBlXTtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiB7IHVuaXQ6IGJhc2VVbml0IHx8IHVuaXRzWzBdLCB1bml0cyB9O1xuICB9XG4gIGNvbnN0IGNsb25lVW5pdHMgPSB1bml0cy5tYXAoaXRlbSA9PiBpdGVtKTtcbiAgY29uc3QgaW5kZXggPSB1bml0cy5pbmRleE9mKGJhc2VVbml0IHx8IHVuaXRzWzBdKTtcbiAgY29uc3QgaXNQb3NpdGl2ZSA9IHZhbHVlID4gdGhyZXNob2xkO1xuICBjb25zdCB1bml0c0xpc3QgPSBpc1Bvc2l0aXZlXG4gICAgPyBjbG9uZVVuaXRzLnNwbGljZShpbmRleClcbiAgICA6IGNsb25lVW5pdHMuc3BsaWNlKDAsIGluZGV4ICsgMSkucmV2ZXJzZSgpO1xuICBsZXQgdW5pdEJhc2UgPSAxO1xuICBmb3IgKGNvbnN0IHVuaXQgb2YgdW5pdHNMaXN0KSB7XG4gICAgY29uc3QgX2Jhc2U6IG51bWJlciA9XG4gICAgICBncm91cHM/LmZpbmQoZyA9PiBnLnJhbmdlPy5zbGljZSgwLCAtMSk/LmluY2x1ZGVzKHVuaXQpKT8uYmFzZSB8fCBiYXNlO1xuICAgIGlmICh2YWx1ZSA8PSB0aHJlc2hvbGQpIHtcbiAgICAgIHJldHVybiB7IHVuaXQsIGJhc2U6IHVuaXRCYXNlLCB1bml0czogdW5pdHNMaXN0IH07XG4gICAgfVxuICAgIGlzUG9zaXRpdmUgPyAodW5pdEJhc2UgKj0gX2Jhc2UpIDogKHVuaXRCYXNlIC89IF9iYXNlKTtcbiAgICBpc1Bvc2l0aXZlID8gKHZhbHVlIC89IF9iYXNlKSA6ICh2YWx1ZSAqPSBfYmFzZSk7XG4gIH1cbiAgcmV0dXJuIHsgdW5pdDogbGFzdCh1bml0c0xpc3QpLCBiYXNlOiB1bml0QmFzZSwgdW5pdHM6IHVuaXRzTGlzdCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTm9EYXRhKHJlczogQUNoYXJ0RGF0YVtdKSB7XG4gIHJldHVybiAoXG4gICAgIXJlcyB8fFxuICAgIHJlcz8ubGVuZ3RoID09PSAwIHx8XG4gICAgcmVzPy5ldmVyeShcbiAgICAgIGl0ZW0gPT4gIWl0ZW0/LnZhbHVlcz8ubGVuZ3RoIHx8IGl0ZW0udmFsdWVzLmV2ZXJ5KGQgPT4gZC55ID09PSBudWxsKSxcbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmRpY2F0b3JBZGFwdFVuaXQoXG4gIHVuaXQ6IHN0cmluZyxcbiAgdW5pdE1hcHBlcjogSW5kaWNhdG9yVW5pdFtdLFxuKSB7XG4gIGlmICghdW5pdCB8fCAhdW5pdE1hcHBlcj8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgbGV0IGluZGV4ID0gMDtcbiAgY29uc3QgdW5pdE1hcCA9IHVuaXRNYXBwZXIuZmluZChpdGVtID0+XG4gICAgaXRlbS5jb252ZXJzaW9ucy5zb21lKChjLCBpKSA9PiB7XG4gICAgICBjb25zdCBwYXNzID0gWy4uLmMuYWxpYXMsIGMudW5pdF0uaW5jbHVkZXModW5pdCk7XG4gICAgICBpZiAocGFzcykge1xuICAgICAgICBpbmRleCA9IGk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFzcztcbiAgICB9KSxcbiAgKTtcbiAgaWYgKCF1bml0TWFwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgX2NvbnZlcnNpb25zID0gWy4uLnVuaXRNYXAuY29udmVyc2lvbnNdO1xuICBjb25zdCBjb252ZXJzaW9ucyA9IF9jb252ZXJzaW9ucy5zcGxpY2UoaW5kZXgpO1xuICByZXR1cm4ge1xuICAgIGRlZmF1bHRQcmVmaXg6IGZhbHNlLFxuICAgIGJhc2U6IHVuaXRNYXAuY29udmVyc2lvbnNbaW5kZXhdLnNjYWxlcixcbiAgICB1bml0UmFuZ2U6IGNvbnZlcnNpb25zLm1hcChkID0+IGQudW5pdCksXG4gICAgY29udmVyc2lvbnMsXG4gIH07XG59XG4iXX0=
@@ -1,37 +1,40 @@
1
1
  import dayjs from 'dayjs';
2
- import { get, isEqual, isFunction, template, uniq } from 'lodash-es';
2
+ import { get, isFunction, template } from 'lodash-es';
3
3
  import { CHART_TIME_FORMAT } from '../../a-chart/public-api';
4
4
  import { FIELD_NOT_AVAILABLE_PLACEHOLDER, } from '../../core/public-api';
5
5
  import { PICKER_TIME_RANGES } from '../../metric-chart/helpers';
6
6
  import { roundInterval } from './range';
7
- export function handleMetricParams(params, { variableSource, start, end, step }) {
8
- const value = params.reduce((pre, cur) => {
7
+ export function handleMetricParams(params, { variableSource, start, end, step, isIndex }) {
8
+ // eslint-disable-next-line sonarjs/cognitive-complexity
9
+ const value = params.map((cur, index) => {
9
10
  const v = Array.isArray(variableSource)
10
- ? variableSource
11
+ ? variableSource.filter((item, i) => Object.keys(item).length &&
12
+ ((isIndex
13
+ ? index === i
14
+ : cur?.variables?.every(v => Object.keys(item).includes(v))) ||
15
+ cur.expr))
11
16
  : cur.variables?.length && variableSource
12
17
  ? [variableSource]
13
18
  : [];
14
19
  const variable = v.map(value => {
15
- return cur.variables?.reduce((pre, key) => value[key]
16
- ? {
17
- ...pre,
18
- [key]: value[key],
19
- }
20
- : pre, {});
20
+ return cur.expr
21
+ ? value
22
+ : cur.variables?.reduce((pre, key) => value[key]
23
+ ? {
24
+ ...pre,
25
+ [key]: value[key],
26
+ }
27
+ : pre, {});
21
28
  });
22
29
  const indicators = cur.indicators || cur.expr;
23
30
  return {
24
- indicators: cur.indicators
25
- ? uniq([...pre.indicators, indicators])
26
- : pre.indicators,
27
- exprs: cur.expr ? [...pre.exprs, indicators] : pre.exprs,
28
- variables: isEqual(variable.reduce((p, c) => ({ ...p, ...c }), {}), pre.variables.reduce((p, c) => ({ ...p, ...c }), {}))
29
- ? pre.variables
30
- : [...pre.variables, ...variable],
31
+ indicators: cur.indicators,
32
+ exprs: cur.expr ? [indicators] : [],
33
+ variables: variable,
31
34
  };
32
- }, { indicators: [], exprs: [], variables: [] });
35
+ });
33
36
  return {
34
- ...value,
37
+ indicators: value,
35
38
  start,
36
39
  end,
37
40
  step,
@@ -193,14 +196,16 @@ export const VARIABLE_KEY_CLUSTER = '$cluster';
193
196
  export const VARIABLE_KEY_NAMESPACE = '$namespace';
194
197
  export function replaceExprVariable(expr, variable) {
195
198
  let data = Array.isArray(expr) ? expr.join('|') : expr;
196
- const variableKeys = Object.keys(variable);
197
- const variableValues = Object.values(variable);
199
+ const variableKeys = Object.keys(variable || {});
200
+ const variableValues = Object.values(variable || {});
198
201
  const vars = data && typeof data.match === 'function' ? data.match(/\$\w+/g) : [];
199
202
  if (!variableKeys.length ||
200
203
  !variableKeys.some(v => vars?.some(item => item.replace('$', '') === v))) {
201
204
  return data;
202
205
  }
203
- vars.forEach(key => {
206
+ vars
207
+ .sort((a, b) => b.length - a.length)
208
+ .forEach(key => {
204
209
  const k = key.replace('$', '');
205
210
  const index = variableKeys.indexOf(k);
206
211
  if (index >= 0) {
@@ -216,4 +221,4 @@ export function findTimeRange(diff) {
216
221
  });
217
222
  return time ? { start: time.startTime(), end: time.endTime() } : null;
218
223
  }
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC91dGlscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUdyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc3RCxPQUFPLEVBRUwsK0JBQStCLEdBRWhDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV4QyxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQXlCLEVBQ3pCLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFnQjtJQUVsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUN6QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNYLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxjQUFjO2dCQUN6QyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxNQUFNLFFBQVEsR0FBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUMxQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUNYLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ1IsQ0FBQyxDQUFDO29CQUNFLEdBQUcsR0FBRztvQkFDTixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUM7aUJBQ2xCO2dCQUNILENBQUMsQ0FBQyxHQUFHLEVBQ1QsRUFBRSxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUM5QyxPQUFPO1lBQ0wsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO2dCQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVU7WUFDbEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSztZQUN4RCxTQUFTLEVBQUUsT0FBTyxDQUNoQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFDL0MsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNyRDtnQkFDQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDO1NBQ3BDLENBQUM7SUFDSixDQUFDLEVBQ0QsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUM3QyxDQUFDO0lBQ0YsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLEtBQUs7UUFDTCxHQUFHO1FBQ0gsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFlLEVBQzlDLElBQXFCO0lBRXJCLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBQ0QsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFlBQVksQ0FBQztJQUN2QyxPQUFPLGFBQWE7UUFDbEIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsZUFBa0MsRUFDbEMsSUFBcUI7SUFFckIsT0FBTyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzVDLE1BQU0sVUFBVSxHQUFHLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsR0FBRyxHQUFHLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQzFCLGVBQWtDLEVBQ2xDLElBQXFCO0lBRXJCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxPQUFPLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDL0IsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLEdBQUcsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ3BFLE9BQU87Z0JBQ0wsR0FBRyxHQUFHO2dCQUNOLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDMUQsQ0FBQztTQUNIO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUF1QixFQUN2QixHQUF3QjtJQUV4QixPQUFPO1FBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNSLENBQUMsQ0FBQztLQUNKLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsTUFBdUIsRUFDdkIsTUFBMkI7SUFFM0IsT0FBTyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUMvQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25ELDJEQUEyRDtJQUMzRCxXQUFXLEVBQUUsbUJBQW1CO0NBQ2pDLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxhQUFhLENBQUMsU0FBaUIsRUFBRSxNQUFpQjtJQUNoRSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFO1FBQ3BELE9BQU8sK0JBQStCLENBQUM7S0FDeEM7SUFDRCxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRTtRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDL0I7SUFDRCxNQUFNLFVBQVUsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxJQUFJLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELE9BQU8sS0FBSyxJQUFJLFNBQVMsQ0FBQztLQUMzQjtJQUNELE9BQU8sQ0FDTCxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsU0FBUyxDQUNWLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsR0FBVztJQUNqRCxJQUFJLElBQVksQ0FBQztJQUNqQixJQUFJO1FBQ0YsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3JFO0lBQUMsTUFBTTtRQUNOLElBQUksR0FBRyxFQUFFLENBQUM7S0FDWDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWE7SUFDaEMsZ0RBQWdEO0lBQ2hELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDO0FBQ3RELENBQUM7QUFFRCxRQUFRO0FBQ1Isd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSxZQUFZLENBQzFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWdCLEVBQ2xDLE1BQTBCLEVBQUUsRUFDNUIsUUFBUSxHQUFHLEtBQUs7SUFFaEIsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7UUFDcEIsT0FBTyxHQUFHLENBQUM7S0FDWjtJQUNELE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDO0lBQ3hCLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNyRCxNQUFNLElBQUksR0FBRyxRQUFRO1FBQ25CLENBQUMsQ0FBQztZQUNFLElBQUksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO2lCQUNsQixRQUFRLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQztpQkFDaEMsT0FBTyxFQUFFO1NBQ2I7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsTUFBTSxNQUFNLEdBQUc7UUFDYixHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEUsR0FBRyxHQUFHO1FBQ04sR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQzlELENBQUM7SUFFRixvQ0FBb0M7SUFDcEMsbUJBQW1CO0lBQ25CLHFDQUFxQztJQUNyQyxvQ0FBb0M7SUFDcEMsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlDLE1BQU0sSUFBSSxHQUNSLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2xFLE1BQU0sS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDM0IsK0JBQStCO1FBQy9CLE1BQU0sUUFBUSxHQUFHO1lBQ2YsR0FBRyxJQUFJO1lBQ1AsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ1YsQ0FBQztRQUNGLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUNwRCxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNQLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hCLE1BQU0sQ0FBQyxHQUNMLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQztnQkFDaEUsT0FBTztvQkFDTCxHQUFHLEdBQUc7b0JBQ047d0JBQ0UsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJO3dCQUNYLENBQUMsRUFBRSxJQUFJO3dCQUNQLEdBQUcsQ0FBQyxRQUFROzRCQUNWLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDcEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztxQkFDUjtpQkFDRixDQUFDO1lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1QsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLE1BQW9CLEVBQ3BCLE1BQWdCO0lBRWhCLElBQUksTUFBTSxFQUFFO1FBQ1YsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsQixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7UUFDM0IsTUFBTSxZQUFZLEdBQUcsR0FBRyxVQUFVLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUMxRCxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ2YsQ0FBQyxDQUFDLE1BQU07Z0JBQ04sQ0FBQyxDQUFDLFlBQVk7Z0JBQ2QsQ0FBQyxDQUFDLFVBQVU7WUFDZCxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLFlBQVk7Z0JBQ2QsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUF1QixFQUFFLEtBQUssR0FBRyxFQUFFO0lBQ3JFLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLFVBQVUsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxZQUFZLENBQUM7QUFFbkQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxJQUF1QixFQUN2QixRQUF5QjtJQUV6QixJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sSUFBSSxHQUNSLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsSUFDRSxDQUFDLFlBQVksQ0FBQyxNQUFNO1FBQ3BCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUN4RTtRQUNBLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2pCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLElBQUksR0FBRyxJQUFJLEVBQUUsT0FBTyxDQUNsQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25DLENBQUM7U0FDSDtJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBSSxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IGdldCwgaXNFcXVhbCwgaXNGdW5jdGlvbiwgdGVtcGxhdGUsIHVuaXEgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgRGF0YUl0ZW0sIFRvb2x0aXBWYWx1ZSB9IGZyb20gJ3p6LWNoYXJ0JztcblxuaW1wb3J0IHsgQ0hBUlRfVElNRV9GT1JNQVQgfSBmcm9tICcuLi8uLi9hLWNoYXJ0L3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQUNoYXJ0RGF0YSB9IGZyb20gJy4uLy4uL2EtY2hhcnQvdHlwZXMnO1xuaW1wb3J0IHsgTW9uaXRvck1ldHJpYywgTW9uaXRvck1ldHJpY1Jlc3VsdCB9IGZyb20gJy4uLy4uL2FwaS9wdWJsaWMtYXBpJztcbmltcG9ydCB7XG4gIERpY3Rpb25hcnksXG4gIEZJRUxEX05PVF9BVkFJTEFCTEVfUExBQ0VIT0xERVIsXG4gIFN0cmluZ01hcCxcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFBJQ0tFUl9USU1FX1JBTkdFUyB9IGZyb20gJy4uLy4uL21ldHJpYy1jaGFydC9oZWxwZXJzJztcbmltcG9ydCB7IEZldGNoUGFyYW1zLCBJbmRpY2F0b3JQYXJhbXMsIE1ldHJpY1BhcmFtcyB9IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHsgcm91bmRJbnRlcnZhbCB9IGZyb20gJy4vcmFuZ2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTWV0cmljUGFyYW1zKFxuICBwYXJhbXM6IEluZGljYXRvclBhcmFtc1tdLFxuICB7IHZhcmlhYmxlU291cmNlLCBzdGFydCwgZW5kLCBzdGVwIH06IE1ldHJpY1BhcmFtcyxcbikge1xuICBjb25zdCB2YWx1ZSA9IHBhcmFtcy5yZWR1Y2UoXG4gICAgKHByZSwgY3VyKSA9PiB7XG4gICAgICBjb25zdCB2ID0gQXJyYXkuaXNBcnJheSh2YXJpYWJsZVNvdXJjZSlcbiAgICAgICAgPyB2YXJpYWJsZVNvdXJjZVxuICAgICAgICA6IGN1ci52YXJpYWJsZXM/Lmxlbmd0aCAmJiB2YXJpYWJsZVNvdXJjZVxuICAgICAgICA/IFt2YXJpYWJsZVNvdXJjZV1cbiAgICAgICAgOiBbXTtcbiAgICAgIGNvbnN0IHZhcmlhYmxlOiBTdHJpbmdNYXBbXSA9IHYubWFwKHZhbHVlID0+IHtcbiAgICAgICAgcmV0dXJuIGN1ci52YXJpYWJsZXM/LnJlZHVjZShcbiAgICAgICAgICAocHJlLCBrZXkpID0+XG4gICAgICAgICAgICB2YWx1ZVtrZXldXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgLi4ucHJlLFxuICAgICAgICAgICAgICAgICAgW2tleV06IHZhbHVlW2tleV0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHByZSxcbiAgICAgICAgICB7fSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaW5kaWNhdG9ycyA9IGN1ci5pbmRpY2F0b3JzIHx8IGN1ci5leHByO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5kaWNhdG9yczogY3VyLmluZGljYXRvcnNcbiAgICAgICAgICA/IHVuaXEoWy4uLnByZS5pbmRpY2F0b3JzLCBpbmRpY2F0b3JzXSlcbiAgICAgICAgICA6IHByZS5pbmRpY2F0b3JzLFxuICAgICAgICBleHByczogY3VyLmV4cHIgPyBbLi4ucHJlLmV4cHJzLCBpbmRpY2F0b3JzXSA6IHByZS5leHBycyxcbiAgICAgICAgdmFyaWFibGVzOiBpc0VxdWFsKFxuICAgICAgICAgIHZhcmlhYmxlLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pLFxuICAgICAgICAgIHByZS52YXJpYWJsZXMucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSksXG4gICAgICAgIClcbiAgICAgICAgICA/IHByZS52YXJpYWJsZXNcbiAgICAgICAgICA6IFsuLi5wcmUudmFyaWFibGVzLCAuLi52YXJpYWJsZV0sXG4gICAgICB9O1xuICAgIH0sXG4gICAgeyBpbmRpY2F0b3JzOiBbXSwgZXhwcnM6IFtdLCB2YXJpYWJsZXM6IFtdIH0sXG4gICk7XG4gIHJldHVybiB7XG4gICAgLi4udmFsdWUsXG4gICAgc3RhcnQsXG4gICAgZW5kLFxuICAgIHN0ZXAsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVDaGFydERhdGEoXG4gIHsgaW5kaWNhdG9yUGFyYW1zLCBtZXRyaWNQYXJhbXMgfTogRmV0Y2hQYXJhbXMsXG4gIGRhdGE6IE1vbml0b3JNZXRyaWNbXSxcbikge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY29uc3QgeyBkZXBlbmRlbnREYXRhIH0gPSBtZXRyaWNQYXJhbXM7XG4gIHJldHVybiBkZXBlbmRlbnREYXRhXG4gICAgPyBkZXBlbmRPbkRhdGEoaW5kaWNhdG9yUGFyYW1zLCBkYXRhKVxuICAgIDogZGVwZW5kT25JbmRpY2F0b3IoaW5kaWNhdG9yUGFyYW1zLCBkYXRhKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZE9uSW5kaWNhdG9yKFxuICBpbmRpY2F0b3JQYXJhbXM6IEluZGljYXRvclBhcmFtc1tdLFxuICBkYXRhOiBNb25pdG9yTWV0cmljW10sXG4pOiBBQ2hhcnREYXRhW10ge1xuICByZXR1cm4gaW5kaWNhdG9yUGFyYW1zLnJlZHVjZSgocHJlLCBwYXJhbXMpID0+IHtcbiAgICBjb25zdCBtZXRyaWNEYXRhID0gZGF0YT8uZmluZChpdGVtID0+IGl0ZW0uaW5kaWNhdG9yID09PSBwYXJhbXMuaW5kaWNhdG9ycyk7XG4gICAgcmV0dXJuIFsuLi5wcmUsIGhhbmRsZURhdGFSZXN1bHQocGFyYW1zLCBtZXRyaWNEYXRhPy5yZXN1bHQ/LlswXSldO1xuICB9LCBbXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBlbmRPbkRhdGEoXG4gIGluZGljYXRvclBhcmFtczogSW5kaWNhdG9yUGFyYW1zW10sXG4gIGRhdGE6IE1vbml0b3JNZXRyaWNbXSxcbik6IEFDaGFydERhdGFbXSB7XG4gIGNvbnN0IHBhcmFtcyA9IGluZGljYXRvclBhcmFtc1swXTtcbiAgcmV0dXJuIGRhdGE/LnJlZHVjZSgocHJlLCByZXMpID0+IHtcbiAgICBpZiAocGFyYW1zLmluZGljYXRvcnMgPT09IHJlcy5pbmRpY2F0b3IgfHwgcGFyYW1zLmV4cHIgPT09IHJlcy5xdWVyeSkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ucHJlLFxuICAgICAgICAuLi5yZXMucmVzdWx0Lm1hcChpdGVtID0+IGhhbmRsZURhdGFSZXN1bHQocGFyYW1zLCBpdGVtKSksXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gcHJlO1xuICB9LCBbXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVEYXRhUmVzdWx0KFxuICBwYXJhbXM6IEluZGljYXRvclBhcmFtcyxcbiAgcmVzOiBNb25pdG9yTWV0cmljUmVzdWx0LFxuKSB7XG4gIHJldHVybiB7XG4gICAgbmFtZTogaGFuZGxlTGVnZW5kKHBhcmFtcywgcmVzKSxcbiAgICB2YWx1ZXM6IHJlcz8udmFsdWVzPy5tYXAoZCA9PiAoe1xuICAgICAgeDogZFswXSxcbiAgICAgIHk6IGRbMV0sXG4gICAgfSkpLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTGVnZW5kKFxuICBwYXJhbXM6IEluZGljYXRvclBhcmFtcyxcbiAgcmVzdWx0OiBNb25pdG9yTWV0cmljUmVzdWx0LFxuKSB7XG4gIHJldHVybiBpc0Z1bmN0aW9uKHBhcmFtcz8ubGVnZW5kKVxuICAgID8gcGFyYW1zLmxlZ2VuZChwYXJhbXMsIHJlc3VsdClcbiAgICA6IGdldExlZ2VuZE5hbWUocGFyYW1zPy5sZWdlbmQsIHJlc3VsdD8ubWV0cmljIHx8IHt9KTtcbn1cbmV4cG9ydCBjb25zdCBMRUdFTkRfVEVNUExBVEVfT1BUSU9OUyA9IE9iamVjdC5mcmVlemUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL21hdGNoLWFueSwgcmVnZXhwL3N0cmljdFxuICBpbnRlcnBvbGF0ZTogL3t7XFwuKFtcXFNcXHNdKz8pfX0vZyxcbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGVnZW5kTmFtZShtZXRyaWNLZXk6IHN0cmluZywgbWV0cmljOiBTdHJpbmdNYXApIHtcbiAgaWYgKCFtZXRyaWNLZXkgJiYgIU9iamVjdC5rZXlzKG1ldHJpYyB8fCB7fSk/Lmxlbmd0aCkge1xuICAgIHJldHVybiBGSUVMRF9OT1RfQVZBSUxBQkxFX1BMQUNFSE9MREVSO1xuICB9XG4gIGlmICghbWV0cmljS2V5ICYmIG1ldHJpYykge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtZXRyaWMpO1xuICB9XG4gIGNvbnN0IG1ldHJpY0tleXMgPSBtZXRyaWNLZXk/LnNwbGl0KCcsJykubWFwKG1hdGNoTGVnZW5kKTtcbiAgaWYgKG1ldHJpY0tleXM/Lmxlbmd0aCA+IDEpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG1ldHJpYz8uW21ldHJpY0tleXMuZmluZChpdGVtID0+IG1ldHJpY1tpdGVtXSldO1xuICAgIHJldHVybiB2YWx1ZSB8fCBtZXRyaWNLZXk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICBnZXRMZWdlbmRUZW1wbGF0ZShtZXRyaWNLZXksIG1ldHJpYykgfHxcbiAgICBtZXRyaWNbbWF0Y2hMZWdlbmQobWV0cmljS2V5KV0gfHxcbiAgICBtZXRyaWNLZXlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0TGVnZW5kVGVtcGxhdGUoc3RyOiBzdHJpbmcsIG9iajogb2JqZWN0KSB7XG4gIGxldCBuYW1lOiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgbmFtZSA9IGdldChvYmosIHN0cikgfHwgdGVtcGxhdGUoc3RyLCBMRUdFTkRfVEVNUExBVEVfT1BUSU9OUykob2JqKTtcbiAgfSBjYXRjaCB7XG4gICAgbmFtZSA9ICcnO1xuICB9XG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBtYXRjaExlZ2VuZCh2YWx1ZTogc3RyaW5nKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2JldHRlci1yZWdleFxuICByZXR1cm4gdmFsdWUubWF0Y2goL1xce1xce1xcLiguKz8pXFx9XFx9Lyk/LlsxXSB8fCB2YWx1ZTtcbn1cblxuLy8g5aGr5YWF56m65pWw5o2uXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9jb2duaXRpdmUtY29tcGxleGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGZpbGxOdWxsRGF0YShcbiAgeyBzdGFydCwgZW5kLCBzdGVwIH06IE1ldHJpY1BhcmFtcyxcbiAgcmVzOiBEYXRhSXRlbVsndmFsdWVzJ10gPSBbXSxcbiAgc3RlcExpbmUgPSBmYWxzZSxcbikge1xuICBpZiAoIStzdGFydCB8fCAhK2VuZCkge1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgY29uc3QgX3N0ZXAgPSBzdGVwIHx8IHJvdW5kSW50ZXJ2YWwoc3RhcnQsIGVuZCk7XG4gIGNvbnN0IGN1clN0YXJ0ID0gK3N0YXJ0O1xuICBjb25zdCBjdXJFbmQgPSBzdGFydCArIHN0ZXAgKiAoKGVuZCAtIHN0YXJ0KSAvIHN0ZXApO1xuICBjb25zdCBwcmVYID0gc3RlcExpbmVcbiAgICA/IHtcbiAgICAgICAgcHJlWDogZGF5anMoY3VyU3RhcnQpXG4gICAgICAgICAgLnN1YnRyYWN0KChlbmQgLSBzdGFydCkgLyA2LCAncycpXG4gICAgICAgICAgLnZhbHVlT2YoKSxcbiAgICAgIH1cbiAgICA6IHt9O1xuICBjb25zdCByZXN1bHQgPSBbXG4gICAgLi4uKGN1clN0YXJ0ID09PSByZXNbMF0/LnggPyBbXSA6IFt7IHg6IGN1clN0YXJ0LCB5OiBudWxsLCAuLi5wcmVYIH1dKSxcbiAgICAuLi5yZXMsXG4gICAgLi4uKHJlcy5hdCgtMSk/LnggPT09IGN1ckVuZCA/IFtdIDogW3sgeDogY3VyRW5kLCB5OiBudWxsIH1dKSxcbiAgXTtcblxuICAvLyBxdWVyeSDov5Tlm57mlbDmja7lj6/og73lrZjlnKjmn5DkuKrml7bpl7TmrrXml6DmlbDmja7mg4XlhrXvvIzkvJrlr7zoh7TliY3nq69idWdcbiAgLy8g6YCa6L+HIHN0ZXAg6K6h566X5Ye6IOaAu+aVsOaNruOAglxuICAvLyDlnKjlh7rnjrDkuIDlvIDlp4vmlbDmja7nvLrlpLHmg4XlhrXvvIzlhYjnu5nmlbDmja7mt7vliqDlvIDlp4vml7bpl7TmlbDmja7vvIzlkoznu5PmnZ/ml7bpl7TmlbDmja7jgIJcbiAgLy8g5Zyo6L+b6KGM6YGN5Y6G77yM5Yik6K+75b2T5YmN5pWw5o2u5ZKM5LiL5LiA6Lez5pWw5o2u5LqL5Lu25beuIOaYr+WQpuaYr+i/meS4qiBzdGVwLFxuICAvLyDlpoLmnpzkuI3mmK/orqHnrpflh7rkuKTogIXnm7jlt64g5Yeg5p2h5pWw5o2u77yM54S25ZCO6L+b6KGM5aGr5YWFXG4gIGNvbnN0IGRhdGEgPSByZXN1bHQucmVkdWNlKChhY2MsIHByZXYsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgZGlmZiA9XG4gICAgICByZXN1bHRbaW5kZXggKyAxXSAmJiByZXN1bHRbaW5kZXggKyAxXS54ICogMTAwMCAtIHByZXYueCAqIDEwMDA7XG4gICAgY29uc3Qgc3RlcE0gPSBfc3RlcCAqIDEwMDA7XG4gICAgLy8g5ZCO56uv5Y+v6IO95Ye6546wICtJZm4g5a+86Ie05oiQIE5hTu+8jOiuvue9ruS4uiBudWxsXG4gICAgY29uc3QgY3VyVmFsdWUgPSB7XG4gICAgICAuLi5wcmV2LFxuICAgICAgeTogcHJldi55LFxuICAgIH07XG4gICAgaWYgKGRpZmYgJiYgZGlmZiAhPT0gc3RlcE0pIHtcbiAgICAgIGNvbnN0IHRvdGFsID0gTWF0aC5jZWlsKGRpZmYgLyBzdGVwTSAtIDEpO1xuICAgICAgY29uc3QgZGF0YSA9IEFycmF5LmZyb208bnVtYmVyPih7IGxlbmd0aDogdG90YWwgfHwgMCB9KVxuICAgICAgICAuZmlsbCgwKVxuICAgICAgICAucmVkdWNlKChvbGQsIF9jdXJyLCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgeCA9XG4gICAgICAgICAgICBpID09PSAwID8gcHJldi54ICogMTAwMCArIHN0ZXBNIDogb2xkW2kgLSAxXS54ICogMTAwMCArIHN0ZXBNO1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5vbGQsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHg6IHggLyAxMDAwLFxuICAgICAgICAgICAgICB5OiBudWxsLFxuICAgICAgICAgICAgICAuLi4oc3RlcExpbmVcbiAgICAgICAgICAgICAgICA/IHsgcHJlWDogaSA9PT0gMCA/IHJlc3VsdFtpbmRleF0ueCA6IG9sZFtpIC0gMV0ueCB9XG4gICAgICAgICAgICAgICAgOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF07XG4gICAgICAgIH0sIFtdKTtcbiAgICAgIHJldHVybiBbLi4uYWNjLCBjdXJWYWx1ZSwgLi4uZGF0YV07XG4gICAgfVxuICAgIHJldHVybiBbLi4uYWNjLCBjdXJWYWx1ZV07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIGRhdGEuc29ydCgoYSwgYikgPT4gYS54IC0gYi54KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZURhdGVBeGlzTGFiZWxGb3JtYXRzKFxuICBwYXJhbXM6IE1ldHJpY1BhcmFtcyxcbiAgaXNSaWNoPzogYm9vbGVhbixcbikge1xuICBpZiAocGFyYW1zKSB7XG4gICAgY29uc3QgZGlmZiA9IHBhcmFtcy5lbmQgLSBwYXJhbXMuc3RhcnQ7XG4gICAgY29uc3QgbTEgPSAyNCAqIDYwICogNjA7XG4gICAgY29uc3QgbTMgPSAzICogbTE7XG4gICAgY29uc3QgbTcgPSA3ICogbTE7XG4gICAgY29uc3QgTV9EX0ZPUk1BVCA9ICdNTS1ERCc7XG4gICAgY29uc3QgTURfSFNfRk9STUFUID0gYCR7TV9EX0ZPUk1BVH0gJHtDSEFSVF9USU1FX0ZPUk1BVH1gO1xuICAgIHJldHVybiBkaWZmID49IG03XG4gICAgICA/IGlzUmljaFxuICAgICAgICA/IE1EX0hTX0ZPUk1BVFxuICAgICAgICA6IE1fRF9GT1JNQVRcbiAgICAgIDogZGlmZiA8IG03ICYmIChkaWZmID49IG0zIHx8IGRpZmYgPiBtMSlcbiAgICAgID8gTURfSFNfRk9STUFUXG4gICAgICA6IENIQVJUX1RJTUVfRk9STUFUO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsaW1pdE1heFRvb2x0aXBJdGVtKGNvbnRleHQ6IFRvb2x0aXBWYWx1ZVtdLCBsaW1pdCA9IDE1KSB7XG4gIHJldHVybiBjb250ZXh0LnNsaWNlKDAsIGxpbWl0KTtcbn1cblxuZXhwb3J0IGNvbnN0IFZBUklBQkxFX0tFWV9DTFVTVEVSID0gJyRjbHVzdGVyJztcbmV4cG9ydCBjb25zdCBWQVJJQUJMRV9LRVlfTkFNRVNQQUNFID0gJyRuYW1lc3BhY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUV4cHJWYXJpYWJsZShcbiAgZXhwcjogc3RyaW5nIHwgc3RyaW5nW10sXG4gIHZhcmlhYmxlOiBEaWN0aW9uYXJ5PGFueT4sXG4pIHtcbiAgbGV0IGRhdGEgPSBBcnJheS5pc0FycmF5KGV4cHIpID8gZXhwci5qb2luKCd8JykgOiBleHByO1xuICBjb25zdCB2YXJpYWJsZUtleXMgPSBPYmplY3Qua2V5cyh2YXJpYWJsZSk7XG4gIGNvbnN0IHZhcmlhYmxlVmFsdWVzID0gT2JqZWN0LnZhbHVlcyh2YXJpYWJsZSk7XG4gIGNvbnN0IHZhcnM6IHN0cmluZ1tdID1cbiAgICBkYXRhICYmIHR5cGVvZiBkYXRhLm1hdGNoID09PSAnZnVuY3Rpb24nID8gZGF0YS5tYXRjaCgvXFwkXFx3Ky9nKSA6IFtdO1xuICBpZiAoXG4gICAgIXZhcmlhYmxlS2V5cy5sZW5ndGggfHxcbiAgICAhdmFyaWFibGVLZXlzLnNvbWUodiA9PiB2YXJzPy5zb21lKGl0ZW0gPT4gaXRlbS5yZXBsYWNlKCckJywgJycpID09PSB2KSlcbiAgKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgdmFycy5mb3JFYWNoKGtleSA9PiB7XG4gICAgY29uc3QgayA9IGtleS5yZXBsYWNlKCckJywgJycpO1xuICAgIGNvbnN0IGluZGV4ID0gdmFyaWFibGVLZXlzLmluZGV4T2Yoayk7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIGNvbnN0IHYgPSB2YXJpYWJsZVZhbHVlc1tpbmRleF07XG4gICAgICBkYXRhID0gZGF0YT8ucmVwbGFjZShcbiAgICAgICAgbmV3IFJlZ0V4cChgXFxcXCQke2t9YCwgJ2cnKSxcbiAgICAgICAgQXJyYXkuaXNBcnJheSh2KSA/IHYuam9pbignfCcpIDogdixcbiAgICAgICk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGRhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kVGltZVJhbmdlKGRpZmY6IG51bWJlcikge1xuICBjb25zdCB0aW1lID0gUElDS0VSX1RJTUVfUkFOR0VTLmZpbmQoaXRlbSA9PiB7XG4gICAgcmV0dXJuIGl0ZW0uZW5kVGltZSgpIC0gaXRlbS5zdGFydFRpbWUoKSA9PT0gZGlmZjtcbiAgfSk7XG4gIHJldHVybiB0aW1lID8geyBzdGFydDogdGltZS5zdGFydFRpbWUoKSwgZW5kOiB0aW1lLmVuZFRpbWUoKSB9IDogbnVsbDtcbn1cbiJdfQ==
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9hLW1ldHJpYy1jaGFydC91dGlscy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHN0QsT0FBTyxFQUVMLCtCQUErQixHQUVoQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxNQUF5QixFQUN6QixFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQWdCO0lBRTNELHdEQUF3RDtJQUN4RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUNuQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTTtnQkFDeEIsQ0FBQyxDQUFDLE9BQU87b0JBQ1AsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDO29CQUNiLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFB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SSxDQUFDLFNBQVMsRUFBRSxLQUFLLElBQUksQ0FBQztJQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBnZXQsIGlzRnVuY3Rpb24sIHRlbXBsYXRlIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IERhdGFJdGVtLCBUb29sdGlwVmFsdWUgfSBmcm9tICd6ei1jaGFydCc7XG5cbmltcG9ydCB7IENIQVJUX1RJTUVfRk9STUFUIH0gZnJvbSAnLi4vLi4vYS1jaGFydC9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEFDaGFydERhdGEgfSBmcm9tICcuLi8uLi9hLWNoYXJ0L3R5cGVzJztcbmltcG9ydCB7IE1vbml0b3JNZXRyaWMsIE1vbml0b3JNZXRyaWNSZXN1bHQgfSBmcm9tICcuLi8uLi9hcGkvcHVibGljLWFwaSc7XG5pbXBvcnQge1xuICBEaWN0aW9uYXJ5LFxuICBGSUVMRF9OT1RfQVZBSUxBQkxFX1BMQUNFSE9MREVSLFxuICBTdHJpbmdNYXAsXG59IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBQSUNLRVJfVElNRV9SQU5HRVMgfSBmcm9tICcuLi8uLi9tZXRyaWMtY2hhcnQvaGVscGVycyc7XG5pbXBvcnQgeyBGZXRjaFBhcmFtcywgSW5kaWNhdG9yUGFyYW1zLCBNZXRyaWNQYXJhbXMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmltcG9ydCB7IHJvdW5kSW50ZXJ2YWwgfSBmcm9tICcuL3JhbmdlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU1ldHJpY1BhcmFtcyhcbiAgcGFyYW1zOiBJbmRpY2F0b3JQYXJhbXNbXSxcbiAgeyB2YXJpYWJsZVNvdXJjZSwgc3RhcnQsIGVuZCwgc3RlcCwgaXNJbmRleCB9OiBNZXRyaWNQYXJhbXMsXG4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbiAgY29uc3QgdmFsdWUgPSBwYXJhbXMubWFwKChjdXIsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgdiA9IEFycmF5LmlzQXJyYXkodmFyaWFibGVTb3VyY2UpXG4gICAgICA/IHZhcmlhYmxlU291cmNlLmZpbHRlcihcbiAgICAgICAgICAoaXRlbSwgaSkgPT5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGl0ZW0pLmxlbmd0aCAmJlxuICAgICAgICAgICAgKChpc0luZGV4XG4gICAgICAgICAgICAgID8gaW5kZXggPT09IGlcbiAgICAgICAgICAgICAgOiBjdXI/LnZhcmlhYmxlcz8uZXZlcnkodiA9PiBPYmplY3Qua2V5cyhpdGVtKS5pbmNsdWRlcyh2KSkpIHx8XG4gICAgICAgICAgICAgIGN1ci5leHByKSxcbiAgICAgICAgKVxuICAgICAgOiBjdXIudmFyaWFibGVzPy5sZW5ndGggJiYgdmFyaWFibGVTb3VyY2VcbiAgICAgID8gW3ZhcmlhYmxlU291cmNlXVxuICAgICAgOiBbXTtcbiAgICBjb25zdCB2YXJpYWJsZTogU3RyaW5nTWFwW10gPSB2Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICByZXR1cm4gY3VyLmV4cHJcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICA6IGN1ci52YXJpYWJsZXM/LnJlZHVjZShcbiAgICAgICAgICAgIChwcmUsIGtleSkgPT5cbiAgICAgICAgICAgICAgdmFsdWVba2V5XVxuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAuLi5wcmUsXG4gICAgICAgICAgICAgICAgICAgIFtrZXldOiB2YWx1ZVtrZXldLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogcHJlLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCBpbmRpY2F0b3JzID0gY3VyLmluZGljYXRvcnMgfHwgY3VyLmV4cHI7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluZGljYXRvcnM6IGN1ci5pbmRpY2F0b3JzLFxuICAgICAgZXhwcnM6IGN1ci5leHByID8gW2luZGljYXRvcnNdIDogW10sXG4gICAgICB2YXJpYWJsZXM6IHZhcmlhYmxlLFxuICAgIH07XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGluZGljYXRvcnM6IHZhbHVlLFxuICAgIHN0YXJ0LFxuICAgIGVuZCxcbiAgICBzdGVwLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQ2hhcnREYXRhKFxuICB7IGluZGljYXRvclBhcmFtcywgbWV0cmljUGFyYW1zIH06IEZldGNoUGFyYW1zLFxuICBkYXRhOiBNb25pdG9yTWV0cmljW10sXG4pIHtcbiAgaWYgKCFkYXRhKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IHsgZGVwZW5kZW50RGF0YSB9ID0gbWV0cmljUGFyYW1zO1xuICByZXR1cm4gZGVwZW5kZW50RGF0YVxuICAgID8gZGVwZW5kT25EYXRhKGluZGljYXRvclBhcmFtcywgZGF0YSlcbiAgICA6IGRlcGVuZE9uSW5kaWNhdG9yKGluZGljYXRvclBhcmFtcywgZGF0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXBlbmRPbkluZGljYXRvcihcbiAgaW5kaWNhdG9yUGFyYW1zOiBJbmRpY2F0b3JQYXJhbXNbXSxcbiAgZGF0YTogTW9uaXRvck1ldHJpY1tdLFxuKTogQUNoYXJ0RGF0YVtdIHtcbiAgcmV0dXJuIGluZGljYXRvclBhcmFtcy5yZWR1Y2UoKHByZSwgcGFyYW1zKSA9PiB7XG4gICAgY29uc3QgbWV0cmljRGF0YSA9IGRhdGE/LmZpbmQoaXRlbSA9PiBpdGVtLmluZGljYXRvciA9PT0gcGFyYW1zLmluZGljYXRvcnMpO1xuICAgIHJldHVybiBbLi4ucHJlLCBoYW5kbGVEYXRhUmVzdWx0KHBhcmFtcywgbWV0cmljRGF0YT8ucmVzdWx0Py5bMF0pXTtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kT25EYXRhKFxuICBpbmRpY2F0b3JQYXJhbXM6IEluZGljYXRvclBhcmFtc1tdLFxuICBkYXRhOiBNb25pdG9yTWV0cmljW10sXG4pOiBBQ2hhcnREYXRhW10ge1xuICBjb25zdCBwYXJhbXMgPSBpbmRpY2F0b3JQYXJhbXNbMF07XG4gIHJldHVybiBkYXRhPy5yZWR1Y2UoKHByZSwgcmVzKSA9PiB7XG4gICAgaWYgKHBhcmFtcy5pbmRpY2F0b3JzID09PSByZXMuaW5kaWNhdG9yIHx8IHBhcmFtcy5leHByID09PSByZXMucXVlcnkpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnByZSxcbiAgICAgICAgLi4ucmVzLnJlc3VsdC5tYXAoaXRlbSA9PiBoYW5kbGVEYXRhUmVzdWx0KHBhcmFtcywgaXRlbSkpLFxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIHByZTtcbiAgfSwgW10pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRGF0YVJlc3VsdChcbiAgcGFyYW1zOiBJbmRpY2F0b3JQYXJhbXMsXG4gIHJlczogTW9uaXRvck1ldHJpY1Jlc3VsdCxcbikge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGhhbmRsZUxlZ2VuZChwYXJhbXMsIHJlcyksXG4gICAgdmFsdWVzOiByZXM/LnZhbHVlcz8ubWFwKGQgPT4gKHtcbiAgICAgIHg6IGRbMF0sXG4gICAgICB5OiBkWzFdLFxuICAgIH0pKSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUxlZ2VuZChcbiAgcGFyYW1zOiBJbmRpY2F0b3JQYXJhbXMsXG4gIHJlc3VsdDogTW9uaXRvck1ldHJpY1Jlc3VsdCxcbikge1xuICByZXR1cm4gaXNGdW5jdGlvbihwYXJhbXM/LmxlZ2VuZClcbiAgICA/IHBhcmFtcy5sZWdlbmQocGFyYW1zLCByZXN1bHQpXG4gICAgOiBnZXRMZWdlbmROYW1lKHBhcmFtcz8ubGVnZW5kLCByZXN1bHQ/Lm1ldHJpYyB8fCB7fSk7XG59XG5leHBvcnQgY29uc3QgTEVHRU5EX1RFTVBMQVRFX09QVElPTlMgPSBPYmplY3QuZnJlZXplKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZ2V4cC9tYXRjaC1hbnksIHJlZ2V4cC9zdHJpY3RcbiAgaW50ZXJwb2xhdGU6IC97e1xcLihbXFxTXFxzXSs/KX19L2csXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExlZ2VuZE5hbWUobWV0cmljS2V5OiBzdHJpbmcsIG1ldHJpYzogU3RyaW5nTWFwKSB7XG4gIGlmICghbWV0cmljS2V5ICYmICFPYmplY3Qua2V5cyhtZXRyaWMgfHwge30pPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gRklFTERfTk9UX0FWQUlMQUJMRV9QTEFDRUhPTERFUjtcbiAgfVxuICBpZiAoIW1ldHJpY0tleSAmJiBtZXRyaWMpIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobWV0cmljKTtcbiAgfVxuICBjb25zdCBtZXRyaWNLZXlzID0gbWV0cmljS2V5Py5zcGxpdCgnLCcpLm1hcChtYXRjaExlZ2VuZCk7XG4gIGlmIChtZXRyaWNLZXlzPy5sZW5ndGggPiAxKSB7XG4gICAgY29uc3QgdmFsdWUgPSBtZXRyaWM/LlttZXRyaWNLZXlzLmZpbmQoaXRlbSA9PiBtZXRyaWNbaXRlbV0pXTtcbiAgICByZXR1cm4gdmFsdWUgfHwgbWV0cmljS2V5O1xuICB9XG4gIHJldHVybiAoXG4gICAgZ2V0TGVnZW5kVGVtcGxhdGUobWV0cmljS2V5LCBtZXRyaWMpIHx8XG4gICAgbWV0cmljW21hdGNoTGVnZW5kKG1ldHJpY0tleSldIHx8XG4gICAgbWV0cmljS2V5XG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldExlZ2VuZFRlbXBsYXRlKHN0cjogc3RyaW5nLCBvYmo6IG9iamVjdCkge1xuICBsZXQgbmFtZTogc3RyaW5nO1xuICB0cnkge1xuICAgIG5hbWUgPSBnZXQob2JqLCBzdHIpIHx8IHRlbXBsYXRlKHN0ciwgTEVHRU5EX1RFTVBMQVRFX09QVElPTlMpKG9iaik7XG4gIH0gY2F0Y2gge1xuICAgIG5hbWUgPSAnJztcbiAgfVxuICByZXR1cm4gbmFtZTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hMZWdlbmQodmFsdWU6IHN0cmluZykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9iZXR0ZXItcmVnZXhcbiAgcmV0dXJuIHZhbHVlLm1hdGNoKC9cXHtcXHtcXC4oLis/KVxcfVxcfS8pPy5bMV0gfHwgdmFsdWU7XG59XG5cbi8vIOWhq+WFheepuuaVsOaNrlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvY29nbml0aXZlLWNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBmaWxsTnVsbERhdGEoXG4gIHsgc3RhcnQsIGVuZCwgc3RlcCB9OiBNZXRyaWNQYXJhbXMsXG4gIHJlczogRGF0YUl0ZW1bJ3ZhbHVlcyddID0gW10sXG4gIHN0ZXBMaW5lID0gZmFsc2UsXG4pIHtcbiAgaWYgKCErc3RhcnQgfHwgIStlbmQpIHtcbiAgICByZXR1cm4gcmVzO1xuICB9XG4gIGNvbnN0IF9zdGVwID0gc3RlcCB8fCByb3VuZEludGVydmFsKHN0YXJ0LCBlbmQpO1xuICBjb25zdCBjdXJTdGFydCA9ICtzdGFydDtcbiAgY29uc3QgY3VyRW5kID0gc3RhcnQgKyBzdGVwICogKChlbmQgLSBzdGFydCkgLyBzdGVwKTtcbiAgY29uc3QgcHJlWCA9IHN0ZXBMaW5lXG4gICAgPyB7XG4gICAgICAgIHByZVg6IGRheWpzKGN1clN0YXJ0KVxuICAgICAgICAgIC5zdWJ0cmFjdCgoZW5kIC0gc3RhcnQpIC8gNiwgJ3MnKVxuICAgICAgICAgIC52YWx1ZU9mKCksXG4gICAgICB9XG4gICAgOiB7fTtcbiAgY29uc3QgcmVzdWx0ID0gW1xuICAgIC4uLihjdXJTdGFydCA9PT0gcmVzWzBdPy54ID8gW10gOiBbeyB4OiBjdXJTdGFydCwgeTogbnVsbCwgLi4ucHJlWCB9XSksXG4gICAgLi4ucmVzLFxuICAgIC4uLihyZXMuYXQoLTEpPy54ID09PSBjdXJFbmQgPyBbXSA6IFt7IHg6IGN1ckVuZCwgeTogbnVsbCB9XSksXG4gIF07XG5cbiAgLy8gcXVlcnkg6L+U5Zue5pWw5o2u5Y+v6IO95a2Y5Zyo5p+Q5Liq5pe26Ze05q615peg5pWw5o2u5oOF5Ya177yM5Lya5a+86Ie05YmN56uvYnVnXG4gIC8vIOmAmui/hyBzdGVwIOiuoeeul+WHuiDmgLvmlbDmja7jgIJcbiAgLy8g5Zyo5Ye6546w5LiA5byA5aeL5pWw5o2u57y65aSx5oOF5Ya177yM5YWI57uZ5pWw5o2u5re75Yqg5byA5aeL5pe26Ze05pWw5o2u77yM5ZKM57uT5p2f5pe26Ze05pWw5o2u44CCXG4gIC8vIOWcqOi/m+ihjOmBjeWOhu+8jOWIpOivu+W9k+WJjeaVsOaNruWSjOS4i+S4gOi3s+aVsOaNruS6i+S7tuW3riDmmK/lkKbmmK/ov5nkuKogc3RlcCxcbiAgLy8g5aaC5p6c5LiN5piv6K6h566X5Ye65Lik6ICF55u45beuIOWHoOadoeaVsOaNru+8jOeEtuWQjui/m+ihjOWhq+WFhVxuICBjb25zdCBkYXRhID0gcmVzdWx0LnJlZHVjZSgoYWNjLCBwcmV2LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGRpZmYgPVxuICAgICAgcmVzdWx0W2luZGV4ICsgMV0gJiYgcmVzdWx0W2luZGV4ICsgMV0ueCAqIDEwMDAgLSBwcmV2LnggKiAxMDAwO1xuICAgIGNvbnN0IHN0ZXBNID0gX3N0ZXAgKiAxMDAwO1xuICAgIC8vIOWQjuerr+WPr+iDveWHuueOsCArSWZuIOWvvOiHtOaIkCBOYU7vvIzorr7nva7kuLogbnVsbFxuICAgIGNvbnN0IGN1clZhbHVlID0ge1xuICAgICAgLi4ucHJldixcbiAgICAgIHk6IHByZXYueSxcbiAgICB9O1xuICAgIGlmIChkaWZmICYmIGRpZmYgIT09IHN0ZXBNKSB7XG4gICAgICBjb25zdCB0b3RhbCA9IE1hdGguY2VpbChkaWZmIC8gc3RlcE0gLSAxKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBBcnJheS5mcm9tPG51bWJlcj4oeyBsZW5ndGg6IHRvdGFsIHx8IDAgfSlcbiAgICAgICAgLmZpbGwoMClcbiAgICAgICAgLnJlZHVjZSgob2xkLCBfY3VyciwgaSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHggPVxuICAgICAgICAgICAgaSA9PT0gMCA/IHByZXYueCAqIDEwMDAgKyBzdGVwTSA6IG9sZFtpIC0gMV0ueCAqIDEwMDAgKyBzdGVwTTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4ub2xkLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB4OiB4IC8gMTAwMCxcbiAgICAgICAgICAgICAgeTogbnVsbCxcbiAgICAgICAgICAgICAgLi4uKHN0ZXBMaW5lXG4gICAgICAgICAgICAgICAgPyB7IHByZVg6IGkgPT09IDAgPyByZXN1bHRbaW5kZXhdLnggOiBvbGRbaSAtIDFdLnggfVxuICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuICAgICAgICB9LCBbXSk7XG4gICAgICByZXR1cm4gWy4uLmFjYywgY3VyVmFsdWUsIC4uLmRhdGFdO1xuICAgIH1cbiAgICByZXR1cm4gWy4uLmFjYywgY3VyVmFsdWVdO1xuICB9LCBbXSk7XG4gIHJldHVybiBkYXRhLnNvcnQoKGEsIGIpID0+IGEueCAtIGIueCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVEYXRlQXhpc0xhYmVsRm9ybWF0cyhcbiAgcGFyYW1zOiBNZXRyaWNQYXJhbXMsXG4gIGlzUmljaD86IGJvb2xlYW4sXG4pIHtcbiAgaWYgKHBhcmFtcykge1xuICAgIGNvbnN0IGRpZmYgPSBwYXJhbXMuZW5kIC0gcGFyYW1zLnN0YXJ0O1xuICAgIGNvbnN0IG0xID0gMjQgKiA2MCAqIDYwO1xuICAgIGNvbnN0IG0zID0gMyAqIG0xO1xuICAgIGNvbnN0IG03ID0gNyAqIG0xO1xuICAgIGNvbnN0IE1fRF9GT1JNQVQgPSAnTU0tREQnO1xuICAgIGNvbnN0IE1EX0hTX0ZPUk1BVCA9IGAke01fRF9GT1JNQVR9ICR7Q0hBUlRfVElNRV9GT1JNQVR9YDtcbiAgICByZXR1cm4gZGlmZiA+PSBtN1xuICAgICAgPyBpc1JpY2hcbiAgICAgICAgPyBNRF9IU19GT1JNQVRcbiAgICAgICAgOiBNX0RfRk9STUFUXG4gICAgICA6IGRpZmYgPCBtNyAmJiAoZGlmZiA+PSBtMyB8fCBkaWZmID4gbTEpXG4gICAgICA/IE1EX0hTX0ZPUk1BVFxuICAgICAgOiBDSEFSVF9USU1FX0ZPUk1BVDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbGltaXRNYXhUb29sdGlwSXRlbShjb250ZXh0OiBUb29sdGlwVmFsdWVbXSwgbGltaXQgPSAxNSkge1xuICByZXR1cm4gY29udGV4dC5zbGljZSgwLCBsaW1pdCk7XG59XG5cbmV4cG9ydCBjb25zdCBWQVJJQUJMRV9LRVlfQ0xVU1RFUiA9ICckY2x1c3Rlcic7XG5leHBvcnQgY29uc3QgVkFSSUFCTEVfS0VZX05BTUVTUEFDRSA9ICckbmFtZXNwYWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VFeHByVmFyaWFibGUoXG4gIGV4cHI6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB2YXJpYWJsZTogRGljdGlvbmFyeTxhbnk+LFxuKSB7XG4gIGxldCBkYXRhID0gQXJyYXkuaXNBcnJheShleHByKSA/IGV4cHIuam9pbignfCcpIDogZXhwcjtcbiAgY29uc3QgdmFyaWFibGVLZXlzID0gT2JqZWN0LmtleXModmFyaWFibGUgfHwge30pO1xuICBjb25zdCB2YXJpYWJsZVZhbHVlcyA9IE9iamVjdC52YWx1ZXModmFyaWFibGUgfHwge30pO1xuICBjb25zdCB2YXJzOiBzdHJpbmdbXSA9XG4gICAgZGF0YSAmJiB0eXBlb2YgZGF0YS5tYXRjaCA9PT0gJ2Z1bmN0aW9uJyA/IGRhdGEubWF0Y2goL1xcJFxcdysvZykgOiBbXTtcbiAgaWYgKFxuICAgICF2YXJpYWJsZUtleXMubGVuZ3RoIHx8XG4gICAgIXZhcmlhYmxlS2V5cy5zb21lKHYgPT4gdmFycz8uc29tZShpdGVtID0+IGl0ZW0ucmVwbGFjZSgnJCcsICcnKSA9PT0gdikpXG4gICkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgdmFyc1xuICAgIC5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKVxuICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBrID0ga2V5LnJlcGxhY2UoJyQnLCAnJyk7XG4gICAgICBjb25zdCBpbmRleCA9IHZhcmlhYmxlS2V5cy5pbmRleE9mKGspO1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgdiA9IHZhcmlhYmxlVmFsdWVzW2luZGV4XTtcbiAgICAgICAgZGF0YSA9IGRhdGE/LnJlcGxhY2UoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgXFxcXCQke2t9YCwgJ2cnKSxcbiAgICAgICAgICBBcnJheS5pc0FycmF5KHYpID8gdi5qb2luKCd8JykgOiB2LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICByZXR1cm4gZGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRUaW1lUmFuZ2UoZGlmZjogbnVtYmVyKSB7XG4gIGNvbnN0IHRpbWUgPSBQSUNLRVJfVElNRV9SQU5HRVMuZmluZChpdGVtID0+IHtcbiAgICByZXR1cm4gaXRlbS5lbmRUaW1lKCkgLSBpdGVtLnN0YXJ0VGltZSgpID09PSBkaWZmO1xuICB9KTtcbiAgcmV0dXJuIHRpbWUgPyB7IHN0YXJ0OiB0aW1lLnN0YXJ0VGltZSgpLCBlbmQ6IHRpbWUuZW5kVGltZSgpIH0gOiBudWxsO1xufVxuIl19
@@ -0,0 +1,101 @@
1
+ import { HttpEventType, } from '@angular/common/http';
2
+ import { inject } from '@angular/core';
3
+ import { map, switchMap } from 'rxjs';
4
+ import { TOKEN_RESOURCE_DEFINITIONS, compareVersion, parseJSONStream, } from '../core/public-api';
5
+ import { ClusterVersionService } from './cluster-version.service';
6
+ export class ApiCompatibleInterceptor {
7
+ constructor() {
8
+ this.clusterVersion = inject(ClusterVersionService);
9
+ }
10
+ intercept(req, next) {
11
+ const matchResult = this.matchUrl(req.url);
12
+ if (!matchResult.matched) {
13
+ return next.handle(req);
14
+ }
15
+ return this.clusterVersion.getClusterVersion(matchResult.cluster).pipe(switchMap(clusterVersion => {
16
+ const nextReq = this.executeRequestDowngrade(clusterVersion, req);
17
+ const nextReqBody = this.executeRequestBodyDowngrade(clusterVersion, nextReq.method, nextReq.body);
18
+ return next.handle(nextReq.clone({ body: nextReqBody })).pipe(map(event => {
19
+ if (event.type === HttpEventType.Response) {
20
+ return event.clone({
21
+ body: this.executeResponseBodyUpgrade(clusterVersion, nextReq.method, event.body),
22
+ });
23
+ }
24
+ // k8s watch api
25
+ if (isHttpDownloadProgressEvent(event) && event.partialText) {
26
+ return {
27
+ ...event,
28
+ partialText: parseJSONStream(event.partialText)
29
+ .map(v => JSON.stringify({
30
+ ...v,
31
+ object: this.executeResponseBodyUpgrade(clusterVersion, nextReq.method, v.object),
32
+ }))
33
+ .join('\n'),
34
+ };
35
+ }
36
+ return event;
37
+ }));
38
+ }));
39
+ }
40
+ executeRequestDowngrade(clusterVersion, req) {
41
+ return this.requestAdapters
42
+ .filter(adapter => !!adapter.requestDowngrade &&
43
+ compareVersion.lt(clusterVersion, adapter.clusterVersion) &&
44
+ (!adapter.httpMethods || adapter.httpMethods.includes(req.method)))
45
+ .sort((a, b) => compareVersion.lt(a.clusterVersion, b.clusterVersion) ? -1 : 1)
46
+ .reduceRight((nextReq, adapter) => adapter.requestDowngrade(nextReq), req);
47
+ }
48
+ executeRequestBodyDowngrade(clusterVersion, httpMethod, body) {
49
+ return this.requestAdapters
50
+ .filter(adapter => !!adapter.bodyDowngrade &&
51
+ compareVersion.lt(clusterVersion, adapter.clusterVersion) &&
52
+ (adapter.httpMethods || ['POST', 'PUT', 'PATCH']).includes(httpMethod))
53
+ .sort((a, b) => compareVersion.lt(a.clusterVersion, b.clusterVersion) ? -1 : 1)
54
+ .reduceRight((nextBody, adapter) => adapter.bodyDowngrade(nextBody), body);
55
+ }
56
+ executeResponseBodyUpgrade(clusterVersion, httpMethod, body) {
57
+ return this.responseAdapters
58
+ .filter(adapter => compareVersion.lt(clusterVersion, adapter.clusterVersion) &&
59
+ (adapter.httpMethods || ['GET', 'POST', 'PUT', 'PATCH']).includes(httpMethod))
60
+ .sort((a, b) => compareVersion.lt(a.clusterVersion, b.clusterVersion) ? -1 : 1)
61
+ .reduce((nextBody, adapter) => adapter.bodyUpgrade(nextBody), body);
62
+ }
63
+ }
64
+ export function k8sApiMatcher(resourceType) {
65
+ const resourceDefinitions = inject(TOKEN_RESOURCE_DEFINITIONS);
66
+ const define = typeof resourceType === 'string'
67
+ ? resourceDefinitions[resourceType]
68
+ : resourceType;
69
+ const { apiGroup, apiVersion, type } = define;
70
+ if (!define) {
71
+ throw new TypeError(`Resource type '${resourceType}' is not defined`);
72
+ }
73
+ return (url) => {
74
+ const reg = new RegExp(`/kubernetes/([^/]+)/apis/${apiGroup}/${apiVersion}/(?:namespaces/[^/]+/)?${type}`);
75
+ const matched = url.match(reg);
76
+ return matched
77
+ ? {
78
+ matched: true,
79
+ cluster: matched[1],
80
+ }
81
+ : { matched: false };
82
+ };
83
+ }
84
+ export function k8sResourceOrList(mapper) {
85
+ return (res) => {
86
+ if (isK8SResourceList(res)) {
87
+ return {
88
+ ...res,
89
+ items: res.items.map(mapper),
90
+ };
91
+ }
92
+ return mapper(res);
93
+ };
94
+ }
95
+ function isK8SResourceList(res) {
96
+ return 'items' in res && Array.isArray(res.items);
97
+ }
98
+ function isHttpDownloadProgressEvent(event) {
99
+ return event.type === HttpEventType.DownloadProgress;
100
+ }
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbXBhdGlibGUuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXBpL2FwaS1jb21wYXRpYmxlLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxhQUFhLEdBSWQsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFHTCwwQkFBMEIsRUFDMUIsY0FBYyxFQUNkLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUdsRSxNQUFNLE9BQWdCLHdCQUF3QjtJQUE5QztRQUtZLG1CQUFjLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUF5SDNELENBQUM7SUF2SEMsU0FBUyxDQUNQLEdBQXlCLEVBQ3pCLElBQWlCO1FBRWpCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTNDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNwRSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQ2xELGNBQWMsRUFDZCxPQUFPLENBQUMsTUFBTSxFQUNkLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDVixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtvQkFDekMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO3dCQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUNuQyxjQUFjLEVBQ2QsT0FBTyxDQUFDLE1BQU0sRUFDZCxLQUFLLENBQUMsSUFBSSxDQUNYO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtnQkFFRCxnQkFBZ0I7Z0JBQ2hCLElBQUksMkJBQTJCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtvQkFDM0QsT0FBTzt3QkFDTCxHQUFHLEtBQUs7d0JBQ1IsV0FBVyxFQUFFLGVBQWUsQ0FDMUIsS0FBSyxDQUFDLFdBQVcsQ0FDbEI7NkJBQ0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQzs0QkFDYixHQUFHLENBQUM7NEJBQ0osTUFBTSxFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FDckMsY0FBYyxFQUNkLE9BQU8sQ0FBQyxNQUFNLEVBQ2QsQ0FBQyxDQUFDLE1BQU0sQ0FDVDt5QkFDRixDQUFDLENBQ0g7NkJBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQztxQkFDZCxDQUFDO2lCQUNIO2dCQUVELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sdUJBQXVCLENBQzdCLGNBQXNCLEVBQ3RCLEdBQXlCO1FBRXpCLE9BQU8sSUFBSSxDQUFDLGVBQWU7YUFDeEIsTUFBTSxDQUNMLE9BQU8sQ0FBQyxFQUFFLENBQ1IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDMUIsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUN6RCxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDckU7YUFDQSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDYixjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvRDthQUNBLFdBQVcsQ0FDVixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFDdkQsR0FBRyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sMkJBQTJCLENBQ2pDLGNBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLElBQWE7UUFFYixPQUFPLElBQUksQ0FBQyxlQUFlO2FBQ3hCLE1BQU0sQ0FDTCxPQUFPLENBQUMsRUFBRSxDQUNSLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN2QixjQUFjLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3pELENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQ3hELFVBQVUsQ0FDWCxDQUNKO2FBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ2IsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDL0Q7YUFDQSxXQUFXLENBQ1YsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUN0RCxJQUFJLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTywwQkFBMEIsQ0FDaEMsY0FBc0IsRUFDdEIsVUFBa0IsRUFDbEIsSUFBYTtRQUViLE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN6QixNQUFNLENBQ0wsT0FBTyxDQUFDLEVBQUUsQ0FDUixjQUFjLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3pELENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUMvRCxVQUFVLENBQ1gsQ0FDSjthQUNBLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNiLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQy9EO2FBQ0EsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0Y7QUFxQkQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxZQUE0QztJQUN4RSxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sTUFBTSxHQUNWLE9BQU8sWUFBWSxLQUFLLFFBQVE7UUFDOUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQztRQUNuQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBRW5CLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUU5QyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsTUFBTSxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsWUFBWSxrQkFBa0IsQ0FBQyxDQUFDO0tBQ3ZFO0lBRUQsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUNwQiw0QkFBNEIsUUFBUSxJQUFJLFVBQVUsMEJBQTBCLElBQUksRUFBRSxDQUNuRixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUvQixPQUFPLE9BQU87WUFDWixDQUFDLENBQUM7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDcEI7WUFDSCxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsTUFBdUQ7SUFFdkQsT0FBTyxDQUFDLEdBQWdELEVBQUUsRUFBRTtRQUMxRCxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE9BQU87Z0JBQ0wsR0FBRyxHQUFHO2dCQUNOLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7YUFDN0IsQ0FBQztTQUNIO1FBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLEdBQWdEO0lBRWhELE9BQU8sT0FBTyxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBUywyQkFBMkIsQ0FDbEMsS0FBbUI7SUFFbkIsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSHR0cERvd25sb2FkUHJvZ3Jlc3NFdmVudCxcbiAgSHR0cEV2ZW50LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwSGFuZGxlcixcbiAgSHR0cEludGVyY2VwdG9yLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4gIFRPS0VOX1JFU09VUkNFX0RFRklOSVRJT05TLFxuICBjb21wYXJlVmVyc2lvbixcbiAgcGFyc2VKU09OU3RyZWFtLFxufSBmcm9tICcuLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBDbHVzdGVyVmVyc2lvblNlcnZpY2UgfSBmcm9tICcuL2NsdXN0ZXItdmVyc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEs4c1Jlc291cmNlRGVmaW5pdGlvbiwgV2F0Y2hBUElSZXNwb25zZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBpQ29tcGF0aWJsZUludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgYWJzdHJhY3QgbWF0Y2hVcmwocmVxOiBzdHJpbmcpOiBNYXRjaFJlc3VsdDtcbiAgYWJzdHJhY3QgcmVzcG9uc2VBZGFwdGVyczogUmVzcG9uc2VBZGFwdGVyW107XG4gIGFic3RyYWN0IHJlcXVlc3RBZGFwdGVyczogUmVxdWVzdEFkYXB0ZXJbXTtcblxuICBwcm90ZWN0ZWQgY2x1c3RlclZlcnNpb24gPSBpbmplY3QoQ2x1c3RlclZlcnNpb25TZXJ2aWNlKTtcblxuICBpbnRlcmNlcHQoXG4gICAgcmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPixcbiAgICBuZXh0OiBIdHRwSGFuZGxlcixcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICBjb25zdCBtYXRjaFJlc3VsdCA9IHRoaXMubWF0Y2hVcmwocmVxLnVybCk7XG5cbiAgICBpZiAoIW1hdGNoUmVzdWx0Lm1hdGNoZWQpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNsdXN0ZXJWZXJzaW9uLmdldENsdXN0ZXJWZXJzaW9uKG1hdGNoUmVzdWx0LmNsdXN0ZXIpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY2x1c3RlclZlcnNpb24gPT4ge1xuICAgICAgICBjb25zdCBuZXh0UmVxID0gdGhpcy5leGVjdXRlUmVxdWVzdERvd25ncmFkZShjbHVzdGVyVmVyc2lvbiwgcmVxKTtcbiAgICAgICAgY29uc3QgbmV4dFJlcUJvZHkgPSB0aGlzLmV4ZWN1dGVSZXF1ZXN0Qm9keURvd25ncmFkZShcbiAgICAgICAgICBjbHVzdGVyVmVyc2lvbixcbiAgICAgICAgICBuZXh0UmVxLm1ldGhvZCxcbiAgICAgICAgICBuZXh0UmVxLmJvZHksXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShuZXh0UmVxLmNsb25lKHsgYm9keTogbmV4dFJlcUJvZHkgfSkpLnBpcGUoXG4gICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgIHJldHVybiBldmVudC5jbG9uZSh7XG4gICAgICAgICAgICAgICAgYm9keTogdGhpcy5leGVjdXRlUmVzcG9uc2VCb2R5VXBncmFkZShcbiAgICAgICAgICAgICAgICAgIGNsdXN0ZXJWZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgbmV4dFJlcS5tZXRob2QsXG4gICAgICAgICAgICAgICAgICBldmVudC5ib2R5LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBrOHMgd2F0Y2ggYXBpXG4gICAgICAgICAgICBpZiAoaXNIdHRwRG93bmxvYWRQcm9ncmVzc0V2ZW50KGV2ZW50KSAmJiBldmVudC5wYXJ0aWFsVGV4dCkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLmV2ZW50LFxuICAgICAgICAgICAgICAgIHBhcnRpYWxUZXh0OiBwYXJzZUpTT05TdHJlYW08V2F0Y2hBUElSZXNwb25zZTx1bmtub3duPj4oXG4gICAgICAgICAgICAgICAgICBldmVudC5wYXJ0aWFsVGV4dCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAubWFwKHYgPT5cbiAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgIC4uLnYsXG4gICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB0aGlzLmV4ZWN1dGVSZXNwb25zZUJvZHlVcGdyYWRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlclZlcnNpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVxLm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHYub2JqZWN0LFxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZXZlbnQ7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlUmVxdWVzdERvd25ncmFkZShcbiAgICBjbHVzdGVyVmVyc2lvbjogc3RyaW5nLFxuICAgIHJlcTogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXG4gICkge1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3RBZGFwdGVyc1xuICAgICAgLmZpbHRlcihcbiAgICAgICAgYWRhcHRlciA9PlxuICAgICAgICAgICEhYWRhcHRlci5yZXF1ZXN0RG93bmdyYWRlICYmXG4gICAgICAgICAgY29tcGFyZVZlcnNpb24ubHQoY2x1c3RlclZlcnNpb24sIGFkYXB0ZXIuY2x1c3RlclZlcnNpb24pICYmXG4gICAgICAgICAgKCFhZGFwdGVyLmh0dHBNZXRob2RzIHx8IGFkYXB0ZXIuaHR0cE1ldGhvZHMuaW5jbHVkZXMocmVxLm1ldGhvZCkpLFxuICAgICAgKVxuICAgICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICAgIGNvbXBhcmVWZXJzaW9uLmx0KGEuY2x1c3RlclZlcnNpb24sIGIuY2x1c3RlclZlcnNpb24pID8gLTEgOiAxLFxuICAgICAgKVxuICAgICAgLnJlZHVjZVJpZ2h0KFxuICAgICAgICAobmV4dFJlcSwgYWRhcHRlcikgPT4gYWRhcHRlci5yZXF1ZXN0RG93bmdyYWRlKG5leHRSZXEpLFxuICAgICAgICByZXEsXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlUmVxdWVzdEJvZHlEb3duZ3JhZGUoXG4gICAgY2x1c3RlclZlcnNpb246IHN0cmluZyxcbiAgICBodHRwTWV0aG9kOiBzdHJpbmcsXG4gICAgYm9keTogdW5rbm93bixcbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdEFkYXB0ZXJzXG4gICAgICAuZmlsdGVyKFxuICAgICAgICBhZGFwdGVyID0+XG4gICAgICAgICAgISFhZGFwdGVyLmJvZHlEb3duZ3JhZGUgJiZcbiAgICAgICAgICBjb21wYXJlVmVyc2lvbi5sdChjbHVzdGVyVmVyc2lvbiwgYWRhcHRlci5jbHVzdGVyVmVyc2lvbikgJiZcbiAgICAgICAgICAoYWRhcHRlci5odHRwTWV0aG9kcyB8fCBbJ1BPU1QnLCAnUFVUJywgJ1BBVENIJ10pLmluY2x1ZGVzKFxuICAgICAgICAgICAgaHR0cE1ldGhvZCxcbiAgICAgICAgICApLFxuICAgICAgKVxuICAgICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICAgIGNvbXBhcmVWZXJzaW9uLmx0KGEuY2x1c3RlclZlcnNpb24sIGIuY2x1c3RlclZlcnNpb24pID8gLTEgOiAxLFxuICAgICAgKVxuICAgICAgLnJlZHVjZVJpZ2h0KFxuICAgICAgICAobmV4dEJvZHksIGFkYXB0ZXIpID0+IGFkYXB0ZXIuYm9keURvd25ncmFkZShuZXh0Qm9keSksXG4gICAgICAgIGJvZHksXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBleGVjdXRlUmVzcG9uc2VCb2R5VXBncmFkZShcbiAgICBjbHVzdGVyVmVyc2lvbjogc3RyaW5nLFxuICAgIGh0dHBNZXRob2Q6IHN0cmluZyxcbiAgICBib2R5OiB1bmtub3duLFxuICApOiB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5yZXNwb25zZUFkYXB0ZXJzXG4gICAgICAuZmlsdGVyKFxuICAgICAgICBhZGFwdGVyID0+XG4gICAgICAgICAgY29tcGFyZVZlcnNpb24ubHQoY2x1c3RlclZlcnNpb24sIGFkYXB0ZXIuY2x1c3RlclZlcnNpb24pICYmXG4gICAgICAgICAgKGFkYXB0ZXIuaHR0cE1ldGhvZHMgfHwgWydHRVQnLCAnUE9TVCcsICdQVVQnLCAnUEFUQ0gnXSkuaW5jbHVkZXMoXG4gICAgICAgICAgICBodHRwTWV0aG9kLFxuICAgICAgICAgICksXG4gICAgICApXG4gICAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgICAgY29tcGFyZVZlcnNpb24ubHQoYS5jbHVzdGVyVmVyc2lvbiwgYi5jbHVzdGVyVmVyc2lvbikgPyAtMSA6IDEsXG4gICAgICApXG4gICAgICAucmVkdWNlKChuZXh0Qm9keSwgYWRhcHRlcikgPT4gYWRhcHRlci5ib2R5VXBncmFkZShuZXh0Qm9keSksIGJvZHkpO1xuICB9XG59XG5cbmludGVyZmFjZSBBZGFwdGVyIHtcbiAgY2x1c3RlclZlcnNpb246IHN0cmluZztcbiAgaHR0cE1ldGhvZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZUFkYXB0ZXIgZXh0ZW5kcyBBZGFwdGVyIHtcbiAgYm9keVVwZ3JhZGU6IChib2R5OiB1bmtub3duKSA9PiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RBZGFwdGVyIGV4dGVuZHMgQWRhcHRlciB7XG4gIGJvZHlEb3duZ3JhZGU/OiAoYm9keTogdW5rbm93bikgPT4gdW5rbm93bjtcbiAgcmVxdWVzdERvd25ncmFkZT86IChyZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+KSA9PiBIdHRwUmVxdWVzdDx1bmtub3duPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXRjaFJlc3VsdCB7XG4gIG1hdGNoZWQ6IGJvb2xlYW47XG4gIGNsdXN0ZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrOHNBcGlNYXRjaGVyKHJlc291cmNlVHlwZTogc3RyaW5nIHwgSzhzUmVzb3VyY2VEZWZpbml0aW9uKSB7XG4gIGNvbnN0IHJlc291cmNlRGVmaW5pdGlvbnMgPSBpbmplY3QoVE9LRU5fUkVTT1VSQ0VfREVGSU5JVElPTlMpO1xuICBjb25zdCBkZWZpbmUgPVxuICAgIHR5cGVvZiByZXNvdXJjZVR5cGUgPT09ICdzdHJpbmcnXG4gICAgICA/IHJlc291cmNlRGVmaW5pdGlvbnNbcmVzb3VyY2VUeXBlXVxuICAgICAgOiByZXNvdXJjZVR5cGU7XG5cbiAgY29uc3QgeyBhcGlHcm91cCwgYXBpVmVyc2lvbiwgdHlwZSB9ID0gZGVmaW5lO1xuXG4gIGlmICghZGVmaW5lKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgUmVzb3VyY2UgdHlwZSAnJHtyZXNvdXJjZVR5cGV9JyBpcyBub3QgZGVmaW5lZGApO1xuICB9XG5cbiAgcmV0dXJuICh1cmw6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoXG4gICAgICBgL2t1YmVybmV0ZXMvKFteL10rKS9hcGlzLyR7YXBpR3JvdXB9LyR7YXBpVmVyc2lvbn0vKD86bmFtZXNwYWNlcy9bXi9dKy8pPyR7dHlwZX1gLFxuICAgICk7XG4gICAgY29uc3QgbWF0Y2hlZCA9IHVybC5tYXRjaChyZWcpO1xuXG4gICAgcmV0dXJuIG1hdGNoZWRcbiAgICAgID8ge1xuICAgICAgICAgIG1hdGNoZWQ6IHRydWUsXG4gICAgICAgICAgY2x1c3RlcjogbWF0Y2hlZFsxXSxcbiAgICAgICAgfVxuICAgICAgOiB7IG1hdGNoZWQ6IGZhbHNlIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrOHNSZXNvdXJjZU9yTGlzdChcbiAgbWFwcGVyOiAocmVzOiBLdWJlcm5ldGVzUmVzb3VyY2UpID0+IEt1YmVybmV0ZXNSZXNvdXJjZSxcbikge1xuICByZXR1cm4gKHJlczogS3ViZXJuZXRlc1Jlc291cmNlIHwgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCkgPT4ge1xuICAgIGlmIChpc0s4U1Jlc291cmNlTGlzdChyZXMpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5yZXMsXG4gICAgICAgIGl0ZW1zOiByZXMuaXRlbXMubWFwKG1hcHBlciksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbWFwcGVyKHJlcyk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGlzSzhTUmVzb3VyY2VMaXN0KFxuICByZXM6IEt1YmVybmV0ZXNSZXNvdXJjZSB8IEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4pOiByZXMgaXMgS3ViZXJuZXRlc1Jlc291cmNlTGlzdCB7XG4gIHJldHVybiAnaXRlbXMnIGluIHJlcyAmJiBBcnJheS5pc0FycmF5KHJlcy5pdGVtcyk7XG59XG5cbmZ1bmN0aW9uIGlzSHR0cERvd25sb2FkUHJvZ3Jlc3NFdmVudDxUID0gdW5rbm93bj4oXG4gIGV2ZW50OiBIdHRwRXZlbnQ8VD4sXG4pOiBldmVudCBpcyBIdHRwRG93bmxvYWRQcm9ncmVzc0V2ZW50IHtcbiAgcmV0dXJuIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzcztcbn1cbiJdfQ==