@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
@@ -4,8 +4,8 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, Co
4
4
  import { FormArray, FormGroup, FormGroupDirective, NgForm, } from '@angular/forms';
5
5
  import { debounceTime, EMPTY, map, merge, startWith, Subject } from 'rxjs';
6
6
  import { EFFECT_DIRECTIVE_MODULE } from '../../effect-directive/module';
7
- import { PurePipe } from '../../scm';
8
- import { TranslateModule } from '../../translate/translate.module';
7
+ import { PurePipe } from '../../scm/public-api';
8
+ import { TranslateModule } from '../../translate/public-api';
9
9
  import { ZeroStateComponent } from '../../widget/zero-state/zero-state.component';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@alauda/ui";
@@ -41,22 +41,22 @@ function ArrayFormTableComponent_ng_container_3_tr_1_td_4_ng_container_1_Templat
41
41
  i0.ɵɵtemplate(1, ArrayFormTableComponent_ng_container_3_tr_1_td_4_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 9);
42
42
  i0.ɵɵelementContainerEnd();
43
43
  } if (rf & 2) {
44
- const ctx_r17 = i0.ɵɵnextContext(3);
45
- const row_r6 = ctx_r17.$implicit;
46
- const index_r7 = ctx_r17.index;
47
- const ctx_r14 = i0.ɵɵnextContext();
44
+ const ctx_r18 = i0.ɵɵnextContext(3);
45
+ const row_r6 = ctx_r18.$implicit;
46
+ const index_r7 = ctx_r18.index;
47
+ const ctx_r15 = i0.ɵɵnextContext();
48
48
  i0.ɵɵadvance(1);
49
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r14.rowControlTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c0, row_r6, index_r7));
49
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r15.rowControlTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c0, row_r6, index_r7));
50
50
  } }
51
51
  function ArrayFormTableComponent_ng_container_3_tr_1_td_4_button_3_Template(rf, ctx) { if (rf & 1) {
52
- const _r20 = i0.ɵɵgetCurrentView();
52
+ const _r21 = i0.ɵɵgetCurrentView();
53
53
  i0.ɵɵelementStart(0, "button", 13);
54
- i0.ɵɵlistener("click", function ArrayFormTableComponent_ng_container_3_tr_1_td_4_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r20); const index_r7 = i0.ɵɵnextContext(3).index; const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.remove.emit(index_r7)); });
54
+ i0.ɵɵlistener("click", function ArrayFormTableComponent_ng_container_3_tr_1_td_4_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r21); const index_r7 = i0.ɵɵnextContext(3).index; const ctx_r19 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r19.remove.emit(index_r7)); });
55
55
  i0.ɵɵelement(1, "aui-icon", 14);
56
56
  i0.ɵɵelementEnd();
57
57
  } if (rf & 2) {
58
- const ctx_r15 = i0.ɵɵnextContext(4);
59
- i0.ɵɵproperty("disabled", (ctx_r15.rows == null ? null : ctx_r15.rows.length) <= ctx_r15.minRow)("square", true)("plain", true);
58
+ const ctx_r16 = i0.ɵɵnextContext(4);
59
+ i0.ɵɵproperty("disabled", (ctx_r16.rows == null ? null : ctx_r16.rows.length) <= ctx_r16.minRow)("square", true)("plain", true);
60
60
  } }
61
61
  function ArrayFormTableComponent_ng_container_3_tr_1_td_4_Template(rf, ctx) { if (rf & 1) {
62
62
  i0.ɵɵelementStart(0, "td", 6);
@@ -65,14 +65,14 @@ function ArrayFormTableComponent_ng_container_3_tr_1_td_4_Template(rf, ctx) { if
65
65
  i0.ɵɵtemplate(3, ArrayFormTableComponent_ng_container_3_tr_1_td_4_button_3_Template, 2, 3, "button", 12);
66
66
  i0.ɵɵelementEnd()();
67
67
  } if (rf & 2) {
68
- const ctx_r13 = i0.ɵɵnextContext(3);
69
- i0.ɵɵclassProp("acl-array-form-table__action-col-divider", ctx_r13.actionColumnDivider);
68
+ const ctx_r14 = i0.ɵɵnextContext(3);
69
+ i0.ɵɵclassProp("acl-array-form-table__action-col-divider", ctx_r14.actionColumnDivider);
70
70
  i0.ɵɵadvance(1);
71
- i0.ɵɵproperty("ngIf", ctx_r13.rowControlTemplate);
71
+ i0.ɵɵproperty("ngIf", ctx_r14.rowControlTemplate);
72
72
  i0.ɵɵadvance(1);
73
- i0.ɵɵproperty("auiTooltip", ctx_r13.minRowTooltip)("auiTooltipDisabled", (ctx_r13.rows == null ? null : ctx_r13.rows.length) > ctx_r13.minRow || !ctx_r13.minRowTooltip);
73
+ i0.ɵɵproperty("auiTooltip", ctx_r14.minRowTooltip)("auiTooltipDisabled", (ctx_r14.rows == null ? null : ctx_r14.rows.length) > ctx_r14.minRow || !ctx_r14.minRowTooltip);
74
74
  i0.ɵɵadvance(1);
75
- i0.ɵɵproperty("ngIf", !ctx_r13.rowControlTemplate);
75
+ i0.ɵɵproperty("ngIf", !ctx_r14.rowControlTemplate);
76
76
  } }
77
77
  function ArrayFormTableComponent_ng_container_3_tr_1_Template(rf, ctx) { if (rf & 1) {
78
78
  i0.ɵɵelementStart(0, "tr");
@@ -82,18 +82,18 @@ function ArrayFormTableComponent_ng_container_3_tr_1_Template(rf, ctx) { if (rf
82
82
  i0.ɵɵtemplate(4, ArrayFormTableComponent_ng_container_3_tr_1_td_4_Template, 4, 6, "td", 10);
83
83
  i0.ɵɵelementEnd();
84
84
  } if (rf & 2) {
85
- const rowTemplate_r10 = ctx.$implicit;
86
- const templateIndex_r11 = ctx.index;
87
- const ctx_r21 = i0.ɵɵnextContext();
88
- const row_r6 = ctx_r21.$implicit;
89
- const index_r7 = ctx_r21.index;
85
+ const rowTemplate_r11 = ctx.$implicit;
86
+ const templateIndex_r12 = ctx.index;
87
+ const ctx_r22 = i0.ɵɵnextContext();
88
+ const row_r6 = ctx_r22.$implicit;
89
+ const index_r7 = ctx_r22.index;
90
90
  const ctx_r8 = i0.ɵɵnextContext();
91
91
  i0.ɵɵclassProp("acl-array-form-table__row-error", i0.ɵɵpipeBind1(1, 6, i0.ɵɵpipeBind2(2, 8, row_r6, ctx_r8.shouldShowRowError)));
92
- i0.ɵɵattribute("rowtemplateindex", templateIndex_r11);
92
+ i0.ɵɵattribute("rowtemplateindex", templateIndex_r12);
93
93
  i0.ɵɵadvance(3);
94
- i0.ɵɵproperty("ngTemplateOutlet", rowTemplate_r10)("ngTemplateOutletContext", i0.ɵɵpureFunction2(11, _c0, row_r6, index_r7));
94
+ i0.ɵɵproperty("ngTemplateOutlet", rowTemplate_r11)("ngTemplateOutletContext", i0.ɵɵpureFunction2(11, _c0, row_r6, index_r7));
95
95
  i0.ɵɵadvance(1);
96
- i0.ɵɵproperty("ngIf", templateIndex_r11 === 0 && !ctx_r8.readonly && ctx_r8.minRow !== ctx_r8.maxRow);
96
+ i0.ɵɵproperty("ngIf", templateIndex_r12 === 0 && !ctx_r8.readonly && ctx_r8.minRow !== ctx_r8.maxRow);
97
97
  } }
98
98
  function ArrayFormTableComponent_ng_container_3_tr_2_ng_container_5_Template(rf, ctx) { if (rf & 1) {
99
99
  i0.ɵɵelementContainer(0);
@@ -107,32 +107,50 @@ function ArrayFormTableComponent_ng_container_3_tr_2_Template(rf, ctx) { if (rf
107
107
  i0.ɵɵtemplate(5, ArrayFormTableComponent_ng_container_3_tr_2_ng_container_5_Template, 1, 0, "ng-container", 9);
108
108
  i0.ɵɵelementEnd();
109
109
  } if (rf & 2) {
110
- const ctx_r23 = i0.ɵɵnextContext();
111
- const row_r6 = ctx_r23.$implicit;
112
- const index_r7 = ctx_r23.index;
110
+ const ctx_r24 = i0.ɵɵnextContext();
111
+ const row_r6 = ctx_r24.$implicit;
112
+ const index_r7 = ctx_r24.index;
113
113
  const ctx_r9 = i0.ɵɵnextContext();
114
114
  i0.ɵɵclassProp("acl-array-form-table__row-error", i0.ɵɵpipeBind1(1, 5, i0.ɵɵpipeBind2(2, 7, row_r6, ctx_r9.shouldShowRowError)));
115
115
  i0.ɵɵproperty("hidden", !i0.ɵɵpipeBind1(3, 10, i0.ɵɵpipeBind2(4, 12, row_r6, ctx_r9.shouldShowRowError)));
116
116
  i0.ɵɵadvance(5);
117
117
  i0.ɵɵproperty("ngTemplateOutlet", ctx_r9.rowErrorTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction2(15, _c0, row_r6, index_r7));
118
118
  } }
119
+ function ArrayFormTableComponent_ng_container_3_ng_container_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
120
+ i0.ɵɵelementContainer(0);
121
+ } }
122
+ function ArrayFormTableComponent_ng_container_3_ng_container_3_Template(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵelementContainerStart(0);
124
+ i0.ɵɵelementStart(1, "tr", 16)(2, "td", 17);
125
+ i0.ɵɵtemplate(3, ArrayFormTableComponent_ng_container_3_ng_container_3_ng_container_3_Template, 1, 0, "ng-container", 4);
126
+ i0.ɵɵelementEnd()();
127
+ i0.ɵɵelementContainerEnd();
128
+ } if (rf & 2) {
129
+ const ctx_r10 = i0.ɵɵnextContext(2);
130
+ i0.ɵɵadvance(3);
131
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r10.separatorTemplate);
132
+ } }
119
133
  function ArrayFormTableComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
120
134
  i0.ɵɵelementContainerStart(0);
121
135
  i0.ɵɵtemplate(1, ArrayFormTableComponent_ng_container_3_tr_1_Template, 5, 14, "tr", 7);
122
136
  i0.ɵɵtemplate(2, ArrayFormTableComponent_ng_container_3_tr_2_Template, 6, 18, "tr", 8);
137
+ i0.ɵɵtemplate(3, ArrayFormTableComponent_ng_container_3_ng_container_3_Template, 4, 1, "ng-container", 1);
123
138
  i0.ɵɵelementContainerEnd();
124
139
  } if (rf & 2) {
140
+ const index_r7 = ctx.index;
125
141
  const ctx_r1 = i0.ɵɵnextContext();
126
142
  i0.ɵɵadvance(1);
127
143
  i0.ɵɵproperty("ngForOf", ctx_r1.rowTemplates);
128
144
  i0.ɵɵadvance(1);
129
145
  i0.ɵɵproperty("ngIf", ctx_r1.rowErrorTemplate && !ctx_r1.readonly);
146
+ i0.ɵɵadvance(1);
147
+ i0.ɵɵproperty("ngIf", ctx_r1.separatorTemplate && (ctx_r1.rows == null ? null : ctx_r1.rows.length) > 1 && index_r7 !== (ctx_r1.rows == null ? null : ctx_r1.rows.length) - 1);
130
148
  } }
131
149
  function ArrayFormTableComponent_tr_4_acl_zero_state_2_Template(rf, ctx) { if (rf & 1) {
132
- i0.ɵɵelement(0, "acl-zero-state", 18);
150
+ i0.ɵɵelement(0, "acl-zero-state", 20);
133
151
  } if (rf & 2) {
134
- const ctx_r24 = i0.ɵɵnextContext(2);
135
- i0.ɵɵproperty("zeroState", true)("resourceName", ctx_r24.resourceName)("resourceNameTranslated", ctx_r24.resourceNameTranslated)("minHeight", 48);
152
+ const ctx_r26 = i0.ɵɵnextContext(2);
153
+ i0.ɵɵproperty("zeroState", true)("resourceName", ctx_r26.resourceName)("resourceNameTranslated", ctx_r26.resourceNameTranslated)("minHeight", 48);
136
154
  } }
137
155
  function ArrayFormTableComponent_tr_4_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
138
156
  i0.ɵɵelementContainer(0);
@@ -142,13 +160,13 @@ function ArrayFormTableComponent_tr_4_ng_container_3_Template(rf, ctx) { if (rf
142
160
  i0.ɵɵtemplate(1, ArrayFormTableComponent_tr_4_ng_container_3_ng_container_1_Template, 1, 0, "ng-container", 4);
143
161
  i0.ɵɵelementContainerEnd();
144
162
  } if (rf & 2) {
145
- const ctx_r25 = i0.ɵɵnextContext(2);
163
+ const ctx_r27 = i0.ɵɵnextContext(2);
146
164
  i0.ɵɵadvance(1);
147
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r25.zeroStateTemplate);
165
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r27.zeroStateTemplate);
148
166
  } }
149
167
  function ArrayFormTableComponent_tr_4_Template(rf, ctx) { if (rf & 1) {
150
- i0.ɵɵelementStart(0, "tr")(1, "td", 16);
151
- i0.ɵɵtemplate(2, ArrayFormTableComponent_tr_4_acl_zero_state_2_Template, 1, 4, "acl-zero-state", 17);
168
+ i0.ɵɵelementStart(0, "tr")(1, "td", 18);
169
+ i0.ɵɵtemplate(2, ArrayFormTableComponent_tr_4_acl_zero_state_2_Template, 1, 4, "acl-zero-state", 19);
152
170
  i0.ɵɵtemplate(3, ArrayFormTableComponent_tr_4_ng_container_3_Template, 2, 1, "ng-container", 1);
153
171
  i0.ɵɵelementEnd()();
154
172
  } if (rf & 2) {
@@ -166,30 +184,30 @@ function ArrayFormTableComponent_tr_5_ng_container_3_Template(rf, ctx) { if (rf
166
184
  i0.ɵɵtemplate(1, ArrayFormTableComponent_tr_5_ng_container_3_ng_container_1_Template, 1, 0, "ng-container", 4);
167
185
  i0.ɵɵelementContainerEnd();
168
186
  } if (rf & 2) {
169
- const ctx_r27 = i0.ɵɵnextContext(2);
187
+ const ctx_r29 = i0.ɵɵnextContext(2);
170
188
  i0.ɵɵadvance(1);
171
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r27.footerTemplate);
189
+ i0.ɵɵproperty("ngTemplateOutlet", ctx_r29.footerTemplate);
172
190
  } }
173
191
  function ArrayFormTableComponent_tr_5_div_4_Template(rf, ctx) { if (rf & 1) {
174
- const _r31 = i0.ɵɵgetCurrentView();
175
- i0.ɵɵelementStart(0, "div", 23)(1, "button", 24);
176
- i0.ɵɵlistener("click", function ArrayFormTableComponent_tr_5_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.add.emit()); });
177
- i0.ɵɵelement(2, "aui-icon", 25);
192
+ const _r33 = i0.ɵɵgetCurrentView();
193
+ i0.ɵɵelementStart(0, "div", 24)(1, "button", 25);
194
+ i0.ɵɵlistener("click", function ArrayFormTableComponent_tr_5_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r33); const ctx_r32 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r32.add.emit()); });
195
+ i0.ɵɵelement(2, "aui-icon", 26);
178
196
  i0.ɵɵtext(3);
179
197
  i0.ɵɵpipe(4, "translate");
180
198
  i0.ɵɵelementEnd()();
181
199
  } if (rf & 2) {
182
- const ctx_r28 = i0.ɵɵnextContext(2);
183
- i0.ɵɵproperty("auiTooltip", ctx_r28.maxRowTooltip)("auiTooltipDisabled", (ctx_r28.rows == null ? null : ctx_r28.rows.length) < ctx_r28.maxRow || !ctx_r28.maxRowTooltip);
200
+ const ctx_r30 = i0.ɵɵnextContext(2);
201
+ i0.ɵɵproperty("auiTooltip", ctx_r30.maxRowTooltip)("auiTooltipDisabled", (ctx_r30.rows == null ? null : ctx_r30.rows.length) < ctx_r30.maxRow || !ctx_r30.maxRowTooltip);
184
202
  i0.ɵɵadvance(1);
185
- i0.ɵɵproperty("plain", true)("disabled", (ctx_r28.rows == null ? null : ctx_r28.rows.length) >= ctx_r28.maxRow || ctx_r28.addDisabled);
203
+ i0.ɵɵproperty("plain", true)("disabled", (ctx_r30.rows == null ? null : ctx_r30.rows.length) >= ctx_r30.maxRow || ctx_r30.addDisabled);
186
204
  i0.ɵɵadvance(2);
187
205
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 5, "add"), " ");
188
206
  } }
189
207
  function ArrayFormTableComponent_tr_5_Template(rf, ctx) { if (rf & 1) {
190
- i0.ɵɵelementStart(0, "tr", 19)(1, "td", 20)(2, "div", 21);
208
+ i0.ɵɵelementStart(0, "tr", 21)(1, "td", 17)(2, "div", 22);
191
209
  i0.ɵɵtemplate(3, ArrayFormTableComponent_tr_5_ng_container_3_Template, 2, 1, "ng-container", 1);
192
- i0.ɵɵtemplate(4, ArrayFormTableComponent_tr_5_div_4_Template, 5, 7, "div", 22);
210
+ i0.ɵɵtemplate(4, ArrayFormTableComponent_tr_5_div_4_Template, 5, 7, "div", 23);
193
211
  i0.ɵɵelementEnd()()();
194
212
  } if (rf & 2) {
195
213
  const ctx_r3 = i0.ɵɵnextContext();
@@ -271,6 +289,20 @@ export class ArrayFormTableRowControlDirective {
271
289
  standalone: true,
272
290
  }]
273
291
  }], function () { return [{ type: i0.TemplateRef }]; }, null); })();
292
+ export class ArrayFormTableRowSeparatorDirective {
293
+ constructor(templateRef) {
294
+ this.templateRef = templateRef;
295
+ }
296
+ static { this.ɵfac = function ArrayFormTableRowSeparatorDirective_Factory(t) { return new (t || ArrayFormTableRowSeparatorDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef)); }; }
297
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ArrayFormTableRowSeparatorDirective, selectors: [["", "aclArrayFormTableRowSeparator", ""]], standalone: true }); }
298
+ }
299
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArrayFormTableRowSeparatorDirective, [{
300
+ type: Directive,
301
+ args: [{
302
+ selector: '[aclArrayFormTableRowSeparator]',
303
+ standalone: true,
304
+ }]
305
+ }], function () { return [{ type: i0.TemplateRef }]; }, null); })();
274
306
  export class ArrayFormTableFooterDirective {
275
307
  constructor(templateRef) {
276
308
  this.templateRef = templateRef;
@@ -325,6 +357,7 @@ export class ArrayFormTableComponent {
325
357
  this.readonly = false;
326
358
  this.addDisabled = false;
327
359
  this.actionColumnDivider = false;
360
+ this.showZeroState = true;
328
361
  this.minRow = 0;
329
362
  this.minRowTooltip = '';
330
363
  this.maxRow = Infinity;
@@ -349,6 +382,7 @@ export class ArrayFormTableComponent {
349
382
  i0.ɵɵcontentQuery(dirIndex, ArrayFormTableRowControlDirective, 7, TemplateRef);
350
383
  i0.ɵɵcontentQuery(dirIndex, ArrayFormTableFooterDirective, 7, TemplateRef);
351
384
  i0.ɵɵcontentQuery(dirIndex, ArrayFormTableZeroStateDirective, 5, TemplateRef);
385
+ i0.ɵɵcontentQuery(dirIndex, ArrayFormTableRowSeparatorDirective, 5, TemplateRef);
352
386
  i0.ɵɵcontentQuery(dirIndex, FormGroupDirective, 5);
353
387
  i0.ɵɵcontentQuery(dirIndex, ArrayFormTableRowDirective, 4, TemplateRef);
354
388
  } if (rf & 2) {
@@ -358,13 +392,14 @@ export class ArrayFormTableComponent {
358
392
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rowControlTemplate = _t.first);
359
393
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);
360
394
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.zeroStateTemplate = _t.first);
395
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.separatorTemplate = _t.first);
361
396
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ngFormGroupDirective = _t.first);
362
397
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rowTemplates = _t);
363
- } }, inputs: { rows: "rows", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", readonly: "readonly", addDisabled: "addDisabled", actionColumnDivider: "actionColumnDivider", showRowError: "showRowError", rowBackgroundColorFn: "rowBackgroundColorFn", minRow: "minRow", minRowTooltip: "minRowTooltip", maxRow: "maxRow", maxRowTooltip: "maxRowTooltip" }, outputs: { add: "add", remove: "remove" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 6, consts: [[1, "acl-array-form-table"], [4, "ngIf"], [4, "ngFor", "ngForOf"], ["class", "acl-array-form-table--row-action", 4, "ngIf"], [4, "ngTemplateOutlet"], ["class", "acl-array-form-table__action-col", 4, "ngIf"], [1, "acl-array-form-table__action-col"], [3, "acl-array-form-table__row-error", 4, "ngFor", "ngForOf"], [3, "acl-array-form-table__row-error", "hidden", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "acl-array-form-table__action-col", 3, "acl-array-form-table__action-col-divider", 4, "ngIf"], [3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "text", "type", "button", 3, "disabled", "square", "plain", "click", 4, "ngIf"], ["aui-button", "text", "type", "button", 3, "disabled", "square", "plain", "click"], ["icon", "minus_circle"], [3, "hidden"], ["colspan", "100", 2, "padding", "unset"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight", 4, "ngIf"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight"], [1, "acl-array-form-table--row-action"], ["colspan", "100"], [1, "acl-array-form-table__bottom-control-buttons"], ["class", "tw-flex tw-w-full", 3, "auiTooltip", "auiTooltipDisabled", 4, "ngIf"], [1, "tw-flex", "tw-w-full", 3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "primary", "type", "button", "size", "mini", 3, "plain", "disabled", "click"], ["icon", "plus_circle"]], template: function ArrayFormTableComponent_Template(rf, ctx) { if (rf & 1) {
398
+ } }, inputs: { rows: "rows", resourceName: "resourceName", resourceNameTranslated: "resourceNameTranslated", readonly: "readonly", addDisabled: "addDisabled", actionColumnDivider: "actionColumnDivider", showZeroState: "showZeroState", showRowError: "showRowError", rowBackgroundColorFn: "rowBackgroundColorFn", minRow: "minRow", minRowTooltip: "minRowTooltip", maxRow: "maxRow", maxRowTooltip: "maxRowTooltip" }, outputs: { add: "add", remove: "remove" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 6, consts: [[1, "acl-array-form-table"], [4, "ngIf"], [4, "ngFor", "ngForOf"], ["class", "acl-array-form-table--row-action", 4, "ngIf"], [4, "ngTemplateOutlet"], ["class", "acl-array-form-table__action-col", 4, "ngIf"], [1, "acl-array-form-table__action-col"], [3, "acl-array-form-table__row-error", 4, "ngFor", "ngForOf"], [3, "acl-array-form-table__row-error", "hidden", 4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "acl-array-form-table__action-col", 3, "acl-array-form-table__action-col-divider", 4, "ngIf"], [3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "text", "type", "button", 3, "disabled", "square", "plain", "click", 4, "ngIf"], ["aui-button", "text", "type", "button", 3, "disabled", "square", "plain", "click"], ["icon", "minus_circle"], [3, "hidden"], [1, "acl-array-form-table__separator"], ["colspan", "100"], ["colspan", "100", 2, "padding", "unset"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight", 4, "ngIf"], [3, "zeroState", "resourceName", "resourceNameTranslated", "minHeight"], [1, "acl-array-form-table--row-action"], [1, "acl-array-form-table__bottom-control-buttons"], ["class", "tw-flex tw-w-full", 3, "auiTooltip", "auiTooltipDisabled", 4, "ngIf"], [1, "tw-flex", "tw-w-full", 3, "auiTooltip", "auiTooltipDisabled"], ["aui-button", "primary", "type", "button", "size", "mini", 3, "plain", "disabled", "click"], ["icon", "plus_circle"]], template: function ArrayFormTableComponent_Template(rf, ctx) { if (rf & 1) {
364
399
  i0.ɵɵelementStart(0, "table", 0);
365
400
  i0.ɵɵtemplate(1, ArrayFormTableComponent_thead_1_Template, 4, 2, "thead", 1);
366
401
  i0.ɵɵelementStart(2, "tbody");
367
- i0.ɵɵtemplate(3, ArrayFormTableComponent_ng_container_3_Template, 3, 2, "ng-container", 2);
402
+ i0.ɵɵtemplate(3, ArrayFormTableComponent_ng_container_3_Template, 4, 3, "ng-container", 2);
368
403
  i0.ɵɵtemplate(4, ArrayFormTableComponent_tr_4_Template, 4, 2, "tr", 1);
369
404
  i0.ɵɵtemplate(5, ArrayFormTableComponent_tr_5_Template, 5, 2, "tr", 3);
370
405
  i0.ɵɵelementEnd()();
@@ -375,7 +410,7 @@ export class ArrayFormTableComponent {
375
410
  i0.ɵɵadvance(2);
376
411
  i0.ɵɵproperty("ngForOf", ctx.rows);
377
412
  i0.ɵɵadvance(1);
378
- i0.ɵɵproperty("ngIf", !ctx.rows || ctx.rows.length === 0);
413
+ i0.ɵɵproperty("ngIf", (!ctx.rows || ctx.rows.length === 0) && ctx.showZeroState);
379
414
  i0.ɵɵadvance(1);
380
415
  i0.ɵɵproperty("ngIf", !ctx.readonly && ctx.minRow !== ctx.maxRow);
381
416
  } }, dependencies: [NgTemplateOutlet,
@@ -400,7 +435,7 @@ export class ArrayFormTableComponent {
400
435
  AsyncPipe,
401
436
  TranslateModule,
402
437
  ...EFFECT_DIRECTIVE_MODULE,
403
- ], standalone: true, template: "<table\n class=\"acl-array-form-table\"\n [class.acl-array-form-table__readonly-mode]=\"readonly\"\n>\n <thead *ngIf=\"headerTemplate\">\n <tr>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <th\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n ></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let row of rows; let index = index\">\n <tr\n *ngFor=\"let rowTemplate of rowTemplates; let templateIndex = index\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [attr.rowtemplateindex]=\"templateIndex\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n <td\n *ngIf=\"templateIndex === 0 && !readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n [class.acl-array-form-table__action-col-divider]=\"actionColumnDivider\"\n >\n <ng-container *ngIf=\"rowControlTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n rowControlTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </ng-container>\n <div\n [auiTooltip]=\"minRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length > minRow || !minRowTooltip\"\n >\n <button\n *ngIf=\"!rowControlTemplate\"\n aui-button=\"text\"\n type=\"button\"\n [disabled]=\"rows?.length <= minRow\"\n [square]=\"true\"\n [plain]=\"true\"\n (click)=\"remove.emit(index)\"\n >\n <aui-icon icon=\"minus_circle\"></aui-icon>\n </button>\n </div>\n </td>\n </tr>\n\n <tr\n *ngIf=\"rowErrorTemplate && !readonly\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [hidden]=\"!(row | pure: shouldShowRowError | async)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowErrorTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </tr>\n </ng-container>\n\n <tr *ngIf=\"!rows || rows.length === 0\">\n <td\n colspan=\"100\"\n style=\"padding: unset\"\n >\n <acl-zero-state\n *ngIf=\"!zeroStateTemplate\"\n [zeroState]=\"true\"\n [resourceName]=\"resourceName\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n [minHeight]=\"48\"\n ></acl-zero-state>\n\n <ng-container *ngIf=\"zeroStateTemplate\">\n <ng-container *ngTemplateOutlet=\"zeroStateTemplate\"></ng-container>\n </ng-container>\n </td>\n </tr>\n\n <tr\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table--row-action\"\n >\n <td colspan=\"100\">\n <div class=\"acl-array-form-table__bottom-control-buttons\">\n <ng-container *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </ng-container>\n <div\n *ngIf=\"!footerTemplate\"\n class=\"tw-flex tw-w-full\"\n [auiTooltip]=\"maxRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length < maxRow || !maxRowTooltip\"\n >\n <button\n aui-button=\"primary\"\n type=\"button\"\n [plain]=\"true\"\n size=\"mini\"\n (click)=\"add.emit()\"\n [disabled]=\"rows?.length >= maxRow || addDisabled\"\n >\n <aui-icon icon=\"plus_circle\"></aui-icon>\n {{ 'add' | translate }}\n </button>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
438
+ ], standalone: true, template: "<table\n class=\"acl-array-form-table\"\n [class.acl-array-form-table__readonly-mode]=\"readonly\"\n>\n <thead *ngIf=\"headerTemplate\">\n <tr>\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n <th\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n ></th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let row of rows; let index = index\">\n <tr\n *ngFor=\"let rowTemplate of rowTemplates; let templateIndex = index\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [attr.rowtemplateindex]=\"templateIndex\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n <td\n *ngIf=\"templateIndex === 0 && !readonly && minRow !== maxRow\"\n class=\"acl-array-form-table__action-col\"\n [class.acl-array-form-table__action-col-divider]=\"actionColumnDivider\"\n >\n <ng-container *ngIf=\"rowControlTemplate\">\n <ng-container\n *ngTemplateOutlet=\"\n rowControlTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </ng-container>\n <div\n [auiTooltip]=\"minRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length > minRow || !minRowTooltip\"\n >\n <button\n *ngIf=\"!rowControlTemplate\"\n aui-button=\"text\"\n type=\"button\"\n [disabled]=\"rows?.length <= minRow\"\n [square]=\"true\"\n [plain]=\"true\"\n (click)=\"remove.emit(index)\"\n >\n <aui-icon icon=\"minus_circle\"></aui-icon>\n </button>\n </div>\n </td>\n </tr>\n\n <tr\n *ngIf=\"rowErrorTemplate && !readonly\"\n [class.acl-array-form-table__row-error]=\"\n row | pure: shouldShowRowError | async\n \"\n [hidden]=\"!(row | pure: shouldShowRowError | async)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowErrorTemplate;\n context: { $implicit: row, index: index }\n \"\n ></ng-container>\n </tr>\n <ng-container\n *ngIf=\"\n separatorTemplate && rows?.length > 1 && index !== rows?.length - 1\n \"\n >\n <tr class=\"acl-array-form-table__separator\">\n <td colspan=\"100\">\n <ng-container *ngTemplateOutlet=\"separatorTemplate\"></ng-container>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n\n <tr *ngIf=\"(!rows || rows.length === 0) && showZeroState\">\n <td\n colspan=\"100\"\n style=\"padding: unset\"\n >\n <acl-zero-state\n *ngIf=\"!zeroStateTemplate\"\n [zeroState]=\"true\"\n [resourceName]=\"resourceName\"\n [resourceNameTranslated]=\"resourceNameTranslated\"\n [minHeight]=\"48\"\n ></acl-zero-state>\n\n <ng-container *ngIf=\"zeroStateTemplate\">\n <ng-container *ngTemplateOutlet=\"zeroStateTemplate\"></ng-container>\n </ng-container>\n </td>\n </tr>\n\n <tr\n *ngIf=\"!readonly && minRow !== maxRow\"\n class=\"acl-array-form-table--row-action\"\n >\n <td colspan=\"100\">\n <div class=\"acl-array-form-table__bottom-control-buttons\">\n <ng-container *ngIf=\"footerTemplate\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </ng-container>\n <div\n *ngIf=\"!footerTemplate\"\n class=\"tw-flex tw-w-full\"\n [auiTooltip]=\"maxRowTooltip\"\n [auiTooltipDisabled]=\"rows?.length < maxRow || !maxRowTooltip\"\n >\n <button\n aui-button=\"primary\"\n type=\"button\"\n [plain]=\"true\"\n size=\"mini\"\n (click)=\"add.emit()\"\n [disabled]=\"rows?.length >= maxRow || addDisabled\"\n >\n <aui-icon icon=\"plus_circle\"></aui-icon>\n {{ 'add' | translate }}\n </button>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
404
439
  }], function () { return [{ type: i0.Injector }]; }, { headerTemplate: [{
405
440
  type: ContentChild,
406
441
  args: [ArrayFormTableHeaderDirective, {
@@ -431,6 +466,12 @@ export class ArrayFormTableComponent {
431
466
  read: TemplateRef,
432
467
  static: false,
433
468
  }]
469
+ }], separatorTemplate: [{
470
+ type: ContentChild,
471
+ args: [ArrayFormTableRowSeparatorDirective, {
472
+ read: TemplateRef,
473
+ static: false,
474
+ }]
434
475
  }], ngFormGroupDirective: [{
435
476
  type: ContentChild,
436
477
  args: [FormGroupDirective, { static: false }]
@@ -450,6 +491,8 @@ export class ArrayFormTableComponent {
450
491
  type: Input
451
492
  }], actionColumnDivider: [{
452
493
  type: Input
494
+ }], showZeroState: [{
495
+ type: Input
453
496
  }], showRowError: [{
454
497
  type: Input
455
498
  }], rowBackgroundColorFn: [{
@@ -463,4 +506,4 @@ export class ArrayFormTableComponent {
463
506
  }], maxRowTooltip: [{
464
507
  type: Input
465
508
  }] }); })();
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUvZm9ybS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXJyYXktZm9ybS10YWJsZS9mb3JtL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sR0FDUCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7O0lDdkI1RSx3QkFBZ0U7OztJQUNoRSx3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QzNDLElBQUksRUFBRSxXQUFXO29CQUNqQixNQUFNLEVBQUUsSUFBSTtpQkFDYjtZQUtELFlBQVk7a0JBRFgsZUFBZTttQkFBQywwQkFBMEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFJbEUsZ0JBQWdCO2tCQURmLFlBQVk7bUJBQUMsK0JBQStCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBVXBFLGtCQUFrQjtrQkFKakIsWUFBWTttQkFBQyxpQ0FBaUMsRUFBRTtvQkFDL0MsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLE1BQU0sRUFBRSxJQUFJO2lCQUNiO1lBVUQsY0FBYztrQkFKYixZQUFZO21CQUFDLDZCQUE2QixFQUFFO29CQUMzQyxJQUFJLEVBQUUsV0FBVztvQkFDakIsTUFBTSxFQUFFLElBQUk7aUJBQ2I7WUFVRCxpQkFBaUI7a0JBSmhCLFlBQVk7bUJBQUMsZ0NBQWdDLEVBQUU7b0JBQzlDLElBQUksRUFBRSxXQUFXO29CQUNqQixNQUFNLEVBQUUsS0FBSztpQkFDZDtZQUlELG9CQUFvQjtrQkFEbkIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFLbkQsSUFBSTtrQkFESCxLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBSU4sc0JBQXNCO2tCQURyQixLQUFLO1lBSU4sR0FBRztrQkFERixNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsUUFBUTtrQkFEUCxLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixLQUFLO1lBZU4sWUFBWTtrQkFEWCxLQUFLO1lBbUJOLG9CQUFvQjtrQkFEbkIsS0FBSztZQVdOLE1BQU07a0JBREwsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgcmdiQ29sb3IsIFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdGb3JtLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIEVNUFRZLCBtYXAsIG1lcmdlLCBzdGFydFdpdGgsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRUZGRUNUX0RJUkVDVElWRV9NT0RVTEUgfSBmcm9tICcuLi8uLi9lZmZlY3QtZGlyZWN0aXZlL21vZHVsZSc7XG5pbXBvcnQgeyBQdXJlUGlwZSB9IGZyb20gJy4uLy4uL3NjbSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvdHJhbnNsYXRlLm1vZHVsZSc7XG5pbXBvcnQgeyBaZXJvU3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXQvemVyby1zdGF0ZS96ZXJvLXN0YXRlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBBUlJBWV9UQUJMRV9GT1JNX0VSUk9SX0JHID0gcmdiQ29sb3IoJ3ItNicpO1xuXG5leHBvcnQgY29uc3Qgcm93QmFja2dyb3VuZENvbG9yRm4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oe1xuICBpbnZhbGlkLFxufTogVCk6IHN0cmluZyA9PiAoaW52YWxpZCA/IEFSUkFZX1RBQkxFX0ZPUk1fRVJST1JfQkcgOiAnJyk7XG5cbmV4cG9ydCBjb25zdCBub1Nob3dSb3dFcnJvciA9ICgpID0+IGZhbHNlO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVIZWFkZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVIZWFkZXJEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVJvd0Vycm9yXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlUm93RXJyb3JEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVJvd10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZVJvd0RpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlWmVyb1N0YXRlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlWmVyb1N0YXRlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVSb3dDb250cm9sXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlRm9vdGVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlRm9vdGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG4vLyDpgJLlvZLpqozor4EgY29udHJvbCDmmK/lkKbmnInpl67popjvvIxncm91cCDlhoXpg6jlj6/og73kvJrmnInltYzlpZfnmoTmg4XlhrVcbmZ1bmN0aW9uIF9pc0Zvcm1Db250cm9sSW52YWxpZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgIHJldHVybiAoXG4gICAgICAoY29udHJvbC5kaXJ0eSAmJiAhIWNvbnRyb2wuZXJyb3JzKSB8fFxuICAgICAgT2JqZWN0LnZhbHVlcyhjb250cm9sLmNvbnRyb2xzKS5zb21lKF9pc0Zvcm1Db250cm9sSW52YWxpZClcbiAgICApO1xuICB9XG4gIHJldHVybiBjb250cm9sLmRpcnR5ICYmIGNvbnRyb2wuaW52YWxpZDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWFycmF5LWZvcm0tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIC8vIFNpbmNlIHJvd3MgbWF5YmUgdXBkYXRlZCB3aXRob3V0IGNoYW5naW5nIHJlZmVyZW5jZSwgd2UgdXNlIERlZmF1bHQgaGVyZTpcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9wcmVmZXItb24tcHVzaC1jb21wb25lbnQtY2hhbmdlLWRldGVjdGlvblxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgWmVyb1N0YXRlQ29tcG9uZW50LFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIE5nSWYsXG4gICAgTmdGb3JPZixcbiAgICBQdXJlUGlwZSxcbiAgICBBc3luY1BpcGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIC4uLkVGRkVDVF9ESVJFQ1RJVkVfTU9EVUxFLFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVIZWFkZXJEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8vIOeUqOaIt+WPr+S7peaPkOS+m+WkmuihjOaooeadvywg5L2G5Y+q5pyJ56ys5LiA6KGM5pyJ5o6n5Yi25oyJ6ZSuLlxuICBAQ29udGVudENoaWxkcmVuKEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHJvd1RlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVSb3dFcnJvckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICByb3dFcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiDooajljZXpu5jorqTmj5DkvpvliKDpmaTmjInplK47IOWBh+WmgueUqOaIt+aPkOS+m+aooeadvywg5bCG5L2/55So55So5oi355qE5qih5p2/XG4gICAqL1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcm93Q29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiDooajljZXpu5jorqTmj5Dkvpvmt7vliqDmjInplK47IOWBh+WmgueUqOaIt+aPkOS+m+aooeadvywg5bCG5L2/55So55So5oi355qE5qih5p2/XG4gICAqL1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlRm9vdGVyRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog6KGo5Y2V6buY6K6k5Li656m65pWw5o2u5o+Q5L6b5pegeHh455qE5qih5p2/OyDlgYflpoLnlKjmiLfmj5DkvpvmqKHmnb8sIOWwhuS9v+eUqOeUqOaIt+eahOaooeadv1xuICAgKi9cbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZVplcm9TdGF0ZURpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogZmFsc2UsXG4gIH0pXG4gIHplcm9TdGF0ZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRm9ybUdyb3VwRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgbmdGb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAvLyBEYXRhIGNvbnRleHQgZm9yIHJvd3MuXG4gIEBJbnB1dCgpXG4gIHJvd3M6IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIHJlc291cmNlTmFtZSA9IG51bGwgYXMgc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHJlc291cmNlTmFtZVRyYW5zbGF0ZWQ6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgYWRkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTsgLy8gUmV0dXJucyB0aGUgaW5kZXggdG8gYmUgcmVtb3ZlZFxuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuIHwgJycgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBhZGREaXNhYmxlZDogYm9vbGVhbiB8ICcnID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWN0aW9uQ29sdW1uRGl2aWRlcjogYm9vbGVhbiB8ICcnID0gZmFsc2U7XG5cbiAgZ2V0IGZvcm1EaXJlY3RpdmUoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cERpcmVjdGl2ZSwgbnVsbCkgfHxcbiAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE5nRm9ybSwgbnVsbClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOiHquWumuS5ieaYr+WQpuWxleekuumUmeivr+WGheWuuVxuICAgKiDkvovlpoIgY29udHJvbCDmmK8gRm9ybUdyb3Vw77yM5Y+q5pyJ5Zyo5YaF6YOo5a2QIGNvbnRyb2wg6ZSZ6K+v5pe25omN6ZyA6KaB5bGV56S66ZSZ6K+v5YaF5a65XG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93Um93RXJyb3I8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oXG4gICAgY29udHJvbDogVCxcbiAgICBmb3JtRGlyZWN0aXZlPzogTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoZm9ybURpcmVjdGl2ZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgIChmb3JtRGlyZWN0aXZlLnN1Ym1pdHRlZCB8fCBfaXNGb3JtQ29udHJvbEludmFsaWQoY29udHJvbCkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIHNob3dSb3dFcnJvcn0gaW5zdGVhZFxuICAgKi9cbiAgQElucHV0KClcbiAgcm93QmFja2dyb3VuZENvbG9yRm48VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oXG4gICAgY29udHJvbDogVCxcbiAgICBmb3JtRGlyZWN0aXZlPzogTmdGb3JtIHwgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNob3dSb3dFcnJvcihjb250cm9sLCBmb3JtRGlyZWN0aXZlKVxuICAgICAgPyBBUlJBWV9UQUJMRV9GT1JNX0VSUk9SX0JHXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBtaW5Sb3cgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIG1pblJvd1Rvb2x0aXAgPSAnJztcblxuICBASW5wdXQoKVxuICBtYXhSb3cgPSBJbmZpbml0eTtcblxuICBASW5wdXQoKVxuICBtYXhSb3dUb29sdGlwID0gJyc7XG5cbiAgZGVzdHJveSQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjZHIgPSB0aGlzLmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHNob3VsZFNob3dSb3dFcnJvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICBjb25zdCB7IHN0YXR1c0NoYW5nZXMgPSBFTVBUWSwgc3RhdHVzIH0gPSBjb250cm9sO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZm9ybURpcmVjdGl2ZVxuICAgICAgICA/IG1lcmdlKHN0YXR1c0NoYW5nZXMsIHRoaXMuZm9ybURpcmVjdGl2ZS5uZ1N1Ym1pdClcbiAgICAgICAgOiBzdGF0dXNDaGFuZ2VzXG4gICAgKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKHN0YXR1cyksXG4gICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICBtYXAoKCkgPT4gdGhpcy5zaG93Um93RXJyb3IoY29udHJvbCwgdGhpcy5mb3JtRGlyZWN0aXZlKSksXG4gICAgKTtcbiAgfTtcbn1cbiIsIjx0YWJsZVxuICBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlXCJcbiAgW2NsYXNzLmFjbC1hcnJheS1mb3JtLXRhYmxlX19yZWFkb25seS1tb2RlXT1cInJlYWRvbmx5XCJcbj5cbiAgPHRoZWFkICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGVcIj5cbiAgICA8dHI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDx0aFxuICAgICAgICAqbmdJZj1cIiFyZWFkb25seSAmJiBtaW5Sb3cgIT09IG1heFJvd1wiXG4gICAgICAgIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX2FjdGlvbi1jb2xcIlxuICAgICAgPjwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgPHRyXG4gICAgICAgICpuZ0Zvcj1cImxldCByb3dUZW1wbGF0ZSBvZiByb3dUZW1wbGF0ZXM7IGxldCB0ZW1wbGF0ZUluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbY2xhc3MuYWNsLWFycmF5LWZvcm0tdGFibGVfX3Jvdy1lcnJvcl09XCJcbiAgICAgICAgICByb3cgfCBwdXJlOiBzaG91bGRTaG93Um93RXJyb3IgfCBhc3luY1xuICAgICAgICBcIlxuICAgICAgICBbYXR0ci5yb3d0ZW1wbGF0ZWluZGV4XT1cInRlbXBsYXRlSW5kZXhcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIHJvd1RlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZFxuICAgICAgICAgICpuZ0lmPVwidGVtcGxhdGVJbmRleCA9PT0gMCAmJiAhcmVhZG9ubHkgJiYgbWluUm93ICE9PSBtYXhSb3dcIlxuICAgICAgICAgIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX2FjdGlvbi1jb2xcIlxuICAgICAgICAgIFtjbGFzcy5hY2wtYXJyYXktZm9ybS10YWJsZV9fYWN0aW9uLWNvbC1kaXZpZGVyXT1cImFjdGlvbkNvbHVtbkRpdmlkZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvd0NvbnRyb2xUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIHJvd0NvbnRyb2xUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaW5kZXggfVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIm1pblJvd1Rvb2x0aXBcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJyb3dzPy5sZW5ndGggPiBtaW5Sb3cgfHwgIW1pblJvd1Rvb2x0aXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgKm5nSWY9XCIhcm93Q29udHJvbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgYXVpLWJ1dHRvbj1cInRleHRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA8PSBtaW5Sb3dcIlxuICAgICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUuZW1pdChpbmRleClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cIm1pbnVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG5cbiAgICAgIDx0clxuICAgICAgICAqbmdJZj1cInJvd0Vycm9yVGVtcGxhdGUgJiYgIXJlYWRvbmx5XCJcbiAgICAgICAgW2NsYXNzLmFjbC1hcnJheS1mb3JtLXRhYmxlX19yb3ctZXJyb3JdPVwiXG4gICAgICAgICAgcm93IHwgcHVyZTogc2hvdWxkU2hvd1Jvd0Vycm9yIHwgYXN5bmNcbiAgICAgICAgXCJcbiAgICAgICAgW2hpZGRlbl09XCIhKHJvdyB8IHB1cmU6IHNob3VsZFNob3dSb3dFcnJvciB8IGFzeW5jKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgcm93RXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiBpbmRleCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ciAqbmdJZj1cIiFyb3dzIHx8IHJvd3MubGVuZ3RoID09PSAwXCI+XG4gICAgICA8dGRcbiAgICAgICAgY29sc3Bhbj1cIjEwMFwiXG4gICAgICAgIHN0eWxlPVwicGFkZGluZzogdW5zZXRcIlxuICAgICAgPlxuICAgICAgICA8YWNsLXplcm8tc3RhdGVcbiAgICAgICAgICAqbmdJZj1cIiF6ZXJvU3RhdGVUZW1wbGF0ZVwiXG4gICAgICAgICAgW3plcm9TdGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICBbcmVzb3VyY2VOYW1lXT1cInJlc291cmNlTmFtZVwiXG4gICAgICAgICAgW3Jlc291cmNlTmFtZVRyYW5zbGF0ZWRdPVwicmVzb3VyY2VOYW1lVHJhbnNsYXRlZFwiXG4gICAgICAgICAgW21pbkhlaWdodF09XCI0OFwiXG4gICAgICAgID48L2FjbC16ZXJvLXN0YXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ6ZXJvU3RhdGVUZW1wbGF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ6ZXJvU3RhdGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cblxuICAgIDx0clxuICAgICAgKm5nSWY9XCIhcmVhZG9ubHkgJiYgbWluUm93ICE9PSBtYXhSb3dcIlxuICAgICAgY2xhc3M9XCJhY2wtYXJyYXktZm9ybS10YWJsZS0tcm93LWFjdGlvblwiXG4gICAgPlxuICAgICAgPHRkIGNvbHNwYW49XCIxMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlX19ib3R0b20tY29udHJvbC1idXR0b25zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIiFmb290ZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInR3LWZsZXggdHctdy1mdWxsXCJcbiAgICAgICAgICAgIFthdWlUb29sdGlwXT1cIm1heFJvd1Rvb2x0aXBcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBEaXNhYmxlZF09XCJyb3dzPy5sZW5ndGggPCBtYXhSb3cgfHwgIW1heFJvd1Rvb2x0aXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgYXVpLWJ1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3BsYWluXT1cInRydWVcIlxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA+PSBtYXhSb3cgfHwgYWRkRGlzYWJsZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXVpLWljb24gaWNvbj1cInBsdXNfY2lyY2xlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICAgICAge3sgJ2FkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
509
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUvZm9ybS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvYXJyYXktZm9ybS10YWJsZS9mb3JtL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLE1BQU0sR0FDUCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7SUN2QjVFLHdCQUFnRTs7O0lBQ2hF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QUFXO29CQUNqQixNQUFNLEVBQUUsS0FBSztpQkFDZDtZQUlELG9CQUFvQjtrQkFEbkIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFLbkQsSUFBSTtrQkFESCxLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBSU4sc0JBQXNCO2tCQURyQixLQUFLO1lBSU4sR0FBRztrQkFERixNQUFNO1lBSVAsTUFBTTtrQkFETCxNQUFNO1lBSVAsUUFBUTtrQkFEUCxLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sbUJBQW1CO2tCQURsQixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBZU4sWUFBWTtrQkFEWCxLQUFLO1lBbUJOLG9CQUFvQjtrQkFEbkIsS0FBSztZQVdOLE1BQU07a0JBREwsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSztZQUlOLGFBQWE7a0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgcmdiQ29sb3IsIFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3JPZiwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUFycmF5LFxuICBGb3JtR3JvdXAsXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgTmdGb3JtLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIEVNUFRZLCBtYXAsIG1lcmdlLCBzdGFydFdpdGgsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRUZGRUNUX0RJUkVDVElWRV9NT0RVTEUgfSBmcm9tICcuLi8uLi9lZmZlY3QtZGlyZWN0aXZlL21vZHVsZSc7XG5pbXBvcnQgeyBQdXJlUGlwZSB9IGZyb20gJy4uLy4uL3NjbS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJy4uLy4uL3RyYW5zbGF0ZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFplcm9TdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldC96ZXJvLXN0YXRlL3plcm8tc3RhdGUuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEFSUkFZX1RBQkxFX0ZPUk1fRVJST1JfQkcgPSByZ2JDb2xvcignci02Jyk7XG5cbmV4cG9ydCBjb25zdCByb3dCYWNrZ3JvdW5kQ29sb3JGbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPih7XG4gIGludmFsaWQsXG59OiBUKTogc3RyaW5nID0+IChpbnZhbGlkID8gQVJSQVlfVEFCTEVfRk9STV9FUlJPUl9CRyA6ICcnKTtcblxuZXhwb3J0IGNvbnN0IG5vU2hvd1Jvd0Vycm9yID0gKCkgPT4gZmFsc2U7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZUhlYWRlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZUhlYWRlckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlUm93RXJyb3JdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVSb3dFcnJvckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FjbEFycmF5Rm9ybVRhYmxlUm93XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVaZXJvU3RhdGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVaZXJvU3RhdGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2xdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVSb3dDb250cm9sRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWNsQXJyYXlGb3JtVGFibGVSb3dTZXBhcmF0b3JdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVSb3dTZXBhcmF0b3JEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thY2xBcnJheUZvcm1UYWJsZUZvb3Rlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZvcm1UYWJsZUZvb3RlckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuLy8g6YCS5b2S6aqM6K+BIGNvbnRyb2wg5piv5ZCm5pyJ6Zeu6aKY77yMZ3JvdXAg5YaF6YOo5Y+v6IO95Lya5pyJ5bWM5aWX55qE5oOF5Ya1XG5mdW5jdGlvbiBfaXNGb3JtQ29udHJvbEludmFsaWQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwIHx8IGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKGNvbnRyb2wuZGlydHkgJiYgISFjb250cm9sLmVycm9ycykgfHxcbiAgICAgIE9iamVjdC52YWx1ZXMoY29udHJvbC5jb250cm9scykuc29tZShfaXNGb3JtQ29udHJvbEludmFsaWQpXG4gICAgKTtcbiAgfVxuICByZXR1cm4gY29udHJvbC5kaXJ0eSAmJiBjb250cm9sLmludmFsaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1hcnJheS1mb3JtLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLmh0bWwnLFxuICAvLyBTaW5jZSByb3dzIG1heWJlIHVwZGF0ZWQgd2l0aG91dCBjaGFuZ2luZyByZWZlcmVuY2UsIHdlIHVzZSBEZWZhdWx0IGhlcmU6XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLW9uLXB1c2gtY29tcG9uZW50LWNoYW5nZS1kZXRlY3Rpb25cbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBUb29sdGlwTW9kdWxlLFxuICAgIFplcm9TdGF0ZUNvbXBvbmVudCxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE5nRm9yT2YsXG4gICAgUHVyZVBpcGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAuLi5FRkZFQ1RfRElSRUNUSVZFX01PRFVMRSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGb3JtVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvLyDnlKjmiLflj6/ku6Xmj5DkvpvlpJrooYzmqKHmnb8sIOS9huWPquacieesrOS4gOihjOacieaOp+WItuaMiemUri5cbiAgQENvbnRlbnRDaGlsZHJlbihBcnJheUZvcm1UYWJsZVJvd0RpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICByb3dUZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlUm93RXJyb3JEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcm93RXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog6KGo5Y2V6buY6K6k5o+Q5L6b5Yig6Zmk5oyJ6ZSuOyDlgYflpoLnlKjmiLfmj5DkvpvmqKHmnb8sIOWwhuS9v+eUqOeUqOaIt+eahOaooeadv1xuICAgKi9cbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2xEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHJvd0NvbnRyb2xUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog6KGo5Y2V6buY6K6k5o+Q5L6b5re75Yqg5oyJ6ZSuOyDlgYflpoLnlKjmiLfmj5DkvpvmqKHmnb8sIOWwhuS9v+eUqOeUqOaIt+eahOaooeadv1xuICAgKi9cbiAgQENvbnRlbnRDaGlsZChBcnJheUZvcm1UYWJsZUZvb3RlckRpcmVjdGl2ZSwge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgLyoqXG4gICAqIOihqOWNlem7mOiupOS4uuepuuaVsOaNruaPkOS+m+aXoHh4eOeahOaooeadvzsg5YGH5aaC55So5oi35o+Q5L6b5qih5p2/LCDlsIbkvb/nlKjnlKjmiLfnmoTmqKHmnb9cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoQXJyYXlGb3JtVGFibGVaZXJvU3RhdGVEaXJlY3RpdmUsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IGZhbHNlLFxuICB9KVxuICB6ZXJvU3RhdGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICog6KGM5LmL6Ze055qE5YiG6ZqU5Yy65Z+fXG4gICAqL1xuICBAQ29udGVudENoaWxkKEFycmF5Rm9ybVRhYmxlUm93U2VwYXJhdG9yRGlyZWN0aXZlLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiBmYWxzZSxcbiAgfSlcbiAgc2VwYXJhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZChGb3JtR3JvdXBEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBuZ0Zvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlO1xuXG4gIC8vIERhdGEgY29udGV4dCBmb3Igcm93cy5cbiAgQElucHV0KClcbiAgcm93czogYW55W107XG5cbiAgQElucHV0KClcbiAgcmVzb3VyY2VOYW1lID0gbnVsbCBhcyBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZDogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKVxuICBhZGQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpOyAvLyBSZXR1cm5zIHRoZSBpbmRleCB0byBiZSByZW1vdmVkXG5cbiAgQElucHV0KClcbiAgcmVhZG9ubHk6IGJvb2xlYW4gfCAnJyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGFkZERpc2FibGVkOiBib29sZWFuIHwgJycgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBhY3Rpb25Db2x1bW5EaXZpZGVyOiBib29sZWFuIHwgJycgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaG93WmVyb1N0YXRlID0gdHJ1ZTtcblxuICBnZXQgZm9ybURpcmVjdGl2ZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbmplY3Rvci5nZXQoRm9ybUdyb3VwRGlyZWN0aXZlLCBudWxsKSB8fFxuICAgICAgdGhpcy5pbmplY3Rvci5nZXQoTmdGb3JtLCBudWxsKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog6Ieq5a6a5LmJ5piv5ZCm5bGV56S66ZSZ6K+v5YaF5a65XG4gICAqIOS+i+WmgiBjb250cm9sIOaYryBGb3JtR3JvdXDvvIzlj6rmnInlnKjlhoXpg6jlrZAgY29udHJvbCDplJnor6/ml7bmiY3pnIDopoHlsZXnpLrplJnor6/lhoXlrrlcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNob3dSb3dFcnJvcjxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihcbiAgICBjb250cm9sOiBULFxuICAgIGZvcm1EaXJlY3RpdmU/OiBOZ0Zvcm0gfCBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChmb3JtRGlyZWN0aXZlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjb250cm9sLmludmFsaWQgJiZcbiAgICAgICAgKGZvcm1EaXJlY3RpdmUuc3VibWl0dGVkIHx8IF9pc0Zvcm1Db250cm9sSW52YWxpZChjb250cm9sKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgc2hvd1Jvd0Vycm9yfSBpbnN0ZWFkXG4gICAqL1xuICBASW5wdXQoKVxuICByb3dCYWNrZ3JvdW5kQ29sb3JGbjxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihcbiAgICBjb250cm9sOiBULFxuICAgIGZvcm1EaXJlY3RpdmU/OiBOZ0Zvcm0gfCBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1Jvd0Vycm9yKGNvbnRyb2wsIGZvcm1EaXJlY3RpdmUpXG4gICAgICA/IEFSUkFZX1RBQkxFX0ZPUk1fRVJST1JfQkdcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIG1pblJvdyA9IDA7XG5cbiAgQElucHV0KClcbiAgbWluUm93VG9vbHRpcCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIG1heFJvdyA9IEluZmluaXR5O1xuXG4gIEBJbnB1dCgpXG4gIG1heFJvd1Rvb2x0aXAgPSAnJztcblxuICBkZXN0cm95JCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNkciA9IHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2hvdWxkU2hvd1Jvd0Vycm9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgIGNvbnN0IHsgc3RhdHVzQ2hhbmdlcyA9IEVNUFRZLCBzdGF0dXMgfSA9IGNvbnRyb2w7XG5cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5mb3JtRGlyZWN0aXZlXG4gICAgICAgID8gbWVyZ2Uoc3RhdHVzQ2hhbmdlcywgdGhpcy5mb3JtRGlyZWN0aXZlLm5nU3VibWl0KVxuICAgICAgICA6IHN0YXR1c0NoYW5nZXNcbiAgICApLnBpcGUoXG4gICAgICBzdGFydFdpdGgoc3RhdHVzKSxcbiAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgIG1hcCgoKSA9PiB0aGlzLnNob3dSb3dFcnJvcihjb250cm9sLCB0aGlzLmZvcm1EaXJlY3RpdmUpKSxcbiAgICApO1xuICB9O1xufVxuIiwiPHRhYmxlXG4gIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVcIlxuICBbY2xhc3MuYWNsLWFycmF5LWZvcm0tdGFibGVfX3JlYWRvbmx5LW1vZGVdPVwicmVhZG9ubHlcIlxuPlxuICA8dGhlYWQgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZVwiPlxuICAgIDx0cj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPHRoXG4gICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5ICYmIG1pblJvdyAhPT0gbWF4Um93XCJcbiAgICAgICAgY2xhc3M9XCJhY2wtYXJyYXktZm9ybS10YWJsZV9fYWN0aW9uLWNvbFwiXG4gICAgICA+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICA8dHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHJvd1RlbXBsYXRlIG9mIHJvd1RlbXBsYXRlczsgbGV0IHRlbXBsYXRlSW5kZXggPSBpbmRleFwiXG4gICAgICAgIFtjbGFzcy5hY2wtYXJyYXktZm9ybS10YWJsZV9fcm93LWVycm9yXT1cIlxuICAgICAgICAgIHJvdyB8IHB1cmU6IHNob3VsZFNob3dSb3dFcnJvciB8IGFzeW5jXG4gICAgICAgIFwiXG4gICAgICAgIFthdHRyLnJvd3RlbXBsYXRlaW5kZXhdPVwidGVtcGxhdGVJbmRleFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgcm93VGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCBpbmRleDogaW5kZXggfVxuICAgICAgICAgIFwiXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRkXG4gICAgICAgICAgKm5nSWY9XCJ0ZW1wbGF0ZUluZGV4ID09PSAwICYmICFyZWFkb25seSAmJiBtaW5Sb3cgIT09IG1heFJvd1wiXG4gICAgICAgICAgY2xhc3M9XCJhY2wtYXJyYXktZm9ybS10YWJsZV9fYWN0aW9uLWNvbFwiXG4gICAgICAgICAgW2NsYXNzLmFjbC1hcnJheS1mb3JtLXRhYmxlX19hY3Rpb24tY29sLWRpdmlkZXJdPVwiYWN0aW9uQ29sdW1uRGl2aWRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93Q29udHJvbFRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgcm93Q29udHJvbFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIGluZGV4OiBpbmRleCB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBdPVwibWluUm93VG9vbHRpcFwiXG4gICAgICAgICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA+IG1pblJvdyB8fCAhbWluUm93VG9vbHRpcFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFyb3dDb250cm9sVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicm93cz8ubGVuZ3RoIDw9IG1pblJvd1wiXG4gICAgICAgICAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZS5lbWl0KGluZGV4KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwibWludXNfY2lyY2xlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cblxuICAgICAgPHRyXG4gICAgICAgICpuZ0lmPVwicm93RXJyb3JUZW1wbGF0ZSAmJiAhcmVhZG9ubHlcIlxuICAgICAgICBbY2xhc3MuYWNsLWFycmF5LWZvcm0tdGFibGVfX3Jvdy1lcnJvcl09XCJcbiAgICAgICAgICByb3cgfCBwdXJlOiBzaG91bGRTaG93Um93RXJyb3IgfCBhc3luY1xuICAgICAgICBcIlxuICAgICAgICBbaGlkZGVuXT1cIiEocm93IHwgcHVyZTogc2hvdWxkU2hvd1Jvd0Vycm9yIHwgYXN5bmMpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICByb3dFcnJvclRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJvdywgaW5kZXg6IGluZGV4IH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3RyPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHNlcGFyYXRvclRlbXBsYXRlICYmIHJvd3M/Lmxlbmd0aCA+IDEgJiYgaW5kZXggIT09IHJvd3M/Lmxlbmd0aCAtIDFcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPHRyIGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX3NlcGFyYXRvclwiPlxuICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTAwXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VwYXJhdG9yVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgKm5nSWY9XCIoIXJvd3MgfHwgcm93cy5sZW5ndGggPT09IDApICYmIHNob3daZXJvU3RhdGVcIj5cbiAgICAgIDx0ZFxuICAgICAgICBjb2xzcGFuPVwiMTAwXCJcbiAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiB1bnNldFwiXG4gICAgICA+XG4gICAgICAgIDxhY2wtemVyby1zdGF0ZVxuICAgICAgICAgICpuZ0lmPVwiIXplcm9TdGF0ZVRlbXBsYXRlXCJcbiAgICAgICAgICBbemVyb1N0YXRlXT1cInRydWVcIlxuICAgICAgICAgIFtyZXNvdXJjZU5hbWVdPVwicmVzb3VyY2VOYW1lXCJcbiAgICAgICAgICBbcmVzb3VyY2VOYW1lVHJhbnNsYXRlZF09XCJyZXNvdXJjZU5hbWVUcmFuc2xhdGVkXCJcbiAgICAgICAgICBbbWluSGVpZ2h0XT1cIjQ4XCJcbiAgICAgICAgPjwvYWNsLXplcm8tc3RhdGU+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInplcm9TdGF0ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInplcm9TdGF0ZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuXG4gICAgPHRyXG4gICAgICAqbmdJZj1cIiFyZWFkb25seSAmJiBtaW5Sb3cgIT09IG1heFJvd1wiXG4gICAgICBjbGFzcz1cImFjbC1hcnJheS1mb3JtLXRhYmxlLS1yb3ctYWN0aW9uXCJcbiAgICA+XG4gICAgICA8dGQgY29sc3Bhbj1cIjEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWNsLWFycmF5LWZvcm0tdGFibGVfX2JvdHRvbS1jb250cm9sLWJ1dHRvbnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiIWZvb3RlclRlbXBsYXRlXCJcbiAgICAgICAgICAgIGNsYXNzPVwidHctZmxleCB0dy13LWZ1bGxcIlxuICAgICAgICAgICAgW2F1aVRvb2x0aXBdPVwibWF4Um93VG9vbHRpcFwiXG4gICAgICAgICAgICBbYXVpVG9vbHRpcERpc2FibGVkXT1cInJvd3M/Lmxlbmd0aCA8IG1heFJvdyB8fCAhbWF4Um93VG9vbHRpcFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbcGxhaW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZC5lbWl0KClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicm93cz8ubGVuZ3RoID49IG1heFJvdyB8fCBhZGREaXNhYmxlZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwicGx1c19jaXJjbGVcIj48L2F1aS1pY29uPlxuICAgICAgICAgICAgICB7eyAnYWRkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { ArrayFormTableComponent, ArrayFormTableFooterDirective, ArrayFormTableHeaderDirective, ArrayFormTableRowControlDirective, ArrayFormTableRowDirective, ArrayFormTableRowErrorDirective, ArrayFormTableZeroStateDirective, } from './component';
2
+ import { ArrayFormTableComponent, ArrayFormTableFooterDirective, ArrayFormTableHeaderDirective, ArrayFormTableRowControlDirective, ArrayFormTableRowDirective, ArrayFormTableRowErrorDirective, ArrayFormTableZeroStateDirective, ArrayFormTableRowSeparatorDirective, } from './component';
3
3
  import * as i0 from "@angular/core";
4
4
  const STANDS = [
5
5
  ArrayFormTableComponent,
@@ -9,6 +9,7 @@ const STANDS = [
9
9
  ArrayFormTableRowDirective,
10
10
  ArrayFormTableRowErrorDirective,
11
11
  ArrayFormTableZeroStateDirective,
12
+ ArrayFormTableRowSeparatorDirective,
12
13
  ];
13
14
  export class ArrayFormTableModule {
14
15
  static { this.ɵfac = function ArrayFormTableModule_Factory(t) { return new (t || ArrayFormTableModule)(); }; }
@@ -28,11 +29,13 @@ export class ArrayFormTableModule {
28
29
  ArrayFormTableRowControlDirective,
29
30
  ArrayFormTableRowDirective,
30
31
  ArrayFormTableRowErrorDirective,
31
- ArrayFormTableZeroStateDirective], exports: [ArrayFormTableComponent,
32
+ ArrayFormTableZeroStateDirective,
33
+ ArrayFormTableRowSeparatorDirective], exports: [ArrayFormTableComponent,
32
34
  ArrayFormTableFooterDirective,
33
35
  ArrayFormTableHeaderDirective,
34
36
  ArrayFormTableRowControlDirective,
35
37
  ArrayFormTableRowDirective,
36
38
  ArrayFormTableRowErrorDirective,
37
- ArrayFormTableZeroStateDirective] }); })();
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUvZm9ybS9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEdBQ2pDLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLE1BQU0sR0FBRztJQUNiLHVCQUF1QjtJQUN2Qiw2QkFBNkI7SUFDN0IsNkJBQTZCO0lBQzdCLGlDQUFpQztJQUNqQywwQkFBMEI7SUFDMUIsK0JBQStCO0lBQy9CLGdDQUFnQztDQUNqQyxDQUFDO0FBTUYsTUFBTSxPQUFPLG9CQUFvQjtxRkFBcEIsb0JBQW9CO21FQUFwQixvQkFBb0I7dUVBYi9CLHVCQUF1Qjs7dUZBYVosb0JBQW9CO2NBSmhDLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsTUFBTTtnQkFDZixPQUFPLEVBQUUsTUFBTTthQUNoQjs7d0ZBQ1ksb0JBQW9CLGNBYi9CLHVCQUF1QjtRQUN2Qiw2QkFBNkI7UUFDN0IsNkJBQTZCO1FBQzdCLGlDQUFpQztRQUNqQywwQkFBMEI7UUFDMUIsK0JBQStCO1FBQy9CLGdDQUFnQyxhQU5oQyx1QkFBdUI7UUFDdkIsNkJBQTZCO1FBQzdCLDZCQUE2QjtRQUM3QixpQ0FBaUM7UUFDakMsMEJBQTBCO1FBQzFCLCtCQUErQjtRQUMvQixnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBcnJheUZvcm1UYWJsZUNvbXBvbmVudCxcbiAgQXJyYXlGb3JtVGFibGVGb290ZXJEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlSGVhZGVyRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0NvbnRyb2xEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93RGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0Vycm9yRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVplcm9TdGF0ZURpcmVjdGl2ZSxcbn0gZnJvbSAnLi9jb21wb25lbnQnO1xuXG5jb25zdCBTVEFORFMgPSBbXG4gIEFycmF5Rm9ybVRhYmxlQ29tcG9uZW50LFxuICBBcnJheUZvcm1UYWJsZUZvb3RlckRpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVIZWFkZXJEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93Q29udHJvbERpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVSb3dEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93RXJyb3JEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlWmVyb1N0YXRlRGlyZWN0aXZlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogU1RBTkRTLFxuICBleHBvcnRzOiBTVEFORFMsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlTW9kdWxlIHt9XG4iXX0=
39
+ ArrayFormTableZeroStateDirective,
40
+ ArrayFormTableRowSeparatorDirective] }); })();
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUvZm9ybS9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLDBCQUEwQixFQUMxQiwrQkFBK0IsRUFDL0IsZ0NBQWdDLEVBQ2hDLG1DQUFtQyxHQUNwQyxNQUFNLGFBQWEsQ0FBQzs7QUFFckIsTUFBTSxNQUFNLEdBQUc7SUFDYix1QkFBdUI7SUFDdkIsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3QixpQ0FBaUM7SUFDakMsMEJBQTBCO0lBQzFCLCtCQUErQjtJQUMvQixnQ0FBZ0M7SUFDaEMsbUNBQW1DO0NBQ3BDLENBQUM7QUFNRixNQUFNLE9BQU8sb0JBQW9CO3FGQUFwQixvQkFBb0I7bUVBQXBCLG9CQUFvQjt1RUFkL0IsdUJBQXVCOzt1RkFjWixvQkFBb0I7Y0FKaEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxNQUFNO2dCQUNmLE9BQU8sRUFBRSxNQUFNO2FBQ2hCOzt3RkFDWSxvQkFBb0IsY0FkL0IsdUJBQXVCO1FBQ3ZCLDZCQUE2QjtRQUM3Qiw2QkFBNkI7UUFDN0IsaUNBQWlDO1FBQ2pDLDBCQUEwQjtRQUMxQiwrQkFBK0I7UUFDL0IsZ0NBQWdDO1FBQ2hDLG1DQUFtQyxhQVBuQyx1QkFBdUI7UUFDdkIsNkJBQTZCO1FBQzdCLDZCQUE2QjtRQUM3QixpQ0FBaUM7UUFDakMsMEJBQTBCO1FBQzFCLCtCQUErQjtRQUMvQixnQ0FBZ0M7UUFDaEMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQXJyYXlGb3JtVGFibGVDb21wb25lbnQsXG4gIEFycmF5Rm9ybVRhYmxlRm9vdGVyRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZUhlYWRlckRpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVSb3dDb250cm9sRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0RpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVSb3dFcnJvckRpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVaZXJvU3RhdGVEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93U2VwYXJhdG9yRGlyZWN0aXZlLFxufSBmcm9tICcuL2NvbXBvbmVudCc7XG5cbmNvbnN0IFNUQU5EUyA9IFtcbiAgQXJyYXlGb3JtVGFibGVDb21wb25lbnQsXG4gIEFycmF5Rm9ybVRhYmxlRm9vdGVyRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZUhlYWRlckRpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVSb3dDb250cm9sRGlyZWN0aXZlLFxuICBBcnJheUZvcm1UYWJsZVJvd0RpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVSb3dFcnJvckRpcmVjdGl2ZSxcbiAgQXJyYXlGb3JtVGFibGVaZXJvU3RhdGVEaXJlY3RpdmUsXG4gIEFycmF5Rm9ybVRhYmxlUm93U2VwYXJhdG9yRGlyZWN0aXZlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogU1RBTkRTLFxuICBleHBvcnRzOiBTVEFORFMsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rm9ybVRhYmxlTW9kdWxlIHt9XG4iXX0=
@@ -4,10 +4,10 @@ import { NgIf } from '@angular/common';
4
4
  import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
5
5
  import { ReactiveFormsModule } from '@angular/forms';
6
6
  import { sortBy } from 'lodash-es';
7
- import { ValueHook } from '../../core';
7
+ import { ValueHook } from '../../core/public-api';
8
8
  import { ValidateRowDuplicateService } from '../../core/services/form-row-duplicate/form-row-duplicate.service';
9
9
  import { EffectDirectiveModule } from '../../effect-directive/module';
10
- import { ErrorsMapperModule } from '../../errors-mapper/errors-mapper.module';
10
+ import { ErrorsMapperModule } from '../../form/public-api';
11
11
  import { TranslateModule } from '../../translate/public-api';
12
12
  import { BaseStringMapFormComponent } from '../base-string-map-form.component';
13
13
  import { ArrayFormTableComponent } from '../form/component';
@@ -17,7 +17,7 @@ import * as i1 from "../form/component";
17
17
  import * as i2 from "@angular/forms";
18
18
  import * as i3 from "@alauda/ui";
19
19
  import * as i4 from "../../translate/translate.pipe";
20
- import * as i5 from "../../errors-mapper/errors-mapper-component/component";
20
+ import * as i5 from "../../form/errors-mapper/errors-mapper-component/component";
21
21
  import * as i6 from "../../effect-directive/e2e-attribute-binding.directive";
22
22
  function KeyValueFormTableComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
23
23
  i0.ɵɵelementContainerStart(0);
@@ -277,4 +277,4 @@ __decorate([
277
277
  }], readonlyKeys: [{
278
278
  type: Input
279
279
  }] }); })();
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUva2V5LXZhbHVlLWZvcm0vY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUva2V5LXZhbHVlLWZvcm0vdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxtQkFBbUIsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbkMsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNoSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztJQ1BwRCw2QkFBdUM7SUFDckMsNkJBQXVC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QUEwQjtjQXJCdEMsU0FBUzsyQkFDRSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7b0JBQ1Asb0JBQW9CO29CQUNwQixtQkFBbUI7b0JBQ25CLHVCQUF1QjtvQkFDdkIsV0FBVztvQkFDWCxJQUFJO29CQUNKLGVBQWU7b0JBQ2Ysa0JBQWtCO29CQUNsQixZQUFZO29CQUNaLFVBQVU7b0JBQ1YsVUFBVTtvQkFDVixxQkFBcUI7aUJBQ3RCLGNBQ1csSUFBSSxhQUNMLENBQUMsMkJBQTJCLENBQUM7Z0JBT3hDLFlBQVk7a0JBRFgsS0FBSztZQUlOLHNCQUFzQjtrQkFEckIsS0FBSztZQUlOLGNBQWM7a0JBRGIsS0FBSztZQVdOLFNBQVM7a0JBRFIsS0FBSztZQVVOLFdBQVc7a0JBRFYsS0FBSztZQVVOLFdBQVc7a0JBRFYsS0FBSztZQU9OLFFBQVE7a0JBRFAsS0FBSztZQUlOLE9BQU87a0JBRE4sS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSztZQUlOLE1BQU07a0JBREwsS0FBSztZQUtOLFlBQVk7a0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvbk1vZHVsZSwgRm9ybU1vZHVsZSwgSWNvbk1vZHVsZSwgSW5wdXRNb2R1bGUgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgU3RyaW5nTWFwLCBWYWx1ZUhvb2sgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRlUm93RHVwbGljYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZm9ybS1yb3ctZHVwbGljYXRlL2Zvcm0tcm93LWR1cGxpY2F0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEVmZmVjdERpcmVjdGl2ZU1vZHVsZSB9IGZyb20gJy4uLy4uL2VmZmVjdC1kaXJlY3RpdmUvbW9kdWxlJztcbmltcG9ydCB7IEVycm9yc01hcHBlck1vZHVsZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwZXIvZXJyb3JzLW1hcHBlci5tb2R1bGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQmFzZVN0cmluZ01hcEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0cmluZy1tYXAtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJyYXlGb3JtVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBBcnJheUZvcm1UYWJsZU1vZHVsZSB9IGZyb20gJy4uL2Zvcm0vbW9kdWxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXJyYXlGb3JtVGFibGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBBcnJheUZvcm1UYWJsZUNvbXBvbmVudCxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBFcnJvcnNNYXBwZXJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBFZmZlY3REaXJlY3RpdmVNb2R1bGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1ZhbGlkYXRlUm93RHVwbGljYXRlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZVN0cmluZ01hcEZvcm1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KClcbiAgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpTGluZVZhbHVlOiBib29sZWFuO1xuXG4gIEBWYWx1ZUhvb2sobnVsbCwgbnVsbCwgZnVuY3Rpb24gKHRoaXM6IEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5mb3JtPy5jb250cm9scy5mb3JFYWNoKChmb3JtQXJyYXk6IEZvcm1BcnJheSkgPT4ge1xuICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gZm9ybUFycmF5LmNvbnRyb2xzO1xuICAgICAga2V5LnNldFZhbGlkYXRvcnModGhpcy5nZXRLZXlWYWxpZGF0b3JzKCkpO1xuICAgICAgdmFsdWUuc2V0VmFsaWRhdG9ycyh0aGlzLmdldFZhbHVlVmFsaWRhdG9ycygpKTtcbiAgICB9KTtcbiAgfSlcbiAgQElucHV0KClcbiAgdmFsaWRhdG9yOiB7XG4gICAga2V5PzogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdO1xuICAgIHZhbHVlPzogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdO1xuICB9ID0ge1xuICAgIGtleTogW10sXG4gICAgdmFsdWU6IFtdLFxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIGVycm9yTWFwcGVyOiB7XG4gICAga2V5PzogU3RyaW5nTWFwO1xuICAgIHZhbHVlPzogU3RyaW5nTWFwO1xuICB9ID0ge1xuICAgIGtleToge30sXG4gICAgdmFsdWU6IHt9LFxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHRleHRLZXk6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgbWF4Um93ID0gSW5maW5pdHk7XG5cbiAgQElucHV0KClcbiAgbWluUm93ID0gMDtcblxuICBAVmFsdWVIb29rPEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50LCAncmVhZG9ubHlLZXlzJz4oQm9vbGVhbilcbiAgQElucHV0KClcbiAgcmVhZG9ubHlLZXlzOiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+ID0gW107XG5cbiAgaXNSZWFkb25seShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5S2V5cy5zb21lKHRvQ2hlY2tLZXkgPT4ge1xuICAgICAgaWYgKCF0b0NoZWNrS2V5KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdG9DaGVja0tleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRvQ2hlY2tLZXkgPT09IGtleTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRvQ2hlY2tLZXkudGVzdChrZXkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RGF0YVZhbHVlQnlJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uYXQoaW5kZXgpIGFzIEZvcm1BcnJheSkuYXQoMSkudmFsdWU7XG4gIH1cblxuICBvdmVycmlkZSBhZGFwdFJlc291cmNlTW9kZWwocmVzb3VyY2U6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICBsZXQgbmV3Rm9ybU1vZGVsID0gT2JqZWN0LmVudHJpZXMocmVzb3VyY2UgfHwge30pO1xuICAgIC8vIOaOkuW6j++8jOWFiOaMieWtl+avjeaOkuW6j++8jOWGjeaKiiByZWFkb25seSDnmoTmlL7liY3pnaJcbiAgICBuZXdGb3JtTW9kZWwgPSBzb3J0QnkobmV3Rm9ybU1vZGVsLCAoYXJyOiBbc3RyaW5nLCBzdHJpbmddKSA9PiBhcnJbMF0pO1xuICAgIG5ld0Zvcm1Nb2RlbC5zb3J0KChhcnIxOiBbc3RyaW5nLCBzdHJpbmddLCBhcnIyOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgICBjb25zdCBmbGFnMSA9IHRoaXMuaXNSZWFkb25seShhcnIxWzBdKTtcbiAgICAgIGNvbnN0IGZsYWcyID0gdGhpcy5pc1JlYWRvbmx5KGFycjJbMF0pO1xuICAgICAgaWYgKChmbGFnMSAmJiBmbGFnMikgfHwgKCFmbGFnMSAmJiAhZmxhZzIpKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZsYWcxID8gLTEgOiAxO1xuICAgIH0pO1xuICAgIGlmIChuZXdGb3JtTW9kZWwubGVuZ3RoID09PSAwKSB7XG4gICAgICBuZXdGb3JtTW9kZWwgPSB0aGlzLmdldERlZmF1bHRGb3JtTW9kZWwoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3Rm9ybU1vZGVsO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0S2V5VmFsaWRhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3I/LmtleTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFZhbHVlVmFsaWRhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3I/LnZhbHVlO1xuICB9XG5cbiAgaXNMYWJlbFJlYWRvbmx5KGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uY29udHJvbHNbaW5kZXhdIGFzIEZvcm1BcnJheTtcbiAgICByZXR1cm4gZm9ybUFycmF5LnZhbGlkICYmIHRoaXMuaXNSZWFkb25seShmb3JtQXJyYXkuY29udHJvbHNbMF0udmFsdWUpO1xuICB9XG59XG4iLCI8YWNsLWFycmF5LWZvcm0tdGFibGVcbiAgW3Jlc291cmNlTmFtZV09XCJyZXNvdXJjZU5hbWVcIlxuICBbcmVzb3VyY2VOYW1lVHJhbnNsYXRlZF09XCJyZXNvdXJjZU5hbWVUcmFuc2xhdGVkXCJcbiAgKGFkZCk9XCJhZGQoZm9ybS5sZW5ndGgpXCJcbiAgKHJlbW92ZSk9XCJyZW1vdmUoJGV2ZW50KVwiXG4gIFtyb3dzXT1cImZvcm0uY29udHJvbHNcIlxuICBbZm9ybUdyb3VwXT1cIiRhbnkoZm9ybSlcIlxuICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICBbbWF4Um93XT1cIm1heFJvd1wiXG4gIFttaW5Sb3ddPVwibWluUm93XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVIZWFkZXI+XG4gICAgPHRoIHN0eWxlPVwid2lkdGg6IDMzJVwiPnt7ICdrZXknIHwgdHJhbnNsYXRlIH19PC90aD5cbiAgICA8dGggc3R5bGU9XCJ3aWR0aDogNjYlXCI+e3sgJ3ZhbHVlJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgcm93IC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKmFjbEFycmF5Rm9ybVRhYmxlUm93PVwibGV0IGNvbnRyb2w7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICBbZm9ybUdyb3VwTmFtZV09XCJpbmRleFwiXG4gID5cbiAgICA8dGQ+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2hpZGRlbl09XCJ0ZXh0S2V5XCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGlzTGFiZWxSZWFkb25seShpbmRleClcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCIwXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyPy5rZXkgfHwgKCdrZXknIHwgdHJhbnNsYXRlKVwiXG4gICAgICAvPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRLZXlcIj5cbiAgICAgICAge3sgY29udHJvbC5nZXQoJzAnKS52YWx1ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cblxuICAgIDx0ZD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAqbmdJZj1cIiFtdWx0aUxpbmVWYWx1ZVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgYXVpLWlucHV0XG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpc0xhYmVsUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiMVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcj8udmFsdWUgfHwgKCd2YWx1ZScgfCB0cmFuc2xhdGUpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibXVsdGlMaW5lVmFsdWVcIlxuICAgICAgICBjbGFzcz1cInRleHRhcmVhLXdyYXBwZXJcIlxuICAgICAgICBbYXR0ci5kYXRhLXZhbHVlXT1cImdldERhdGFWYWx1ZUJ5SW5kZXgoaW5kZXgpXCJcbiAgICAgID5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpc0xhYmVsUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCIxXCJcbiAgICAgICAgICByb3dzPVwiMVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyPy52YWx1ZSB8fCAoJ3ZhbHVlJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgZXJyb3Igcm93IC0tPlxuICA8bmctY29udGFpbmVyICphY2xBcnJheUZvcm1UYWJsZVJvd0Vycm9yPVwibGV0IGNvbnRyb2xcIj5cbiAgICA8dGRcbiAgICAgICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCJcbiAgICAgIGNvbHNwYW49XCIzXCJcbiAgICAgIGNsYXNzPVwiYWNsLXRhYmxlLWZvcm0tZXJyb3ItaGludFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wuZXJyb3JzPy5rZXlJc01pc3NpbmdcIj5cbiAgICAgICAge3sgJ2s4c19yZXNvdXJjZV9sYWJlbF9rZXlfcmVxdWlyZWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wuZXJyb3JzPy5kdXBsaWNhdGVFcnJvclwiPlxuICAgICAgICB7eyAnazhzX3Jlc291cmNlX2xhYmVsX2tleV9kdXBsaWNhdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgICAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgICAgIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnM/LmtleVwiXG4gICAgICAgIFtlcnJvcnNNYXBwZXJdPVwiZXJyb3JNYXBwZXI/LmtleVwiXG4gICAgICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbiAgICAgIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgICAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgICAgIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnM/LnZhbHVlXCJcbiAgICAgICAgW2Vycm9yc01hcHBlcl09XCJlcnJvck1hcHBlcj8udmFsdWVcIlxuICAgICAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVSb3dDb250cm9sPVwibGV0IGl0ZW07IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgPGJ1dHRvblxuICAgICAgW2hpZGRlbl09XCJyZWFkb25seSB8fCBpc0xhYmVsUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJyZW1vdmUoaW5kZXgpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cIm1pbnVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtYXJyYXktZm9ybS10YWJsZT5cbiJdfQ==
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUva2V5LXZhbHVlLWZvcm0vY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2FycmF5LWZvcm0tdGFibGUva2V5LXZhbHVlLWZvcm0vdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxtQkFBbUIsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbkMsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lDUHBELDZCQUF1QztJQUNyQyw2QkFB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MEJBQTBCO2NBckJ0QyxTQUFTOzJCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QztvQkFDUCxvQkFBb0I7b0JBQ3BCLG1CQUFtQjtvQkFDbkIsdUJBQXVCO29CQUN2QixXQUFXO29CQUNYLElBQUk7b0JBQ0osZUFBZTtvQkFDZixrQkFBa0I7b0JBQ2xCLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixVQUFVO29CQUNWLHFCQUFxQjtpQkFDdEIsY0FDVyxJQUFJLGFBQ0wsQ0FBQywyQkFBMkIsQ0FBQztnQkFPeEMsWUFBWTtrQkFEWCxLQUFLO1lBSU4sc0JBQXNCO2tCQURyQixLQUFLO1lBSU4sY0FBYztrQkFEYixLQUFLO1lBV04sU0FBUztrQkFEUixLQUFLO1lBVU4sV0FBVztrQkFEVixLQUFLO1lBVU4sV0FBVztrQkFEVixLQUFLO1lBT04sUUFBUTtrQkFEUCxLQUFLO1lBSU4sT0FBTztrQkFETixLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBSU4sTUFBTTtrQkFETCxLQUFLO1lBS04sWUFBWTtrQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBGb3JtTW9kdWxlLCBJY29uTW9kdWxlLCBJbnB1dE1vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBTdHJpbmdNYXAsIFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBWYWxpZGF0ZVJvd0R1cGxpY2F0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2Zvcm0tcm93LWR1cGxpY2F0ZS9mb3JtLXJvdy1kdXBsaWNhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBFZmZlY3REaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi8uLi9lZmZlY3QtZGlyZWN0aXZlL21vZHVsZSc7XG5pbXBvcnQgeyBFcnJvcnNNYXBwZXJNb2R1bGUgfSBmcm9tICcuLi8uLi9mb3JtL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vdHJhbnNsYXRlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQmFzZVN0cmluZ01hcEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0cmluZy1tYXAtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJyYXlGb3JtVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBBcnJheUZvcm1UYWJsZU1vZHVsZSB9IGZyb20gJy4uL2Zvcm0vbW9kdWxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLWtleS12YWx1ZS1mb3JtLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQXJyYXlGb3JtVGFibGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBBcnJheUZvcm1UYWJsZUNvbXBvbmVudCxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBFcnJvcnNNYXBwZXJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBFZmZlY3REaXJlY3RpdmVNb2R1bGUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1ZhbGlkYXRlUm93RHVwbGljYXRlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50XG4gIGV4dGVuZHMgQmFzZVN0cmluZ01hcEZvcm1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KClcbiAgcmVzb3VyY2VOYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcmVzb3VyY2VOYW1lVHJhbnNsYXRlZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpTGluZVZhbHVlOiBib29sZWFuO1xuXG4gIEBWYWx1ZUhvb2sobnVsbCwgbnVsbCwgZnVuY3Rpb24gKHRoaXM6IEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5mb3JtPy5jb250cm9scy5mb3JFYWNoKChmb3JtQXJyYXk6IEZvcm1BcnJheSkgPT4ge1xuICAgICAgY29uc3QgW2tleSwgdmFsdWVdID0gZm9ybUFycmF5LmNvbnRyb2xzO1xuICAgICAga2V5LnNldFZhbGlkYXRvcnModGhpcy5nZXRLZXlWYWxpZGF0b3JzKCkpO1xuICAgICAgdmFsdWUuc2V0VmFsaWRhdG9ycyh0aGlzLmdldFZhbHVlVmFsaWRhdG9ycygpKTtcbiAgICB9KTtcbiAgfSlcbiAgQElucHV0KClcbiAgdmFsaWRhdG9yOiB7XG4gICAga2V5PzogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdO1xuICAgIHZhbHVlPzogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdO1xuICB9ID0ge1xuICAgIGtleTogW10sXG4gICAgdmFsdWU6IFtdLFxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIGVycm9yTWFwcGVyOiB7XG4gICAga2V5PzogU3RyaW5nTWFwO1xuICAgIHZhbHVlPzogU3RyaW5nTWFwO1xuICB9ID0ge1xuICAgIGtleToge30sXG4gICAgdmFsdWU6IHt9LFxuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICB9O1xuXG4gIEBJbnB1dCgpXG4gIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHRleHRLZXk6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgbWF4Um93ID0gSW5maW5pdHk7XG5cbiAgQElucHV0KClcbiAgbWluUm93ID0gMDtcblxuICBAVmFsdWVIb29rPEtleVZhbHVlRm9ybVRhYmxlQ29tcG9uZW50LCAncmVhZG9ubHlLZXlzJz4oQm9vbGVhbilcbiAgQElucHV0KClcbiAgcmVhZG9ubHlLZXlzOiBBcnJheTxzdHJpbmcgfCBSZWdFeHA+ID0gW107XG5cbiAgaXNSZWFkb25seShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5S2V5cy5zb21lKHRvQ2hlY2tLZXkgPT4ge1xuICAgICAgaWYgKCF0b0NoZWNrS2V5KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdG9DaGVja0tleSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRvQ2hlY2tLZXkgPT09IGtleTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRvQ2hlY2tLZXkudGVzdChrZXkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RGF0YVZhbHVlQnlJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uYXQoaW5kZXgpIGFzIEZvcm1BcnJheSkuYXQoMSkudmFsdWU7XG4gIH1cblxuICBvdmVycmlkZSBhZGFwdFJlc291cmNlTW9kZWwocmVzb3VyY2U6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pIHtcbiAgICBsZXQgbmV3Rm9ybU1vZGVsID0gT2JqZWN0LmVudHJpZXMocmVzb3VyY2UgfHwge30pO1xuICAgIC8vIOaOkuW6j++8jOWFiOaMieWtl+avjeaOkuW6j++8jOWGjeaKiiByZWFkb25seSDnmoTmlL7liY3pnaJcbiAgICBuZXdGb3JtTW9kZWwgPSBzb3J0QnkobmV3Rm9ybU1vZGVsLCAoYXJyOiBbc3RyaW5nLCBzdHJpbmddKSA9PiBhcnJbMF0pO1xuICAgIG5ld0Zvcm1Nb2RlbC5zb3J0KChhcnIxOiBbc3RyaW5nLCBzdHJpbmddLCBhcnIyOiBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgICBjb25zdCBmbGFnMSA9IHRoaXMuaXNSZWFkb25seShhcnIxWzBdKTtcbiAgICAgIGNvbnN0IGZsYWcyID0gdGhpcy5pc1JlYWRvbmx5KGFycjJbMF0pO1xuICAgICAgaWYgKChmbGFnMSAmJiBmbGFnMikgfHwgKCFmbGFnMSAmJiAhZmxhZzIpKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZsYWcxID8gLTEgOiAxO1xuICAgIH0pO1xuICAgIGlmIChuZXdGb3JtTW9kZWwubGVuZ3RoID09PSAwKSB7XG4gICAgICBuZXdGb3JtTW9kZWwgPSB0aGlzLmdldERlZmF1bHRGb3JtTW9kZWwoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3Rm9ybU1vZGVsO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0S2V5VmFsaWRhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3I/LmtleTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFZhbHVlVmFsaWRhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3I/LnZhbHVlO1xuICB9XG5cbiAgaXNMYWJlbFJlYWRvbmx5KGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uY29udHJvbHNbaW5kZXhdIGFzIEZvcm1BcnJheTtcbiAgICByZXR1cm4gZm9ybUFycmF5LnZhbGlkICYmIHRoaXMuaXNSZWFkb25seShmb3JtQXJyYXkuY29udHJvbHNbMF0udmFsdWUpO1xuICB9XG59XG4iLCI8YWNsLWFycmF5LWZvcm0tdGFibGVcbiAgW3Jlc291cmNlTmFtZV09XCJyZXNvdXJjZU5hbWVcIlxuICBbcmVzb3VyY2VOYW1lVHJhbnNsYXRlZF09XCJyZXNvdXJjZU5hbWVUcmFuc2xhdGVkXCJcbiAgKGFkZCk9XCJhZGQoZm9ybS5sZW5ndGgpXCJcbiAgKHJlbW92ZSk9XCJyZW1vdmUoJGV2ZW50KVwiXG4gIFtyb3dzXT1cImZvcm0uY29udHJvbHNcIlxuICBbZm9ybUdyb3VwXT1cIiRhbnkoZm9ybSlcIlxuICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICBbbWF4Um93XT1cIm1heFJvd1wiXG4gIFttaW5Sb3ddPVwibWluUm93XCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVIZWFkZXI+XG4gICAgPHRoIHN0eWxlPVwid2lkdGg6IDMzJVwiPnt7ICdrZXknIHwgdHJhbnNsYXRlIH19PC90aD5cbiAgICA8dGggc3R5bGU9XCJ3aWR0aDogNjYlXCI+e3sgJ3ZhbHVlJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgcm93IC0tPlxuICA8bmctY29udGFpbmVyXG4gICAgKmFjbEFycmF5Rm9ybVRhYmxlUm93PVwibGV0IGNvbnRyb2w7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICBbZm9ybUdyb3VwTmFtZV09XCJpbmRleFwiXG4gID5cbiAgICA8dGQ+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2hpZGRlbl09XCJ0ZXh0S2V5XCJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGlzTGFiZWxSZWFkb25seShpbmRleClcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCIwXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyPy5rZXkgfHwgKCdrZXknIHwgdHJhbnNsYXRlKVwiXG4gICAgICAvPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRleHRLZXlcIj5cbiAgICAgICAge3sgY29udHJvbC5nZXQoJzAnKS52YWx1ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90ZD5cblxuICAgIDx0ZD5cbiAgICAgIDxpbnB1dFxuICAgICAgICAqbmdJZj1cIiFtdWx0aUxpbmVWYWx1ZVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgYXVpLWlucHV0XG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpc0xhYmVsUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiMVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcj8udmFsdWUgfHwgKCd2YWx1ZScgfCB0cmFuc2xhdGUpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibXVsdGlMaW5lVmFsdWVcIlxuICAgICAgICBjbGFzcz1cInRleHRhcmVhLXdyYXBwZXJcIlxuICAgICAgICBbYXR0ci5kYXRhLXZhbHVlXT1cImdldERhdGFWYWx1ZUJ5SW5kZXgoaW5kZXgpXCJcbiAgICAgID5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBpc0xhYmVsUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgICAgICBhdWktaW5wdXRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCIxXCJcbiAgICAgICAgICByb3dzPVwiMVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyPy52YWx1ZSB8fCAoJ3ZhbHVlJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvdGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gSW5wdXQgZXJyb3Igcm93IC0tPlxuICA8bmctY29udGFpbmVyICphY2xBcnJheUZvcm1UYWJsZVJvd0Vycm9yPVwibGV0IGNvbnRyb2xcIj5cbiAgICA8dGRcbiAgICAgICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCJcbiAgICAgIGNvbHNwYW49XCIzXCJcbiAgICAgIGNsYXNzPVwiYWNsLXRhYmxlLWZvcm0tZXJyb3ItaGludFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wuZXJyb3JzPy5rZXlJc01pc3NpbmdcIj5cbiAgICAgICAge3sgJ2s4c19yZXNvdXJjZV9sYWJlbF9rZXlfcmVxdWlyZWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wuZXJyb3JzPy5kdXBsaWNhdGVFcnJvclwiPlxuICAgICAgICB7eyAnazhzX3Jlc291cmNlX2xhYmVsX2tleV9kdXBsaWNhdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgICAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgICAgIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnM/LmtleVwiXG4gICAgICAgIFtlcnJvcnNNYXBwZXJdPVwiZXJyb3JNYXBwZXI/LmtleVwiXG4gICAgICA+PC9hY2wtZXJyb3JzLW1hcHBlcj5cbiAgICAgIDxhY2wtZXJyb3JzLW1hcHBlclxuICAgICAgICBhdWlGb3JtSXRlbUVycm9yXG4gICAgICAgIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnM/LnZhbHVlXCJcbiAgICAgICAgW2Vycm9yc01hcHBlcl09XCJlcnJvck1hcHBlcj8udmFsdWVcIlxuICAgICAgPjwvYWNsLWVycm9ycy1tYXBwZXI+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqYWNsQXJyYXlGb3JtVGFibGVSb3dDb250cm9sPVwibGV0IGl0ZW07IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgPGJ1dHRvblxuICAgICAgW2hpZGRlbl09XCJyZWFkb25seSB8fCBpc0xhYmVsUmVhZG9ubHkoaW5kZXgpXCJcbiAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgIFtwbGFpbl09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJyZW1vdmUoaW5kZXgpXCJcbiAgICA+XG4gICAgICA8YXVpLWljb24gaWNvbj1cIm1pbnVzX2NpcmNsZVwiPjwvYXVpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuPC9hY2wtYXJyYXktZm9ybS10YWJsZT5cbiJdfQ==