@wavemaker/app-ng-runtime 11.13.0-rc.6255 → 11.14.0-rc.226

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 (1024) hide show
  1. package/build-task/bundles/index.umd.js +34 -5
  2. package/build-task/esm2022/basic/anchor/anchor.build.mjs +15 -0
  3. package/build-task/esm2022/basic/audio/audio.build.mjs +10 -0
  4. package/build-task/esm2022/basic/html/html.build.mjs +15 -0
  5. package/build-task/esm2022/basic/icon/icon.build.mjs +10 -0
  6. package/build-task/esm2022/basic/iframe/iframe.build.mjs +10 -0
  7. package/build-task/esm2022/basic/label/label.build.mjs +25 -0
  8. package/build-task/esm2022/basic/picture/picture.build.mjs +14 -0
  9. package/build-task/esm2022/basic/spinner/spinner.build.mjs +15 -0
  10. package/build-task/esm2022/basic/video/video.build.mjs +10 -0
  11. package/build-task/esm2022/data/form/form-field/form-field.build.mjs +8 -3
  12. package/build-task/esm2022/data/form/form.build.mjs +8 -1
  13. package/build-task/esm2022/data/table/table-column/table-column.build.mjs +14 -3
  14. package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +2 -2
  15. package/build-task/esm2022/page/page-content/page-content.build.mjs +8 -2
  16. package/build-task/esm2022/public_api.mjs +10 -10
  17. package/build-task/fesm2022/index.mjs +36 -7
  18. package/build-task/fesm2022/index.mjs.map +1 -1
  19. package/build-task/package.json +3 -6
  20. package/build-task/public_api.d.ts +9 -9
  21. package/components/advanced/carousel/bundles/index.umd.js +33 -38
  22. package/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +16 -16
  23. package/components/advanced/carousel/esm2022/carousel.directive.mjs +19 -24
  24. package/components/advanced/carousel/fesm2022/index.mjs +34 -39
  25. package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  26. package/components/advanced/carousel/package.json +0 -3
  27. package/components/advanced/custom/bundles/index.umd.js +48 -48
  28. package/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +1 -1
  29. package/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +31 -31
  30. package/components/advanced/custom/esm2022/custom-widget.directive.mjs +15 -15
  31. package/components/advanced/custom/fesm2022/index.mjs +45 -45
  32. package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  33. package/components/advanced/custom/package.json +0 -3
  34. package/components/advanced/login/bundles/index.umd.js +33 -53
  35. package/components/advanced/login/esm2022/login.component.mjs +26 -47
  36. package/components/advanced/login/fesm2022/index.mjs +27 -47
  37. package/components/advanced/login/fesm2022/index.mjs.map +1 -1
  38. package/components/advanced/login/login.component.d.ts +1 -1
  39. package/components/advanced/login/package.json +0 -3
  40. package/components/advanced/marquee/bundles/index.umd.js +19 -19
  41. package/components/advanced/marquee/esm2022/marquee.directive.mjs +20 -20
  42. package/components/advanced/marquee/fesm2022/index.mjs +20 -20
  43. package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  44. package/components/advanced/marquee/package.json +0 -3
  45. package/components/base/bundles/index.umd.js +4272 -4243
  46. package/components/base/esm2022/pipes/custom-pipes.mjs +14 -12
  47. package/components/base/esm2022/pipes/wm-pipe.mjs +3 -3
  48. package/components/base/esm2022/public_api.mjs +1 -2
  49. package/components/base/esm2022/widgets/common/container/container.directive.mjs +154 -1
  50. package/components/base/esm2022/widgets/common/container/container.props.mjs +7 -2
  51. package/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +1 -1
  52. package/components/base/fesm2022/index.mjs +4280 -4251
  53. package/components/base/fesm2022/index.mjs.map +1 -1
  54. package/components/base/package.json +2 -2
  55. package/components/base/pipes/custom-pipes.d.ts +4 -2
  56. package/components/base/pipes/wm-pipe.d.ts +1 -1
  57. package/components/base/public_api.d.ts +0 -1
  58. package/components/base/widgets/common/container/container.directive.d.ts +9 -0
  59. package/components/base/widgets/common/pull-to-refresh/pull-to-refresh.d.ts +0 -2
  60. package/components/basic/anchor/bundles/index.umd.js +192 -0
  61. package/components/basic/anchor/esm2022/anchor.component.mjs +143 -0
  62. package/components/basic/anchor/esm2022/anchor.props.mjs +27 -0
  63. package/components/basic/anchor/esm2022/index.mjs +5 -0
  64. package/components/basic/anchor/esm2022/public_api.mjs +2 -0
  65. package/components/basic/anchor/fesm2022/index.mjs +175 -0
  66. package/components/basic/anchor/fesm2022/index.mjs.map +1 -0
  67. package/components/basic/{progress → anchor}/index.d.ts +1 -1
  68. package/components/basic/{default → anchor}/package.json +1 -4
  69. package/components/basic/anchor/public_api.d.ts +1 -0
  70. package/components/basic/audio/bundles/index.umd.js +83 -0
  71. package/components/basic/audio/esm2022/audio.component.mjs +41 -0
  72. package/components/basic/audio/esm2022/audio.props.mjs +19 -0
  73. package/components/{input/epoch → basic/audio}/esm2022/index.mjs +1 -1
  74. package/components/basic/audio/esm2022/public_api.mjs +2 -0
  75. package/components/basic/audio/fesm2022/index.mjs +65 -0
  76. package/components/basic/audio/fesm2022/index.mjs.map +1 -0
  77. package/components/{input/epoch → basic/audio}/index.d.ts +1 -1
  78. package/components/{input/default → basic/audio}/package.json +2 -5
  79. package/components/basic/audio/public_api.d.ts +1 -0
  80. package/components/basic/html/bundles/index.umd.js +110 -0
  81. package/components/basic/html/esm2022/html.directive.mjs +76 -0
  82. package/components/basic/html/esm2022/html.props.mjs +12 -0
  83. package/components/basic/html/esm2022/index.mjs +5 -0
  84. package/components/basic/html/esm2022/public_api.mjs +2 -0
  85. package/components/basic/html/fesm2022/index.mjs +93 -0
  86. package/components/basic/html/fesm2022/index.mjs.map +1 -0
  87. package/components/basic/{default → html}/index.d.ts +1 -1
  88. package/components/{input/epoch → basic/html}/package.json +1 -4
  89. package/components/basic/html/public_api.d.ts +1 -0
  90. package/components/basic/icon/bundles/index.umd.js +80 -0
  91. package/components/basic/icon/esm2022/icon.component.mjs +38 -0
  92. package/components/basic/icon/esm2022/icon.props.mjs +19 -0
  93. package/components/basic/icon/esm2022/index.mjs +5 -0
  94. package/components/basic/icon/esm2022/public_api.mjs +2 -0
  95. package/components/basic/icon/fesm2022/index.mjs +62 -0
  96. package/components/basic/icon/fesm2022/index.mjs.map +1 -0
  97. package/components/{input/default → basic/icon}/index.d.ts +1 -1
  98. package/components/basic/{progress → icon}/package.json +1 -4
  99. package/components/basic/icon/public_api.d.ts +1 -0
  100. package/components/basic/iframe/.npmignore +2 -0
  101. package/components/basic/iframe/bundles/index.umd.js +101 -0
  102. package/components/basic/iframe/esm2022/iframe.component.mjs +65 -0
  103. package/components/basic/iframe/esm2022/iframe.props.mjs +15 -0
  104. package/components/basic/iframe/esm2022/index.mjs +5 -0
  105. package/components/basic/iframe/esm2022/public_api.mjs +2 -0
  106. package/components/basic/iframe/fesm2022/index.mjs +84 -0
  107. package/components/basic/iframe/fesm2022/index.mjs.map +1 -0
  108. package/components/basic/iframe/index.d.ts +5 -0
  109. package/components/basic/iframe/package.json +20 -0
  110. package/components/basic/iframe/public_api.d.ts +1 -0
  111. package/components/basic/label/.npmignore +2 -0
  112. package/components/basic/label/bundles/index.umd.js +109 -0
  113. package/components/basic/label/esm2022/index.mjs +5 -0
  114. package/components/basic/label/esm2022/label.directive.mjs +71 -0
  115. package/components/basic/label/esm2022/label.props.mjs +17 -0
  116. package/components/basic/label/esm2022/public_api.mjs +2 -0
  117. package/components/basic/label/fesm2022/index.mjs +93 -0
  118. package/components/basic/label/fesm2022/index.mjs.map +1 -0
  119. package/components/basic/label/index.d.ts +5 -0
  120. package/components/basic/{default/label → label}/label.directive.d.ts +1 -1
  121. package/components/basic/label/package.json +20 -0
  122. package/components/basic/label/public_api.d.ts +1 -0
  123. package/components/basic/picture/.npmignore +2 -0
  124. package/components/basic/picture/bundles/index.umd.js +138 -0
  125. package/components/basic/{default → picture}/esm2022/index.mjs +1 -1
  126. package/components/basic/picture/esm2022/picture.directive.mjs +93 -0
  127. package/components/basic/picture/esm2022/picture.props.mjs +23 -0
  128. package/components/basic/picture/esm2022/public_api.mjs +2 -0
  129. package/components/basic/picture/fesm2022/index.mjs +121 -0
  130. package/components/basic/picture/fesm2022/index.mjs.map +1 -0
  131. package/components/basic/picture/index.d.ts +5 -0
  132. package/components/basic/picture/package.json +20 -0
  133. package/components/basic/picture/public_api.d.ts +1 -0
  134. package/components/basic/progress/progress-bar/.npmignore +2 -0
  135. package/components/basic/progress/progress-bar/bundles/index.umd.js +170 -0
  136. package/components/basic/progress/progress-bar/esm2022/index.mjs +5 -0
  137. package/components/basic/progress/progress-bar/esm2022/progress-bar.component.mjs +130 -0
  138. package/components/basic/progress/{esm2022/progress-bar → progress-bar/esm2022}/progress-bar.props.mjs +1 -1
  139. package/components/basic/progress/progress-bar/esm2022/public_api.mjs +2 -0
  140. package/components/basic/progress/progress-bar/fesm2022/index.mjs +154 -0
  141. package/components/basic/progress/progress-bar/fesm2022/index.mjs.map +1 -0
  142. package/components/basic/progress/progress-bar/index.d.ts +5 -0
  143. package/components/basic/progress/progress-bar/package.json +20 -0
  144. package/components/basic/progress/progress-bar/public_api.d.ts +1 -0
  145. package/components/basic/progress/progress-circle/.npmignore +2 -0
  146. package/components/basic/progress/progress-circle/bundles/index.umd.js +161 -0
  147. package/components/basic/progress/progress-circle/esm2022/index.mjs +5 -0
  148. package/components/basic/progress/progress-circle/esm2022/progress-circle.component.mjs +120 -0
  149. package/components/basic/progress/{esm2022/progress-circle → progress-circle/esm2022}/progress-circle.props.mjs +1 -1
  150. package/components/basic/progress/progress-circle/esm2022/public_api.mjs +2 -0
  151. package/components/basic/progress/progress-circle/fesm2022/index.mjs +145 -0
  152. package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -0
  153. package/components/basic/progress/progress-circle/index.d.ts +5 -0
  154. package/components/basic/progress/progress-circle/package.json +20 -0
  155. package/components/basic/progress/progress-circle/public_api.d.ts +1 -0
  156. package/components/basic/progress/progress-utils/.npmignore +2 -0
  157. package/components/basic/progress/progress-utils/bundles/index.umd.js +35 -0
  158. package/components/basic/progress/progress-utils/esm2022/index.mjs +5 -0
  159. package/components/basic/progress/progress-utils/esm2022/progress-utils.mjs +25 -0
  160. package/components/basic/progress/progress-utils/esm2022/public_api.mjs +2 -0
  161. package/components/basic/progress/progress-utils/fesm2022/index.mjs +32 -0
  162. package/components/basic/progress/progress-utils/fesm2022/index.mjs.map +1 -0
  163. package/components/basic/progress/progress-utils/index.d.ts +5 -0
  164. package/components/basic/progress/progress-utils/package.json +20 -0
  165. package/components/basic/progress/progress-utils/public_api.d.ts +1 -0
  166. package/components/basic/rich-text-editor/bundles/index.umd.js +23 -40
  167. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +19 -38
  168. package/components/basic/rich-text-editor/fesm2022/index.mjs +21 -39
  169. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  170. package/components/basic/rich-text-editor/package.json +0 -3
  171. package/components/basic/rich-text-editor/rich-text-editor.component.d.ts +1 -1
  172. package/components/basic/search/bundles/index.umd.js +109 -313
  173. package/components/basic/search/esm2022/scrollable.directive.mjs +13 -14
  174. package/components/basic/search/esm2022/search.component.mjs +40 -246
  175. package/components/basic/search/fesm2022/index.mjs +52 -256
  176. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  177. package/components/basic/search/package.json +0 -3
  178. package/components/basic/search/scrollable.directive.d.ts +2 -3
  179. package/components/basic/search/search.component.d.ts +1 -1
  180. package/components/basic/spinner/.npmignore +2 -0
  181. package/components/basic/spinner/bundles/index.umd.js +118 -0
  182. package/components/{input/default → basic/spinner}/esm2022/index.mjs +1 -1
  183. package/components/basic/spinner/esm2022/public_api.mjs +2 -0
  184. package/components/basic/spinner/esm2022/spinner.component.mjs +79 -0
  185. package/components/basic/spinner/esm2022/spinner.props.mjs +20 -0
  186. package/components/basic/spinner/fesm2022/index.mjs +103 -0
  187. package/components/basic/spinner/fesm2022/index.mjs.map +1 -0
  188. package/components/basic/spinner/index.d.ts +5 -0
  189. package/components/basic/spinner/package.json +20 -0
  190. package/components/basic/spinner/public_api.d.ts +1 -0
  191. package/components/basic/tree/bundles/index.umd.js +34 -38
  192. package/components/basic/tree/esm2022/tree.component.mjs +31 -36
  193. package/components/basic/tree/fesm2022/index.mjs +32 -36
  194. package/components/basic/tree/fesm2022/index.mjs.map +1 -1
  195. package/components/basic/tree/package.json +0 -3
  196. package/components/basic/video/.npmignore +2 -0
  197. package/components/basic/video/bundles/index.umd.js +116 -0
  198. package/components/basic/video/esm2022/index.mjs +5 -0
  199. package/components/basic/video/esm2022/public_api.mjs +2 -0
  200. package/components/basic/video/esm2022/video.component.mjs +70 -0
  201. package/components/basic/video/esm2022/video.props.mjs +24 -0
  202. package/components/basic/video/fesm2022/index.mjs +99 -0
  203. package/components/basic/video/fesm2022/index.mjs.map +1 -0
  204. package/components/basic/video/index.d.ts +5 -0
  205. package/components/basic/video/package.json +20 -0
  206. package/components/basic/video/public_api.d.ts +1 -0
  207. package/components/chart/bundles/index.umd.js +22 -75
  208. package/components/chart/esm2022/chart.component.mjs +20 -74
  209. package/components/chart/fesm2022/index.mjs +21 -74
  210. package/components/chart/fesm2022/index.mjs.map +1 -1
  211. package/components/chart/package.json +0 -3
  212. package/components/containers/accordion/bundles/index.umd.js +45 -100
  213. package/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +19 -70
  214. package/components/containers/accordion/esm2022/accordion.directive.mjs +24 -29
  215. package/components/containers/accordion/fesm2022/index.mjs +43 -98
  216. package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  217. package/components/containers/accordion/package.json +0 -3
  218. package/components/containers/layout-grid/bundles/index.umd.js +60 -60
  219. package/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +23 -23
  220. package/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +20 -20
  221. package/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +20 -20
  222. package/components/containers/layout-grid/fesm2022/index.mjs +61 -61
  223. package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  224. package/components/containers/layout-grid/package.json +0 -3
  225. package/components/containers/linear-layout/bundles/index.umd.js +38 -38
  226. package/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +20 -20
  227. package/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +20 -20
  228. package/components/containers/linear-layout/fesm2022/index.mjs +39 -39
  229. package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  230. package/components/containers/linear-layout/package.json +0 -3
  231. package/components/containers/panel/bundles/index.umd.js +62 -223
  232. package/components/containers/panel/esm2022/panel.component.mjs +29 -190
  233. package/components/containers/panel/fesm2022/index.mjs +29 -190
  234. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  235. package/components/containers/panel/package.json +0 -3
  236. package/components/containers/tabs/bundles/index.umd.js +95 -204
  237. package/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +34 -51
  238. package/components/containers/tabs/esm2022/tabs.component.mjs +29 -123
  239. package/components/containers/tabs/fesm2022/index.mjs +61 -170
  240. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  241. package/components/containers/tabs/package.json +0 -3
  242. package/components/containers/tabs/tab-pane/tab-pane.component.d.ts +3 -4
  243. package/components/containers/tile/bundles/index.umd.js +19 -19
  244. package/components/containers/tile/esm2022/tile.directive.mjs +20 -20
  245. package/components/containers/tile/fesm2022/index.mjs +20 -20
  246. package/components/containers/tile/fesm2022/index.mjs.map +1 -1
  247. package/components/containers/tile/package.json +0 -3
  248. package/components/containers/wizard/bundles/index.umd.js +119 -302
  249. package/components/containers/wizard/esm2022/wizard-action/wizard-action.directive.mjs +21 -21
  250. package/components/containers/wizard/esm2022/wizard-step/wizard-step.component.mjs +32 -45
  251. package/components/containers/wizard/esm2022/wizard.component.mjs +30 -201
  252. package/components/containers/wizard/fesm2022/index.mjs +81 -264
  253. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  254. package/components/containers/wizard/package.json +0 -3
  255. package/components/containers/wizard/wizard.component.d.ts +1 -1
  256. package/components/data/card/bundles/index.umd.js +108 -208
  257. package/components/data/card/esm2022/card-actions/card-actions.directive.mjs +15 -15
  258. package/components/data/card/esm2022/card-content/card-content.component.mjs +19 -34
  259. package/components/data/card/esm2022/card-footer/card-footer.directive.mjs +15 -15
  260. package/components/data/card/esm2022/card.component.mjs +21 -107
  261. package/components/data/card/fesm2022/index.mjs +67 -167
  262. package/components/data/card/fesm2022/index.mjs.map +1 -1
  263. package/components/data/card/package.json +0 -3
  264. package/components/data/form/bundles/index.umd.js +287 -467
  265. package/components/data/form/esm2022/form-action/form-action.directive.mjs +22 -22
  266. package/components/data/form/esm2022/form-field/form-field.directive.mjs +80 -91
  267. package/components/data/form/esm2022/form-widget.directive.mjs +31 -31
  268. package/components/data/form/esm2022/form.component.mjs +88 -251
  269. package/components/data/form/esm2022/form.props.mjs +1 -1
  270. package/components/data/form/esm2022/live-actions/dependson.directive.mjs +19 -24
  271. package/components/data/form/esm2022/live-actions/live-actions.directive.mjs +15 -15
  272. package/components/data/form/esm2022/live-filter/live-filter.directive.mjs +15 -15
  273. package/components/data/form/esm2022/live-form/live-form.directive.mjs +23 -25
  274. package/components/data/form/fesm2022/index.mjs +288 -468
  275. package/components/data/form/fesm2022/index.mjs.map +1 -1
  276. package/components/data/form/package.json +0 -3
  277. package/components/data/list/bundles/index.umd.js +80 -360
  278. package/components/data/list/esm2022/list-item.directive.mjs +27 -34
  279. package/components/data/list/esm2022/list.animator.mjs +1 -1
  280. package/components/data/list/esm2022/list.component.mjs +55 -330
  281. package/components/data/list/esm2022/list.props.mjs +1 -1
  282. package/components/data/list/fesm2022/index.mjs +79 -358
  283. package/components/data/list/fesm2022/index.mjs.map +1 -1
  284. package/components/data/list/list-item.directive.d.ts +3 -3
  285. package/components/data/list/list.component.d.ts +2 -4
  286. package/components/data/list/package.json +0 -3
  287. package/components/data/live-table/bundles/index.umd.js +28 -39
  288. package/components/data/live-table/esm2022/live-table.component.mjs +25 -37
  289. package/components/data/live-table/fesm2022/index.mjs +26 -37
  290. package/components/data/live-table/fesm2022/index.mjs.map +1 -1
  291. package/components/data/live-table/package.json +0 -3
  292. package/components/data/pagination/bundles/index.umd.js +33 -505
  293. package/components/data/pagination/esm2022/pagination.component.mjs +33 -507
  294. package/components/data/pagination/esm2022/pagination.props.mjs +1 -1
  295. package/components/data/pagination/fesm2022/index.mjs +32 -505
  296. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  297. package/components/data/pagination/package.json +0 -3
  298. package/components/data/pagination/pagination.component.d.ts +1 -1
  299. package/components/data/table/bundles/index.umd.js +310 -457
  300. package/components/data/table/esm2022/table-action/table-action.directive.mjs +22 -22
  301. package/components/data/table/esm2022/table-column/table-column.directive.mjs +50 -71
  302. package/components/data/table/esm2022/table-column/table-column.props.mjs +1 -1
  303. package/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +26 -26
  304. package/components/data/table/esm2022/table-cud.directive.mjs +15 -15
  305. package/components/data/table/esm2022/table-filter.directive.mjs +16 -16
  306. package/components/data/table/esm2022/table-row/table-row.directive.mjs +24 -24
  307. package/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +29 -29
  308. package/components/data/table/esm2022/table.component.mjs +135 -263
  309. package/components/data/table/esm2022/table.props.mjs +2 -1
  310. package/components/data/table/fesm2022/index.mjs +312 -459
  311. package/components/data/table/fesm2022/index.mjs.map +1 -1
  312. package/components/data/table/package.json +0 -3
  313. package/components/data/table/table-column/table-column.directive.d.ts +1 -1
  314. package/components/data/table/table.component.d.ts +3 -0
  315. package/components/dialogs/alert-dialog/bundles/index.umd.js +50 -79
  316. package/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +32 -62
  317. package/components/dialogs/alert-dialog/fesm2022/index.mjs +32 -61
  318. package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  319. package/components/dialogs/alert-dialog/package.json +0 -3
  320. package/components/dialogs/confirm-dialog/bundles/index.umd.js +36 -72
  321. package/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +34 -71
  322. package/components/dialogs/confirm-dialog/fesm2022/index.mjs +35 -71
  323. package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  324. package/components/dialogs/confirm-dialog/package.json +0 -3
  325. package/components/dialogs/default/bundles/index.umd.js +85 -232
  326. package/components/dialogs/default/esm2022/base-dialog.mjs +14 -14
  327. package/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +16 -18
  328. package/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +20 -20
  329. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +34 -179
  330. package/components/dialogs/default/fesm2022/index.mjs +80 -227
  331. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  332. package/components/dialogs/default/package.json +0 -3
  333. package/components/dialogs/design-dialog/bundles/index.umd.js +52 -108
  334. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +50 -107
  335. package/components/dialogs/design-dialog/fesm2022/index.mjs +51 -107
  336. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  337. package/components/dialogs/design-dialog/package.json +0 -3
  338. package/components/dialogs/iframe-dialog/bundles/index.umd.js +33 -81
  339. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +32 -82
  340. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +33 -82
  341. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  342. package/components/dialogs/iframe-dialog/package.json +0 -3
  343. package/components/dialogs/login-dialog/bundles/index.umd.js +22 -29
  344. package/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +23 -30
  345. package/components/dialogs/login-dialog/fesm2022/index.mjs +23 -30
  346. package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  347. package/components/dialogs/login-dialog/package.json +0 -3
  348. package/components/dialogs/partial-dialog/bundles/index.umd.js +39 -85
  349. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +38 -85
  350. package/components/dialogs/partial-dialog/fesm2022/index.mjs +39 -85
  351. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  352. package/components/dialogs/partial-dialog/package.json +0 -3
  353. package/components/input/base-form/.npmignore +2 -0
  354. package/components/input/base-form/bundles/index.umd.js +133 -0
  355. package/components/input/base-form/esm2022/base-form.component.mjs +110 -0
  356. package/components/input/base-form/esm2022/index.mjs +5 -0
  357. package/components/input/base-form/esm2022/public_api.mjs +2 -0
  358. package/components/input/base-form/fesm2022/index.mjs +117 -0
  359. package/components/input/base-form/fesm2022/index.mjs.map +1 -0
  360. package/components/input/base-form/index.d.ts +5 -0
  361. package/components/input/base-form/package.json +20 -0
  362. package/components/input/base-form/public_api.d.ts +1 -0
  363. package/components/input/base-form-custom/.npmignore +2 -0
  364. package/components/input/{default → base-form-custom}/base-form-custom.component.d.ts +1 -1
  365. package/components/input/base-form-custom/bundles/index.umd.js +118 -0
  366. package/components/input/base-form-custom/esm2022/base-form-custom.component.mjs +94 -0
  367. package/components/input/base-form-custom/esm2022/index.mjs +5 -0
  368. package/components/input/base-form-custom/esm2022/public_api.mjs +2 -0
  369. package/components/input/base-form-custom/fesm2022/index.mjs +101 -0
  370. package/components/input/base-form-custom/fesm2022/index.mjs.map +1 -0
  371. package/components/input/base-form-custom/index.d.ts +5 -0
  372. package/components/input/base-form-custom/package.json +20 -0
  373. package/components/input/base-form-custom/public_api.d.ts +1 -0
  374. package/components/input/button/.npmignore +2 -0
  375. package/components/input/button/bundles/index.umd.js +98 -0
  376. package/components/input/button/esm2022/button.component.mjs +50 -0
  377. package/components/input/button/esm2022/button.props.mjs +26 -0
  378. package/components/input/button/esm2022/index.mjs +5 -0
  379. package/components/input/button/esm2022/public_api.mjs +2 -0
  380. package/components/input/button/fesm2022/index.mjs +81 -0
  381. package/components/input/button/fesm2022/index.mjs.map +1 -0
  382. package/components/input/button/index.d.ts +5 -0
  383. package/components/input/button/package.json +20 -0
  384. package/components/input/button/public_api.d.ts +1 -0
  385. package/components/input/button-group/.npmignore +2 -0
  386. package/components/input/button-group/bundles/index.umd.js +80 -0
  387. package/components/input/button-group/esm2022/button-group.directive.mjs +47 -0
  388. package/components/input/button-group/esm2022/button-group.props.mjs +10 -0
  389. package/components/input/button-group/esm2022/index.mjs +5 -0
  390. package/components/input/button-group/esm2022/public_api.mjs +2 -0
  391. package/components/input/button-group/fesm2022/index.mjs +62 -0
  392. package/components/input/button-group/fesm2022/index.mjs.map +1 -0
  393. package/components/input/button-group/index.d.ts +5 -0
  394. package/components/input/button-group/package.json +20 -0
  395. package/components/input/button-group/public_api.d.ts +1 -0
  396. package/components/input/calendar/bundles/index.umd.js +25 -38
  397. package/components/input/calendar/esm2022/calendar.component.mjs +22 -36
  398. package/components/input/calendar/fesm2022/index.mjs +23 -36
  399. package/components/input/calendar/fesm2022/index.mjs.map +1 -1
  400. package/components/input/calendar/package.json +0 -3
  401. package/components/input/caption-position/.npmignore +2 -0
  402. package/components/input/caption-position/bundles/index.umd.js +196 -0
  403. package/components/input/caption-position/esm2022/caption-position.directive.mjs +172 -0
  404. package/components/input/caption-position/esm2022/index.mjs +5 -0
  405. package/components/input/caption-position/esm2022/public_api.mjs +2 -0
  406. package/components/input/caption-position/fesm2022/index.mjs +178 -0
  407. package/components/input/caption-position/fesm2022/index.mjs.map +1 -0
  408. package/components/input/caption-position/index.d.ts +5 -0
  409. package/components/input/caption-position/package.json +20 -0
  410. package/components/input/caption-position/public_api.d.ts +1 -0
  411. package/components/input/checkbox/.npmignore +2 -0
  412. package/components/input/checkbox/bundles/index.umd.js +190 -0
  413. package/components/input/{default/checkbox → checkbox}/checkbox.component.d.ts +1 -1
  414. package/components/input/checkbox/esm2022/checkbox.component.mjs +145 -0
  415. package/components/input/checkbox/esm2022/checkbox.props.mjs +27 -0
  416. package/components/{basic/progress → input/checkbox}/esm2022/index.mjs +1 -1
  417. package/components/input/checkbox/esm2022/public_api.mjs +2 -0
  418. package/components/input/checkbox/fesm2022/index.mjs +175 -0
  419. package/components/input/checkbox/fesm2022/index.mjs.map +1 -0
  420. package/components/input/checkbox/index.d.ts +5 -0
  421. package/components/input/checkbox/package.json +20 -0
  422. package/components/input/checkbox/public_api.d.ts +1 -0
  423. package/components/input/checkboxset/.npmignore +2 -0
  424. package/components/input/checkboxset/bundles/index.umd.js +151 -0
  425. package/components/input/{default/checkboxset → checkboxset}/checkboxset.component.d.ts +1 -1
  426. package/components/input/checkboxset/esm2022/checkboxset.component.mjs +99 -0
  427. package/components/input/checkboxset/esm2022/checkboxset.props.mjs +35 -0
  428. package/components/input/checkboxset/esm2022/index.mjs +5 -0
  429. package/components/input/checkboxset/esm2022/public_api.mjs +2 -0
  430. package/components/input/checkboxset/fesm2022/index.mjs +138 -0
  431. package/components/input/checkboxset/fesm2022/index.mjs.map +1 -0
  432. package/components/input/checkboxset/index.d.ts +5 -0
  433. package/components/input/checkboxset/package.json +20 -0
  434. package/components/input/checkboxset/public_api.d.ts +1 -0
  435. package/components/input/chips/bundles/index.umd.js +94 -153
  436. package/components/input/chips/chips.component.d.ts +1 -1
  437. package/components/input/chips/esm2022/chips.component.mjs +41 -101
  438. package/components/input/chips/fesm2022/index.mjs +42 -101
  439. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  440. package/components/input/chips/package.json +0 -3
  441. package/components/input/color-picker/bundles/index.umd.js +35 -74
  442. package/components/input/color-picker/color-picker.component.d.ts +2 -2
  443. package/components/input/color-picker/esm2022/color-picker.component.mjs +34 -75
  444. package/components/input/color-picker/fesm2022/index.mjs +36 -75
  445. package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  446. package/components/input/color-picker/package.json +0 -3
  447. package/components/input/composite/.npmignore +2 -0
  448. package/components/input/composite/bundles/index.umd.js +111 -0
  449. package/components/input/composite/esm2022/composite.directive.mjs +79 -0
  450. package/components/input/composite/esm2022/composite.props.mjs +10 -0
  451. package/components/input/composite/esm2022/index.mjs +5 -0
  452. package/components/input/composite/esm2022/public_api.mjs +2 -0
  453. package/components/input/composite/fesm2022/index.mjs +94 -0
  454. package/components/input/composite/fesm2022/index.mjs.map +1 -0
  455. package/components/input/composite/index.d.ts +5 -0
  456. package/components/input/composite/package.json +20 -0
  457. package/components/input/composite/public_api.d.ts +1 -0
  458. package/components/input/currency/bundles/index.umd.js +31 -52
  459. package/components/input/currency/currency.component.d.ts +1 -1
  460. package/components/input/currency/esm2022/currency.component.mjs +28 -50
  461. package/components/input/currency/fesm2022/index.mjs +30 -51
  462. package/components/input/currency/fesm2022/index.mjs.map +1 -1
  463. package/components/input/currency/package.json +0 -3
  464. package/components/input/dataset-aware-form/.npmignore +2 -0
  465. package/components/input/dataset-aware-form/bundles/index.umd.js +328 -0
  466. package/components/input/{default → dataset-aware-form}/dataset-aware-form.component.d.ts +1 -1
  467. package/components/input/dataset-aware-form/esm2022/dataset-aware-form.component.mjs +307 -0
  468. package/components/input/dataset-aware-form/esm2022/index.mjs +5 -0
  469. package/components/input/dataset-aware-form/esm2022/public_api.mjs +2 -0
  470. package/components/input/dataset-aware-form/fesm2022/index.mjs +314 -0
  471. package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -0
  472. package/components/input/dataset-aware-form/index.d.ts +5 -0
  473. package/components/input/dataset-aware-form/package.json +20 -0
  474. package/components/input/dataset-aware-form/public_api.d.ts +1 -0
  475. package/components/input/epoch/base-date-time/.npmignore +2 -0
  476. package/components/input/epoch/{base-date-time.component.d.ts → base-date-time/base-date-time.component.d.ts} +1 -1
  477. package/components/input/epoch/base-date-time/bundles/index.umd.js +1086 -0
  478. package/components/input/epoch/{esm2022 → base-date-time/esm2022}/base-date-time.component.mjs +22 -31
  479. package/components/input/epoch/base-date-time/esm2022/index.mjs +5 -0
  480. package/components/input/epoch/base-date-time/esm2022/public_api.mjs +2 -0
  481. package/components/input/epoch/base-date-time/fesm2022/index.mjs +1077 -0
  482. package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -0
  483. package/components/input/epoch/base-date-time/index.d.ts +5 -0
  484. package/components/input/epoch/base-date-time/package.json +20 -0
  485. package/components/input/epoch/base-date-time/public_api.d.ts +1 -0
  486. package/components/input/epoch/date/.npmignore +2 -0
  487. package/components/input/epoch/date/bundles/index.umd.js +492 -0
  488. package/components/input/epoch/date/date.component.d.ts +2 -2
  489. package/components/input/epoch/date/esm2022/date.component.mjs +322 -0
  490. package/components/input/epoch/{esm2022/date → date/esm2022}/date.props.mjs +1 -1
  491. package/components/input/epoch/{esm2022/date → date/esm2022}/imaskUtil.mjs +1 -1
  492. package/components/input/epoch/date/esm2022/index.mjs +5 -0
  493. package/components/input/epoch/date/esm2022/public_api.mjs +2 -0
  494. package/components/input/epoch/date/fesm2022/index.mjs +482 -0
  495. package/components/input/epoch/date/fesm2022/index.mjs.map +1 -0
  496. package/components/input/epoch/date/index.d.ts +5 -0
  497. package/components/input/epoch/date/package.json +20 -0
  498. package/components/input/epoch/date/public_api.d.ts +1 -0
  499. package/components/input/epoch/date-time/.npmignore +2 -0
  500. package/components/input/epoch/date-time/bundles/index.umd.js +518 -0
  501. package/components/input/epoch/date-time/date-time.component.d.ts +1 -1
  502. package/components/input/epoch/date-time/esm2022/date-time.component.mjs +458 -0
  503. package/components/input/epoch/{esm2022/date-time → date-time/esm2022}/date-time.props.mjs +1 -1
  504. package/components/input/epoch/date-time/esm2022/index.mjs +5 -0
  505. package/components/input/epoch/date-time/esm2022/public_api.mjs +2 -0
  506. package/components/input/epoch/date-time/fesm2022/index.mjs +509 -0
  507. package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -0
  508. package/components/input/epoch/date-time/index.d.ts +5 -0
  509. package/components/input/epoch/date-time/package.json +20 -0
  510. package/components/input/epoch/date-time/public_api.d.ts +1 -0
  511. package/components/input/epoch/date-time-picker/.npmignore +2 -0
  512. package/components/input/epoch/date-time-picker/bundles/index.umd.js +453 -0
  513. package/components/input/epoch/date-time-picker/esm2022/date-time-picker.component.mjs +433 -0
  514. package/components/input/epoch/date-time-picker/esm2022/index.mjs +5 -0
  515. package/components/input/epoch/date-time-picker/esm2022/public_api.mjs +2 -0
  516. package/components/input/epoch/date-time-picker/fesm2022/index.mjs +439 -0
  517. package/components/input/epoch/date-time-picker/fesm2022/index.mjs.map +1 -0
  518. package/components/input/epoch/date-time-picker/index.d.ts +5 -0
  519. package/components/input/epoch/date-time-picker/package.json +20 -0
  520. package/components/input/epoch/date-time-picker/public_api.d.ts +1 -0
  521. package/components/input/epoch/picker/.npmignore +2 -0
  522. package/components/input/epoch/picker/bundles/index.umd.js +192 -0
  523. package/components/input/epoch/picker/esm2022/index.mjs +5 -0
  524. package/components/input/epoch/picker/esm2022/picker.component.mjs +165 -0
  525. package/components/input/epoch/picker/esm2022/public_api.mjs +3 -0
  526. package/components/input/epoch/picker/fesm2022/index.mjs +172 -0
  527. package/components/input/epoch/picker/fesm2022/index.mjs.map +1 -0
  528. package/components/input/epoch/picker/index.d.ts +5 -0
  529. package/components/input/epoch/picker/package.json +20 -0
  530. package/components/input/epoch/picker/public_api.d.ts +2 -0
  531. package/components/input/epoch/time/.npmignore +2 -0
  532. package/components/input/epoch/time/bundles/index.umd.js +397 -0
  533. package/components/input/epoch/time/esm2022/index.mjs +5 -0
  534. package/components/input/epoch/time/esm2022/public_api.mjs +2 -0
  535. package/components/input/epoch/time/esm2022/time.component.mjs +348 -0
  536. package/components/input/epoch/{esm2022/time → time/esm2022}/time.props.mjs +1 -1
  537. package/components/input/epoch/time/fesm2022/index.mjs +387 -0
  538. package/components/input/epoch/time/fesm2022/index.mjs.map +1 -0
  539. package/components/input/epoch/time/index.d.ts +5 -0
  540. package/components/input/epoch/time/package.json +20 -0
  541. package/components/input/epoch/time/public_api.d.ts +1 -0
  542. package/components/input/epoch/time/time.component.d.ts +1 -1
  543. package/components/input/file-upload/bundles/index.umd.js +56 -348
  544. package/components/input/file-upload/esm2022/file-upload.component.mjs +20 -313
  545. package/components/input/file-upload/fesm2022/index.mjs +20 -312
  546. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  547. package/components/input/file-upload/package.json +0 -3
  548. package/components/input/number/.npmignore +2 -0
  549. package/components/input/number/bundles/index.umd.js +101 -0
  550. package/components/input/number/esm2022/index.mjs +5 -0
  551. package/components/input/number/esm2022/number.component.mjs +49 -0
  552. package/components/input/number/esm2022/number.props.mjs +35 -0
  553. package/components/input/number/esm2022/public_api.mjs +2 -0
  554. package/components/input/number/fesm2022/index.mjs +87 -0
  555. package/components/input/number/fesm2022/index.mjs.map +1 -0
  556. package/components/input/number/index.d.ts +5 -0
  557. package/components/input/{default/number → number}/number.component.d.ts +1 -1
  558. package/components/input/number/package.json +20 -0
  559. package/components/input/number/public_api.d.ts +1 -0
  560. package/components/input/radioset/.npmignore +2 -0
  561. package/components/input/radioset/bundles/index.umd.js +136 -0
  562. package/components/input/radioset/esm2022/index.mjs +5 -0
  563. package/components/input/radioset/esm2022/public_api.mjs +2 -0
  564. package/components/input/radioset/esm2022/radioset.component.mjs +84 -0
  565. package/components/input/radioset/esm2022/radioset.props.mjs +35 -0
  566. package/components/input/radioset/fesm2022/index.mjs +123 -0
  567. package/components/input/radioset/fesm2022/index.mjs.map +1 -0
  568. package/components/input/radioset/index.d.ts +5 -0
  569. package/components/input/radioset/package.json +20 -0
  570. package/components/input/radioset/public_api.d.ts +1 -0
  571. package/components/input/{default/radioset → radioset}/radioset.component.d.ts +1 -1
  572. package/components/input/rating/bundles/index.umd.js +49 -103
  573. package/components/input/rating/esm2022/rating.component.mjs +24 -79
  574. package/components/input/rating/fesm2022/index.mjs +25 -79
  575. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  576. package/components/input/rating/package.json +0 -3
  577. package/components/input/rating/rating.component.d.ts +1 -1
  578. package/components/input/select/.npmignore +2 -0
  579. package/components/input/select/bundles/index.umd.js +219 -0
  580. package/components/input/select/esm2022/index.mjs +5 -0
  581. package/components/input/select/esm2022/public_api.mjs +2 -0
  582. package/components/input/select/esm2022/select.component.mjs +166 -0
  583. package/components/input/select/esm2022/select.props.mjs +36 -0
  584. package/components/input/select/fesm2022/index.mjs +205 -0
  585. package/components/input/select/fesm2022/index.mjs.map +1 -0
  586. package/components/input/select/index.d.ts +5 -0
  587. package/components/input/select/package.json +20 -0
  588. package/components/input/select/public_api.d.ts +1 -0
  589. package/components/input/{default/select → select}/select.component.d.ts +1 -1
  590. package/components/input/slider/bundles/index.umd.js +44 -111
  591. package/components/input/slider/esm2022/slider.component.mjs +25 -95
  592. package/components/input/slider/esm2022/slider.props.mjs +1 -1
  593. package/components/input/slider/fesm2022/index.mjs +25 -93
  594. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  595. package/components/input/slider/package.json +0 -3
  596. package/components/input/slider/slider.component.d.ts +2 -2
  597. package/components/input/switch/.npmignore +2 -0
  598. package/components/input/switch/bundles/index.umd.js +204 -0
  599. package/components/input/switch/esm2022/index.mjs +5 -0
  600. package/components/input/switch/esm2022/public_api.mjs +2 -0
  601. package/components/input/switch/esm2022/switch.component.mjs +159 -0
  602. package/components/input/switch/esm2022/switch.props.mjs +28 -0
  603. package/components/input/switch/fesm2022/index.mjs +191 -0
  604. package/components/input/switch/fesm2022/index.mjs.map +1 -0
  605. package/components/input/switch/index.d.ts +5 -0
  606. package/components/input/switch/package.json +20 -0
  607. package/components/input/switch/public_api.d.ts +1 -0
  608. package/components/input/{default/switch → switch}/switch.component.d.ts +1 -1
  609. package/components/input/text/.npmignore +2 -0
  610. package/components/input/{default/text/base → text/base-input}/base-input.d.ts +1 -1
  611. package/components/input/text/bundles/index.umd.js +1070 -0
  612. package/components/input/text/esm2022/base-input/base-input.mjs +93 -0
  613. package/components/input/text/esm2022/index.mjs +5 -0
  614. package/components/input/text/esm2022/input-calendar/input-calendar.component.mjs +46 -0
  615. package/components/input/text/esm2022/input-calendar/input-calendar.props.mjs +30 -0
  616. package/components/input/text/esm2022/input-color/input-color.component.mjs +46 -0
  617. package/components/input/text/esm2022/input-color/input-color.props.mjs +27 -0
  618. package/components/input/text/esm2022/input-email/input-email.component.mjs +46 -0
  619. package/components/input/text/esm2022/input-email/input-email.props.mjs +29 -0
  620. package/components/input/text/esm2022/input-number/input-number.component.mjs +56 -0
  621. package/components/input/text/esm2022/input-number/input-number.props.mjs +32 -0
  622. package/components/input/text/esm2022/input-text/input-text.component.mjs +121 -0
  623. package/components/input/text/esm2022/input-text/input-text.props.mjs +46 -0
  624. package/components/input/text/esm2022/number-locale/number-locale.mjs +539 -0
  625. package/components/input/text/esm2022/public_api.mjs +8 -0
  626. package/components/input/text/fesm2022/index.mjs +1054 -0
  627. package/components/input/text/fesm2022/index.mjs.map +1 -0
  628. package/components/input/text/index.d.ts +5 -0
  629. package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.component.d.ts +1 -1
  630. package/components/input/{default/text/color → text/input-color}/input-color.component.d.ts +1 -1
  631. package/components/input/{default/text/email → text/input-email}/input-email.component.d.ts +1 -1
  632. package/components/input/{default/text/number → text/input-number}/input-number.component.d.ts +1 -1
  633. package/components/input/{default/text/text → text/input-text}/input-text.component.d.ts +1 -1
  634. package/components/input/{default/text/locale → text/number-locale}/number-locale.d.ts +1 -1
  635. package/components/input/text/package.json +20 -0
  636. package/components/input/text/public_api.d.ts +7 -0
  637. package/components/input/textarea/.npmignore +2 -0
  638. package/components/input/textarea/bundles/index.umd.js +101 -0
  639. package/components/input/textarea/esm2022/index.mjs +5 -0
  640. package/components/input/textarea/esm2022/public_api.mjs +2 -0
  641. package/components/input/textarea/esm2022/textarea.component.mjs +53 -0
  642. package/components/input/textarea/esm2022/textarea.props.mjs +30 -0
  643. package/components/input/textarea/fesm2022/index.mjs +87 -0
  644. package/components/input/textarea/fesm2022/index.mjs.map +1 -0
  645. package/components/input/textarea/index.d.ts +5 -0
  646. package/components/input/textarea/package.json +20 -0
  647. package/components/input/textarea/public_api.d.ts +1 -0
  648. package/components/input/{default/textarea → textarea}/textarea.component.d.ts +1 -1
  649. package/components/navigation/breadcrumb/bundles/index.umd.js +37 -79
  650. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +20 -64
  651. package/components/navigation/breadcrumb/fesm2022/index.mjs +21 -64
  652. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  653. package/components/navigation/breadcrumb/package.json +0 -3
  654. package/components/navigation/menu/bundles/index.umd.js +247 -442
  655. package/components/navigation/menu/esm2022/menu-adapator.component.mjs +14 -19
  656. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +13 -29
  657. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +43 -100
  658. package/components/navigation/menu/esm2022/menu.component.mjs +53 -104
  659. package/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +30 -37
  660. package/components/navigation/menu/esm2022/nav/nav.component.mjs +20 -88
  661. package/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +14 -14
  662. package/components/navigation/menu/fesm2022/index.mjs +174 -369
  663. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  664. package/components/navigation/menu/menu-dropdown/menu-dropdown.component.d.ts +2 -3
  665. package/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +3 -3
  666. package/components/navigation/menu/package.json +0 -3
  667. package/components/navigation/navbar/bundles/index.umd.js +32 -83
  668. package/components/navigation/navbar/esm2022/navbar.component.mjs +20 -72
  669. package/components/navigation/navbar/fesm2022/index.mjs +20 -71
  670. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  671. package/components/navigation/navbar/package.json +0 -3
  672. package/components/navigation/popover/bundles/index.umd.js +31 -59
  673. package/components/navigation/popover/esm2022/popover.component.mjs +29 -58
  674. package/components/navigation/popover/fesm2022/index.mjs +31 -59
  675. package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  676. package/components/navigation/popover/package.json +0 -3
  677. package/components/page/default/bundles/index.umd.js +109 -123
  678. package/components/page/default/esm2022/content/content.component.mjs +16 -25
  679. package/components/page/default/esm2022/layout.directive.mjs +21 -21
  680. package/components/page/default/esm2022/page-content/page-content.component.mjs +16 -23
  681. package/components/page/default/esm2022/page.directive.mjs +21 -21
  682. package/components/page/default/esm2022/router-outlet.directive.mjs +20 -20
  683. package/components/page/default/esm2022/spa-page.directive.mjs +21 -21
  684. package/components/page/default/fesm2022/index.mjs +111 -125
  685. package/components/page/default/fesm2022/index.mjs.map +1 -1
  686. package/components/page/default/package.json +0 -3
  687. package/components/page/footer/bundles/index.umd.js +20 -20
  688. package/components/page/footer/esm2022/footer.directive.mjs +21 -21
  689. package/components/page/footer/fesm2022/index.mjs +21 -21
  690. package/components/page/footer/fesm2022/index.mjs.map +1 -1
  691. package/components/page/footer/package.json +0 -3
  692. package/components/page/header/bundles/index.umd.js +19 -26
  693. package/components/page/header/esm2022/header.component.mjs +16 -24
  694. package/components/page/header/fesm2022/index.mjs +17 -24
  695. package/components/page/header/fesm2022/index.mjs.map +1 -1
  696. package/components/page/header/package.json +0 -3
  697. package/components/page/left-panel/bundles/index.umd.js +30 -30
  698. package/components/page/left-panel/esm2022/left-panel.directive.mjs +31 -31
  699. package/components/page/left-panel/fesm2022/index.mjs +31 -31
  700. package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  701. package/components/page/left-panel/package.json +0 -3
  702. package/components/page/right-panel/bundles/index.umd.js +23 -23
  703. package/components/page/right-panel/esm2022/right-panel.directive.mjs +24 -24
  704. package/components/page/right-panel/fesm2022/index.mjs +24 -24
  705. package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  706. package/components/page/right-panel/package.json +0 -3
  707. package/components/page/top-nav/bundles/index.umd.js +20 -20
  708. package/components/page/top-nav/esm2022/top-nav.directive.mjs +21 -21
  709. package/components/page/top-nav/fesm2022/index.mjs +21 -21
  710. package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  711. package/components/page/top-nav/package.json +0 -3
  712. package/components/prefab/bundles/index.umd.js +41 -41
  713. package/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +20 -20
  714. package/components/prefab/esm2022/prefab.directive.mjs +23 -23
  715. package/components/prefab/fesm2022/index.mjs +42 -42
  716. package/components/prefab/fesm2022/index.mjs.map +1 -1
  717. package/components/prefab/package.json +0 -3
  718. package/core/bundles/index.umd.js +80 -61
  719. package/core/esm2022/services/constant.service.mjs +7 -7
  720. package/core/esm2022/services/custom-icons-loader.service.mjs +7 -7
  721. package/core/esm2022/services/field-type.service.mjs +7 -7
  722. package/core/esm2022/services/field-widget.service.mjs +7 -7
  723. package/core/esm2022/services/pagination.service.mjs +7 -7
  724. package/core/esm2022/services/script-loader.service.mjs +7 -7
  725. package/core/esm2022/services/state-persistence.service.mjs +7 -7
  726. package/core/esm2022/services/user-custom-pipe-manager.service.mjs +7 -7
  727. package/core/esm2022/services/utils.service.mjs +7 -7
  728. package/core/esm2022/services/viewport.service.mjs +7 -7
  729. package/core/esm2022/types/types.mjs +1 -1
  730. package/core/esm2022/utils/build-utils.mjs +21 -2
  731. package/core/fesm2022/index.mjs +80 -61
  732. package/core/fesm2022/index.mjs.map +1 -1
  733. package/core/package.json +3 -6
  734. package/core/types/types.d.ts +2 -1
  735. package/http/bundles/index.umd.js +8 -8
  736. package/http/esm2022/http.service.mjs +9 -9
  737. package/http/fesm2022/index.mjs +8 -8
  738. package/http/fesm2022/index.mjs.map +1 -1
  739. package/http/package.json +2 -5
  740. package/locales/moment/ar-dz.js +8 -8
  741. package/locales/moment/ar-ly.js +8 -8
  742. package/locales/moment/ar-ps.js +123 -0
  743. package/locales/moment/ar.js +8 -8
  744. package/locales/moment/be.js +2 -2
  745. package/locales/moment/bs.js +14 -4
  746. package/locales/moment/ca.js +6 -6
  747. package/locales/moment/cs.js +5 -4
  748. package/locales/moment/cv.js +2 -2
  749. package/locales/moment/en-au.js +6 -6
  750. package/locales/moment/en-ca.js +6 -6
  751. package/locales/moment/en-gb.js +6 -6
  752. package/locales/moment/en-ie.js +6 -6
  753. package/locales/moment/en-il.js +6 -6
  754. package/locales/moment/en-in.js +6 -6
  755. package/locales/moment/en-nz.js +6 -6
  756. package/locales/moment/en-sg.js +6 -6
  757. package/locales/moment/it.js +4 -4
  758. package/locales/moment/ku-kmr.js +125 -0
  759. package/locales/moment/lt.js +2 -2
  760. package/locales/moment/me.js +2 -2
  761. package/locales/moment/nb.js +4 -4
  762. package/locales/moment/nl-be.js +1 -1
  763. package/locales/moment/nl.js +1 -1
  764. package/locales/moment/oc-lnc.js +6 -6
  765. package/locales/moment/ru.js +2 -2
  766. package/locales/moment/sv.js +6 -6
  767. package/locales/moment/tet.js +6 -6
  768. package/locales/moment/tlh.js +8 -8
  769. package/locales/moment/tzl.js +2 -2
  770. package/locales/moment/uk.js +4 -4
  771. package/locales/moment/x-pseudo.js +6 -6
  772. package/locales/moment-timezone/moment-timezone-with-data.js +2 -2
  773. package/npm-shrinkwrap.json +2 -2
  774. package/oAuth/bundles/index.umd.js +5 -5
  775. package/oAuth/esm2022/oAuth.service.mjs +6 -6
  776. package/oAuth/fesm2022/index.mjs +5 -5
  777. package/oAuth/fesm2022/index.mjs.map +1 -1
  778. package/oAuth/package.json +2 -5
  779. package/package-lock.json +2 -2
  780. package/package.json +1 -1
  781. package/runtime/base/bundles/index.umd.js +3162 -3100
  782. package/runtime/base/components/empty-component/empty-page.component.d.ts +1 -0
  783. package/runtime/base/esm2022/components/app-component/app.component.mjs +14 -95
  784. package/runtime/base/esm2022/components/app-spinner.component.mjs +34 -45
  785. package/runtime/base/esm2022/components/base-custom-widget.component.mjs +8 -7
  786. package/runtime/base/esm2022/components/base-layout.component.mjs +14 -21
  787. package/runtime/base/esm2022/components/base-page.component.mjs +12 -19
  788. package/runtime/base/esm2022/components/base-partial.component.mjs +9 -14
  789. package/runtime/base/esm2022/components/base-prefab.component.mjs +9 -14
  790. package/runtime/base/esm2022/components/base-spa-page.component.mjs +12 -19
  791. package/runtime/base/esm2022/components/custom-toaster.component.mjs +30 -52
  792. package/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +33 -15
  793. package/runtime/base/esm2022/components/prefab-preview.component.mjs +19 -26
  794. package/runtime/base/esm2022/directives/accessroles.directive.mjs +17 -17
  795. package/runtime/base/esm2022/directives/prefab.directive.mjs +15 -15
  796. package/runtime/base/esm2022/guards/auth.guard.mjs +6 -6
  797. package/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +11 -11
  798. package/runtime/base/esm2022/guards/page-not-found.guard.mjs +6 -6
  799. package/runtime/base/esm2022/guards/role.guard.mjs +6 -6
  800. package/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +12 -12
  801. package/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +14 -14
  802. package/runtime/base/esm2022/public_api.mjs +5 -2
  803. package/runtime/base/esm2022/resolves/app-before-load.resolve.mjs +22 -0
  804. package/runtime/base/esm2022/resolves/app-extension.resolve.mjs +6 -6
  805. package/runtime/base/esm2022/resolves/app-js.resolve.mjs +6 -6
  806. package/runtime/base/esm2022/resolves/app-variables.resolve.mjs +9 -9
  807. package/runtime/base/esm2022/resolves/i18n.resolve.mjs +6 -6
  808. package/runtime/base/esm2022/resolves/metadata.resolve.mjs +9 -9
  809. package/runtime/base/esm2022/resolves/security-config.resolve.mjs +9 -9
  810. package/runtime/base/esm2022/runtime-base.module.mjs +457 -316
  811. package/runtime/base/esm2022/services/app-defaults.service.mjs +6 -6
  812. package/runtime/base/esm2022/services/app.manager.service.mjs +25 -9
  813. package/runtime/base/esm2022/services/app.service.mjs +39 -18
  814. package/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +6 -6
  815. package/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -6
  816. package/runtime/base/esm2022/services/i18n.service.mjs +37 -34
  817. package/runtime/base/esm2022/services/navigation.service.mjs +6 -6
  818. package/runtime/base/esm2022/services/pipe-provider.service.mjs +13 -13
  819. package/runtime/base/esm2022/services/pipe.service.mjs +10 -8
  820. package/runtime/base/esm2022/services/prefab-manager.service.mjs +6 -6
  821. package/runtime/base/esm2022/services/spinner.service.mjs +6 -6
  822. package/runtime/base/esm2022/services/toaster.service.mjs +6 -6
  823. package/runtime/base/esm2022/util/fragment-monitor.mjs +6 -6
  824. package/runtime/base/esm2022/util/utils.mjs +15 -1
  825. package/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +1 -1
  826. package/runtime/base/fesm2022/index.mjs +3145 -3071
  827. package/runtime/base/fesm2022/index.mjs.map +1 -1
  828. package/runtime/base/package.json +2 -5
  829. package/runtime/base/public_api.d.ts +4 -1
  830. package/runtime/base/resolves/app-before-load.resolve.d.ts +11 -0
  831. package/runtime/base/runtime-base.module.d.ts +96 -59
  832. package/runtime/base/services/app.manager.service.d.ts +2 -1
  833. package/runtime/base/services/app.service.d.ts +3 -2
  834. package/runtime/base/services/i18n.service.d.ts +2 -1
  835. package/runtime/base/util/utils.d.ts +2 -1
  836. package/runtime/dynamic/app/app.config.d.ts +1 -1
  837. package/runtime/dynamic/app/services/app-variables-provider.service.d.ts +3 -1
  838. package/runtime/dynamic/bundles/index.umd.js +145 -114
  839. package/runtime/dynamic/esm2022/app/app.config.mjs +11 -10
  840. package/runtime/dynamic/esm2022/app/app.module.mjs +35 -5
  841. package/runtime/dynamic/esm2022/app/app.routes.mjs +2 -11
  842. package/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +11 -16
  843. package/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +9 -9
  844. package/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +9 -9
  845. package/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +6 -6
  846. package/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +15 -11
  847. package/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +57 -8
  848. package/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +6 -6
  849. package/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +6 -6
  850. package/runtime/dynamic/fesm2022/index.mjs +143 -88
  851. package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  852. package/runtime/dynamic/package.json +2 -5
  853. package/scripts/datatable/datatable.js +26 -5
  854. package/scripts/jquery-ui/ui/widgets/droppable.js +3 -3
  855. package/scripts/jquery-ui/ui/widgets/resizable.js +72 -19
  856. package/scripts/jquery-ui/ui/widgets/sortable.js +9 -16
  857. package/security/bundles/index.umd.js +5 -5
  858. package/security/esm2022/security.service.mjs +6 -6
  859. package/security/fesm2022/index.mjs +5 -5
  860. package/security/fesm2022/index.mjs.map +1 -1
  861. package/security/package.json +2 -5
  862. package/swipey/fesm2022/index.mjs.map +1 -1
  863. package/swipey/package.json +2 -5
  864. package/transpiler/build.d.ts +1 -1
  865. package/transpiler/bundles/index.umd.js +94 -56
  866. package/transpiler/esm2022/build.mjs +5 -2
  867. package/transpiler/esm2022/imports.mjs +92 -57
  868. package/transpiler/fesm2022/index.mjs +94 -56
  869. package/transpiler/fesm2022/index.mjs.map +1 -1
  870. package/transpiler/package.json +3 -6
  871. package/variables/bundles/index.umd.js +20 -10
  872. package/variables/constants/variables.constants.d.ts +9 -0
  873. package/variables/esm2022/constants/variables.constants.mjs +10 -1
  874. package/variables/esm2022/service/metadata-service/metadata.service.mjs +6 -6
  875. package/variables/esm2022/service/variables.service.mjs +6 -6
  876. package/variables/fesm2022/index.mjs +20 -11
  877. package/variables/fesm2022/index.mjs.map +1 -1
  878. package/variables/package.json +2 -5
  879. package/variables/service/variables.service.d.ts +1 -1
  880. package/build-task/esm2022/basic/default/anchor/anchor.build.mjs +0 -15
  881. package/build-task/esm2022/basic/default/audio/audio.build.mjs +0 -10
  882. package/build-task/esm2022/basic/default/html/html.build.mjs +0 -15
  883. package/build-task/esm2022/basic/default/icon/icon.build.mjs +0 -10
  884. package/build-task/esm2022/basic/default/iframe/iframe.build.mjs +0 -10
  885. package/build-task/esm2022/basic/default/label/label.build.mjs +0 -25
  886. package/build-task/esm2022/basic/default/picture/picture.build.mjs +0 -14
  887. package/build-task/esm2022/basic/default/spinner/spinner.build.mjs +0 -15
  888. package/build-task/esm2022/basic/default/video/video.build.mjs +0 -10
  889. package/components/base/components.module.d.ts +0 -25
  890. package/components/base/esm2022/components.module.mjs +0 -152
  891. package/components/basic/default/bundles/index.umd.js +0 -1036
  892. package/components/basic/default/esm2022/anchor/anchor.component.mjs +0 -198
  893. package/components/basic/default/esm2022/anchor/anchor.props.mjs +0 -27
  894. package/components/basic/default/esm2022/audio/audio.component.mjs +0 -59
  895. package/components/basic/default/esm2022/audio/audio.props.mjs +0 -19
  896. package/components/basic/default/esm2022/html/html.directive.mjs +0 -76
  897. package/components/basic/default/esm2022/html/html.props.mjs +0 -12
  898. package/components/basic/default/esm2022/icon/icon.component.mjs +0 -70
  899. package/components/basic/default/esm2022/icon/icon.props.mjs +0 -19
  900. package/components/basic/default/esm2022/iframe/iframe.component.mjs +0 -85
  901. package/components/basic/default/esm2022/iframe/iframe.props.mjs +0 -15
  902. package/components/basic/default/esm2022/label/label.directive.mjs +0 -71
  903. package/components/basic/default/esm2022/label/label.props.mjs +0 -17
  904. package/components/basic/default/esm2022/picture/picture.directive.mjs +0 -95
  905. package/components/basic/default/esm2022/picture/picture.props.mjs +0 -23
  906. package/components/basic/default/esm2022/public_api.mjs +0 -10
  907. package/components/basic/default/esm2022/spinner/spinner.component.mjs +0 -130
  908. package/components/basic/default/esm2022/spinner/spinner.props.mjs +0 -20
  909. package/components/basic/default/esm2022/video/video.component.mjs +0 -113
  910. package/components/basic/default/esm2022/video/video.props.mjs +0 -24
  911. package/components/basic/default/fesm2022/index.mjs +0 -1012
  912. package/components/basic/default/fesm2022/index.mjs.map +0 -1
  913. package/components/basic/default/public_api.d.ts +0 -9
  914. package/components/basic/progress/bundles/index.umd.js +0 -361
  915. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +0 -154
  916. package/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +0 -132
  917. package/components/basic/progress/esm2022/public_api.mjs +0 -3
  918. package/components/basic/progress/esm2022/utils.mjs +0 -25
  919. package/components/basic/progress/fesm2022/index.mjs +0 -344
  920. package/components/basic/progress/fesm2022/index.mjs.map +0 -1
  921. package/components/basic/progress/public_api.d.ts +0 -2
  922. package/components/input/default/bundles/index.umd.js +0 -3559
  923. package/components/input/default/esm2022/base-form-custom.component.mjs +0 -94
  924. package/components/input/default/esm2022/base-form.component.mjs +0 -110
  925. package/components/input/default/esm2022/button/button.component.mjs +0 -106
  926. package/components/input/default/esm2022/button/button.props.mjs +0 -26
  927. package/components/input/default/esm2022/button-group/button-group.directive.mjs +0 -51
  928. package/components/input/default/esm2022/button-group/button-group.props.mjs +0 -10
  929. package/components/input/default/esm2022/caption-position.directive.mjs +0 -172
  930. package/components/input/default/esm2022/checkbox/checkbox.component.mjs +0 -179
  931. package/components/input/default/esm2022/checkbox/checkbox.props.mjs +0 -27
  932. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +0 -268
  933. package/components/input/default/esm2022/checkboxset/checkboxset.props.mjs +0 -35
  934. package/components/input/default/esm2022/composite/composite.directive.mjs +0 -84
  935. package/components/input/default/esm2022/composite/composite.props.mjs +0 -10
  936. package/components/input/default/esm2022/dataset-aware-form.component.mjs +0 -307
  937. package/components/input/default/esm2022/number/number.component.mjs +0 -68
  938. package/components/input/default/esm2022/number/number.props.mjs +0 -35
  939. package/components/input/default/esm2022/public_api.mjs +0 -21
  940. package/components/input/default/esm2022/radioset/radioset.component.mjs +0 -251
  941. package/components/input/default/esm2022/radioset/radioset.props.mjs +0 -35
  942. package/components/input/default/esm2022/select/select.component.mjs +0 -230
  943. package/components/input/default/esm2022/select/select.props.mjs +0 -36
  944. package/components/input/default/esm2022/switch/switch.component.mjs +0 -227
  945. package/components/input/default/esm2022/switch/switch.props.mjs +0 -28
  946. package/components/input/default/esm2022/text/base/base-input.mjs +0 -93
  947. package/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +0 -69
  948. package/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +0 -30
  949. package/components/input/default/esm2022/text/color/input-color.component.mjs +0 -69
  950. package/components/input/default/esm2022/text/color/input-color.props.mjs +0 -27
  951. package/components/input/default/esm2022/text/email/input-email.component.mjs +0 -68
  952. package/components/input/default/esm2022/text/email/input-email.props.mjs +0 -29
  953. package/components/input/default/esm2022/text/locale/number-locale.mjs +0 -539
  954. package/components/input/default/esm2022/text/number/input-number.component.mjs +0 -79
  955. package/components/input/default/esm2022/text/number/input-number.props.mjs +0 -32
  956. package/components/input/default/esm2022/text/text/input-text.component.mjs +0 -145
  957. package/components/input/default/esm2022/text/text/input-text.props.mjs +0 -46
  958. package/components/input/default/esm2022/textarea/textarea.component.mjs +0 -85
  959. package/components/input/default/esm2022/textarea/textarea.props.mjs +0 -30
  960. package/components/input/default/fesm2022/index.mjs +0 -3529
  961. package/components/input/default/fesm2022/index.mjs.map +0 -1
  962. package/components/input/default/public_api.d.ts +0 -20
  963. package/components/input/epoch/bundles/index.umd.js +0 -3292
  964. package/components/input/epoch/esm2022/date/date.component.mjs +0 -376
  965. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +0 -473
  966. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +0 -563
  967. package/components/input/epoch/esm2022/picker/picker.component.mjs +0 -184
  968. package/components/input/epoch/esm2022/public_api.mjs +0 -6
  969. package/components/input/epoch/esm2022/time/time.component.mjs +0 -432
  970. package/components/input/epoch/fesm2022/index.mjs +0 -3280
  971. package/components/input/epoch/fesm2022/index.mjs.map +0 -1
  972. package/components/input/epoch/public_api.d.ts +0 -5
  973. /package/build-task/basic/{default/anchor → anchor}/anchor.build.d.ts +0 -0
  974. /package/build-task/basic/{default/audio → audio}/audio.build.d.ts +0 -0
  975. /package/build-task/basic/{default/html → html}/html.build.d.ts +0 -0
  976. /package/build-task/basic/{default/icon → icon}/icon.build.d.ts +0 -0
  977. /package/build-task/basic/{default/iframe → iframe}/iframe.build.d.ts +0 -0
  978. /package/build-task/basic/{default/label → label}/label.build.d.ts +0 -0
  979. /package/build-task/basic/{default/picture → picture}/picture.build.d.ts +0 -0
  980. /package/build-task/basic/{default/spinner → spinner}/spinner.build.d.ts +0 -0
  981. /package/build-task/basic/{default/video → video}/video.build.d.ts +0 -0
  982. /package/components/basic/{default → anchor}/.npmignore +0 -0
  983. /package/components/basic/{default/anchor → anchor}/anchor.component.d.ts +0 -0
  984. /package/components/basic/{default/anchor → anchor}/anchor.props.d.ts +0 -0
  985. /package/components/basic/{progress → audio}/.npmignore +0 -0
  986. /package/components/basic/{default/audio → audio}/audio.component.d.ts +0 -0
  987. /package/components/basic/{default/audio → audio}/audio.props.d.ts +0 -0
  988. /package/components/{input/default → basic/html}/.npmignore +0 -0
  989. /package/components/basic/{default/html → html}/html.directive.d.ts +0 -0
  990. /package/components/basic/{default/html → html}/html.props.d.ts +0 -0
  991. /package/components/{input/epoch → basic/icon}/.npmignore +0 -0
  992. /package/components/basic/{default/icon → icon}/icon.component.d.ts +0 -0
  993. /package/components/basic/{default/icon → icon}/icon.props.d.ts +0 -0
  994. /package/components/basic/{default/iframe → iframe}/iframe.component.d.ts +0 -0
  995. /package/components/basic/{default/iframe → iframe}/iframe.props.d.ts +0 -0
  996. /package/components/basic/{default/label → label}/label.props.d.ts +0 -0
  997. /package/components/basic/{default/picture → picture}/picture.directive.d.ts +0 -0
  998. /package/components/basic/{default/picture → picture}/picture.props.d.ts +0 -0
  999. /package/components/basic/progress/{utils.d.ts → progress-utils/progress-utils.d.ts} +0 -0
  1000. /package/components/basic/{default/spinner → spinner}/spinner.component.d.ts +0 -0
  1001. /package/components/basic/{default/spinner → spinner}/spinner.props.d.ts +0 -0
  1002. /package/components/basic/{default/video → video}/video.component.d.ts +0 -0
  1003. /package/components/basic/{default/video → video}/video.props.d.ts +0 -0
  1004. /package/components/input/{default → base-form}/base-form.component.d.ts +0 -0
  1005. /package/components/input/{default/button → button}/button.component.d.ts +0 -0
  1006. /package/components/input/{default/button → button}/button.props.d.ts +0 -0
  1007. /package/components/input/{default/button-group → button-group}/button-group.directive.d.ts +0 -0
  1008. /package/components/input/{default/button-group → button-group}/button-group.props.d.ts +0 -0
  1009. /package/components/input/{default → caption-position}/caption-position.directive.d.ts +0 -0
  1010. /package/components/input/{default/checkbox → checkbox}/checkbox.props.d.ts +0 -0
  1011. /package/components/input/{default/checkboxset → checkboxset}/checkboxset.props.d.ts +0 -0
  1012. /package/components/input/{default/composite → composite}/composite.directive.d.ts +0 -0
  1013. /package/components/input/{default/composite → composite}/composite.props.d.ts +0 -0
  1014. /package/components/input/epoch/{date-time → date-time-picker}/date-time-picker.component.d.ts +0 -0
  1015. /package/components/input/{default/number → number}/number.props.d.ts +0 -0
  1016. /package/components/input/{default/radioset → radioset}/radioset.props.d.ts +0 -0
  1017. /package/components/input/{default/select → select}/select.props.d.ts +0 -0
  1018. /package/components/input/{default/switch → switch}/switch.props.d.ts +0 -0
  1019. /package/components/input/{default/text/calendar → text/input-calendar}/input-calendar.props.d.ts +0 -0
  1020. /package/components/input/{default/text/color → text/input-color}/input-color.props.d.ts +0 -0
  1021. /package/components/input/{default/text/email → text/input-email}/input-email.props.d.ts +0 -0
  1022. /package/components/input/{default/text/number → text/input-number}/input-number.props.d.ts +0 -0
  1023. /package/components/input/{default/text/text → text/input-text}/input-text.props.d.ts +0 -0
  1024. /package/components/input/{default/textarea → textarea}/textarea.props.d.ts +0 -0
@@ -55,26 +55,26 @@ export class FormActionDirective extends BaseComponent {
55
55
  break;
56
56
  }
57
57
  }
58
- static { this.ɵfac = function FormActionDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormActionDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.FormComponent, 8), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
59
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FormActionDirective, selectors: [["", "wmFormAction", ""]], standalone: true, features: [i0.ɵɵProvidersFeature([
60
- provideAsWidgetRef(FormActionDirective)
61
- ]), i0.ɵɵInheritDefinitionFeature] }); }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormActionDirective, deps: [{ token: i0.Injector }, { token: i1.FormComponent, optional: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
59
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FormActionDirective, isStandalone: true, selector: "[wmFormAction]", providers: [
60
+ provideAsWidgetRef(FormActionDirective)
61
+ ], usesInheritance: true, ngImport: i0 }); }
62
62
  }
63
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormActionDirective, [{
64
- type: Directive,
65
- args: [{
66
- standalone: true,
67
- selector: '[wmFormAction]',
68
- providers: [
69
- provideAsWidgetRef(FormActionDirective)
70
- ]
71
- }]
72
- }], () => [{ type: i0.Injector }, { type: i1.FormComponent, decorators: [{
73
- type: Optional
74
- }] }, { type: undefined, decorators: [{
75
- type: Inject,
76
- args: ['EXPLICIT_CONTEXT']
77
- }, {
78
- type: Optional
79
- }] }], null); })();
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvZm9ybS1hY3Rpb24vZm9ybS1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBRXRDLE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztBQVNwRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTthQUMzQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQXdCekMsWUFBWSxHQUFhLEVBQXFCLElBQW1CLEVBQTBDLGVBQW9CO1FBQzNILEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBREQsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUVqRSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxRixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQy9CLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDMUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzNDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUNELFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQy9DLE1BQU07WUFDVixLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3BDO2dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixNQUFNO1FBQ1YsQ0FBQztJQUNMLENBQUM7b0hBekVRLG1CQUFtQixxR0F5QitDLGtCQUFrQjtvRUF6QnBGLG1CQUFtQiw0RkFKakI7Z0JBQ1Asa0JBQWtCLENBQUMsbUJBQW1CLENBQUM7YUFDMUM7O2lGQUVRLG1CQUFtQjtjQVAvQixTQUFTO2VBQUM7Z0JBQ1QsVUFBVSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsU0FBUyxFQUFFO29CQUNQLGtCQUFrQixxQkFBcUI7aUJBQzFDO2FBQ0o7O3NCQTBCK0IsUUFBUTs7c0JBQWdDLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBwcm92aWRlQXNXaWRnZXRSZWYgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vZm9ybS1hY3Rpb24ucHJvcHMnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7aXNVbmRlZmluZWR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tZm9ybS1hY3Rpb24nLCBob3N0Q2xhc3M6ICcnfTtcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbd21Gb3JtQWN0aW9uXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihGb3JtQWN0aW9uRGlyZWN0aXZlKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9ybUFjdGlvbkRpcmVjdGl2ZSBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBhY2Nlc3Nyb2xlcztcbiAgICBhY3Rpb247XG4gICAgYmluZGluZztcbiAgICBjbGFzcztcbiAgICBkaXNhYmxlZDtcbiAgICBkaXNwbGF5TmFtZTtcbiAgICBpY29uY2xhc3M7XG4gICAgaWNvbm5hbWU7XG4gICAga2V5O1xuICAgIHBvc2l0aW9uO1xuICAgIHNob3J0Y3V0a2V5O1xuICAgIHNob3c7XG4gICAgdGFiaW5kZXg7XG4gICAgdGl0bGU7XG4gICAgdHlwZTtcbiAgICB1cGRhdGVNb2RlO1xuICAgIGJ1dHRvbkRlZjtcbiAgICBoeXBlcmxpbms7XG4gICAgdGFyZ2V0O1xuXG4gICAgcHJpdmF0ZSBfcHJvcHNJbml0aWFsaXplZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtOiBGb3JtQ29tcG9uZW50LCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIHBvcHVsYXRlQWN0aW9uKCkge1xuICAgICAgICB0aGlzLmJ1dHRvbkRlZiA9IHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXkgfHwgdGhpcy5iaW5kaW5nLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IHRoaXNbJ2Rpc3BsYXktbmFtZSddLFxuICAgICAgICAgICAgc2hvdzogdGhpcy5zaG93LFxuICAgICAgICAgICAgY2xhc3M6IHRoaXMuY2xhc3MgPyB0aGlzLmNsYXNzIDogKHRoaXNbJ3dpZGdldC10eXBlJ10gPT09ICdidXR0b24nID8gJ2J0bi1zZWNvbmRhcnknIDogJycpLFxuICAgICAgICAgICAgaWNvbmNsYXNzOiB0aGlzLmljb25jbGFzcyB8fCAnJyxcbiAgICAgICAgICAgIHRpdGxlOiBpc1VuZGVmaW5lZCh0aGlzLnRpdGxlKSA/ICh0aGlzWydkaXNwbGF5LW5hbWUnXSB8fCAnJykgOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgYWN0aW9uOiB0aGlzLmFjdGlvbixcbiAgICAgICAgICAgIGFjY2Vzc3JvbGVzOiB0aGlzLmFjY2Vzc3JvbGVzLFxuICAgICAgICAgICAgc2hvcnRjdXRrZXk6IHRoaXMuc2hvcnRjdXRrZXksXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZHx8dGhpcy5mb3JtLnJlYWRvbmx5LFxuICAgICAgICAgICAgdGFiaW5kZXg6IHRoaXMudGFiaW5kZXgsXG4gICAgICAgICAgICBpY29ubmFtZTogdGhpcy5pY29ubmFtZSxcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICAgIHVwZGF0ZU1vZGU6IHRoaXNbJ3VwZGF0ZS1tb2RlJ10sXG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHdpZGdldFR5cGU6IHRoaXNbJ3dpZGdldC10eXBlJ10sXG4gICAgICAgICAgICBoeXBlcmxpbms6IHRoaXMuaHlwZXJsaW5rLFxuICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLnRhcmdldFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9wcm9wc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZUFjdGlvbigpO1xuICAgICAgICB0aGlzLmZvcm0ucmVnaXN0ZXJBY3Rpb25zKHRoaXMuYnV0dG9uRGVmKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KSB7XG4gICAgICAgIGlmICghdGhpcy5fcHJvcHNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25EZWZba2V5XSA9IG52IHx8IHRoaXMuZm9ybS5yZWFkb25seTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXktbmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25EZWYuZGlzcGxheU5hbWUgPSBudjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25EZWZba2V5XSA9IG52O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormActionDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ standalone: true,
67
+ selector: '[wmFormAction]',
68
+ providers: [
69
+ provideAsWidgetRef(FormActionDirective)
70
+ ]
71
+ }]
72
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FormComponent, decorators: [{
73
+ type: Optional
74
+ }] }, { type: undefined, decorators: [{
75
+ type: Inject,
76
+ args: ['EXPLICIT_CONTEXT']
77
+ }, {
78
+ type: Optional
79
+ }] }] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hY3Rpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2RhdGEvZm9ybS9zcmMvZm9ybS1hY3Rpb24vZm9ybS1hY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7O0FBRXRDLE1BQU0sYUFBYSxHQUFHLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztBQVNwRSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTthQUMzQyxvQkFBZSxHQUFHLGFBQWEsRUFBRSxBQUFsQixDQUFtQjtJQXdCekMsWUFBWSxHQUFhLEVBQXFCLElBQW1CLEVBQTBDLGVBQW9CO1FBQzNILEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBREQsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUVqRSxDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksQ0FBQyxTQUFTLEdBQUc7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxRixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQy9CLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDMUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzNDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1gsQ0FBQztRQUNELFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQy9DLE1BQU07WUFDVixLQUFLLGNBQWM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQ3BDO2dCQUNJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUM3QixNQUFNO1FBQ1YsQ0FBQztJQUNMLENBQUM7K0dBekVRLG1CQUFtQix1RkF5QitDLGtCQUFrQjttR0F6QnBGLG1CQUFtQiw2REFKakI7WUFDUCxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztTQUMxQzs7NEZBRVEsbUJBQW1CO2tCQVAvQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNkLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFNBQVMsRUFBRTt3QkFDUCxrQkFBa0IscUJBQXFCO3FCQUMxQztpQkFDSjs7MEJBMEIrQixRQUFROzswQkFBZ0MsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3RvciwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudCwgcHJvdmlkZUFzV2lkZ2V0UmVmfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL2Zvcm0tYWN0aW9uLnByb3BzJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtpc1VuZGVmaW5lZH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS1mb3JtLWFjdGlvbicsIGhvc3RDbGFzczogJyd9O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bUZvcm1BY3Rpb25dJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKEZvcm1BY3Rpb25EaXJlY3RpdmUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQWN0aW9uRGlyZWN0aXZlIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIGFjY2Vzc3JvbGVzO1xuICAgIGFjdGlvbjtcbiAgICBiaW5kaW5nO1xuICAgIGNsYXNzO1xuICAgIGRpc2FibGVkO1xuICAgIGRpc3BsYXlOYW1lO1xuICAgIGljb25jbGFzcztcbiAgICBpY29ubmFtZTtcbiAgICBrZXk7XG4gICAgcG9zaXRpb247XG4gICAgc2hvcnRjdXRrZXk7XG4gICAgc2hvdztcbiAgICB0YWJpbmRleDtcbiAgICB0aXRsZTtcbiAgICB0eXBlO1xuICAgIHVwZGF0ZU1vZGU7XG4gICAgYnV0dG9uRGVmO1xuICAgIGh5cGVybGluaztcbiAgICB0YXJnZXQ7XG5cbiAgICBwcml2YXRlIF9wcm9wc0luaXRpYWxpemVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQE9wdGlvbmFsKCkgcHVibGljIGZvcm06IEZvcm1Db21wb25lbnQsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgfVxuXG4gICAgcG9wdWxhdGVBY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuYnV0dG9uRGVmID0ge1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSB8fCB0aGlzLmJpbmRpbmcsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogdGhpc1snZGlzcGxheS1uYW1lJ10sXG4gICAgICAgICAgICBzaG93OiB0aGlzLnNob3csXG4gICAgICAgICAgICBjbGFzczogdGhpcy5jbGFzcyA/IHRoaXMuY2xhc3MgOiAodGhpc1snd2lkZ2V0LXR5cGUnXSA9PT0gJ2J1dHRvbicgPyAnYnRuLXNlY29uZGFyeScgOiAnJyksXG4gICAgICAgICAgICBpY29uY2xhc3M6IHRoaXMuaWNvbmNsYXNzIHx8ICcnLFxuICAgICAgICAgICAgdGl0bGU6IGlzVW5kZWZpbmVkKHRoaXMudGl0bGUpID8gKHRoaXNbJ2Rpc3BsYXktbmFtZSddIHx8ICcnKSA6IHRoaXMudGl0bGUsXG4gICAgICAgICAgICBhY3Rpb246IHRoaXMuYWN0aW9uLFxuICAgICAgICAgICAgYWNjZXNzcm9sZXM6IHRoaXMuYWNjZXNzcm9sZXMsXG4gICAgICAgICAgICBzaG9ydGN1dGtleTogdGhpcy5zaG9ydGN1dGtleSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkfHx0aGlzLmZvcm0ucmVhZG9ubHksXG4gICAgICAgICAgICB0YWJpbmRleDogdGhpcy50YWJpbmRleCxcbiAgICAgICAgICAgIGljb25uYW1lOiB0aGlzLmljb25uYW1lLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgdXBkYXRlTW9kZTogdGhpc1sndXBkYXRlLW1vZGUnXSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgd2lkZ2V0VHlwZTogdGhpc1snd2lkZ2V0LXR5cGUnXSxcbiAgICAgICAgICAgIGh5cGVybGluazogdGhpcy5oeXBlcmxpbmssXG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMudGFyZ2V0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX3Byb3BzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnBvcHVsYXRlQWN0aW9uKCk7XG4gICAgICAgIHRoaXMuZm9ybS5yZWdpc3RlckFjdGlvbnModGhpcy5idXR0b25EZWYpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wcm9wc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkRlZltrZXldID0gbnYgfHwgdGhpcy5mb3JtLnJlYWRvbmx5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGlzcGxheS1uYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkRlZi5kaXNwbGF5TmFtZSA9IG52O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkRlZltrZXldID0gbnY7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -12,8 +12,6 @@ import * as i1 from "../form.component";
12
12
  import * as i2 from "@angular/forms";
13
13
  import * as i3 from "@wm/core";
14
14
  import * as i4 from "@wm/components/data/list";
15
- const _c0 = ["formWidget"];
16
- const _c1 = ["formWidgetMax"];
17
15
  // Custom validator to show validation error, if setValidationMessage method is used
18
16
  const customValidatorFn = () => {
19
17
  return { custom: true };
@@ -497,93 +495,84 @@ export class FormFieldDirective extends StylableComponent {
497
495
  }
498
496
  }
499
497
  }
500
- static { this.ɵfac = function FormFieldDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormFieldDirective)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.FormComponent), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.Viewport), i0.ɵɵdirectiveInject(i3.App), i0.ɵɵdirectiveInject(i4.ListComponent, 8), i0.ɵɵinjectAttribute('chipclass.bind'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵinjectAttribute('displayexpression.bind'), i0.ɵɵinjectAttribute('displaylabel.bind'), i0.ɵɵinjectAttribute('widgettype'), i0.ɵɵinjectAttribute('name'), i0.ɵɵinjectAttribute('displayimagesrc.bind'), i0.ɵɵinjectAttribute('key'), i0.ɵɵinjectAttribute('is-range'), i0.ɵɵinjectAttribute('pc-display'), i0.ɵɵinjectAttribute('mobile-display'), i0.ɵɵinjectAttribute('tablet-display'), i0.ɵɵdirectiveInject(Context, 2), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
501
- static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: FormFieldDirective, selectors: [["", "wmFormField", ""]], contentQueries: function FormFieldDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
502
- i0.ɵɵcontentQuery(dirIndex, _c0, 7);
503
- i0.ɵɵcontentQuery(dirIndex, _c1, 5);
504
- } if (rf & 2) {
505
- let _t;
506
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.formWidget = _t.first);
507
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.formWidgetMax = _t.first);
508
- } }, hostBindings: function FormFieldDirective_HostBindings(rf, ctx) { if (rf & 1) {
509
- i0.ɵɵlistener("keydown", function FormFieldDirective_keydown_HostBindingHandler($event) { return ctx.onKeydownHandler($event); })("click", function FormFieldDirective_click_HostBindingHandler($event) { return ctx.handleClick($event); });
510
- } }, exportAs: ["wmFormField"], standalone: true, features: [i0.ɵɵProvidersFeature([
511
- provideAsWidgetRef(FormFieldDirective),
512
- provideAs(FormFieldDirective, NG_VALUE_ACCESSOR, true),
513
- { provide: Context, useFactory: () => { return {}; }, multi: true }
514
- ]), i0.ɵɵInheritDefinitionFeature] }); }
498
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldDirective, deps: [{ token: i0.Injector }, { token: i1.FormComponent }, { token: i2.FormBuilder }, { token: i3.Viewport }, { token: i3.App }, { token: i4.ListComponent, optional: true }, { token: 'chipclass.bind', attribute: true }, { token: 'dataset.bind', attribute: true }, { token: 'displayexpression.bind', attribute: true }, { token: 'displaylabel.bind', attribute: true }, { token: 'widgettype', attribute: true }, { token: 'name', attribute: true }, { token: 'displayimagesrc.bind', attribute: true }, { token: 'key', attribute: true }, { token: 'is-range', attribute: true }, { token: 'pc-display', attribute: true }, { token: 'mobile-display', attribute: true }, { token: 'tablet-display', attribute: true }, { token: Context, self: true }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
499
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldDirective, isStandalone: true, selector: "[wmFormField]", host: { listeners: { "keydown": "onKeydownHandler($event)", "click": "handleClick($event)" } }, providers: [
500
+ provideAsWidgetRef(FormFieldDirective),
501
+ provideAs(FormFieldDirective, NG_VALUE_ACCESSOR, true),
502
+ { provide: Context, useFactory: () => { return {}; }, multi: true }
503
+ ], queries: [{ propertyName: "formWidget", first: true, predicate: ["formWidget"], descendants: true, static: true }, { propertyName: "formWidgetMax", first: true, predicate: ["formWidgetMax"], descendants: true }], exportAs: ["wmFormField"], usesInheritance: true, ngImport: i0 }); }
515
504
  }
516
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormFieldDirective, [{
517
- type: Directive,
518
- args: [{
519
- standalone: true,
520
- selector: '[wmFormField]',
521
- exportAs: 'wmFormField',
522
- providers: [
523
- provideAsWidgetRef(FormFieldDirective),
524
- provideAs(FormFieldDirective, NG_VALUE_ACCESSOR, true),
525
- { provide: Context, useFactory: () => { return {}; }, multi: true }
526
- ]
527
- }]
528
- }], () => [{ type: i0.Injector }, { type: i1.FormComponent }, { type: i2.FormBuilder }, { type: i3.Viewport }, { type: i3.App }, { type: i4.ListComponent, decorators: [{
529
- type: Optional
530
- }] }, { type: undefined, decorators: [{
531
- type: Attribute,
532
- args: ['chipclass.bind']
533
- }] }, { type: undefined, decorators: [{
534
- type: Attribute,
535
- args: ['dataset.bind']
536
- }] }, { type: undefined, decorators: [{
537
- type: Attribute,
538
- args: ['displayexpression.bind']
539
- }] }, { type: undefined, decorators: [{
540
- type: Attribute,
541
- args: ['displaylabel.bind']
542
- }] }, { type: undefined, decorators: [{
543
- type: Attribute,
544
- args: ['widgettype']
545
- }] }, { type: undefined, decorators: [{
546
- type: Attribute,
547
- args: ['name']
548
- }] }, { type: String, decorators: [{
549
- type: Attribute,
550
- args: ['displayimagesrc.bind']
551
- }] }, { type: undefined, decorators: [{
552
- type: Attribute,
553
- args: ['key']
554
- }] }, { type: undefined, decorators: [{
555
- type: Attribute,
556
- args: ['is-range']
557
- }] }, { type: undefined, decorators: [{
558
- type: Attribute,
559
- args: ['pc-display']
560
- }] }, { type: undefined, decorators: [{
561
- type: Attribute,
562
- args: ['mobile-display']
563
- }] }, { type: undefined, decorators: [{
564
- type: Attribute,
565
- args: ['tablet-display']
566
- }] }, { type: Array, decorators: [{
567
- type: Self
568
- }, {
569
- type: Inject,
570
- args: [Context]
571
- }] }, { type: undefined, decorators: [{
572
- type: Inject,
573
- args: ['EXPLICIT_CONTEXT']
574
- }, {
575
- type: Optional
576
- }] }], { formWidget: [{
577
- type: ContentChild,
578
- args: ['formWidget', { static: true }]
579
- }], formWidgetMax: [{
580
- type: ContentChild,
581
- args: ['formWidgetMax']
582
- }], onKeydownHandler: [{
583
- type: HostListener,
584
- args: ['keydown', ['$event']]
585
- }], handleClick: [{
586
- type: HostListener,
587
- args: ['click', ['$event']]
588
- }] }); })();
589
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9mb3JtL3NyYy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFFUixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixHQUFHLEVBQ0gsUUFBUSxFQUNSLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNYLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGtCQUFrQixFQUNsQixpQkFBaUIsRUFDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFJaEUsb0ZBQW9GO0FBQ3BGLE1BQU0saUJBQWlCLEdBQUcsR0FB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QUFDLG1CQUFtQjs7c0JBQzdCLFNBQVM7dUJBQUMsWUFBWTs7c0JBQ3RCLFNBQVM7dUJBQUMsTUFBTTs7c0JBQ2hCLFNBQVM7dUJBQUMsc0JBQXNCOztzQkFDaEMsU0FBUzt1QkFBQyxLQUFLOztzQkFDZixTQUFTO3VCQUFDLFVBQVU7O3NCQUNwQixTQUFTO3VCQUFDLFlBQVk7O3NCQUN0QixTQUFTO3VCQUFDLGdCQUFnQjs7c0JBQzFCLFNBQVM7dUJBQUMsZ0JBQWdCOztzQkFDMUIsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxPQUFPOztzQkFDdEIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBOUZHLFVBQVU7a0JBQXJELFlBQVk7bUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztZQUNYLGFBQWE7a0JBQTNDLFlBQVk7bUJBQUMsZUFBZTtZQWdFUSxnQkFBZ0I7a0JBQXBELFlBQVk7bUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBSUEsV0FBVztrQkFBN0MsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQXR0cmlidXRlLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBhZGRGb3JJZEF0dHJpYnV0ZXMsXG4gICAgQXBwLFxuICAgIGRlYm91bmNlLFxuICAgIEZvcm1XaWRnZXRUeXBlLFxuICAgIGlzRGF0ZVRpbWVUeXBlLFxuICAgIGlzRGVmaW5lZCxcbiAgICBpc01vYmlsZSxcbiAgICBub29wLFxuICAgIFZpZXdwb3J0XG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7XG4gICAgQmFzZUZpZWxkVmFsaWRhdGlvbnMsXG4gICAgQ29udGV4dCxcbiAgICBnZXREZWZhdWx0Vmlld01vZGVXaWRnZXQsXG4gICAgZ2V0RXZhbHVhdGVkRGF0YSxcbiAgICBwcm92aWRlQXMsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50XG59IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtMaXN0Q29tcG9uZW50fSBmcm9tICdAd20vY29tcG9uZW50cy9kYXRhL2xpc3QnO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vZm9ybS1maWVsZC5wcm9wcyc7XG5pbXBvcnQge0Zvcm1Db21wb25lbnR9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7Zm9yRWFjaCwgZ2V0LCBpc0FycmF5LCBpc09iamVjdCwgam9pbn0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbi8vIEN1c3RvbSB2YWxpZGF0b3IgdG8gc2hvdyB2YWxpZGF0aW9uIGVycm9yLCBpZiBzZXRWYWxpZGF0aW9uTWVzc2FnZSBtZXRob2QgaXMgdXNlZFxuY29uc3QgY3VzdG9tVmFsaWRhdG9yRm4gPSAoKSA9PiB7XG4gICAgcmV0dXJuIHsgY3VzdG9tOiB0cnVlIH07XG59O1xuXG5jb25zdCBGSUxFX1RZUEVTID0ge1xuICAgICdpbWFnZScgOiAnaW1hZ2UvKicsXG4gICAgJ3ZpZGVvJyA6ICd2aWRlby8qJyxcbiAgICAnYXVkaW8nIDogJ2F1ZGlvLyonXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t3bUZvcm1GaWVsZF0nLFxuICAgIGV4cG9ydEFzOiAnd21Gb3JtRmllbGQnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoRm9ybUZpZWxkRGlyZWN0aXZlKSxcbiAgICAgICAgcHJvdmlkZUFzKEZvcm1GaWVsZERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICB7cHJvdmlkZTogQ29udGV4dCwgdXNlRmFjdG9yeTogKCkgPT4geyByZXR1cm4ge30gfSwgbXVsdGk6IHRydWV9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGREaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2Zvcm1XaWRnZXQnLCB7c3RhdGljOiB0cnVlfSkgZm9ybVdpZGdldDtcbiAgICBAQ29udGVudENoaWxkKCdmb3JtV2lkZ2V0TWF4JykgZm9ybVdpZGdldE1heDtcblxuICAgIHByaXZhdGUgZmI7XG4gICAgcHJpdmF0ZSB2aWV3cG9ydDtcblxuICAgIC8vIGV4Y2x1ZGVQcm9wcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBwcm9wcyB0aGF0IHNob3VsZCBub3QgYmUgYXBwbGllZCBvbiBpbm5lciB3aWRnZXRcbiAgICBwcml2YXRlIGV4Y2x1ZGVQcm9wcztcbiAgICBwcml2YXRlIF92YWxpZGF0b3JzO1xuICAgIHByaXZhdGUgX29sZFVwbG9hZFZhbDtcblxuICAgIG5nZm9ybTogRm9ybUdyb3VwO1xuICAgIGRlZmF1bHR2YWx1ZTtcbiAgICBkaXNwbGF5ZXhwcmVzc2lvbjtcbiAgICBkaXNwbGF5ZmllbGQ7XG4gICAgZGlzcGxheWxhYmVsO1xuICAgIGRpc3BsYXluYW1lO1xuICAgIGdlbmVyYXRvcjtcbiAgICBrZXk7XG4gICAgdGFyZ2V0O1xuICAgIGJpbmRpbmc7XG4gICAgd2lkZ2V0dHlwZTtcbiAgICBjbGFzcztcbiAgICByZWFkb25seTtcbiAgICBzaG93O1xuICAgIHR5cGU7XG4gICAgaXNEYXRhU2V0Qm91bmQ7XG4gICAgdmlld21vZGV3aWRnZXQ7XG4gICAgYmluZGRhdGFzZXQ7XG4gICAgYmluZGRpc3BsYXlleHByZXNzaW9uO1xuICAgIGJpbmRDaGlwY2xhc3M7XG4gICAgZGlzcGxheWltYWdlc3JjOiBzdHJpbmc7XG4gICAgYmluZGRpc3BsYXlpbWFnZXNyYztcbiAgICBiaW5kZGlzcGxheWxhYmVsO1xuICAgIGZvcm07XG4gICAgZmlsZXR5cGU7XG4gICAgZXh0ZW5zaW9ucztcbiAgICBwZXJtaXR0ZWQ7XG4gICAgcGVyaW9kO1xuICAgIGlzUmFuZ2U7XG4gICAgbmFtZTtcbiAgICAvLyBWYWxpZGF0aW9uIHByb3BlcnRpZXNcbiAgICByZXF1aXJlZDtcbiAgICBtYXhjaGFycztcbiAgICBtaW52YWx1ZTtcbiAgICBtYXh2YWx1ZTtcbiAgICByZWdleHA7XG4gICAgZmllbGREZWZDb25maWc7XG4gICAgcGxhY2Vob2xkZXI7XG4gICAgaW5wdXR0eXBlO1xuICAgIHZhbGlkYXRpb25tZXNzYWdlO1xuXG4gICAgcHVibGljIF9maWVsZE5hbWU7XG5cbiAgICBwcml2YXRlIF9kZWJvdW5jZVNldFVwVmFsaWRhdG9ycztcbiAgICBwcml2YXRlIF9pbml0UHJvcHNSZXM7XG4gICAgcHJpdmF0ZSBwYXJlbnRMaXN0O1xuICAgIHByaXZhdGUgc2hvd1BlbmRpbmdTcGlubmVyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2FjdGl2ZUZpZWxkOiBib29sZWFuO1xuICAgIHByaXZhdGUgbm90aWZ5Rm9yRmllbGRzOiBhbnk7XG4gICAgcHJpdmF0ZSBmaWVsZFZhbGlkYXRpb25zO1xuICAgIHByaXZhdGUgX3RyaWdnZXJlZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9jbGlja3RyaWdnZXJlZEJ5VXNlcjogYm9vbGVhbjtcbiAgICBwcml2YXRlIGFwcDogQXBwO1xuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuX2NsaWNrdHJpZ2dlcmVkQnlVc2VyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRm9jdXNlZDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgZm9ybTogRm9ybUNvbXBvbmVudCxcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICB2aWV3cG9ydDogVmlld3BvcnQsXG4gICAgICAgIGFwcDogQXBwLFxuICAgICAgICBAT3B0aW9uYWwoKSBwYXJlbnRMaXN0OiBMaXN0Q29tcG9uZW50LFxuICAgICAgICBAQXR0cmlidXRlKCdjaGlwY2xhc3MuYmluZCcpIGJpbmRDaGlwY2xhc3M6IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGF0YXNldC5iaW5kJykgYmluZGRhdGFzZXQsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlleHByZXNzaW9uLmJpbmQnKSBiaW5kZGlzcGxheWV4cHJlc3Npb246IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWxhYmVsLmJpbmQnKSBiaW5kZGlzcGxheWxhYmVsOiBzdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3dpZGdldHR5cGUnKSBfd2lkZ2V0VHlwZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbmFtZScpIG5hbWUsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2Rpc3BsYXlpbWFnZXNyYy5iaW5kJykgYmluZGRpc3BsYXlpbWFnZXNyYzogU3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdrZXknKSBrZXksXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2lzLXJhbmdlJykgaXNSYW5nZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgncGMtZGlzcGxheScpIHBjRGlzcGxheSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnbW9iaWxlLWRpc3BsYXknKSBtb2JpbGVEaXNwbGF5LFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJsZXQtZGlzcGxheScpIHRhYmxldERpc3BsYXksXG4gICAgICAgIEBTZWxmKCkgQEluamVjdChDb250ZXh0KSBjb250ZXh0czogQXJyYXk8YW55PixcbiAgICAgICAgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IFdJREdFVF9DT05GSUcgPSB7XG4gICAgICAgICAgICB3aWRnZXRUeXBlOiAnd20tZm9ybS1maWVsZCcsXG4gICAgICAgICAgICBob3N0Q2xhc3M6ICcnLFxuICAgICAgICAgICAgd2lkZ2V0U3ViVHlwZTogJ3dtLWZvcm0tZmllbGQtJyArIChfd2lkZ2V0VHlwZSB8fCBGb3JtV2lkZ2V0VHlwZS5URVhUKS50cmltKClcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHJlc29sdmVGbjogRnVuY3Rpb24gPSBub29wO1xuXG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0LCBuZXcgUHJvbWlzZShyZXMgPT4gcmVzb2x2ZUZuID0gcmVzKSk7XG4gICAgICAgIHRoaXMuX2luaXRQcm9wc1JlcyA9IHJlc29sdmVGbjtcbiAgICAgICAgdGhpcy5hcHAgPSBhcHA7XG4gICAgICAgIHRoaXMuZmllbGREZWZDb25maWcgPSB7fTtcbiAgICAgICAgdGhpcy5jbGFzcyA9ICcnO1xuICAgICAgICB0aGlzLmJpbmRkYXRhc2V0ID0gYmluZGRhdGFzZXQ7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlpbWFnZXNyYyA9IGJpbmRkaXNwbGF5aW1hZ2VzcmM7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uID0gYmluZGRpc3BsYXlleHByZXNzaW9uO1xuICAgICAgICB0aGlzLmJpbmRDaGlwY2xhc3MgPSBiaW5kQ2hpcGNsYXNzO1xuICAgICAgICB0aGlzLmJpbmRkaXNwbGF5bGFiZWwgPSBiaW5kZGlzcGxheWxhYmVsO1xuICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgICAgICB0aGlzLmZiID0gZmI7XG4gICAgICAgIHRoaXMudmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICAgICAgdGhpcy5fZmllbGROYW1lID0ga2V5IHx8IG5hbWU7XG4gICAgICAgIHRoaXMuaXNSYW5nZSA9IGlzUmFuZ2U7XG4gICAgICAgIHRoaXMuZXhjbHVkZVByb3BzID0gbmV3IFNldChbJ3R5cGUnLCAnbmFtZSddKTtcbiAgICAgICAgdGhpcy53aWRnZXR0eXBlID0gX3dpZGdldFR5cGU7XG4gICAgICAgIHRoaXMucGFyZW50TGlzdCA9IHBhcmVudExpc3Q7XG4gICAgICAgIHRoaXMubm90aWZ5Rm9yRmllbGRzID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYmluZGRhdGFzZXQgfHwgdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhc2V0JykpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhU2V0Qm91bmQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dHNbMF0uX29uRm9jdXNGaWVsZCA9IHRoaXMuX29uRm9jdXNGaWVsZC5iaW5kKHRoaXMpO1xuICAgICAgICBjb250ZXh0c1swXS5fb25CbHVyRmllbGQgPSB0aGlzLl9vbkJsdXJGaWVsZC5iaW5kKHRoaXMpO1xuXG4gICAgICAgIHRoaXMuX2RlYm91bmNlU2V0VXBWYWxpZGF0b3JzID0gZGVib3VuY2UoKCkgPT4gdGhpcy5zZXRVcFZhbGlkYXRvcnMoKSwgNTAwKTtcbiAgICB9XG5cbiAgICBfb25Gb2N1c0ZpZWxkKCRldnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlRmllbGQgPSB0cnVlO1xuICAgICAgICAkKCRldnQudGFyZ2V0KS5jbG9zZXN0KCcubGl2ZS1maWVsZCcpLmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgIH1cblxuICAgIC8vIEZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0aXZlIGVsZW1lbnQgbWFya3VwIGJhc2VkIG9uIHdpZGdldCB0eXBlXG4gICAgZ2V0QWN0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgY29uc3Qgd2lkZ2V0VHlwZSA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3dpZGdldHR5cGUnKTtcbiAgICAgICAgc3dpdGNoICh3aWRnZXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc2VsZWN0Jyk7XG4gICAgICAgICAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRBcmlhQXR0cmlidXRlcygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZ2V0QWN0aXZlRWxlbWVudCgpO1xuICAgICAgICBpZiAodGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS5pbnZhbGlkICYmIHRoaXMubmdmb3JtLmNvbnRyb2xzW3RoaXMuX2ZpZWxkTmFtZV0udG91Y2hlZCAmJiB0aGlzLmZvcm0uaXNVcGRhdGVNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdfX2Vycm9ybXNnJywgYCR7dGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnX192YWxpZGF0aW9uSWQnKX1gKTtcbiAgICAgICAgICAgIGVsZW1lbnQ/LnNldEF0dHJpYnV0ZSgnYXJpYS1pbnZhbGlkJywgYCR7dGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS5pbnZhbGlkfWApO1xuICAgICAgICAgICAgZWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JywgYCR7dGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnX192YWxpZGF0aW9uSWQnKX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ19fZXJyb3Jtc2cnKTtcbiAgICAgICAgICAgIGVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1pbnZhbGlkJyk7XG4gICAgICAgICAgICBlbGVtZW50Py5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9vbkJsdXJGaWVsZCgkZXZ0KSB7XG4gICAgICAgICQoJGV2dC50YXJnZXQpLmNsb3Nlc3QoJy5saXZlLWZpZWxkJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICBjb25zdCBlbGUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigncC50ZXh0LWRhbmdlcicpO1xuICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjM5NTldOiBBREEgaXNzdWUgLSBhZGRpbmcgYXJpYS1kZXNjcmliZWRieSwgYXJpYS1pbnZhbGlkLCBfX2Vycm9ybXNnIGF0dHJpYnV0ZXMgb25seSB3aGVuIHRoZSBmb3JtIGZpZWxkIGlzIGludmFsaWQgLCBlbHNlIHJlbW92aW5nIHRoZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMuc2V0QXJpYUF0dHJpYnV0ZXMoKTtcbiAgICAgICAgdGhpcy5fYWN0aXZlRmllbGQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcmVkQnlVc2VyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2NsaWNrdHJpZ2dlcmVkQnlVc2VyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gRXhwcmVzc2lvbiB0byBiZSBldmFsdWF0ZWQgaW4gdmlldyBtb2RlIG9mIGZvcm0gZmllbGRcbiAgICBldmFsdWF0ZUV4cHIob2JqZWN0LCBkaXNwbGF5RmllbGQsIGRpc3BsYXlFeHByKSB7XG4gICAgICAgIGlmICghZGlzcGxheUV4cHIgfHwgIWRpc3BsYXlGaWVsZCkge1xuICAgICAgICAgICAgZGlzcGxheUZpZWxkID0gT2JqZWN0LmtleXMob2JqZWN0KVswXTtcbiAgICAgICAgICAgIC8vIElmIGRhdGFzZXQgaXMgbm90IHJlYWR5LCBkaXNwbGF5IGV4cHJlc3Npb24gd2lsbCBub3QgYmUgZGVmaW5lZFxuICAgICAgICAgICAgaWYgKCFkaXNwbGF5RmllbGQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldEV2YWx1YXRlZERhdGEob2JqZWN0LCB7XG4gICAgICAgICAgICBmaWVsZDogZGlzcGxheUZpZWxkLFxuICAgICAgICAgICAgZXhwcmVzc2lvbjogZGlzcGxheUV4cHJcbiAgICAgICAgfSwgdGhpcy52aWV3UGFyZW50KTtcbiAgICB9XG5cbiAgICAvLyBFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCBpbiB2aWV3IG1vZGUgb2YgZm9ybSBmaWVsZFxuICAgIGdldERpc3BsYXlFeHByKCkge1xuICAgICAgICBjb25zdCBjYXB0aW9uID0gW107XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgY29uc3QgZGlzcGxheUZpZWxkID0gdGhpcy5kaXNwbGF5ZmllbGQgfHwgdGhpcy5kaXNwbGF5bGFiZWxcbiAgICAgICAgY29uc3QgZGlzcGxheUV4cHIgPSB0aGlzLmRpc3BsYXlleHByZXNzaW9uO1xuICAgICAgICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBmb3JFYWNoKHZhbHVlLCBvYmogPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3Qob2JqKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FwdGlvbi5wdXNoKHRoaXMuZXZhbHVhdGVFeHByKG9iaiwgZGlzcGxheUZpZWxkLCBkaXNwbGF5RXhwcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhcHRpb24ucHVzaCh0aGlzLmV2YWx1YXRlRXhwcih2YWx1ZSwgZGlzcGxheUZpZWxkLCBkaXNwbGF5RXhwcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGpvaW4oY2FwdGlvbiwgJywnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpID8gJycgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIGdldENhcHRpb24oKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUgPT09IG51bGwpID8gKGdldCh0aGlzLmZvcm0uZGF0YW91dHB1dCwgdGhpcy5fZmllbGROYW1lKSB8fCAnJykgOiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIC8vIE5vdGlmaWVzIGNoYW5nZXMgdG8gb2JzZXJ2aW5nIHZhbGlkYXRpb24gZmllbGRzXG4gICAgbm90aWZ5Q2hhbmdlcygpIHtcbiAgICAgICAgZm9yRWFjaCh0aGlzLm5vdGlmeUZvckZpZWxkcywgZmllbGQgPT4ge1xuICAgICAgICAgICAgZmllbGQuZmllbGRWYWxpZGF0aW9ucy52YWxpZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBSZWdpc3RlcnMgb2JzZXJ2ZXIgb2YgdmFsaWRhdGlvbiBmaWVsZHNcbiAgICBvYnNlcnZlT24oZmllbGRzKSB7XG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5vYnNlcnZlT24oZmllbGRzLCAnZm9ybWZpZWxkcycpO1xuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBzZXR1cCB2YWxpZGF0b3JzIGZvciByZWFjdGl2ZSBmb3JtIGNvbnRyb2xcbiAgICBzZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yPykge1xuICAgICAgICB0aGlzLmZpZWxkVmFsaWRhdGlvbnMuc2V0VXBWYWxpZGF0b3JzKGN1c3RvbVZhbGlkYXRvcik7XG4gICAgfVxuXG4gICAgLy8gc2V0cyB0aGUgY3VzdG9tIGFzeW5jIHZhbGlkYXRpb24gb24gdGhlIGZvcm0gZmllbGRcbiAgICBzZXRBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9ycykge1xuICAgICAgICB0aGlzLmZpZWxkVmFsaWRhdGlvbnMuc2V0QXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuICAgIH1cblxuICAgIC8vIHNldHMgdGhlIGRlZmF1bHQgYW5kIGN1c3RvbSBzeW5jIHZhbGlkYXRpb24gb24gdGhlIGZvcm0gZmllbGRcbiAgICBzZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIHNldCB0aGUgcHJvcGVydGllcyBvbiBpbm5lciBmb3JtIHdpZGdldFxuICAgIHNldEZvcm1XaWRnZXQoa2V5LCB2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQud2lkZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQud2lkZ2V0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib3VuZEZuKGZuKSB7XG4gICAgICAgIHJldHVybiBmbigpO1xuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBzZXQgdGhlIHByb3BlcnRpZXMgb24gaW5uZXIgbWF4IGZvcm0gd2lkZ2V0ICh3aGVuIHJhbmdlIGlzIHNlbGVjdGVkKVxuICAgIHNldE1heEZvcm1XaWRnZXQoa2V5LCB2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVdpZGdldE1heCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0TWF4LndpZGdldFtrZXldID0gdmFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgY29uc3QgaXNGb3JtRGlydHkgPSB0aGlzLmZvcm0uZGlydHk7XG5cbiAgICAgICAgaWYgKGtleSAhPT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5leGNsdWRlUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFzIHVwbG9hZCB3aWRnZXQgaXMgYW4gSFRNTCB3aWRnZXQsIG9ubHkgcmVxdWlyZWQgcHJvcGVydHkgaXMgc2V0dXBcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAncmVxdWlyZWQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRVcFZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KGtleSwgbnYpO1xuXG4gICAgICAgIC8vIFBsYWNlaG9sZGVyIHNob3VsZCBub3QgYmUgc2V0dXAgb24gbWF4IHdpZGdldFxuICAgICAgICBpZiAoa2V5ICE9PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoa2V5LCBudik7XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGVmYXVsdHZhbHVlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ub25GaWVsZERlZmF1bHRWYWx1ZUNoYW5nZSh0aGlzLCBudik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtYXhkZWZhdWx0dmFsdWUnOlxuICAgICAgICAgICAgICAgIHRoaXMubWF4VmFsdWUgPSBudjtcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoJ2RhdGF2YWx1ZScsIG52KTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ub25NYXhEZWZhdWx0VmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heHBsYWNlaG9sZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoJ3BsYWNlaG9sZGVyJywgbnYpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmVxdWlyZWQnOlxuICAgICAgICAgICAgICAgIC8vIFdNUy0xODkwNiA6IERvIG5vdCBtYWtlIGZvcm0gYXMgZGlydHkgZHVyaW5nIHJlcXVpcmVkIHByb3AgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgICAgICAgICBpZiAoaXNGb3JtRGlydHkgIT09IHRoaXMuZm9ybS5kaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdtYXhjaGFycyc6XG4gICAgICAgICAgICBjYXNlICdtaW52YWx1ZSc6XG4gICAgICAgICAgICBjYXNlICdtYXh2YWx1ZSc6XG4gICAgICAgICAgICBjYXNlICdyZWdleHAnOlxuICAgICAgICAgICAgY2FzZSAnc2hvdyc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRVcFZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ByaW1hcnkta2V5JzpcbiAgICAgICAgICAgICAgICBpZiAobnYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnNldFByaW1hcnlLZXkodGhpcy5fZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkaXNwbGF5LW5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheW5hbWUgPSBudjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlYWRvbmx5JzpcbiAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHlTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KGtleSwgbnYpO1xuICAgICAgICB0aGlzLnNldE1heEZvcm1XaWRnZXQoa2V5LCBudik7XG4gICAgICAgIHN1cGVyLm9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgIH1cblxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LmRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgZGF0YXZhbHVlKHZhbCkge1xuICAgICAgICBpZiAodGhpcy5fY29udHJvbCAmJiB0aGlzLndpZGdldHR5cGUgIT09IEZvcm1XaWRnZXRUeXBlLlVQTE9BRCkge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbCkge1xuICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IHZhbDtcbiAgICB9XG5cbiAgICBnZXQgbWF4VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXRNYXggJiYgdGhpcy5mb3JtV2lkZ2V0TWF4LmRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgbWF4VmFsdWUodmFsKSB7XG4gICAgICAgIGlmICh0aGlzLl9tYXhDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9tYXhDb250cm9sLnNldFZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbWluVmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHNldCBtaW5WYWx1ZSh2YWwpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbDtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHJlYWN0aXZlIGZvcm0gY29udHJvbFxuICAgIGdldCBfY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdmb3JtICYmIHRoaXMubmdmb3JtLmNvbnRyb2xzW3RoaXMuX2ZpZWxkTmFtZV07XG4gICAgfVxuXG4gICAgLy8gR2V0IHRoZSByZWFjdGl2ZSBtYXggZm9ybSBjb250cm9sXG4gICAgZ2V0IF9tYXhDb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ2Zvcm0gJiYgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lICsgJ19tYXgnXTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIGRpc3BsYXlWYWx1ZVxuICAgIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LmRpc3BsYXlWYWx1ZTtcbiAgICB9XG5cbiAgICAvL0dldCB0aGUgdGltZXN0YW1wXG4gICAgZ2V0IHRpbWVzdGFtcCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC50aW1lc3RhbXA7XG4gICAgfVxuXG4gICAgLy9HZXQgdGhlIGNoYXJsZW5ndGhcbiAgICBnZXQgY2hhcmxlbmd0aCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5jaGFybGVuZ3RoO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgcmVhY3RpdmUgZm9ybSBjb250cm9sXG4gICAgY3JlYXRlQ29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmIuY29udHJvbCh1bmRlZmluZWQsIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHRoaXMuX3ZhbGlkYXRvcnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gT24gZmllbGQgdmFsdWUgY2hhbmdlLCBwcm9wYWdhdGUgZXZlbnQgdG8gcGFyZW50IGZvcm1cbiAgICBvblZhbHVlQ2hhbmdlKHZhbCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcHRpb25FbCA9ICAkKHRoaXMubmF0aXZlRWxlbWVudCkuZmluZCgnLmNhcHRpb24tZmxvYXRpbmcnKTtcbiAgICAgICAgICAgIGlmIChjYXB0aW9uRWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIGhhc1ZhbHVlIGNoZWNrIHdoZXRoZXIgZm9ybS1maWVsZCBoYXMgYSB2YWx1ZSBmcm9tIHBhc3NlZCB2YWwgYXR0cmlidXRlXG4gICAgICAgICAgICAgICAgLy8gQWRkZWQgc2FuaXR5IGNoZWNrIG9uIHZhbCB0byBzdXBwb3J0IHZhbHVlcyBsaWtlZCAwLCBmYWxzZSBldGMgYXMgaW5wdXQgdmFsIC0gV01TLTIwMDg0XG4gICAgICAgICAgICAgICAgLy8gZXhwbGljaXRseSBjaGVja2luZyBmb3IgaW5wdXQgdmFsdWUgb3IgLXdlYmtpdC1hdXRvZmlsbCB0byBzZWUgd2hldGhlciB0aGVyZSBhcmUgYW55IGF1dG9maWxsZWQgZmllbGRzIC0gV01TLTIwMTQxXG5cbiAgICAgICAgICAgICAgICBjb25zdCBoYXNWYWx1ZSA9ICgoaXNEZWZpbmVkKHZhbCkgJiYgdmFsICE9PSAnJyAmJiB2YWwgIT09IG51bGwpIHx8IGNhcHRpb25FbC5maW5kKCdpbnB1dCcpLnZhbCgpKSB8fCBjYXB0aW9uRWwuZmluZCgnaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCcpLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgIHRoaXMuYXBwLm5vdGlmeSgnY2FwdGlvblBvc2l0aW9uQW5pbWF0ZScsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbDogaGFzVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUVsOiBjYXB0aW9uRWwsXG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0TXVsdGlwbGU6IHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQubXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgIGlzRm9jdXNlZDogdGhpcy5fYWN0aXZlRmllbGRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgLy8gRml4IGZvciBbV01TLTIzOTU5XTogQURBIGlzc3VlIC0gYWRkaW5nIGFyaWEtZGVzY3JpYmVkYnksIGFyaWEtaW52YWxpZCwgX19lcnJvcm1zZyBhdHRyaWJ1dGVzIG9ubHkgd2hlbiB0aGUgZm9ybSBmaWVsZCBpcyBpbnZhbGlkICwgZWxzZSByZW1vdmluZyB0aGUgYXR0cmlidXRlc1xuICAgICAgICAgICAgdGhpcy5zZXRBcmlhQXR0cmlidXRlcygpO1xuICAgICAgICAgICAgdGhpcy5mb3JtLm9uRmllbGRWYWx1ZUNoYW5nZSh0aGlzLCB2YWwpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlDaGFuZ2VzKCk7XG4gICAgICAgICAgICAvLyBEbyBtYXJrIGFzIHRvdWNoZWQsIG9ubHkgaW5jYXNlIHdoZW4gdXNlciBoYXMgZW50ZXJlZCBhbiBpbnB1dCBidXQgbm90IHRocm91Z2ggdGhlIHNjcmlwdC4gSGVuY2UgYWRkZWQgbW91c2Vkb3duIGV2ZW50IGNoZWNrXG4gICAgICAgICAgICAvLyBhY3RpdmUgY2xhc3MgY2hlY2tzIHdoZXRoZXIgdXNlciBpcyBvbiB0aGUgY3VycmVudCBmaWVsZCwgaWYgc28gbWFya2luZyB0aGUgZmllbGQgYXMgdG91Y2hlZC4gQW5kIGZvcm0gZmllbGQgdmFsaWRhdGlvbiBoYXBwZW5zIG9uY2UgYSBmaWVsZCBpcyB0b3VjaGVkXG4gICAgICAgICAgICAvLyBfdHJpZ2dlcmVkQnlVc2VyIGNoZWNrcyB3aGV0aGVyIHRoZSBmaWVsZCBpcyB0b3VjaGVkIGJ5IHRoZSB1c2VyIG9yIHRyaWdnZXJlZCBmcm9tIGV4dGVybmFsIHNjcmlwdFxuICAgICAgICAgICAgLy8gV01TLTIyNDU2OiBfY2xpY2t0cmlnZ2VyZWRCeVVzZXIgY2hlY2tzIHdoZW4gdXNlciBzZWxlY3RzIGRhdGV0aW1ldHlwZSBmcm9tIHBpY2tlciwgbWFyayB0aGUgZmllbGQgYXMgdG91Y2hlZCB0byBzaG93IHZhbGlkYXRpb24gZXJyb3JzIGluIG1vYmlsZVxuXG4gICAgICAgICAgICBpZiAodGhpcy4kZWxlbWVudC5maW5kKCcuYWN0aXZlJykubGVuZ3RoID4gMCB8fCB0aGlzLmZvcm0udG91Y2hlZCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90cmlnZ2VyZWRCeVVzZXIgfHwgKGlzTW9iaWxlKCkgJiYgdGhpcy5fY2xpY2t0cmlnZ2VyZWRCeVVzZXIgJiYgaXNEYXRlVGltZVR5cGUodGhpcy53aWRnZXR0eXBlKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5zZXRDdXN0b21WYWxpZGF0aW9uTWVzc2FnZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdGF0dXNDaGFuZ2Uoc3RhdHVzKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93UGVuZGluZ1NwaW5uZXIgPSAoc3RhdHVzID09PSAnUEVORElORycpO1xuICAgICAgICAgICAgLy8gd2hpbGUgcnVubmluZyB2YWxpZGF0aW9uLCB3aWRnZXQgaXMgZGlzYWJsZWQgYW5kIHNwaW5uZXIgaXMgc2hvd25cbiAgICAgICAgICAgIC8vIG90aGVyd2lzZSBmb3JtV2lkZ2V0IGRpc2FibGVkIHN0YXRlIGlzIHJlc2V0IHRvIHRoZSBzdGF0ZSBvZiB0aGUgZm9ybUZpZWxkLlxuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ1BFTkRJTkcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtV2lkZ2V0LmRpc2FibGVkICE9PSAodGhpcyBhcyBhbnkpLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0LmRpc2FibGVkID0gKHRoaXMgYXMgYW55KS5kaXNhYmxlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1ldGhvZCB0byBleHBvc2UgdmFsaWRhdGlvbiBtZXNzYWdlIGFuZCBzZXQgY29udHJvbCB0byBpbnZhbGlkXG4gICAgc2V0VmFsaWRhdGlvbk1lc3NhZ2UodmFsKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZSA9IHZhbDtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBWYWxpZGF0b3JzKGN1c3RvbVZhbGlkYXRvckZuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0UmVhZE9ubHlTdGF0ZSgpIHtcbiAgICAgICAgbGV0IHJlYWRPbmx5O1xuICAgICAgICBpZiAodGhpcy5mb3JtLmlzVXBkYXRlTW9kZSkge1xuICAgICAgICAgICAgaWYgKHRoaXNbJ3ByaW1hcnkta2V5J10gJiYgIXRoaXNbJ2lzLXJlbGF0ZWQnXSAmJiAhdGhpcy5wZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvKklmIHRoZSBmaWVsZCBpcyBwcmltYXJ5IGJ1dCBpcyBhc3NpZ25lZCBzZXQgcmVhZG9ubHkgZmFsc2UuXG4gICAgICAgICAgICAgICAgICAgQXNzaWduZWQgaXMgd2hlcmUgdGhlIHVzZXIgaW5wdXRzIHRoZSB2YWx1ZSB3aGlsZSBhIG5ldyBlbnRyeS5cbiAgICAgICAgICAgICAgICAgICBUaGlzIGlzIG5vdCBlZGl0YWJsZShpbiB1cGRhdGUgbW9kZSkgb25jZSBlbnRyeSBpcyBzdWNjZXNzZnVsKi9cbiAgICAgICAgICAgICAgICByZWFkT25seSA9ICEodGhpcy5nZW5lcmF0b3IgPT09ICdhc3NpZ25lZCcgJiYgdGhpcy5mb3JtLm9wZXJhdGlvblR5cGUgIT09ICd1cGRhdGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVhZE9ubHkgPSB0aGlzLnJlYWRvbmx5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSW4gdmlldyBtb2RlLCBzZXQgd2lkZ2V0IHN0YXRlIHRvIHJlYWRvbmx5IGFsd2F5c1xuICAgICAgICAgICAgcmVhZE9ubHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJlYWRPbmx5ID0gcmVhZE9ubHkgfHwgdGhpcy5mb3JtLnJlYWRvbmx5O1xuICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoJ3JlYWRvbmx5JywgcmVhZE9ubHkpO1xuICAgIH1cblxuICAgIHJlc2V0RGlzcGxheUlucHV0KCkge1xuICAgICAgICBpZiAoKCFpc0RlZmluZWQodGhpcy52YWx1ZSkgfHwgdGhpcy52YWx1ZSA9PT0gJycpKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LnJlc2V0RGlzcGxheUlucHV0ICYmIHRoaXMuZm9ybVdpZGdldC5yZXNldERpc3BsYXlJbnB1dCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXQoKSB7XG4gICAgICBpZih0aGlzLl9jb250cm9sKVxuICAgICAgICB0aGlzLl9jb250cm9sLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgdHJpZ2dlclVwbG9hZEV2ZW50KCRldmVudCwgZXZlbnROYW1lKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0geyAkZXZlbnQgfTtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICAgICAgICAgIHBhcmFtcy5uZXdWYWwgPSAkZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgICAgICAgICAgcGFyYW1zLm9sZFZhbCA9IHRoaXMuX29sZFVwbG9hZFZhbDtcbiAgICAgICAgICAgIHRoaXMuX29sZFVwbG9hZFZhbCA9IHBhcmFtcy5uZXdWYWw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKGV2ZW50TmFtZSwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyRm9ybUZpZWxkKCkge1xuXG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHRoaXMuX2ZpZWxkTmFtZTtcblxuICAgICAgICBpZiAodGhpcy5wYXJlbnRMaXN0ICYmICEodGhpcy5mb3JtLnBhcmVudExpc3QgPT09IHRoaXMucGFyZW50TGlzdCkpIHtcbiAgICAgICAgICAgIGxldCBjb3VudGVyID0gMTtcbiAgICAgICAgICAgIGxldCBfZmllbGROYW1lID0gZmllbGROYW1lO1xuICAgICAgICAgICAgd2hpbGUgKHRoaXMubmdmb3JtLmNvbnRyb2xzLmhhc093blByb3BlcnR5KF9maWVsZE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgX2ZpZWxkTmFtZSA9IGAke2ZpZWxkTmFtZX1fJHtjb3VudGVyfWA7XG4gICAgICAgICAgICAgICAgY291bnRlcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5uZ2Zvcm0uYWRkQ29udHJvbChfZmllbGROYW1lLCB0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XG4gICAgICAgICAgICB0aGlzLl9maWVsZE5hbWUgPSBfZmllbGROYW1lO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ2Zvcm0uYWRkQ29udHJvbChmaWVsZE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLm9uVmFsdWVDaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gb25WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICBjb25zdCBvblN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuX2NvbnRyb2wuc3RhdHVzQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMub25TdGF0dXNDaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gb25TdGF0dXNDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgICB0aGlzLm5nZm9ybS5hZGRDb250cm9sKGZpZWxkTmFtZSArICdfbWF4JywgdGhpcy5jcmVhdGVDb250cm9sKCkpO1xuICAgICAgICAgICAgLy8gcmVnaXN0ZXJpbmcgZm9yIHZhbHVlQ2hhbmdlcyBvbiBNYXhmb3JtV2lkZ2V0XG4gICAgICAgICAgICBjb25zdCBvbk1heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fbWF4Q29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjAwKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMub25WYWx1ZUNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gb25NYXhWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlID0gZ2V0KHRoaXMuZm9ybS5mb3JtZGF0YSwgdGhpcy5fZmllbGROYW1lKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5uZ2Zvcm0gPSB0aGlzLmZvcm0ubmdmb3JtO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRm9ybUZpZWxkKCk7XG4gICAgICAgIC8vIEluc3RhbnRpYXRlIGN1c3RvbSB2YWxpZGF0b3JzIGNsYXNzIGZvciBmb3JtIGZpZWxkXG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucyA9IG5ldyBCYXNlRmllbGRWYWxpZGF0aW9ucyh0aGlzLCB0aGlzLmZvcm1XaWRnZXQsIHRoaXMud2lkZ2V0dHlwZSwgdGhpcy5fY29udHJvbCwgdGhpcy5mb3JtKTtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB9XG5cbiAgICBwcmVwYXJlRm9ybVdpZGdldCgpIHtcbiAgICAgICAgdGhpcy5faW5pdFByb3BzUmVzKCk7XG5cbiAgICAgICAgLy8gc2V0dGluZyBkaXNwbGF5RXhwcmVzc2lvbnMgb24gdGhlIGZvcm13aWRnZXQgZXhwbGljaXRseSBhcyBleHByIHdhcyBldmFsdWF0ZWQgdG8gXCJcIi5cbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGlzcGxheWxhYmVsJywgdGhpcy5iaW5kZGlzcGxheWxhYmVsKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGlzcGxheWV4cHJlc3Npb24nLCB0aGlzLmJpbmRkaXNwbGF5ZXhwcmVzc2lvbik7XG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgnYmluZGRpc3BsYXlpbWFnZXNyYycsIHRoaXMuYmluZGRpc3BsYXlpbWFnZXNyYyk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgnYmluZENoaXBjbGFzcycsIHRoaXMuYmluZENoaXBjbGFzcyk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgnYmluZGRhdGFzZXQnLCB0aGlzLmJpbmRkYXRhc2V0KTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyUmVhZHlTdGF0ZUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMua2V5ID0gdGhpcy5fZmllbGROYW1lIHx8IHRoaXMudGFyZ2V0IHx8IHRoaXMuYmluZGluZztcbiAgICAgICAgICAgIHRoaXMudmlld21vZGV3aWRnZXQgPSB0aGlzLnZpZXdtb2Rld2lkZ2V0IHx8IGdldERlZmF1bHRWaWV3TW9kZVdpZGdldCh0aGlzLndpZGdldHR5cGUpO1xuXG4gICAgICAgICAgICAvLyBGb3IgdXBsb2FkIHdpZGdldCwgZ2VuZXJhdGUgdGhlIHBlcm1pdHRlZCBmaWVsZFxuICAgICAgICAgICAgaWYgKHRoaXMud2lkZ2V0dHlwZSA9PT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVUeXBlO1xuICAgICAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgYWNjZXB0cyBzdHJpbmcgZnJvbSBmaWxlIHR5cGUgYW5kIGV4dGVuc2lvbnNcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9IHRoaXMuZmlsZXR5cGUgPyBGSUxFX1RZUEVTW3RoaXMuZmlsZXR5cGVdIDogJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJtaXR0ZWQgPSBmaWxlVHlwZSArICh0aGlzLmV4dGVuc2lvbnMgPyAoZmlsZVR5cGUgPyAnLCcgOiAnJykgKyB0aGlzLmV4dGVuc2lvbnMgOiAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNNb2JpbGUoKSAmJiB0aGlzLnZpZXdwb3J0LmlzTW9iaWxlVHlwZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpc1snbW9iaWxlLWRpc3BsYXknXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldC5zaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZpZXdwb3J0LmlzVGFibGV0VHlwZSkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpc1sndGFibGV0LWRpc3BsYXknXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldC5zaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXNbJ3BjLWRpc3BsYXknXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldC5zaG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmRpc3BsYW5hbWUgPSB0aGlzLmRpc3BsYXluYW1lO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5zaG93ID0gdGhpcy5zaG93O1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5pc1JlbGF0ZWQgPSB0aGlzWydpcy1yZWxhdGVkJ107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmlucHV0dHlwZSA9IHRoaXMuaW5wdXR0eXBlO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5nZW5lcmF0b3IgPSB0aGlzLmdlbmVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5wcmltYXJ5S2V5ID0gdGhpc1sncHJpbWFyeS1rZXknXTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcucmVxdWlyZWQgPSB0aGlzLnJlcXVpcmVkO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5fcmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5yZWdleHAgPSB0aGlzLnJlZ2V4cDtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcua2V5ID0gdGhpcy5rZXk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLm1vYmlsZURpc3BsYXkgPSB0aGlzWydtb2JpbGUtZGlzcGxheSddO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5uYW1lID0gdGhpcy5uYW1lO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5wY0Rpc3BsYXkgPSB0aGlzWydwYy1kaXNwbGF5J107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnRhYmxldERpc3BsYXkgPSB0aGlzWyd0YWJsZXQtZGlzcGxheSddO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy52YWxpZGF0aW9ubWVzc2FnZSA9IHRoaXMudmFsaWRhdGlvbm1lc3NhZ2U7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnZpZXdtb2Rld2lkZ2V0ID0gdGhpcy52aWV3bW9kZXdpZGdldDtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcud2lkZ2V0ID0gdGhpcy53aWRnZXR0eXBlO1xuXG4gICAgICAgICAgICAvLyBSZWdpc3RlciB0aGUgZm9ybSBmaWVsZCB3aXRoIHBhcmVudCBmb3JtXG4gICAgICAgICAgICB0aGlzLmZvcm0ucmVnaXN0ZXJGb3JtRmllbGRzKHRoaXMud2lkZ2V0KTtcblxuICAgICAgICAgICAgYWRkRm9ySWRBdHRyaWJ1dGVzKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0UmVhZE9ubHlTdGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICBpZih0aGlzLndpZGdldFN1YlR5cGUgPT09IFwid20tZm9ybS1maWVsZC1jdXN0b20td2lkZ2V0XCIgJiYgdGhpcy5mb3JtV2lkZ2V0Lm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQgPSB0aGlzLmZvcm1XaWRnZXQubmF0aXZlRWxlbWVudC53aWRnZXQ7XG4gICAgICAgIGlmICh0aGlzLmZvcm1XaWRnZXQpIHtcbiAgICAgICAgICAgIGlmKHRoaXMud2lkZ2V0U3ViVHlwZSA9PT0gXCJ3bS1mb3JtLWZpZWxkLWN1c3RvbS13aWRnZXRcIikge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVdpZGdldC5jb25maWdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZUZvcm1XaWRnZXQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlRm9ybVdpZGdldCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
505
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldDirective, decorators: [{
506
+ type: Directive,
507
+ args: [{
508
+ standalone: true,
509
+ selector: '[wmFormField]',
510
+ exportAs: 'wmFormField',
511
+ providers: [
512
+ provideAsWidgetRef(FormFieldDirective),
513
+ provideAs(FormFieldDirective, NG_VALUE_ACCESSOR, true),
514
+ { provide: Context, useFactory: () => { return {}; }, multi: true }
515
+ ]
516
+ }]
517
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FormComponent }, { type: i2.FormBuilder }, { type: i3.Viewport }, { type: i3.App }, { type: i4.ListComponent, decorators: [{
518
+ type: Optional
519
+ }] }, { type: undefined, decorators: [{
520
+ type: Attribute,
521
+ args: ['chipclass.bind']
522
+ }] }, { type: undefined, decorators: [{
523
+ type: Attribute,
524
+ args: ['dataset.bind']
525
+ }] }, { type: undefined, decorators: [{
526
+ type: Attribute,
527
+ args: ['displayexpression.bind']
528
+ }] }, { type: undefined, decorators: [{
529
+ type: Attribute,
530
+ args: ['displaylabel.bind']
531
+ }] }, { type: undefined, decorators: [{
532
+ type: Attribute,
533
+ args: ['widgettype']
534
+ }] }, { type: undefined, decorators: [{
535
+ type: Attribute,
536
+ args: ['name']
537
+ }] }, { type: String, decorators: [{
538
+ type: Attribute,
539
+ args: ['displayimagesrc.bind']
540
+ }] }, { type: undefined, decorators: [{
541
+ type: Attribute,
542
+ args: ['key']
543
+ }] }, { type: undefined, decorators: [{
544
+ type: Attribute,
545
+ args: ['is-range']
546
+ }] }, { type: undefined, decorators: [{
547
+ type: Attribute,
548
+ args: ['pc-display']
549
+ }] }, { type: undefined, decorators: [{
550
+ type: Attribute,
551
+ args: ['mobile-display']
552
+ }] }, { type: undefined, decorators: [{
553
+ type: Attribute,
554
+ args: ['tablet-display']
555
+ }] }, { type: Array, decorators: [{
556
+ type: Self
557
+ }, {
558
+ type: Inject,
559
+ args: [Context]
560
+ }] }, { type: undefined, decorators: [{
561
+ type: Inject,
562
+ args: ['EXPLICIT_CONTEXT']
563
+ }, {
564
+ type: Optional
565
+ }] }], propDecorators: { formWidget: [{
566
+ type: ContentChild,
567
+ args: ['formWidget', { static: true }]
568
+ }], formWidgetMax: [{
569
+ type: ContentChild,
570
+ args: ['formWidgetMax']
571
+ }], onKeydownHandler: [{
572
+ type: HostListener,
573
+ args: ['keydown', ['$event']]
574
+ }], handleClick: [{
575
+ type: HostListener,
576
+ args: ['click', ['$event']]
577
+ }] } });
578
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvZGF0YS9mb3JtL3NyYy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFFUixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixHQUFHLEVBQ0gsUUFBUSxFQUNSLGNBQWMsRUFDZCxjQUFjLEVBQ2QsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNYLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsT0FBTyxFQUNQLHdCQUF3QixFQUN4QixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULGtCQUFrQixFQUNsQixpQkFBaUIsRUFDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBSWhFLG9GQUFvRjtBQUNwRixNQUFNLGlCQUFpQixHQUFHLEdBQUcs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QyxNQUFNOzswQkFDaEIsU0FBUzsyQkFBQyxzQkFBc0I7OzBCQUNoQyxTQUFTOzJCQUFDLEtBQUs7OzBCQUNmLFNBQVM7MkJBQUMsVUFBVTs7MEJBQ3BCLFNBQVM7MkJBQUMsWUFBWTs7MEJBQ3RCLFNBQVM7MkJBQUMsZ0JBQWdCOzswQkFDMUIsU0FBUzsyQkFBQyxnQkFBZ0I7OzBCQUMxQixJQUFJOzswQkFBSSxNQUFNOzJCQUFDLE9BQU87OzBCQUN0QixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0E5RkcsVUFBVTtzQkFBckQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNYLGFBQWE7c0JBQTNDLFlBQVk7dUJBQUMsZUFBZTtnQkFnRVEsZ0JBQWdCO3NCQUFwRCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJQSxXQUFXO3NCQUE3QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBTZWxmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIGFkZEZvcklkQXR0cmlidXRlcyxcbiAgICBBcHAsXG4gICAgZGVib3VuY2UsXG4gICAgRm9ybVdpZGdldFR5cGUsXG4gICAgaXNEYXRlVGltZVR5cGUsXG4gICAgaXNEZWZpbmVkLFxuICAgIGlzTW9iaWxlLFxuICAgIG5vb3AsXG4gICAgVmlld3BvcnRcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBCYXNlRmllbGRWYWxpZGF0aW9ucyxcbiAgICBDb250ZXh0LFxuICAgIGdldERlZmF1bHRWaWV3TW9kZVdpZGdldCxcbiAgICBnZXRFdmFsdWF0ZWREYXRhLFxuICAgIHByb3ZpZGVBcyxcbiAgICBwcm92aWRlQXNXaWRnZXRSZWYsXG4gICAgU3R5bGFibGVDb21wb25lbnRcbn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0xpc3RDb21wb25lbnR9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RhdGEvbGlzdCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9mb3JtLWZpZWxkLnByb3BzJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtmb3JFYWNoLCBnZXQsIGlzQXJyYXksIGlzT2JqZWN0LCBqb2lufSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuLy8gQ3VzdG9tIHZhbGlkYXRvciB0byBzaG93IHZhbGlkYXRpb24gZXJyb3IsIGlmIHNldFZhbGlkYXRpb25NZXNzYWdlIG1ldGhvZCBpcyB1c2VkXG5jb25zdCBjdXN0b21WYWxpZGF0b3JGbiA9ICgpID0+IHtcbiAgICByZXR1cm4geyBjdXN0b206IHRydWUgfTtcbn07XG5cbmNvbnN0IEZJTEVfVFlQRVMgPSB7XG4gICAgJ2ltYWdlJyA6ICdpbWFnZS8qJyxcbiAgICAndmlkZW8nIDogJ3ZpZGVvLyonLFxuICAgICdhdWRpbycgOiAnYXVkaW8vKidcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3dtRm9ybUZpZWxkXScsXG4gICAgZXhwb3J0QXM6ICd3bUZvcm1GaWVsZCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihGb3JtRmllbGREaXJlY3RpdmUpLFxuICAgICAgICBwcm92aWRlQXMoRm9ybUZpZWxkRGlyZWN0aXZlLCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHtwcm92aWRlOiBDb250ZXh0LCB1c2VGYWN0b3J5OiAoKSA9PiB7IHJldHVybiB7fSB9LCBtdWx0aTogdHJ1ZX1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZERpcmVjdGl2ZSBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgQENvbnRlbnRDaGlsZCgnZm9ybVdpZGdldCcsIHtzdGF0aWM6IHRydWV9KSBmb3JtV2lkZ2V0O1xuICAgIEBDb250ZW50Q2hpbGQoJ2Zvcm1XaWRnZXRNYXgnKSBmb3JtV2lkZ2V0TWF4O1xuXG4gICAgcHJpdmF0ZSBmYjtcbiAgICBwcml2YXRlIHZpZXdwb3J0O1xuXG4gICAgLy8gZXhjbHVkZVByb3BzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIHByb3BzIHRoYXQgc2hvdWxkIG5vdCBiZSBhcHBsaWVkIG9uIGlubmVyIHdpZGdldFxuICAgIHByaXZhdGUgZXhjbHVkZVByb3BzO1xuICAgIHByaXZhdGUgX3ZhbGlkYXRvcnM7XG4gICAgcHJpdmF0ZSBfb2xkVXBsb2FkVmFsO1xuXG4gICAgbmdmb3JtOiBGb3JtR3JvdXA7XG4gICAgZGVmYXVsdHZhbHVlO1xuICAgIGRpc3BsYXlleHByZXNzaW9uO1xuICAgIGRpc3BsYXlmaWVsZDtcbiAgICBkaXNwbGF5bGFiZWw7XG4gICAgZGlzcGxheW5hbWU7XG4gICAgZ2VuZXJhdG9yO1xuICAgIGtleTtcbiAgICB0YXJnZXQ7XG4gICAgYmluZGluZztcbiAgICB3aWRnZXR0eXBlO1xuICAgIGNsYXNzO1xuICAgIHJlYWRvbmx5O1xuICAgIHNob3c7XG4gICAgdHlwZTtcbiAgICBpc0RhdGFTZXRCb3VuZDtcbiAgICB2aWV3bW9kZXdpZGdldDtcbiAgICBiaW5kZGF0YXNldDtcbiAgICBiaW5kZGlzcGxheWV4cHJlc3Npb247XG4gICAgYmluZENoaXBjbGFzcztcbiAgICBkaXNwbGF5aW1hZ2VzcmM6IHN0cmluZztcbiAgICBiaW5kZGlzcGxheWltYWdlc3JjO1xuICAgIGJpbmRkaXNwbGF5bGFiZWw7XG4gICAgZm9ybTtcbiAgICBmaWxldHlwZTtcbiAgICBleHRlbnNpb25zO1xuICAgIHBlcm1pdHRlZDtcbiAgICBwZXJpb2Q7XG4gICAgaXNSYW5nZTtcbiAgICBuYW1lO1xuICAgIC8vIFZhbGlkYXRpb24gcHJvcGVydGllc1xuICAgIHJlcXVpcmVkO1xuICAgIG1heGNoYXJzO1xuICAgIG1pbnZhbHVlO1xuICAgIG1heHZhbHVlO1xuICAgIHJlZ2V4cDtcbiAgICBmaWVsZERlZkNvbmZpZztcbiAgICBwbGFjZWhvbGRlcjtcbiAgICBpbnB1dHR5cGU7XG4gICAgdmFsaWRhdGlvbm1lc3NhZ2U7XG5cbiAgICBwdWJsaWMgX2ZpZWxkTmFtZTtcblxuICAgIHByaXZhdGUgX2RlYm91bmNlU2V0VXBWYWxpZGF0b3JzO1xuICAgIHByaXZhdGUgX2luaXRQcm9wc1JlcztcbiAgICBwcml2YXRlIHBhcmVudExpc3Q7XG4gICAgcHJpdmF0ZSBzaG93UGVuZGluZ1NwaW5uZXI6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfYWN0aXZlRmllbGQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBub3RpZnlGb3JGaWVsZHM6IGFueTtcbiAgICBwcml2YXRlIGZpZWxkVmFsaWRhdGlvbnM7XG4gICAgcHJpdmF0ZSBfdHJpZ2dlcmVkQnlVc2VyOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NsaWNrdHJpZ2dlcmVkQnlVc2VyOiBib29sZWFuO1xuICAgIHByaXZhdGUgYXBwOiBBcHA7XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLl90cmlnZ2VyZWRCeVVzZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSkgaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgdGhpcy5fY2xpY2t0cmlnZ2VyZWRCeVVzZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGb2N1c2VkO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBmb3JtOiBGb3JtQ29tcG9uZW50LFxuICAgICAgICBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHZpZXdwb3J0OiBWaWV3cG9ydCxcbiAgICAgICAgYXBwOiBBcHAsXG4gICAgICAgIEBPcHRpb25hbCgpIHBhcmVudExpc3Q6IExpc3RDb21wb25lbnQsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2NoaXBjbGFzcy5iaW5kJykgYmluZENoaXBjbGFzczogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdkYXRhc2V0LmJpbmQnKSBiaW5kZGF0YXNldCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWV4cHJlc3Npb24uYmluZCcpIGJpbmRkaXNwbGF5ZXhwcmVzc2lvbjogc3RyaW5nLFxuICAgICAgICBAQXR0cmlidXRlKCdkaXNwbGF5bGFiZWwuYmluZCcpIGJpbmRkaXNwbGF5bGFiZWw6IHN0cmluZyxcbiAgICAgICAgQEF0dHJpYnV0ZSgnd2lkZ2V0dHlwZScpIF93aWRnZXRUeXBlLFxuICAgICAgICBAQXR0cmlidXRlKCduYW1lJykgbmFtZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnZGlzcGxheWltYWdlc3JjLmJpbmQnKSBiaW5kZGlzcGxheWltYWdlc3JjOiBTdHJpbmcsXG4gICAgICAgIEBBdHRyaWJ1dGUoJ2tleScpIGtleSxcbiAgICAgICAgQEF0dHJpYnV0ZSgnaXMtcmFuZ2UnKSBpc1JhbmdlLFxuICAgICAgICBAQXR0cmlidXRlKCdwYy1kaXNwbGF5JykgcGNEaXNwbGF5LFxuICAgICAgICBAQXR0cmlidXRlKCdtb2JpbGUtZGlzcGxheScpIG1vYmlsZURpc3BsYXksXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3RhYmxldC1kaXNwbGF5JykgdGFibGV0RGlzcGxheSxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KENvbnRleHQpIGNvbnRleHRzOiBBcnJheTxhbnk+LFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgY29uc3QgV0lER0VUX0NPTkZJRyA9IHtcbiAgICAgICAgICAgIHdpZGdldFR5cGU6ICd3bS1mb3JtLWZpZWxkJyxcbiAgICAgICAgICAgIGhvc3RDbGFzczogJycsXG4gICAgICAgICAgICB3aWRnZXRTdWJUeXBlOiAnd20tZm9ybS1maWVsZC0nICsgKF93aWRnZXRUeXBlIHx8IEZvcm1XaWRnZXRUeXBlLlRFWFQpLnRyaW0oKVxuICAgICAgICB9O1xuICAgICAgICBsZXQgcmVzb2x2ZUZuOiBGdW5jdGlvbiA9IG5vb3A7XG5cbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQsIG5ldyBQcm9taXNlKHJlcyA9PiByZXNvbHZlRm4gPSByZXMpKTtcbiAgICAgICAgdGhpcy5faW5pdFByb3BzUmVzID0gcmVzb2x2ZUZuO1xuICAgICAgICB0aGlzLmFwcCA9IGFwcDtcbiAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZyA9IHt9O1xuICAgICAgICB0aGlzLmNsYXNzID0gJyc7XG4gICAgICAgIHRoaXMuYmluZGRhdGFzZXQgPSBiaW5kZGF0YXNldDtcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjID0gYmluZGRpc3BsYXlpbWFnZXNyYztcbiAgICAgICAgdGhpcy5iaW5kZGlzcGxheWV4cHJlc3Npb24gPSBiaW5kZGlzcGxheWV4cHJlc3Npb247XG4gICAgICAgIHRoaXMuYmluZENoaXBjbGFzcyA9IGJpbmRDaGlwY2xhc3M7XG4gICAgICAgIHRoaXMuYmluZGRpc3BsYXlsYWJlbCA9IGJpbmRkaXNwbGF5bGFiZWw7XG4gICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgICAgIHRoaXMuZmIgPSBmYjtcbiAgICAgICAgdGhpcy52aWV3cG9ydCA9IHZpZXdwb3J0O1xuICAgICAgICB0aGlzLl9maWVsZE5hbWUgPSBrZXkgfHwgbmFtZTtcbiAgICAgICAgdGhpcy5pc1JhbmdlID0gaXNSYW5nZTtcbiAgICAgICAgdGhpcy5leGNsdWRlUHJvcHMgPSBuZXcgU2V0KFsndHlwZScsICduYW1lJ10pO1xuICAgICAgICB0aGlzLndpZGdldHR5cGUgPSBfd2lkZ2V0VHlwZTtcbiAgICAgICAgdGhpcy5wYXJlbnRMaXN0ID0gcGFyZW50TGlzdDtcbiAgICAgICAgdGhpcy5ub3RpZnlGb3JGaWVsZHMgPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5iaW5kZGF0YXNldCB8fCB0aGlzLiRlbGVtZW50LmF0dHIoJ2RhdGFzZXQnKSkge1xuICAgICAgICAgICAgdGhpcy5pc0RhdGFTZXRCb3VuZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb250ZXh0c1swXS5fb25Gb2N1c0ZpZWxkID0gdGhpcy5fb25Gb2N1c0ZpZWxkLmJpbmQodGhpcyk7XG4gICAgICAgIGNvbnRleHRzWzBdLl9vbkJsdXJGaWVsZCA9IHRoaXMuX29uQmx1ckZpZWxkLmJpbmQodGhpcyk7XG5cbiAgICAgICAgdGhpcy5fZGVib3VuY2VTZXRVcFZhbGlkYXRvcnMgPSBkZWJvdW5jZSgoKSA9PiB0aGlzLnNldFVwVmFsaWRhdG9ycygpLCA1MDApO1xuICAgIH1cblxuICAgIF9vbkZvY3VzRmllbGQoJGV2dCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVGaWVsZCA9IHRydWU7XG4gICAgICAgICQoJGV2dC50YXJnZXQpLmNsb3Nlc3QoJy5saXZlLWZpZWxkJykuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG4gICAgfVxuXG4gICAgLy8gRnVuY3Rpb24gdG8gZ2V0IHRoZSBhY3RpdmUgZWxlbWVudCBtYXJrdXAgYmFzZWQgb24gd2lkZ2V0IHR5cGVcbiAgICBnZXRBY3RpdmVFbGVtZW50KCkge1xuICAgICAgICBjb25zdCB3aWRnZXRUeXBlID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnd2lkZ2V0dHlwZScpO1xuICAgICAgICBzd2l0Y2ggKHdpZGdldFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzZWxlY3QnKTtcbiAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldEFyaWFBdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5nZXRBY3RpdmVFbGVtZW50KCk7XG4gICAgICAgIGlmICh0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdLmludmFsaWQgJiYgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXS50b3VjaGVkICYmIHRoaXMuZm9ybS5pc1VwZGF0ZU1vZGUpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ19fZXJyb3Jtc2cnLCBgJHt0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdfX3ZhbGlkYXRpb25JZCcpfWApO1xuICAgICAgICAgICAgZWxlbWVudD8uc2V0QXR0cmlidXRlKCdhcmlhLWludmFsaWQnLCBgJHt0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdLmludmFsaWR9YCk7XG4gICAgICAgICAgICBlbGVtZW50Py5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGVzY3JpYmVkYnknLCBgJHt0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdfX3ZhbGlkYXRpb25JZCcpfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnX19lcnJvcm1zZycpO1xuICAgICAgICAgICAgZWxlbWVudD8ucmVtb3ZlQXR0cmlidXRlKCdhcmlhLWludmFsaWQnKTtcbiAgICAgICAgICAgIGVsZW1lbnQ/LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX29uQmx1ckZpZWxkKCRldnQpIHtcbiAgICAgICAgJCgkZXZ0LnRhcmdldCkuY2xvc2VzdCgnLmxpdmUtZmllbGQnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIGNvbnN0IGVsZSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdwLnRleHQtZGFuZ2VyJyk7XG4gICAgICAgIC8vIEZpeCBmb3IgW1dNUy0yMzk1OV06IEFEQSBpc3N1ZSAtIGFkZGluZyBhcmlhLWRlc2NyaWJlZGJ5LCBhcmlhLWludmFsaWQsIF9fZXJyb3Jtc2cgYXR0cmlidXRlcyBvbmx5IHdoZW4gdGhlIGZvcm0gZmllbGQgaXMgaW52YWxpZCAsIGVsc2UgcmVtb3ZpbmcgdGhlIGF0dHJpYnV0ZXNcbiAgICAgICAgdGhpcy5zZXRBcmlhQXR0cmlidXRlcygpO1xuICAgICAgICB0aGlzLl9hY3RpdmVGaWVsZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl90cmlnZ2VyZWRCeVVzZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fY2xpY2t0cmlnZ2VyZWRCeVVzZXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCBpbiB2aWV3IG1vZGUgb2YgZm9ybSBmaWVsZFxuICAgIGV2YWx1YXRlRXhwcihvYmplY3QsIGRpc3BsYXlGaWVsZCwgZGlzcGxheUV4cHIpIHtcbiAgICAgICAgaWYgKCFkaXNwbGF5RXhwciB8fCAhZGlzcGxheUZpZWxkKSB7XG4gICAgICAgICAgICBkaXNwbGF5RmllbGQgPSBPYmplY3Qua2V5cyhvYmplY3QpWzBdO1xuICAgICAgICAgICAgLy8gSWYgZGF0YXNldCBpcyBub3QgcmVhZHksIGRpc3BsYXkgZXhwcmVzc2lvbiB3aWxsIG5vdCBiZSBkZWZpbmVkXG4gICAgICAgICAgICBpZiAoIWRpc3BsYXlGaWVsZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZ2V0RXZhbHVhdGVkRGF0YShvYmplY3QsIHtcbiAgICAgICAgICAgIGZpZWxkOiBkaXNwbGF5RmllbGQsXG4gICAgICAgICAgICBleHByZXNzaW9uOiBkaXNwbGF5RXhwclxuICAgICAgICB9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgIH1cblxuICAgIC8vIEV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGluIHZpZXcgbW9kZSBvZiBmb3JtIGZpZWxkXG4gICAgZ2V0RGlzcGxheUV4cHIoKSB7XG4gICAgICAgIGNvbnN0IGNhcHRpb24gPSBbXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICBjb25zdCBkaXNwbGF5RmllbGQgPSB0aGlzLmRpc3BsYXlmaWVsZCB8fCB0aGlzLmRpc3BsYXlsYWJlbFxuICAgICAgICBjb25zdCBkaXNwbGF5RXhwciA9IHRoaXMuZGlzcGxheWV4cHJlc3Npb247XG4gICAgICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGZvckVhY2godmFsdWUsIG9iaiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uLnB1c2godGhpcy5ldmFsdWF0ZUV4cHIob2JqLCBkaXNwbGF5RmllbGQsIGRpc3BsYXlFeHByKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvbi5wdXNoKHRoaXMuZXZhbHVhdGVFeHByKHZhbHVlLCBkaXNwbGF5RmllbGQsIGRpc3BsYXlFeHByKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gam9pbihjYXB0aW9uLCAnLCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgPyAnJyA6IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0Q2FwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCkgPyAoZ2V0KHRoaXMuZm9ybS5kYXRhb3V0cHV0LCB0aGlzLl9maWVsZE5hbWUpIHx8ICcnKSA6IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gTm90aWZpZXMgY2hhbmdlcyB0byBvYnNlcnZpbmcgdmFsaWRhdGlvbiBmaWVsZHNcbiAgICBub3RpZnlDaGFuZ2VzKCkge1xuICAgICAgICBmb3JFYWNoKHRoaXMubm90aWZ5Rm9yRmllbGRzLCBmaWVsZCA9PiB7XG4gICAgICAgICAgICBmaWVsZC5maWVsZFZhbGlkYXRpb25zLnZhbGlkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVycyBvYnNlcnZlciBvZiB2YWxpZGF0aW9uIGZpZWxkc1xuICAgIG9ic2VydmVPbihmaWVsZHMpIHtcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLm9ic2VydmVPbihmaWVsZHMsICdmb3JtZmllbGRzJyk7XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIHNldHVwIHZhbGlkYXRvcnMgZm9yIHJlYWN0aXZlIGZvcm0gY29udHJvbFxuICAgIHNldFVwVmFsaWRhdG9ycyhjdXN0b21WYWxpZGF0b3I/KSB7XG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5zZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yKTtcbiAgICB9XG5cbiAgICAvLyBzZXRzIHRoZSBjdXN0b20gYXN5bmMgdmFsaWRhdGlvbiBvbiB0aGUgZm9ybSBmaWVsZFxuICAgIHNldEFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzKSB7XG4gICAgICAgIHRoaXMuZmllbGRWYWxpZGF0aW9ucy5zZXRBc3luY1ZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gICAgfVxuXG4gICAgLy8gc2V0cyB0aGUgZGVmYXVsdCBhbmQgY3VzdG9tIHN5bmMgdmFsaWRhdGlvbiBvbiB0aGUgZm9ybSBmaWVsZFxuICAgIHNldFZhbGlkYXRvcnModmFsaWRhdG9ycykge1xuICAgICAgICB0aGlzLmZpZWxkVmFsaWRhdGlvbnMuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gc2V0IHRoZSBwcm9wZXJ0aWVzIG9uIGlubmVyIGZvcm0gd2lkZ2V0XG4gICAgc2V0Rm9ybVdpZGdldChrZXksIHZhbCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC53aWRnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVdpZGdldC53aWRnZXRba2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJvdW5kRm4oZm4pIHtcbiAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIHNldCB0aGUgcHJvcGVydGllcyBvbiBpbm5lciBtYXggZm9ybSB3aWRnZXQgKHdoZW4gcmFuZ2UgaXMgc2VsZWN0ZWQpXG4gICAgc2V0TWF4Rm9ybVdpZGdldChrZXksIHZhbCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtV2lkZ2V0TWF4KSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXRNYXgud2lkZ2V0W2tleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBjb25zdCBpc0Zvcm1EaXJ0eSA9IHRoaXMuZm9ybS5kaXJ0eTtcblxuICAgICAgICBpZiAoa2V5ICE9PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmV4Y2x1ZGVQcm9wcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXMgdXBsb2FkIHdpZGdldCBpcyBhbiBIVE1MIHdpZGdldCwgb25seSByZXF1aXJlZCBwcm9wZXJ0eSBpcyBzZXR1cFxuICAgICAgICBpZiAodGhpcy53aWRnZXR0eXBlID09PSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJvdW5jZVNldFVwVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoa2V5LCBudik7XG5cbiAgICAgICAgLy8gUGxhY2Vob2xkZXIgc2hvdWxkIG5vdCBiZSBzZXR1cCBvbiBtYXggd2lkZ2V0XG4gICAgICAgIGlmIChrZXkgIT09ICdwbGFjZWhvbGRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0TWF4Rm9ybVdpZGdldChrZXksIG52KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdkZWZhdWx0dmFsdWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5vbkZpZWxkRGVmYXVsdFZhbHVlQ2hhbmdlKHRoaXMsIG52KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heGRlZmF1bHR2YWx1ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5tYXhWYWx1ZSA9IG52O1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TWF4Rm9ybVdpZGdldCgnZGF0YXZhbHVlJywgbnYpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5vbk1heERlZmF1bHRWYWx1ZUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWF4cGxhY2Vob2xkZXInOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TWF4Rm9ybVdpZGdldCgncGxhY2Vob2xkZXInLCBudik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyZXF1aXJlZCc6XG4gICAgICAgICAgICAgICAgLy8gV01TLTE4OTA2IDogRG8gbm90IG1ha2UgZm9ybSBhcyBkaXJ0eSBkdXJpbmcgcmVxdWlyZWQgcHJvcCBpbml0aWFsaXphdGlvblxuICAgICAgICAgICAgICAgIGlmIChpc0Zvcm1EaXJ0eSAhPT0gdGhpcy5mb3JtLmRpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ21heGNoYXJzJzpcbiAgICAgICAgICAgIGNhc2UgJ21pbnZhbHVlJzpcbiAgICAgICAgICAgIGNhc2UgJ21heHZhbHVlJzpcbiAgICAgICAgICAgIGNhc2UgJ3JlZ2V4cCc6XG4gICAgICAgICAgICBjYXNlICdzaG93JzpcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWJvdW5jZVNldFVwVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncHJpbWFyeS1rZXknOlxuICAgICAgICAgICAgICAgIGlmIChudikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0UHJpbWFyeUtleSh0aGlzLl9maWVsZE5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXktbmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5bmFtZSA9IG52O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmVhZG9ubHknOlxuICAgICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seVN0YXRlKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoa2V5LCBudik7XG4gICAgICAgIHRoaXMuc2V0TWF4Rm9ybVdpZGdldChrZXksIG52KTtcbiAgICAgICAgc3VwZXIub25TdHlsZUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxuXG4gICAgZ2V0IGRhdGF2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQuZGF0YXZhbHVlO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUodmFsKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb250cm9sICYmIHRoaXMud2lkZ2V0dHlwZSAhPT0gRm9ybVdpZGdldFR5cGUuVVBMT0FEKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sLnNldFZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbHVlID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBtYXhWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVdpZGdldE1heCAmJiB0aGlzLmZvcm1XaWRnZXRNYXguZGF0YXZhbHVlO1xuICAgIH1cblxuICAgIHNldCBtYXhWYWx1ZSh2YWwpIHtcbiAgICAgICAgaWYgKHRoaXMuX21heENvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuX21heENvbnRyb2wuc2V0VmFsdWUodmFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBtaW5WYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IG1pblZhbHVlKHZhbCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgcmVhY3RpdmUgZm9ybSBjb250cm9sXG4gICAgZ2V0IF9jb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ2Zvcm0gJiYgdGhpcy5uZ2Zvcm0uY29udHJvbHNbdGhpcy5fZmllbGROYW1lXTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHJlYWN0aXZlIG1heCBmb3JtIGNvbnRyb2xcbiAgICBnZXQgX21heENvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nZm9ybSAmJiB0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWUgKyAnX21heCddO1xuICAgIH1cblxuICAgIC8vIEdldCB0aGUgZGlzcGxheVZhbHVlXG4gICAgZ2V0IGRpc3BsYXlWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQuZGlzcGxheVZhbHVlO1xuICAgIH1cblxuICAgIC8vR2V0IHRoZSB0aW1lc3RhbXBcbiAgICBnZXQgdGltZXN0YW1wKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LnRpbWVzdGFtcDtcbiAgICB9XG5cbiAgICAvL0dldCB0aGUgY2hhcmxlbmd0aFxuICAgIGdldCBjaGFybGVuZ3RoKCl7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1XaWRnZXQgJiYgdGhpcy5mb3JtV2lkZ2V0LmNoYXJsZW5ndGg7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSByZWFjdGl2ZSBmb3JtIGNvbnRyb2xcbiAgICBjcmVhdGVDb250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5jb250cm9sKHVuZGVmaW5lZCwge1xuICAgICAgICAgICAgdmFsaWRhdG9yczogdGhpcy5fdmFsaWRhdG9yc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBPbiBmaWVsZCB2YWx1ZSBjaGFuZ2UsIHByb3BhZ2F0ZSBldmVudCB0byBwYXJlbnQgZm9ybVxuICAgIG9uVmFsdWVDaGFuZ2UodmFsKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0Rlc3Ryb3llZCkge1xuICAgICAgICAgICAgY29uc3QgY2FwdGlvbkVsID0gICQodGhpcy5uYXRpdmVFbGVtZW50KS5maW5kKCcuY2FwdGlvbi1mbG9hdGluZycpO1xuICAgICAgICAgICAgaWYgKGNhcHRpb25FbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gaGFzVmFsdWUgY2hlY2sgd2hldGhlciBmb3JtLWZpZWxkIGhhcyBhIHZhbHVlIGZyb20gcGFzc2VkIHZhbCBhdHRyaWJ1dGVcbiAgICAgICAgICAgICAgICAvLyBBZGRlZCBzYW5pdHkgY2hlY2sgb24gdmFsIHRvIHN1cHBvcnQgdmFsdWVzIGxpa2VkIDAsIGZhbHNlIGV0YyBhcyBpbnB1dCB2YWwgLSBXTVMtMjAwODRcbiAgICAgICAgICAgICAgICAvLyBleHBsaWNpdGx5IGNoZWNraW5nIGZvciBpbnB1dCB2YWx1ZSBvciAtd2Via2l0LWF1dG9maWxsIHRvIHNlZSB3aGV0aGVyIHRoZXJlIGFyZSBhbnkgYXV0b2ZpbGxlZCBmaWVsZHMgLSBXTVMtMjAxNDFcblxuICAgICAgICAgICAgICAgIGNvbnN0IGhhc1ZhbHVlID0gKChpc0RlZmluZWQodmFsKSAmJiB2YWwgIT09ICcnICYmIHZhbCAhPT0gbnVsbCkgfHwgY2FwdGlvbkVsLmZpbmQoJ2lucHV0JykudmFsKCkpIHx8IGNhcHRpb25FbC5maW5kKCdpbnB1dDotd2Via2l0LWF1dG9maWxsJykubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5hcHAubm90aWZ5KCdjYXB0aW9uUG9zaXRpb25BbmltYXRlJywge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsOiBoYXNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlRWw6IGNhcHRpb25FbCxcbiAgICAgICAgICAgICAgICAgICAgaXNTZWxlY3RNdWx0aXBsZTogdGhpcy5mb3JtV2lkZ2V0ICYmIHRoaXMuZm9ybVdpZGdldC5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgaXNGb2N1c2VkOiB0aGlzLl9hY3RpdmVGaWVsZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAvLyBGaXggZm9yIFtXTVMtMjM5NTldOiBBREEgaXNzdWUgLSBhZGRpbmcgYXJpYS1kZXNjcmliZWRieSwgYXJpYS1pbnZhbGlkLCBfX2Vycm9ybXNnIGF0dHJpYnV0ZXMgb25seSB3aGVuIHRoZSBmb3JtIGZpZWxkIGlzIGludmFsaWQgLCBlbHNlIHJlbW92aW5nIHRoZSBhdHRyaWJ1dGVzXG4gICAgICAgICAgICB0aGlzLnNldEFyaWFBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICB0aGlzLmZvcm0ub25GaWVsZFZhbHVlQ2hhbmdlKHRoaXMsIHZhbCk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUNoYW5nZXMoKTtcbiAgICAgICAgICAgIC8vIERvIG1hcmsgYXMgdG91Y2hlZCwgb25seSBpbmNhc2Ugd2hlbiB1c2VyIGhhcyBlbnRlcmVkIGFuIGlucHV0IGJ1dCBub3QgdGhyb3VnaCB0aGUgc2NyaXB0LiBIZW5jZSBhZGRlZCBtb3VzZWRvd24gZXZlbnQgY2hlY2tcbiAgICAgICAgICAgIC8vIGFjdGl2ZSBjbGFzcyBjaGVja3Mgd2hldGhlciB1c2VyIGlzIG9uIHRoZSBjdXJyZW50IGZpZWxkLCBpZiBzbyBtYXJraW5nIHRoZSBmaWVsZCBhcyB0b3VjaGVkLiBBbmQgZm9ybSBmaWVsZCB2YWxpZGF0aW9uIGhhcHBlbnMgb25jZSBhIGZpZWxkIGlzIHRvdWNoZWRcbiAgICAgICAgICAgIC8vIF90cmlnZ2VyZWRCeVVzZXIgY2hlY2tzIHdoZXRoZXIgdGhlIGZpZWxkIGlzIHRvdWNoZWQgYnkgdGhlIHVzZXIgb3IgdHJpZ2dlcmVkIGZyb20gZXh0ZXJuYWwgc2NyaXB0XG4gICAgICAgICAgICAvLyBXTVMtMjI0NTY6IF9jbGlja3RyaWdnZXJlZEJ5VXNlciBjaGVja3Mgd2hlbiB1c2VyIHNlbGVjdHMgZGF0ZXRpbWV0eXBlIGZyb20gcGlja2VyLCBtYXJrIHRoZSBmaWVsZCBhcyB0b3VjaGVkIHRvIHNob3cgdmFsaWRhdGlvbiBlcnJvcnMgaW4gbW9iaWxlXG5cbiAgICAgICAgICAgIGlmICh0aGlzLiRlbGVtZW50LmZpbmQoJy5hY3RpdmUnKS5sZW5ndGggPiAwIHx8IHRoaXMuZm9ybS50b3VjaGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RyaWdnZXJlZEJ5VXNlciB8fCAoaXNNb2JpbGUoKSAmJiB0aGlzLl9jbGlja3RyaWdnZXJlZEJ5VXNlciAmJiBpc0RhdGVUaW1lVHlwZSh0aGlzLndpZGdldHR5cGUpKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5nZm9ybS5jb250cm9sc1t0aGlzLl9maWVsZE5hbWVdLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zLnNldEN1c3RvbVZhbGlkYXRpb25NZXNzYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblN0YXR1c0NoYW5nZShzdGF0dXMpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRGVzdHJveWVkKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dQZW5kaW5nU3Bpbm5lciA9IChzdGF0dXMgPT09ICdQRU5ESU5HJyk7XG4gICAgICAgICAgICAvLyB3aGlsZSBydW5uaW5nIHZhbGlkYXRpb24sIHdpZGdldCBpcyBkaXNhYmxlZCBhbmQgc3Bpbm5lciBpcyBzaG93blxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGZvcm1XaWRnZXQgZGlzYWJsZWQgc3RhdGUgaXMgcmVzZXQgdG8gdGhlIHN0YXRlIG9mIHRoZSBmb3JtRmllbGQuXG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSAnUEVORElORycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZvcm1XaWRnZXQuZGlzYWJsZWQgIT09ICh0aGlzIGFzIGFueSkuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1XaWRnZXQuZGlzYWJsZWQgPSAodGhpcyBhcyBhbnkpLmRpc2FibGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTWV0aG9kIHRvIGV4cG9zZSB2YWxpZGF0aW9uIG1lc3NhZ2UgYW5kIHNldCBjb250cm9sIHRvIGludmFsaWRcbiAgICBzZXRWYWxpZGF0aW9uTWVzc2FnZSh2YWwpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlID0gdmFsO1xuICAgICAgICAgICAgdGhpcy5zZXRVcFZhbGlkYXRvcnMoY3VzdG9tVmFsaWRhdG9yRm4pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRSZWFkT25seVN0YXRlKCkge1xuICAgICAgICBsZXQgcmVhZE9ubHk7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uaXNVcGRhdGVNb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpc1sncHJpbWFyeS1rZXknXSAmJiAhdGhpc1snaXMtcmVsYXRlZCddICYmICF0aGlzLnBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8qSWYgdGhlIGZpZWxkIGlzIHByaW1hcnkgYnV0IGlzIGFzc2lnbmVkIHNldCByZWFkb25seSBmYWxzZS5cbiAgICAgICAgICAgICAgICAgICBBc3NpZ25lZCBpcyB3aGVyZSB0aGUgdXNlciBpbnB1dHMgdGhlIHZhbHVlIHdoaWxlIGEgbmV3IGVudHJ5LlxuICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgbm90IGVkaXRhYmxlKGluIHVwZGF0ZSBtb2RlKSBvbmNlIGVudHJ5IGlzIHN1Y2Nlc3NmdWwqL1xuICAgICAgICAgICAgICAgIHJlYWRPbmx5ID0gISh0aGlzLmdlbmVyYXRvciA9PT0gJ2Fzc2lnbmVkJyAmJiB0aGlzLmZvcm0ub3BlcmF0aW9uVHlwZSAhPT0gJ3VwZGF0ZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWFkT25seSA9IHRoaXMucmVhZG9ubHk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJbiB2aWV3IG1vZGUsIHNldCB3aWRnZXQgc3RhdGUgdG8gcmVhZG9ubHkgYWx3YXlzXG4gICAgICAgICAgICByZWFkT25seSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmVhZE9ubHkgPSByZWFkT25seSB8fCB0aGlzLmZvcm0ucmVhZG9ubHk7XG4gICAgICAgIHRoaXMuc2V0Rm9ybVdpZGdldCgncmVhZG9ubHknLCByZWFkT25seSk7XG4gICAgfVxuXG4gICAgcmVzZXREaXNwbGF5SW5wdXQoKSB7XG4gICAgICAgIGlmICgoIWlzRGVmaW5lZCh0aGlzLnZhbHVlKSB8fCB0aGlzLnZhbHVlID09PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVdpZGdldCAmJiB0aGlzLmZvcm1XaWRnZXQucmVzZXREaXNwbGF5SW5wdXQgJiYgdGhpcy5mb3JtV2lkZ2V0LnJlc2V0RGlzcGxheUlucHV0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXNldCgpIHtcbiAgICAgIGlmKHRoaXMuX2NvbnRyb2wpXG4gICAgICAgIHRoaXMuX2NvbnRyb2wucmVzZXQoKTtcbiAgICB9XG5cbiAgICB0cmlnZ2VyVXBsb2FkRXZlbnQoJGV2ZW50LCBldmVudE5hbWUpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7ICRldmVudCB9O1xuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnY2hhbmdlJykge1xuICAgICAgICAgICAgcGFyYW1zLm5ld1ZhbCA9ICRldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgICAgICBwYXJhbXMub2xkVmFsID0gdGhpcy5fb2xkVXBsb2FkVmFsO1xuICAgICAgICAgICAgdGhpcy5fb2xkVXBsb2FkVmFsID0gcGFyYW1zLm5ld1ZhbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soZXZlbnROYW1lLCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJGb3JtRmllbGQoKSB7XG5cbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gdGhpcy5fZmllbGROYW1lO1xuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudExpc3QgJiYgISh0aGlzLmZvcm0ucGFyZW50TGlzdCA9PT0gdGhpcy5wYXJlbnRMaXN0KSkge1xuICAgICAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICAgICAgbGV0IF9maWVsZE5hbWUgPSBmaWVsZE5hbWU7XG4gICAgICAgICAgICB3aGlsZSAodGhpcy5uZ2Zvcm0uY29udHJvbHMuaGFzT3duUHJvcGVydHkoX2ZpZWxkTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBfZmllbGROYW1lID0gYCR7ZmllbGROYW1lfV8ke2NvdW50ZXJ9YDtcbiAgICAgICAgICAgICAgICBjb3VudGVyKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm5nZm9ybS5hZGRDb250cm9sKF9maWVsZE5hbWUsIHRoaXMuY3JlYXRlQ29udHJvbCgpKTtcbiAgICAgICAgICAgIHRoaXMuX2ZpZWxkTmFtZSA9IF9maWVsZE5hbWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nZm9ybS5hZGRDb250cm9sKGZpZWxkTmFtZSwgdGhpcy5jcmVhdGVDb250cm9sKCkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9uVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMub25WYWx1ZUNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgICAgIGNvbnN0IG9uU3RhdHVzQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5fY29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vblN0YXR1c0NoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvblN0YXR1c0NoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICBpZiAodGhpcy5pc1JhbmdlID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgIHRoaXMubmdmb3JtLmFkZENvbnRyb2woZmllbGROYW1lICsgJ19tYXgnLCB0aGlzLmNyZWF0ZUNvbnRyb2woKSk7XG4gICAgICAgICAgICAvLyByZWdpc3RlcmluZyBmb3IgdmFsdWVDaGFuZ2VzIG9uIE1heGZvcm1XaWRnZXRcbiAgICAgICAgICAgIGNvbnN0IG9uTWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLl9tYXhDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGhpcy5vblZhbHVlQ2hhbmdlLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBvbk1heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWUgPSBnZXQodGhpcy5mb3JtLmZvcm1kYXRhLCB0aGlzLl9maWVsZE5hbWUpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm5nZm9ybSA9IHRoaXMuZm9ybS5uZ2Zvcm07XG4gICAgICAgIHRoaXMucmVnaXN0ZXJGb3JtRmllbGQoKTtcbiAgICAgICAgLy8gSW5zdGFudGlhdGUgY3VzdG9tIHZhbGlkYXRvcnMgY2xhc3MgZm9yIGZvcm0gZmllbGRcbiAgICAgICAgdGhpcy5maWVsZFZhbGlkYXRpb25zID0gbmV3IEJhc2VGaWVsZFZhbGlkYXRpb25zKHRoaXMsIHRoaXMuZm9ybVdpZGdldCwgdGhpcy53aWRnZXR0eXBlLCB0aGlzLl9jb250cm9sLCB0aGlzLmZvcm0pO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIHByZXBhcmVGb3JtV2lkZ2V0KCkge1xuICAgICAgICB0aGlzLl9pbml0UHJvcHNSZXMoKTtcblxuICAgICAgICAvLyBzZXR0aW5nIGRpc3BsYXlFeHByZXNzaW9ucyBvbiB0aGUgZm9ybXdpZGdldCBleHBsaWNpdGx5IGFzIGV4cHIgd2FzIGV2YWx1YXRlZCB0byBcIlwiLlxuICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoJ2JpbmRkaXNwbGF5bGFiZWwnLCB0aGlzLmJpbmRkaXNwbGF5bGFiZWwpO1xuICAgICAgICB0aGlzLnNldEZvcm1XaWRnZXQoJ2JpbmRkaXNwbGF5ZXhwcmVzc2lvbicsIHRoaXMuYmluZGRpc3BsYXlleHByZXNzaW9uKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGlzcGxheWltYWdlc3JjJywgdGhpcy5iaW5kZGlzcGxheWltYWdlc3JjKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kQ2hpcGNsYXNzJywgdGhpcy5iaW5kQ2hpcGNsYXNzKTtcbiAgICAgICAgdGhpcy5zZXRGb3JtV2lkZ2V0KCdiaW5kZGF0YXNldCcsIHRoaXMuYmluZGRhdGFzZXQpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJSZWFkeVN0YXRlTGlzdGVuZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5rZXkgPSB0aGlzLl9maWVsZE5hbWUgfHwgdGhpcy50YXJnZXQgfHwgdGhpcy5iaW5kaW5nO1xuICAgICAgICAgICAgdGhpcy52aWV3bW9kZXdpZGdldCA9IHRoaXMudmlld21vZGV3aWRnZXQgfHwgZ2V0RGVmYXVsdFZpZXdNb2RlV2lkZ2V0KHRoaXMud2lkZ2V0dHlwZSk7XG5cbiAgICAgICAgICAgIC8vIEZvciB1cGxvYWQgd2lkZ2V0LCBnZW5lcmF0ZSB0aGUgcGVybWl0dGVkIGZpZWxkXG4gICAgICAgICAgICBpZiAodGhpcy53aWRnZXR0eXBlID09PSBGb3JtV2lkZ2V0VHlwZS5VUExPQUQpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsZVR5cGU7XG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBhY2NlcHRzIHN0cmluZyBmcm9tIGZpbGUgdHlwZSBhbmQgZXh0ZW5zaW9uc1xuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gdGhpcy5maWxldHlwZSA/IEZJTEVfVFlQRVNbdGhpcy5maWxldHlwZV0gOiAnJztcbiAgICAgICAgICAgICAgICB0aGlzLnBlcm1pdHRlZCA9IGZpbGVUeXBlICsgKHRoaXMuZXh0ZW5zaW9ucyA/IChmaWxlVHlwZSA/ICcsJyA6ICcnKSArIHRoaXMuZXh0ZW5zaW9ucyA6ICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc01vYmlsZSgpICYmIHRoaXMudmlld3BvcnQuaXNNb2JpbGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzWydtb2JpbGUtZGlzcGxheSddKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0LnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmlld3BvcnQuaXNUYWJsZXRUeXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzWyd0YWJsZXQtZGlzcGxheSddKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0LnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghdGhpc1sncGMtZGlzcGxheSddKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0LnNob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcuZGlzcGxhbmFtZSA9IHRoaXMuZGlzcGxheW5hbWU7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnNob3cgPSB0aGlzLnNob3c7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmlzUmVsYXRlZCA9IHRoaXNbJ2lzLXJlbGF0ZWQnXTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcuaW5wdXR0eXBlID0gdGhpcy5pbnB1dHR5cGU7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLmdlbmVyYXRvciA9IHRoaXMuZ2VuZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnByaW1hcnlLZXkgPSB0aGlzWydwcmltYXJ5LWtleSddO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5yZXF1aXJlZCA9IHRoaXMucmVxdWlyZWQ7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLl9yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnJlZ2V4cCA9IHRoaXMucmVnZXhwO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy50eXBlID0gdGhpcy50eXBlO1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy5rZXkgPSB0aGlzLmtleTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcubW9iaWxlRGlzcGxheSA9IHRoaXNbJ21vYmlsZS1kaXNwbGF5J107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnBjRGlzcGxheSA9IHRoaXNbJ3BjLWRpc3BsYXknXTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcudGFibGV0RGlzcGxheSA9IHRoaXNbJ3RhYmxldC1kaXNwbGF5J107XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGVmQ29uZmlnLnZhbGlkYXRpb25tZXNzYWdlID0gdGhpcy52YWxpZGF0aW9ubWVzc2FnZTtcbiAgICAgICAgICAgIHRoaXMuZmllbGREZWZDb25maWcudmlld21vZGV3aWRnZXQgPSB0aGlzLnZpZXdtb2Rld2lkZ2V0O1xuICAgICAgICAgICAgdGhpcy5maWVsZERlZkNvbmZpZy53aWRnZXQgPSB0aGlzLndpZGdldHR5cGU7XG5cbiAgICAgICAgICAgIC8vIFJlZ2lzdGVyIHRoZSBmb3JtIGZpZWxkIHdpdGggcGFyZW50IGZvcm1cbiAgICAgICAgICAgIHRoaXMuZm9ybS5yZWdpc3RlckZvcm1GaWVsZHModGhpcy53aWRnZXQpO1xuXG4gICAgICAgICAgICBhZGRGb3JJZEF0dHJpYnV0ZXModGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seVN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG4gICAgICAgIGlmKHRoaXMud2lkZ2V0U3ViVHlwZSA9PT0gXCJ3bS1mb3JtLWZpZWxkLWN1c3RvbS13aWRnZXRcIiAmJiB0aGlzLmZvcm1XaWRnZXQubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIHRoaXMuZm9ybVdpZGdldCA9IHRoaXMuZm9ybVdpZGdldC5uYXRpdmVFbGVtZW50LndpZGdldDtcbiAgICAgICAgaWYgKHRoaXMuZm9ybVdpZGdldCkge1xuICAgICAgICAgICAgaWYodGhpcy53aWRnZXRTdWJUeXBlID09PSBcIndtLWZvcm0tZmllbGQtY3VzdG9tLXdpZGdldFwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtV2lkZ2V0LmNvbmZpZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlRm9ybVdpZGdldCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVGb3JtV2lkZ2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=