igniteui-angular 16.0.0-beta.2 → 16.0.0-beta.3

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 (348) hide show
  1. package/esm2022/lib/accordion/accordion.component.mjs +4 -4
  2. package/esm2022/lib/accordion/accordion.module.mjs +5 -5
  3. package/esm2022/lib/action-strip/action-strip.component.mjs +7 -7
  4. package/esm2022/lib/action-strip/action-strip.module.mjs +5 -5
  5. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +4 -4
  6. package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +4 -4
  7. package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +4 -4
  8. package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +4 -4
  9. package/esm2022/lib/avatar/avatar.component.mjs +4 -4
  10. package/esm2022/lib/avatar/avatar.module.mjs +5 -5
  11. package/esm2022/lib/badge/badge.component.mjs +4 -4
  12. package/esm2022/lib/badge/badge.module.mjs +5 -5
  13. package/esm2022/lib/banner/banner.component.mjs +4 -4
  14. package/esm2022/lib/banner/banner.directives.mjs +4 -4
  15. package/esm2022/lib/banner/banner.module.mjs +5 -5
  16. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +4 -4
  17. package/esm2022/lib/buttonGroup/buttongroup.module.mjs +5 -5
  18. package/esm2022/lib/calendar/calendar-base.mjs +4 -4
  19. package/esm2022/lib/calendar/calendar.component.mjs +4 -4
  20. package/esm2022/lib/calendar/calendar.directives.mjs +16 -16
  21. package/esm2022/lib/calendar/calendar.module.mjs +5 -5
  22. package/esm2022/lib/calendar/days-view/day-item.component.mjs +4 -4
  23. package/esm2022/lib/calendar/days-view/days-view.component.mjs +4 -4
  24. package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +4 -4
  25. package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +4 -4
  26. package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +4 -4
  27. package/esm2022/lib/calendar/months-view/months-view.component.mjs +4 -4
  28. package/esm2022/lib/calendar/months-view.pipe.mjs +7 -7
  29. package/esm2022/lib/calendar/years-view/years-view.component.mjs +7 -7
  30. package/esm2022/lib/card/card.component.mjs +28 -28
  31. package/esm2022/lib/card/card.module.mjs +5 -5
  32. package/esm2022/lib/carousel/carousel.component.mjs +7 -7
  33. package/esm2022/lib/carousel/carousel.directives.mjs +10 -10
  34. package/esm2022/lib/carousel/carousel.module.mjs +5 -5
  35. package/esm2022/lib/carousel/slide.component.mjs +4 -4
  36. package/esm2022/lib/checkbox/checkbox.component.mjs +4 -4
  37. package/esm2022/lib/checkbox/checkbox.module.mjs +5 -5
  38. package/esm2022/lib/chips/chip.component.mjs +4 -4
  39. package/esm2022/lib/chips/chips-area.component.mjs +4 -4
  40. package/esm2022/lib/chips/chips.module.mjs +5 -5
  41. package/esm2022/lib/combo/combo-add-item.component.mjs +4 -4
  42. package/esm2022/lib/combo/combo-dropdown.component.mjs +4 -4
  43. package/esm2022/lib/combo/combo-item.component.mjs +4 -4
  44. package/esm2022/lib/combo/combo.api.mjs +4 -4
  45. package/esm2022/lib/combo/combo.common.mjs +4 -4
  46. package/esm2022/lib/combo/combo.component.mjs +4 -4
  47. package/esm2022/lib/combo/combo.directives.mjs +25 -25
  48. package/esm2022/lib/combo/combo.module.mjs +5 -5
  49. package/esm2022/lib/combo/combo.pipes.mjs +7 -7
  50. package/esm2022/lib/core/density.mjs +4 -4
  51. package/esm2022/lib/core/navigation/directives.mjs +7 -7
  52. package/esm2022/lib/core/navigation/nav.service.mjs +4 -4
  53. package/esm2022/lib/core/selection.mjs +4 -4
  54. package/esm2022/lib/core/touch.mjs +4 -4
  55. package/esm2022/lib/core/utils.mjs +4 -4
  56. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +4 -4
  57. package/esm2022/lib/date-common/picker-base.directive.mjs +4 -4
  58. package/esm2022/lib/date-common/picker-icons.common.mjs +10 -10
  59. package/esm2022/lib/date-picker/date-picker.component.mjs +4 -4
  60. package/esm2022/lib/date-picker/date-picker.module.mjs +5 -5
  61. package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +16 -16
  62. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +4 -4
  63. package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +5 -5
  64. package/esm2022/lib/dialog/dialog.component.mjs +4 -4
  65. package/esm2022/lib/dialog/dialog.directives.mjs +7 -7
  66. package/esm2022/lib/dialog/dialog.module.mjs +5 -5
  67. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +4 -4
  68. package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +5 -5
  69. package/esm2022/lib/directives/button/button.directive.mjs +4 -4
  70. package/esm2022/lib/directives/button/button.module.mjs +5 -5
  71. package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +4 -4
  72. package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +5 -5
  73. package/esm2022/lib/directives/divider/divider.directive.mjs +4 -4
  74. package/esm2022/lib/directives/divider/divider.module.mjs +5 -5
  75. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +13 -13
  76. package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +5 -5
  77. package/esm2022/lib/directives/filter/filter.directive.mjs +7 -7
  78. package/esm2022/lib/directives/filter/filter.module.mjs +5 -5
  79. package/esm2022/lib/directives/focus/focus.directive.mjs +4 -4
  80. package/esm2022/lib/directives/focus/focus.module.mjs +5 -5
  81. package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +4 -4
  82. package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +5 -5
  83. package/esm2022/lib/directives/for-of/base.helper.component.mjs +4 -4
  84. package/esm2022/lib/directives/for-of/display.container.mjs +4 -4
  85. package/esm2022/lib/directives/for-of/for_of.directive.mjs +7 -7
  86. package/esm2022/lib/directives/for-of/for_of.module.mjs +5 -5
  87. package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +7 -7
  88. package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +4 -4
  89. package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +4 -4
  90. package/esm2022/lib/directives/form-control/form-control.directive.mjs +4 -4
  91. package/esm2022/lib/directives/form-control/form-control.module.mjs +5 -5
  92. package/esm2022/lib/directives/hint/hint.directive.mjs +4 -4
  93. package/esm2022/lib/directives/input/input.directive.mjs +4 -4
  94. package/esm2022/lib/directives/label/label.directive.mjs +4 -4
  95. package/esm2022/lib/directives/layout/layout.directive.mjs +7 -7
  96. package/esm2022/lib/directives/layout/layout.module.mjs +5 -5
  97. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +4 -4
  98. package/esm2022/lib/directives/mask/mask.directive.mjs +4 -4
  99. package/esm2022/lib/directives/mask/mask.module.mjs +5 -5
  100. package/esm2022/lib/directives/notification/notifications.directive.mjs +4 -4
  101. package/esm2022/lib/directives/prefix/prefix.directive.mjs +4 -4
  102. package/esm2022/lib/directives/radio/radio-group.directive.mjs +4 -4
  103. package/esm2022/lib/directives/radio/radio-group.module.mjs +5 -5
  104. package/esm2022/lib/directives/ripple/ripple.directive.mjs +4 -4
  105. package/esm2022/lib/directives/ripple/ripple.module.mjs +5 -5
  106. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +4 -4
  107. package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +5 -5
  108. package/esm2022/lib/directives/suffix/suffix.directive.mjs +4 -4
  109. package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +4 -4
  110. package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +4 -4
  111. package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +5 -5
  112. package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +4 -4
  113. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +5 -5
  114. package/esm2022/lib/directives/toggle/toggle.directive.mjs +10 -10
  115. package/esm2022/lib/directives/toggle/toggle.module.mjs +5 -5
  116. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +4 -4
  117. package/esm2022/lib/directives/tooltip/tooltip.component.mjs +4 -4
  118. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +4 -4
  119. package/esm2022/lib/directives/tooltip/tooltip.module.mjs +5 -5
  120. package/esm2022/lib/drop-down/drop-down-group.component.mjs +4 -4
  121. package/esm2022/lib/drop-down/drop-down-item.base.mjs +4 -4
  122. package/esm2022/lib/drop-down/drop-down-item.component.mjs +4 -4
  123. package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +4 -4
  124. package/esm2022/lib/drop-down/drop-down.base.mjs +4 -4
  125. package/esm2022/lib/drop-down/drop-down.component.mjs +4 -4
  126. package/esm2022/lib/drop-down/drop-down.module.mjs +5 -5
  127. package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +4 -4
  128. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +4 -4
  129. package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +4 -4
  130. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +4 -4
  131. package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +10 -10
  132. package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +5 -5
  133. package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +4 -4
  134. package/esm2022/lib/grids/api.service.mjs +4 -4
  135. package/esm2022/lib/grids/cell.component.mjs +4 -4
  136. package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +4 -4
  137. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +13 -13
  138. package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +4 -4
  139. package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +4 -4
  140. package/esm2022/lib/grids/column-actions/public_api.mjs +13 -0
  141. package/esm2022/lib/grids/columns/column-group.component.mjs +4 -4
  142. package/esm2022/lib/grids/columns/column-layout.component.mjs +4 -4
  143. package/esm2022/lib/grids/columns/column.component.mjs +4 -4
  144. package/esm2022/lib/grids/columns/templates.directive.mjs +25 -25
  145. package/esm2022/lib/grids/columns/validators.directive.mjs +22 -22
  146. package/esm2022/lib/grids/common/crud.service.mjs +4 -4
  147. package/esm2022/lib/grids/common/pipes.mjs +55 -55
  148. package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +4 -4
  149. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +4 -4
  150. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +4 -4
  151. package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +4 -4
  152. package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +4 -4
  153. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +4 -4
  154. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +4 -4
  155. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +4 -4
  156. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +4 -4
  157. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +10 -10
  158. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +4 -4
  159. package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +4 -4
  160. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +4 -4
  161. package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +4 -4
  162. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +7 -7
  163. package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +4 -4
  164. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +4 -4
  165. package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +4 -4
  166. package/esm2022/lib/grids/grid/expandable-cell.component.mjs +4 -4
  167. package/esm2022/lib/grids/grid/grid-api.service.mjs +4 -4
  168. package/esm2022/lib/grids/grid/grid-row.component.mjs +4 -4
  169. package/esm2022/lib/grids/grid/grid-validation.service.mjs +4 -4
  170. package/esm2022/lib/grids/grid/grid.component.mjs +4 -4
  171. package/esm2022/lib/grids/grid/grid.details.pipe.mjs +4 -4
  172. package/esm2022/lib/grids/grid/grid.directives.mjs +34 -34
  173. package/esm2022/lib/grids/grid/grid.module.mjs +27 -24
  174. package/esm2022/lib/grids/grid/grid.pipes.mjs +13 -13
  175. package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +4 -4
  176. package/esm2022/lib/grids/grid/groupby-row.component.mjs +4 -4
  177. package/esm2022/lib/grids/grid-base.directive.mjs +4 -4
  178. package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +4 -4
  179. package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +4 -4
  180. package/esm2022/lib/grids/grid-navigation.service.mjs +4 -4
  181. package/esm2022/lib/grids/grid.common.mjs +4 -4
  182. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +16 -16
  183. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +4 -4
  184. package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +7 -7
  185. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +4 -4
  186. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +4 -4
  187. package/esm2022/lib/grids/headers/grid-header-row.component.mjs +4 -4
  188. package/esm2022/lib/grids/headers/grid-header.component.mjs +4 -4
  189. package/esm2022/lib/grids/headers/pipes.mjs +10 -10
  190. package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +4 -4
  191. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +4 -4
  192. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +4 -4
  193. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +4 -4
  194. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +7 -7
  195. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +27 -24
  196. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +7 -7
  197. package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +4 -4
  198. package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +4 -4
  199. package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +4 -4
  200. package/esm2022/lib/grids/moving/moving.drag.directive.mjs +4 -4
  201. package/esm2022/lib/grids/moving/moving.drop.directive.mjs +4 -4
  202. package/esm2022/lib/grids/moving/moving.service.mjs +4 -4
  203. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +4 -4
  204. package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +4 -4
  205. package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +4 -4
  206. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +4 -4
  207. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +4 -4
  208. package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +27 -24
  209. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +31 -31
  210. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +4 -4
  211. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +4 -4
  212. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +4 -4
  213. package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +4 -4
  214. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +4 -4
  215. package/esm2022/lib/grids/public_api.mjs +5 -2
  216. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +4 -4
  217. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +4 -4
  218. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +4 -4
  219. package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +4 -4
  220. package/esm2022/lib/grids/resizing/resizer.component.mjs +4 -4
  221. package/esm2022/lib/grids/resizing/resizer.directive.mjs +4 -4
  222. package/esm2022/lib/grids/resizing/resizing.service.mjs +4 -4
  223. package/esm2022/lib/grids/row-drag.directive.mjs +10 -10
  224. package/esm2022/lib/grids/row.directive.mjs +4 -4
  225. package/esm2022/lib/grids/selection/drag-select.directive.mjs +4 -4
  226. package/esm2022/lib/grids/selection/row-selectors.mjs +10 -10
  227. package/esm2022/lib/grids/selection/selection.service.mjs +4 -4
  228. package/esm2022/lib/grids/state.directive.mjs +4 -4
  229. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +4 -4
  230. package/esm2022/lib/grids/summaries/grid-summary.service.mjs +4 -4
  231. package/esm2022/lib/grids/summaries/summary-cell.component.mjs +4 -4
  232. package/esm2022/lib/grids/summaries/summary-row.component.mjs +4 -4
  233. package/esm2022/lib/grids/toolbar/common.mjs +16 -16
  234. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +4 -4
  235. package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +4 -4
  236. package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +4 -4
  237. package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +4 -4
  238. package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +7 -7
  239. package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +4 -4
  240. package/esm2022/lib/grids/tree-grid/public_api.mjs +4 -1
  241. package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +4 -4
  242. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +4 -4
  243. package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +4 -4
  244. package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +4 -4
  245. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +4 -4
  246. package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +4 -4
  247. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +4 -4
  248. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +4 -4
  249. package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +43 -39
  250. package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +22 -22
  251. package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +4 -4
  252. package/esm2022/lib/icon/icon.component.mjs +4 -4
  253. package/esm2022/lib/icon/icon.module.mjs +5 -5
  254. package/esm2022/lib/icon/icon.service.mjs +4 -4
  255. package/esm2022/lib/input-group/input-group.component.mjs +4 -4
  256. package/esm2022/lib/input-group/input-group.module.mjs +5 -5
  257. package/esm2022/lib/list/list-item.component.mjs +4 -4
  258. package/esm2022/lib/list/list.common.mjs +16 -16
  259. package/esm2022/lib/list/list.component.mjs +19 -19
  260. package/esm2022/lib/list/list.module.mjs +5 -5
  261. package/esm2022/lib/navbar/navbar.component.mjs +10 -10
  262. package/esm2022/lib/navbar/navbar.module.mjs +5 -5
  263. package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +4 -4
  264. package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +10 -10
  265. package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +5 -5
  266. package/esm2022/lib/paginator/paginator-interfaces.mjs +4 -4
  267. package/esm2022/lib/paginator/paginator.component.mjs +13 -13
  268. package/esm2022/lib/paginator/paginator.module.mjs +5 -5
  269. package/esm2022/lib/progressbar/progressbar.common.mjs +7 -7
  270. package/esm2022/lib/progressbar/progressbar.component.mjs +10 -10
  271. package/esm2022/lib/progressbar/progressbar.module.mjs +5 -5
  272. package/esm2022/lib/query-builder/query-builder-header.component.mjs +4 -4
  273. package/esm2022/lib/query-builder/query-builder.component.mjs +7 -7
  274. package/esm2022/lib/query-builder/query-builder.module.mjs +5 -5
  275. package/esm2022/lib/radio/radio.component.mjs +4 -4
  276. package/esm2022/lib/select/select-group.component.mjs +4 -4
  277. package/esm2022/lib/select/select-item.component.mjs +4 -4
  278. package/esm2022/lib/select/select-navigation.directive.mjs +4 -4
  279. package/esm2022/lib/select/select.component.mjs +13 -13
  280. package/esm2022/lib/select/select.module.mjs +5 -5
  281. package/esm2022/lib/services/animation/angular-animation-service.mjs +4 -4
  282. package/esm2022/lib/services/csv/csv-exporter.mjs +4 -4
  283. package/esm2022/lib/services/direction/directionality.mjs +4 -4
  284. package/esm2022/lib/services/excel/excel-exporter.mjs +4 -4
  285. package/esm2022/lib/services/overlay/overlay.mjs +4 -4
  286. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +7 -7
  287. package/esm2022/lib/simple-combo/simple-combo.component.mjs +4 -4
  288. package/esm2022/lib/simple-combo/simple-combo.module.mjs +5 -5
  289. package/esm2022/lib/slider/label/thumb-label.component.mjs +4 -4
  290. package/esm2022/lib/slider/slider.common.mjs +10 -10
  291. package/esm2022/lib/slider/slider.component.mjs +4 -4
  292. package/esm2022/lib/slider/slider.module.mjs +5 -5
  293. package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +4 -4
  294. package/esm2022/lib/slider/ticks/tick.pipe.mjs +4 -4
  295. package/esm2022/lib/slider/ticks/ticks.component.mjs +4 -4
  296. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  297. package/esm2022/lib/snackbar/snackbar.module.mjs +5 -5
  298. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +4 -4
  299. package/esm2022/lib/splitter/splitter.component.mjs +7 -7
  300. package/esm2022/lib/splitter/splitter.module.mjs +5 -5
  301. package/esm2022/lib/stepper/step/step.component.mjs +4 -4
  302. package/esm2022/lib/stepper/stepper.component.mjs +4 -4
  303. package/esm2022/lib/stepper/stepper.directive.mjs +22 -22
  304. package/esm2022/lib/stepper/stepper.module.mjs +5 -5
  305. package/esm2022/lib/stepper/stepper.service.mjs +4 -4
  306. package/esm2022/lib/switch/switch.component.mjs +4 -4
  307. package/esm2022/lib/switch/switch.module.mjs +5 -5
  308. package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +4 -4
  309. package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +4 -4
  310. package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +4 -4
  311. package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +4 -4
  312. package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +7 -7
  313. package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +5 -5
  314. package/esm2022/lib/tabs/tab-content.directive.mjs +4 -4
  315. package/esm2022/lib/tabs/tab-header.directive.mjs +4 -4
  316. package/esm2022/lib/tabs/tab-item.directive.mjs +4 -4
  317. package/esm2022/lib/tabs/tabs/tab-content.component.mjs +4 -4
  318. package/esm2022/lib/tabs/tabs/tab-header.component.mjs +4 -4
  319. package/esm2022/lib/tabs/tabs/tab-item.component.mjs +4 -4
  320. package/esm2022/lib/tabs/tabs/tabs.component.mjs +4 -4
  321. package/esm2022/lib/tabs/tabs/tabs.directives.mjs +7 -7
  322. package/esm2022/lib/tabs/tabs/tabs.module.mjs +5 -5
  323. package/esm2022/lib/tabs/tabs.directive.mjs +4 -4
  324. package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
  325. package/esm2022/lib/time-picker/time-picker.directives.mjs +7 -7
  326. package/esm2022/lib/time-picker/time-picker.module.mjs +5 -5
  327. package/esm2022/lib/time-picker/time-picker.pipes.mjs +7 -7
  328. package/esm2022/lib/toast/toast.component.mjs +4 -4
  329. package/esm2022/lib/toast/toast.module.mjs +5 -5
  330. package/esm2022/lib/tree/tree-navigation.service.mjs +4 -4
  331. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +7 -7
  332. package/esm2022/lib/tree/tree-selection.service.mjs +4 -4
  333. package/esm2022/lib/tree/tree.component.mjs +10 -10
  334. package/esm2022/lib/tree/tree.module.mjs +5 -5
  335. package/esm2022/lib/tree/tree.service.mjs +4 -4
  336. package/fesm2022/igniteui-angular.mjs +2330 -2321
  337. package/fesm2022/igniteui-angular.mjs.map +1 -1
  338. package/lib/grids/column-actions/public_api.d.ts +7 -0
  339. package/lib/grids/grid/grid.module.d.ts +23 -20
  340. package/lib/grids/grid/public_api.d.ts +1 -1
  341. package/lib/grids/hierarchical-grid/hierarchical-grid.module.d.ts +23 -20
  342. package/lib/grids/hierarchical-grid/public_api.d.ts +1 -1
  343. package/lib/grids/pivot-grid/pivot-grid.module.d.ts +23 -20
  344. package/lib/grids/pivot-grid/public_api.d.ts +1 -1
  345. package/lib/grids/public_api.d.ts +2 -1
  346. package/lib/grids/tree-grid/public_api.d.ts +3 -1
  347. package/lib/grids/tree-grid/tree-grid.module.d.ts +39 -35
  348. package/package.json +6 -6
@@ -465,10 +465,10 @@ export class IgxRowDirective {
465
465
  const dragIndicatorOff = this.grid.rowDragging && !this.dragging ? 'igx-grid__drag-indicator--off' : '';
466
466
  return `${defaultDragIndicatorCssClass} ${dragIndicatorOff}`;
467
467
  }
468
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxRowDirective, deps: [{ token: IGX_GRID_BASE }, { token: i1.IgxGridSelectionService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
469
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxRowDirective, isStandalone: true, selector: "[igxRowBaseComponent]", inputs: { data: "data", index: "index", disabled: "disabled", gridID: "gridID", selected: "selected" }, outputs: { addAnimationEnd: "addAnimationEnd" }, host: { listeners: { "click": "onClick($event)", "mouseenter": "showActionStrip()", "mouseleave": "hideActionStrip()" }, properties: { "attr.role": "this.role", "attr.aria-disabled": "this.disabled", "class.igx-grid__tr--disabled": "this.disabled", "style.min-height.px": "this.rowHeight", "attr.data-rowIndex": "this.dataRowIndex", "attr.aria-selected": "this.selected" } }, viewQueries: [{ propertyName: "checkboxElement", first: true, predicate: i0.forwardRef(function () { return IgxCheckboxComponent; }), descendants: true, read: IgxCheckboxComponent }, { propertyName: "_virtDirRow", predicate: ["igxDirRef"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "_cells", predicate: ["cell"], descendants: true }], ngImport: i0 }); }
468
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxRowDirective, deps: [{ token: IGX_GRID_BASE }, { token: i1.IgxGridSelectionService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
469
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxRowDirective, isStandalone: true, selector: "[igxRowBaseComponent]", inputs: { data: "data", index: "index", disabled: "disabled", gridID: "gridID", selected: "selected" }, outputs: { addAnimationEnd: "addAnimationEnd" }, host: { listeners: { "click": "onClick($event)", "mouseenter": "showActionStrip()", "mouseleave": "hideActionStrip()" }, properties: { "attr.role": "this.role", "attr.aria-disabled": "this.disabled", "class.igx-grid__tr--disabled": "this.disabled", "style.min-height.px": "this.rowHeight", "attr.data-rowIndex": "this.dataRowIndex", "attr.aria-selected": "this.selected" } }, viewQueries: [{ propertyName: "checkboxElement", first: true, predicate: i0.forwardRef(function () { return IgxCheckboxComponent; }), descendants: true, read: IgxCheckboxComponent }, { propertyName: "_virtDirRow", predicate: ["igxDirRef"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "_cells", predicate: ["cell"], descendants: true }], ngImport: i0 }); }
470
470
  }
471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxRowDirective, decorators: [{
471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxRowDirective, decorators: [{
472
472
  type: Directive,
473
473
  args: [{
474
474
  selector: '[igxRowBaseComponent]',
@@ -526,4 +526,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
526
526
  type: HostListener,
527
527
  args: ['mouseleave']
528
528
  }] } });
529
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9yb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBa0MsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxlQUFlO0lBYXhCOzs7Ozs7O09BT0c7SUFDSCxJQUNXLElBQUk7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxD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O3NCQURkLEtBQUs7Z0JBeUJDLEtBQUs7c0JBRFgsS0FBSztnQkFhQyxRQUFRO3NCQUhkLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsb0JBQW9COztzQkFDaEMsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBd0RoQyxTQUFTO3NCQURuQixXQUFXO3VCQUFDLHFCQUFxQjtnQkFrQjNCLE1BQU07c0JBRFosS0FBSztnQkFPQyxXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTtnQkFXbkQsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtnQkFJdkUsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE1BQU07Z0JBdUJULFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVV0QixRQUFRO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFrTDFCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0IxQixlQUFlO3NCQURyQixZQUFZO3VCQUFDLFlBQVk7Z0JBWW5CLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hBZGRSb3csIElneEVkaXRSb3cgfSBmcm9tICcuL2NvbW1vbi9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2VsbFR5cGUsIENvbHVtblR5cGUsIEdyaWRUeXBlLCBJR1hfR1JJRF9CQVNFIH0gZnJvbSAnLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Um93QmFzZUNvbXBvbmVudF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Um93RGlyZWN0aXZlIGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFkZEFuaW1hdGlvbkVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8SWd4Um93RGlyZWN0aXZlPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgcm9sZSA9ICdyb3cnO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBkYXRhIHBhc3NlZCB0byB0aGUgcm93IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXQgdGhlIHJvdyBkYXRhIGZvciB0aGUgZmlyc3Qgc2VsZWN0ZWQgcm93XG4gICAgICogbGV0IHNlbGVjdGVkUm93RGF0YSA9IHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0uZGF0YTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGF0YSgpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5pbkVkaXRNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VXaXRoKHRoaXMuZ3JpZC5kYXRhQ2xvbmVTdHJhdGVneS5jbG9uZSh0aGlzLl9kYXRhKSwgdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5nZXRBZ2dyZWdhdGVkVmFsdWUodGhpcy5rZXksIGZhbHNlKSxcbiAgICAgICAgICAgICAgICAob2JqVmFsdWUsIHNyY1ZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNyY1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9ialZhbHVlID0gc3JjVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRhdGEodjogYW55KSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSB2O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIHJvdy5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXQgdGhlIGluZGV4IG9mIHRoZSBzZWNvbmQgc2VsZWN0ZWQgcm93XG4gICAgICogbGV0IHNlbGVjdGVkUm93SW5kZXggPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzFdLmluZGV4O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluZGV4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBzcGVjaWZpYyByb3cgaGFzIGRpc2FibGVkIGZ1bmN0aW9uYWxpdHkgZm9yIGVkaXRpbmcgYW5kIHJvdyBzZWxlY3Rpb24uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzBdLnBpbm5lZCA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZF9fdHItLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgd2hldGhlciB0aGUgcm93IGlzIHBpbm5lZC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0ucGlubmVkID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5waW5Sb3codGhpcy5rZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnVucGluUm93KHRoaXMua2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgcm93IGlzIHBpbm5lZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzUGlubmVkID0gcm93LnBpbm5lZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBpbm5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5pc1JlY29yZFBpbm5lZCh0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSByb3cuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0V4cGFuZGVkID0gcm93LmV4cGFuZGVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQuZ3JpZEFQSS5nZXRfcm93X2V4cGFuc2lvbl9zdGF0ZSh0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cGFuZHMvY29sbGFwc2VzIHRoZSBjdXJyZW50IHJvdy5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzJdLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGV4cGFuZGVkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmdyaWQuZ3JpZEFQSS5zZXRfcm93X2V4cGFuc2lvbl9zdGF0ZSh0aGlzLmtleSwgdmFsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFkZFJvd1VJKCk6IGFueSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cgJiZcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cuZ2V0Q2xhc3NOYW1lKCkgPT09IElneEFkZFJvdy5uYW1lICYmXG4gICAgICAgICAgICB0aGlzLmdyaWQuY3J1ZFNlcnZpY2Uucm93LmlkID09PSB0aGlzLmtleTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi1oZWlnaHQucHgnKVxuICAgIHB1YmxpYyBnZXQgcm93SGVpZ2h0KCkge1xuICAgICAgICBsZXQgaGVpZ2h0ID0gdGhpcy5ncmlkLnJvd0hlaWdodCB8fCAzMjtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5oYXNDb2x1bW5MYXlvdXRzKSB7XG4gICAgICAgICAgICBjb25zdCBtYXhSb3dTcGFuID0gdGhpcy5ncmlkLm11bHRpUm93TGF5b3V0Um93U2l6ZTtcbiAgICAgICAgICAgIGhlaWdodCA9IGhlaWdodCAqIG1heFJvd1NwYW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm93VUkgPyBoZWlnaHQgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2VsbEhlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm93VUkgJiYgIXRoaXMuaW5FZGl0TW9kZSA/IG51bGwgOiB0aGlzLmdyaWQucm93SGVpZ2h0IHx8IDMyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkSUQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkcmVuKCdpZ3hEaXJSZWYnLCB7IHJlYWQ6IElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9KVxuICAgIHB1YmxpYyBfdmlydERpclJvdzogUXVlcnlMaXN0PElneEdyaWRGb3JPZkRpcmVjdGl2ZTxhbnk+PjtcblxuICAgIHB1YmxpYyBnZXQgdmlydERpclJvdygpOiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXJ0RGlyUm93ID8gdGhpcy5fdmlydERpclJvdy5maXJzdCA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBJZ3hDaGVja2JveENvbXBvbmVudCksIHsgcmVhZDogSWd4Q2hlY2tib3hDb21wb25lbnQgfSlcbiAgICBwdWJsaWMgY2hlY2tib3hFbGVtZW50OiBJZ3hDaGVja2JveENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ2NlbGwnKVxuICAgIHByb3RlY3RlZCBfY2VsbHM6IFF1ZXJ5TGlzdDxDZWxsVHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByZW5kZXJlZCBjZWxscyBpbiB0aGUgcm93IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXQgdGhlIGNlbGxzIG9mIHRoZSB0aGlyZCBzZWxlY3RlZCByb3dcbiAgICAgKiBsZXQgc2VsZWN0ZWRSb3dDZWxscyA9IHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMl0uY2VsbHM7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjZWxscygpIHtcbiAgICAgICAgY29uc3QgcmVzID0gbmV3IFF1ZXJ5TGlzdDxDZWxsVHlwZT4oKTtcbiAgICAgICAgaWYgKCF0aGlzLl9jZWxscykge1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjTGlzdCA9IHRoaXMuX2NlbGxzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG4gICAgICAgICAgICAuc29ydCgoaXRlbTEsIGl0ZW0yKSA9PiBpdGVtMS5jb2x1bW4udmlzaWJsZUluZGV4IC0gaXRlbTIuY29sdW1uLnZpc2libGVJbmRleCk7XG4gICAgICAgIHJlcy5yZXNldChjTGlzdCk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtcm93SW5kZXgnKVxuICAgIHB1YmxpYyBnZXQgZGF0YVJvd0luZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uU2VydmljZS5pc1Jvd1NlbGVjdGVkKHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJvd3NXaXRoTm9FdmVudChbdGhpcy5rZXldKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdFJvd3NXaXRoTm9FdmVudChbdGhpcy5rZXldKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWQuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICAgcHVibGljIGdldCBjb2x1bW5zKCk6IENvbHVtblR5cGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmlld0luZGV4KCk6IG51bWJlciB7XG4gICAgICAgIGlmICgodGhpcy5ncmlkIGFzIGFueSkuZ3JvdXBpbmdFeHByZXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWQuZmlsdGVyZWRTb3J0ZWREYXRhLmluZGV4T2YodGhpcy5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCArIHRoaXMuZ3JpZC5wYWdlICogdGhpcy5ncmlkLnBlclBhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGlubmVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnBpbm5lZENvbHVtbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNSb290KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHVucGlubmVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnVucGlubmVkQ29sdW1ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzaG93Um93U2VsZWN0b3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnNob3dSb3dTZWxlY3RvcnM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmdldFN0YXRlKHRoaXMua2V5KTtcbiAgICAgICAgaWYgKHJvdykge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQUREIHx8IHJvdy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVVBEQVRFO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJvd0RyYWdnYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yb3dEcmFnZ2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZ2V0IGFkZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmdldFN0YXRlKHRoaXMua2V5KTtcbiAgICAgICAgaWYgKHJvdykge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQUREO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCBkZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmdyaWRBUEkucm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24odGhpcy5rZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRyYWdnaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmRyYWdSb3dJRCA9PT0gdGhpcy5rZXk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVmYWN0b3JcbiAgICBwdWJsaWMgZ2V0IGluRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmdyaWQucm93RWRpdGFibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRSb3dTdGF0ZSA9IHRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3c7XG4gICAgICAgICAgICByZXR1cm4gKGVkaXRSb3dTdGF0ZSAmJiBlZGl0Um93U3RhdGUuaWQgPT09IHRoaXMua2V5KSB8fCBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIElEIG9mIHRoZSByb3cuXG4gICAgICogQSByb3cgaW4gdGhlIGdyaWQgaXMgaWRlbnRpZmllZCBlaXRoZXIgYnk6XG4gICAgICogLSBwcmltYXJ5S2V5IGRhdGEgdmFsdWUsXG4gICAgICogLSB0aGUgd2hvbGUgZGF0YSwgaWYgdGhlIHByaW1hcnlLZXkgaXMgb21pdHRlZC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcm93SUQgPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzJdLmtleTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IHRoaXMuZ3JpZC5wcmltYXJ5S2V5O1xuICAgICAgICBpZiAodGhpcy5fZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIHByaW1hcnlLZXkgPyB0aGlzLl9kYXRhW3ByaW1hcnlLZXldIDogdGhpcy5fZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmF0aXZlIERPTSBlbGVtZW50IHJlcHJlc2VudGluZyB0aGUgcm93LiBDb3VsZCBiZSBudWxsIGluIGNlcnRhaW4gZW52aXJvbm1lbnRzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldCB0aGUgbmF0aXZlRWxlbWVudCBvZiB0aGUgc2Vjb25kIHNlbGVjdGVkIHJvd1xuICAgICAqIGxldCBzZWxlY3RlZFJvd05hdGl2ZUVsZW1lbnQgPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzFdLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGRlZmF1bHRDc3NDbGFzcyA9ICdpZ3gtZ3JpZF9fdHInO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB0cmlnZ2VyQWRkQW5pbWF0aW9uQ2xhc3MgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwcm90ZWN0ZWQgX2RhdGE6IGFueTtcbiAgICBwcm90ZWN0ZWQgX2FkZFJvdzogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElHWF9HUklEX0JBU0UpIHB1YmxpYyBncmlkOiBHcmlkVHlwZSxcbiAgICAgICAgcHVibGljIHNlbGVjdGlvblNlcnZpY2U6IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5yb3dTZWxlY3Rpb24gPT09ICdub25lJyB8fCB0aGlzLmRlbGV0ZWQgfHwgIXRoaXMuZ3JpZC5zZWxlY3RSb3dPbkNsaWNrKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIHRoaXMuZ3JpZC5pc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdE11bHRpcGxlUm93cyh0aGlzLmtleSwgdGhpcy5kYXRhLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgICAgICBjb25zdCBjbGVhclNlbGVjdGlvbiA9ICEoK2V2ZW50LmN0cmxLZXkgXiArZXZlbnQubWV0YUtleSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmICFjbGVhclNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmRlc2VsZWN0Um93KHRoaXMua2V5LCBldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0Um93QnlJZCh0aGlzLmtleSwgY2xlYXJTZWxlY3Rpb24sIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBwdWJsaWMgc2hvd0FjdGlvblN0cmlwKCkge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmFjdGlvblN0cmlwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQuYWN0aW9uU3RyaXAuc2hvdyh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBwdWJsaWMgaGlkZUFjdGlvblN0cmlwKCkge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmFjdGlvblN0cmlwICYmIHRoaXMuZ3JpZC5hY3Rpb25TdHJpcC5oaWRlT25Sb3dMZWF2ZSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkLmFjdGlvblN0cmlwLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBJZiB0aGUgdGVtcGxhdGUgb2YgdGhlIHJvdyBjaGFuZ2VzLCB0aGUgZm9yT2YgaW4gaXQgaXMgcmVjcmVhdGVkIGFuZCBpcyBub3QgZGV0ZWN0ZWQgYnkgdGhlIGdyaWQgYW5kIHJvd3MgY2FuJ3QgYmUgc2Nyb2xsZWQuXG4gICAgICAgIHRoaXMuX3ZpcnREaXJSb3cuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZ3JpZC5yZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG9uUm93U2VsZWN0b3JDbGljayhldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIHRoaXMuZ3JpZC5pc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdE11bHRpcGxlUm93cyh0aGlzLmtleSwgdGhpcy5kYXRhLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdFJvdyh0aGlzLmtleSwgZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJvd0J5SWQodGhpcy5rZXksIGZhbHNlLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBzcGVjaWZpZWQgcm93IG9iamVjdCBhbmQgdGhlIGRhdGEgc291cmNlIHJlY29yZCB3aXRoIHRoZSBwYXNzZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gdXBkYXRlIHRoZSBzZWNvbmQgc2VsZWN0ZWQgcm93J3MgdmFsdWVcbiAgICAgKiBsZXQgbmV3VmFsdWUgPSBcIkFwcGxlXCI7XG4gICAgICogdGhpcy5ncmlkLnNlbGVjdGVkUm93c1sxXS51cGRhdGUobmV3VmFsdWUpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBjcnVkU2VydmljZSA9IHRoaXMuZ3JpZC5jcnVkU2VydmljZTtcbiAgICAgICAgaWYgKGNydWRTZXJ2aWNlLmNlbGxJbkVkaXRNb2RlICYmIGNydWRTZXJ2aWNlLmNlbGwuaWQua2V5ID09PSB0aGlzLmtleSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5lbmRQZW5kaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3cgPSBuZXcgSWd4RWRpdFJvdyh0aGlzLmtleSwgdGhpcy5pbmRleCwgdGhpcy5kYXRhLCB0aGlzLmdyaWQpO1xuICAgICAgICB0aGlzLmdyaWQuZ3JpZEFQSS51cGRhdGVfcm93KHJvdywgdmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgcm93IGZyb20gdGhlIGdyaWQncyBkYXRhIHNvdXJjZS5cbiAgICAgKiBUaGlzIG1ldGhvZCBlbWl0cyBgcm93RGVsZXRlZGAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gZGVsZXRlIHRoZSB0aGlyZCBzZWxlY3RlZCByb3cgZnJvbSB0aGUgZ3JpZFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMl0uZGVsZXRlKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5ncmlkLmRlbGV0ZVJvd0J5SWQodGhpcy5rZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0NlbGxBY3RpdmUodmlzaWJsZUNvbHVtbkluZGV4KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gbm9kZSA/IG5vZGUucm93ID09PSB0aGlzLmluZGV4ICYmIG5vZGUuY29sdW1uID09PSB2aXNpYmxlQ29sdW1uSW5kZXggOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQaW5zIHRoZSBzcGVjaWZpZWQgcm93LlxuICAgICAqIFRoaXMgbWV0aG9kIGVtaXRzIGByb3dQaW5uaW5nYFxcYHJvd1Bpbm5lZGAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gcGluIHRoZSBzZWxlY3RlZCByb3cgZnJvbSB0aGUgZ3JpZFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0ucGluKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHBpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5waW5Sb3codGhpcy5rZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucGlucyB0aGUgc3BlY2lmaWVkIHJvdy5cbiAgICAgKiBUaGlzIG1ldGhvZCBlbWl0cyBgcm93UGlubmluZ2BcXGByb3dQaW5uZWRgIGV2ZW50LlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIHVucGluIHRoZSBzZWxlY3RlZCByb3cgZnJvbSB0aGUgZ3JpZFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0udW5waW4oKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5waW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQudW5waW5Sb3codGhpcy5rZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJvd0NoZWNrYm94QXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnByaW1hcnlLZXkgP1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA/ICdEZXNlbGVjdCByb3cgd2l0aCBrZXkgJyArIHRoaXMua2V5IDogJ1NlbGVjdCByb3cgd2l0aCBrZXkgJyArIHRoaXMua2V5IDpcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPyAnRGVzZWxlY3Qgcm93JyA6ICdTZWxlY3Qgcm93JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzaG91bGREaXNwbGF5UGlubmVkQ2hpcCh2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5waW5uZWQgJiYgdGhpcy5kaXNhYmxlZCAmJiB2aXNpYmxlQ29sdW1uSW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Bhd25zIHRoZSBhZGQgcm93IFVJIGZvciB0aGUgc3BlY2lmaWMgcm93LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3Qgcm93ID0gdGhpcy5ncmlkMS5nZXRSb3dCeUluZGV4KDEpO1xuICAgICAqIHJvdy5iZWdpbkFkZFJvdygpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBiZWdpbkFkZFJvdygpIHtcbiAgICAgICAgdGhpcy5ncmlkLmNydWRTZXJ2aWNlLmVudGVyQWRkUm93TW9kZSh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHRyaWdnZXJBZGRBbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckFkZEFuaW1hdGlvbkNsYXNzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGFuaW1hdGlvbkVuZEhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckFkZEFuaW1hdGlvbkNsYXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRkQW5pbWF0aW9uRW5kLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzb2x2ZURyYWdJbmRpY2F0b3JDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHREcmFnSW5kaWNhdG9yQ3NzQ2xhc3MgPSAnaWd4LWdyaWRfX2RyYWctaW5kaWNhdG9yJztcbiAgICAgICAgY29uc3QgZHJhZ0luZGljYXRvck9mZiA9IHRoaXMuZ3JpZC5yb3dEcmFnZ2luZyAmJiAhdGhpcy5kcmFnZ2luZyA/ICdpZ3gtZ3JpZF9fZHJhZy1pbmRpY2F0b3ItLW9mZicgOiAnJztcbiAgICAgICAgcmV0dXJuIGAke2RlZmF1bHREcmFnSW5kaWNhdG9yQ3NzQ2xhc3N9ICR7ZHJhZ0luZGljYXRvck9mZn1gO1xuICAgIH1cbn1cbiJdfQ==
529
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9yb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBR1QsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBa0MsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxlQUFlO0lBYXhCOzs7Ozs7O09BT0c7SUFDSCxJQUNXLElBQUk7UUFDWCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxD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O3NCQURkLEtBQUs7Z0JBeUJDLEtBQUs7c0JBRFgsS0FBSztnQkFhQyxRQUFRO3NCQUhkLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsb0JBQW9COztzQkFDaEMsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBd0RoQyxTQUFTO3NCQURuQixXQUFXO3VCQUFDLHFCQUFxQjtnQkFrQjNCLE1BQU07c0JBRFosS0FBSztnQkFPQyxXQUFXO3NCQURqQixZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTtnQkFXbkQsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRTtnQkFJdkUsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE1BQU07Z0JBdUJULFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVV0QixRQUFRO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFrTDFCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0IxQixlQUFlO3NCQURyQixZQUFZO3VCQUFDLFlBQVk7Z0JBWW5CLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hBZGRSb3csIElneEVkaXRSb3cgfSBmcm9tICcuL2NvbW1vbi9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2VsbFR5cGUsIENvbHVtblR5cGUsIEdyaWRUeXBlLCBJR1hfR1JJRF9CQVNFIH0gZnJvbSAnLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgbWVyZ2VXaXRoIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Um93QmFzZUNvbXBvbmVudF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4Um93RGlyZWN0aXZlIGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGFkZEFuaW1hdGlvbkVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8SWd4Um93RGlyZWN0aXZlPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgcm9sZSA9ICdyb3cnO1xuXG4gICAgLyoqXG4gICAgICogIFRoZSBkYXRhIHBhc3NlZCB0byB0aGUgcm93IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXQgdGhlIHJvdyBkYXRhIGZvciB0aGUgZmlyc3Qgc2VsZWN0ZWQgcm93XG4gICAgICogbGV0IHNlbGVjdGVkUm93RGF0YSA9IHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0uZGF0YTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZGF0YSgpOiBhbnkge1xuICAgICAgICBpZiAodGhpcy5pbkVkaXRNb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVyZ2VXaXRoKHRoaXMuZ3JpZC5kYXRhQ2xvbmVTdHJhdGVneS5jbG9uZSh0aGlzLl9kYXRhKSwgdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5nZXRBZ2dyZWdhdGVkVmFsdWUodGhpcy5rZXksIGZhbHNlKSxcbiAgICAgICAgICAgICAgICAob2JqVmFsdWUsIHNyY1ZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNyY1ZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9ialZhbHVlID0gc3JjVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRhdGEodjogYW55KSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSB2O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIHJvdy5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXQgdGhlIGluZGV4IG9mIHRoZSBzZWNvbmQgc2VsZWN0ZWQgcm93XG4gICAgICogbGV0IHNlbGVjdGVkUm93SW5kZXggPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzFdLmluZGV4O1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluZGV4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBzcGVjaWZpYyByb3cgaGFzIGRpc2FibGVkIGZ1bmN0aW9uYWxpdHkgZm9yIGVkaXRpbmcgYW5kIHJvdyBzZWxlY3Rpb24uXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzBdLnBpbm5lZCA9IHRydWU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZF9fdHItLWRpc2FibGVkJylcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMgd2hldGhlciB0aGUgcm93IGlzIHBpbm5lZC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0ucGlubmVkID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5waW5Sb3codGhpcy5rZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnVucGluUm93KHRoaXMua2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgd2hldGhlciB0aGUgcm93IGlzIHBpbm5lZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzUGlubmVkID0gcm93LnBpbm5lZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBpbm5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5pc1JlY29yZFBpbm5lZCh0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSByb3cuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0V4cGFuZGVkID0gcm93LmV4cGFuZGVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQuZ3JpZEFQSS5nZXRfcm93X2V4cGFuc2lvbl9zdGF0ZSh0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cGFuZHMvY29sbGFwc2VzIHRoZSBjdXJyZW50IHJvdy5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzJdLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGV4cGFuZGVkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmdyaWQuZ3JpZEFQSS5zZXRfcm93X2V4cGFuc2lvbl9zdGF0ZSh0aGlzLmtleSwgdmFsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFkZFJvd1VJKCk6IGFueSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cgJiZcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3cuZ2V0Q2xhc3NOYW1lKCkgPT09IElneEFkZFJvdy5uYW1lICYmXG4gICAgICAgICAgICB0aGlzLmdyaWQuY3J1ZFNlcnZpY2Uucm93LmlkID09PSB0aGlzLmtleTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1pbi1oZWlnaHQucHgnKVxuICAgIHB1YmxpYyBnZXQgcm93SGVpZ2h0KCkge1xuICAgICAgICBsZXQgaGVpZ2h0ID0gdGhpcy5ncmlkLnJvd0hlaWdodCB8fCAzMjtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5oYXNDb2x1bW5MYXlvdXRzKSB7XG4gICAgICAgICAgICBjb25zdCBtYXhSb3dTcGFuID0gdGhpcy5ncmlkLm11bHRpUm93TGF5b3V0Um93U2l6ZTtcbiAgICAgICAgICAgIGhlaWdodCA9IGhlaWdodCAqIG1heFJvd1NwYW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm93VUkgPyBoZWlnaHQgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2VsbEhlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUm93VUkgJiYgIXRoaXMuaW5FZGl0TW9kZSA/IG51bGwgOiB0aGlzLmdyaWQucm93SGVpZ2h0IHx8IDMyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkSUQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkcmVuKCdpZ3hEaXJSZWYnLCB7IHJlYWQ6IElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9KVxuICAgIHB1YmxpYyBfdmlydERpclJvdzogUXVlcnlMaXN0PElneEdyaWRGb3JPZkRpcmVjdGl2ZTxhbnk+PjtcblxuICAgIHB1YmxpYyBnZXQgdmlydERpclJvdygpOiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXJ0RGlyUm93ID8gdGhpcy5fdmlydERpclJvdy5maXJzdCA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBJZ3hDaGVja2JveENvbXBvbmVudCksIHsgcmVhZDogSWd4Q2hlY2tib3hDb21wb25lbnQgfSlcbiAgICBwdWJsaWMgY2hlY2tib3hFbGVtZW50OiBJZ3hDaGVja2JveENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ2NlbGwnKVxuICAgIHByb3RlY3RlZCBfY2VsbHM6IFF1ZXJ5TGlzdDxDZWxsVHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSByZW5kZXJlZCBjZWxscyBpbiB0aGUgcm93IGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAvLyBnZXQgdGhlIGNlbGxzIG9mIHRoZSB0aGlyZCBzZWxlY3RlZCByb3dcbiAgICAgKiBsZXQgc2VsZWN0ZWRSb3dDZWxscyA9IHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMl0uY2VsbHM7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBjZWxscygpIHtcbiAgICAgICAgY29uc3QgcmVzID0gbmV3IFF1ZXJ5TGlzdDxDZWxsVHlwZT4oKTtcbiAgICAgICAgaWYgKCF0aGlzLl9jZWxscykge1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjTGlzdCA9IHRoaXMuX2NlbGxzLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgIT09IG51bGwpXG4gICAgICAgICAgICAuc29ydCgoaXRlbTEsIGl0ZW0yKSA9PiBpdGVtMS5jb2x1bW4udmlzaWJsZUluZGV4IC0gaXRlbTIuY29sdW1uLnZpc2libGVJbmRleCk7XG4gICAgICAgIHJlcy5yZXNldChjTGlzdCk7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtcm93SW5kZXgnKVxuICAgIHB1YmxpYyBnZXQgZGF0YVJvd0luZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uU2VydmljZS5pc1Jvd1NlbGVjdGVkKHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJvd3NXaXRoTm9FdmVudChbdGhpcy5rZXldKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdFJvd3NXaXRoTm9FdmVudChbdGhpcy5rZXldKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWQuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICAgcHVibGljIGdldCBjb2x1bW5zKCk6IENvbHVtblR5cGVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmlld0luZGV4KCk6IG51bWJlciB7XG4gICAgICAgIGlmICgodGhpcy5ncmlkIGFzIGFueSkuZ3JvdXBpbmdFeHByZXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWQuZmlsdGVyZWRTb3J0ZWREYXRhLmluZGV4T2YodGhpcy5kYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5pbmRleCArIHRoaXMuZ3JpZC5wYWdlICogdGhpcy5ncmlkLnBlclBhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcGlubmVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnBpbm5lZENvbHVtbnM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNSb290KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHVucGlubmVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnVucGlubmVkQ29sdW1ucztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzaG93Um93U2VsZWN0b3JzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnNob3dSb3dTZWxlY3RvcnM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZ2V0IGRpcnR5KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmdldFN0YXRlKHRoaXMua2V5KTtcbiAgICAgICAgaWYgKHJvdykge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQUREIHx8IHJvdy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuVVBEQVRFO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJvd0RyYWdnYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yb3dEcmFnZ2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwdWJsaWMgZ2V0IGFkZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWQudHJhbnNhY3Rpb25zLmdldFN0YXRlKHRoaXMua2V5KTtcbiAgICAgICAgaWYgKHJvdykge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQUREO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHVibGljIGdldCBkZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmdyaWRBUEkucm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24odGhpcy5rZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRyYWdnaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmRyYWdSb3dJRCA9PT0gdGhpcy5rZXk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogUmVmYWN0b3JcbiAgICBwdWJsaWMgZ2V0IGluRWRpdE1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmdyaWQucm93RWRpdGFibGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVkaXRSb3dTdGF0ZSA9IHRoaXMuZ3JpZC5jcnVkU2VydmljZS5yb3c7XG4gICAgICAgICAgICByZXR1cm4gKGVkaXRSb3dTdGF0ZSAmJiBlZGl0Um93U3RhdGUuaWQgPT09IHRoaXMua2V5KSB8fCBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIElEIG9mIHRoZSByb3cuXG4gICAgICogQSByb3cgaW4gdGhlIGdyaWQgaXMgaWRlbnRpZmllZCBlaXRoZXIgYnk6XG4gICAgICogLSBwcmltYXJ5S2V5IGRhdGEgdmFsdWUsXG4gICAgICogLSB0aGUgd2hvbGUgZGF0YSwgaWYgdGhlIHByaW1hcnlLZXkgaXMgb21pdHRlZC5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgcm93SUQgPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzJdLmtleTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICAgICAgY29uc3QgcHJpbWFyeUtleSA9IHRoaXMuZ3JpZC5wcmltYXJ5S2V5O1xuICAgICAgICBpZiAodGhpcy5fZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIHByaW1hcnlLZXkgPyB0aGlzLl9kYXRhW3ByaW1hcnlLZXldIDogdGhpcy5fZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgbmF0aXZlIERPTSBlbGVtZW50IHJlcHJlc2VudGluZyB0aGUgcm93LiBDb3VsZCBiZSBudWxsIGluIGNlcnRhaW4gZW52aXJvbm1lbnRzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIGdldCB0aGUgbmF0aXZlRWxlbWVudCBvZiB0aGUgc2Vjb25kIHNlbGVjdGVkIHJvd1xuICAgICAqIGxldCBzZWxlY3RlZFJvd05hdGl2ZUVsZW1lbnQgPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzFdLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGRlZmF1bHRDc3NDbGFzcyA9ICdpZ3gtZ3JpZF9fdHInO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyB0cmlnZ2VyQWRkQW5pbWF0aW9uQ2xhc3MgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICBwcm90ZWN0ZWQgX2RhdGE6IGFueTtcbiAgICBwcm90ZWN0ZWQgX2FkZFJvdzogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElHWF9HUklEX0JBU0UpIHB1YmxpYyBncmlkOiBHcmlkVHlwZSxcbiAgICAgICAgcHVibGljIHNlbGVjdGlvblNlcnZpY2U6IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5yb3dTZWxlY3Rpb24gPT09ICdub25lJyB8fCB0aGlzLmRlbGV0ZWQgfHwgIXRoaXMuZ3JpZC5zZWxlY3RSb3dPbkNsaWNrKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIHRoaXMuZ3JpZC5pc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdE11bHRpcGxlUm93cyh0aGlzLmtleSwgdGhpcy5kYXRhLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgICAgICBjb25zdCBjbGVhclNlbGVjdGlvbiA9ICEoK2V2ZW50LmN0cmxLZXkgXiArZXZlbnQubWV0YUtleSk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmICFjbGVhclNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmRlc2VsZWN0Um93KHRoaXMua2V5LCBldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0Um93QnlJZCh0aGlzLmtleSwgY2xlYXJTZWxlY3Rpb24sIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBwdWJsaWMgc2hvd0FjdGlvblN0cmlwKCkge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmFjdGlvblN0cmlwKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQuYWN0aW9uU3RyaXAuc2hvdyh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBwdWJsaWMgaGlkZUFjdGlvblN0cmlwKCkge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmFjdGlvblN0cmlwICYmIHRoaXMuZ3JpZC5hY3Rpb25TdHJpcC5oaWRlT25Sb3dMZWF2ZSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkLmFjdGlvblN0cmlwLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICAvLyBJZiB0aGUgdGVtcGxhdGUgb2YgdGhlIHJvdyBjaGFuZ2VzLCB0aGUgZm9yT2YgaW4gaXQgaXMgcmVjcmVhdGVkIGFuZCBpcyBub3QgZGV0ZWN0ZWQgYnkgdGhlIGdyaWQgYW5kIHJvd3MgY2FuJ3QgYmUgc2Nyb2xsZWQuXG4gICAgICAgIHRoaXMuX3ZpcnREaXJSb3cuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuZ3JpZC5yZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG9uUm93U2VsZWN0b3JDbGljayhldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIHRoaXMuZ3JpZC5pc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdE11bHRpcGxlUm93cyh0aGlzLmtleSwgdGhpcy5kYXRhLCBldmVudCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdFJvdyh0aGlzLmtleSwgZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJvd0J5SWQodGhpcy5rZXksIGZhbHNlLCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBzcGVjaWZpZWQgcm93IG9iamVjdCBhbmQgdGhlIGRhdGEgc291cmNlIHJlY29yZCB3aXRoIHRoZSBwYXNzZWQgdmFsdWUuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gdXBkYXRlIHRoZSBzZWNvbmQgc2VsZWN0ZWQgcm93J3MgdmFsdWVcbiAgICAgKiBsZXQgbmV3VmFsdWUgPSBcIkFwcGxlXCI7XG4gICAgICogdGhpcy5ncmlkLnNlbGVjdGVkUm93c1sxXS51cGRhdGUobmV3VmFsdWUpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBjcnVkU2VydmljZSA9IHRoaXMuZ3JpZC5jcnVkU2VydmljZTtcbiAgICAgICAgaWYgKGNydWRTZXJ2aWNlLmNlbGxJbkVkaXRNb2RlICYmIGNydWRTZXJ2aWNlLmNlbGwuaWQua2V5ID09PSB0aGlzLmtleSkge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnRyYW5zYWN0aW9ucy5lbmRQZW5kaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3cgPSBuZXcgSWd4RWRpdFJvdyh0aGlzLmtleSwgdGhpcy5pbmRleCwgdGhpcy5kYXRhLCB0aGlzLmdyaWQpO1xuICAgICAgICB0aGlzLmdyaWQuZ3JpZEFQSS51cGRhdGVfcm93KHJvdywgdmFsdWUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgcm93IGZyb20gdGhlIGdyaWQncyBkYXRhIHNvdXJjZS5cbiAgICAgKiBUaGlzIG1ldGhvZCBlbWl0cyBgcm93RGVsZXRlZGAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gZGVsZXRlIHRoZSB0aGlyZCBzZWxlY3RlZCByb3cgZnJvbSB0aGUgZ3JpZFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMl0uZGVsZXRlKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGRlbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5ncmlkLmRlbGV0ZVJvd0J5SWQodGhpcy5rZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0NlbGxBY3RpdmUodmlzaWJsZUNvbHVtbkluZGV4KSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gbm9kZSA/IG5vZGUucm93ID09PSB0aGlzLmluZGV4ICYmIG5vZGUuY29sdW1uID09PSB2aXNpYmxlQ29sdW1uSW5kZXggOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQaW5zIHRoZSBzcGVjaWZpZWQgcm93LlxuICAgICAqIFRoaXMgbWV0aG9kIGVtaXRzIGByb3dQaW5uaW5nYFxcYHJvd1Bpbm5lZGAgZXZlbnQuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogLy8gcGluIHRoZSBzZWxlY3RlZCByb3cgZnJvbSB0aGUgZ3JpZFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0ucGluKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHBpbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5waW5Sb3codGhpcy5rZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucGlucyB0aGUgc3BlY2lmaWVkIHJvdy5cbiAgICAgKiBUaGlzIG1ldGhvZCBlbWl0cyBgcm93UGlubmluZ2BcXGByb3dQaW5uZWRgIGV2ZW50LlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIC8vIHVucGluIHRoZSBzZWxlY3RlZCByb3cgZnJvbSB0aGUgZ3JpZFxuICAgICAqIHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0udW5waW4oKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5waW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQudW5waW5Sb3codGhpcy5rZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJvd0NoZWNrYm94QXJpYUxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnByaW1hcnlLZXkgP1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA/ICdEZXNlbGVjdCByb3cgd2l0aCBrZXkgJyArIHRoaXMua2V5IDogJ1NlbGVjdCByb3cgd2l0aCBrZXkgJyArIHRoaXMua2V5IDpcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPyAnRGVzZWxlY3Qgcm93JyA6ICdTZWxlY3Qgcm93JztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzaG91bGREaXNwbGF5UGlubmVkQ2hpcCh2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5waW5uZWQgJiYgdGhpcy5kaXNhYmxlZCAmJiB2aXNpYmxlQ29sdW1uSW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Bhd25zIHRoZSBhZGQgcm93IFVJIGZvciB0aGUgc3BlY2lmaWMgcm93LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3Qgcm93ID0gdGhpcy5ncmlkMS5nZXRSb3dCeUluZGV4KDEpO1xuICAgICAqIHJvdy5iZWdpbkFkZFJvdygpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBiZWdpbkFkZFJvdygpIHtcbiAgICAgICAgdGhpcy5ncmlkLmNydWRTZXJ2aWNlLmVudGVyQWRkUm93TW9kZSh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHRyaWdnZXJBZGRBbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckFkZEFuaW1hdGlvbkNsYXNzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGFuaW1hdGlvbkVuZEhhbmRsZXIoKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckFkZEFuaW1hdGlvbkNsYXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWRkQW5pbWF0aW9uRW5kLmVtaXQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzb2x2ZURyYWdJbmRpY2F0b3JDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHREcmFnSW5kaWNhdG9yQ3NzQ2xhc3MgPSAnaWd4LWdyaWRfX2RyYWctaW5kaWNhdG9yJztcbiAgICAgICAgY29uc3QgZHJhZ0luZGljYXRvck9mZiA9IHRoaXMuZ3JpZC5yb3dEcmFnZ2luZyAmJiAhdGhpcy5kcmFnZ2luZyA/ICdpZ3gtZ3JpZF9fZHJhZy1pbmRpY2F0b3ItLW9mZicgOiAnJztcbiAgICAgICAgcmV0dXJuIGAke2RlZmF1bHREcmFnSW5kaWNhdG9yQ3NzQ2xhc3N9ICR7ZHJhZ0luZGljYXRvck9mZn1gO1xuICAgIH1cbn1cbiJdfQ==
@@ -130,10 +130,10 @@ export class IgxGridDragSelectDirective {
130
130
  this._sub.unsubscribe();
131
131
  }
132
132
  }
133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridDragSelectDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
134
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxGridDragSelectDirective, isStandalone: true, selector: "[igxGridDragSelect]", inputs: { activeDrag: ["igxGridDragSelect", "activeDrag"] }, outputs: { dragStop: "dragStop", dragScroll: "dragScroll" }, ngImport: i0 }); }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridDragSelectDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
134
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxGridDragSelectDirective, isStandalone: true, selector: "[igxGridDragSelect]", inputs: { activeDrag: ["igxGridDragSelect", "activeDrag"] }, outputs: { dragStop: "dragStop", dragScroll: "dragScroll" }, ngImport: i0 }); }
135
135
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGridDragSelectDirective, decorators: [{
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGridDragSelectDirective, decorators: [{
137
137
  type: Directive,
138
138
  args: [{
139
139
  selector: '[igxGridDragSelect]',
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
147
147
  type: Input,
148
148
  args: ['igxGridDragSelect']
149
149
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBeUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBNEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRW5ELElBQUssbUJBVUo7QUFWRCxXQUFLLG1CQUFtQjtJQUNwQiw2REFBSSxDQUFBO0lBQ0osNkRBQUksQ0FBQTtJQUNKLDJEQUFHLENBQUE7SUFDSCwrREFBSyxDQUFBO0lBQ0wsaUVBQU0sQ0FBQTtJQUNOLG1FQUFPLENBQUE7SUFDUCxxRUFBUSxDQUFBO0lBQ1IseUVBQVUsQ0FBQTtJQUNWLDJFQUFXLENBQUE7QUFDZixDQUFDLEVBVkksbUJBQW1CLEtBQW5CLG1CQUFtQixRQVV2QjtBQUVEOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBUW5DLElBQ1csVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsVUFBVSxDQUFDLEdBQVk7UUFDOUIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQVNELFlBQW9CLEdBQTRCLEVBQVUsSUFBWTtRQUFsRCxRQUFHLEdBQUgsR0FBRyxDQUF5QjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUE1Qi9ELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBR3ZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQWtCNUQsU0FBSSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDMUIsa0JBQWEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUE4QnpDLHVCQUFrQixHQUFHLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNsQixPQUFPO2FBQ1Y7WUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDckIsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTNELElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2xDLE9BQU87YUFDVjtZQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQyxDQUFDO1FBRVEsc0JBQWlCLEdBQUcsR0FBRyxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNsQixPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7UUFDbEQsQ0FBQyxDQUFDO1FBakRFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FDdkQsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDcEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDaEMsQ0FBQztJQUNOLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQStCUyxrQkFBa0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUM3QyxJQUFJLFNBQThCLENBQUM7UUFDbkMsSUFBSSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQztRQUVuQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUVwQyxNQUFNLGFBQWEsR0FBRyxPQUFPLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLE9BQU8sSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQy9DLE1BQU0sZUFBZSxHQUFHLE9BQU8sSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFFeEQsSUFBSSxZQUFZLElBQUksYUFBYSxFQUFFO1lBQy9CLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7WUFDeEMsS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2pDO2FBQU0sSUFBSSxZQUFZLElBQUksY0FBYyxFQUFFO1lBQ3ZDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7WUFDekMsS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNoQzthQUFNLElBQUksZUFBZSxJQUFJLGFBQWEsRUFBRTtZQUN6QyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1lBQzNDLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLGVBQWUsSUFBSSxjQUFjLEVBQUU7WUFDMUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztZQUM1QyxLQUFLLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUksWUFBWSxFQUFFO1lBQ3JCLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUM7WUFDcEMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNsQjthQUFNLElBQUksZUFBZSxFQUFFO1lBQ3hCLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7WUFDdkMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDakI7YUFBTSxJQUFJLGFBQWEsRUFBRTtZQUN0QixTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbkI7YUFBTSxJQUFJLGNBQWMsRUFBRTtZQUN2QixTQUFTLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1lBQ3RDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO2FBQU07WUFDSCxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUVoQyxDQUFDO0lBRVMsV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzttSEFySVEsMEJBQTBCO3VHQUExQiwwQkFBMEI7O2dHQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3NIQUlVLFFBQVE7c0JBRGQsTUFBTTtnQkFJQSxVQUFVO3NCQURoQixNQUFNO2dCQUlJLFVBQVU7c0JBRHBCLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgTmdab25lLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIFN1YmplY3QsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZW51bSBEcmFnU2Nyb2xsRGlyZWN0aW9uIHtcbiAgICBOT05FLFxuICAgIExFRlQsXG4gICAgVE9QLFxuICAgIFJJR0hULFxuICAgIEJPVFRPTSxcbiAgICBUT1BMRUZULFxuICAgIFRPUFJJR0hULFxuICAgIEJPVFRPTUxFRlQsXG4gICAgQk9UVE9NUklHSFRcbn1cblxuLyoqXG4gKiBBbiBpbnRlcm5hbCBkaXJlY3RpdmUgZW5jYXBzdWxhdGluZyB0aGUgZHJhZyBzY3JvbGwgYmVoYXZpb3IgaW4gdGhlIGdyaWQuXG4gKlxuICogQGhpZGRlbiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4R3JpZERyYWdTZWxlY3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWREcmFnU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyYWdTdG9wID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyYWdTY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9PigpO1xuXG4gICAgQElucHV0KCdpZ3hHcmlkRHJhZ1NlbGVjdCcpXG4gICAgcHVibGljIGdldCBhY3RpdmVEcmFnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRHJhZztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjdGl2ZURyYWcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWwgIT09IHRoaXMuX2FjdGl2ZURyYWcpIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZURyYWcgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbmQkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHByb3RlY3RlZCBsYXN0RGlyZWN0aW9uID0gRHJhZ1Njcm9sbERpcmVjdGlvbi5OT05FO1xuICAgIHByb3RlY3RlZCBfaW50ZXJ2YWwkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgcHJvdGVjdGVkIF9zdWI6IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgX2FjdGl2ZURyYWc6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgICAgIHRoaXMuX2ludGVydmFsJCA9IGludGVydmFsKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZW5kJCksXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5hY3RpdmVEcmFnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyb3ZlcicsIHRoaXMuc3RhcnREcmFnU2VsZWN0aW9uKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCB0aGlzLnN0b3BEcmFnU2VsZWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJvdmVyJywgdGhpcy5zdGFydERyYWdTZWxlY3Rpb24pO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsIHRoaXMuc3RvcERyYWdTZWxlY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmVuZCQuY29tcGxldGUoKTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBzdGFydERyYWdTZWxlY3Rpb24gPSAoZXY6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlRHJhZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeCA9IGV2LmNsaWVudFg7XG4gICAgICAgIGNvbnN0IHkgPSBldi5jbGllbnRZO1xuICAgICAgICBjb25zdCB7IGRpcmVjdGlvbiwgZGVsdGEgfSA9IHRoaXMuX21lYXN1cmVEaW1lbnNpb25zKHgsIHkpO1xuXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09IHRoaXMubGFzdERpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9zdWIgPSB0aGlzLl9pbnRlcnZhbCQuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHJhZ1Njcm9sbC5lbWl0KGRlbHRhKSk7XG4gICAgICAgIHRoaXMubGFzdERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHN0b3BEcmFnU2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlRHJhZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kcmFnU3RvcC5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmxhc3REaXJlY3Rpb24gPSBEcmFnU2Nyb2xsRGlyZWN0aW9uLk5PTkU7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBfbWVhc3VyZURpbWVuc2lvbnMoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB7IGRpcmVjdGlvbjogRHJhZ1Njcm9sbERpcmVjdGlvbjsgZGVsdGE6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9IH0ge1xuICAgICAgICBsZXQgZGlyZWN0aW9uOiBEcmFnU2Nyb2xsRGlyZWN0aW9uO1xuICAgICAgICBsZXQgZGVsdGEgPSB7IGxlZnQ6IDAsIHRvcDogMCB9O1xuICAgICAgICBjb25zdCB7IGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBSQVRJTyA9IDAuMTU7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IE1hdGgudHJ1bmMoeCAtIGxlZnQpO1xuICAgICAgICBjb25zdCBvZmZzZXRZID0gTWF0aC50cnVuYyh5IC0gdG9wKTtcblxuICAgICAgICBjb25zdCBsZWZ0RGlyZWN0aW9uID0gb2Zmc2V0WCA8PSB3aWR0aCAqIFJBVElPO1xuICAgICAgICBjb25zdCByaWdodERpcmVjdGlvbiA9IG9mZnNldFggPj0gd2lkdGggKiAoMSAtIFJBVElPKTtcbiAgICAgICAgY29uc3QgdG9wRGlyZWN0aW9uID0gb2Zmc2V0WSA8PSBoZWlnaHQgKiBSQVRJTztcbiAgICAgICAgY29uc3QgYm90dG9tRGlyZWN0aW9uID0gb2Zmc2V0WSA+PSBoZWlnaHQgKiAoMSAtIFJBVElPKTtcblxuICAgICAgICBpZiAodG9wRGlyZWN0aW9uICYmIGxlZnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uVE9QTEVGVDtcbiAgICAgICAgICAgIGRlbHRhID0geyBsZWZ0OiAtMSwgdG9wOiAtMSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvcERpcmVjdGlvbiAmJiByaWdodERpcmVjdGlvbikge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gRHJhZ1Njcm9sbERpcmVjdGlvbi5UT1BSSUdIVDtcbiAgICAgICAgICAgIGRlbHRhID0geyBsZWZ0OiAxLCB0b3A6IC0xIH07XG4gICAgICAgIH0gZWxzZSBpZiAoYm90dG9tRGlyZWN0aW9uICYmIGxlZnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uQk9UVE9NTEVGVDtcbiAgICAgICAgICAgIGRlbHRhID0geyBsZWZ0OiAtMSwgdG9wOiAxIH07XG4gICAgICAgIH0gZWxzZSBpZiAoYm90dG9tRGlyZWN0aW9uICYmIHJpZ2h0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSBEcmFnU2Nyb2xsRGlyZWN0aW9uLkJPVFRPTVJJR0hUO1xuICAgICAgICAgICAgZGVsdGEgPSB7IHRvcDogMSwgbGVmdDogMSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvcERpcmVjdGlvbikge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gRHJhZ1Njcm9sbERpcmVjdGlvbi5UT1A7XG4gICAgICAgICAgICBkZWx0YS50b3AgPSAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChib3R0b21EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uQk9UVE9NO1xuICAgICAgICAgICAgZGVsdGEudG9wID0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChsZWZ0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSBEcmFnU2Nyb2xsRGlyZWN0aW9uLkxFRlQ7XG4gICAgICAgICAgICBkZWx0YS5sZWZ0ID0gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAocmlnaHREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uUklHSFQ7XG4gICAgICAgICAgICBkZWx0YS5sZWZ0ID0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uTk9ORTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGRpcmVjdGlvbiwgZGVsdGEgfTtcblxuICAgIH1cblxuICAgIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N1Yikge1xuICAgICAgICAgICAgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBeUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLFFBQVEsRUFBNEIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRW5ELElBQUssbUJBVUo7QUFWRCxXQUFLLG1CQUFtQjtJQUNwQiw2REFBSSxDQUFBO0lBQ0osNkRBQUksQ0FBQTtJQUNKLDJEQUFHLENBQUE7SUFDSCwrREFBSyxDQUFBO0lBQ0wsaUVBQU0sQ0FBQTtJQUNOLG1FQUFPLENBQUE7SUFDUCxxRUFBUSxDQUFBO0lBQ1IseUVBQVUsQ0FBQTtJQUNWLDJFQUFXLENBQUE7QUFDZixDQUFDLEVBVkksbUJBQW1CLEtBQW5CLG1CQUFtQixRQVV2QjtBQUVEOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBUW5DLElBQ1csVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsVUFBVSxDQUFDLEdBQVk7UUFDOUIsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7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USxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CO3NIQUlVLFFBQVE7c0JBRGQsTUFBTTtnQkFJQSxVQUFVO3NCQURoQixNQUFNO2dCQUlJLFVBQVU7c0JBRHBCLEtBQUs7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgTmdab25lLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGludGVydmFsLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIFN1YmplY3QsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZW51bSBEcmFnU2Nyb2xsRGlyZWN0aW9uIHtcbiAgICBOT05FLFxuICAgIExFRlQsXG4gICAgVE9QLFxuICAgIFJJR0hULFxuICAgIEJPVFRPTSxcbiAgICBUT1BMRUZULFxuICAgIFRPUFJJR0hULFxuICAgIEJPVFRPTUxFRlQsXG4gICAgQk9UVE9NUklHSFRcbn1cblxuLyoqXG4gKiBBbiBpbnRlcm5hbCBkaXJlY3RpdmUgZW5jYXBzdWxhdGluZyB0aGUgZHJhZyBzY3JvbGwgYmVoYXZpb3IgaW4gdGhlIGdyaWQuXG4gKlxuICogQGhpZGRlbiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4R3JpZERyYWdTZWxlY3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWREcmFnU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyYWdTdG9wID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRyYWdTY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9PigpO1xuXG4gICAgQElucHV0KCdpZ3hHcmlkRHJhZ1NlbGVjdCcpXG4gICAgcHVibGljIGdldCBhY3RpdmVEcmFnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRHJhZztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjdGl2ZURyYWcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWwgIT09IHRoaXMuX2FjdGl2ZURyYWcpIHtcbiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZURyYWcgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbmQkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHByb3RlY3RlZCBsYXN0RGlyZWN0aW9uID0gRHJhZ1Njcm9sbERpcmVjdGlvbi5OT05FO1xuICAgIHByb3RlY3RlZCBfaW50ZXJ2YWwkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgcHJvdGVjdGVkIF9zdWI6IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgX2FjdGl2ZURyYWc6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgICAgIHRoaXMuX2ludGVydmFsJCA9IGludGVydmFsKDAsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKS5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZW5kJCksXG4gICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5hY3RpdmVEcmFnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyb3ZlcicsIHRoaXMuc3RhcnREcmFnU2VsZWN0aW9uKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCB0aGlzLnN0b3BEcmFnU2VsZWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJvdmVyJywgdGhpcy5zdGFydERyYWdTZWxlY3Rpb24pO1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJsZWF2ZScsIHRoaXMuc3RvcERyYWdTZWxlY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmVuZCQuY29tcGxldGUoKTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBzdGFydERyYWdTZWxlY3Rpb24gPSAoZXY6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlRHJhZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeCA9IGV2LmNsaWVudFg7XG4gICAgICAgIGNvbnN0IHkgPSBldi5jbGllbnRZO1xuICAgICAgICBjb25zdCB7IGRpcmVjdGlvbiwgZGVsdGEgfSA9IHRoaXMuX21lYXN1cmVEaW1lbnNpb25zKHgsIHkpO1xuXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09IHRoaXMubGFzdERpcmVjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9zdWIgPSB0aGlzLl9pbnRlcnZhbCQuc3Vic2NyaWJlKCgpID0+IHRoaXMuZHJhZ1Njcm9sbC5lbWl0KGRlbHRhKSk7XG4gICAgICAgIHRoaXMubGFzdERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIHN0b3BEcmFnU2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZlRHJhZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kcmFnU3RvcC5lbWl0KGZhbHNlKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmxhc3REaXJlY3Rpb24gPSBEcmFnU2Nyb2xsRGlyZWN0aW9uLk5PTkU7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBfbWVhc3VyZURpbWVuc2lvbnMoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB7IGRpcmVjdGlvbjogRHJhZ1Njcm9sbERpcmVjdGlvbjsgZGVsdGE6IHsgbGVmdDogbnVtYmVyOyB0b3A6IG51bWJlciB9IH0ge1xuICAgICAgICBsZXQgZGlyZWN0aW9uOiBEcmFnU2Nyb2xsRGlyZWN0aW9uO1xuICAgICAgICBsZXQgZGVsdGEgPSB7IGxlZnQ6IDAsIHRvcDogMCB9O1xuICAgICAgICBjb25zdCB7IGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBSQVRJTyA9IDAuMTU7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IE1hdGgudHJ1bmMoeCAtIGxlZnQpO1xuICAgICAgICBjb25zdCBvZmZzZXRZID0gTWF0aC50cnVuYyh5IC0gdG9wKTtcblxuICAgICAgICBjb25zdCBsZWZ0RGlyZWN0aW9uID0gb2Zmc2V0WCA8PSB3aWR0aCAqIFJBVElPO1xuICAgICAgICBjb25zdCByaWdodERpcmVjdGlvbiA9IG9mZnNldFggPj0gd2lkdGggKiAoMSAtIFJBVElPKTtcbiAgICAgICAgY29uc3QgdG9wRGlyZWN0aW9uID0gb2Zmc2V0WSA8PSBoZWlnaHQgKiBSQVRJTztcbiAgICAgICAgY29uc3QgYm90dG9tRGlyZWN0aW9uID0gb2Zmc2V0WSA+PSBoZWlnaHQgKiAoMSAtIFJBVElPKTtcblxuICAgICAgICBpZiAodG9wRGlyZWN0aW9uICYmIGxlZnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uVE9QTEVGVDtcbiAgICAgICAgICAgIGRlbHRhID0geyBsZWZ0OiAtMSwgdG9wOiAtMSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvcERpcmVjdGlvbiAmJiByaWdodERpcmVjdGlvbikge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gRHJhZ1Njcm9sbERpcmVjdGlvbi5UT1BSSUdIVDtcbiAgICAgICAgICAgIGRlbHRhID0geyBsZWZ0OiAxLCB0b3A6IC0xIH07XG4gICAgICAgIH0gZWxzZSBpZiAoYm90dG9tRGlyZWN0aW9uICYmIGxlZnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uQk9UVE9NTEVGVDtcbiAgICAgICAgICAgIGRlbHRhID0geyBsZWZ0OiAtMSwgdG9wOiAxIH07XG4gICAgICAgIH0gZWxzZSBpZiAoYm90dG9tRGlyZWN0aW9uICYmIHJpZ2h0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSBEcmFnU2Nyb2xsRGlyZWN0aW9uLkJPVFRPTVJJR0hUO1xuICAgICAgICAgICAgZGVsdGEgPSB7IHRvcDogMSwgbGVmdDogMSB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRvcERpcmVjdGlvbikge1xuICAgICAgICAgICAgZGlyZWN0aW9uID0gRHJhZ1Njcm9sbERpcmVjdGlvbi5UT1A7XG4gICAgICAgICAgICBkZWx0YS50b3AgPSAtMTtcbiAgICAgICAgfSBlbHNlIGlmIChib3R0b21EaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uQk9UVE9NO1xuICAgICAgICAgICAgZGVsdGEudG9wID0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChsZWZ0RGlyZWN0aW9uKSB7XG4gICAgICAgICAgICBkaXJlY3Rpb24gPSBEcmFnU2Nyb2xsRGlyZWN0aW9uLkxFRlQ7XG4gICAgICAgICAgICBkZWx0YS5sZWZ0ID0gLTE7XG4gICAgICAgIH0gZWxzZSBpZiAocmlnaHREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uUklHSFQ7XG4gICAgICAgICAgICBkZWx0YS5sZWZ0ID0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRpcmVjdGlvbiA9IERyYWdTY3JvbGxEaXJlY3Rpb24uTk9ORTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGRpcmVjdGlvbiwgZGVsdGEgfTtcblxuICAgIH1cblxuICAgIHByb3RlY3RlZCB1bnN1YnNjcmliZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3N1Yikge1xuICAgICAgICAgICAgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -11,10 +11,10 @@ export class IgxRowSelectorDirective {
11
11
  static ngTemplateContextGuard(_directive, context) {
12
12
  return true;
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxRowSelectorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxRowSelectorDirective, isStandalone: true, selector: "[igxRowSelector]", ngImport: i0 }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxRowSelectorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxRowSelectorDirective, isStandalone: true, selector: "[igxRowSelector]", ngImport: i0 }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxRowSelectorDirective, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxRowSelectorDirective, decorators: [{
18
18
  type: Directive,
19
19
  args: [{
20
20
  selector: '[igxRowSelector]',
@@ -32,10 +32,10 @@ export class IgxGroupByRowSelectorDirective {
32
32
  static ngTemplateContextGuard(_directive, context) {
33
33
  return true;
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGroupByRowSelectorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxGroupByRowSelectorDirective, isStandalone: true, selector: "[igxGroupByRowSelector]", ngImport: i0 }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGroupByRowSelectorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxGroupByRowSelectorDirective, isStandalone: true, selector: "[igxGroupByRowSelector]", ngImport: i0 }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxGroupByRowSelectorDirective, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxGroupByRowSelectorDirective, decorators: [{
39
39
  type: Directive,
40
40
  args: [{
41
41
  selector: '[igxGroupByRowSelector]',
@@ -53,14 +53,14 @@ export class IgxHeadSelectorDirective {
53
53
  static ngTemplateContextGuard(_directive, context) {
54
54
  return true;
55
55
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxHeadSelectorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
57
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: IgxHeadSelectorDirective, isStandalone: true, selector: "[igxHeadSelector]", ngImport: i0 }); }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxHeadSelectorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
57
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: IgxHeadSelectorDirective, isStandalone: true, selector: "[igxHeadSelector]", ngImport: i0 }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: IgxHeadSelectorDirective, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: IgxHeadSelectorDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
62
62
  selector: '[igxHeadSelector]',
63
63
  standalone: true
64
64
  }]
65
65
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9zZWxlY3Rpb24vcm93LXNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUd2RDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQW1CLFdBQXVEO1FBQXZELGdCQUFXLEdBQVgsV0FBVyxDQUE0QztJQUFJLENBQUM7SUFFeEUsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQW1DLEVBQ3BFLE9BQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQzttSEFOUSx1QkFBdUI7dUdBQXZCLHVCQUF1Qjs7Z0dBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBVUQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QyxZQUFtQixXQUE4RDtRQUE5RCxnQkFBVyxHQUFYLFdBQVcsQ0FBbUQ7SUFBSSxDQUFDO0lBRS9FLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUEwQyxFQUMzRSxPQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7bUhBTlEsOEJBQThCO3VHQUE5Qiw4QkFBOEI7O2dHQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQVVEOzs7R0FHRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsWUFBbUIsV0FBd0Q7UUFBeEQsZ0JBQVcsR0FBWCxXQUFXLENBQTZDO0lBQUksQ0FBQztJQUV6RSxNQUFNLENBQUMsc0JBQXNCLENBQUMsVUFBb0MsRUFDckUsT0FBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO21IQU5RLHdCQUF3Qjt1R0FBeEIsd0JBQXdCOztnR0FBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dCwgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0LCBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJvd1NlbGVjdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hSb3dTZWxlY3RvckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD4pIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXJlY3RpdmU6IElneFJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7IFxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4R3JvdXBCeVJvd1NlbGVjdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcm91cEJ5Um93U2VsZWN0b3JEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PikgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcmVjdGl2ZTogSWd4R3JvdXBCeVJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQgeyBcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEhlYWRTZWxlY3Rvcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4SGVhZFNlbGVjdG9yRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dD4pIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXJlY3RpdmU6IElneEhlYWRTZWxlY3RvckRpcmVjdGl2ZSxcbiAgICAgICAgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHsgXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9zZWxlY3Rpb24vcm93LXNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUd2RDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQW1CLFdBQXVEO1FBQXZELGdCQUFXLEdBQVgsV0FBVyxDQUE0QztJQUFJLENBQUM7SUFFeEUsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQW1DLEVBQ3BFLE9BQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQzs4R0FOUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O0FBVUQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QyxZQUFtQixXQUE4RDtRQUE5RCxnQkFBVyxHQUFYLFdBQVcsQ0FBbUQ7SUFBSSxDQUFDO0lBRS9FLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUEwQyxFQUMzRSxPQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7OEdBTlEsOEJBQThCO2tHQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7aUJBQ25COztBQVVEOzs7R0FHRztBQUtILE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsWUFBbUIsV0FBd0Q7UUFBeEQsZ0JBQVcsR0FBWCxXQUFXLENBQTZDO0lBQUksQ0FBQztJQUV6RSxNQUFNLENBQUMsc0JBQXNCLENBQUMsVUFBb0MsRUFDckUsT0FBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDOzhHQU5RLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dCwgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0LCBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJvd1NlbGVjdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hSb3dTZWxlY3RvckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dD4pIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXJlY3RpdmU6IElneFJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hSb3dTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7IFxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4R3JvdXBCeVJvd1NlbGVjdG9yXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcm91cEJ5Um93U2VsZWN0b3JEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PikgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcmVjdGl2ZTogSWd4R3JvdXBCeVJvd1NlbGVjdG9yRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQgeyBcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEhlYWRTZWxlY3Rvcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4SGVhZFNlbGVjdG9yRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dD4pIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXJlY3RpdmU6IElneEhlYWRTZWxlY3RvckRpcmVjdGl2ZSxcbiAgICAgICAgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgSWd4SGVhZFNlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHsgXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxufVxuIl19