@coreui/angular-pro 5.2.11 → 5.2.14

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 (335) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/accordion/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
  4. package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +5 -13
  5. package/esm2022/lib/accordion/accordion.module.mjs +4 -4
  6. package/esm2022/lib/accordion/accordion.service.mjs +5 -5
  7. package/esm2022/lib/alert/alert-heading.directive.mjs +8 -16
  8. package/esm2022/lib/alert/alert-link.directive.mjs +8 -16
  9. package/esm2022/lib/alert/alert.component.mjs +3 -3
  10. package/esm2022/lib/alert/alert.module.mjs +4 -4
  11. package/esm2022/lib/avatar/avatar.component.mjs +3 -3
  12. package/esm2022/lib/avatar/avatar.module.mjs +4 -4
  13. package/esm2022/lib/backdrop/backdrop.service.mjs +3 -3
  14. package/esm2022/lib/badge/badge.component.mjs +3 -3
  15. package/esm2022/lib/badge/badge.module.mjs +4 -4
  16. package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +6 -13
  17. package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
  18. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
  19. package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
  20. package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
  21. package/esm2022/lib/button/button-close.directive.mjs +27 -26
  22. package/esm2022/lib/button/button.directive.mjs +62 -76
  23. package/esm2022/lib/button/button.module.mjs +4 -4
  24. package/esm2022/lib/button-group/button-group/button-group.component.mjs +27 -28
  25. package/esm2022/lib/button-group/button-group.module.mjs +4 -4
  26. package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +10 -22
  27. package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
  28. package/esm2022/lib/calendar/calendar/calendar.component.mjs +5 -5
  29. package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
  30. package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
  31. package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
  32. package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
  33. package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
  34. package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +24 -12
  35. package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
  36. package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +3 -3
  37. package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +3 -3
  38. package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
  39. package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +3 -3
  40. package/esm2022/lib/calendar/calendar.module.mjs +4 -4
  41. package/esm2022/lib/calendar/calendar.service.mjs +3 -3
  42. package/esm2022/lib/callout/callout.component.mjs +5 -5
  43. package/esm2022/lib/callout/callout.module.mjs +4 -4
  44. package/esm2022/lib/card/card-body.component.mjs +8 -15
  45. package/esm2022/lib/card/card-footer.component.mjs +8 -15
  46. package/esm2022/lib/card/card-group.component.mjs +8 -15
  47. package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
  48. package/esm2022/lib/card/card-header.component.mjs +8 -15
  49. package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +7 -15
  50. package/esm2022/lib/card/card-img.directive.mjs +3 -3
  51. package/esm2022/lib/card/card-link.directive.mjs +8 -15
  52. package/esm2022/lib/card/card-subtitle.directive.mjs +8 -15
  53. package/esm2022/lib/card/card-text.directive.mjs +8 -15
  54. package/esm2022/lib/card/card-title.directive.mjs +8 -15
  55. package/esm2022/lib/card/card.component.mjs +5 -7
  56. package/esm2022/lib/card/card.module.mjs +4 -4
  57. package/esm2022/lib/carousel/carousel/carousel.component.mjs +14 -15
  58. package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
  59. package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
  60. package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
  61. package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
  62. package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +5 -5
  63. package/esm2022/lib/carousel/carousel-state.mjs +3 -3
  64. package/esm2022/lib/carousel/carousel.config.mjs +3 -3
  65. package/esm2022/lib/carousel/carousel.module.mjs +4 -4
  66. package/esm2022/lib/carousel/carousel.service.mjs +5 -5
  67. package/esm2022/lib/collapse/collapse.directive.mjs +4 -5
  68. package/esm2022/lib/collapse/collapse.module.mjs +4 -4
  69. package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
  70. package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
  71. package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
  72. package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +12 -8
  73. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  74. package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
  75. package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
  76. package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +8 -15
  77. package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +7 -14
  78. package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +8 -15
  79. package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +6 -5
  80. package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +16 -10
  81. package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
  82. package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
  83. package/esm2022/lib/element-cover/element-cover.component.mjs +3 -3
  84. package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
  85. package/esm2022/lib/footer/footer.component.mjs +6 -5
  86. package/esm2022/lib/footer/footer.module.mjs +4 -4
  87. package/esm2022/lib/form/form/form.directive.mjs +3 -3
  88. package/esm2022/lib/form/form-check/form-check-input.directive.mjs +6 -6
  89. package/esm2022/lib/form/form-check/form-check-label.directive.mjs +8 -15
  90. package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
  91. package/esm2022/lib/form/form-control/form-control.directive.mjs +3 -3
  92. package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
  93. package/esm2022/lib/form/form-floating/form-floating.directive.mjs +4 -4
  94. package/esm2022/lib/form/form-label/form-label.directive.mjs +14 -13
  95. package/esm2022/lib/form/form-select/form-select.directive.mjs +14 -13
  96. package/esm2022/lib/form/form-text/form-text.directive.mjs +8 -15
  97. package/esm2022/lib/form/form.module.mjs +4 -4
  98. package/esm2022/lib/form/input-group/input-group.component.mjs +6 -5
  99. package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +8 -16
  100. package/esm2022/lib/grid/col.component.mjs +3 -3
  101. package/esm2022/lib/grid/col.directive.mjs +3 -3
  102. package/esm2022/lib/grid/container.component.mjs +3 -3
  103. package/esm2022/lib/grid/grid.module.mjs +4 -4
  104. package/esm2022/lib/grid/gutter.directive.mjs +6 -6
  105. package/esm2022/lib/grid/row.component.mjs +3 -3
  106. package/esm2022/lib/grid/row.directive.mjs +8 -7
  107. package/esm2022/lib/header/header/header.component.mjs +3 -3
  108. package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
  109. package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
  110. package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
  111. package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
  112. package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
  113. package/esm2022/lib/header/header.module.mjs +4 -4
  114. package/esm2022/lib/image/img.directive.mjs +3 -3
  115. package/esm2022/lib/image/img.module.mjs +4 -4
  116. package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
  117. package/esm2022/lib/list-group/list-group.directive.mjs +6 -5
  118. package/esm2022/lib/list-group/list-group.module.mjs +4 -4
  119. package/esm2022/lib/loading-button/loading-button.component.mjs +44 -59
  120. package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
  121. package/esm2022/lib/modal/modal/modal.component.mjs +5 -5
  122. package/esm2022/lib/modal/modal-body/modal-body.component.mjs +7 -15
  123. package/esm2022/lib/modal/modal-content/modal-content.component.mjs +8 -15
  124. package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +5 -5
  125. package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
  126. package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +8 -15
  127. package/esm2022/lib/modal/modal-header/modal-header.component.mjs +8 -15
  128. package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +8 -15
  129. package/esm2022/lib/modal/modal.module.mjs +4 -4
  130. package/esm2022/lib/modal/modal.service.mjs +5 -5
  131. package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +3 -3
  132. package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +17 -8
  133. package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
  134. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +7 -16
  135. package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
  136. package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
  137. package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
  138. package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
  139. package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
  140. package/esm2022/lib/nav/nav-item.component.mjs +7 -15
  141. package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
  142. package/esm2022/lib/nav/nav.component.mjs +5 -5
  143. package/esm2022/lib/nav/nav.module.mjs +4 -4
  144. package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
  145. package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +6 -5
  146. package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
  147. package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
  148. package/esm2022/lib/navbar/navbar.component.mjs +7 -9
  149. package/esm2022/lib/navbar/navbar.module.mjs +4 -4
  150. package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +17 -26
  151. package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +7 -15
  152. package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +8 -15
  153. package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +8 -15
  154. package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
  155. package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
  156. package/esm2022/lib/offcanvas/offcanvas.service.mjs +5 -5
  157. package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
  158. package/esm2022/lib/pagination/page-item/page-item.directive.mjs +7 -6
  159. package/esm2022/lib/pagination/page-link/page-link.directive.mjs +8 -15
  160. package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
  161. package/esm2022/lib/pagination/pagination.module.mjs +4 -4
  162. package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
  163. package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
  164. package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
  165. package/esm2022/lib/popover/popover/popover.component.mjs +5 -5
  166. package/esm2022/lib/popover/popover.directive.mjs +3 -3
  167. package/esm2022/lib/popover/popover.module.mjs +4 -4
  168. package/esm2022/lib/progress/progress-bar.component.mjs +10 -7
  169. package/esm2022/lib/progress/progress-bar.directive.mjs +6 -6
  170. package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
  171. package/esm2022/lib/progress/progress.component.mjs +9 -7
  172. package/esm2022/lib/progress/progress.module.mjs +4 -4
  173. package/esm2022/lib/rating/rating-item-label/rating-item-label.component.mjs +3 -3
  174. package/esm2022/lib/rating/rating.component.mjs +23 -21
  175. package/esm2022/lib/rating/rating.module.mjs +4 -4
  176. package/esm2022/lib/services/class-toggle.service.mjs +3 -3
  177. package/esm2022/lib/services/color-mode.service.mjs +3 -3
  178. package/esm2022/lib/services/in-memory-storage.service.mjs +5 -6
  179. package/esm2022/lib/services/intersection.service.mjs +3 -3
  180. package/esm2022/lib/services/listeners.service.mjs +3 -3
  181. package/esm2022/lib/services/local-storage.service.mjs +9 -15
  182. package/esm2022/lib/shared/element-ref.directive.mjs +3 -3
  183. package/esm2022/lib/shared/html-attr.directive.mjs +12 -10
  184. package/esm2022/lib/shared/shared.module.mjs +4 -4
  185. package/esm2022/lib/shared/template-id.directive.mjs +3 -3
  186. package/esm2022/lib/shared/theme.directive.mjs +3 -3
  187. package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +15 -13
  188. package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +7 -5
  189. package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
  190. package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +8 -16
  191. package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +8 -15
  192. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
  193. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
  194. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +5 -5
  195. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
  196. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
  197. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
  198. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +14 -13
  199. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
  200. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +9 -7
  201. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
  202. package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
  203. package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
  204. package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
  205. package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
  206. package/esm2022/lib/sidebar/sidebar.service.mjs +5 -5
  207. package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +3 -3
  208. package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
  209. package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +20 -20
  210. package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +5 -6
  211. package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +3 -3
  212. package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +5 -6
  213. package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
  214. package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +7 -15
  215. package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +6 -10
  216. package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
  217. package/esm2022/lib/spinner/spinner.component.mjs +3 -3
  218. package/esm2022/lib/spinner/spinner.module.mjs +4 -4
  219. package/esm2022/lib/table/table-active.directive.mjs +3 -3
  220. package/esm2022/lib/table/table-color.directive.mjs +3 -3
  221. package/esm2022/lib/table/table.directive.mjs +6 -5
  222. package/esm2022/lib/table/table.module.mjs +4 -4
  223. package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +6 -15
  224. package/esm2022/lib/tabs/tab-content-ref.directive.mjs +3 -3
  225. package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +5 -5
  226. package/esm2022/lib/tabs/tab.service.mjs +5 -5
  227. package/esm2022/lib/tabs/tabs.module.mjs +4 -4
  228. package/esm2022/lib/tabs-2/tab/tab.directive.mjs +3 -3
  229. package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +3 -3
  230. package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +3 -3
  231. package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +3 -3
  232. package/esm2022/lib/tabs-2/tabs.component.mjs +3 -3
  233. package/esm2022/lib/tabs-2/tabs.service.mjs +3 -3
  234. package/esm2022/lib/tabs-2/tabs2.module.mjs +4 -4
  235. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +6 -6
  236. package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +6 -6
  237. package/esm2022/lib/time-picker/time-picker.component.mjs +30 -26
  238. package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
  239. package/esm2022/lib/toast/toast/toast.component.mjs +7 -11
  240. package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
  241. package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
  242. package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
  243. package/esm2022/lib/toast/toast.module.mjs +4 -4
  244. package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
  245. package/esm2022/lib/toast/toaster/toaster.component.mjs +11 -12
  246. package/esm2022/lib/toast/toaster/toaster.service.mjs +5 -5
  247. package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +5 -5
  248. package/esm2022/lib/tooltip/tooltip.directive.mjs +3 -3
  249. package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
  250. package/esm2022/lib/utilities/align.directive.mjs +3 -3
  251. package/esm2022/lib/utilities/bg-color.directive.mjs +11 -11
  252. package/esm2022/lib/utilities/border.directive.mjs +3 -3
  253. package/esm2022/lib/utilities/rounded.directive.mjs +3 -3
  254. package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +3 -3
  255. package/esm2022/lib/utilities/text-bg-color.directive.mjs +3 -3
  256. package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
  257. package/esm2022/lib/utilities/utilities.module.mjs +4 -4
  258. package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +6 -6
  259. package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +5 -5
  260. package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
  261. package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +7 -8
  262. package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
  263. package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +6 -6
  264. package/esm2022/lib/widget/widget.module.mjs +4 -4
  265. package/fesm2022/coreui-angular-pro.mjs +1375 -1641
  266. package/fesm2022/coreui-angular-pro.mjs.map +1 -1
  267. package/lib/accordion/accordion-item/accordion-item.component.d.ts +0 -1
  268. package/lib/accordion/accordion.service.d.ts +0 -1
  269. package/lib/alert/alert-heading.directive.d.ts +0 -2
  270. package/lib/alert/alert-link.directive.d.ts +0 -2
  271. package/lib/breadcrumb/breadcrumb/breadcrumb.component.d.ts +0 -3
  272. package/lib/button/button-close.directive.d.ts +4 -4
  273. package/lib/button/button.directive.d.ts +23 -21
  274. package/lib/button-group/button-group/button-group.component.d.ts +11 -6
  275. package/lib/button-group/button-toolbar/button-toolbar.component.d.ts +4 -4
  276. package/lib/calendar/calendar-month/calendar-month.component.d.ts +1 -1
  277. package/lib/calendar/calendar.utils.d.ts +1 -1
  278. package/lib/card/card-body.component.d.ts +0 -1
  279. package/lib/card/card-footer.component.d.ts +0 -1
  280. package/lib/card/card-group.component.d.ts +0 -1
  281. package/lib/card/card-header.component.d.ts +0 -1
  282. package/lib/card/card-img-overlay/card-img-overlay.component.d.ts +0 -1
  283. package/lib/card/card-link.directive.d.ts +0 -1
  284. package/lib/card/card-subtitle.directive.d.ts +0 -1
  285. package/lib/card/card-text.directive.d.ts +0 -1
  286. package/lib/card/card-title.directive.d.ts +0 -1
  287. package/lib/carousel/carousel/carousel.component.d.ts +1 -2
  288. package/lib/carousel/carousel.service.d.ts +0 -1
  289. package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +1 -1
  290. package/lib/dropdown/dropdown-divider/dropdown-divider.directive.d.ts +0 -1
  291. package/lib/dropdown/dropdown-header/dropdown-header.directive.d.ts +0 -1
  292. package/lib/dropdown/dropdown-item/dropdown-item-plain.directive.d.ts +0 -1
  293. package/lib/form/form-check/form-check-input.directive.d.ts +1 -1
  294. package/lib/form/form-check/form-check-label.directive.d.ts +0 -1
  295. package/lib/form/form-label/form-label.directive.d.ts +0 -1
  296. package/lib/form/form-select/form-select.directive.d.ts +0 -1
  297. package/lib/form/form-text/form-text.directive.d.ts +0 -1
  298. package/lib/form/input-group-text/input-group-text.directive.d.ts +0 -2
  299. package/lib/grid/gutter.directive.d.ts +1 -2
  300. package/lib/loading-button/loading-button.component.d.ts +14 -24
  301. package/lib/modal/modal-body/modal-body.component.d.ts +0 -1
  302. package/lib/modal/modal-content/modal-content.component.d.ts +0 -1
  303. package/lib/modal/modal-footer/modal-footer.component.d.ts +0 -1
  304. package/lib/modal/modal-header/modal-header.component.d.ts +0 -1
  305. package/lib/modal/modal-title/modal-title.directive.d.ts +0 -1
  306. package/lib/modal/modal.service.d.ts +0 -1
  307. package/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.d.ts +0 -4
  308. package/lib/nav/nav-item.component.d.ts +0 -1
  309. package/lib/offcanvas/offcanvas-body/offcanvas-body.component.d.ts +0 -1
  310. package/lib/offcanvas/offcanvas-header/offcanvas-header.component.d.ts +0 -1
  311. package/lib/offcanvas/offcanvas-title/offcanvas-title.directive.d.ts +0 -1
  312. package/lib/offcanvas/offcanvas.service.d.ts +0 -1
  313. package/lib/pagination/page-link/page-link.directive.d.ts +0 -1
  314. package/lib/progress/progress-bar.directive.d.ts +0 -1
  315. package/lib/services/in-memory-storage.service.d.ts +0 -1
  316. package/lib/services/local-storage.service.d.ts +1 -1
  317. package/lib/sidebar/sidebar-footer/sidebar-footer.component.d.ts +0 -2
  318. package/lib/sidebar/sidebar-header/sidebar-header.component.d.ts +0 -1
  319. package/lib/sidebar/sidebar-nav/sidebar-nav-group.service.d.ts +0 -1
  320. package/lib/sidebar/sidebar.service.d.ts +0 -1
  321. package/lib/smart-table/smart-table/smart-table.component.d.ts +4 -4
  322. package/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.d.ts +0 -1
  323. package/lib/smart-table/smart-table-filter/smart-table-filter.component.d.ts +0 -1
  324. package/lib/smart-table/smart-table-head/smart-table-head.component.d.ts +2 -3
  325. package/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.d.ts +0 -1
  326. package/lib/tabs/tab-content/tab-content.component.d.ts +0 -3
  327. package/lib/tabs/tab.service.d.ts +0 -1
  328. package/lib/time-picker/time-picker.component.d.ts +2 -3
  329. package/lib/time-picker/time.utils.d.ts +1 -1
  330. package/lib/toast/toast/toast.component.d.ts +1 -1
  331. package/lib/toast/toaster/toaster.component.d.ts +1 -1
  332. package/lib/toast/toaster/toaster.service.d.ts +0 -1
  333. package/lib/utilities/bg-color.directive.d.ts +0 -1
  334. package/lib/widget/widget-stat-d/widget-stat-d.component.d.ts +0 -1
  335. package/package.json +9 -9
@@ -1,5 +1,5 @@
1
1
  import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, DestroyRef, effect, ElementRef, forwardRef, HostBinding, HostListener, inject, input, model, numberAttribute, output, signal, untracked, viewChildren, } from '@angular/core';
2
+ import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChildren, DestroyRef, effect, ElementRef, forwardRef, HostBinding, HostListener, inject, input, model, numberAttribute, output, signal, untracked, viewChildren } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';
5
5
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
@@ -9,7 +9,7 @@ import { TooltipDirective } from '../tooltip';
9
9
  import { ElementRefDirective, TemplateIdDirective } from '../shared';
10
10
  import { RatingItemLabelComponent } from './rating-item-label/rating-item-label.component';
11
11
  import * as i0 from "@angular/core";
12
- export const coerceStringArray = (value) => Array.isArray(value) ? [...value] : [value];
12
+ export const coerceStringArray = (value) => (Array.isArray(value) ? [...value] : [value]);
13
13
  export const coerceRatingPrecision = (value) => [1, 0.5, 0.25].includes(numberAttribute(value)) ? numberAttribute(value) : 1;
14
14
  export const coerceNumber = (value) => Number(value ?? 0);
15
15
  export class RatingComponent {
@@ -21,7 +21,7 @@ export class RatingComponent {
21
21
  * @type: string | string[]
22
22
  */
23
23
  this.activeIcon = input([], {
24
- transform: coerceStringArray,
24
+ transform: coerceStringArray
25
25
  });
26
26
  /**
27
27
  * Enables the clearing upon clicking the selected item again.
@@ -47,7 +47,7 @@ export class RatingComponent {
47
47
  * @type: string | string[]
48
48
  */
49
49
  this.icon = input([], {
50
- transform: coerceStringArray,
50
+ transform: coerceStringArray
51
51
  });
52
52
  /**
53
53
  * Specifies the total number of stars to be displayed in the star rating component. This property determines the scale of the rating,
@@ -152,9 +152,7 @@ export class RatingComponent {
152
152
  if (untracked(this.ratingDisabled)) {
153
153
  return;
154
154
  }
155
- this.#focusKeyManager = new FocusKeyManager(this.ratingItemLabels())
156
- .withHorizontalOrientation('ltr')
157
- .withWrap();
155
+ this.#focusKeyManager = new FocusKeyManager(this.ratingItemLabels()).withHorizontalOrientation('ltr').withWrap();
158
156
  const activeItemIndex = this.ratingItems()
159
157
  .flat()
160
158
  .findIndex((value) => value === coerceNumber(this.value() ?? 0));
@@ -180,8 +178,12 @@ export class RatingComponent {
180
178
  }), takeUntilDestroyed(this.#destroyRef))
181
179
  .subscribe();
182
180
  }, { allowSignalWrites: true });
183
- this.onChange = (value) => { };
184
- this.onTouched = () => { };
181
+ this.onChange = (value) => {
182
+ /* empty */
183
+ };
184
+ this.onTouched = () => {
185
+ /* empty */
186
+ };
185
187
  // keep it at the bottom of the code
186
188
  this.valueEffect = effect(() => {
187
189
  const ratingValue = this.value();
@@ -210,7 +212,7 @@ export class RatingComponent {
210
212
  rating: true,
211
213
  [`rating-${this.size()}`]: this.size(),
212
214
  disabled: this.disabled() || this.#disabledState(),
213
- readonly: this.readOnly(),
215
+ readonly: this.readOnly()
214
216
  };
215
217
  }
216
218
  get ariaValueNow() {
@@ -263,7 +265,7 @@ export class RatingComponent {
263
265
  position: 'absolute',
264
266
  width: `${this.precision() * (value + 1) * 100}%`,
265
267
  overflow: 'hidden',
266
- opacity: 0.1,
268
+ opacity: 0.1
267
269
  };
268
270
  }
269
271
  handleFocusIn($event, itemValue) {
@@ -299,7 +301,7 @@ export class RatingComponent {
299
301
  return tooltips[index];
300
302
  }
301
303
  return this.precision()
302
- ? this.tooltipValue()?.toString() ?? ''
304
+ ? (this.tooltipValue()?.toString() ?? '')
303
305
  : this.ratingItems()
304
306
  ? (this.ratingItems()[index].at(-1) ?? '').toString()
305
307
  : '';
@@ -309,16 +311,16 @@ export class RatingComponent {
309
311
  label.focusable.set(index === this.#focusKeyManager?.activeItemIndex);
310
312
  });
311
313
  }
312
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
313
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: RatingComponent, isStandalone: true, selector: "c-rating", inputs: { activeIcon: { classPropertyName: "activeIcon", publicName: "activeIcon", isSignal: true, isRequired: false, transformFunction: null }, allowClear: { classPropertyName: "allowClear", publicName: "allowClear", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, highlightOnlySelected: { classPropertyName: "highlightOnlySelected", publicName: "highlightOnlySelected", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, itemCount: { classPropertyName: "itemCount", publicName: "itemCount", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tooltips: { classPropertyName: "tooltips", publicName: "tooltips", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", hoverValueChange: "hoverValueChange" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "this.hostClasses", "attr.aria-valuenow": "this.ariaValueNow", "attr.aria-valuemax": "this.ariaValueMax", "attr.role": "this.role" } }, providers: [
314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
315
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: RatingComponent, isStandalone: true, selector: "c-rating", inputs: { activeIcon: { classPropertyName: "activeIcon", publicName: "activeIcon", isSignal: true, isRequired: false, transformFunction: null }, allowClear: { classPropertyName: "allowClear", publicName: "allowClear", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, highlightOnlySelected: { classPropertyName: "highlightOnlySelected", publicName: "highlightOnlySelected", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, itemCount: { classPropertyName: "itemCount", publicName: "itemCount", isSignal: true, isRequired: false, transformFunction: null }, precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tooltips: { classPropertyName: "tooltips", publicName: "tooltips", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", hoverValueChange: "hoverValueChange" }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "this.hostClasses", "attr.aria-valuenow": "this.ariaValueNow", "attr.aria-valuemax": "this.ariaValueMax", "attr.role": "this.role" } }, providers: [
314
316
  {
315
317
  provide: NG_VALUE_ACCESSOR,
316
318
  useExisting: forwardRef(() => RatingComponent),
317
- multi: true,
318
- },
319
+ multi: true
320
+ }
319
321
  ], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, isSignal: true }], viewQueries: [{ propertyName: "ratingItemLabels", predicate: RatingItemLabelComponent, descendants: true, isSignal: true }], exportAs: ["cRating"], ngImport: i0, template: "@for (item of ratingItems(); track item; let itemIndex = $index, last = $last) {\n @if (tooltips()) {\n <div\n class=\"rating-item\"\n [cTooltip]=\"getTooltipValue(itemIndex)\"\n [cTooltipTrigger]=\"['hover', 'focusin']\"\n (mouseenter)=\"hoveredItem.set(itemIndex)\"\n (focusin)=\"hoveredItem.set(itemIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n } @else {\n <div class=\"rating-item\">\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n }\n}\n\n<ng-template let-item let-itemIndex=\"itemIndex\" #ratingItemLabel>\n @for (itemValue of item; track radioIndex; let radioIndex = $index, last = $last) {\n <c-rating-item-label\n class=\"rating-item-label d-inline-block\"\n role=\"radio\"\n (click)=\"handleClick(itemValue)\"\n (focus)=\"handleFocusIn($event, itemValue)\"\n [ngClass]=\"{ active: isItemActive(itemValue) }\"\n (mouseenter)=\"handleMouseEnter($event, itemValue)\"\n [ngStyle]=\"radioIndex + 1 < numberOfSubItems() ? notLastItemStyle(radioIndex) : {}\"\n [value]=\"itemValue\"\n [attr.aria-label]=\"itemValue\"\n [attr.aria-checked]=\"itemValue === value()\"\n >\n @if (iconTemplates()[icon()[itemIndex] ?? icon()]) {\n <ng-container *ngTemplateOutlet=\"customIconTemplate; context: { $implicit: icon()?.[itemIndex] ?? icon() }\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultIconTemplate\" />\n }\n @if (iconTemplates()[activeIcon()[itemIndex] ?? activeIcon()]) {\n <ng-container *ngTemplateOutlet=\"customIconActiveTemplate; context: { $implicit: activeIcon()?.[itemIndex] ?? activeIcon() }\" />\n }\n </c-rating-item-label>\n }\n</ng-template>\n\n<ng-template #tooltipContent>\n <span>{{ hoverValue() }}</span>\n</ng-template>\n\n<ng-template #defaultIconTemplate>\n <div class=\"rating-item-icon\"></div>\n</ng-template>\n\n<ng-template #customIconTemplate let-icon>\n <div class=\"rating-item-custom-icon\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || defaultIconTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #customIconActiveTemplate let-icon>\n <div class=\"rating-item-custom-icon-active\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || customIconTemplate\" />\n </div>\n</ng-template>\n", styles: [":host{display:inline-flex}:is(:host.disabled,:host.readonly) .rating-item-label{cursor:default}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => NgStyle), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => TooltipDirective), selector: "[cTooltip]", inputs: ["cTooltip", "cTooltipOptions", "cTooltipPlacement", "cTooltipRef", "cTooltipTrigger", "cTooltipVisible"], outputs: ["cTooltipVisibleChange"], exportAs: ["cTooltip"] }, { kind: "component", type: i0.forwardRef(() => RatingItemLabelComponent), selector: "c-rating-item-label", inputs: ["label", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
320
322
  }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RatingComponent, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RatingComponent, decorators: [{
322
324
  type: Component,
323
325
  args: [{ selector: 'c-rating', exportAs: 'cRating', standalone: true, imports: [
324
326
  NgClass,
@@ -326,13 +328,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
326
328
  NgTemplateOutlet,
327
329
  forwardRef(() => TooltipDirective),
328
330
  ElementRefDirective,
329
- RatingItemLabelComponent,
331
+ RatingItemLabelComponent
330
332
  ], providers: [
331
333
  {
332
334
  provide: NG_VALUE_ACCESSOR,
333
335
  useExisting: forwardRef(() => RatingComponent),
334
- multi: true,
335
- },
336
+ multi: true
337
+ }
336
338
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of ratingItems(); track item; let itemIndex = $index, last = $last) {\n @if (tooltips()) {\n <div\n class=\"rating-item\"\n [cTooltip]=\"getTooltipValue(itemIndex)\"\n [cTooltipTrigger]=\"['hover', 'focusin']\"\n (mouseenter)=\"hoveredItem.set(itemIndex)\"\n (focusin)=\"hoveredItem.set(itemIndex)\"\n >\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n } @else {\n <div class=\"rating-item\">\n <ng-container *ngTemplateOutlet=\"ratingItemLabel; context: { $implicit: item, itemIndex }\" />\n </div>\n }\n}\n\n<ng-template let-item let-itemIndex=\"itemIndex\" #ratingItemLabel>\n @for (itemValue of item; track radioIndex; let radioIndex = $index, last = $last) {\n <c-rating-item-label\n class=\"rating-item-label d-inline-block\"\n role=\"radio\"\n (click)=\"handleClick(itemValue)\"\n (focus)=\"handleFocusIn($event, itemValue)\"\n [ngClass]=\"{ active: isItemActive(itemValue) }\"\n (mouseenter)=\"handleMouseEnter($event, itemValue)\"\n [ngStyle]=\"radioIndex + 1 < numberOfSubItems() ? notLastItemStyle(radioIndex) : {}\"\n [value]=\"itemValue\"\n [attr.aria-label]=\"itemValue\"\n [attr.aria-checked]=\"itemValue === value()\"\n >\n @if (iconTemplates()[icon()[itemIndex] ?? icon()]) {\n <ng-container *ngTemplateOutlet=\"customIconTemplate; context: { $implicit: icon()?.[itemIndex] ?? icon() }\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"defaultIconTemplate\" />\n }\n @if (iconTemplates()[activeIcon()[itemIndex] ?? activeIcon()]) {\n <ng-container *ngTemplateOutlet=\"customIconActiveTemplate; context: { $implicit: activeIcon()?.[itemIndex] ?? activeIcon() }\" />\n }\n </c-rating-item-label>\n }\n</ng-template>\n\n<ng-template #tooltipContent>\n <span>{{ hoverValue() }}</span>\n</ng-template>\n\n<ng-template #defaultIconTemplate>\n <div class=\"rating-item-icon\"></div>\n</ng-template>\n\n<ng-template #customIconTemplate let-icon>\n <div class=\"rating-item-custom-icon\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || defaultIconTemplate\" />\n </div>\n</ng-template>\n\n<ng-template #customIconActiveTemplate let-icon>\n <div class=\"rating-item-custom-icon-active\">\n <ng-container *ngTemplateOutlet=\"iconTemplates()?.[icon] || customIconTemplate\" />\n </div>\n</ng-template>\n", styles: [":host{display:inline-flex}:is(:host.disabled,:host.readonly) .rating-item-label{cursor:default}\n"] }]
337
339
  }], propDecorators: { hostClasses: [{
338
340
  type: HostBinding,
@@ -350,4 +352,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
350
352
  type: HostListener,
351
353
  args: ['keydown', ['$event']]
352
354
  }] } });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvcmF0aW5nL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3JhdGluZy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRSxPQUFPLEVBQUUs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QUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDJEQWtKMkMsbUJBQW1CLGtGQXlCdEIsd0JBQXdCLHVGQ3JPbkUsdzZFQStEQSwrS0RwQkksT0FBTyx5R0FDUCxPQUFPLGdHQUNQLGdCQUFnQix5S0FDQyxnQkFBZ0IsMlBBRWpDLHdCQUF3Qjs7MkZBYWYsZUFBZTtrQkF2QjNCLFNBQVM7K0JBQ0UsVUFBVSxZQUNWLFNBQVMsY0FDUCxJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO3dCQUNsQyxtQkFBbUI7d0JBQ25CLHdCQUF3QjtxQkFDekIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OEJBNk4zQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTztnQkFXaEIsWUFBWTtzQkFEZixXQUFXO3VCQUFDLG9CQUFvQjtnQkFNN0IsWUFBWTtzQkFEZixXQUFXO3VCQUFDLG9CQUFvQjtnQkFNN0IsSUFBSTtzQkFEUCxXQUFXO3VCQUFDLFdBQVc7Z0JBTXhCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybSxcbiAgbW9kZWwsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbiAgdmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBtZXJnZSwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi90b29sdGlwJztcbmltcG9ydCB7IEVsZW1lbnRSZWZEaXJlY3RpdmUsIFRlbXBsYXRlSWREaXJlY3RpdmUgfSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHsgUmF0aW5nSXRlbUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9yYXRpbmctaXRlbS1sYWJlbC9yYXRpbmctaXRlbS1sYWJlbC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgY29lcmNlU3RyaW5nQXJyYXkgPSAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10gPT5cbiAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW3ZhbHVlXTtcbmV4cG9ydCBjb25zdCBjb2VyY2VSYXRpbmdQcmVjaXNpb24gPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IG51bWJlciA9PlxuICBbMSwgMC41LCAwLjI1XS5pbmNsdWRlcyhudW1iZXJBdHRyaWJ1dGUodmFsdWUpKSA/IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSkgOiAxO1xuZXhwb3J0IGNvbnN0IGNvZXJjZU51bWJlciA9ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IG51bWJlciA9PiBOdW1iZXIodmFsdWUgPz8gMCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtcmF0aW5nJyxcbiAgZXhwb3J0QXM6ICdjUmF0aW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdTdHlsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gVG9vbHRpcERpcmVjdGl2ZSksXG4gICAgRWxlbWVudFJlZkRpcmVjdGl2ZSxcbiAgICBSYXRpbmdJdGVtTGFiZWxDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYXRpbmdDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFJhdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBpY29uIHRvIGRpc3BsYXkgd2hlbiB0aGUgaXRlbSBpcyBzZWxlY3RlZC5cbiAgICogQHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVJY29uOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08c3RyaW5nW10sIHN0cmluZyB8IHN0cmluZ1tdPiA9IGlucHV0KFtdLCB7XG4gICAgdHJhbnNmb3JtOiBjb2VyY2VTdHJpbmdBcnJheSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGNsZWFyaW5nIHVwb24gY2xpY2tpbmcgdGhlIHNlbGVjdGVkIGl0ZW0gYWdhaW4uXG4gICAqIEB0eXBlOiBib29sZWFuXG4gICAqIEBkZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dDbGVhciA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBkaXNhYmxlZCBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcbiAgcmVhZG9ubHkgI2Rpc2FibGVkU3RhdGUgPSBzaWduYWwodGhpcy5kaXNhYmxlZCgpKTtcblxuICAvKipcbiAgICogSWYgZW5hYmxlZCwgb25seSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGljb24gd2lsbCBiZSB2aXNpYmx5IGhpZ2hsaWdodGVkLlxuICAgKiBAdHlwZTogYm9vbGVhblxuICAgKiBAZGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGhpZ2hsaWdodE9ubHlTZWxlY3RlZCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgaWNvbiB0byBkaXNwbGF5IHdoZW4gdGhlIGl0ZW0gaXMgbm90IHNlbGVjdGVkLlxuICAgKiBAdHlwZTogc3RyaW5nIHwgc3RyaW5nW11cbiAgICovXG4gIHJlYWRvbmx5IGljb246IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxzdHJpbmdbXSwgc3RyaW5nIHwgc3RyaW5nW10+ID0gaW5wdXQoW10sIHtcbiAgICB0cmFuc2Zvcm06IGNvZXJjZVN0cmluZ0FycmF5LFxuICB9KTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhcnMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzdGFyIHJhdGluZyBjb21wb25lbnQuIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgc2NhbGUgb2YgdGhlIHJhdGluZyxcbiAgICogc3VjaCBhcyBvdXQgb2YgNSBzdGFycywgMTAgc3RhcnMsIGV0Yy5cbiAgICogQHR5cGU6IG51bWJlclxuICAgKiBAZGVmYXVsdDogNVxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbUNvdW50ID0gaW5wdXQoNSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogTWluaW11bSBpbmNyZW1lbnQgdmFsdWUgY2hhbmdlIGFsbG93ZWQuXG4gICAqIEB0eXBlOiBudW1iZXJcbiAgICogQGRlZmF1bHQ6IDFcbiAgICovXG4gIHJlYWRvbmx5IHByZWNpc2lvbiA9IGlucHV0KDEsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBjbGljayBmcmFjdGlvbnNcbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICAvLyByZWFkb25seSBwcmVjaXNpb25DbGljayA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSByZWFkb25seSBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogU2l6ZSB0aGUgY29tcG9uZW50IHNtYWxsLCBsYXJnZSwgb3IgY3VzdG9tIGlmIHlvdSBkZWZpbmUgY3VzdG9tIGljb25zIHdpdGggY3VzdG9tIGhlaWdodC5cbiAgICogQHR5cGU6ICdzbScgfCAnbGcnIHwgJ2N1c3RvbScgfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQ6IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PCdzbScgfCAnbGcnIHwgJ2N1c3RvbScgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0b29sdGlwcyB3aXRoIGRlZmF1bHQgdmFsdWVzIG9yIHNldCBzcGVjaWZpYyBsYWJlbHMgZm9yIGVhY2ggaWNvbi5cbiAgICogQHR5cGU6IGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdDogdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0b29sdGlwcyA9IGlucHV0PGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogVGhlIGB2YWx1ZWAgYXR0cmlidXRlIG9mIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IG51bWJlciB8IG51bGxcbiAgICogQGRlZmF1bHQ6IG51bGxcbiAgICogRW1pdHMgYHZhbHVlQ2hhbmdlYCBvbiB2YWx1ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlID0gbW9kZWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gaG92ZXJWYWx1ZSBjaGFuZ2UuXG4gICAqIEB0eXBlOiBudW1iZXIgfCBudWxsXG4gICAqL1xuICByZWFkb25seSBob3ZlclZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBob3ZlclZhbHVlQ2hhbmdlID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IGhvdmVyVmFsdWVFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgdGhpcy5ob3ZlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5ob3ZlclZhbHVlKCkpO1xuICAgICAgaWYgKCF0aGlzLmhvdmVyVmFsdWUoKSkge1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtLnNldCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICApO1xuXG4gIHJlYWRvbmx5ICNjbGVhcmVkID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgaG92ZXJlZEl0ZW0gPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSB0b29sdGlwVmFsdWUgPSBzaWduYWw8c3RyaW5nIHwgbnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgcmF0aW5nRGlzYWJsZWQgPSBjb21wdXRlZDxib29sZWFuPihcbiAgICAoKSA9PiB0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpIHx8IHRoaXMuI2Rpc2FibGVkU3RhdGUoKSxcbiAgKTtcbiAgcmVhZG9ubHkgcmF0aW5nRGlzYWJsZWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICBjb25zdCBmb2N1c0luJCA9IGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1c2luJyk7XG4gICAgICBjb25zdCBmb2N1c091dCQgPSBmcm9tRXZlbnQ8Rm9jdXNFdmVudD4odGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKTtcbiAgICAgIGNvbnN0IG1vdXNlTGVhdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICAgICAgbWVyZ2UoZm9jdXNJbiQsIGZvY3VzT3V0JCwgbW91c2VMZWF2ZSQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICF0aGlzLnJhdGluZ0Rpc2FibGVkKCkpLFxuICAgICAgICAgIHRhcCgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKCRldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgICAgICAgICAgY2FzZSAnbW91c2VsZWF2ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlclZhbHVlLnNldChudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlV2hpbGUoKCkgPT4gIXRoaXMucmF0aW5nRGlzYWJsZWQoKSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRUZW1wbGF0ZXMgPSBjb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVJZERpcmVjdGl2ZSk7XG5cbiAgcmVhZG9ubHkgaWNvblRlbXBsYXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUFycmF5ID0gdGhpcy5jb250ZW50VGVtcGxhdGVzKCkubWFwKChjaGlsZDogVGVtcGxhdGVJZERpcmVjdGl2ZSkgPT4ge1xuICAgICAgcmV0dXJuIFtbY2hpbGQuaWRdLCBjaGlsZC50ZW1wbGF0ZVJlZl07XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyh0ZW1wbGF0ZUFycmF5KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbnVtYmVyT2ZTdWJJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gcGFyc2VJbnQoKDEgLyB0aGlzLnByZWNpc2lvbigpKS50b0ZpeGVkKCkpO1xuICB9KTtcblxuICByZWFkb25seSByYXRpbmdJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5pdGVtQ291bnQoKSB9LCAoXywgaXRlbUluZGV4KSA9PiB7XG4gICAgICBpZiAodGhpcy5udW1iZXJPZlN1Ykl0ZW1zKCkgPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIFtpdGVtSW5kZXggKyAxXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgICB7IGxlbmd0aDogdGhpcy5udW1iZXJPZlN1Ykl0ZW1zKCkgfSxcbiAgICAgICAgKF8sIHN1YkluZGV4KSA9PiBpdGVtSW5kZXggKyAoc3ViSW5kZXggKyAxKSAqIHRoaXMucHJlY2lzaW9uKCksXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICByZWFkb25seSByYXRpbmdJdGVtTGFiZWxzID0gdmlld0NoaWxkcmVuKFJhdGluZ0l0ZW1MYWJlbENvbXBvbmVudCk7XG4gICNmb2N1c0tleU1hbmFnZXIhOiBGb2N1c0tleU1hbmFnZXI8UmF0aW5nSXRlbUxhYmVsQ29tcG9uZW50PjtcblxuICByZWFkb25seSByYXRpbmdJdGVtTGFiZWxzRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGlmICh1bnRyYWNrZWQodGhpcy5yYXRpbmdEaXNhYmxlZCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy4jZm9jdXNLZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLnJhdGluZ0l0ZW1MYWJlbHMoKSlcbiAgICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAgIC53aXRoV3JhcCgpO1xuXG4gICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB0aGlzLnJhdGluZ0l0ZW1zKClcbiAgICAgICAgLmZsYXQoKVxuICAgICAgICAuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUgPT09IGNvZXJjZU51bWJlcih0aGlzLnZhbHVlKCkgPz8gMCkpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIudGFiT3V0XG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlSXRlbUluZGV4ID0gdW50cmFja2VkKHRoaXMucmF0aW5nSXRlbXMpXG4gICAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgICAgLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSBjb2VyY2VOdW1iZXIodW50cmFja2VkKHRoaXMudmFsdWUpID8/IDApKTtcblxuICAgICAgICAgICAgdGhpcy4jZm9jdXNLZXlNYW5hZ2VyLnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4ID09PSAtMSA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb2N1c2FibGVJdGVtcygpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlci5jaGFuZ2VcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yYXRpbmdJdGVtTGFiZWxzKCkuZm9yRWFjaCgobGFiZWwsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGxhYmVsLmZvY3VzYWJsZS5zZXQoaW5kZXggPT09IHRoaXMuI2ZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuI2ZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVudHJhY2tlZChsYWJlbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDbGljayh2YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcmF0aW5nOiB0cnVlLFxuICAgICAgW2ByYXRpbmctJHt0aGlzLnNpemUoKX1gXTogdGhpcy5zaXplKCksXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMuI2Rpc2FibGVkU3RhdGUoKSxcbiAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRPbmx5KCksXG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbm93JylcbiAgZ2V0IGFyaWFWYWx1ZU5vdygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtdmFsdWVtYXgnKVxuICBnZXQgYXJpYVZhbHVlTWF4KCkge1xuICAgIHJldHVybiB0aGlzLml0ZW1Db3VudCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICBnZXQgcm9sZSgpIHtcbiAgICByZXR1cm4gJ3JhZGlvZ3JvdXAnO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5ZG93bigkZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLnJhdGluZ0Rpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFsnU3BhY2UnLCAnRW50ZXInXS5pbmNsdWRlcygkZXZlbnQuY29kZSkpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMucmF0aW5nSXRlbUxhYmVscygpLmZpbmQoXG4gICAgICAgIChsYWJlbCwgaW5kZXgpID0+IGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LmFjdGl2ZUl0ZW1JbmRleCxcbiAgICAgICk7XG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKGl0ZW0/LnZhbHVlKCkgPz8gLTEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIub25LZXlkb3duKCRldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChbJ1RhYiddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnRhYk91dC5uZXh0KCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB7fTtcblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuI2Rpc2FibGVkU3RhdGUuc2V0KGlzRGlzYWJsZWQpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIGlzSXRlbUFjdGl2ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgbG9jYWxWYWx1ZSA9IHRoaXMuaG92ZXJWYWx1ZSgpID8/IHRoaXMudmFsdWUoKSA/PyAtMTtcbiAgICByZXR1cm4gdGhpcy5oaWdobGlnaHRPbmx5U2VsZWN0ZWQoKSA/IGxvY2FsVmFsdWUgPT09IHZhbHVlIDogbG9jYWxWYWx1ZSA+PSB2YWx1ZTtcbiAgfVxuXG4gIG5vdExhc3RJdGVtU3R5bGUodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiB7XG4gICAgICB6SW5kZXg6IHRoaXMubnVtYmVyT2ZTdWJJdGVtcygpIC0gdmFsdWUsXG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIHdpZHRoOiBgJHt0aGlzLnByZWNpc2lvbigpICogKHZhbHVlICsgMSkgKiAxMDB9JWAsXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICBvcGFjaXR5OiAwLjEsXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzSW4oJGV2ZW50OiBGb2N1c0V2ZW50LCBpdGVtVmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaGFuZGxlTW91c2VFbnRlcigkZXZlbnQgYXMgTW91c2VFdmVudCwgaXRlbVZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2xlYXIoKSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSgpKSB7XG4gICAgICB0aGlzLiNjbGVhcmVkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5ob3ZlclZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU1vdXNlRW50ZXIoJGV2ZW50OiBNb3VzZUV2ZW50LCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmF0aW5nRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhvdmVyVmFsdWUuc2V0KG51bGwpO1xuICAgIHRoaXMuaG92ZXJWYWx1ZS5zZXQodmFsdWUpO1xuICAgIHRoaXMudG9vbHRpcFZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBnZXRUb29sdGlwVmFsdWUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmhvdmVyVmFsdWUoKSB8fCB0aGlzLmhvdmVyZWRJdGVtKCkgIT09IGluZGV4KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnRvb2x0aXBzKCkpKSB7XG4gICAgICBjb25zdCB0b29sdGlwcyA9IHRoaXMudG9vbHRpcHMoKSBhcyBBcnJheTxzdHJpbmc+O1xuICAgICAgcmV0dXJuIHRvb2x0aXBzW2luZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJlY2lzaW9uKClcbiAgICAgID8gdGhpcy50b29sdGlwVmFsdWUoKT8udG9TdHJpbmcoKSA/PyAnJ1xuICAgICAgOiB0aGlzLnJhdGluZ0l0ZW1zKClcbiAgICAgICAgPyAodGhpcy5yYXRpbmdJdGVtcygpW2luZGV4XS5hdCgtMSkgPz8gJycpLnRvU3RyaW5nKClcbiAgICAgICAgOiAnJztcbiAgfVxuXG4gIHVwZGF0ZUZvY3VzYWJsZUl0ZW1zKCkge1xuICAgIHRoaXMucmF0aW5nSXRlbUxhYmVscygpLmZvckVhY2goKGxhYmVsLCBpbmRleCkgPT4ge1xuICAgICAgbGFiZWwuZm9jdXNhYmxlLnNldChpbmRleCA9PT0gdGhpcy4jZm9jdXNLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtSW5kZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8ga2VlcCBpdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBjb2RlXG4gIHJlYWRvbmx5IHZhbHVlRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IHJhdGluZ1ZhbHVlID0gdGhpcy52YWx1ZSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZShyYXRpbmdWYWx1ZSk7XG5cbiAgICAgIGlmICh1bnRyYWNrZWQodGhpcy5yYXRpbmdEaXNhYmxlZCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodW50cmFja2VkKHRoaXMuI2NsZWFyZWQpKSB7XG4gICAgICAgIHRoaXMuI2NsZWFyZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgYWN0aXZlSXRlbUluZGV4ID0gdGhpcy5yYXRpbmdJdGVtcygpXG4gICAgICAgIC5mbGF0KClcbiAgICAgICAgLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSBjb2VyY2VOdW1iZXIocmF0aW5nVmFsdWUgPz8gMCkpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgdGhpcy51cGRhdGVGb2N1c2FibGVJdGVtcygpO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICApO1xufVxuIiwiQGZvciAoaXRlbSBvZiByYXRpbmdJdGVtcygpOyB0cmFjayBpdGVtOyBsZXQgaXRlbUluZGV4ID0gJGluZGV4LCBsYXN0ID0gJGxhc3QpIHtcbiAgQGlmICh0b29sdGlwcygpKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyYXRpbmctaXRlbVwiXG4gICAgICBbY1Rvb2x0aXBdPVwiZ2V0VG9vbHRpcFZhbHVlKGl0ZW1JbmRleClcIlxuICAgICAgW2NUb29sdGlwVHJpZ2dlcl09XCJbJ2hvdmVyJywgJ2ZvY3VzaW4nXVwiXG4gICAgICAobW91c2VlbnRlcik9XCJob3ZlcmVkSXRlbS5zZXQoaXRlbUluZGV4KVwiXG4gICAgICAoZm9jdXNpbik9XCJob3ZlcmVkSXRlbS5zZXQoaXRlbUluZGV4KVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJhdGluZ0l0ZW1MYWJlbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGl0ZW1JbmRleCB9XCIgLz5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cInJhdGluZy1pdGVtXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmF0aW5nSXRlbUxhYmVsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgaXRlbUluZGV4IH1cIiAvPlxuICAgIDwvZGl2PlxuICB9XG59XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBsZXQtaXRlbUluZGV4PVwiaXRlbUluZGV4XCIgI3JhdGluZ0l0ZW1MYWJlbD5cbiAgQGZvciAoaXRlbVZhbHVlIG9mIGl0ZW07IHRyYWNrIHJhZGlvSW5kZXg7IGxldCByYWRpb0luZGV4ID0gJGluZGV4LCBsYXN0ID0gJGxhc3QpIHtcbiAgICA8Yy1yYXRpbmctaXRlbS1sYWJlbFxuICAgICAgY2xhc3M9XCJyYXRpbmctaXRlbS1sYWJlbCBkLWlubGluZS1ibG9ja1wiXG4gICAgICByb2xlPVwicmFkaW9cIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKGl0ZW1WYWx1ZSlcIlxuICAgICAgKGZvY3VzKT1cImhhbmRsZUZvY3VzSW4oJGV2ZW50LCBpdGVtVmFsdWUpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBpc0l0ZW1BY3RpdmUoaXRlbVZhbHVlKSB9XCJcbiAgICAgIChtb3VzZWVudGVyKT1cImhhbmRsZU1vdXNlRW50ZXIoJGV2ZW50LCBpdGVtVmFsdWUpXCJcbiAgICAgIFtuZ1N0eWxlXT1cInJhZGlvSW5kZXggKyAxIDwgbnVtYmVyT2ZTdWJJdGVtcygpID8gbm90TGFzdEl0ZW1TdHlsZShyYWRpb0luZGV4KSA6IHt9XCJcbiAgICAgIFt2YWx1ZV09XCJpdGVtVmFsdWVcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtVmFsdWVcIlxuICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cIml0ZW1WYWx1ZSA9PT0gdmFsdWUoKVwiXG4gICAgPlxuICAgICAgQGlmIChpY29uVGVtcGxhdGVzKClbaWNvbigpW2l0ZW1JbmRleF0gPz8gaWNvbigpXSkge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSWNvblRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaWNvbigpPy5baXRlbUluZGV4XSA/PyBpY29uKCkgfVwiIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRlZmF1bHRJY29uVGVtcGxhdGVcIiAvPlxuICAgICAgfVxuICAgICAgQGlmIChpY29uVGVtcGxhdGVzKClbYWN0aXZlSWNvbigpW2l0ZW1JbmRleF0gPz8gYWN0aXZlSWNvbigpXSkge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSWNvbkFjdGl2ZVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogYWN0aXZlSWNvbigpPy5baXRlbUluZGV4XSA/PyBhY3RpdmVJY29uKCkgfVwiIC8+XG4gICAgICB9XG4gICAgPC9jLXJhdGluZy1pdGVtLWxhYmVsPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Rvb2x0aXBDb250ZW50PlxuICA8c3Bhbj57eyBob3ZlclZhbHVlKCkgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRJY29uVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJyYXRpbmctaXRlbS1pY29uXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbUljb25UZW1wbGF0ZSBsZXQtaWNvbj5cbiAgPGRpdiBjbGFzcz1cInJhdGluZy1pdGVtLWN1c3RvbS1pY29uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZXMoKT8uW2ljb25dIHx8IGRlZmF1bHRJY29uVGVtcGxhdGVcIiAvPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tSWNvbkFjdGl2ZVRlbXBsYXRlIGxldC1pY29uPlxuICA8ZGl2IGNsYXNzPVwicmF0aW5nLWl0ZW0tY3VzdG9tLWljb24tYWN0aXZlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25UZW1wbGF0ZXMoKT8uW2ljb25dIHx8IGN1c3RvbUljb25UZW1wbGF0ZVwiIC8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvcmF0aW5nL3JhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3JhdGluZy9yYXRpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRSxPQUFPLEVBQUUs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ZixlQUFlLHF3REFUZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMkRBZ0oyQyxtQkFBbUIsa0ZBeUJ0Qix3QkFBd0IsdUZDbE9uRSx3NkVBK0RBLCtLRHJCSSxPQUFPLHlHQUNQLE9BQU8sZ0dBQ1AsZ0JBQWdCLHlLQUNDLGdCQUFnQiwyUEFFakMsd0JBQXdCOzsyRkFhZixlQUFlO2tCQXZCM0IsU0FBUzsrQkFDRSxVQUFVLFlBQ1YsU0FBUyxjQUNQLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsZ0JBQWdCO3dCQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2xDLG1CQUFtQjt3QkFDbkIsd0JBQXdCO3FCQUN6QixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkF5TjNDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdoQixZQUFZO3NCQURmLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixZQUFZO3NCQURmLFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixJQUFJO3NCQURQLFdBQVc7dUJBQUMsV0FBVztnQkFNeEIsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtLFxuICBtb2RlbCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxuICB2aWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmRGlyZWN0aXZlLCBUZW1wbGF0ZUlkRGlyZWN0aXZlIH0gZnJvbSAnLi4vc2hhcmVkJztcbmltcG9ydCB7IFJhdGluZ0l0ZW1MYWJlbENvbXBvbmVudCB9IGZyb20gJy4vcmF0aW5nLWl0ZW0tbGFiZWwvcmF0aW5nLWl0ZW0tbGFiZWwuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IGNvZXJjZVN0cmluZ0FycmF5ID0gKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdID0+IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IFsuLi52YWx1ZV0gOiBbdmFsdWVdKTtcbmV4cG9ydCBjb25zdCBjb2VyY2VSYXRpbmdQcmVjaXNpb24gPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IG51bWJlciA9PlxuICBbMSwgMC41LCAwLjI1XS5pbmNsdWRlcyhudW1iZXJBdHRyaWJ1dGUodmFsdWUpKSA/IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSkgOiAxO1xuZXhwb3J0IGNvbnN0IGNvZXJjZU51bWJlciA9ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IG51bWJlciA9PiBOdW1iZXIodmFsdWUgPz8gMCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtcmF0aW5nJyxcbiAgZXhwb3J0QXM6ICdjUmF0aW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTmdTdHlsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIGZvcndhcmRSZWYoKCkgPT4gVG9vbHRpcERpcmVjdGl2ZSksXG4gICAgRWxlbWVudFJlZkRpcmVjdGl2ZSxcbiAgICBSYXRpbmdJdGVtTGFiZWxDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhdGluZ0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgI2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGljb24gdG8gZGlzcGxheSB3aGVuIHRoZSBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKiBAdHlwZTogc3RyaW5nIHwgc3RyaW5nW11cbiAgICovXG4gIHJlYWRvbmx5IGFjdGl2ZUljb246IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxzdHJpbmdbXSwgc3RyaW5nIHwgc3RyaW5nW10+ID0gaW5wdXQoW10sIHtcbiAgICB0cmFuc2Zvcm06IGNvZXJjZVN0cmluZ0FycmF5XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBjbGVhcmluZyB1cG9uIGNsaWNraW5nIHRoZSBzZWxlY3RlZCBpdGVtIGFnYWluLlxuICAgKiBAdHlwZTogYm9vbGVhblxuICAgKiBAZGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93Q2xlYXIgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqIEB0eXBlOiBib29sZWFuXG4gICAqIEBkZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIHJlYWRvbmx5ICNkaXNhYmxlZFN0YXRlID0gc2lnbmFsKHRoaXMuZGlzYWJsZWQoKSk7XG5cbiAgLyoqXG4gICAqIElmIGVuYWJsZWQsIG9ubHkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpY29uIHdpbGwgYmUgdmlzaWJseSBoaWdobGlnaHRlZC5cbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBoaWdobGlnaHRPbmx5U2VsZWN0ZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGljb24gdG8gZGlzcGxheSB3aGVuIHRoZSBpdGVtIGlzIG5vdCBzZWxlY3RlZC5cbiAgICogQHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdXG4gICAqL1xuICByZWFkb25seSBpY29uOiBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm08c3RyaW5nW10sIHN0cmluZyB8IHN0cmluZ1tdPiA9IGlucHV0KFtdLCB7XG4gICAgdHJhbnNmb3JtOiBjb2VyY2VTdHJpbmdBcnJheVxuICB9KTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhcnMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBzdGFyIHJhdGluZyBjb21wb25lbnQuIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgc2NhbGUgb2YgdGhlIHJhdGluZyxcbiAgICogc3VjaCBhcyBvdXQgb2YgNSBzdGFycywgMTAgc3RhcnMsIGV0Yy5cbiAgICogQHR5cGU6IG51bWJlclxuICAgKiBAZGVmYXVsdDogNVxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbUNvdW50ID0gaW5wdXQoNSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogTWluaW11bSBpbmNyZW1lbnQgdmFsdWUgY2hhbmdlIGFsbG93ZWQuXG4gICAqIEB0eXBlOiBudW1iZXJcbiAgICogQGRlZmF1bHQ6IDFcbiAgICovXG4gIHJlYWRvbmx5IHByZWNpc2lvbiA9IGlucHV0KDEsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0byBjbGljayBmcmFjdGlvbnNcbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICAvLyByZWFkb25seSBwcmVjaXNpb25DbGljayA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSByZWFkb25seSBzdGF0ZSBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IGJvb2xlYW5cbiAgICogQGRlZmF1bHQ6IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWFkT25seSA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogU2l6ZSB0aGUgY29tcG9uZW50IHNtYWxsLCBsYXJnZSwgb3IgY3VzdG9tIGlmIHlvdSBkZWZpbmUgY3VzdG9tIGljb25zIHdpdGggY3VzdG9tIGhlaWdodC5cbiAgICogQHR5cGU6ICdzbScgfCAnbGcnIHwgJ2N1c3RvbScgfCB1bmRlZmluZWRcbiAgICogQGRlZmF1bHQ6IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PCdzbScgfCAnbGcnIHwgJ2N1c3RvbScgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0b29sdGlwcyB3aXRoIGRlZmF1bHQgdmFsdWVzIG9yIHNldCBzcGVjaWZpYyBsYWJlbHMgZm9yIGVhY2ggaWNvbi5cbiAgICogQHR5cGU6IGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdDogdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSB0b29sdGlwcyA9IGlucHV0PGJvb2xlYW4gfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogVGhlIGB2YWx1ZWAgYXR0cmlidXRlIG9mIGNvbXBvbmVudC5cbiAgICogQHR5cGU6IG51bWJlciB8IG51bGxcbiAgICogQGRlZmF1bHQ6IG51bGxcbiAgICogRW1pdHMgYHZhbHVlQ2hhbmdlYCBvbiB2YWx1ZSBjaGFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlID0gbW9kZWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgb24gaG92ZXJWYWx1ZSBjaGFuZ2UuXG4gICAqIEB0eXBlOiBudW1iZXIgfCBudWxsXG4gICAqL1xuICByZWFkb25seSBob3ZlclZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBob3ZlclZhbHVlQ2hhbmdlID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IGhvdmVyVmFsdWVFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgdGhpcy5ob3ZlclZhbHVlQ2hhbmdlLmVtaXQodGhpcy5ob3ZlclZhbHVlKCkpO1xuICAgICAgaWYgKCF0aGlzLmhvdmVyVmFsdWUoKSkge1xuICAgICAgICB0aGlzLmhvdmVyZWRJdGVtLnNldCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG5cbiAgcmVhZG9ubHkgI2NsZWFyZWQgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBob3ZlcmVkSXRlbSA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHRvb2x0aXBWYWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCBudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSByYXRpbmdEaXNhYmxlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkgfHwgdGhpcy4jZGlzYWJsZWRTdGF0ZSgpKTtcbiAgcmVhZG9ubHkgcmF0aW5nRGlzYWJsZWRFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICBjb25zdCBmb2N1c0luJCA9IGZyb21FdmVudDxGb2N1c0V2ZW50Pih0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb2N1c2luJyk7XG4gICAgICBjb25zdCBmb2N1c091dCQgPSBmcm9tRXZlbnQ8Rm9jdXNFdmVudD4odGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKTtcbiAgICAgIGNvbnN0IG1vdXNlTGVhdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICAgICAgbWVyZ2UoZm9jdXNJbiQsIGZvY3VzT3V0JCwgbW91c2VMZWF2ZSQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+ICF0aGlzLnJhdGluZ0Rpc2FibGVkKCkpLFxuICAgICAgICAgIHRhcCgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKCRldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgICAgICAgICAgY2FzZSAnbW91c2VsZWF2ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5ob3ZlclZhbHVlLnNldChudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlV2hpbGUoKCkgPT4gIXRoaXMucmF0aW5nRGlzYWJsZWQoKSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29udGVudFRlbXBsYXRlcyA9IGNvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZUlkRGlyZWN0aXZlKTtcblxuICByZWFkb25seSBpY29uVGVtcGxhdGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlQXJyYXkgPSB0aGlzLmNvbnRlbnRUZW1wbGF0ZXMoKS5tYXAoKGNoaWxkOiBUZW1wbGF0ZUlkRGlyZWN0aXZlKSA9PiB7XG4gICAgICByZXR1cm4gW1tjaGlsZC5pZF0sIGNoaWxkLnRlbXBsYXRlUmVmXTtcbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHRlbXBsYXRlQXJyYXkpO1xuICB9KTtcblxuICByZWFkb25seSBudW1iZXJPZlN1Ykl0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBwYXJzZUludCgoMSAvIHRoaXMucHJlY2lzaW9uKCkpLnRvRml4ZWQoKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJhdGluZ0l0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLml0ZW1Db3VudCgpIH0sIChfLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgIGlmICh0aGlzLm51bWJlck9mU3ViSXRlbXMoKSA9PT0gMSkge1xuICAgICAgICByZXR1cm4gW2l0ZW1JbmRleCArIDFdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICAgIHsgbGVuZ3RoOiB0aGlzLm51bWJlck9mU3ViSXRlbXMoKSB9LFxuICAgICAgICAoXywgc3ViSW5kZXgpID0+IGl0ZW1JbmRleCArIChzdWJJbmRleCArIDEpICogdGhpcy5wcmVjaXNpb24oKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmF0aW5nSXRlbUxhYmVscyA9IHZpZXdDaGlsZHJlbihSYXRpbmdJdGVtTGFiZWxDb21wb25lbnQpO1xuICAjZm9jdXNLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPFJhdGluZ0l0ZW1MYWJlbENvbXBvbmVudD47XG5cbiAgcmVhZG9ubHkgcmF0aW5nSXRlbUxhYmVsc0VmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodW50cmFja2VkKHRoaXMucmF0aW5nRGlzYWJsZWQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5yYXRpbmdJdGVtTGFiZWxzKCkpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpLndpdGhXcmFwKCk7XG5cbiAgICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMucmF0aW5nSXRlbXMoKVxuICAgICAgICAuZmxhdCgpXG4gICAgICAgIC5maW5kSW5kZXgoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gY29lcmNlTnVtYmVyKHRoaXMudmFsdWUoKSA/PyAwKSk7XG5cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlcj8udXBkYXRlQWN0aXZlSXRlbShhY3RpdmVJdGVtSW5kZXggPCAwID8gMCA6IGFjdGl2ZUl0ZW1JbmRleCk7XG5cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlci50YWJPdXRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtSW5kZXggPSB1bnRyYWNrZWQodGhpcy5yYXRpbmdJdGVtcylcbiAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUgPT09IGNvZXJjZU51bWJlcih1bnRyYWNrZWQodGhpcy52YWx1ZSkgPz8gMCkpO1xuXG4gICAgICAgICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShhY3RpdmVJdGVtSW5kZXggPT09IC0xID8gMCA6IGFjdGl2ZUl0ZW1JbmRleCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzYWJsZUl0ZW1zKCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIuY2hhbmdlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmF0aW5nSXRlbUxhYmVscygpLmZvckVhY2goKGxhYmVsLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBsYWJlbC5mb2N1c2FibGUuc2V0KGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4KTtcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB1bnRyYWNrZWQobGFiZWwudmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2xpY2sodmFsdWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCkge1xuICAgIHJldHVybiB7XG4gICAgICByYXRpbmc6IHRydWUsXG4gICAgICBbYHJhdGluZy0ke3RoaXMuc2l6ZSgpfWBdOiB0aGlzLnNpemUoKSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy4jZGlzYWJsZWRTdGF0ZSgpLFxuICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZE9ubHkoKVxuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS12YWx1ZW5vdycpXG4gIGdldCBhcmlhVmFsdWVOb3coKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXZhbHVlbWF4JylcbiAgZ2V0IGFyaWFWYWx1ZU1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtQ291bnQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgZ2V0IHJvbGUoKSB7XG4gICAgcmV0dXJuICdyYWRpb2dyb3VwJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleWRvd24oJGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChbJ1NwYWNlJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLnJhdGluZ0l0ZW1MYWJlbHMoKS5maW5kKChsYWJlbCwgaW5kZXgpID0+IGluZGV4ID09PSB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LmFjdGl2ZUl0ZW1JbmRleCk7XG4gICAgICB0aGlzLmhhbmRsZUNsaWNrKGl0ZW0/LnZhbHVlKCkgPz8gLTEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIub25LZXlkb3duKCRldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChbJ1RhYiddLmluY2x1ZGVzKCRldmVudC5rZXkpKSB7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnRhYk91dC5uZXh0KCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKHZhbHVlOiBudW1iZXIgfCBudWxsKSA9PiB7XG4gICAgLyogZW1wdHkgKi9cbiAgfTtcbiAgb25Ub3VjaGVkID0gKCkgPT4ge1xuICAgIC8qIGVtcHR5ICovXG4gIH07XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLiNkaXNhYmxlZFN0YXRlLnNldChpc0Rpc2FibGVkKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBpc0l0ZW1BY3RpdmUodmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IGxvY2FsVmFsdWUgPSB0aGlzLmhvdmVyVmFsdWUoKSA/PyB0aGlzLnZhbHVlKCkgPz8gLTE7XG4gICAgcmV0dXJuIHRoaXMuaGlnaGxpZ2h0T25seVNlbGVjdGVkKCkgPyBsb2NhbFZhbHVlID09PSB2YWx1ZSA6IGxvY2FsVmFsdWUgPj0gdmFsdWU7XG4gIH1cblxuICBub3RMYXN0SXRlbVN0eWxlKHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgekluZGV4OiB0aGlzLm51bWJlck9mU3ViSXRlbXMoKSAtIHZhbHVlLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICB3aWR0aDogYCR7dGhpcy5wcmVjaXNpb24oKSAqICh2YWx1ZSArIDEpICogMTAwfSVgLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgb3BhY2l0eTogMC4xXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUZvY3VzSW4oJGV2ZW50OiBGb2N1c0V2ZW50LCBpdGVtVmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuaGFuZGxlTW91c2VFbnRlcigkZXZlbnQgYXMgTW91c2VFdmVudCwgaXRlbVZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZUNsaWNrKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5yYXRpbmdEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93Q2xlYXIoKSAmJiB2YWx1ZSA9PT0gdGhpcy52YWx1ZSgpKSB7XG4gICAgICB0aGlzLiNjbGVhcmVkLnNldCh0cnVlKTtcbiAgICAgIHRoaXMudmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5ob3ZlclZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU1vdXNlRW50ZXIoJGV2ZW50OiBNb3VzZUV2ZW50LCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmF0aW5nRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhvdmVyVmFsdWUuc2V0KG51bGwpO1xuICAgIHRoaXMuaG92ZXJWYWx1ZS5zZXQodmFsdWUpO1xuICAgIHRoaXMudG9vbHRpcFZhbHVlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBnZXRUb29sdGlwVmFsdWUoaW5kZXg6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmhvdmVyVmFsdWUoKSB8fCB0aGlzLmhvdmVyZWRJdGVtKCkgIT09IGluZGV4KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnRvb2x0aXBzKCkpKSB7XG4gICAgICBjb25zdCB0b29sdGlwcyA9IHRoaXMudG9vbHRpcHMoKSBhcyBzdHJpbmdbXTtcbiAgICAgIHJldHVybiB0b29sdGlwc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByZWNpc2lvbigpXG4gICAgICA/ICh0aGlzLnRvb2x0aXBWYWx1ZSgpPy50b1N0cmluZygpID8/ICcnKVxuICAgICAgOiB0aGlzLnJhdGluZ0l0ZW1zKClcbiAgICAgICAgPyAodGhpcy5yYXRpbmdJdGVtcygpW2luZGV4XS5hdCgtMSkgPz8gJycpLnRvU3RyaW5nKClcbiAgICAgICAgOiAnJztcbiAgfVxuXG4gIHVwZGF0ZUZvY3VzYWJsZUl0ZW1zKCkge1xuICAgIHRoaXMucmF0aW5nSXRlbUxhYmVscygpLmZvckVhY2goKGxhYmVsLCBpbmRleCkgPT4ge1xuICAgICAgbGFiZWwuZm9jdXNhYmxlLnNldChpbmRleCA9PT0gdGhpcy4jZm9jdXNLZXlNYW5hZ2VyPy5hY3RpdmVJdGVtSW5kZXgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8ga2VlcCBpdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBjb2RlXG4gIHJlYWRvbmx5IHZhbHVlRWZmZWN0ID0gZWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IHJhdGluZ1ZhbHVlID0gdGhpcy52YWx1ZSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZShyYXRpbmdWYWx1ZSk7XG5cbiAgICAgIGlmICh1bnRyYWNrZWQodGhpcy5yYXRpbmdEaXNhYmxlZCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodW50cmFja2VkKHRoaXMuI2NsZWFyZWQpKSB7XG4gICAgICAgIHRoaXMuI2NsZWFyZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgYWN0aXZlSXRlbUluZGV4ID0gdGhpcy5yYXRpbmdJdGVtcygpXG4gICAgICAgIC5mbGF0KClcbiAgICAgICAgLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSBjb2VyY2VOdW1iZXIocmF0aW5nVmFsdWUgPz8gMCkpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgdGhpcy51cGRhdGVGb2N1c2FibGVJdGVtcygpO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG59XG4iLCJAZm9yIChpdGVtIG9mIHJhdGluZ0l0ZW1zKCk7IHRyYWNrIGl0ZW07IGxldCBpdGVtSW5kZXggPSAkaW5kZXgsIGxhc3QgPSAkbGFzdCkge1xuICBAaWYgKHRvb2x0aXBzKCkpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJhdGluZy1pdGVtXCJcbiAgICAgIFtjVG9vbHRpcF09XCJnZXRUb29sdGlwVmFsdWUoaXRlbUluZGV4KVwiXG4gICAgICBbY1Rvb2x0aXBUcmlnZ2VyXT1cIlsnaG92ZXInLCAnZm9jdXNpbiddXCJcbiAgICAgIChtb3VzZWVudGVyKT1cImhvdmVyZWRJdGVtLnNldChpdGVtSW5kZXgpXCJcbiAgICAgIChmb2N1c2luKT1cImhvdmVyZWRJdGVtLnNldChpdGVtSW5kZXgpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmF0aW5nSXRlbUxhYmVsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSwgaXRlbUluZGV4IH1cIiAvPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwicmF0aW5nLWl0ZW1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyYXRpbmdJdGVtTGFiZWw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpdGVtSW5kZXggfVwiIC8+XG4gICAgPC9kaXY+XG4gIH1cbn1cblxuPG5nLXRlbXBsYXRlIGxldC1pdGVtIGxldC1pdGVtSW5kZXg9XCJpdGVtSW5kZXhcIiAjcmF0aW5nSXRlbUxhYmVsPlxuICBAZm9yIChpdGVtVmFsdWUgb2YgaXRlbTsgdHJhY2sgcmFkaW9JbmRleDsgbGV0IHJhZGlvSW5kZXggPSAkaW5kZXgsIGxhc3QgPSAkbGFzdCkge1xuICAgIDxjLXJhdGluZy1pdGVtLWxhYmVsXG4gICAgICBjbGFzcz1cInJhdGluZy1pdGVtLWxhYmVsIGQtaW5saW5lLWJsb2NrXCJcbiAgICAgIHJvbGU9XCJyYWRpb1wiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soaXRlbVZhbHVlKVwiXG4gICAgICAoZm9jdXMpPVwiaGFuZGxlRm9jdXNJbigkZXZlbnQsIGl0ZW1WYWx1ZSlcIlxuICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGlzSXRlbUFjdGl2ZShpdGVtVmFsdWUpIH1cIlxuICAgICAgKG1vdXNlZW50ZXIpPVwiaGFuZGxlTW91c2VFbnRlcigkZXZlbnQsIGl0ZW1WYWx1ZSlcIlxuICAgICAgW25nU3R5bGVdPVwicmFkaW9JbmRleCArIDEgPCBudW1iZXJPZlN1Ykl0ZW1zKCkgPyBub3RMYXN0SXRlbVN0eWxlKHJhZGlvSW5kZXgpIDoge31cIlxuICAgICAgW3ZhbHVlXT1cIml0ZW1WYWx1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW1WYWx1ZVwiXG4gICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbVZhbHVlID09PSB2YWx1ZSgpXCJcbiAgICA+XG4gICAgICBAaWYgKGljb25UZW1wbGF0ZXMoKVtpY29uKClbaXRlbUluZGV4XSA/PyBpY29uKCldKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21JY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpY29uKCk/LltpdGVtSW5kZXhdID8/IGljb24oKSB9XCIgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVmYXVsdEljb25UZW1wbGF0ZVwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKGljb25UZW1wbGF0ZXMoKVthY3RpdmVJY29uKClbaXRlbUluZGV4XSA/PyBhY3RpdmVJY29uKCldKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21JY29uQWN0aXZlVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhY3RpdmVJY29uKCk/LltpdGVtSW5kZXhdID8/IGFjdGl2ZUljb24oKSB9XCIgLz5cbiAgICAgIH1cbiAgICA8L2MtcmF0aW5nLWl0ZW0tbGFiZWw+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbHRpcENvbnRlbnQ+XG4gIDxzcGFuPnt7IGhvdmVyVmFsdWUoKSB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEljb25UZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInJhdGluZy1pdGVtLWljb25cIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tSWNvblRlbXBsYXRlIGxldC1pY29uPlxuICA8ZGl2IGNsYXNzPVwicmF0aW5nLWl0ZW0tY3VzdG9tLWljb25cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlcygpPy5baWNvbl0gfHwgZGVmYXVsdEljb25UZW1wbGF0ZVwiIC8+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjdXN0b21JY29uQWN0aXZlVGVtcGxhdGUgbGV0LWljb24+XG4gIDxkaXYgY2xhc3M9XCJyYXRpbmctaXRlbS1jdXN0b20taWNvbi1hY3RpdmVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvblRlbXBsYXRlcygpPy5baWNvbl0gfHwgY3VzdG9tSWNvblRlbXBsYXRlXCIgLz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { RatingComponent } from './rating.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class RatingModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: RatingModule, imports: [RatingComponent], exports: [RatingComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RatingModule }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: RatingModule, imports: [RatingComponent], exports: [RatingComponent] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RatingModule }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: RatingModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: RatingModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [RatingComponent],
@@ -15,10 +15,10 @@ export class ClassToggleService {
15
15
  this.renderer.addClass(element, className);
16
16
  }
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ClassToggleService, deps: [{ token: DOCUMENT }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ClassToggleService, providedIn: 'root' }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ClassToggleService, deps: [{ token: DOCUMENT }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
19
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ClassToggleService, providedIn: 'root' }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ClassToggleService, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ClassToggleService, decorators: [{
22
22
  type: Injectable,
23
23
  args: [{
24
24
  providedIn: 'root'
@@ -66,10 +66,10 @@ export class ColorModeService {
66
66
  const event = new Event(this.eventName());
67
67
  this.#document.documentElement.dispatchEvent(event);
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ColorModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ColorModeService, providedIn: 'root' }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ColorModeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ColorModeService, providedIn: 'root' }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ColorModeService, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ColorModeService, decorators: [{
73
73
  type: Injectable,
74
74
  args: [{
75
75
  providedIn: 'root'
@@ -2,7 +2,6 @@ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class InMemoryStorageService {
4
4
  #storage = new Map();
5
- constructor() { }
6
5
  setItem(key, data) {
7
6
  this.#storage.set(key, JSON.stringify(data));
8
7
  }
@@ -21,13 +20,13 @@ export class InMemoryStorageService {
21
20
  key(index) {
22
21
  return Array.from(this.#storage.keys())[index];
23
22
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: InMemoryStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: InMemoryStorageService, providedIn: 'root' }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InMemoryStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InMemoryStorageService, providedIn: 'root' }); }
26
25
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: InMemoryStorageService, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InMemoryStorageService, decorators: [{
28
27
  type: Injectable,
29
28
  args: [{
30
29
  providedIn: 'root'
31
30
  }]
32
- }], ctorParameters: () => [] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUVyQyxnQkFBZ0IsQ0FBQztJQUVWLE9BQU8sQ0FBQyxHQUFXLEVBQUUsSUFBUztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU0sR0FBRyxDQUFDLEtBQWE7UUFDdEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDOzhHQTVCVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJbk1lbW9yeVN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgU3RvcmFnZSB7XG5cbiAgI3N0b3JhZ2UgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2Uuc2V0KGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNzdG9yYWdlLmhhcyhrZXkpID8gSlNPTi5wYXJzZSh0aGlzLiNzdG9yYWdlLmdldChrZXkpID8/ICdudWxsJykgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2UuZGVsZXRlKGtleSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy4jc3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N0b3JhZ2Uuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBrZXkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuI3N0b3JhZ2Uua2V5cygpKVtpbmRleF07XG4gIH1cbn1cbiJdfQ==
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUU5QixPQUFPLENBQUMsR0FBVyxFQUFFLElBQVM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNGLENBQUM7SUFFTSxVQUFVLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs4R0F6QlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlTdG9yYWdlU2VydmljZSBpbXBsZW1lbnRzIFN0b3JhZ2Uge1xuICAjc3RvcmFnZSA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2Uuc2V0KGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNzdG9yYWdlLmhhcyhrZXkpID8gSlNPTi5wYXJzZSh0aGlzLiNzdG9yYWdlLmdldChrZXkpID8/ICdudWxsJykgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI3N0b3JhZ2UuZGVsZXRlKGtleSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy4jc3RvcmFnZS5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3N0b3JhZ2Uuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBrZXkoaW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuI3N0b3JhZ2Uua2V5cygpKVtpbmRleF07XG4gIH1cbn1cbiJdfQ==
@@ -39,10 +39,10 @@ export class IntersectionService {
39
39
  observer?.unobserve(elementRef.nativeElement);
40
40
  });
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: IntersectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: IntersectionService, providedIn: 'root' }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: IntersectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: IntersectionService, providedIn: 'root' }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: IntersectionService, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: IntersectionService, decorators: [{
46
46
  type: Injectable,
47
47
  args: [{
48
48
  providedIn: 'root'
@@ -43,10 +43,10 @@ export class ListenersService {
43
43
  });
44
44
  this.listeners.clear();
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ListenersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ListenersService }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ListenersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ListenersService }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ListenersService, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ListenersService, decorators: [{
50
50
  type: Injectable
51
51
  }] });
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuZXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2xpc3RlbmVycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZMUUsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVXLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUIsY0FBUyxHQUE0QixJQUFJLEdBQUcsRUFBRSxDQUFDO0tBZ0R4RDtJQTlDQyxZQUFZLENBQUMsRUFDWCxXQUFXLEVBQ1gsT0FBTyxFQUNQLFVBQVUsRUFDVixXQUFXLEVBQ1gsY0FBYyxHQUNHO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDdkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU5RSxJQUFJLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLGNBQWMsS0FBSyxVQUFVO2dCQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLFVBQVUsS0FBSyxVQUFVO2dCQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLFFBQVEsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLFdBQVcsS0FBSyxVQUFVO2dCQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLE9BQU8sVUFBVSxLQUFLLFVBQVU7Z0JBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNELElBQUksUUFBUSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDL0QsT0FBTyxXQUFXLEtBQUssVUFBVTtnQkFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxVQUFVLEtBQUssVUFBVTtnQkFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN6RixPQUFPLFdBQVcsS0FBSyxVQUFVO2dCQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVGLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN2QyxhQUFhO1lBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQWxEVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmlnZ2VycyB9IGZyb20gJy4uL2NvcmV1aS50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RlbmVyc0NvbmZpZyB7XG4gIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmO1xuICB0cmlnZ2VyPzogVHJpZ2dlcnMgfCBUcmlnZ2Vyc1tdO1xuICBjYWxsYmFja09uPzogKCkgPT4gdm9pZDtcbiAgY2FsbGJhY2tPZmY/OiAoKSA9PiB2b2lkO1xuICBjYWxsYmFja1RvZ2dsZT86ICgpID0+IHZvaWQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMaXN0ZW5lcnNTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBwcml2YXRlIGxpc3RlbmVyczogTWFwPHN0cmluZywgKCkgPT4gdm9pZD4gPSBuZXcgTWFwKCk7XG5cbiAgc2V0TGlzdGVuZXJzKHtcbiAgICBob3N0RWxlbWVudCxcbiAgICB0cmlnZ2VyLFxuICAgIGNhbGxiYWNrT24sXG4gICAgY2FsbGJhY2tPZmYsXG4gICAgY2FsbGJhY2tUb2dnbGUsXG4gIH06IElMaXN0ZW5lcnNDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCB0cmlnZ2VycyA9IEFycmF5LmlzQXJyYXkodHJpZ2dlcikgPyB0cmlnZ2VyIDogdHJpZ2dlcj8uc3BsaXQoJyAnKSA/PyBbXTtcblxuICAgIGlmICh0cmlnZ2Vycz8uaW5jbHVkZXMoJ2NsaWNrJykpIHtcbiAgICAgIHR5cGVvZiBjYWxsYmFja1RvZ2dsZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoJ2NsaWNrJywgdGhpcy5yZW5kZXJlci5saXN0ZW4oaG9zdCwgJ2NsaWNrJywgY2FsbGJhY2tUb2dnbGUpKTtcbiAgICB9XG4gICAgaWYgKHRyaWdnZXJzPy5pbmNsdWRlcygnZm9jdXMnKSkge1xuICAgICAgdHlwZW9mIGNhbGxiYWNrT24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuc2V0KCdmb2N1cycsIHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdmb2N1cycsIGNhbGxiYWNrT24pKTtcbiAgICB9XG4gICAgaWYgKHRyaWdnZXJzPy5pbmNsdWRlcygnZm9jdXNpbicpKSB7XG4gICAgICB0eXBlb2YgY2FsbGJhY2tPZmYgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuc2V0KCdmb2N1c291dCcsIHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdmb2N1c291dCcsIGNhbGxiYWNrT2ZmKSk7XG4gICAgICB0eXBlb2YgY2FsbGJhY2tPbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoJ2ZvY3VzaW4nLCB0aGlzLnJlbmRlcmVyLmxpc3Rlbihob3N0LCAnZm9jdXNpbicsIGNhbGxiYWNrT24pKTtcbiAgICB9XG4gICAgaWYgKHRyaWdnZXJzPy5pbmNsdWRlcygnY2xpY2snKSB8fCB0cmlnZ2Vycz8uaW5jbHVkZXMoJ2ZvY3VzJykpIHtcbiAgICAgIHR5cGVvZiBjYWxsYmFja09mZiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0aGlzLmxpc3RlbmVycy5zZXQoJ2JsdXInLCB0aGlzLnJlbmRlcmVyLmxpc3Rlbihob3N0LCAnYmx1cicsIGNhbGxiYWNrT2ZmKSk7XG4gICAgfVxuICAgIGlmICh0cmlnZ2Vycz8uaW5jbHVkZXMoJ2hvdmVyJykpIHtcbiAgICAgIHR5cGVvZiBjYWxsYmFja09uID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnNldCgnbW91c2VlbnRlcicsIHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdtb3VzZWVudGVyJywgY2FsbGJhY2tPbikpO1xuICAgICAgdHlwZW9mIGNhbGxiYWNrT2ZmID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHRoaXMubGlzdGVuZXJzLnNldCgnbW91c2VsZWF2ZScsIHRoaXMucmVuZGVyZXIubGlzdGVuKGhvc3QsICdtb3VzZWxlYXZlJywgY2FsbGJhY2tPZmYpKTtcbiAgICB9XG4gIH1cblxuICBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKCh1bkxpc3Rlbiwga2V5KSA9PiB7XG4gICAgICB1bkxpc3RlbigpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKHVuTGlzdGVuLCBrZXkpID0+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMubGlzdGVuZXJzLnNldChrZXksIG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
1
  import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
- import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
2
+ import { inject, Injectable, PLATFORM_ID } from '@angular/core';
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { InMemoryStorageService } from './in-memory-storage.service';
5
5
  import * as i0 from "@angular/core";
6
6
  export class LocalStorageService {
7
- constructor(platformId, document) {
8
- this.platformId = platformId;
9
- this.document = document;
7
+ constructor() {
8
+ this.platformId = inject(PLATFORM_ID);
9
+ this.document = inject(DOCUMENT);
10
10
  this.#data$ = new BehaviorSubject(null);
11
11
  this.data$ = this.#data$.asObservable();
12
12
  this.#localStorage =
@@ -33,19 +33,13 @@ export class LocalStorageService {
33
33
  this.#localStorage.clear();
34
34
  this.#data$.next(null);
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: LocalStorageService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
37
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: LocalStorageService, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: LocalStorageService, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
43
43
  }]
44
- }], ctorParameters: () => [{ type: Object, decorators: [{
45
- type: Inject,
46
- args: [PLATFORM_ID]
47
- }] }, { type: Document, decorators: [{
48
- type: Inject,
49
- args: [DOCUMENT]
50
- }] }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtyRSxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQytCLFVBQWtCLEVBQ3JCLFFBQWtCO1FBRGYsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBU3JDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBb0MsSUFBSSxDQUFDLENBQUM7UUFDL0QsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFSakQsSUFBSSxDQUFDLGFBQWE7WUFDaEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGFBQWEsQ0FBVTtJQUNkLE1BQU0sQ0FBZ0U7SUFHeEUsT0FBTyxDQUFDLEdBQVcsRUFBRSxJQUFTO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQW5DVSxtQkFBbUIsa0JBR3BCLFdBQVcsYUFDWCxRQUFRO2tIQUpQLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbk1lbW9yeVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9pbi1tZW1vcnktc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7XG4gICAgdGhpcy4jbG9jYWxTdG9yYWdlID1cbiAgICAgIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlld1xuICAgICAgPyB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5sb2NhbFN0b3JhZ2VcbiAgICAgIDogbmV3IEluTWVtb3J5U3RvcmFnZVNlcnZpY2UoKTtcbiAgfVxuXG4gICNsb2NhbFN0b3JhZ2U6IFN0b3JhZ2U7XG4gIHJlYWRvbmx5ICNkYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBrZXk6IHN0cmluZzsgZGF0YTogYW55IH0gfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGEkID0gdGhpcy4jZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodGhpcy4jbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSB8fCAnbnVsbCcpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgdGhpcy4jZGF0YSQubmV4dCh7IGtleSwgZGF0YTogbnVsbCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLiNsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICB0aGlzLiNkYXRhJC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
44
+ }], ctorParameters: () => [] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtyRSxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCO1FBSFEsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBVTNCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBb0MsSUFBSSxDQUFDLENBQUM7UUFDL0QsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFSakQsSUFBSSxDQUFDLGFBQWE7WUFDaEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELGFBQWEsQ0FBVTtJQUNkLE1BQU0sQ0FBZ0U7SUFHeEUsT0FBTyxDQUFDLEdBQVcsRUFBRSxJQUFTO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQWxDVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5NZW1vcnlTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNsb2NhbFN0b3JhZ2UgPVxuICAgICAgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3XG4gICAgICAgID8gdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlldz8ubG9jYWxTdG9yYWdlXG4gICAgICAgIDogbmV3IEluTWVtb3J5U3RvcmFnZVNlcnZpY2UoKTtcbiAgfVxuXG4gICNsb2NhbFN0b3JhZ2U6IFN0b3JhZ2U7XG4gIHJlYWRvbmx5ICNkYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBrZXk6IHN0cmluZzsgZGF0YTogYW55IH0gfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGEkID0gdGhpcy4jZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodGhpcy4jbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSB8fCAnbnVsbCcpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgdGhpcy4jZGF0YSQubmV4dCh7IGtleSwgZGF0YTogbnVsbCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLiNsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICB0aGlzLiNkYXRhJC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -4,10 +4,10 @@ export class ElementRefDirective {
4
4
  constructor() {
5
5
  this.elementRef = inject(ElementRef);
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ElementRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: ElementRefDirective, isStandalone: true, selector: "[cElementRef]", exportAs: ["cElementRef"], ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ElementRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ElementRefDirective, isStandalone: true, selector: "[cElementRef]", exportAs: ["cElementRef"], ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ElementRefDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ElementRefDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[cElementRef]',
@@ -8,7 +8,7 @@ export class HtmlAttributesDirective {
8
8
  ngOnInit() {
9
9
  const attribs = this.cHtmlAttr;
10
10
  for (const attr in attribs) {
11
- if (attr === 'style' && typeof (attribs[attr]) === 'object') {
11
+ if (attr === 'style' && typeof attribs[attr] === 'object') {
12
12
  this.setStyle(attribs[attr]);
13
13
  }
14
14
  else if (attr === 'class') {
@@ -27,20 +27,22 @@ export class HtmlAttributesDirective {
27
27
  }
28
28
  }
29
29
  addClass(classes) {
30
- const classArray = (Array.isArray(classes) ? classes : classes.split(' '));
31
- classArray.filter((element) => element.length > 0).forEach(element => {
30
+ const classArray = Array.isArray(classes) ? classes : classes.split(' ');
31
+ classArray
32
+ .filter((element) => element.length > 0)
33
+ .forEach((element) => {
32
34
  this.renderer.addClass(this.el.nativeElement, element);
33
35
  });
34
36
  }
35
37
  setAttrib(key, value) {
36
- value !== null ?
37
- this.renderer.setAttribute(this.el.nativeElement, key, value) :
38
- this.renderer.removeAttribute(this.el.nativeElement, key);
38
+ value !== null
39
+ ? this.renderer.setAttribute(this.el.nativeElement, key, value)
40
+ : this.renderer.removeAttribute(this.el.nativeElement, key);
39
41
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
41
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HtmlAttributesDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: HtmlAttributesDirective, isStandalone: true, selector: "[cHtmlAttr]", inputs: { cHtmlAttr: "cHtmlAttr" }, exportAs: ["cHtmlAttr"], ngImport: i0 }); }
42
44
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: HtmlAttributesDirective, decorators: [{
44
46
  type: Directive,
45
47
  args: [{
46
48
  selector: '[cHtmlAttr]',
@@ -50,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
50
52
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { cHtmlAttr: [{
51
53
  type: Input
52
54
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1hdHRyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2h0bWwtYXR0ci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQU9oRixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsUUFBbUIsRUFDbkIsRUFBYztRQURkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUNyQixDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7aUJBQU0sSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxNQUE2QjtRQUM1QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUEwQjtRQUN6QyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBb0I7UUFDakQsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs4R0F6Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBR1UsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjSHRtbEF0dHJdJyxcbiAgZXhwb3J0QXM6ICdjSHRtbEF0dHInLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEh0bWxBdHRyaWJ1dGVzRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjSHRtbEF0dHI/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRyaWJzID0gdGhpcy5jSHRtbEF0dHI7XG4gICAgZm9yIChjb25zdCBhdHRyIGluIGF0dHJpYnMpIHtcbiAgICAgIGlmIChhdHRyID09PSAnc3R5bGUnICYmIHR5cGVvZiAoYXR0cmlic1thdHRyXSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoYXR0cmlic1thdHRyXSk7XG4gICAgICB9IGVsc2UgaWYgKGF0dHIgPT09ICdjbGFzcycpIHtcbiAgICAgICAgdGhpcy5hZGRDbGFzcyhhdHRyaWJzW2F0dHJdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmliKGF0dHIsIGF0dHJpYnNbYXR0cl0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoc3R5bGVzOiB7IFt4OiBzdHJpbmddOiBhbnk7IH0pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN0eWxlIGluIHN0eWxlcykge1xuICAgICAgaWYgKHN0eWxlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBzdHlsZSwgc3R5bGVzW3N0eWxlXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRDbGFzcyhjbGFzc2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNvbnN0IGNsYXNzQXJyYXkgPSAoQXJyYXkuaXNBcnJheShjbGFzc2VzKSA/IGNsYXNzZXMgOiBjbGFzc2VzLnNwbGl0KCcgJykpO1xuICAgIGNsYXNzQXJyYXkuZmlsdGVyKChlbGVtZW50KSA9PiBlbGVtZW50Lmxlbmd0aCA+IDApLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEF0dHJpYihrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB2YWx1ZSAhPT0gbnVsbCA/XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGtleSwgdmFsdWUpIDpcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwga2V5KTtcbiAgfVxufVxuIl19
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1hdHRyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2h0bWwtYXR0ci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQU9oRixNQUFNLE9BQU8sdUJBQXVCO0lBR2xDLFlBQ1UsUUFBbUIsRUFDbkIsRUFBYztRQURkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUNyQixDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0IsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQTRCO1FBQzNDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQTBCO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6RSxVQUFVO2FBQ1AsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUN2QyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQW9CO1FBQ2pELEtBQUssS0FBSyxJQUFJO1lBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7OEdBMUNVLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUxuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3VHQUVVLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY0h0bWxBdHRyXScsXG4gIGV4cG9ydEFzOiAnY0h0bWxBdHRyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBIdG1sQXR0cmlidXRlc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGNIdG1sQXR0cj86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGF0dHJpYnMgPSB0aGlzLmNIdG1sQXR0cjtcbiAgICBmb3IgKGNvbnN0IGF0dHIgaW4gYXR0cmlicykge1xuICAgICAgaWYgKGF0dHIgPT09ICdzdHlsZScgJiYgdHlwZW9mIGF0dHJpYnNbYXR0cl0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRoaXMuc2V0U3R5bGUoYXR0cmlic1thdHRyXSk7XG4gICAgICB9IGVsc2UgaWYgKGF0dHIgPT09ICdjbGFzcycpIHtcbiAgICAgICAgdGhpcy5hZGRDbGFzcyhhdHRyaWJzW2F0dHJdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmliKGF0dHIsIGF0dHJpYnNbYXR0cl0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoc3R5bGVzOiB7IFt4OiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3R5bGUgaW4gc3R5bGVzKSB7XG4gICAgICBpZiAoc3R5bGUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHN0eWxlLCBzdHlsZXNbc3R5bGVdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZENsYXNzKGNsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgY2xhc3NBcnJheSA9IEFycmF5LmlzQXJyYXkoY2xhc3NlcykgPyBjbGFzc2VzIDogY2xhc3Nlcy5zcGxpdCgnICcpO1xuICAgIGNsYXNzQXJyYXlcbiAgICAgIC5maWx0ZXIoKGVsZW1lbnQpID0+IGVsZW1lbnQubGVuZ3RoID4gMClcbiAgICAgIC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBlbGVtZW50KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBdHRyaWIoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgdmFsdWUgIT09IG51bGxcbiAgICAgID8gdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKVxuICAgICAgOiB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGtleSk7XG4gIH1cbn1cbiJdfQ==