@ng-nest/ui 16.0.10 → 16.0.11

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 (490) hide show
  1. package/esm2022/affix/affix.component.mjs +4 -4
  2. package/esm2022/affix/affix.module.mjs +5 -5
  3. package/esm2022/affix/affix.property.mjs +4 -4
  4. package/esm2022/alert/alert.component.mjs +4 -4
  5. package/esm2022/alert/alert.module.mjs +5 -5
  6. package/esm2022/alert/alert.property.mjs +4 -4
  7. package/esm2022/anchor/anchor-inner.component.mjs +4 -4
  8. package/esm2022/anchor/anchor.component.mjs +4 -4
  9. package/esm2022/anchor/anchor.module.mjs +5 -5
  10. package/esm2022/anchor/anchor.property.mjs +7 -7
  11. package/esm2022/api/api.component.mjs +4 -4
  12. package/esm2022/api/api.module.mjs +5 -5
  13. package/esm2022/auto-complete/auto-complete-portal.component.mjs +5 -5
  14. package/esm2022/auto-complete/auto-complete.component.mjs +5 -5
  15. package/esm2022/auto-complete/auto-complete.module.mjs +5 -5
  16. package/esm2022/auto-complete/auto-complete.property.mjs +4 -4
  17. package/esm2022/avatar/avatar-group.component.mjs +4 -4
  18. package/esm2022/avatar/avatar.component.mjs +4 -4
  19. package/esm2022/avatar/avatar.module.mjs +5 -5
  20. package/esm2022/avatar/avatar.property.mjs +7 -7
  21. package/esm2022/back-top/back-top.component.mjs +4 -4
  22. package/esm2022/back-top/back-top.module.mjs +5 -5
  23. package/esm2022/back-top/back-top.property.mjs +4 -4
  24. package/esm2022/badge/badge.component.mjs +4 -4
  25. package/esm2022/badge/badge.module.mjs +5 -5
  26. package/esm2022/badge/badge.property.mjs +4 -4
  27. package/esm2022/base-form/base-form.component.mjs +4 -4
  28. package/esm2022/base-form/base-form.module.mjs +5 -5
  29. package/esm2022/base-form/base-form.property.mjs +4 -4
  30. package/esm2022/border/border.component.mjs +4 -4
  31. package/esm2022/border/border.module.mjs +5 -5
  32. package/esm2022/button/button.component.mjs +4 -4
  33. package/esm2022/button/button.module.mjs +5 -5
  34. package/esm2022/button/button.property.mjs +7 -7
  35. package/esm2022/button/buttons.component.mjs +4 -4
  36. package/esm2022/calendar/calendar.component.mjs +4 -4
  37. package/esm2022/calendar/calendar.module.mjs +5 -5
  38. package/esm2022/calendar/calendar.property.mjs +4 -4
  39. package/esm2022/card/card.component.mjs +4 -4
  40. package/esm2022/card/card.module.mjs +5 -5
  41. package/esm2022/card/card.property.mjs +4 -4
  42. package/esm2022/carousel/carousel-panel.component.mjs +4 -4
  43. package/esm2022/carousel/carousel.component.mjs +4 -4
  44. package/esm2022/carousel/carousel.module.mjs +5 -5
  45. package/esm2022/carousel/carousel.property.mjs +7 -7
  46. package/esm2022/cascade/cascade-portal.component.mjs +4 -4
  47. package/esm2022/cascade/cascade.component.mjs +4 -4
  48. package/esm2022/cascade/cascade.module.mjs +5 -5
  49. package/esm2022/cascade/cascade.property.mjs +4 -4
  50. package/esm2022/checkbox/checkbox.component.mjs +4 -4
  51. package/esm2022/checkbox/checkbox.module.mjs +5 -5
  52. package/esm2022/checkbox/checkbox.property.mjs +4 -4
  53. package/esm2022/collapse/collapse-panel.component.mjs +4 -4
  54. package/esm2022/collapse/collapse.component.mjs +4 -4
  55. package/esm2022/collapse/collapse.module.mjs +5 -5
  56. package/esm2022/collapse/collapse.property.mjs +7 -7
  57. package/esm2022/color/color.component.mjs +4 -4
  58. package/esm2022/color/color.module.mjs +5 -5
  59. package/esm2022/color/color.property.mjs +4 -4
  60. package/esm2022/color-picker/color-picker-portal.component.mjs +4 -4
  61. package/esm2022/color-picker/color-picker.component.mjs +4 -4
  62. package/esm2022/color-picker/color-picker.module.mjs +5 -5
  63. package/esm2022/color-picker/color-picker.property.mjs +4 -4
  64. package/esm2022/comment/comment-reply.component.mjs +4 -4
  65. package/esm2022/comment/comment.component.mjs +4 -4
  66. package/esm2022/comment/comment.module.mjs +5 -5
  67. package/esm2022/comment/comment.property.mjs +7 -7
  68. package/esm2022/container/aside.component.mjs +4 -4
  69. package/esm2022/container/container.component.mjs +4 -4
  70. package/esm2022/container/container.module.mjs +5 -5
  71. package/esm2022/container/container.property.mjs +13 -13
  72. package/esm2022/container/footer.component.mjs +4 -4
  73. package/esm2022/container/header.component.mjs +4 -4
  74. package/esm2022/container/main.component.mjs +4 -4
  75. package/esm2022/core/config/config.service.mjs +4 -4
  76. package/esm2022/core/services/http.service.mjs +4 -4
  77. package/esm2022/core/services/preloading-strategy.service.mjs +4 -4
  78. package/esm2022/core/services/storage.service.mjs +4 -4
  79. package/esm2022/core/theme/theme.service.mjs +4 -4
  80. package/esm2022/crumb/crumb.component.mjs +4 -4
  81. package/esm2022/crumb/crumb.module.mjs +5 -5
  82. package/esm2022/crumb/crumb.property.mjs +4 -4
  83. package/esm2022/date-picker/date-picker-portal.component.mjs +4 -4
  84. package/esm2022/date-picker/date-picker.component.mjs +4 -4
  85. package/esm2022/date-picker/date-picker.module.mjs +5 -5
  86. package/esm2022/date-picker/date-picker.property.mjs +19 -19
  87. package/esm2022/date-picker/date-quarter.pipe.mjs +4 -4
  88. package/esm2022/date-picker/date-range-portal.component.mjs +4 -4
  89. package/esm2022/date-picker/date-range.component.mjs +4 -4
  90. package/esm2022/date-picker/picker-date.component.mjs +4 -4
  91. package/esm2022/date-picker/picker-month.component.mjs +4 -4
  92. package/esm2022/date-picker/picker-quarter.component.mjs +4 -4
  93. package/esm2022/date-picker/picker-year.component.mjs +4 -4
  94. package/esm2022/description/description-item.component.mjs +4 -4
  95. package/esm2022/description/description.component.mjs +4 -4
  96. package/esm2022/description/description.module.mjs +5 -5
  97. package/esm2022/description/description.property.mjs +7 -7
  98. package/esm2022/dialog/dialog-container.component.mjs +4 -4
  99. package/esm2022/dialog/dialog-portal.component.mjs +4 -4
  100. package/esm2022/dialog/dialog-portal.directives.mjs +19 -19
  101. package/esm2022/dialog/dialog.component.mjs +4 -4
  102. package/esm2022/dialog/dialog.module.mjs +5 -5
  103. package/esm2022/dialog/dialog.property.mjs +7 -7
  104. package/esm2022/dialog/dialog.service.mjs +4 -4
  105. package/esm2022/doc/doc.component.mjs +5 -5
  106. package/esm2022/doc/doc.module.mjs +5 -5
  107. package/esm2022/drag/drag.directive.mjs +4 -4
  108. package/esm2022/drag/drag.module.mjs +5 -5
  109. package/esm2022/drag/drag.property.mjs +4 -4
  110. package/esm2022/drawer/drawer-container.component.mjs +4 -4
  111. package/esm2022/drawer/drawer-portal.component.mjs +4 -4
  112. package/esm2022/drawer/drawer-portal.directives.mjs +10 -10
  113. package/esm2022/drawer/drawer.component.mjs +4 -4
  114. package/esm2022/drawer/drawer.module.mjs +5 -5
  115. package/esm2022/drawer/drawer.property.mjs +7 -7
  116. package/esm2022/drawer/drawer.service.mjs +4 -4
  117. package/esm2022/dropdown/dropdown-portal.component.mjs +4 -4
  118. package/esm2022/dropdown/dropdown.component.mjs +4 -4
  119. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  120. package/esm2022/dropdown/dropdown.property.mjs +4 -4
  121. package/esm2022/empty/empty.component.mjs +4 -4
  122. package/esm2022/empty/empty.module.mjs +5 -5
  123. package/esm2022/empty/empty.property.mjs +4 -4
  124. package/esm2022/examples/examples.component.mjs +4 -4
  125. package/esm2022/examples/examples.module.mjs +5 -5
  126. package/esm2022/find/find.component.mjs +4 -4
  127. package/esm2022/find/find.module.mjs +5 -5
  128. package/esm2022/find/find.property.mjs +4 -4
  129. package/esm2022/form/control.component.mjs +4 -4
  130. package/esm2022/form/form.component.mjs +4 -4
  131. package/esm2022/form/form.module.mjs +5 -5
  132. package/esm2022/form/form.property.mjs +7 -7
  133. package/esm2022/highlight/highlight.component.mjs +4 -4
  134. package/esm2022/highlight/highlight.module.mjs +5 -5
  135. package/esm2022/highlight/highlight.property.mjs +4 -4
  136. package/esm2022/i18n/i18n.directive.mjs +4 -4
  137. package/esm2022/i18n/i18n.module.mjs +5 -5
  138. package/esm2022/i18n/i18n.pipe.mjs +4 -4
  139. package/esm2022/i18n/i18n.service.mjs +4 -4
  140. package/esm2022/icon/icon.component.mjs +4 -4
  141. package/esm2022/icon/icon.module.mjs +5 -5
  142. package/esm2022/icon/icon.property.mjs +4 -4
  143. package/esm2022/icon/icon.service.mjs +4 -4
  144. package/esm2022/image/image-group.component.mjs +4 -4
  145. package/esm2022/image/image-preview.component.mjs +4 -4
  146. package/esm2022/image/image.component.mjs +4 -4
  147. package/esm2022/image/image.module.mjs +5 -5
  148. package/esm2022/image/image.property.mjs +7 -7
  149. package/esm2022/inner/inner.component.mjs +4 -4
  150. package/esm2022/inner/inner.module.mjs +5 -5
  151. package/esm2022/inner/inner.property.mjs +4 -4
  152. package/esm2022/input/input-group.component.mjs +4 -4
  153. package/esm2022/input/input.component.mjs +4 -4
  154. package/esm2022/input/input.module.mjs +5 -5
  155. package/esm2022/input/input.property.mjs +7 -7
  156. package/esm2022/input-number/input-number.component.mjs +4 -4
  157. package/esm2022/input-number/input-number.module.mjs +5 -5
  158. package/esm2022/input-number/input-number.property.mjs +4 -4
  159. package/esm2022/keyword/keyword.directive.mjs +4 -4
  160. package/esm2022/keyword/keyword.module.mjs +5 -5
  161. package/esm2022/keyword/keyword.property.mjs +4 -4
  162. package/esm2022/layout/col.component.mjs +4 -4
  163. package/esm2022/layout/layout.module.mjs +5 -5
  164. package/esm2022/layout/layout.property.mjs +7 -7
  165. package/esm2022/layout/row.component.mjs +4 -4
  166. package/esm2022/link/link.component.mjs +4 -4
  167. package/esm2022/link/link.module.mjs +5 -5
  168. package/esm2022/link/link.property.mjs +4 -4
  169. package/esm2022/list/list-drop-group.directive.mjs +4 -4
  170. package/esm2022/list/list-option.component.mjs +4 -4
  171. package/esm2022/list/list.component.mjs +4 -4
  172. package/esm2022/list/list.module.mjs +5 -5
  173. package/esm2022/list/list.property.mjs +7 -7
  174. package/esm2022/loading/loading.component.mjs +4 -4
  175. package/esm2022/loading/loading.module.mjs +5 -5
  176. package/esm2022/loading/loading.property.mjs +4 -4
  177. package/esm2022/menu/menu-node.component.mjs +4 -4
  178. package/esm2022/menu/menu.component.mjs +4 -4
  179. package/esm2022/menu/menu.module.mjs +5 -5
  180. package/esm2022/menu/menu.property.mjs +7 -7
  181. package/esm2022/message/message.component.mjs +4 -4
  182. package/esm2022/message/message.module.mjs +5 -5
  183. package/esm2022/message/message.service.mjs +4 -4
  184. package/esm2022/message-box/message-box.component.mjs +4 -4
  185. package/esm2022/message-box/message-box.module.mjs +5 -5
  186. package/esm2022/message-box/message-box.service.mjs +4 -4
  187. package/esm2022/notification/notification.component.mjs +4 -4
  188. package/esm2022/notification/notification.module.mjs +5 -5
  189. package/esm2022/notification/notification.service.mjs +4 -4
  190. package/esm2022/outlet/outlet.directive.mjs +4 -4
  191. package/esm2022/outlet/outlet.module.mjs +5 -5
  192. package/esm2022/page-header/page-header.component.mjs +4 -4
  193. package/esm2022/page-header/page-header.module.mjs +5 -5
  194. package/esm2022/page-header/page-header.property.mjs +4 -4
  195. package/esm2022/pagination/pagination.component.mjs +4 -4
  196. package/esm2022/pagination/pagination.module.mjs +5 -5
  197. package/esm2022/pagination/pagination.property.mjs +4 -4
  198. package/esm2022/pattern/pattern.component.mjs +4 -4
  199. package/esm2022/pattern/pattern.module.mjs +5 -5
  200. package/esm2022/popconfirm/popconfirm.component.mjs +4 -4
  201. package/esm2022/popconfirm/popconfirm.module.mjs +5 -5
  202. package/esm2022/popconfirm/popconfirm.property.mjs +4 -4
  203. package/esm2022/popover/popover-portal.component.mjs +4 -4
  204. package/esm2022/popover/popover.directive.mjs +4 -4
  205. package/esm2022/popover/popover.module.mjs +5 -5
  206. package/esm2022/popover/popover.property.mjs +4 -4
  207. package/esm2022/portal/portal.module.mjs +5 -5
  208. package/esm2022/portal/portal.service.mjs +4 -4
  209. package/esm2022/progress/progress.component.mjs +4 -4
  210. package/esm2022/progress/progress.module.mjs +5 -5
  211. package/esm2022/progress/progress.property.mjs +4 -4
  212. package/esm2022/radio/radio.component.mjs +4 -4
  213. package/esm2022/radio/radio.module.mjs +5 -5
  214. package/esm2022/radio/radio.property.mjs +4 -4
  215. package/esm2022/rate/rate.component.mjs +4 -4
  216. package/esm2022/rate/rate.module.mjs +5 -5
  217. package/esm2022/rate/rate.property.mjs +4 -4
  218. package/esm2022/resizable/resizable.directive.mjs +4 -4
  219. package/esm2022/resizable/resizable.module.mjs +5 -5
  220. package/esm2022/resizable/resizable.property.mjs +4 -4
  221. package/esm2022/result/result.component.mjs +4 -4
  222. package/esm2022/result/result.module.mjs +5 -5
  223. package/esm2022/result/result.property.mjs +4 -4
  224. package/esm2022/ripple/ripple.directive.mjs +4 -4
  225. package/esm2022/ripple/ripple.module.mjs +5 -5
  226. package/esm2022/ripple/ripple.property.mjs +4 -4
  227. package/esm2022/select/select-portal.component.mjs +5 -5
  228. package/esm2022/select/select.component.mjs +5 -5
  229. package/esm2022/select/select.module.mjs +5 -5
  230. package/esm2022/select/select.property.mjs +4 -4
  231. package/esm2022/skeleton/skeleton.component.mjs +4 -4
  232. package/esm2022/skeleton/skeleton.module.mjs +5 -5
  233. package/esm2022/skeleton/skeleton.property.mjs +4 -4
  234. package/esm2022/slider/slider.component.mjs +4 -4
  235. package/esm2022/slider/slider.module.mjs +5 -5
  236. package/esm2022/slider/slider.property.mjs +4 -4
  237. package/esm2022/slider-select/slider-select.component.mjs +8 -8
  238. package/esm2022/slider-select/slider-select.module.mjs +5 -5
  239. package/esm2022/slider-select/slider-select.property.mjs +6 -4
  240. package/esm2022/statistic/countdown.component.mjs +4 -4
  241. package/esm2022/statistic/statistic.component.mjs +4 -4
  242. package/esm2022/statistic/statistic.module.mjs +5 -5
  243. package/esm2022/statistic/statistic.property.mjs +7 -7
  244. package/esm2022/steps/steps.component.mjs +4 -4
  245. package/esm2022/steps/steps.module.mjs +5 -5
  246. package/esm2022/steps/steps.property.mjs +4 -4
  247. package/esm2022/switch/switch.component.mjs +4 -4
  248. package/esm2022/switch/switch.module.mjs +5 -5
  249. package/esm2022/switch/switch.property.mjs +4 -4
  250. package/esm2022/table/table-body.component.mjs +4 -4
  251. package/esm2022/table/table-foot.component.mjs +4 -4
  252. package/esm2022/table/table-head.component.mjs +4 -4
  253. package/esm2022/table/table.component.mjs +4 -4
  254. package/esm2022/table/table.module.mjs +5 -5
  255. package/esm2022/table/table.property.mjs +13 -13
  256. package/esm2022/tabs/tab-content.component.mjs +4 -4
  257. package/esm2022/tabs/tab-link.directive.mjs +7 -7
  258. package/esm2022/tabs/tab.component.mjs +4 -4
  259. package/esm2022/tabs/tabs.component.mjs +4 -4
  260. package/esm2022/tabs/tabs.module.mjs +5 -5
  261. package/esm2022/tabs/tabs.property.mjs +7 -7
  262. package/esm2022/tag/tag.component.mjs +4 -4
  263. package/esm2022/tag/tag.module.mjs +5 -5
  264. package/esm2022/tag/tag.property.mjs +4 -4
  265. package/esm2022/text-retract/text-retract.component.mjs +4 -4
  266. package/esm2022/text-retract/text-retract.module.mjs +5 -5
  267. package/esm2022/text-retract/text-retract.property.mjs +4 -4
  268. package/esm2022/textarea/textarea.component.mjs +4 -4
  269. package/esm2022/textarea/textarea.module.mjs +5 -5
  270. package/esm2022/textarea/textarea.property.mjs +4 -4
  271. package/esm2022/theme/theme.component.mjs +4 -4
  272. package/esm2022/theme/theme.module.mjs +5 -5
  273. package/esm2022/theme/theme.property.mjs +4 -4
  274. package/esm2022/time-ago/time-ago.module.mjs +5 -5
  275. package/esm2022/time-ago/time-ago.pipe.mjs +4 -4
  276. package/esm2022/time-picker/time-picker-frame.component.mjs +4 -4
  277. package/esm2022/time-picker/time-picker-portal.component.mjs +4 -4
  278. package/esm2022/time-picker/time-picker.component.mjs +4 -4
  279. package/esm2022/time-picker/time-picker.module.mjs +5 -5
  280. package/esm2022/time-picker/time-picker.property.mjs +4 -4
  281. package/esm2022/time-range/time-range.module.mjs +5 -5
  282. package/esm2022/time-range/time-range.pipe.mjs +4 -4
  283. package/esm2022/timeline/timeline.component.mjs +5 -5
  284. package/esm2022/timeline/timeline.module.mjs +5 -5
  285. package/esm2022/timeline/timeline.property.mjs +4 -4
  286. package/esm2022/tooltip/tooltip-portal.component.mjs +6 -5
  287. package/esm2022/tooltip/tooltip.directive.mjs +4 -4
  288. package/esm2022/tooltip/tooltip.module.mjs +7 -6
  289. package/esm2022/tooltip/tooltip.property.mjs +4 -4
  290. package/esm2022/transfer/transfer.component.mjs +4 -4
  291. package/esm2022/transfer/transfer.module.mjs +5 -5
  292. package/esm2022/transfer/transfer.property.mjs +4 -4
  293. package/esm2022/tree/tree-node.component.mjs +4 -4
  294. package/esm2022/tree/tree.component.mjs +4 -4
  295. package/esm2022/tree/tree.module.mjs +5 -5
  296. package/esm2022/tree/tree.property.mjs +7 -7
  297. package/esm2022/tree/tree.service.mjs +4 -4
  298. package/esm2022/tree-file/tree-file.component.mjs +4 -4
  299. package/esm2022/tree-file/tree-file.module.mjs +5 -5
  300. package/esm2022/tree-file/tree-file.property.mjs +4 -4
  301. package/esm2022/tree-select/tree-select-portal.component.mjs +5 -5
  302. package/esm2022/tree-select/tree-select.component.mjs +5 -5
  303. package/esm2022/tree-select/tree-select.module.mjs +5 -5
  304. package/esm2022/tree-select/tree-select.property.mjs +4 -4
  305. package/esm2022/typography/typography.component.mjs +4 -4
  306. package/esm2022/typography/typography.module.mjs +5 -5
  307. package/esm2022/typography/typography.property.mjs +4 -4
  308. package/esm2022/upload/upload-portal.component.mjs +4 -4
  309. package/esm2022/upload/upload.component.mjs +4 -4
  310. package/esm2022/upload/upload.module.mjs +5 -5
  311. package/esm2022/upload/upload.property.mjs +4 -4
  312. package/fesm2022/ng-nest-ui-affix.mjs +10 -10
  313. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  314. package/fesm2022/ng-nest-ui-alert.mjs +10 -10
  315. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  316. package/fesm2022/ng-nest-ui-anchor.mjs +16 -16
  317. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  318. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  319. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  320. package/fesm2022/ng-nest-ui-auto-complete.mjs +15 -15
  321. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  322. package/fesm2022/ng-nest-ui-avatar.mjs +16 -16
  323. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  324. package/fesm2022/ng-nest-ui-back-top.mjs +10 -10
  325. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  326. package/fesm2022/ng-nest-ui-badge.mjs +10 -10
  327. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  328. package/fesm2022/ng-nest-ui-base-form.mjs +10 -10
  329. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  330. package/fesm2022/ng-nest-ui-border.mjs +7 -7
  331. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  332. package/fesm2022/ng-nest-ui-button.mjs +16 -16
  333. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  334. package/fesm2022/ng-nest-ui-calendar.mjs +10 -10
  335. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  336. package/fesm2022/ng-nest-ui-card.mjs +10 -10
  337. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  338. package/fesm2022/ng-nest-ui-carousel.mjs +16 -16
  339. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  340. package/fesm2022/ng-nest-ui-cascade.mjs +13 -13
  341. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  342. package/fesm2022/ng-nest-ui-checkbox.mjs +10 -10
  343. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  344. package/fesm2022/ng-nest-ui-collapse.mjs +16 -16
  345. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  346. package/fesm2022/ng-nest-ui-color-picker.mjs +13 -13
  347. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  348. package/fesm2022/ng-nest-ui-color.mjs +10 -10
  349. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  350. package/fesm2022/ng-nest-ui-comment.mjs +16 -16
  351. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  352. package/fesm2022/ng-nest-ui-container.mjs +31 -31
  353. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  354. package/fesm2022/ng-nest-ui-core.mjs +15 -15
  355. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  356. package/fesm2022/ng-nest-ui-crumb.mjs +10 -10
  357. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  358. package/fesm2022/ng-nest-ui-date-picker.mjs +49 -49
  359. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  360. package/fesm2022/ng-nest-ui-description.mjs +16 -16
  361. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  362. package/fesm2022/ng-nest-ui-dialog.mjs +40 -40
  363. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  364. package/fesm2022/ng-nest-ui-doc.mjs +8 -8
  365. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  366. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  367. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  368. package/fesm2022/ng-nest-ui-drawer.mjs +31 -31
  369. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  370. package/fesm2022/ng-nest-ui-dropdown.mjs +13 -13
  371. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  372. package/fesm2022/ng-nest-ui-empty.mjs +10 -10
  373. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  374. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  375. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  376. package/fesm2022/ng-nest-ui-find.mjs +10 -10
  377. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  378. package/fesm2022/ng-nest-ui-form.mjs +16 -16
  379. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  380. package/fesm2022/ng-nest-ui-highlight.mjs +10 -10
  381. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  382. package/fesm2022/ng-nest-ui-i18n.mjs +13 -13
  383. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  384. package/fesm2022/ng-nest-ui-icon.mjs +13 -13
  385. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  386. package/fesm2022/ng-nest-ui-image.mjs +19 -19
  387. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  388. package/fesm2022/ng-nest-ui-inner.mjs +10 -10
  389. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  390. package/fesm2022/ng-nest-ui-input-number.mjs +10 -10
  391. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  392. package/fesm2022/ng-nest-ui-input.mjs +16 -16
  393. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  394. package/fesm2022/ng-nest-ui-keyword.mjs +10 -10
  395. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  396. package/fesm2022/ng-nest-ui-layout.mjs +16 -16
  397. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  398. package/fesm2022/ng-nest-ui-link.mjs +10 -10
  399. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  400. package/fesm2022/ng-nest-ui-list.mjs +19 -19
  401. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  402. package/fesm2022/ng-nest-ui-loading.mjs +10 -10
  403. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  404. package/fesm2022/ng-nest-ui-menu.mjs +16 -16
  405. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  406. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  407. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  408. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  409. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  410. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  411. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  412. package/fesm2022/ng-nest-ui-outlet.mjs +7 -7
  413. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  414. package/fesm2022/ng-nest-ui-page-header.mjs +10 -10
  415. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  416. package/fesm2022/ng-nest-ui-pagination.mjs +10 -10
  417. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  418. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  419. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  420. package/fesm2022/ng-nest-ui-popconfirm.mjs +10 -10
  421. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  422. package/fesm2022/ng-nest-ui-popover.mjs +13 -13
  423. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  424. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  425. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  426. package/fesm2022/ng-nest-ui-progress.mjs +10 -10
  427. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  428. package/fesm2022/ng-nest-ui-radio.mjs +10 -10
  429. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  430. package/fesm2022/ng-nest-ui-rate.mjs +10 -10
  431. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  432. package/fesm2022/ng-nest-ui-resizable.mjs +10 -10
  433. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  434. package/fesm2022/ng-nest-ui-result.mjs +10 -10
  435. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  436. package/fesm2022/ng-nest-ui-ripple.mjs +10 -10
  437. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  438. package/fesm2022/ng-nest-ui-select.mjs +15 -15
  439. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  440. package/fesm2022/ng-nest-ui-skeleton.mjs +10 -10
  441. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  442. package/fesm2022/ng-nest-ui-slider-select.mjs +16 -14
  443. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  444. package/fesm2022/ng-nest-ui-slider.mjs +10 -10
  445. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  446. package/fesm2022/ng-nest-ui-statistic.mjs +16 -16
  447. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  448. package/fesm2022/ng-nest-ui-steps.mjs +10 -10
  449. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  450. package/fesm2022/ng-nest-ui-switch.mjs +10 -10
  451. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  452. package/fesm2022/ng-nest-ui-table.mjs +28 -28
  453. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  454. package/fesm2022/ng-nest-ui-tabs.mjs +25 -25
  455. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  456. package/fesm2022/ng-nest-ui-tag.mjs +10 -10
  457. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  458. package/fesm2022/ng-nest-ui-text-retract.mjs +10 -10
  459. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  460. package/fesm2022/ng-nest-ui-textarea.mjs +10 -10
  461. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  462. package/fesm2022/ng-nest-ui-theme.mjs +10 -10
  463. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  464. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  465. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  466. package/fesm2022/ng-nest-ui-time-picker.mjs +16 -16
  467. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  468. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  469. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  470. package/fesm2022/ng-nest-ui-timeline.mjs +11 -11
  471. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  472. package/fesm2022/ng-nest-ui-tooltip.mjs +19 -17
  473. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  474. package/fesm2022/ng-nest-ui-transfer.mjs +10 -10
  475. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  476. package/fesm2022/ng-nest-ui-tree-file.mjs +10 -10
  477. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  478. package/fesm2022/ng-nest-ui-tree-select.mjs +15 -15
  479. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  480. package/fesm2022/ng-nest-ui-tree.mjs +19 -19
  481. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  482. package/fesm2022/ng-nest-ui-typography.mjs +10 -10
  483. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  484. package/fesm2022/ng-nest-ui-upload.mjs +13 -13
  485. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  486. package/package.json +42 -42
  487. package/slider-select/slider-select.property.d.ts +6 -1
  488. package/tooltip/tooltip-portal.component.d.ts +2 -2
  489. package/tooltip/tooltip.module.d.ts +2 -1
  490. package/tooltip/tooltip.property.d.ts +2 -2
@@ -31,12 +31,12 @@ class XColorComponent extends XColorProperty {
31
31
  trackByColor(_index, item) {
32
32
  return item;
33
33
  }
34
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
35
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XColorComponent, selector: "x-color", usesInheritance: true, ngImport: i0, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
34
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
35
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XColorComponent, selector: "x-color", usesInheritance: true, ngImport: i0, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
36
  }
37
37
  export { XColorComponent };
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'x-color', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-color-box\">\r\n <div class=\"x-color-primary\" [style.background-color]=\"hex\" [class.x-color-only]=\"colors.length === 0\">\r\n <span>{{ label }}</span>\r\n <span class=\"x-color-hex\">{{ hex }}</span>\r\n </div>\r\n <div class=\"x-color-gradual\">\r\n <div class=\"x-color-item\" *ngFor=\"let color of colors; index as i; trackBy: trackByColor\" [style.background-color]=\"color\"></div>\r\n </div>\r\n</div>\r\n", styles: [".x-color{margin:0;padding:0;display:block;color:var(--x-white)}.x-color-primary{padding:1rem;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.x-color-only{border-bottom-left-radius:.125rem;border-bottom-right-radius:.125rem}.x-color-hex{margin-top:.25rem;display:block;font-size:.75rem;opacity:.7}.x-color-gradual{display:flex}.x-color-item{flex:1;height:2.5rem}.x-color-item:first-child{border-bottom-left-radius:.125rem}.x-color-item:last-child{border-bottom-right-radius:.125rem}\n"] }]
41
41
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUUvRSxNQU9hLGVBQWdCLFNBQVEsY0FBYztJQUlqRCxZQUFvQixRQUFtQixFQUFVLFVBQW1DLEVBQVMsYUFBNkI7UUFDeEgsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFIMUgsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUNkLFFBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFJN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLGtCQUFrQjtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakksSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxPQUF3QixFQUFFO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBZSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO2lJQXhCVSxlQUFlO3FIQUFmLGVBQWUsc0VDWjVCLDhiQVNBOztTREdhLGVBQWU7MkZBQWYsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxTQUFTLGlCQUdKLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhDb2xvclByZWZpeCwgWENvbG9yUHJvcGVydHkgfSBmcm9tICcuL2NvbG9yLnByb3BlcnR5JztcclxuaW1wb3J0IHsgdG9IZXgsIG1peENvbG9ycywgWENvbmZpZ1NlcnZpY2UsIFhDb21wdXRlZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LWNvbG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JDb21wb25lbnQgZXh0ZW5kcyBYQ29sb3JQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBYQ29sb3JQcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaGV4IHx8IHRoaXMuaGV4ID09PSAndmFyKC0teC1wcmltYXJ5KScpIHRoaXMuaGV4ID0gWENvbXB1dGVkKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS14LXByaW1hcnknKTtcclxuICAgIGlmICh0aGlzLmhleCkgdGhpcy5zZXRDb2xvcnMoKTtcclxuICB9XHJcblxyXG4gIHNldENvbG9ycygpIHtcclxuICAgIGxldCBjb2xvcnMgPSBbXTtcclxuICAgIGZvciAobGV0IGFtb3VudCBvZiB0aGlzLmFtb3VudHMgYXMgQXJyYXk8bnVtYmVyPikge1xyXG4gICAgICBjb2xvcnMucHVzaCh0b0hleChtaXhDb2xvcnModGhpcy5tZXJnZSBhcyBzdHJpbmcsIHRoaXMuaGV4LnRyaW0oKSwgYW1vdW50IGFzIG51bWJlcikpKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JzID0gY29sb3JzO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUNvbG9yKF9pbmRleDogbnVtYmVyLCBpdGVtOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1ib3hcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1jb2xvci1wcmltYXJ5XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaGV4XCIgW2NsYXNzLngtY29sb3Itb25seV09XCJjb2xvcnMubGVuZ3RoID09PSAwXCI+XHJcbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwieC1jb2xvci1oZXhcIj57eyBoZXggfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItZ3JhZHVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItaXRlbVwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvcnM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9yXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFrQixTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUUvRSxNQU9hLGVBQWdCLFNBQVEsY0FBYztJQUlqRCxZQUFvQixRQUFtQixFQUFVLFVBQW1DLEVBQVMsYUFBNkI7UUFDeEgsS0FBSyxFQUFFLENBQUM7UUFEVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFIMUgsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUNkLFFBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFJN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLGtCQUFrQjtZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakksSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxPQUF3QixFQUFFO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBZSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO2tJQXhCVSxlQUFlO3NIQUFmLGVBQWUsc0VDWjVCLDhiQVNBOztTREdhLGVBQWU7NEZBQWYsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxTQUFTLGlCQUdKLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBSZW5kZXJlcjIsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhDb2xvclByZWZpeCwgWENvbG9yUHJvcGVydHkgfSBmcm9tICcuL2NvbG9yLnByb3BlcnR5JztcclxuaW1wb3J0IHsgdG9IZXgsIG1peENvbG9ycywgWENvbmZpZ1NlcnZpY2UsIFhDb21wdXRlZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LWNvbG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sb3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JDb21wb25lbnQgZXh0ZW5kcyBYQ29sb3JQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29sb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBYQ29sb3JQcmVmaXgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuaGV4IHx8IHRoaXMuaGV4ID09PSAndmFyKC0teC1wcmltYXJ5KScpIHRoaXMuaGV4ID0gWENvbXB1dGVkKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS14LXByaW1hcnknKTtcclxuICAgIGlmICh0aGlzLmhleCkgdGhpcy5zZXRDb2xvcnMoKTtcclxuICB9XHJcblxyXG4gIHNldENvbG9ycygpIHtcclxuICAgIGxldCBjb2xvcnMgPSBbXTtcclxuICAgIGZvciAobGV0IGFtb3VudCBvZiB0aGlzLmFtb3VudHMgYXMgQXJyYXk8bnVtYmVyPikge1xyXG4gICAgICBjb2xvcnMucHVzaCh0b0hleChtaXhDb2xvcnModGhpcy5tZXJnZSBhcyBzdHJpbmcsIHRoaXMuaGV4LnRyaW0oKSwgYW1vdW50IGFzIG51bWJlcikpKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29sb3JzID0gY29sb3JzO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUNvbG9yKF9pbmRleDogbnVtYmVyLCBpdGVtOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1jb2xvci1ib3hcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1jb2xvci1wcmltYXJ5XCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaGV4XCIgW2NsYXNzLngtY29sb3Itb25seV09XCJjb2xvcnMubGVuZ3RoID09PSAwXCI+XHJcbiAgICA8c3Bhbj57eyBsYWJlbCB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwieC1jb2xvci1oZXhcIj57eyBoZXggfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItZ3JhZHVhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItaXRlbVwiICpuZ0Zvcj1cImxldCBjb2xvciBvZiBjb2xvcnM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlDb2xvclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9yXCI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -4,12 +4,12 @@ import { XColorComponent } from './color.component';
4
4
  import { XColorProperty } from './color.property';
5
5
  import * as i0 from "@angular/core";
6
6
  class XColorModule {
7
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: XColorModule, declarations: [XColorComponent, XColorProperty], imports: [CommonModule], exports: [XColorComponent] }); }
9
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorModule, imports: [CommonModule] }); }
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
8
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: XColorModule, declarations: [XColorComponent, XColorProperty], imports: [CommonModule], exports: [XColorComponent] }); }
9
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorModule, imports: [CommonModule] }); }
10
10
  }
11
11
  export { XColorModule };
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [XColorComponent, XColorProperty],
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
17
17
  imports: [CommonModule]
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWxELE1BS2EsWUFBWTtpSUFBWixZQUFZO2tJQUFaLFlBQVksaUJBSlIsZUFBZSxFQUFFLGNBQWMsYUFFcEMsWUFBWSxhQURaLGVBQWU7a0lBR2QsWUFBWSxZQUZiLFlBQVk7O1NBRVgsWUFBWTsyRkFBWixZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhDb2xvckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWENvbG9yUHJvcGVydHkgfSBmcm9tICcuL2NvbG9yLnByb3BlcnR5JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbWENvbG9yQ29tcG9uZW50LCBYQ29sb3JQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hDb2xvckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhDb2xvck1vZHVsZSB7fVxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3IvY29sb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWxELE1BS2EsWUFBWTtrSUFBWixZQUFZO21JQUFaLFlBQVksaUJBSlIsZUFBZSxFQUFFLGNBQWMsYUFFcEMsWUFBWSxhQURaLGVBQWU7bUlBR2QsWUFBWSxZQUZiLFlBQVk7O1NBRVgsWUFBWTs0RkFBWixZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhDb2xvckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWENvbG9yUHJvcGVydHkgfSBmcm9tICcuL2NvbG9yLnByb3BlcnR5JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbWENvbG9yQ29tcG9uZW50LCBYQ29sb3JQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hDb2xvckNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhDb2xvck1vZHVsZSB7fVxyXG4iXX0=
@@ -27,8 +27,8 @@ class XColorProperty extends XProperty {
27
27
  */
28
28
  this.hex = 'var(--x-primary)';
29
29
  }
30
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XColorProperty, selector: "x-color-property", inputs: { label: "label", hex: "hex", merge: "merge", amounts: "amounts" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
30
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XColorProperty, selector: "x-color-property", inputs: { label: "label", hex: "hex", merge: "merge", amounts: "amounts" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
32
32
  }
33
33
  __decorate([
34
34
  XWithConfig(X_CONFIG_NAME, '#ffffff')
@@ -37,7 +37,7 @@ __decorate([
37
37
  XWithConfig(X_CONFIG_NAME, XAmounts)
38
38
  ], XColorProperty.prototype, "amounts", void 0);
39
39
  export { XColorProperty };
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorProperty, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorProperty, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: `${XColorPrefix}-property`, template: '' }]
43
43
  }], propDecorators: { label: [{
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
49
49
  }], amounts: [{
50
50
  type: Input
51
51
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci9jb2xvci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFakQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUM7QUFFdEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFNUU7O0dBRUc7QUFDSCxNQUNhLGNBQWUsU0FBUSxTQUFTO0lBRDdDOztRQUVFOzs7V0FHRztRQUNNLFVBQUssR0FBVyxPQUFPLENBQUM7UUFDakM7OztXQUdHO1FBQ00sUUFBRyxHQUFXLGtCQUFrQixDQUFDO0tBVzNDO2lJQXJCWSxjQUFjO3FIQUFkLGNBQWMsMkpBRGtDLEVBQUU7O0FBZ0JMO0lBQTlDLFdBQVcsQ0FBUyxhQUFhLEVBQUUsU0FBUyxDQUFDOzZDQUFnQjtBQUtiO0lBQWhELFdBQVcsQ0FBWSxhQUFhLEVBQUUsUUFBUSxDQUFDOytDQUFxQjtTQXBCbkUsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBWSxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNdEQsS0FBSztzQkFBYixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLa0QsS0FBSztzQkFBNUQsS0FBSztnQkFLb0QsT0FBTztzQkFBaEUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhQcm9wZXJ0eSwgWE51bWJlciwgWFdpdGhDb25maWcgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yXHJcbiAqIEBzZWxlY3RvciB4LWNvbG9yXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWENvbG9yUHJlZml4ID0gJ3gtY29sb3InO1xyXG5cclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdjb2xvcic7XHJcblxyXG5leHBvcnQgY29uc3QgWEFtb3VudHMgPSBbLTAuMSwgMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOV07XHJcblxyXG4vKipcclxuICogQ29sb3IgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WENvbG9yUHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpopzoibLlkI3np7BcclxuICAgKiBAZW5fVVMgQ29sb3IgbmFtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnY29sb3InO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljYHlha3ov5vliLbpopzoibLnoIHvvIzmraTlpITpu5jorqTor7vlj5YgY3NzIOWPmOmHj+S4reeahOS4u+iJslxyXG4gICAqIEBlbl9VUyBIZXhhZGVjaW1hbCBjb2xvciBjb2RlLCBoZXJlIHRoZSBtYWluIGNvbG9yIGluIHRoZSBjc3MgdmFyaWFibGUgaXMgcmVhZCBieSBkZWZhdWx0XHJcbiAgICovXHJcbiAgQElucHV0KCkgaGV4OiBzdHJpbmcgPSAndmFyKC0teC1wcmltYXJ5KSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa3t+WQiOeahOminOiJslxyXG4gICAqIEBlbl9VUyBNaXhlZCBjb2xvcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAnI2ZmZmZmZicpIG1lcmdlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmt7flkIjnmoTpopzoibLljaDmr5RcclxuICAgKiBAZW5fVVMgUHJvcG9ydGlvbiBvZiBtaXhlZCBjb2xvcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcltdPihYX0NPTkZJR19OQU1FLCBYQW1vdW50cykgYW1vdW50cz86IFhOdW1iZXJbXTtcclxufVxyXG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci9jb2xvci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFakQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUM7QUFFdEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFFNUU7O0dBRUc7QUFDSCxNQUNhLGNBQWUsU0FBUSxTQUFTO0lBRDdDOztRQUVFOzs7V0FHRztRQUNNLFVBQUssR0FBVyxPQUFPLENBQUM7UUFDakM7OztXQUdHO1FBQ00sUUFBRyxHQUFXLGtCQUFrQixDQUFDO0tBVzNDO2tJQXJCWSxjQUFjO3NIQUFkLGNBQWMsMkpBRGtDLEVBQUU7O0FBZ0JMO0lBQTlDLFdBQVcsQ0FBUyxhQUFhLEVBQUUsU0FBUyxDQUFDOzZDQUFnQjtBQUtiO0lBQWhELFdBQVcsQ0FBWSxhQUFhLEVBQUUsUUFBUSxDQUFDOytDQUFxQjtTQXBCbkUsY0FBYzs0RkFBZCxjQUFjO2tCQUQxQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsWUFBWSxXQUFXLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNdEQsS0FBSztzQkFBYixLQUFLO2dCQUtHLEdBQUc7c0JBQVgsS0FBSztnQkFLa0QsS0FBSztzQkFBNUQsS0FBSztnQkFLb0QsT0FBTztzQkFBaEUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhQcm9wZXJ0eSwgWE51bWJlciwgWFdpdGhDb25maWcgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIENvbG9yXHJcbiAqIEBzZWxlY3RvciB4LWNvbG9yXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWENvbG9yUHJlZml4ID0gJ3gtY29sb3InO1xyXG5cclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdjb2xvcic7XHJcblxyXG5leHBvcnQgY29uc3QgWEFtb3VudHMgPSBbLTAuMSwgMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOV07XHJcblxyXG4vKipcclxuICogQ29sb3IgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyBzZWxlY3RvcjogYCR7WENvbG9yUHJlZml4fS1wcm9wZXJ0eWAsIHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpopzoibLlkI3np7BcclxuICAgKiBAZW5fVVMgQ29sb3IgbmFtZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnY29sb3InO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljYHlha3ov5vliLbpopzoibLnoIHvvIzmraTlpITpu5jorqTor7vlj5YgY3NzIOWPmOmHj+S4reeahOS4u+iJslxyXG4gICAqIEBlbl9VUyBIZXhhZGVjaW1hbCBjb2xvciBjb2RlLCBoZXJlIHRoZSBtYWluIGNvbG9yIGluIHRoZSBjc3MgdmFyaWFibGUgaXMgcmVhZCBieSBkZWZhdWx0XHJcbiAgICovXHJcbiAgQElucHV0KCkgaGV4OiBzdHJpbmcgPSAndmFyKC0teC1wcmltYXJ5KSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa3t+WQiOeahOminOiJslxyXG4gICAqIEBlbl9VUyBNaXhlZCBjb2xvcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAnI2ZmZmZmZicpIG1lcmdlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmt7flkIjnmoTpopzoibLljaDmr5RcclxuICAgKiBAZW5fVVMgUHJvcG9ydGlvbiBvZiBtaXhlZCBjb2xvcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcltdPihYX0NPTkZJR19OQU1FLCBYQW1vdW50cykgYW1vdW50cz86IFhOdW1iZXJbXTtcclxufVxyXG4iXX0=
@@ -358,11 +358,11 @@ class XColorPickerPortalComponent {
358
358
  }
359
359
  return result;
360
360
  }
361
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorPickerPortalComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DecimalPipe }, { token: i1.PercentPipe }], target: i0.ɵɵFactoryTarget.Component }); }
362
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XColorPickerPortalComponent, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.XSliderSelectComponent, selector: "x-slider-select" }, { kind: "component", type: i5.XTabsComponent, selector: "x-tabs" }, { kind: "component", type: i5.XTabComponent, selector: "x-tab" }, { kind: "component", type: i6.XInputComponent, selector: "x-input" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
361
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorPickerPortalComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.DecimalPipe }, { token: i1.PercentPipe }], target: i0.ɵɵFactoryTarget.Component }); }
362
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XColorPickerPortalComponent, selector: "x-color-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DecimalPipe, PercentPipe], viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, static: true }, { propertyName: "plateRef", first: true, predicate: ["plateRef"], descendants: true, static: true }, { propertyName: "transparentCom", first: true, predicate: ["transparentCom"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i4.XSliderSelectComponent, selector: "x-slider-select" }, { kind: "component", type: i5.XTabsComponent, selector: "x-tabs" }, { kind: "component", type: i5.XTabComponent, selector: "x-tab" }, { kind: "component", type: i6.XInputComponent, selector: "x-input" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
363
363
  }
364
364
  export { XColorPickerPortalComponent };
365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorPickerPortalComponent, decorators: [{
366
366
  type: Component,
367
367
  args: [{ selector: `${XColorPickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DecimalPipe, PercentPipe], animations: [XConnectBaseAnimation], template: "<div class=\"x-color-picker-portal\" tabindex=\"-1\" (click)=\"stopPropagation($event)\">\r\n <div #panelRef class=\"x-color-picker-portal-panel\">\r\n <div #plateRef class=\"x-color-picker-portal-plate\" (click)=\"plateClick($event)\">\r\n <div class=\"x-color-picker-portal-white\"></div>\r\n <div class=\"x-color-picker-portal-black\"></div>\r\n <div\r\n #dragCom\r\n class=\"x-color-picker-portal-cursor\"\r\n [style.left.px]=\"transform.x\"\r\n [style.top.px]=\"transform.y\"\r\n cdkDrag\r\n [cdkDragBoundary]=\"panelRef\"\r\n (cdkDragStarted)=\"started()\"\r\n (cdkDragEnded)=\"ended()\"\r\n (cdkDragMoved)=\"moved($event)\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-tool\">\r\n <div class=\"x-color-picker-portal-operations\">\r\n <!-- <x-button icon=\"fto-edit-2\" onlyIcon></x-button> -->\r\n <div class=\"x-color-picker-portal-selected\">\r\n <div [style.background-color]=\"value\"></div>\r\n </div>\r\n <div class=\"x-color-picker-portal-area\">\r\n <div class=\"x-color-picker-portal-slider\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n [(ngModel)]=\"hsla.h\"\r\n min=\"0\"\r\n max=\"360\"\r\n step=\"1\"\r\n (dragStartEmit)=\"started()\"\r\n (dragEndEmit)=\"ended()\"\r\n (ngModelChange)=\"hueChange()\"\r\n ></x-slider-select>\r\n </div>\r\n <div class=\"x-color-picker-portal-transparent\">\r\n <x-slider-select\r\n [style.width.%]=\"100\"\r\n #transparentCom\r\n [(ngModel)]=\"hsla.a\"\r\n min=\"0\"\r\n max=\"1\"\r\n step=\"0.01\"\r\n (dragStarted)=\"started()\"\r\n (dragEnded)=\"ended()\"\r\n (ngModelChange)=\"transparentChange()\"\r\n ></x-slider-select>\r\n <div class=\"x-color-picker-portal-alpha\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"x-color-picker-portal-type\">\r\n <x-tabs animated=\"false\" justify=\"center\">\r\n <x-tab label=\"HEX\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [style.width.%]=\"100\" [(ngModel)]=\"hex\" (ngModelChange)=\"hexChange()\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"RGBA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"rgba.r\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.g\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.b\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"rgba.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n <x-tab label=\"HSLA\">\r\n <div class=\"x-color-picker-portal-type-content\">\r\n <x-input [(ngModel)]=\"hsla.h\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.sp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.lp\" [disabled]=\"true\"></x-input>\r\n <x-input [(ngModel)]=\"hsla.a\" [disabled]=\"true\"></x-input>\r\n </div>\r\n </x-tab>\r\n </x-tabs>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-color-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:15rem;overflow:hidden}.x-color-picker-portal:focus{outline:none}.x-color-picker-portal-panel{padding:.375rem;margin:-.375rem}.x-color-picker-portal-plate{width:100%;height:8rem;display:flex;border-radius:var(--x-border-radius);position:relative}.x-color-picker-portal-white,.x-color-picker-portal-black{position:absolute;inset:0}.x-color-picker-portal-white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.x-color-picker-portal-black{background:linear-gradient(0deg,#000,transparent)}.x-color-picker-portal-cursor{position:absolute;width:.75rem;height:.75rem;display:inline-block;border-radius:50%;border:.0625rem solid var(--x-background-100)}.x-color-picker-portal-tool{padding:.4rem}.x-color-picker-portal-operations{display:flex;align-items:center;padding:.4rem 0}.x-color-picker-portal-selected{margin-left:.4rem;width:2rem;height:2rem;border-radius:2rem;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-selected>div{width:2rem;height:2rem;border-radius:2rem}.x-color-picker-portal-area{margin-left:.4rem;position:relative;flex:1}.x-color-picker-portal-area .x-slider-select:hover:not(.x-disabled) .x-slider-select-track{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{height:.75rem}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-track>.x-slider-select-process{background-color:transparent}.x-color-picker-portal-area .x-slider-select>.x-slider-select-inner>.x-slider-select-drags>.x-slider-select-drag>.x-slider-select-button{border-color:var(--x-border);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}.x-color-picker-portal-slider{position:relative;width:100%}.x-color-picker-portal-slider .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.x-color-picker-portal-transparent{margin-top:.4rem;position:relative;width:100%}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.x-color-picker-portal-transparent .x-slider-select>.x-slider-select-inner>.x-slider-select-rail:after{content:\"\";height:100%;display:block}.x-color-picker-portal-type{height:5rem}.x-color-picker-portal-type .x-tabs .x-tabs-list{display:flex;justify-content:center}.x-color-picker-portal-type-content{padding:.8rem .4rem;display:flex}.x-color-picker-portal-type-content .x-input .x-input-row input{text-align:center}\n"] }]
368
368
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
@@ -387,4 +387,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
387
387
  type: ViewChild,
388
388
  args: ['transparentCom', { static: true }]
389
389
  }] } });
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsTUFBTSxFQU9OLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBYyxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQUczQyxNQVNhLDJCQUEyQjtJQUVzQixJQUFJLENBQUMsS0FBdUI7UUFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUM0RCxLQUFLO1FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQThCRCxZQUNTLFVBQW1DLEVBQ25DLFFBQW1CLEVBQ0QsR0FBUSxFQUMxQixNQUFj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RSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlsQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNRLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSW5qZWN0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE5nWm9uZSxcclxuICBSZW5kZXJlcjIsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdDaGlsZCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSG9zdEJpbmRpbmdcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyUG9ydGFsUHJlZml4LCBYQ29sb3JUeXBlIH0gZnJvbSAnLi9jb2xvci1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYUG9zaXRpb25Ub3BCb3R0b20sIFhDb21wdXRlZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ01vdmUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIERlY2ltYWxQaXBlLCBQZXJjZW50UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hDb2xvclBpY2tlclBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGVdLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JQaWNrZXJQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGFuZWxSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYW5lbFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3BsYXRlUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGxhdGVSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCd0cmFuc3BhcmVudENvbScsIHsgc3RhdGljOiB0cnVlIH0pIHRyYW5zcGFyZW50Q29tITogWFNsaWRlclNlbGVjdENvbXBvbmVudDtcclxuICB2YWx1ZSE6IHN0cmluZztcclxuICB0cmFuc3BhcmVudFJhaWwhOiBIVE1MRWxlbWVudDtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8c3RyaW5nPjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBzbGlkZXJDb2xvck51bSA9IDA7XHJcbiAgdHlwZSE6IFhDb2xvclR5cGU7XHJcbiAgb2Zmc2V0ID0gMDtcclxuICBwYW5lbCE6IERPTVJlY3Q7XHJcbiAgcGxhdGUhOiBET01SZWN0O1xyXG4gIHRyYW5zZm9ybSA9IHsgeDogMCwgeTogMCB9O1xyXG4gIGluaXRUcmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBkcmFnID0gZmFsc2U7XHJcblxyXG4gIHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9ID0geyBhOiAxIH07XHJcbiAgaHNsYTogeyBoPzogbnVtYmVyOyBzPzogbnVtYmVyOyBsPzogbnVtYmVyOyBhPzogbnVtYmVyOyBzcD86IHN0cmluZzsgbHA/OiBzdHJpbmcgfSA9IHsgaDogMCwgYTogMSB9O1xyXG4gIGhleCE6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHB1YmxpYyBkb2M6IGFueSxcclxuICAgIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGRlY2ltYWw6IERlY2ltYWxQaXBlLFxyXG4gICAgcHVibGljIHBlcmNlbnQ6IFBlcmNlbnRQaXBlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5wYW5lbCA9IHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucGxhdGUgPSB0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLm9mZnNldCA9ICh0aGlzLnBhbmVsLndpZHRoIC0gdGhpcy5wbGF0ZS53aWR0aCkgLyAyO1xyXG4gICAgdGhpcy50cmFuc3BhcmVudFJhaWwgPSB0aGlzLnRyYW5zcGFyZW50Q29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcueC1zbGlkZXItc2VsZWN0LXJhaWwgZGl2JykhO1xyXG4gICAgdGhpcy5zZXRUcmFuc2Zvcm0oKTtcclxuICAgIHRoaXMuc2V0UGxhdGVCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLnNldFJhaWxCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBoZXhDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5kcmFnIHx8ICEvKF4jWzAtOUEtRl17Nn0kKS9pLnRlc3QodGhpcy5oZXgpKSByZXR1cm47XHJcbiAgICB0aGlzLnJnYmEgPSB0aGlzLmhleFRvUmdiYSh0aGlzLmhleCk7XHJcbiAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmdiYUNoYW5nZSgpIHt9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0UHJpbWFyeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2xvckNvbnZlcnQoKTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdCgpIHt9XHJcblxyXG4gIGNvbG9yQ29udmVydCgpIHtcclxuICAgIGlmICgvXiMvLnRlc3QodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhleFRvUmdiYSh0aGlzLmhleCk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdoZXgnO1xyXG4gICAgfSBlbHNlIGlmICgvcmdiLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmdiYUNvbnZlcnQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgICAgdGhpcy50eXBlID0gJ3JnYmEnO1xyXG4gICAgfSBlbHNlIGlmICgvaHNsLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaHNsYUNvbnZlcnQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMucmdiYSA9IHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdoc2xhJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJnYmFDb252ZXJ0KHN0cjogc3RyaW5nKSB7XHJcbiAgICBsZXQgcmdiYSA9IHN0clxyXG4gICAgICAucmVwbGFjZSgvcmdiYT9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL3JnYj9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcKS8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvW1xccytdL2csICcnKVxyXG4gICAgICAuc3BsaXQoJywnKTtcclxuICAgIGlmIChyZ2JhLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdGhpcy5yZ2JhID0ge1xyXG4gICAgICAgIHI6IE51bWJlcihyZ2JhWzBdKSxcclxuICAgICAgICBnOiBOdW1iZXIocmdiYVsxXSksXHJcbiAgICAgICAgYjogTnVtYmVyKHJnYmFbMl0pLFxyXG4gICAgICAgIGE6IE51bWJlcihyZ2JhLmxlbmd0aCA+IDMgPyByZ2JhWzNdIDogMSlcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhzbGFDb252ZXJ0KHN0cjogc3RyaW5nKSB7XHJcbiAgICBsZXQgaHNsYSA9IHN0clxyXG4gICAgICAucmVwbGFjZSgvaHNsYT9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL2hzbD9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcKS8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvW1xccytdL2csICcnKVxyXG4gICAgICAuc3BsaXQoJywnKTtcclxuICAgIGlmIChoc2xhLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdGhpcy5oc2xhID0ge1xyXG4gICAgICAgIGg6IE51bWJlcihoc2xhWzBdKSxcclxuICAgICAgICBzOiBOdW1iZXIoaHNsYVsxXS5yZXBsYWNlKCclJywgJycpKSAvIDEwMCxcclxuICAgICAgICBsOiBOdW1iZXIoaHNsYVsyXS5yZXBsYWNlKCclJywgJycpKSAvIDEwMCxcclxuICAgICAgICBhOiBOdW1iZXIoaHNsYS5sZW5ndGggPiAzID8gaHNsYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRyYWcpIHJldHVybjtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBsZXQgbGVmdCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XHJcbiAgICBsZXQgdG9wID0gZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7IHg6IGxlZnQgLSB0aGlzLm9mZnNldCwgeTogdG9wIC0gdGhpcy5vZmZzZXQgfTtcclxuICAgIHRoaXMuaW5pdFRyYW5zZm9ybSA9IHsgeDogdGhpcy50cmFuc2Zvcm0ueCwgeTogdGhpcy50cmFuc2Zvcm0ueSB9O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRUcmFuc2Zvcm0oKSB7XHJcbiAgICBsZXQgaHN2ID0gdGhpcy5oc2xUb0hzdih0aGlzLmhzbGEuaCBhcyBudW1iZXIsIHRoaXMuaHNsYS5zIGFzIG51bWJlciwgdGhpcy5oc2xhLmwgYXMgbnVtYmVyKTtcclxuICAgIHRoaXMudHJhbnNmb3JtLnggPSBoc3YucyAqIHRoaXMucGxhdGUud2lkdGggLSB0aGlzLm9mZnNldDtcclxuICAgIHRoaXMudHJhbnNmb3JtLnkgPSAoMSAtIGhzdi52KSAqIHRoaXMucGxhdGUuaGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICB9XHJcblxyXG4gIHN0YXJ0ZWQoKSB7XHJcbiAgICB0aGlzLmRyYWcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZW5kZWQoKSB7XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRyYWcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZWQoZHJhZzogQ2RrRHJhZ01vdmUpIHtcclxuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGRyYWcuc291cmNlLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcclxuICAgIGRyYWcuc291cmNlLnJlc2V0KCk7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHsgeDogdHJhbnNmb3JtLnggKyB0aGlzLmluaXRUcmFuc2Zvcm0ueCwgeTogdHJhbnNmb3JtLnkgKyB0aGlzLmluaXRUcmFuc2Zvcm0ueSB9O1xyXG4gICAgbGV0IGxlZnQgPSB0aGlzLnRyYW5zZm9ybS54ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICBsZXQgdG9wID0gdGhpcy50cmFuc2Zvcm0ueSArIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRMZXRmVG9wKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIpIHtcclxuICAgIGxldCBzID0gbGVmdCAvIHRoaXMucGxhdGUud2lkdGg7XHJcbiAgICBsZXQgdiA9IDEgLSB0b3AgLyB0aGlzLnBsYXRlLmhlaWdodDtcclxuICAgIGxldCBsID0gKCgyIC0gcykgKiB2KSAvIDI7XHJcbiAgICBpZiAobCAhPT0gMCkge1xyXG4gICAgICBpZiAobCA9PT0gMSkge1xyXG4gICAgICAgIHMgPSAwO1xyXG4gICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcclxuICAgICAgICBzID0gKHMgKiB2KSAvIChsICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcyA9IChzICogdikgLyAoMiAtIGwgKiAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgW3RoaXMuaHNsYS5zLCB0aGlzLmhzbGEubF0gPSBbTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLCBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSldO1xyXG4gICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldEhzbGFQZXJjZW50KCkge1xyXG4gICAgdGhpcy5oc2xhLnNwID0gdGhpcy5oc2xhLnMgPT09IDAgPyAnMCUnIDogKHRoaXMucGVyY2VudC50cmFuc2Zvcm0odGhpcy5oc2xhLnMsICcxLjAtMCcpIGFzIHN0cmluZyk7XHJcbiAgICB0aGlzLmhzbGEubHAgPSB0aGlzLmhzbGEubCA9PT0gMCA/ICcwJScgOiAodGhpcy5wZXJjZW50LnRyYW5zZm9ybSh0aGlzLmhzbGEubCwgJzEuMC0wJykgYXMgc3RyaW5nKTtcclxuICB9XHJcblxyXG4gIGdldFByaW1hcnkoKSB7XHJcbiAgICByZXR1cm4gWENvbXB1dGVkKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS14LXByaW1hcnknKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBodWVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYXRlQmFja2dyb3VuZCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicsIGBoc2woJHt0aGlzLmhzbGEuaH0sIDEwMCUsIDUwJSlgKTtcclxuICB9XHJcblxyXG4gIHNldFJhaWxCYWNrZ3JvdW5kKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgdGhpcy50cmFuc3BhcmVudFJhaWwsXHJcbiAgICAgICdiYWNrZ3JvdW5kJyxcclxuICAgICAgYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAwKSAwJSwgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAxKSAxMDAlKWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0cmFuc3BhcmVudENoYW5nZSgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSgpIHtcclxuICAgIHRoaXMuc2V0VmFsdWVCeVR5cGUoKTtcclxuICAgIHRoaXMuc2V0UmFpbEJhY2tncm91bmQoKTtcclxuICAgIHRoaXMubm9kZUVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZUJ5VHlwZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdoZXgnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgJHt0aGlzLmhleH1gO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdyZ2JhJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgJHt0aGlzLnJnYmEuYX0pYDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaHNsYScpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGBoc2xhKCR7dGhpcy5oc2xhLmh9LCAke3RoaXMuaHNsYS5zcH0sICR7dGhpcy5oc2xhLmxwfSwgJHt0aGlzLmhzbGEuYX0pYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhzbGFUb1JnYmEoaHNsYTogeyBoPzogbnVtYmVyOyBzPzogbnVtYmVyOyBsPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCByLCBnLCBiO1xyXG4gICAgbGV0IFtoLCBzLCBsXSA9IFtoc2xhLmggYXMgbnVtYmVyLCBoc2xhLnMgYXMgbnVtYmVyLCBoc2xhLmwgYXMgbnVtYmVyXTtcclxuICAgIGlmIChzID09IDApIHtcclxuICAgICAgciA9IGcgPSBiID0gbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBodWUycmdiID0gKHA6IG51bWJlciwgcTogbnVtYmVyLCB0OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAodCA8IDApIHQgKz0gMTtcclxuICAgICAgICBpZiAodCA+IDEpIHQgLT0gMTtcclxuICAgICAgICBpZiAodCA8IDEgLyA2KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcclxuICAgICAgICBpZiAodCA8IDEgLyAyKSByZXR1cm4gcTtcclxuICAgICAgICBpZiAodCA8IDIgLyAzKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XHJcbiAgICAgICAgcmV0dXJuIHA7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBsZXQgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XHJcbiAgICAgIGxldCBwID0gMiAqIGwgLSBxO1xyXG4gICAgICByID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwICsgMSAvIDMpO1xyXG4gICAgICBnID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwKTtcclxuICAgICAgYiA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCAtIDEgLyAzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IHI6IE1hdGgucm91bmQociAqIDI1NSksIGc6IE1hdGgucm91bmQoZyAqIDI1NSksIGI6IE1hdGgucm91bmQoYiAqIDI1NSksIGE6IE51bWJlcihoc2xhLmEpIH07XHJcbiAgfVxyXG5cclxuICByZ2JhVG9IZXgocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBoZXggPSBbXHJcbiAgICAgIChyZ2JhLnIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmcgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIE1hdGgucm91bmQoMjU1ICogKHJnYmEuYSBhcyBudW1iZXIpKS50b1N0cmluZygxNilcclxuICAgIF07XHJcbiAgICBoZXguZm9yRWFjaCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGluZGV4ID09PSAzICYmIHggPT09ICdmZicpIHtcclxuICAgICAgICBoZXhbaW5kZXhdID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHgubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcwJyArIHg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGAjJHtoZXguam9pbignJyl9YDtcclxuICB9XHJcblxyXG4gIHJnYmFUb0hzbGEocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBbciwgZywgYl0gPSBbKHJnYmEuciBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5nIGFzIG51bWJlcikgLyAyNTUsIChyZ2JhLmIgYXMgbnVtYmVyKSAvIDI1NV07XHJcbiAgICBsZXQgW21heCwgbWluXSA9IFtNYXRoLm1heChyLCBnLCBiKSwgTWF0aC5taW4ociwgZywgYildO1xyXG4gICAgbGV0IGggPSAwO1xyXG4gICAgbGV0IHMgPSAwO1xyXG4gICAgbGV0IGwgPSAobWF4ICsgbWluKSAvIDI7XHJcblxyXG4gICAgaWYgKG1heCA9PT0gbWluKSB7XHJcbiAgICAgIGggPSBzID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkID0gbWF4IC0gbWluO1xyXG4gICAgICBzID0gbCA+IDAuNSA/IGQgLyAoMiAtIG1heCAtIG1pbikgOiBkIC8gKG1heCArIG1pbik7XHJcbiAgICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSByOlxyXG4gICAgICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOlxyXG4gICAgICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjpcclxuICAgICAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBoIC89IDY7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaDogTWF0aC5yb3VuZChoICogMzYwKSxcclxuICAgICAgczogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLFxyXG4gICAgICBsOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSksXHJcbiAgICAgIGE6IE51bWJlcihyZ2JhLmEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaGV4VG9SZ2JhKGhleDogc3RyaW5nKSB7XHJcbiAgICBsZXQgaGV4TnVtID0gaGV4LnN1YnN0cmluZygxKTtcclxuICAgIGxldCBhID0gMTtcclxuICAgIGlmIChoZXhOdW0ubGVuZ3RoID09PSA4KSB7XHJcbiAgICAgIGEgPSBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShOdW1iZXIoJzB4JyArIGhleE51bS5zbGljZSgtMikpIC8gMjU1LCAnMS4yLTInKSk7XHJcbiAgICAgIGhleE51bSA9IGhleE51bS5zdWJzdHJpbmcoMCwgaGV4TnVtLmxlbmd0aCAtIDIpO1xyXG4gICAgfVxyXG4gICAgbGV0IG51bSA9IE51bWJlcignMHgnICsgKGhleE51bS5sZW5ndGggPCA2ID8gdGhpcy5yZXBlYXRMZXR0ZXIoaGV4TnVtLCAyKSA6IGhleE51bSkpO1xyXG4gICAgcmV0dXJuIHsgcjogbnVtID4+IDE2LCBnOiAobnVtID4+IDgpICYgMHhmZiwgYjogbnVtICYgMHhmZiwgYTogYSB9O1xyXG4gIH1cclxuXHJcbiAgaHNsVG9Ic3YoaDogbnVtYmVyLCBzOiBudW1iZXIsIGw6IG51bWJlcikge1xyXG4gICAgbGV0IGhIc3YsIHNIc3YsIHY7XHJcblxyXG4gICAgaEhzdiA9IGg7XHJcblxyXG4gICAgaWYgKGwgPT0gMCkge1xyXG4gICAgICBzSHN2ID0gMDtcclxuICAgICAgdiA9IDA7XHJcbiAgICB9IGVsc2UgaWYgKGwgPiAwICYmIGwgPD0gMC41KSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMpIC8gKDEgKyBzKTtcclxuICAgICAgdiA9IGwgKiAoMSArIHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc0hzdiA9ICgyICogcyAtIDIgKiBzICogbCkgLyAocyAtIHMgKiBsICsgbCk7XHJcbiAgICAgIHYgPSBzIC0gcyAqIGwgKyBsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IGhIc3YsXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHNIc3YsICcxLjItMicpKSxcclxuICAgICAgdjogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0odiwgJzEuMi0yJykpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVwZWF0V29yZCh3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bTsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdCArPSB3b3JkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHJlcGVhdExldHRlcih3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBsZXR0ZXIgb2Ygd29yZCkge1xyXG4gICAgICByZXN1bHQgKz0gdGhpcy5yZXBlYXRXb3JkKGxldHRlciwgbnVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWxcIiB0YWJpbmRleD1cIi0xXCIgKGNsaWNrKT1cInN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgPGRpdiAjcGFuZWxSZWYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtcGFuZWxcIj5cclxuICAgIDxkaXYgI3BsYXRlUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBsYXRlXCIgKGNsaWNrKT1cInBsYXRlQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXdoaXRlXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYmxhY2tcIj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNkcmFnQ29tXHJcbiAgICAgICAgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtY3Vyc29yXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJ0cmFuc2Zvcm0ueFwiXHJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJ0cmFuc2Zvcm0ueVwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwicGFuZWxSZWZcIlxyXG4gICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQpXCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10b29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLW9wZXJhdGlvbnNcIj5cclxuICAgICAgPCEtLSA8eC1idXR0b24gaWNvbj1cImZ0by1lZGl0LTJcIiBvbmx5SWNvbj48L3gtYnV0dG9uPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1zZWxlY3RlZFwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwidmFsdWVcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYXJlYVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2xpZGVyXCI+XHJcbiAgICAgICAgICA8eC1zbGlkZXItc2VsZWN0XHJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5oXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjM2MFwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydEVtaXQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAgICAgKGRyYWdFbmRFbWl0KT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJodWVDaGFuZ2UoKVwiXHJcbiAgICAgICAgICA+PC94LXNsaWRlci1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10cmFuc3BhcmVudFwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICAjdHJhbnNwYXJlbnRDb21cclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoc2xhLmFcIlxyXG4gICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgbWF4PVwiMVwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIwLjAxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydGVkKT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRyYW5zcGFyZW50Q2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1hbHBoYVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10eXBlXCI+XHJcbiAgICAgIDx4LXRhYnMgYW5pbWF0ZWQ9XCJmYWxzZVwiIGp1c3RpZnk9XCJjZW50ZXJcIj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIRVhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiIFsobmdNb2RlbCldPVwiaGV4XCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGV4Q2hhbmdlKClcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIlJHQkFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5yXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5nXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5iXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIkhTTEFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5oXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5zcFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEubHBcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwveC10YWI+XHJcbiAgICAgIDwveC10YWJzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsTUFBTSxFQU9OLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBYyxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQUczQyxNQVNhLDJCQUEyQjtJQUVzQixJQUFJLENBQUMsS0FBdUI7UUFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUM0RCxLQUFLO1FBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQThCRCxZQUNTLFVBQW1DLEVBQ25DLFFBQW1CLEVBQ0QsR0FBUSxFQUMxQixNQUFj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RSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUlsQixRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNRLGNBQWM7c0JBQTVELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSW5qZWN0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE5nWm9uZSxcclxuICBSZW5kZXJlcjIsXHJcbiAgT25EZXN0cm95LFxyXG4gIFZpZXdDaGlsZCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSG9zdEJpbmRpbmdcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyUG9ydGFsUHJlZml4LCBYQ29sb3JUeXBlIH0gZnJvbSAnLi9jb2xvci1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYUG9zaXRpb25Ub3BCb3R0b20sIFhDb21wdXRlZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2RrRHJhZ01vdmUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRE9DVU1FTlQsIERlY2ltYWxQaXBlLCBQZXJjZW50UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hDb2xvclBpY2tlclBvcnRhbFByZWZpeH1gLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZSwgUGVyY2VudFBpcGVdLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ29sb3JQaWNrZXJQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgncGFuZWxSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwYW5lbFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3BsYXRlUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcGxhdGVSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCd0cmFuc3BhcmVudENvbScsIHsgc3RhdGljOiB0cnVlIH0pIHRyYW5zcGFyZW50Q29tITogWFNsaWRlclNlbGVjdENvbXBvbmVudDtcclxuICB2YWx1ZSE6IHN0cmluZztcclxuICB0cmFuc3BhcmVudFJhaWwhOiBIVE1MRWxlbWVudDtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8c3RyaW5nPjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IEZ1bmN0aW9uO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBzbGlkZXJDb2xvck51bSA9IDA7XHJcbiAgdHlwZSE6IFhDb2xvclR5cGU7XHJcbiAgb2Zmc2V0ID0gMDtcclxuICBwYW5lbCE6IERPTVJlY3Q7XHJcbiAgcGxhdGUhOiBET01SZWN0O1xyXG4gIHRyYW5zZm9ybSA9IHsgeDogMCwgeTogMCB9O1xyXG4gIGluaXRUcmFuc2Zvcm0gPSB7IHg6IDAsIHk6IDAgfTtcclxuICBkcmFnID0gZmFsc2U7XHJcblxyXG4gIHJnYmE6IHsgcj86IG51bWJlcjsgZz86IG51bWJlcjsgYj86IG51bWJlcjsgYT86IG51bWJlciB9ID0geyBhOiAxIH07XHJcbiAgaHNsYTogeyBoPzogbnVtYmVyOyBzPzogbnVtYmVyOyBsPzogbnVtYmVyOyBhPzogbnVtYmVyOyBzcD86IHN0cmluZzsgbHA/OiBzdHJpbmcgfSA9IHsgaDogMCwgYTogMSB9O1xyXG4gIGhleCE6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHB1YmxpYyBkb2M6IGFueSxcclxuICAgIHB1YmxpYyBuZ1pvbmU6IE5nWm9uZSxcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGRlY2ltYWw6IERlY2ltYWxQaXBlLFxyXG4gICAgcHVibGljIHBlcmNlbnQ6IFBlcmNlbnRQaXBlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4OiBzdHJpbmcpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5wYW5lbCA9IHRoaXMucGFuZWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucGxhdGUgPSB0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLm9mZnNldCA9ICh0aGlzLnBhbmVsLndpZHRoIC0gdGhpcy5wbGF0ZS53aWR0aCkgLyAyO1xyXG4gICAgdGhpcy50cmFuc3BhcmVudFJhaWwgPSB0aGlzLnRyYW5zcGFyZW50Q29tLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcueC1zbGlkZXItc2VsZWN0LXJhaWwgZGl2JykhO1xyXG4gICAgdGhpcy5zZXRUcmFuc2Zvcm0oKTtcclxuICAgIHRoaXMuc2V0UGxhdGVCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLnNldFJhaWxCYWNrZ3JvdW5kKCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBoZXhDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5kcmFnIHx8ICEvKF4jWzAtOUEtRl17Nn0kKS9pLnRlc3QodGhpcy5oZXgpKSByZXR1cm47XHJcbiAgICB0aGlzLnJnYmEgPSB0aGlzLmhleFRvUmdiYSh0aGlzLmhleCk7XHJcbiAgICB0aGlzLmhzbGEgPSB0aGlzLnJnYmFUb0hzbGEodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIHRoaXMuc2V0VHJhbnNmb3JtKCk7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmdiYUNoYW5nZSgpIHt9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0UHJpbWFyeSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb2xvckNvbnZlcnQoKTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdCgpIHt9XHJcblxyXG4gIGNvbG9yQ29udmVydCgpIHtcclxuICAgIGlmICgvXiMvLnRlc3QodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5oZXggPSB0aGlzLnZhbHVlO1xyXG4gICAgICB0aGlzLnJnYmEgPSB0aGlzLmhleFRvUmdiYSh0aGlzLmhleCk7XHJcbiAgICAgIHRoaXMuaHNsYSA9IHRoaXMucmdiYVRvSHNsYSh0aGlzLnJnYmEpO1xyXG4gICAgICB0aGlzLnNldEhzbGFQZXJjZW50KCk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdoZXgnO1xyXG4gICAgfSBlbHNlIGlmICgvcmdiLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmdiYUNvbnZlcnQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgICAgdGhpcy5oc2xhID0gdGhpcy5yZ2JhVG9Ic2xhKHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgICAgdGhpcy50eXBlID0gJ3JnYmEnO1xyXG4gICAgfSBlbHNlIGlmICgvaHNsLy50ZXN0KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaHNsYUNvbnZlcnQodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMucmdiYSA9IHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpO1xyXG4gICAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdoc2xhJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJnYmFDb252ZXJ0KHN0cjogc3RyaW5nKSB7XHJcbiAgICBsZXQgcmdiYSA9IHN0clxyXG4gICAgICAucmVwbGFjZSgvcmdiYT9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL3JnYj9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcKS8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvW1xccytdL2csICcnKVxyXG4gICAgICAuc3BsaXQoJywnKTtcclxuICAgIGlmIChyZ2JhLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdGhpcy5yZ2JhID0ge1xyXG4gICAgICAgIHI6IE51bWJlcihyZ2JhWzBdKSxcclxuICAgICAgICBnOiBOdW1iZXIocmdiYVsxXSksXHJcbiAgICAgICAgYjogTnVtYmVyKHJnYmFbMl0pLFxyXG4gICAgICAgIGE6IE51bWJlcihyZ2JhLmxlbmd0aCA+IDMgPyByZ2JhWzNdIDogMSlcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhzbGFDb252ZXJ0KHN0cjogc3RyaW5nKSB7XHJcbiAgICBsZXQgaHNsYSA9IHN0clxyXG4gICAgICAucmVwbGFjZSgvaHNsYT9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL2hzbD9cXCgvLCAnJylcclxuICAgICAgLnJlcGxhY2UoL1xcKS8sICcnKVxyXG4gICAgICAucmVwbGFjZSgvW1xccytdL2csICcnKVxyXG4gICAgICAuc3BsaXQoJywnKTtcclxuICAgIGlmIChoc2xhLmxlbmd0aCA+IDIpIHtcclxuICAgICAgdGhpcy5oc2xhID0ge1xyXG4gICAgICAgIGg6IE51bWJlcihoc2xhWzBdKSxcclxuICAgICAgICBzOiBOdW1iZXIoaHNsYVsxXS5yZXBsYWNlKCclJywgJycpKSAvIDEwMCxcclxuICAgICAgICBsOiBOdW1iZXIoaHNsYVsyXS5yZXBsYWNlKCclJywgJycpKSAvIDEwMCxcclxuICAgICAgICBhOiBOdW1iZXIoaHNsYS5sZW5ndGggPiAzID8gaHNsYVszXSA6IDEpXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc2V0SHNsYVBlcmNlbnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBsYXRlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmRyYWcpIHJldHVybjtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLnBsYXRlUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBsZXQgbGVmdCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XHJcbiAgICBsZXQgdG9wID0gZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB7IHg6IGxlZnQgLSB0aGlzLm9mZnNldCwgeTogdG9wIC0gdGhpcy5vZmZzZXQgfTtcclxuICAgIHRoaXMuaW5pdFRyYW5zZm9ybSA9IHsgeDogdGhpcy50cmFuc2Zvcm0ueCwgeTogdGhpcy50cmFuc2Zvcm0ueSB9O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRUcmFuc2Zvcm0oKSB7XHJcbiAgICBsZXQgaHN2ID0gdGhpcy5oc2xUb0hzdih0aGlzLmhzbGEuaCBhcyBudW1iZXIsIHRoaXMuaHNsYS5zIGFzIG51bWJlciwgdGhpcy5oc2xhLmwgYXMgbnVtYmVyKTtcclxuICAgIHRoaXMudHJhbnNmb3JtLnggPSBoc3YucyAqIHRoaXMucGxhdGUud2lkdGggLSB0aGlzLm9mZnNldDtcclxuICAgIHRoaXMudHJhbnNmb3JtLnkgPSAoMSAtIGhzdi52KSAqIHRoaXMucGxhdGUuaGVpZ2h0IC0gdGhpcy5vZmZzZXQ7XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICB9XHJcblxyXG4gIHN0YXJ0ZWQoKSB7XHJcbiAgICB0aGlzLmRyYWcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZW5kZWQoKSB7XHJcbiAgICB0aGlzLmluaXRUcmFuc2Zvcm0gPSB7IHg6IHRoaXMudHJhbnNmb3JtLngsIHk6IHRoaXMudHJhbnNmb3JtLnkgfTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmRyYWcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZWQoZHJhZzogQ2RrRHJhZ01vdmUpIHtcclxuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGRyYWcuc291cmNlLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcclxuICAgIGRyYWcuc291cmNlLnJlc2V0KCk7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHsgeDogdHJhbnNmb3JtLnggKyB0aGlzLmluaXRUcmFuc2Zvcm0ueCwgeTogdHJhbnNmb3JtLnkgKyB0aGlzLmluaXRUcmFuc2Zvcm0ueSB9O1xyXG4gICAgbGV0IGxlZnQgPSB0aGlzLnRyYW5zZm9ybS54ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICBsZXQgdG9wID0gdGhpcy50cmFuc2Zvcm0ueSArIHRoaXMub2Zmc2V0O1xyXG4gICAgdGhpcy5zZXRMZXRmVG9wKGxlZnQsIHRvcCk7XHJcbiAgfVxyXG5cclxuICBzZXRMZXRmVG9wKGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIpIHtcclxuICAgIGxldCBzID0gbGVmdCAvIHRoaXMucGxhdGUud2lkdGg7XHJcbiAgICBsZXQgdiA9IDEgLSB0b3AgLyB0aGlzLnBsYXRlLmhlaWdodDtcclxuICAgIGxldCBsID0gKCgyIC0gcykgKiB2KSAvIDI7XHJcbiAgICBpZiAobCAhPT0gMCkge1xyXG4gICAgICBpZiAobCA9PT0gMSkge1xyXG4gICAgICAgIHMgPSAwO1xyXG4gICAgICB9IGVsc2UgaWYgKGwgPCAwLjUpIHtcclxuICAgICAgICBzID0gKHMgKiB2KSAvIChsICogMik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcyA9IChzICogdikgLyAoMiAtIGwgKiAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgW3RoaXMuaHNsYS5zLCB0aGlzLmhzbGEubF0gPSBbTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLCBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSldO1xyXG4gICAgdGhpcy5zZXRIc2xhUGVyY2VudCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldEhzbGFQZXJjZW50KCkge1xyXG4gICAgdGhpcy5oc2xhLnNwID0gdGhpcy5oc2xhLnMgPT09IDAgPyAnMCUnIDogKHRoaXMucGVyY2VudC50cmFuc2Zvcm0odGhpcy5oc2xhLnMsICcxLjAtMCcpIGFzIHN0cmluZyk7XHJcbiAgICB0aGlzLmhzbGEubHAgPSB0aGlzLmhzbGEubCA9PT0gMCA/ICcwJScgOiAodGhpcy5wZXJjZW50LnRyYW5zZm9ybSh0aGlzLmhzbGEubCwgJzEuMC0wJykgYXMgc3RyaW5nKTtcclxuICB9XHJcblxyXG4gIGdldFByaW1hcnkoKSB7XHJcbiAgICByZXR1cm4gWENvbXB1dGVkKHRoaXMuZG9jLmRvY3VtZW50RWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnLS14LXByaW1hcnknKS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBodWVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNldFBsYXRlQmFja2dyb3VuZCgpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJnYmEsIHRoaXMuaHNsYVRvUmdiYSh0aGlzLmhzbGEpKTtcclxuICAgIHRoaXMuaGV4ID0gdGhpcy5yZ2JhVG9IZXgodGhpcy5yZ2JhKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYXRlQmFja2dyb3VuZCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGF0ZVJlZi5uYXRpdmVFbGVtZW50LCAnYmFja2dyb3VuZC1jb2xvcicsIGBoc2woJHt0aGlzLmhzbGEuaH0sIDEwMCUsIDUwJSlgKTtcclxuICB9XHJcblxyXG4gIHNldFJhaWxCYWNrZ3JvdW5kKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgdGhpcy50cmFuc3BhcmVudFJhaWwsXHJcbiAgICAgICdiYWNrZ3JvdW5kJyxcclxuICAgICAgYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAwKSAwJSwgcmdiYSgke3RoaXMucmdiYS5yfSwgJHt0aGlzLnJnYmEuZ30sICR7dGhpcy5yZ2JhLmJ9LCAxKSAxMDAlKWBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB0cmFuc3BhcmVudENoYW5nZSgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZ2JhLCB0aGlzLmhzbGFUb1JnYmEodGhpcy5oc2xhKSk7XHJcbiAgICB0aGlzLmhleCA9IHRoaXMucmdiYVRvSGV4KHRoaXMucmdiYSk7XHJcbiAgICB0aGlzLnNldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSgpIHtcclxuICAgIHRoaXMuc2V0VmFsdWVCeVR5cGUoKTtcclxuICAgIHRoaXMuc2V0UmFpbEJhY2tncm91bmQoKTtcclxuICAgIHRoaXMubm9kZUVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZUJ5VHlwZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdoZXgnKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBgJHt0aGlzLmhleH1gO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdyZ2JhJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gYHJnYmEoJHt0aGlzLnJnYmEucn0sICR7dGhpcy5yZ2JhLmd9LCAke3RoaXMucmdiYS5ifSwgJHt0aGlzLnJnYmEuYX0pYDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaHNsYScpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGBoc2xhKCR7dGhpcy5oc2xhLmh9LCAke3RoaXMuaHNsYS5zcH0sICR7dGhpcy5oc2xhLmxwfSwgJHt0aGlzLmhzbGEuYX0pYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhzbGFUb1JnYmEoaHNsYTogeyBoPzogbnVtYmVyOyBzPzogbnVtYmVyOyBsPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCByLCBnLCBiO1xyXG4gICAgbGV0IFtoLCBzLCBsXSA9IFtoc2xhLmggYXMgbnVtYmVyLCBoc2xhLnMgYXMgbnVtYmVyLCBoc2xhLmwgYXMgbnVtYmVyXTtcclxuICAgIGlmIChzID09IDApIHtcclxuICAgICAgciA9IGcgPSBiID0gbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBodWUycmdiID0gKHA6IG51bWJlciwgcTogbnVtYmVyLCB0OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAodCA8IDApIHQgKz0gMTtcclxuICAgICAgICBpZiAodCA+IDEpIHQgLT0gMTtcclxuICAgICAgICBpZiAodCA8IDEgLyA2KSByZXR1cm4gcCArIChxIC0gcCkgKiA2ICogdDtcclxuICAgICAgICBpZiAodCA8IDEgLyAyKSByZXR1cm4gcTtcclxuICAgICAgICBpZiAodCA8IDIgLyAzKSByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XHJcbiAgICAgICAgcmV0dXJuIHA7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBsZXQgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XHJcbiAgICAgIGxldCBwID0gMiAqIGwgLSBxO1xyXG4gICAgICByID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwICsgMSAvIDMpO1xyXG4gICAgICBnID0gaHVlMnJnYihwLCBxLCBoIC8gMzYwKTtcclxuICAgICAgYiA9IGh1ZTJyZ2IocCwgcSwgaCAvIDM2MCAtIDEgLyAzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IHI6IE1hdGgucm91bmQociAqIDI1NSksIGc6IE1hdGgucm91bmQoZyAqIDI1NSksIGI6IE1hdGgucm91bmQoYiAqIDI1NSksIGE6IE51bWJlcihoc2xhLmEpIH07XHJcbiAgfVxyXG5cclxuICByZ2JhVG9IZXgocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBoZXggPSBbXHJcbiAgICAgIChyZ2JhLnIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmcgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIChyZ2JhLmIgYXMgbnVtYmVyKS50b1N0cmluZygxNiksXHJcbiAgICAgIE1hdGgucm91bmQoMjU1ICogKHJnYmEuYSBhcyBudW1iZXIpKS50b1N0cmluZygxNilcclxuICAgIF07XHJcbiAgICBoZXguZm9yRWFjaCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKGluZGV4ID09PSAzICYmIHggPT09ICdmZicpIHtcclxuICAgICAgICBoZXhbaW5kZXhdID0gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHgubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgaGV4W2luZGV4XSA9ICcwJyArIHg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGAjJHtoZXguam9pbignJyl9YDtcclxuICB9XHJcblxyXG4gIHJnYmFUb0hzbGEocmdiYTogeyByPzogbnVtYmVyOyBnPzogbnVtYmVyOyBiPzogbnVtYmVyOyBhPzogbnVtYmVyIH0pIHtcclxuICAgIGxldCBbciwgZywgYl0gPSBbKHJnYmEuciBhcyBudW1iZXIpIC8gMjU1LCAocmdiYS5nIGFzIG51bWJlcikgLyAyNTUsIChyZ2JhLmIgYXMgbnVtYmVyKSAvIDI1NV07XHJcbiAgICBsZXQgW21heCwgbWluXSA9IFtNYXRoLm1heChyLCBnLCBiKSwgTWF0aC5taW4ociwgZywgYildO1xyXG4gICAgbGV0IGggPSAwO1xyXG4gICAgbGV0IHMgPSAwO1xyXG4gICAgbGV0IGwgPSAobWF4ICsgbWluKSAvIDI7XHJcblxyXG4gICAgaWYgKG1heCA9PT0gbWluKSB7XHJcbiAgICAgIGggPSBzID0gMDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkID0gbWF4IC0gbWluO1xyXG4gICAgICBzID0gbCA+IDAuNSA/IGQgLyAoMiAtIG1heCAtIG1pbikgOiBkIC8gKG1heCArIG1pbik7XHJcbiAgICAgIHN3aXRjaCAobWF4KSB7XHJcbiAgICAgICAgY2FzZSByOlxyXG4gICAgICAgICAgaCA9IChnIC0gYikgLyBkICsgKGcgPCBiID8gNiA6IDApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBnOlxyXG4gICAgICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgYjpcclxuICAgICAgICAgIGggPSAociAtIGcpIC8gZCArIDQ7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBoIC89IDY7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaDogTWF0aC5yb3VuZChoICogMzYwKSxcclxuICAgICAgczogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0ocywgJzEuMi0yJykpLFxyXG4gICAgICBsOiBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShsLCAnMS4yLTInKSksXHJcbiAgICAgIGE6IE51bWJlcihyZ2JhLmEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaGV4VG9SZ2JhKGhleDogc3RyaW5nKSB7XHJcbiAgICBsZXQgaGV4TnVtID0gaGV4LnN1YnN0cmluZygxKTtcclxuICAgIGxldCBhID0gMTtcclxuICAgIGlmIChoZXhOdW0ubGVuZ3RoID09PSA4KSB7XHJcbiAgICAgIGEgPSBOdW1iZXIodGhpcy5kZWNpbWFsLnRyYW5zZm9ybShOdW1iZXIoJzB4JyArIGhleE51bS5zbGljZSgtMikpIC8gMjU1LCAnMS4yLTInKSk7XHJcbiAgICAgIGhleE51bSA9IGhleE51bS5zdWJzdHJpbmcoMCwgaGV4TnVtLmxlbmd0aCAtIDIpO1xyXG4gICAgfVxyXG4gICAgbGV0IG51bSA9IE51bWJlcignMHgnICsgKGhleE51bS5sZW5ndGggPCA2ID8gdGhpcy5yZXBlYXRMZXR0ZXIoaGV4TnVtLCAyKSA6IGhleE51bSkpO1xyXG4gICAgcmV0dXJuIHsgcjogbnVtID4+IDE2LCBnOiAobnVtID4+IDgpICYgMHhmZiwgYjogbnVtICYgMHhmZiwgYTogYSB9O1xyXG4gIH1cclxuXHJcbiAgaHNsVG9Ic3YoaDogbnVtYmVyLCBzOiBudW1iZXIsIGw6IG51bWJlcikge1xyXG4gICAgbGV0IGhIc3YsIHNIc3YsIHY7XHJcblxyXG4gICAgaEhzdiA9IGg7XHJcblxyXG4gICAgaWYgKGwgPT0gMCkge1xyXG4gICAgICBzSHN2ID0gMDtcclxuICAgICAgdiA9IDA7XHJcbiAgICB9IGVsc2UgaWYgKGwgPiAwICYmIGwgPD0gMC41KSB7XHJcbiAgICAgIHNIc3YgPSAoMiAqIHMpIC8gKDEgKyBzKTtcclxuICAgICAgdiA9IGwgKiAoMSArIHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc0hzdiA9ICgyICogcyAtIDIgKiBzICogbCkgLyAocyAtIHMgKiBsICsgbCk7XHJcbiAgICAgIHYgPSBzIC0gcyAqIGwgKyBsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGg6IGhIc3YsXHJcbiAgICAgIHM6IE51bWJlcih0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHNIc3YsICcxLjItMicpKSxcclxuICAgICAgdjogTnVtYmVyKHRoaXMuZGVjaW1hbC50cmFuc2Zvcm0odiwgJzEuMi0yJykpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcmVwZWF0V29yZCh3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bTsgaSsrKSB7XHJcbiAgICAgIHJlc3VsdCArPSB3b3JkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHJlcGVhdExldHRlcih3b3JkOiBzdHJpbmcsIG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBmb3IgKGxldCBsZXR0ZXIgb2Ygd29yZCkge1xyXG4gICAgICByZXN1bHQgKz0gdGhpcy5yZXBlYXRXb3JkKGxldHRlciwgbnVtKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWxcIiB0YWJpbmRleD1cIi0xXCIgKGNsaWNrKT1cInN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgPGRpdiAjcGFuZWxSZWYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtcGFuZWxcIj5cclxuICAgIDxkaXYgI3BsYXRlUmVmIGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXBsYXRlXCIgKGNsaWNrKT1cInBsYXRlQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLXdoaXRlXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYmxhY2tcIj48L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNkcmFnQ29tXHJcbiAgICAgICAgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtY3Vyc29yXCJcclxuICAgICAgICBbc3R5bGUubGVmdC5weF09XCJ0cmFuc2Zvcm0ueFwiXHJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJ0cmFuc2Zvcm0ueVwiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwicGFuZWxSZWZcIlxyXG4gICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKClcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQpXCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10b29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jb2xvci1waWNrZXItcG9ydGFsLW9wZXJhdGlvbnNcIj5cclxuICAgICAgPCEtLSA8eC1idXR0b24gaWNvbj1cImZ0by1lZGl0LTJcIiBvbmx5SWNvbj48L3gtYnV0dG9uPiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1zZWxlY3RlZFwiPlxyXG4gICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwidmFsdWVcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtYXJlYVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtc2xpZGVyXCI+XHJcbiAgICAgICAgICA8eC1zbGlkZXItc2VsZWN0XHJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaHNsYS5oXCJcclxuICAgICAgICAgICAgbWluPVwiMFwiXHJcbiAgICAgICAgICAgIG1heD1cIjM2MFwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydEVtaXQpPVwic3RhcnRlZCgpXCJcclxuICAgICAgICAgICAgKGRyYWdFbmRFbWl0KT1cImVuZGVkKClcIlxyXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJodWVDaGFuZ2UoKVwiXHJcbiAgICAgICAgICA+PC94LXNsaWRlci1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10cmFuc3BhcmVudFwiPlxyXG4gICAgICAgICAgPHgtc2xpZGVyLXNlbGVjdFxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCIxMDBcIlxyXG4gICAgICAgICAgICAjdHJhbnNwYXJlbnRDb21cclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJoc2xhLmFcIlxyXG4gICAgICAgICAgICBtaW49XCIwXCJcclxuICAgICAgICAgICAgbWF4PVwiMVwiXHJcbiAgICAgICAgICAgIHN0ZXA9XCIwLjAxXCJcclxuICAgICAgICAgICAgKGRyYWdTdGFydGVkKT1cInN0YXJ0ZWQoKVwiXHJcbiAgICAgICAgICAgIChkcmFnRW5kZWQpPVwiZW5kZWQoKVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRyYW5zcGFyZW50Q2hhbmdlKClcIlxyXG4gICAgICAgICAgPjwveC1zbGlkZXItc2VsZWN0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC1hbHBoYVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXBvcnRhbC10eXBlXCI+XHJcbiAgICAgIDx4LXRhYnMgYW5pbWF0ZWQ9XCJmYWxzZVwiIGp1c3RpZnk9XCJjZW50ZXJcIj5cclxuICAgICAgICA8eC10YWIgbGFiZWw9XCJIRVhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFtzdHlsZS53aWR0aC4lXT1cIjEwMFwiIFsobmdNb2RlbCldPVwiaGV4XCIgKG5nTW9kZWxDaGFuZ2UpPVwiaGV4Q2hhbmdlKClcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIlJHQkFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5yXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5nXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5iXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwicmdiYS5hXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3gtdGFiPlxyXG4gICAgICAgIDx4LXRhYiBsYWJlbD1cIkhTTEFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWNvbG9yLXBpY2tlci1wb3J0YWwtdHlwZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5oXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L3gtaW5wdXQ+XHJcbiAgICAgICAgICAgIDx4LWlucHV0IFsobmdNb2RlbCldPVwiaHNsYS5zcFwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC94LWlucHV0PlxyXG4gICAgICAgICAgICA8eC1pbnB1dCBbKG5nTW9kZWwpXT1cImhzbGEubHBcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgICAgPHgtaW5wdXQgWyhuZ01vZGVsKV09XCJoc2xhLmFcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwveC1pbnB1dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwveC10YWI+XHJcbiAgICAgIDwveC10YWJzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -221,11 +221,11 @@ class XColorPickerComponent extends XColorPickerProperty {
221
221
  this.ngOnInit();
222
222
  this.cdr.detectChanges();
223
223
  }
224
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorPickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
225
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XColorPickerComponent, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
224
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorPickerComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.XPortalService }, { token: i0.ViewContainerRef }, { token: i2.Overlay }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
225
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XColorPickerComponent, selector: "x-color-picker", providers: [XValueAccessor(XColorPickerComponent)], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
226
226
  }
227
227
  export { XColorPickerComponent };
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XColorPickerComponent, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XColorPickerComponent, decorators: [{
229
229
  type: Component,
230
230
  args: [{ selector: 'x-color-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XColorPickerComponent)], template: "<div #colorPicker class=\"x-color-picker\">\r\n <div class=\"x-color-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [inputStyle]=\"inputStyle\"\r\n [pointer]=\"true\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-color-picker{display:inline-block;width:12rem}.x-color-picker{margin:0;padding:0;width:100%}.x-color-picker x-input{width:100%}\n"] }]
231
231
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.XPortalService }, { type: i0.ViewContainerRef }, { type: i2.Overlay }, { type: i0.ElementRef }]; }, propDecorators: { colorPicker: [{
@@ -235,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
235
235
  type: ViewChild,
236
236
  args: ['inputCom', { static: true }]
237
237
  }] } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQXFDLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBVyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFM0MsTUFRYSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFJcEQsVUFBVSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FB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QyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztpSUExT1UscUJBQXFCO3FIQUFyQixxQkFBcUIseUNBRnJCLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsZ1JDN0JwRCw2bkNBcUNBOztTRE5hLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyx1QkFBdUIsQ0FBQzsyT0FHTixXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0QsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyUHJvcGVydHkgfSBmcm9tICcuL2NvbG9yLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ybmVyLCBYQ2xlYXJDbGFzcywgWFBhcmVudHMgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LWNvbG9yLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYQ29sb3JQaWNrZXJDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWENvbG9yUGlja2VyUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbG9yUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgY29sb3JQaWNrZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dENvbScsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaW5wdXRTdHlsZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy52YWx1ZSxcclxuICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSByZWFkb25seTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY2xlYXJhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIHZhbHVlU3R5bGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0gPSB7fTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYQ29sb3JQaWNrZXJQb3J0YWxDb21wb25lbnQ+O1xyXG4gIGljb246IHN0cmluZyA9ICdmdG8tY2hldnJvbi1kb3duJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmNvbG9yUGlja2VyLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgICB0aGlzLnNldFBhcmFudFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICAgIC8vIHRoaXMuc2V0VmFsdWVTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZVN0eWxlKCkge1xyXG4gICAgdGhpcy52YWx1ZVN0eWxlID0ge1xyXG4gICAgICB3aWR0aDogYCR7dGhpcy5pbnB1dENvbS5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRofXB4YCxcclxuICAgICAgaGVpZ2h0OiBgJHt0aGlzLmlucHV0Q29tLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0fXB4YFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ2NvbHVtbicpIHtcclxuICAgICAgdGhpcy52YWx1ZVN0eWxlWydib3R0b20nXSA9IDA7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnKSB7XHJcbiAgICAgIHRoaXMudmFsdWVTdHlsZVsnYm90dG9tJ10gPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWVudGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSB0cnVlO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmljb24gPSAnJztcclxuICAgICAgdGhpcy5jbGVhcmFibGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtbGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuY2xlYXJhYmxlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmdG8tY2hldnJvbi1kb3duJztcclxuICAgICAgdGhpcy5jbGVhcmFibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJFbWl0KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcclxuICAgIHRoaXMubWxlYXZlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1BvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XHJcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcbiAgICBjb25zdCBjb25maWc6IE92ZXJsYXlDb25maWcgPSB7XHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnNldFBsYWNlbWVudCgpLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBhcmFudFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy5kb2N1bWVudCkgcmV0dXJuO1xyXG4gICAgY29uc3QgcGFyZW50cyA9IFhQYXJlbnRzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBmaXJzdFNjcm9sbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgcGFyZW50cykge1xyXG4gICAgICBpZiAoaXRlbS5jbGllbnRIZWlnaHQgPCBpdGVtLnNjcm9sbEhlaWdodCkge1xyXG4gICAgICAgIGZpcnN0U2Nyb2xsID0gaXRlbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGZpcnN0U2Nyb2xsICYmIGZpcnN0U2Nyb2xsLnRhZ05hbWUgIT09ICdCT0RZJykge1xyXG4gICAgICBmcm9tRXZlbnQoZmlyc3RTY3JvbGwsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMucG9ydGFsQXR0YWNoZWQoKSEpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgICAgIGNvbnN0IGVyYWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBjb25zdCBmcmVjdCA9IGZpcnN0U2Nyb2xsIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGlmIChlcmFjdC50b3AgKyBlcmFjdC5oZWlnaHQgLSBmcmVjdC50b3AgPCAwIHx8IGVyYWN0LmJvdHRvbSA+IGZyZWN0LmJvdHRvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZSgpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxyXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxyXG4gICAgICB2YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIGlucHV0Q29tOiB0aGlzLmlucHV0Q29tLFxyXG4gICAgICBjbG9zZVBvcnRhbDogKCkgPT4gdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpLFxyXG4gICAgICBkZXN0cm95UG9ydGFsOiAoKSA9PiB0aGlzLmRlc3Ryb3lQb3J0YWwoKSxcclxuICAgICAgbm9kZUVtaXQ6IChjb2xvcjogc3RyaW5nKSA9PiB0aGlzLm9uTm9kZUNsaWNrKGNvbG9yKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhjb2xvcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gY29sb3I7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGNvbG9yO1xyXG4gICAgdGhpcy5pbnB1dENvbS5pbnB1dEZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbS5pbnB1dFJlZixcclxuICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1jb2xvci1waWNrZXItcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNjb2xvclBpY2tlciBjbGFzcz1cIngtY29sb3ItcGlja2VyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXJvd1wiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI2lucHV0Q29tXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ25cIlxyXG4gICAgICBbanVzdGlmeV09XCJqdXN0aWZ5XCJcclxuICAgICAgW2FsaWduXT1cImFsaWduXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvclwiXHJcbiAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsXCJcclxuICAgICAgW3ZhbHVlVHBsQ29udGV4dF09XCJ2YWx1ZVRwbENvbnRleHRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgW2JlZm9yZV09XCJiZWZvcmVcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXJcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIFtpbnB1dFN0eWxlXT1cImlucHV0U3R5bGVcIlxyXG4gICAgICBbcG9pbnRlcl09XCJ0cnVlXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbiAgICAgICh4TW91c2VlbnRlcik9XCJtZW50ZXIoKVwiXHJcbiAgICAgICh4TW91c2VsZWF2ZSk9XCJtbGVhdmUoKVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQXFDLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBVyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFM0MsTUFRYSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFJcEQsVUFBVSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FB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QyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztrSUExT1UscUJBQXFCO3NIQUFyQixxQkFBcUIseUNBRnJCLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUMsZ1JDN0JwRCw2bkNBcUNBOztTRE5hLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyx1QkFBdUIsQ0FBQzsyT0FHTixXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0QsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xvci1waWNrZXItcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbG9yUGlja2VyUHJvcGVydHkgfSBmcm9tICcuL2NvbG9yLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ybmVyLCBYQ2xlYXJDbGFzcywgWFBhcmVudHMgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LWNvbG9yLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sb3ItcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYQ29sb3JQaWNrZXJDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENvbG9yUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWENvbG9yUGlja2VyUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbG9yUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgY29sb3JQaWNrZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdpbnB1dENvbScsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaW5wdXRTdHlsZSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy52YWx1ZSxcclxuICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSByZWFkb25seTogYm9vbGVhbiA9IHRydWU7XHJcbiAgY2xlYXJhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIHZhbHVlU3R5bGU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0gPSB7fTtcclxuICBwb3J0YWwhOiBYUG9ydGFsT3ZlcmxheVJlZjxYQ29sb3JQaWNrZXJQb3J0YWxDb21wb25lbnQ+O1xyXG4gIGljb246IHN0cmluZyA9ICdmdG8tY2hldnJvbi1kb3duJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmNvbG9yUGlja2VyLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSwgdGhpcy5hbGlnbiwgdGhpcy5kaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgICB0aGlzLnNldFBhcmFudFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3J0YWwoKTtcclxuICAgIC8vIHRoaXMuc2V0VmFsdWVTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZVN0eWxlKCkge1xyXG4gICAgdGhpcy52YWx1ZVN0eWxlID0ge1xyXG4gICAgICB3aWR0aDogYCR7dGhpcy5pbnB1dENvbS5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRofXB4YCxcclxuICAgICAgaGVpZ2h0OiBgJHt0aGlzLmlucHV0Q29tLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0fXB4YFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ2NvbHVtbicpIHtcclxuICAgICAgdGhpcy52YWx1ZVN0eWxlWydib3R0b20nXSA9IDA7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdyb3cnKSB7XHJcbiAgICAgIHRoaXMudmFsdWVTdHlsZVsnYm90dG9tJ10gPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWVudGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSB0cnVlO1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLmljb24gPSAnJztcclxuICAgICAgdGhpcy5jbGVhcmFibGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtbGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuY2xlYXJhYmxlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmdG8tY2hldnJvbi1kb3duJztcclxuICAgICAgdGhpcy5jbGVhcmFibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJFbWl0KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcclxuICAgIHRoaXMubWxlYXZlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbEF0dGFjaGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5wb3J0YWxBdHRhY2hlZCgpKSB7XHJcbiAgICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kZXRhY2goKTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1BvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuYW5pbWF0aW5nKSByZXR1cm47XHJcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcbiAgICBjb25zdCBjb25maWc6IE92ZXJsYXlDb25maWcgPSB7XHJcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICcnLFxyXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLnNldFBsYWNlbWVudCgpLFxyXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbihjb25maWcpO1xyXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLnBvcnRhbFNlcnZpY2UuYXR0YWNoKHtcclxuICAgICAgY29udGVudDogWENvbG9yUGlja2VyUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBhcmFudFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy5kb2N1bWVudCkgcmV0dXJuO1xyXG4gICAgY29uc3QgcGFyZW50cyA9IFhQYXJlbnRzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIGxldCBmaXJzdFNjcm9sbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgcGFyZW50cykge1xyXG4gICAgICBpZiAoaXRlbS5jbGllbnRIZWlnaHQgPCBpdGVtLnNjcm9sbEhlaWdodCkge1xyXG4gICAgICAgIGZpcnN0U2Nyb2xsID0gaXRlbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGZpcnN0U2Nyb2xsICYmIGZpcnN0U2Nyb2xsLnRhZ05hbWUgIT09ICdCT0RZJykge1xyXG4gICAgICBmcm9tRXZlbnQoZmlyc3RTY3JvbGwsICdzY3JvbGwnKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMucG9ydGFsQXR0YWNoZWQoKSEpLFxyXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb24oKTtcclxuICAgICAgICAgIGNvbnN0IGVyYWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgICBjb25zdCBmcmVjdCA9IGZpcnN0U2Nyb2xsIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgIGlmIChlcmFjdC50b3AgKyBlcmFjdC5oZWlnaHQgLSBmcmVjdC50b3AgPCAwIHx8IGVyYWN0LmJvdHRvbSA+IGZyZWN0LmJvdHRvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZSgpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxyXG4gICAgICBwbGFjZW1lbnQ6IHRoaXMucGxhY2VtZW50LFxyXG4gICAgICB2YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIGlucHV0Q29tOiB0aGlzLmlucHV0Q29tLFxyXG4gICAgICBjbG9zZVBvcnRhbDogKCkgPT4gdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpLFxyXG4gICAgICBkZXN0cm95UG9ydGFsOiAoKSA9PiB0aGlzLmRlc3Ryb3lQb3J0YWwoKSxcclxuICAgICAgbm9kZUVtaXQ6IChjb2xvcjogc3RyaW5nKSA9PiB0aGlzLm9uTm9kZUNsaWNrKGNvbG9yKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhjb2xvcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gY29sb3I7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IGNvbG9yO1xyXG4gICAgdGhpcy5pbnB1dENvbS5pbnB1dEZvY3VzKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbS5pbnB1dFJlZixcclxuICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1jb2xvci1waWNrZXItcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNjb2xvclBpY2tlciBjbGFzcz1cIngtY29sb3ItcGlja2VyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtY29sb3ItcGlja2VyLXJvd1wiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI2lucHV0Q29tXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ25cIlxyXG4gICAgICBbanVzdGlmeV09XCJqdXN0aWZ5XCJcclxuICAgICAgW2FsaWduXT1cImFsaWduXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvclwiXHJcbiAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsXCJcclxuICAgICAgW3ZhbHVlVHBsQ29udGV4dF09XCJ2YWx1ZVRwbENvbnRleHRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgW2JlZm9yZV09XCJiZWZvcmVcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXJcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIFtpbnB1dFN0eWxlXT1cImlucHV0U3R5bGVcIlxyXG4gICAgICBbcG9pbnRlcl09XCJ0cnVlXCJcclxuICAgICAgWyhhY3RpdmUpXT1cImFjdGl2ZVwiXHJcbiAgICAgIChjbGVhckVtaXQpPVwiY2xlYXJFbWl0KClcIlxyXG4gICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbiAgICAgICh4TW91c2VlbnRlcik9XCJtZW50ZXIoKVwiXHJcbiAgICAgICh4TW91c2VsZWF2ZSk9XCJtbGVhdmUoKVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19