ngx-tethys 17.0.1 → 17.0.2

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 (381) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/action/action.component.d.ts +3 -0
  3. package/affix/affix.component.d.ts +2 -0
  4. package/alert/alert.component.d.ts +1 -0
  5. package/anchor/anchor.component.d.ts +3 -0
  6. package/arrow-switcher/arrow-switcher.component.d.ts +1 -0
  7. package/autocomplete/autocomplete.component.d.ts +2 -3
  8. package/autocomplete/autocomplete.trigger.directive.d.ts +3 -0
  9. package/avatar/avatar.component.d.ts +4 -0
  10. package/back-top/back-top.component.d.ts +1 -0
  11. package/badge/badge.component.d.ts +5 -0
  12. package/button/button-icon.component.d.ts +2 -0
  13. package/button/button.component.d.ts +2 -0
  14. package/card/card.component.d.ts +3 -0
  15. package/card/content.component.d.ts +2 -1
  16. package/carousel/carousel.component.d.ts +5 -0
  17. package/cascader/cascader-li.component.d.ts +9 -2
  18. package/cascader/cascader-search-option.component.d.ts +7 -2
  19. package/cascader/cascader.component.d.ts +23 -2
  20. package/cascader/styles/cascader.scss +1 -0
  21. package/cascader/types.d.ts +1 -0
  22. package/checkbox/checkbox.component.d.ts +1 -0
  23. package/collapse/collapse-item.component.d.ts +2 -0
  24. package/collapse/collapse.component.d.ts +1 -0
  25. package/color-picker/color-picker-panel.component.d.ts +1 -0
  26. package/color-picker/color-picker.component.d.ts +7 -1
  27. package/copy/copy.directive.d.ts +1 -0
  28. package/core/behaviors/decorators.d.ts +6 -0
  29. package/date-picker/abstract-picker.component.d.ts +8 -1
  30. package/date-picker/abstract-picker.directive.d.ts +4 -0
  31. package/date-picker/base-picker.component.d.ts +2 -0
  32. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -0
  33. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -0
  34. package/date-picker/picker.component.d.ts +1 -0
  35. package/date-range/date-range.component.d.ts +2 -0
  36. package/dialog/body/dialog-body.component.d.ts +2 -1
  37. package/dialog/footer/dialog-footer.component.d.ts +1 -0
  38. package/dialog/header/dialog-header.component.d.ts +1 -0
  39. package/divider/divider.component.d.ts +2 -0
  40. package/drag-drop/drag-handle.directive.d.ts +1 -0
  41. package/drag-drop/drag.directive.d.ts +1 -0
  42. package/drag-drop/drop-container.directive.d.ts +1 -0
  43. package/dropdown/dropdown-menu-item.directive.d.ts +3 -1
  44. package/dropdown/dropdown-menu.component.d.ts +1 -0
  45. package/dropdown/dropdown.directive.d.ts +3 -0
  46. package/empty/empty.component.d.ts +1 -0
  47. package/esm2022/action/action.component.mjs +9 -22
  48. package/esm2022/affix/affix.component.mjs +8 -15
  49. package/esm2022/alert/alert.component.mjs +5 -10
  50. package/esm2022/anchor/anchor.component.mjs +10 -20
  51. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +5 -11
  52. package/esm2022/autocomplete/autocomplete.component.mjs +5 -23
  53. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +9 -20
  54. package/esm2022/avatar/avatar.component.mjs +14 -30
  55. package/esm2022/back-top/back-top.component.mjs +6 -10
  56. package/esm2022/badge/badge.component.mjs +15 -37
  57. package/esm2022/button/button-icon.component.mjs +9 -20
  58. package/esm2022/button/button.component.mjs +7 -16
  59. package/esm2022/card/card.component.mjs +6 -20
  60. package/esm2022/card/content.component.mjs +5 -6
  61. package/esm2022/carousel/carousel.component.mjs +13 -30
  62. package/esm2022/cascader/cascader-li.component.mjs +16 -31
  63. package/esm2022/cascader/cascader-search-option.component.mjs +12 -21
  64. package/esm2022/cascader/cascader.component.mjs +32 -52
  65. package/esm2022/cascader/types.mjs +1 -1
  66. package/esm2022/checkbox/checkbox.component.mjs +7 -13
  67. package/esm2022/collapse/collapse-item.component.mjs +8 -15
  68. package/esm2022/collapse/collapse.component.mjs +5 -10
  69. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -10
  70. package/esm2022/color-picker/color-picker.component.mjs +17 -37
  71. package/esm2022/copy/copy.directive.mjs +5 -10
  72. package/esm2022/core/behaviors/decorators.mjs +7 -44
  73. package/esm2022/date-picker/abstract-picker.component.mjs +21 -45
  74. package/esm2022/date-picker/abstract-picker.directive.mjs +11 -27
  75. package/esm2022/date-picker/base-picker.component.mjs +8 -15
  76. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -10
  77. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +7 -6
  78. package/esm2022/date-picker/picker.component.mjs +6 -10
  79. package/esm2022/date-range/date-range.component.mjs +7 -15
  80. package/esm2022/dialog/body/dialog-body.component.mjs +6 -6
  81. package/esm2022/dialog/footer/dialog-footer.component.mjs +6 -13
  82. package/esm2022/dialog/header/dialog-header.component.mjs +6 -10
  83. package/esm2022/divider/divider.component.mjs +7 -15
  84. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -13
  85. package/esm2022/drag-drop/drag.directive.mjs +5 -11
  86. package/esm2022/drag-drop/drop-container.directive.mjs +5 -10
  87. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +9 -19
  88. package/esm2022/dropdown/dropdown-menu.component.mjs +6 -9
  89. package/esm2022/dropdown/dropdown.directive.mjs +8 -22
  90. package/esm2022/empty/empty.component.mjs +7 -13
  91. package/esm2022/flexible-text/flexible-text.component.mjs +4 -11
  92. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -10
  93. package/esm2022/form/form-group-label.directive.mjs +6 -6
  94. package/esm2022/form/form-group.component.mjs +13 -17
  95. package/esm2022/icon/icon.component.mjs +6 -20
  96. package/esm2022/image/image.directive.mjs +7 -15
  97. package/esm2022/input/input-search.component.mjs +6 -11
  98. package/esm2022/input/input.component.mjs +7 -15
  99. package/esm2022/input-number/input-number.component.mjs +12 -25
  100. package/esm2022/layout/header.component.mjs +9 -19
  101. package/esm2022/layout/sidebar-header.component.mjs +5 -10
  102. package/esm2022/layout/sidebar.component.mjs +22 -45
  103. package/esm2022/list/list.component.mjs +5 -11
  104. package/esm2022/list/selection/selection-list.mjs +13 -10
  105. package/esm2022/loading/loading.component.mjs +9 -20
  106. package/esm2022/menu/group/menu-group.component.mjs +12 -38
  107. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -10
  108. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -10
  109. package/esm2022/menu/menu.component.mjs +5 -10
  110. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +6 -6
  111. package/esm2022/nav/nav-ink-bar.directive.mjs +7 -15
  112. package/esm2022/nav/nav-item.directive.mjs +10 -20
  113. package/esm2022/nav/nav.component.mjs +12 -25
  114. package/esm2022/pagination/pagination.component.mjs +18 -68
  115. package/esm2022/popover/popover.directive.mjs +12 -33
  116. package/esm2022/progress/progress-circle.component.mjs +9 -20
  117. package/esm2022/progress/progress-strip.component.mjs +5 -11
  118. package/esm2022/progress/progress.component.mjs +11 -23
  119. package/esm2022/property/properties.component.mjs +5 -10
  120. package/esm2022/property/property-item.component.mjs +8 -15
  121. package/esm2022/property-operation/property-operation.component.mjs +16 -37
  122. package/esm2022/radio/group/radio-group.component.mjs +6 -21
  123. package/esm2022/rate/rate-item.component.mjs +5 -10
  124. package/esm2022/rate/rate.component.mjs +16 -25
  125. package/esm2022/resizable/resizable.directive.mjs +24 -55
  126. package/esm2022/resizable/resize-handle.component.mjs +6 -10
  127. package/esm2022/resizable/resize-handles.component.mjs +5 -10
  128. package/esm2022/segment/segment-item.component.mjs +5 -10
  129. package/esm2022/segment/segment.component.mjs +7 -16
  130. package/esm2022/select/custom-select/custom-select.component.mjs +30 -65
  131. package/esm2022/select/native-select/native-select.component.mjs +6 -10
  132. package/esm2022/shared/base-form-check.component.mjs +10 -20
  133. package/esm2022/shared/directives/thy-autofocus.directive.mjs +10 -15
  134. package/esm2022/shared/directives/thy-scroll.directive.mjs +6 -13
  135. package/esm2022/shared/directives/thy-show.mjs +5 -11
  136. package/esm2022/shared/option/group/option-group.component.mjs +5 -10
  137. package/esm2022/shared/option/list-option/list-option.component.mjs +6 -13
  138. package/esm2022/shared/option/option.component.mjs +5 -11
  139. package/esm2022/shared/select/select-control/select-control.component.mjs +17 -44
  140. package/esm2022/skeleton/skeleton-circle.component.mjs +6 -9
  141. package/esm2022/skeleton/skeleton-rectangle.component.mjs +6 -9
  142. package/esm2022/skeleton/skeleton.component.mjs +5 -10
  143. package/esm2022/skeleton/stylized/bullet-list.component.mjs +6 -9
  144. package/esm2022/skeleton/stylized/list.component.mjs +6 -9
  145. package/esm2022/skeleton/stylized/paragraph.component.mjs +6 -9
  146. package/esm2022/slide/slide-body/slide-body-section.component.mjs +6 -6
  147. package/esm2022/slider/slider.component.mjs +18 -35
  148. package/esm2022/space/space.component.mjs +6 -10
  149. package/esm2022/stepper/step-header.component.mjs +9 -20
  150. package/esm2022/stepper/stepper.component.mjs +7 -16
  151. package/esm2022/switch/switch.component.mjs +12 -17
  152. package/esm2022/table/table-column.component.mjs +9 -31
  153. package/esm2022/table/table-skeleton.component.mjs +8 -14
  154. package/esm2022/table/table.component.mjs +32 -83
  155. package/esm2022/tabs/tab.component.mjs +5 -10
  156. package/esm2022/tabs/tabs.component.mjs +8 -15
  157. package/esm2022/tag/tag.component.mjs +6 -10
  158. package/esm2022/time-picker/time-picker-panel.component.mjs +8 -15
  159. package/esm2022/time-picker/time-picker.component.mjs +20 -46
  160. package/esm2022/timeline/timeline.component.mjs +5 -10
  161. package/esm2022/tooltip/tooltip.directive.mjs +11 -34
  162. package/esm2022/tree/tree-node.component.mjs +17 -40
  163. package/esm2022/tree/tree.component.mjs +19 -47
  164. package/esm2022/tree-select/tree-select.component.mjs +18 -40
  165. package/esm2022/upload/file-select-base.mjs +7 -6
  166. package/esm2022/upload/file-select.component.mjs +11 -26
  167. package/esm2022/version.mjs +2 -2
  168. package/esm2022/vote/vote.component.mjs +11 -33
  169. package/esm2022/watermark/watermark.directive.mjs +6 -10
  170. package/fesm2022/ngx-tethys-action.mjs +9 -21
  171. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-affix.mjs +6 -14
  173. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-alert.mjs +4 -9
  175. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-anchor.mjs +8 -19
  177. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-arrow-switcher.mjs +4 -10
  179. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-autocomplete.mjs +14 -39
  181. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-avatar.mjs +14 -29
  183. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-back-top.mjs +5 -9
  185. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-badge.mjs +14 -36
  187. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-button.mjs +13 -30
  189. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-card.mjs +8 -23
  191. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-carousel.mjs +12 -29
  193. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-cascader.mjs +55 -95
  195. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-checkbox.mjs +5 -12
  197. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-collapse.mjs +10 -20
  199. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-color-picker.mjs +19 -42
  201. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-copy.mjs +4 -9
  203. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-core.mjs +6 -43
  205. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-date-picker.mjs +45 -93
  207. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-date-range.mjs +6 -14
  209. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-dialog.mjs +13 -21
  211. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-divider.mjs +6 -14
  213. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-drag-drop.mjs +10 -25
  215. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-dropdown.mjs +19 -42
  217. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-empty.mjs +5 -12
  219. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-flexible-text.mjs +3 -10
  221. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-form.mjs +19 -25
  223. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-icon.mjs +5 -19
  225. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-image.mjs +7 -14
  227. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-input-number.mjs +11 -24
  229. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-input.mjs +10 -21
  231. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-layout.mjs +31 -64
  233. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-list.mjs +16 -18
  235. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-loading.mjs +8 -19
  237. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-menu.mjs +20 -55
  239. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-nav.mjs +28 -55
  241. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-pagination.mjs +17 -67
  243. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-popover.mjs +11 -32
  245. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-progress.mjs +20 -45
  247. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-property-operation.mjs +14 -36
  249. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-property.mjs +10 -21
  251. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-radio.mjs +5 -19
  253. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-rate.mjs +18 -30
  255. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-resizable.mjs +29 -66
  257. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-segment.mjs +10 -21
  259. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-select.mjs +32 -70
  261. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-shared.mjs +49 -105
  263. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-skeleton.mjs +20 -38
  265. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-slide.mjs +6 -5
  267. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-slider.mjs +17 -34
  269. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-space.mjs +5 -9
  271. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-stepper.mjs +13 -31
  273. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-switch.mjs +11 -16
  275. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys-table.mjs +43 -120
  277. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  278. package/fesm2022/ngx-tethys-tabs.mjs +10 -20
  279. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  280. package/fesm2022/ngx-tethys-tag.mjs +5 -9
  281. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  282. package/fesm2022/ngx-tethys-time-picker.mjs +24 -55
  283. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  284. package/fesm2022/ngx-tethys-timeline.mjs +4 -9
  285. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  286. package/fesm2022/ngx-tethys-tooltip.mjs +10 -33
  287. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  288. package/fesm2022/ngx-tethys-tree-select.mjs +17 -39
  289. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  290. package/fesm2022/ngx-tethys-tree.mjs +33 -82
  291. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  292. package/fesm2022/ngx-tethys-upload.mjs +15 -28
  293. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  294. package/fesm2022/ngx-tethys-vote.mjs +10 -32
  295. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  296. package/fesm2022/ngx-tethys-watermark.mjs +5 -9
  297. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  298. package/fesm2022/ngx-tethys.mjs +1 -1
  299. package/fesm2022/ngx-tethys.mjs.map +1 -1
  300. package/flexible-text/flexible-text.component.d.ts +1 -0
  301. package/form/form-group-error/form-group-error.component.d.ts +1 -0
  302. package/form/form-group-label.directive.d.ts +2 -1
  303. package/form/form-group.component.d.ts +5 -2
  304. package/icon/icon.component.d.ts +3 -0
  305. package/image/image.directive.d.ts +2 -0
  306. package/input/input-search.component.d.ts +1 -0
  307. package/input/input.component.d.ts +2 -0
  308. package/input-number/input-number.component.d.ts +4 -0
  309. package/layout/header.component.d.ts +5 -2
  310. package/layout/sidebar-header.component.d.ts +1 -0
  311. package/layout/sidebar.component.d.ts +14 -4
  312. package/list/list.component.d.ts +1 -0
  313. package/list/selection/selection-list.d.ts +4 -1
  314. package/loading/loading.component.d.ts +4 -2
  315. package/menu/group/menu-group.component.d.ts +6 -0
  316. package/menu/item/action/menu-item-action.component.d.ts +1 -0
  317. package/menu/item/name/menu-item-name.component.d.ts +1 -0
  318. package/menu/menu.component.d.ts +1 -0
  319. package/nav/icon-nav/icon-nav-link.directive.d.ts +2 -1
  320. package/nav/nav-ink-bar.directive.d.ts +2 -0
  321. package/nav/nav-item.directive.d.ts +3 -0
  322. package/nav/nav.component.d.ts +4 -0
  323. package/package.json +1 -1
  324. package/pagination/pagination.component.d.ts +11 -0
  325. package/popover/popover.directive.d.ts +5 -0
  326. package/progress/progress-circle.component.d.ts +3 -0
  327. package/progress/progress-strip.component.d.ts +1 -0
  328. package/progress/progress.component.d.ts +3 -0
  329. package/property/properties.component.d.ts +1 -0
  330. package/property/property-item.component.d.ts +2 -0
  331. package/property-operation/property-operation.component.d.ts +5 -0
  332. package/radio/group/radio-group.component.d.ts +2 -2
  333. package/rate/rate-item.component.d.ts +1 -0
  334. package/rate/rate.component.d.ts +5 -1
  335. package/resizable/resizable.directive.d.ts +10 -0
  336. package/resizable/resize-handle.component.d.ts +1 -0
  337. package/resizable/resize-handles.component.d.ts +1 -0
  338. package/schematics/version.d.ts +1 -1
  339. package/schematics/version.js +1 -1
  340. package/segment/segment-item.component.d.ts +1 -0
  341. package/segment/segment.component.d.ts +2 -0
  342. package/select/custom-select/custom-select.component.d.ts +12 -1
  343. package/select/native-select/native-select.component.d.ts +1 -0
  344. package/shared/base-form-check.component.d.ts +2 -0
  345. package/shared/directives/thy-autofocus.directive.d.ts +3 -1
  346. package/shared/directives/thy-scroll.directive.d.ts +1 -0
  347. package/shared/directives/thy-show.d.ts +1 -0
  348. package/shared/option/group/option-group.component.d.ts +1 -0
  349. package/shared/option/list-option/list-option.component.d.ts +1 -0
  350. package/shared/option/option.component.d.ts +1 -0
  351. package/shared/option/styles/select-dropdown.scss +1 -0
  352. package/shared/select/select-control/select-control.component.d.ts +7 -0
  353. package/skeleton/skeleton-circle.component.d.ts +1 -0
  354. package/skeleton/skeleton-rectangle.component.d.ts +1 -0
  355. package/skeleton/skeleton.component.d.ts +1 -0
  356. package/skeleton/stylized/bullet-list.component.d.ts +1 -0
  357. package/skeleton/stylized/list.component.d.ts +1 -0
  358. package/skeleton/stylized/paragraph.component.d.ts +1 -0
  359. package/slide/slide-body/slide-body-section.component.d.ts +2 -1
  360. package/slider/slider.component.d.ts +6 -1
  361. package/space/space.component.d.ts +1 -0
  362. package/stepper/step-header.component.d.ts +3 -0
  363. package/stepper/stepper.component.d.ts +2 -0
  364. package/switch/switch.component.d.ts +3 -1
  365. package/table/table-column.component.d.ts +7 -2
  366. package/table/table-skeleton.component.d.ts +2 -0
  367. package/table/table.component.d.ts +14 -0
  368. package/tabs/tab.component.d.ts +1 -0
  369. package/tabs/tabs.component.d.ts +2 -0
  370. package/tag/tag.component.d.ts +1 -0
  371. package/time-picker/time-picker-panel.component.d.ts +2 -0
  372. package/time-picker/time-picker.component.d.ts +6 -2
  373. package/timeline/timeline.component.d.ts +1 -0
  374. package/tooltip/tooltip.directive.d.ts +5 -0
  375. package/tree/tree-node.component.d.ts +7 -0
  376. package/tree/tree.component.d.ts +8 -0
  377. package/tree-select/tree-select.component.d.ts +7 -0
  378. package/upload/file-select-base.d.ts +1 -0
  379. package/upload/file-select.component.d.ts +3 -0
  380. package/vote/vote.component.d.ts +4 -2
  381. package/watermark/watermark.directive.d.ts +1 -0
@@ -91,4 +91,5 @@ export declare class ThyEmpty implements OnInit, AfterViewInit, OnChanges {
91
91
  setPresetSvg(icon: string): void;
92
92
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyEmpty, never>;
93
93
  static ɵcmp: i0.ɵɵComponentDeclaration<ThyEmpty, "thy-empty", never, { "thyMessage": { "alias": "thyMessage"; "required": false; }; "thyTranslationKey": { "alias": "thyTranslationKey"; "required": false; }; "thyTranslationValues": { "alias": "thyTranslationValues"; "required": false; }; "thyEntityName": { "alias": "thyEntityName"; "required": false; }; "thyEntityNameTranslateKey": { "alias": "thyEntityNameTranslateKey"; "required": false; }; "thyIconName": { "alias": "thyIconName"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyMarginTop": { "alias": "thyMarginTop"; "required": false; }; "thyTopAuto": { "alias": "thyTopAuto"; "required": false; }; "thyContainer": { "alias": "thyContainer"; "required": false; }; "thyImageUrl": { "alias": "thyImageUrl"; "required": false; }; "thyImageLoading": { "alias": "thyImageLoading"; "required": false; }; "thyImageFetchPriority": { "alias": "thyImageFetchPriority"; "required": false; }; "thyDescription": { "alias": "thyDescription"; "required": false; }; }, {}, ["extraTemplateRef"], never, true, never>;
94
+ static ngAcceptInputType_thyTopAuto: unknown;
94
95
  }
@@ -1,6 +1,4 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectionStrategy, Component, Input, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core';
3
- import { InputBoolean } from 'ngx-tethys/core';
1
+ import { ChangeDetectionStrategy, Component, Input, ElementRef, Renderer2, ChangeDetectorRef, booleanAttribute } from '@angular/core';
4
2
  import { useHostRenderer } from '@tethys/cdk/dom';
5
3
  import { ThyIcon } from 'ngx-tethys/icon';
6
4
  import { NgIf } from '@angular/common';
@@ -142,22 +140,8 @@ export class ThyAction {
142
140
  this.feedbackTimer?.unsubscribe();
143
141
  }
144
142
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAction, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: "thyActive", thyActionActive: "thyActionActive", thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: "thyDisabled" }, host: { properties: { "class.active": "active", "class.thy-action-hover-icon": "thyHoverIcon", "class.thy-action-has-feedback": "!!feedback", "class.disabled": "thyDisabled" }, classAttribute: "thy-action" }, usesOnChanges: true, ngImport: i0, template: "<thy-icon *ngIf=\"icon && !feedback\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon *ngIf=\"feedbackOptions?.icon\" [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
143
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAction, isStandalone: true, selector: "thy-action, [thyAction]", inputs: { thyType: "thyType", thyIcon: "thyIcon", thyActionIcon: "thyActionIcon", thyActive: ["thyActive", "thyActive", booleanAttribute], thyActionActive: ["thyActionActive", "thyActionActive", booleanAttribute], thyTheme: "thyTheme", thyHoverIcon: "thyHoverIcon", thyDisabled: ["thyDisabled", "thyDisabled", booleanAttribute] }, host: { properties: { "class.active": "active", "class.thy-action-hover-icon": "thyHoverIcon", "class.thy-action-has-feedback": "!!feedback", "class.disabled": "thyDisabled" }, classAttribute: "thy-action" }, usesOnChanges: true, ngImport: i0, template: "<thy-icon *ngIf=\"icon && !feedback\" [thyIconName]=\"icon\"></thy-icon>\n<thy-icon *ngIf=\"feedbackOptions?.icon\" [class]=\"feedbackOptions.class\" [thyIconName]=\"feedbackOptions.icon\"></thy-icon>\n<thy-icon class=\"hover-icon\" *ngIf=\"thyHoverIcon\" [thyIconName]=\"thyHoverIcon\"></thy-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
144
  }
147
- __decorate([
148
- InputBoolean(),
149
- __metadata("design:type", Boolean),
150
- __metadata("design:paramtypes", [Boolean])
151
- ], ThyAction.prototype, "thyActive", null);
152
- __decorate([
153
- InputBoolean(),
154
- __metadata("design:type", Boolean),
155
- __metadata("design:paramtypes", [Boolean])
156
- ], ThyAction.prototype, "thyActionActive", null);
157
- __decorate([
158
- InputBoolean(),
159
- __metadata("design:type", Boolean)
160
- ], ThyAction.prototype, "thyDisabled", void 0);
161
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAction, decorators: [{
162
146
  type: Component,
163
147
  args: [{ selector: 'thy-action, [thyAction]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -174,14 +158,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
174
158
  }], thyActionIcon: [{
175
159
  type: Input
176
160
  }], thyActive: [{
177
- type: Input
161
+ type: Input,
162
+ args: [{ transform: booleanAttribute }]
178
163
  }], thyActionActive: [{
179
- type: Input
164
+ type: Input,
165
+ args: [{ transform: booleanAttribute }]
180
166
  }], thyTheme: [{
181
167
  type: Input
182
168
  }], thyHoverIcon: [{
183
169
  type: Input
184
170
  }], thyDisabled: [{
185
- type: Input
171
+ type: Input,
172
+ args: [{ transform: booleanAttribute }]
186
173
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBSUwsVUFBVSxFQUNWLFNBQVMsRUFFVCxpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVkzQyxNQUFNLHNCQUFzQixHQUF3RDtJQUNoRixPQUFPLEVBQUU7UUFDTCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0lBQ0QsS0FBSyxFQUFFO1FBQ0gsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixLQUFLLEVBQUUsYUFBYTtRQUNwQixRQUFRLEVBQUUsSUFBSTtLQUNqQjtDQUNKLENBQUM7QUFDRjs7O0dBR0c7QUFlSCxNQUFNLE9BQU8sU0FBUztJQWVsQjs7OztPQUlHO0lBQ0gsSUFDSSxPQUFPLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxPQUFPLENBQUMsSUFBWTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElB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dEIseVVBSUEsNENEcURjLElBQUksNkZBQUUsT0FBTzs7QUErQ3ZCO0lBQ0MsWUFBWSxFQUFFOzs7MENBR2Q7QUFNRDtJQUNDLFlBQVksRUFBRTs7O2dEQUdkO0FBbUJEO0lBREMsWUFBWSxFQUFFOzs4Q0FDTTsyRkE5RVosU0FBUztrQkFkckIsU0FBUzsrQkFDSSx5QkFBeUIsbUJBRWxCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLFlBQVk7d0JBQ25CLGdCQUFnQixFQUFFLFFBQVE7d0JBQzFCLCtCQUErQixFQUFFLGNBQWM7d0JBQy9DLGlDQUFpQyxFQUFFLFlBQVk7d0JBQy9DLGtCQUFrQixFQUFFLGFBQWE7cUJBQ3BDLGNBQ1csSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQzt1SUF1QnBCLE9BQU87c0JBRFYsS0FBSztnQkFTRixPQUFPO3NCQURWLEtBQUs7Z0JBU0YsYUFBYTtzQkFEaEIsS0FBSztnQkFXRixTQUFTO3NCQUZaLEtBQUs7Z0JBWUYsZUFBZTtzQkFGbEIsS0FBSztnQkFVRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBUU4sV0FBVztzQkFGVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBUaHlBY3Rpb25UeXBlID0gJ3ByaW1hcnknIHwgJ3N1Y2Nlc3MnIHwgJ2RhbmdlcicgfCAnd2FybmluZyc7XG5cbmV4cG9ydCB0eXBlIFRoeUFjdGlvbkZlZWRiYWNrID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcblxuZXhwb3J0IGludGVyZmFjZSBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMge1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRGZWVkYmFja09wdGlvbnM6IFJlY29yZDxUaHlBY3Rpb25GZWVkYmFjaywgVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zPiA9IHtcbiAgICBzdWNjZXNzOiB7XG4gICAgICAgIGljb246ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgICAgIGNsYXNzOiAndGV4dC1zdWNjZXNzJyxcbiAgICAgICAgZHVyYXRpb246IDMwMDBcbiAgICB9LFxuICAgIGVycm9yOiB7XG4gICAgICAgIGljb246ICdjbG9zZS1jaXJjbGUtZmlsbCcsXG4gICAgICAgIGNsYXNzOiAndGV4dC1kYW5nZXInLFxuICAgICAgICBkdXJhdGlvbjogMzAwMFxuICAgIH1cbn07XG4vKipcbiAqIOeri+WNs+aTjeS9nOe7hOS7tlxuICogQG5hbWUgdGh5LWFjdGlvbixbdGh5QWN0aW9uXVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1hY3Rpb24sIFt0aHlBY3Rpb25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LWFjdGlvbicsXG4gICAgICAgICdbY2xhc3MuYWN0aXZlXSc6ICdhY3RpdmUnLFxuICAgICAgICAnW2NsYXNzLnRoeS1hY3Rpb24taG92ZXItaWNvbl0nOiAndGh5SG92ZXJJY29uJyxcbiAgICAgICAgJ1tjbGFzcy50aHktYWN0aW9uLWhhcy1mZWVkYmFja10nOiAnISFmZWVkYmFjaycsXG4gICAgICAgICdbY2xhc3MuZGlzYWJsZWRdJzogJ3RoeURpc2FibGVkJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QWN0aW9uIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaWNvbjogc3RyaW5nO1xuXG4gICAgZmVlZGJhY2s6IFRoeUFjdGlvbkZlZWRiYWNrID0gbnVsbDtcblxuICAgIGZlZWRiYWNrT3B0aW9uczogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zO1xuXG4gICAgYWN0aXZlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHR5cGU6IHN0cmluZyA9ICdwcmltYXJ5JztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwcml2YXRlIGZlZWRiYWNrVGltZXI6IFN1YnNjcmlwdGlvbjtcblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh+eahOexu+Wei1xuICAgICAqIEB0eXBlIHByaW1hcnkgfCBzdWNjZXNzIHwgZGFuZ2VyIHwgd2FybmluZ1xuICAgICAqIEBkZWZhdWx0IHByaW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlBY3Rpb25UeXBlKSB7XG4gICAgICAgIHRoaXMuc2V0QWN0aW9uVHlwZSh2YWx1ZSB8fCAncHJpbWFyeScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh++8jOaUr+aMgeS8oOWPguWQjOaXtuS5n+aUr+aMgeWcqOaKleW9seS4reWGmSB0aHktaWNvbiDnu4Tku7ZcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlJY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLmljb24gPSBpY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOWbvuagh++8jOW9kyB0aHlJY29uIOWSjOWFtuS7luaMh+S7pOWPguaVsOWQjeacieWGsueqgeaXtuS9v+eUqCB0aHlBY3Rpb25JY29uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5QWN0aW9uSWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uID0gaWNvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZznmoTlm77moIcgQWN0aXZlIOeKtuaAge+8jOiuvue9ruS4uiB0cnVlIOaXtuS8muWcqCBJdGVtIOS4iua3u+WKoCBhY3RpdmUgY2xhc3NcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOeahOWbvuaghyBBY3RpdmUg54q25oCB77yM5b2TIHRoeUFjdGl2ZSDlkozlhbbku5bmjIfku6Tlj4LmlbDlkI3mnInlhrLnqoHml7bkvb/nlKggdGh5QWN0aW9uQWN0aXZlXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIHNldCB0aHlBY3Rpb25BY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmk43kvZzlm77moIfnmoTkuLvpophcbiAgICAgKiBAdHlwZSBmaWxsKOiDjOaZr+iJsuWhq+WFhSkgfCBsaXRlKOeugOWNleaWh+acrOminOiJsuWPmOWMlilcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUaGVtZTogJ2ZpbGwnIHwgJ2xpdGUnID0gJ2ZpbGwnO1xuXG4gICAgLyoqXG4gICAgICogSG92ZXIg5bGV56S655qE5Zu+5qCHXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG92ZXJJY29uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKblpITkuo7npoHnlKjnirbmgIFcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgdGh5RGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMud3JhcFNwYW5Gb3JUZXh0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKChjaGFuZ2VzLnRoeVR5cGUgJiYgIWNoYW5nZXMudGh5VHlwZS5maXJzdENoYW5nZSkgfHwgKGNoYW5nZXMudGh5VGhlbWUgJiYgIWNoYW5nZXMudGh5VGhlbWUuZmlyc3RDaGFuZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldE1hcmdpblJpZ2h0KG1hcmdpblJpZ2h0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWFyZ2luUmlnaHQgPSBtYXJnaW5SaWdodDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDop6blj5HmiJDlip/lj43ppojmk43kvZxcbiAgICAgKi9cbiAgICBzdWNjZXNzKG9wdGlvbnM/OiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zZXRGZWVkYmFjaygnc3VjY2VzcycsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOinpuWPkeWksei0peWPjemmiOaTjeS9nFxuICAgICAqL1xuICAgIGVycm9yKG9wdGlvbnM/OiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zZXRGZWVkYmFjaygnZXJyb3InLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZlZWRiYWNrKGZlZWRiYWNrOiBUaHlBY3Rpb25GZWVkYmFjaywgb3B0aW9uczogVGh5QWN0aW9uRmVlZGJhY2tPcHRpb25zKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeURpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRGZWVkYmFja09wdGlvbnNbZmVlZGJhY2tdLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5mZWVkYmFjayA9IGZlZWRiYWNrO1xuICAgICAgICB0aGlzLmZlZWRiYWNrT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBpZiAob3B0aW9ucy5kdXJhdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmVlZGJhY2tUaW1lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tUaW1lci51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5mZWVkYmFja1RpbWVyID0gdGltZXIob3B0aW9ucy5kdXJhdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZlZWRiYWNrID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmZlZWRiYWNrT3B0aW9ucyA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgd3JhcFNwYW5Gb3JUZXh0KG5vZGVzOiBOb2RlTGlzdCk6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc3BhbiwgJ3RoeS1hY3Rpb24td3JhcC1zcGFuJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50LCBzcGFuLCBub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwYW4sIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFjdGlvblR5cGUodmFsdWU6IFRoeUFjdGlvblR5cGUpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzc2VzKCkge1xuICAgICAgICBsZXQgY2xhc3NOYW1lczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgY2xhc3NOYW1lcy5wdXNoKGBhY3Rpb24tJHt0aGlzLnR5cGV9YCk7XG4gICAgICAgIGlmICh0aGlzLnRoeVRoZW1lID09PSAnbGl0ZScpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgndGh5LWFjdGlvbi1saXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIudXBkYXRlQ2xhc3MoY2xhc3NOYW1lcyk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmVlZGJhY2tUaW1lcj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iLCI8dGh5LWljb24gKm5nSWY9XCJpY29uICYmICFmZWVkYmFja1wiIFt0aHlJY29uTmFtZV09XCJpY29uXCI+PC90aHktaWNvbj5cbjx0aHktaWNvbiAqbmdJZj1cImZlZWRiYWNrT3B0aW9ucz8uaWNvblwiIFtjbGFzc109XCJmZWVkYmFja09wdGlvbnMuY2xhc3NcIiBbdGh5SWNvbk5hbWVdPVwiZmVlZGJhY2tPcHRpb25zLmljb25cIj48L3RoeS1pY29uPlxuPHRoeS1pY29uIGNsYXNzPVwiaG92ZXItaWNvblwiICpuZ0lmPVwidGh5SG92ZXJJY29uXCIgW3RoeUljb25OYW1lXT1cInRoeUhvdmVySWNvblwiPjwvdGh5LWljb24+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hY3Rpb24vYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFJTCxVQUFVLEVBQ1YsU0FBUyxFQUVULGlCQUFpQixFQUVqQixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWTNDLE1BQU0sc0JBQXNCLEdBQXdEO0lBQ2hGLE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxtQkFBbUI7UUFDekIsS0FBSyxFQUFFLGNBQWM7UUFDckIsUUFBUSxFQUFFLElBQUk7S0FDakI7SUFDRCxLQUFLLEVBQUU7UUFDSCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLEtBQUssRUFBRSxhQUFhO1FBQ3BCLFFBQVEsRUFBRSxJQUFJO0tBQ2pCO0NBQ0osQ0FBQztBQUNGOzs7R0FHRztBQWVILE1BQU0sT0FBTyxTQUFTO0lBZWxCOzs7O09BSUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUFvQjtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxJQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJ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QkFBZ0IsbVFDckl4Qyx5VUFJQSw0Q0RxRGMsSUFBSSw2RkFBRSxPQUFPOzsyRkFFZCxTQUFTO2tCQWRyQixTQUFTOytCQUNJLHlCQUF5QixtQkFFbEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsWUFBWTt3QkFDbkIsZ0JBQWdCLEVBQUUsUUFBUTt3QkFDMUIsK0JBQStCLEVBQUUsY0FBYzt3QkFDL0MsaUNBQWlDLEVBQUUsWUFBWTt3QkFDL0Msa0JBQWtCLEVBQUUsYUFBYTtxQkFDcEMsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO3VJQXVCcEIsT0FBTztzQkFEVixLQUFLO2dCQVNGLE9BQU87c0JBRFYsS0FBSztnQkFTRixhQUFhO3NCQURoQixLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFVbEMsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFTN0IsUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxZQUFZO3NCQUFwQixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBFbGVtZW50UmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXNlSG9zdFJlbmRlcmVyIH0gZnJvbSAnQHRldGh5cy9jZGsvZG9tJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIFRoeUFjdGlvblR5cGUgPSAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnZGFuZ2VyJyB8ICd3YXJuaW5nJztcblxuZXhwb3J0IHR5cGUgVGh5QWN0aW9uRmVlZGJhY2sgPSAnc3VjY2VzcycgfCAnZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucyB7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBjbGFzcz86IHN0cmluZztcbiAgICBkdXJhdGlvbj86IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdEZlZWRiYWNrT3B0aW9uczogUmVjb3JkPFRoeUFjdGlvbkZlZWRiYWNrLCBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnM+ID0ge1xuICAgIHN1Y2Nlc3M6IHtcbiAgICAgICAgaWNvbjogJ2NoZWNrLWNpcmNsZS1maWxsJyxcbiAgICAgICAgY2xhc3M6ICd0ZXh0LXN1Y2Nlc3MnLFxuICAgICAgICBkdXJhdGlvbjogMzAwMFxuICAgIH0sXG4gICAgZXJyb3I6IHtcbiAgICAgICAgaWNvbjogJ2Nsb3NlLWNpcmNsZS1maWxsJyxcbiAgICAgICAgY2xhc3M6ICd0ZXh0LWRhbmdlcicsXG4gICAgICAgIGR1cmF0aW9uOiAzMDAwXG4gICAgfVxufTtcbi8qKlxuICog56uL5Y2z5pON5L2c57uE5Lu2XG4gKiBAbmFtZSB0aHktYWN0aW9uLFt0aHlBY3Rpb25dXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWFjdGlvbiwgW3RoeUFjdGlvbl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYWN0aW9uJyxcbiAgICAgICAgJ1tjbGFzcy5hY3RpdmVdJzogJ2FjdGl2ZScsXG4gICAgICAgICdbY2xhc3MudGh5LWFjdGlvbi1ob3Zlci1pY29uXSc6ICd0aHlIb3Zlckljb24nLFxuICAgICAgICAnW2NsYXNzLnRoeS1hY3Rpb24taGFzLWZlZWRiYWNrXSc6ICchIWZlZWRiYWNrJyxcbiAgICAgICAgJ1tjbGFzcy5kaXNhYmxlZF0nOiAndGh5RGlzYWJsZWQnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlBY3Rpb24gaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBpY29uOiBzdHJpbmc7XG5cbiAgICBmZWVkYmFjazogVGh5QWN0aW9uRmVlZGJhY2sgPSBudWxsO1xuXG4gICAgZmVlZGJhY2tPcHRpb25zOiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnM7XG5cbiAgICBhY3RpdmUgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgdHlwZTogc3RyaW5nID0gJ3ByaW1hcnknO1xuXG4gICAgcHJpdmF0ZSBob3N0UmVuZGVyZXIgPSB1c2VIb3N0UmVuZGVyZXIoKTtcblxuICAgIHByaXZhdGUgZmVlZGJhY2tUaW1lcjogU3Vic2NyaXB0aW9uO1xuXG4gICAgLyoqXG4gICAgICog5pON5L2c5Zu+5qCH55qE57G75Z6LXG4gICAgICogQHR5cGUgcHJpbWFyeSB8IHN1Y2Nlc3MgfCBkYW5nZXIgfCB3YXJuaW5nXG4gICAgICogQGRlZmF1bHQgcHJpbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVR5cGUodmFsdWU6IFRoeUFjdGlvblR5cGUpIHtcbiAgICAgICAgdGhpcy5zZXRBY3Rpb25UeXBlKHZhbHVlIHx8ICdwcmltYXJ5Jyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c5Zu+5qCH77yM5pSv5oyB5Lyg5Y+C5ZCM5pe25Lmf5pSv5oyB5Zyo5oqV5b2x5Lit5YaZIHRoeS1pY29uIOe7hOS7tlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUljb24oaWNvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaWNvbiA9IGljb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c5Zu+5qCH77yM5b2TIHRoeUljb24g5ZKM5YW25LuW5oyH5Luk5Y+C5pWw5ZCN5pyJ5Yay56qB5pe25L2/55SoIHRoeUFjdGlvbkljb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlBY3Rpb25JY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLmljb24gPSBpY29uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOeahOWbvuaghyBBY3RpdmUg54q25oCB77yM6K6+572u5Li6IHRydWUg5pe25Lya5ZyoIEl0ZW0g5LiK5re75YqgIGFjdGl2ZSBjbGFzc1xuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaTjeS9nOeahOWbvuaghyBBY3RpdmUg54q25oCB77yM5b2TIHRoeUFjdGl2ZSDlkozlhbbku5bmjIfku6Tlj4LmlbDlkI3mnInlhrLnqoHml7bkvb/nlKggdGh5QWN0aW9uQWN0aXZlXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgdGh5QWN0aW9uQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pON5L2c5Zu+5qCH55qE5Li76aKYXG4gICAgICogQHR5cGUgZmlsbCjog4zmma/oibLloavlhYUpIHwgbGl0ZSjnroDljZXmlofmnKzpopzoibLlj5jljJYpXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5VGhlbWU6ICdmaWxsJyB8ICdsaXRlJyA9ICdmaWxsJztcblxuICAgIC8qKlxuICAgICAqIEhvdmVyIOWxleekuueahOWbvuagh1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUhvdmVySWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5aSE5LqO56aB55So54q25oCBXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0aHlEaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy53cmFwU3BhbkZvclRleHQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoKGNoYW5nZXMudGh5VHlwZSAmJiAhY2hhbmdlcy50aHlUeXBlLmZpcnN0Q2hhbmdlKSB8fCAoY2hhbmdlcy50aHlUaGVtZSAmJiAhY2hhbmdlcy50aHlUaGVtZS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0TWFyZ2luUmlnaHQobWFyZ2luUmlnaHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5tYXJnaW5SaWdodCA9IG1hcmdpblJpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOinpuWPkeaIkOWKn+WPjemmiOaTjeS9nFxuICAgICAqL1xuICAgIHN1Y2Nlc3Mob3B0aW9ucz86IFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucykge1xuICAgICAgICB0aGlzLnNldEZlZWRiYWNrKCdzdWNjZXNzJywgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6Kem5Y+R5aSx6LSl5Y+N6aaI5pON5L2cXG4gICAgICovXG4gICAgZXJyb3Iob3B0aW9ucz86IFRoeUFjdGlvbkZlZWRiYWNrT3B0aW9ucykge1xuICAgICAgICB0aGlzLnNldEZlZWRiYWNrKCdlcnJvcicsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmVlZGJhY2soZmVlZGJhY2s6IFRoeUFjdGlvbkZlZWRiYWNrLCBvcHRpb25zOiBUaHlBY3Rpb25GZWVkYmFja09wdGlvbnMpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdEZlZWRiYWNrT3B0aW9uc1tmZWVkYmFja10sIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmZlZWRiYWNrID0gZmVlZGJhY2s7XG4gICAgICAgIHRoaXMuZmVlZGJhY2tPcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGlmIChvcHRpb25zLmR1cmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mZWVkYmFja1RpbWVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWVkYmFja1RpbWVyLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZlZWRiYWNrVGltZXIgPSB0aW1lcihvcHRpb25zLmR1cmF0aW9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmVlZGJhY2sgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tPcHRpb25zID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3cmFwU3BhbkZvclRleHQobm9kZXM6IE5vZGVMaXN0KTogdm9pZCB7XG4gICAgICAgIG5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gJyN0ZXh0Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnJlbmRlcmVyLnBhcmVudE5vZGUobm9kZSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzcGFuLCAndGh5LWFjdGlvbi13cmFwLXNwYW4nKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShwYXJlbnQsIHNwYW4sIG5vZGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3Bhbiwgbm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0QWN0aW9uVHlwZSh2YWx1ZTogVGh5QWN0aW9uVHlwZSkge1xuICAgICAgICB0aGlzLnR5cGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzZXMoKSB7XG4gICAgICAgIGxldCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjbGFzc05hbWVzLnB1c2goYGFjdGlvbi0ke3RoaXMudHlwZX1gKTtcbiAgICAgICAgaWYgKHRoaXMudGh5VGhlbWUgPT09ICdsaXRlJykge1xuICAgICAgICAgICAgY2xhc3NOYW1lcy5wdXNoKCd0aHktYWN0aW9uLWxpdGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mZWVkYmFja1RpbWVyPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiIsIjx0aHktaWNvbiAqbmdJZj1cImljb24gJiYgIWZlZWRiYWNrXCIgW3RoeUljb25OYW1lXT1cImljb25cIj48L3RoeS1pY29uPlxuPHRoeS1pY29uICpuZ0lmPVwiZmVlZGJhY2tPcHRpb25zPy5pY29uXCIgW2NsYXNzXT1cImZlZWRiYWNrT3B0aW9ucy5jbGFzc1wiIFt0aHlJY29uTmFtZV09XCJmZWVkYmFja09wdGlvbnMuaWNvblwiPjwvdGh5LWljb24+XG48dGh5LWljb24gY2xhc3M9XCJob3Zlci1pY29uXCIgKm5nSWY9XCJ0aHlIb3Zlckljb25cIiBbdGh5SWNvbk5hbWVdPVwidGh5SG92ZXJJY29uXCI+PC90aHktaWNvbj5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,11 +1,10 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { InputNumber, ThyScrollService } from 'ngx-tethys/core';
1
+ import { ThyScrollService } from 'ngx-tethys/core';
3
2
  import { dom, shallowEqual } from 'ngx-tethys/util';
4
3
  import { fromEvent, merge, ReplaySubject, Subject, Subscription } from 'rxjs';
5
4
  import { auditTime, map, takeUntil } from 'rxjs/operators';
6
5
  import { Platform } from '@angular/cdk/platform';
7
6
  import { DOCUMENT } from '@angular/common';
8
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, NgZone, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
7
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, NgZone, numberAttribute, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
9
8
  import { AffixRespondEvents } from './respond-events';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "ngx-tethys/core";
@@ -207,20 +206,12 @@ export class ThyAffix {
207
206
  }
208
207
  }
209
208
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAffix, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i1.ThyScrollService }, { token: i0.NgZone }, { token: i2.Platform }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyAffix, isStandalone: true, selector: "thy-affix", inputs: { thyContainer: "thyContainer", thyOffsetTop: "thyOffsetTop", thyOffsetBottom: "thyOffsetBottom" }, outputs: { thyChange: "thyChange" }, viewQueries: [{ propertyName: "fixedElement", first: true, predicate: ["fixedElement"], descendants: true, static: true }], exportAs: ["thyAffix"], usesOnChanges: true, ngImport: i0, template: `
209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAffix, isStandalone: true, selector: "thy-affix", inputs: { thyContainer: "thyContainer", thyOffsetTop: ["thyOffsetTop", "thyOffsetTop", numberAttribute], thyOffsetBottom: ["thyOffsetBottom", "thyOffsetBottom", numberAttribute] }, outputs: { thyChange: "thyChange" }, viewQueries: [{ propertyName: "fixedElement", first: true, predicate: ["fixedElement"], descendants: true, static: true }], exportAs: ["thyAffix"], usesOnChanges: true, ngImport: i0, template: `
211
210
  <div #fixedElement>
212
211
  <ng-content></ng-content>
213
212
  </div>
214
213
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
215
214
  }
216
- __decorate([
217
- InputNumber(),
218
- __metadata("design:type", Number)
219
- ], ThyAffix.prototype, "thyOffsetTop", void 0);
220
- __decorate([
221
- InputNumber(),
222
- __metadata("design:type", Number)
223
- ], ThyAffix.prototype, "thyOffsetBottom", void 0);
224
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAffix, decorators: [{
225
216
  type: Component,
226
217
  args: [{
@@ -244,10 +235,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
244
235
  }], thyContainer: [{
245
236
  type: Input
246
237
  }], thyOffsetTop: [{
247
- type: Input
238
+ type: Input,
239
+ args: [{ transform: numberAttribute }]
248
240
  }], thyOffsetBottom: [{
249
- type: Input
241
+ type: Input,
242
+ args: [{ transform: numberAttribute }]
250
243
  }], thyChange: [{
251
244
  type: Output
252
245
  }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FmZml4L2FmZml4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUV0RCxNQUFNLG9CQUFvQixHQUFHLFdBQVcsQ0FBQztBQUN6QyxNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUV6Qzs7OztHQUlHO0FBYUgsTUFBTSxPQUFPLFFBQVE7SUF3Q2pCLElBQVksU0FBUztRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFB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Qy9CLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDOzhHQXZQUSxRQUFRLDRDQStDTCxRQUFRO2tHQS9DWCxRQUFRLCtYQVRQOzs7O0tBSVQ7O0FBcUJEO0lBREMsV0FBVyxFQUFFOzs4Q0FDZTtBQU83QjtJQURDLFdBQVcsRUFBRTs7aURBQ2tCOzJGQXZCdkIsUUFBUTtrQkFacEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFnRFEsTUFBTTsyQkFBQyxRQUFROzRJQTlDaUMsWUFBWTtzQkFBaEUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU9sQyxZQUFZO3NCQUFwQixLQUFLO2dCQVFOLFlBQVk7c0JBRlgsS0FBSztnQkFTTixlQUFlO3NCQUZkLEtBQUs7Z0JBT2EsU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0TnVtYmVyLCBUaHlTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGRvbSwgc2hhbGxvd0VxdWFsLCBTaW1wbGVSZWN0IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWZmaXhSZXNwb25kRXZlbnRzIH0gZnJvbSAnLi9yZXNwb25kLWV2ZW50cyc7XG5cbmNvbnN0IFRIWV9BRkZJWF9DTFNfUFJFRklYID0gJ3RoeS1hZmZpeCc7XG5jb25zdCBUSFlfQUZGSVhfREVGQVVMVF9TQ1JPTExfVElNRSA9IDIwO1xuXG4vKipcbiAqIOWbuumSiee7hOS7tlxuICogQG5hbWUgdGh5LWFmZml4XG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYWZmaXgnLFxuICAgIGV4cG9ydEFzOiAndGh5QWZmaXgnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgI2ZpeGVkRWxlbWVudD5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGh5QWZmaXggaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnZml4ZWRFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBmaXhlZEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOiuvue9riB0aHktYWZmaXgg6ZyA6KaB55uR5ZCs5YW25rua5Yqo5LqL5Lu255qE5YWD57Sg77yM5YC85Li65LiA5Liq6L+U5Zue5a+55bqUIERPTSDlhYPntKDnmoTlh73mlbBcbiAgICAgKiBAZGVmYXVsdCB3aW5kb3dcbiAgICAgKiBAdHlwZSBzdHJpbmcgfCBFbGVtZW50IHwgV2luZG93XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29udGFpbmVyPzogc3RyaW5nIHwgRWxlbWVudCB8IFdpbmRvdztcblxuICAgIC8qKlxuICAgICAqIOi3neemu+eql+WPo+mhtumDqOe8k+WGsueahOWBj+enu+mHj+mYiOWAvFxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dE51bWJlcigpXG4gICAgdGh5T2Zmc2V0VG9wPzogbnVsbCB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOi3neemu+eql+WPo+W6lemDqOe8k+WGsueahOWBj+enu+mHj+mYiOWAvFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQElucHV0TnVtYmVyKClcbiAgICB0aHlPZmZzZXRCb3R0b20/OiBudWxsIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5Zu65a6a54q25oCB5pS55Y+Y5pe26Kem5Y+R55qE5Zue6LCD5Ye95pWwXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJOb2RlOiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgYWZmaXhTdHlsZT86IGFueTtcbiAgICBwcml2YXRlIHBsYWNlaG9sZGVyU3R5bGU/OiBhbnk7XG4gICAgcHJpdmF0ZSBwb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICAgIHByaXZhdGUgb2Zmc2V0Q2hhbmdlZCQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHRpbWVvdXQ/OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBkb2N1bWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBnZXQgY29udGFpbmVyKCk6IEVsZW1lbnQgfCBXaW5kb3cge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudGh5Q29udGFpbmVyO1xuICAgICAgICByZXR1cm4gKHR5cGVvZiBlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWwpIDogZWwpIHx8IHdpbmRvdztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHByaXZhdGUgc2Nyb2xsU2VydmljZTogVGh5U2Nyb2xsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgICAgICAvLyBUaGUgd3JhcHBlciB3b3VsZCBzdGF5IGF0IHRoZSBvcmlnaW5hbCBwb3NpdGlvbiBhcyBhIHBsYWNlaG9sZGVyLlxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyTm9kZSA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5T2Zmc2V0Qm90dG9tLCB0aHlPZmZzZXRUb3AsIHRoeUNvbnRhaW5lciB9ID0gY2hhbmdlcztcblxuICAgICAgICBpZiAodGh5T2Zmc2V0Qm90dG9tIHx8IHRoeU9mZnNldFRvcCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXRDaGFuZ2VkJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoeUNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3Rlckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhBZmZpeFJlc3BvbmRFdmVudHMpLm1hcChldk5hbWUgPT4gZnJvbUV2ZW50KHRoaXMuY29udGFpbmVyLCBldk5hbWUpKSxcbiAgICAgICAgICAgICAgICB0aGlzLm9mZnNldENoYW5nZWQkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+ICh7fSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKGF1ZGl0VGltZShUSFlfQUZGSVhfREVGQVVMVF9TQ1JPTExfVElNRSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShlID0+IHRoaXMudXBkYXRlUG9zaXRpb24oZSBhcyBFdmVudCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZVBvc2l0aW9uKHt9IGFzIEV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0T2Zmc2V0KGVsZW1lbnQ6IEVsZW1lbnQsIHRhcmdldDogRWxlbWVudCB8IFdpbmRvdyB8IHVuZGVmaW5lZCk6IFNpbXBsZVJlY3Qge1xuICAgICAgICBjb25zdCBlbGVtUmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBkb20uZ2V0Q29udGFpbmVyUmVjdCh0YXJnZXQpO1xuXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGFyZ2V0LCB0cnVlKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGFyZ2V0LCBmYWxzZSk7XG5cbiAgICAgICAgY29uc3QgZG9jRWxlbSA9IHRoaXMuZG9jdW1lbnQuYm9keTtcbiAgICAgICAgY29uc3QgY2xpZW50VG9wID0gZG9jRWxlbS5jbGllbnRUb3AgfHwgMDtcbiAgICAgICAgY29uc3QgY2xpZW50TGVmdCA9IGRvY0VsZW0uY2xpZW50TGVmdCB8fCAwO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6IGVsZW1SZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wICsgc2Nyb2xsVG9wIC0gY2xpZW50VG9wLFxuICAgICAgICAgICAgbGVmdDogZWxlbVJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0LFxuICAgICAgICAgICAgd2lkdGg6IGVsZW1SZWN0LndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBlbGVtUmVjdC5oZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFmZml4U3R5bGUoZTogRXZlbnQsIGFmZml4U3R5bGU/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBZmZpeFN0eWxlID0gdGhpcy5hZmZpeFN0eWxlO1xuICAgICAgICBjb25zdCBpc1dpbmRvdyA9IHRoaXMuY29udGFpbmVyID09PSB3aW5kb3c7XG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdzY3JvbGwnICYmIG9yaWdpbmFsQWZmaXhTdHlsZSAmJiBhZmZpeFN0eWxlICYmIGlzV2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNoYWxsb3dFcXVhbChvcmlnaW5hbEFmZml4U3R5bGUsIGFmZml4U3R5bGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaXhlZCA9ICEhYWZmaXhTdHlsZTtcbiAgICAgICAgY29uc3Qgd3JhcEVsZW1lbnQgPSB0aGlzLmZpeGVkRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHdyYXBFbGVtZW50LCAnY3NzVGV4dCcsIGRvbS5nZXRTdHlsZUFzVGV4dChhZmZpeFN0eWxlKSk7XG4gICAgICAgIHRoaXMuYWZmaXhTdHlsZSA9IGFmZml4U3R5bGU7XG4gICAgICAgIGlmIChmaXhlZCkge1xuICAgICAgICAgICAgd3JhcEVsZW1lbnQuY2xhc3NMaXN0LmFkZChUSFlfQUZGSVhfQ0xTX1BSRUZJWCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFRIWV9BRkZJWF9DTFNfUFJFRklYKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoYWZmaXhTdHlsZSAmJiAhb3JpZ2luYWxBZmZpeFN0eWxlKSB8fCAoIWFmZml4U3R5bGUgJiYgb3JpZ2luYWxBZmZpeFN0eWxlKSkge1xuICAgICAgICAgICAgdGhpcy50aHlDaGFuZ2UuZW1pdChmaXhlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBsYWNlaG9sZGVyU3R5bGUocGxhY2Vob2xkZXJTdHlsZT86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFBsYWNlaG9sZGVyU3R5bGUgPSB0aGlzLnBsYWNlaG9sZGVyU3R5bGU7XG4gICAgICAgIGlmIChzaGFsbG93RXF1YWwocGxhY2Vob2xkZXJTdHlsZSwgb3JpZ2luYWxQbGFjZWhvbGRlclN0eWxlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGFjZWhvbGRlck5vZGUsICdjc3NUZXh0JywgZG9tLmdldFN0eWxlQXNUZXh0KHBsYWNlaG9sZGVyU3R5bGUpKTtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlclN0eWxlID0gcGxhY2Vob2xkZXJTdHlsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNQbGFjZWhvbGRlclN0eWxlKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hZmZpeFN0eWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBsYWNlaG9sZGVyTm9kZSwgJ2Nzc1RleHQnLCAnJyk7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc3R5bGVPYmogPSB7XG4gICAgICAgICAgICB3aWR0aDogdGhpcy5wbGFjZWhvbGRlck5vZGUub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuZml4ZWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2V0QWZmaXhTdHlsZShlLCB7XG4gICAgICAgICAgICAuLi50aGlzLmFmZml4U3R5bGUsXG4gICAgICAgICAgICAuLi5zdHlsZU9ialxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKHN0eWxlT2JqKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQb3NpdGlvbihlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGxldCBvZmZzZXRUb3AgPSB0aGlzLnRoeU9mZnNldFRvcDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxTZXJ2aWNlLmdldFNjcm9sbChjb250YWluZXJOb2RlLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mZnNldCA9IHRoaXMuZ2V0T2Zmc2V0KHRoaXMucGxhY2Vob2xkZXJOb2RlLCBjb250YWluZXJOb2RlKTtcbiAgICAgICAgY29uc3QgZml4ZWROb2RlID0gdGhpcy5maXhlZEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZWxlbVNpemUgPSB7XG4gICAgICAgICAgICB3aWR0aDogZml4ZWROb2RlLm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBmaXhlZE5vZGUub2Zmc2V0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9mZnNldE1vZGUgPSB7XG4gICAgICAgICAgICB0b3A6IGZhbHNlLFxuICAgICAgICAgICAgYm90dG9tOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICAvLyBEZWZhdWx0IHRvIGBvZmZzZXRUb3A9MGAuXG4gICAgICAgIGlmICh0eXBlb2Ygb2Zmc2V0VG9wICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdGhpcy50aHlPZmZzZXRCb3R0b20gIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBvZmZzZXRNb2RlLnRvcCA9IHRydWU7XG4gICAgICAgICAgICBvZmZzZXRUb3AgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2Zmc2V0TW9kZS50b3AgPSB0eXBlb2Ygb2Zmc2V0VG9wID09PSAnbnVtYmVyJztcbiAgICAgICAgICAgIG9mZnNldE1vZGUuYm90dG9tID0gdHlwZW9mIHRoaXMudGh5T2Zmc2V0Qm90dG9tID09PSAnbnVtYmVyJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZG9tLmdldENvbnRhaW5lclJlY3QoY29udGFpbmVyTm9kZSBhcyBXaW5kb3cpO1xuICAgICAgICBjb25zdCB0YXJnZXRJbm5lckhlaWdodCA9IChjb250YWluZXJOb2RlIGFzIFdpbmRvdykuaW5uZXJIZWlnaHQgfHwgKGNvbnRhaW5lck5vZGUgYXMgSFRNTEVsZW1lbnQpLmNsaWVudEhlaWdodDtcbiAgICAgICAgaWYgKHNjcm9sbFRvcCA+PSBlbGVtZW50T2Zmc2V0LnRvcCAtIChvZmZzZXRUb3AgYXMgbnVtYmVyKSAmJiBvZmZzZXRNb2RlLnRvcCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50T2Zmc2V0LndpZHRoO1xuICAgICAgICAgICAgY29uc3QgdG9wID0gY29udGFpbmVyUmVjdC50b3AgKyAob2Zmc2V0VG9wIGFzIG51bWJlcik7XG4gICAgICAgICAgICB0aGlzLnNldEFmZml4U3R5bGUoZSwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICBsZWZ0OiBjb250YWluZXJSZWN0LmxlZnQgKyBlbGVtZW50T2Zmc2V0LmxlZnQsXG4gICAgICAgICAgICAgICAgd2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKHtcbiAgICAgICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1TaXplLmhlaWdodFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBzY3JvbGxUb3AgPD0gZWxlbWVudE9mZnNldC50b3AgKyBlbGVtU2l6ZS5oZWlnaHQgKyAodGhpcy50aHlPZmZzZXRCb3R0b20gYXMgbnVtYmVyKSAtIHRhcmdldElubmVySGVpZ2h0ICYmXG4gICAgICAgICAgICBvZmZzZXRNb2RlLmJvdHRvbVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldEJvdHRvbU9mZnNldCA9IGNvbnRhaW5lck5vZGUgPT09IHdpbmRvdyA/IDAgOiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjb250YWluZXJSZWN0LmJvdHRvbTtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudE9mZnNldC53aWR0aDtcbiAgICAgICAgICAgIHRoaXMuc2V0QWZmaXhTdHlsZShlLCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICAgICAgYm90dG9tOiB0YXJnZXRCb3R0b21PZmZzZXQgKyAodGhpcy50aHlPZmZzZXRCb3R0b20gYXMgbnVtYmVyKSxcbiAgICAgICAgICAgICAgICBsZWZ0OiBjb250YWluZXJSZWN0LmxlZnQgKyBlbGVtZW50T2Zmc2V0LmxlZnQsXG4gICAgICAgICAgICAgICAgd2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKHtcbiAgICAgICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnRPZmZzZXQuaGVpZ2h0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlLnR5cGUgPT09IEFmZml4UmVzcG9uZEV2ZW50cy5yZXNpemUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmFmZml4U3R5bGUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmFmZml4U3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyTm9kZS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBZmZpeFN0eWxlKGUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5hZmZpeFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5wbGFjZWhvbGRlck5vZGUub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBZmZpeFN0eWxlKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZS50eXBlID09PSAncmVzaXplJykge1xuICAgICAgICAgICAgdGhpcy5zeW5jUGxhY2Vob2xkZXJTdHlsZShlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FmZml4L2FmZml4LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBYyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBR2YsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7O0FBRXRELE1BQU0sb0JBQW9CLEdBQUcsV0FBVyxDQUFDO0FBQ3pDLE1BQU0sNkJBQTZCLEdBQUcsRUFBRSxDQUFDO0FBRXpDOzs7O0dBSUc7QUFhSCxNQUFNLE9BQU8sUUFBUTtJQXNDakIsSUFBWSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFh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L0IsQ0FBQztRQUVELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7OEdBclBRLFFBQVEsNENBNkNMLFFBQVE7a0dBN0NYLFFBQVEsb0lBY0csZUFBZSwyREFNZixlQUFlLDJPQTdCekI7Ozs7S0FJVDs7MkZBS1EsUUFBUTtrQkFacEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLFVBQVU7b0JBQ3BCLFFBQVEsRUFBRTs7OztLQUlUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkE4Q1EsTUFBTTsyQkFBQyxRQUFROzRJQTVDaUMsWUFBWTtzQkFBaEUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU9sQyxZQUFZO3NCQUFwQixLQUFLO2dCQU9OLFlBQVk7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBT3JDLGVBQWU7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTWxCLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaHlTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IGRvbSwgc2hhbGxvd0VxdWFsLCBTaW1wbGVSZWN0IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFmZml4UmVzcG9uZEV2ZW50cyB9IGZyb20gJy4vcmVzcG9uZC1ldmVudHMnO1xuXG5jb25zdCBUSFlfQUZGSVhfQ0xTX1BSRUZJWCA9ICd0aHktYWZmaXgnO1xuY29uc3QgVEhZX0FGRklYX0RFRkFVTFRfU0NST0xMX1RJTUUgPSAyMDtcblxuLyoqXG4gKiDlm7rpkonnu4Tku7ZcbiAqIEBuYW1lIHRoeS1hZmZpeFxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWFmZml4JyxcbiAgICBleHBvcnRBczogJ3RoeUFmZml4JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2ICNmaXhlZEVsZW1lbnQ+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFmZml4IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ2ZpeGVkRWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgZml4ZWRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiDorr7nva4gdGh5LWFmZml4IOmcgOimgeebkeWQrOWFtua7muWKqOS6i+S7tueahOWFg+e0oO+8jOWAvOS4uuS4gOS4qui/lOWbnuWvueW6lCBET00g5YWD57Sg55qE5Ye95pWwXG4gICAgICogQGRlZmF1bHQgd2luZG93XG4gICAgICogQHR5cGUgc3RyaW5nIHwgRWxlbWVudCB8IFdpbmRvd1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUNvbnRhaW5lcj86IHN0cmluZyB8IEVsZW1lbnQgfCBXaW5kb3c7XG5cbiAgICAvKipcbiAgICAgKiDot53nprvnqpflj6Ppobbpg6jnvJPlhrLnmoTlgY/np7vph4/pmIjlgLxcbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICB0aHlPZmZzZXRUb3A/OiBudWxsIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6Led56a756qX5Y+j5bqV6YOo57yT5Yay55qE5YGP56e76YeP6ZiI5YC8XG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgICB0aHlPZmZzZXRCb3R0b20/OiBudWxsIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog5Zu65a6a54q25oCB5pS55Y+Y5pe26Kem5Y+R55qE5Zue6LCD5Ye95pWwXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJOb2RlOiBIVE1MRWxlbWVudDtcblxuICAgIHByaXZhdGUgYWZmaXhTdHlsZT86IGFueTtcbiAgICBwcml2YXRlIHBsYWNlaG9sZGVyU3R5bGU/OiBhbnk7XG4gICAgcHJpdmF0ZSBwb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICAgIHByaXZhdGUgb2Zmc2V0Q2hhbmdlZCQgPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIHRpbWVvdXQ/OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBkb2N1bWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBnZXQgY29udGFpbmVyKCk6IEVsZW1lbnQgfCBXaW5kb3cge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMudGh5Q29udGFpbmVyO1xuICAgICAgICByZXR1cm4gKHR5cGVvZiBlbCA9PT0gJ3N0cmluZycgPyB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWwpIDogZWwpIHx8IHdpbmRvdztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHByaXZhdGUgc2Nyb2xsU2VydmljZTogVGh5U2Nyb2xsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgICAgICAvLyBUaGUgd3JhcHBlciB3b3VsZCBzdGF5IGF0IHRoZSBvcmlnaW5hbCBwb3NpdGlvbiBhcyBhIHBsYWNlaG9sZGVyLlxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyTm9kZSA9IGVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5T2Zmc2V0Qm90dG9tLCB0aHlPZmZzZXRUb3AsIHRoeUNvbnRhaW5lciB9ID0gY2hhbmdlcztcblxuICAgICAgICBpZiAodGh5T2Zmc2V0Qm90dG9tIHx8IHRoeU9mZnNldFRvcCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXRDaGFuZ2VkJC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoeUNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3Rlckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgICAgICAuLi5PYmplY3Qua2V5cyhBZmZpeFJlc3BvbmRFdmVudHMpLm1hcChldk5hbWUgPT4gZnJvbUV2ZW50KHRoaXMuY29udGFpbmVyLCBldk5hbWUpKSxcbiAgICAgICAgICAgICAgICB0aGlzLm9mZnNldENoYW5nZWQkLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+ICh7fSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKGF1ZGl0VGltZShUSFlfQUZGSVhfREVGQVVMVF9TQ1JPTExfVElNRSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShlID0+IHRoaXMudXBkYXRlUG9zaXRpb24oZSBhcyBFdmVudCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnVwZGF0ZVBvc2l0aW9uKHt9IGFzIEV2ZW50KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgZ2V0T2Zmc2V0KGVsZW1lbnQ6IEVsZW1lbnQsIHRhcmdldDogRWxlbWVudCB8IFdpbmRvdyB8IHVuZGVmaW5lZCk6IFNpbXBsZVJlY3Qge1xuICAgICAgICBjb25zdCBlbGVtUmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBkb20uZ2V0Q29udGFpbmVyUmVjdCh0YXJnZXQpO1xuXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGFyZ2V0LCB0cnVlKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGFyZ2V0LCBmYWxzZSk7XG5cbiAgICAgICAgY29uc3QgZG9jRWxlbSA9IHRoaXMuZG9jdW1lbnQuYm9keTtcbiAgICAgICAgY29uc3QgY2xpZW50VG9wID0gZG9jRWxlbS5jbGllbnRUb3AgfHwgMDtcbiAgICAgICAgY29uc3QgY2xpZW50TGVmdCA9IGRvY0VsZW0uY2xpZW50TGVmdCB8fCAwO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b3A6IGVsZW1SZWN0LnRvcCAtIGNvbnRhaW5lclJlY3QudG9wICsgc2Nyb2xsVG9wIC0gY2xpZW50VG9wLFxuICAgICAgICAgICAgbGVmdDogZWxlbVJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdCArIHNjcm9sbExlZnQgLSBjbGllbnRMZWZ0LFxuICAgICAgICAgICAgd2lkdGg6IGVsZW1SZWN0LndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBlbGVtUmVjdC5oZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFmZml4U3R5bGUoZTogRXZlbnQsIGFmZml4U3R5bGU/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBZmZpeFN0eWxlID0gdGhpcy5hZmZpeFN0eWxlO1xuICAgICAgICBjb25zdCBpc1dpbmRvdyA9IHRoaXMuY29udGFpbmVyID09PSB3aW5kb3c7XG4gICAgICAgIGlmIChlLnR5cGUgPT09ICdzY3JvbGwnICYmIG9yaWdpbmFsQWZmaXhTdHlsZSAmJiBhZmZpeFN0eWxlICYmIGlzV2luZG93KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNoYWxsb3dFcXVhbChvcmlnaW5hbEFmZml4U3R5bGUsIGFmZml4U3R5bGUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaXhlZCA9ICEhYWZmaXhTdHlsZTtcbiAgICAgICAgY29uc3Qgd3JhcEVsZW1lbnQgPSB0aGlzLmZpeGVkRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHdyYXBFbGVtZW50LCAnY3NzVGV4dCcsIGRvbS5nZXRTdHlsZUFzVGV4dChhZmZpeFN0eWxlKSk7XG4gICAgICAgIHRoaXMuYWZmaXhTdHlsZSA9IGFmZml4U3R5bGU7XG4gICAgICAgIGlmIChmaXhlZCkge1xuICAgICAgICAgICAgd3JhcEVsZW1lbnQuY2xhc3NMaXN0LmFkZChUSFlfQUZGSVhfQ0xTX1BSRUZJWCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3cmFwRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFRIWV9BRkZJWF9DTFNfUFJFRklYKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoYWZmaXhTdHlsZSAmJiAhb3JpZ2luYWxBZmZpeFN0eWxlKSB8fCAoIWFmZml4U3R5bGUgJiYgb3JpZ2luYWxBZmZpeFN0eWxlKSkge1xuICAgICAgICAgICAgdGhpcy50aHlDaGFuZ2UuZW1pdChmaXhlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBsYWNlaG9sZGVyU3R5bGUocGxhY2Vob2xkZXJTdHlsZT86IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFBsYWNlaG9sZGVyU3R5bGUgPSB0aGlzLnBsYWNlaG9sZGVyU3R5bGU7XG4gICAgICAgIGlmIChzaGFsbG93RXF1YWwocGxhY2Vob2xkZXJTdHlsZSwgb3JpZ2luYWxQbGFjZWhvbGRlclN0eWxlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGFjZWhvbGRlck5vZGUsICdjc3NUZXh0JywgZG9tLmdldFN0eWxlQXNUZXh0KHBsYWNlaG9sZGVyU3R5bGUpKTtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlclN0eWxlID0gcGxhY2Vob2xkZXJTdHlsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNQbGFjZWhvbGRlclN0eWxlKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5hZmZpeFN0eWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBsYWNlaG9sZGVyTm9kZSwgJ2Nzc1RleHQnLCAnJyk7XG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXJTdHlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgc3R5bGVPYmogPSB7XG4gICAgICAgICAgICB3aWR0aDogdGhpcy5wbGFjZWhvbGRlck5vZGUub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuZml4ZWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2V0QWZmaXhTdHlsZShlLCB7XG4gICAgICAgICAgICAuLi50aGlzLmFmZml4U3R5bGUsXG4gICAgICAgICAgICAuLi5zdHlsZU9ialxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKHN0eWxlT2JqKTtcbiAgICB9XG5cbiAgICB1cGRhdGVQb3NpdGlvbihlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb250YWluZXJOb2RlID0gdGhpcy5jb250YWluZXI7XG4gICAgICAgIGxldCBvZmZzZXRUb3AgPSB0aGlzLnRoeU9mZnNldFRvcDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxTZXJ2aWNlLmdldFNjcm9sbChjb250YWluZXJOb2RlLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mZnNldCA9IHRoaXMuZ2V0T2Zmc2V0KHRoaXMucGxhY2Vob2xkZXJOb2RlLCBjb250YWluZXJOb2RlKTtcbiAgICAgICAgY29uc3QgZml4ZWROb2RlID0gdGhpcy5maXhlZEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZWxlbVNpemUgPSB7XG4gICAgICAgICAgICB3aWR0aDogZml4ZWROb2RlLm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBmaXhlZE5vZGUub2Zmc2V0SGVpZ2h0XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9mZnNldE1vZGUgPSB7XG4gICAgICAgICAgICB0b3A6IGZhbHNlLFxuICAgICAgICAgICAgYm90dG9tOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICAvLyBEZWZhdWx0IHRvIGBvZmZzZXRUb3A9MGAuXG4gICAgICAgIGlmICh0eXBlb2Ygb2Zmc2V0VG9wICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdGhpcy50aHlPZmZzZXRCb3R0b20gIT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBvZmZzZXRNb2RlLnRvcCA9IHRydWU7XG4gICAgICAgICAgICBvZmZzZXRUb3AgPSAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2Zmc2V0TW9kZS50b3AgPSB0eXBlb2Ygb2Zmc2V0VG9wID09PSAnbnVtYmVyJztcbiAgICAgICAgICAgIG9mZnNldE1vZGUuYm90dG9tID0gdHlwZW9mIHRoaXMudGh5T2Zmc2V0Qm90dG9tID09PSAnbnVtYmVyJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gZG9tLmdldENvbnRhaW5lclJlY3QoY29udGFpbmVyTm9kZSBhcyBXaW5kb3cpO1xuICAgICAgICBjb25zdCB0YXJnZXRJbm5lckhlaWdodCA9IChjb250YWluZXJOb2RlIGFzIFdpbmRvdykuaW5uZXJIZWlnaHQgfHwgKGNvbnRhaW5lck5vZGUgYXMgSFRNTEVsZW1lbnQpLmNsaWVudEhlaWdodDtcbiAgICAgICAgaWYgKHNjcm9sbFRvcCA+PSBlbGVtZW50T2Zmc2V0LnRvcCAtIChvZmZzZXRUb3AgYXMgbnVtYmVyKSAmJiBvZmZzZXRNb2RlLnRvcCkge1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBlbGVtZW50T2Zmc2V0LndpZHRoO1xuICAgICAgICAgICAgY29uc3QgdG9wID0gY29udGFpbmVyUmVjdC50b3AgKyAob2Zmc2V0VG9wIGFzIG51bWJlcik7XG4gICAgICAgICAgICB0aGlzLnNldEFmZml4U3R5bGUoZSwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICBsZWZ0OiBjb250YWluZXJSZWN0LmxlZnQgKyBlbGVtZW50T2Zmc2V0LmxlZnQsXG4gICAgICAgICAgICAgICAgd2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKHtcbiAgICAgICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1TaXplLmhlaWdodFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBzY3JvbGxUb3AgPD0gZWxlbWVudE9mZnNldC50b3AgKyBlbGVtU2l6ZS5oZWlnaHQgKyAodGhpcy50aHlPZmZzZXRCb3R0b20gYXMgbnVtYmVyKSAtIHRhcmdldElubmVySGVpZ2h0ICYmXG4gICAgICAgICAgICBvZmZzZXRNb2RlLmJvdHRvbVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldEJvdHRvbU9mZnNldCA9IGNvbnRhaW5lck5vZGUgPT09IHdpbmRvdyA/IDAgOiB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjb250YWluZXJSZWN0LmJvdHRvbTtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudE9mZnNldC53aWR0aDtcbiAgICAgICAgICAgIHRoaXMuc2V0QWZmaXhTdHlsZShlLCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgICAgICAgICAgYm90dG9tOiB0YXJnZXRCb3R0b21PZmZzZXQgKyAodGhpcy50aHlPZmZzZXRCb3R0b20gYXMgbnVtYmVyKSxcbiAgICAgICAgICAgICAgICBsZWZ0OiBjb250YWluZXJSZWN0LmxlZnQgKyBlbGVtZW50T2Zmc2V0LmxlZnQsXG4gICAgICAgICAgICAgICAgd2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKHtcbiAgICAgICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGVsZW1lbnRPZmZzZXQuaGVpZ2h0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlLnR5cGUgPT09IEFmZml4UmVzcG9uZEV2ZW50cy5yZXNpemUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmFmZml4U3R5bGUgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmFmZml4U3R5bGUucG9zaXRpb24gPT09ICdmaXhlZCcgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnBsYWNlaG9sZGVyTm9kZS5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBZmZpeFN0eWxlKGUsIHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5hZmZpeFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5wbGFjZWhvbGRlck5vZGUub2Zmc2V0V2lkdGhcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRBZmZpeFN0eWxlKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRQbGFjZWhvbGRlclN0eWxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZS50eXBlID09PSAncmVzaXplJykge1xuICAgICAgICAgICAgdGhpcy5zeW5jUGxhY2Vob2xkZXJTdHlsZShlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,10 +1,8 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, Input, ContentChild, TemplateRef, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component, Input, ContentChild, TemplateRef, ChangeDetectionStrategy, booleanAttribute } from '@angular/core';
3
2
  import { isString } from 'ngx-tethys/util';
4
3
  import { useHostRenderer } from '@tethys/cdk/dom';
5
4
  import { ThyIcon } from 'ngx-tethys/icon';
6
5
  import { NgIf, NgTemplateOutlet } from '@angular/common';
7
- import { InputBoolean } from 'ngx-tethys/core';
8
6
  import * as i0 from "@angular/core";
9
7
  const weakTypes = ['primary-weak', 'success-weak', 'warning-weak', 'danger-weak'];
10
8
  const typeIconsMap = {
@@ -100,12 +98,8 @@ export class ThyAlert {
100
98
  this.hostRenderer.updateClass([`thy-alert-${theme}`, `thy-alert-${theme}-${type}`]);
101
99
  }
102
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: "thyType", thyTheme: "thyTheme", thyMessage: "thyMessage", thyIcon: "thyIcon", thyCloseable: "thyCloseable" }, host: { properties: { "class.thy-alert-hidden": "hidden" }, classAttribute: "thy-alert" }, queries: [{ propertyName: "alertOperation", first: true, predicate: ["operation"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-alert-content\">\n <thy-icon *ngIf=\"thyIcon\" class=\"thy-alert-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n <span *ngIf=\"theme === 'naked'\" class=\"thy-alert-tips\">Tips\uFF1A </span>\n <ng-container *ngIf=\"messageTemplate\">\n <ng-template *ngTemplateOutlet=\"messageTemplate\"></ng-template>\n </ng-container>\n <span *ngIf=\"messageText\">{{ messageText }}</span>\n <div class=\"thy-alert-operation\" *ngIf=\"alertOperation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation\"></ng-container>\n </div>\n</div>\n<a href=\"javascript:;\" class=\"thy-alert-close\" *ngIf=\"thyCloseable\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n</a>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAlert, isStandalone: true, selector: "thy-alert", inputs: { thyType: "thyType", thyTheme: "thyTheme", thyMessage: "thyMessage", thyIcon: "thyIcon", thyCloseable: ["thyCloseable", "thyCloseable", booleanAttribute] }, host: { properties: { "class.thy-alert-hidden": "hidden" }, classAttribute: "thy-alert" }, queries: [{ propertyName: "alertOperation", first: true, predicate: ["operation"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-alert-content\">\n <thy-icon *ngIf=\"thyIcon\" class=\"thy-alert-icon\" [thyIconName]=\"thyIcon\"></thy-icon>\n <span *ngIf=\"theme === 'naked'\" class=\"thy-alert-tips\">Tips\uFF1A </span>\n <ng-container *ngIf=\"messageTemplate\">\n <ng-template *ngTemplateOutlet=\"messageTemplate\"></ng-template>\n </ng-container>\n <span *ngIf=\"messageText\">{{ messageText }}</span>\n <div class=\"thy-alert-operation\" *ngIf=\"alertOperation\">\n <ng-container [ngTemplateOutlet]=\"alertOperation\"></ng-container>\n </div>\n</div>\n<a href=\"javascript:;\" class=\"thy-alert-close\" *ngIf=\"thyCloseable\" (click)=\"closeAlert()\">\n <thy-icon thyIconName=\"close\"></thy-icon>\n</a>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
102
  }
105
- __decorate([
106
- InputBoolean(),
107
- __metadata("design:type", Boolean)
108
- ], ThyAlert.prototype, "thyCloseable", void 0);
109
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAlert, decorators: [{
110
104
  type: Component,
111
105
  args: [{ selector: 'thy-alert', changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -121,9 +115,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
121
115
  }], thyIcon: [{
122
116
  type: Input
123
117
  }], thyCloseable: [{
124
- type: Input
118
+ type: Input,
119
+ args: [{ transform: booleanAttribute }]
125
120
  }], alertOperation: [{
126
121
  type: ContentChild,
127
122
  args: ['operation']
128
123
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsWUFBWSxFQUFFLFdBQVcsRUFBYSx1QkFBdUIsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFL0MsTUFBTSxTQUFTLEdBQUcsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztBQWVsRixNQUFNLFlBQVksR0FBMkI7SUFDekMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixPQUFPLEVBQUUsYUFBYTtJQUN0QixNQUFNLEVBQUUsbUJBQW1CO0lBQzNCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsT0FBTyxFQUFFLGtCQUFrQjtJQUMzQixjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLGNBQWMsRUFBRSxtQkFBbUI7SUFDbkMsY0FBYyxFQUFFLGFBQWE7SUFDN0IsYUFBYSxFQUFFLG1CQUFtQjtDQUNyQyxDQUFDO0FBRUY7Ozs7R0FJRztBQVlILE1BQU0sT0FBTyxRQUFRO0lBaUJqQjs7OztPQUlHO0lBQ0gsSUFBYSxPQUFPLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLFFBQVEsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFhLFVBQVUsQ0FBQyxLQUF3QztRQUM1RCxJQUFJLEtBQUssWUFBWSxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNJLE9BQU8sQ0FBQyxLQUF1QjtRQUMvQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBY0Q7UUE5RVEsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUVmLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFJaEIsU0FBSSxHQUFpQixNQUFNLENBQUM7UUFFNUIsaUJBQVksR0FBRyxlQUFlLEVBQUUsQ0FBQztRQUVsQyxVQUFLLEdBQWtCLE1BQU0sQ0FBQztJQW9FdEIsQ0FBQztJQUVoQixRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMzRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVPLFdBQVc7UUFDZix5RUFBeUU7UUFDekUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQWlCLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsYUFBYSxLQUFLLEVBQUUsRUFBRSxhQUFhLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQzs4R0F4R1EsUUFBUTtrR0FBUixRQUFRLGdhQ2xEckIsdXNCQWNBLDRDRGtDYyxJQUFJLDZGQUFFLE9BQU8sc01BQUUsZ0JBQWdCOztBQXlFaEI7SUFBZixZQUFZLEVBQUU7OzhDQUF1QjsyRkF2RXRDLFFBQVE7a0JBWHBCLFNBQVM7K0JBQ0ksV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxXQUFXO3dCQUNsQiwwQkFBMEIsRUFBRSxRQUFRO3FCQUN2QyxjQUNXLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBd0I3QixPQUFPO3NCQUFuQixLQUFLO2dCQVNPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBT08sVUFBVTtzQkFBdEIsS0FBSztnQkFZRixPQUFPO3NCQURWLEtBQUs7Z0JBc0JtQixZQUFZO3NCQUFwQyxLQUFLO2dCQU1xQixjQUFjO3NCQUF4QyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIE9uQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuY29uc3Qgd2Vha1R5cGVzID0gWydwcmltYXJ5LXdlYWsnLCAnc3VjY2Vzcy13ZWFrJywgJ3dhcm5pbmctd2VhaycsICdkYW5nZXItd2VhayddO1xuXG50eXBlIFRoeUFsZXJ0VHlwZSA9XG4gICAgfCAnc3VjY2VzcydcbiAgICB8ICd3YXJuaW5nJ1xuICAgIHwgJ2RhbmdlcidcbiAgICB8ICdpbmZvJ1xuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAncHJpbWFyeS13ZWFrJ1xuICAgIHwgJ3N1Y2Nlc3Mtd2VhaydcbiAgICB8ICd3YXJuaW5nLXdlYWsnXG4gICAgfCAnZGFuZ2VyLXdlYWsnO1xuXG5leHBvcnQgdHlwZSBUaHlBbGVydFRoZW1lID0gJ2ZpbGwnIHwgJ2JvcmRlcmVkJyB8ICduYWtlZCc7XG5cbmNvbnN0IHR5cGVJY29uc01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBzdWNjZXNzOiAnY2hlY2stY2lyY2xlLWZpbGwnLFxuICAgIHdhcm5pbmc6ICd3YXJpbmctZmlsbCcsXG4gICAgZGFuZ2VyOiAnY2xvc2UtY2lyY2xlLWZpbGwnLFxuICAgIGluZm86ICdtaW51cy1jaXJjbGUtZmlsbCcsXG4gICAgcHJpbWFyeTogJ2luZm8tY2lyY2xlLWZpbGwnLFxuICAgICdwcmltYXJ5LXdlYWsnOiAnaW5mby1jaXJjbGUtZmlsbCcsXG4gICAgJ3N1Y2Nlc3Mtd2Vhayc6ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgJ3dhcm5pbmctd2Vhayc6ICd3YXJpbmctZmlsbCcsXG4gICAgJ2Rhbmdlci13ZWFrJzogJ2Nsb3NlLWNpcmNsZS1maWxsJ1xufTtcblxuLyoqXG4gKiDorablkYrmj5DnpLrvvIzlsZXnjrDpnIDopoHlhbPms6jnmoTkv6Hmga9cbiAqIEBuYW1lIHRoeS1hbGVydFxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWFsZXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYWxlcnQnLFxuICAgICAgICAnW2NsYXNzLnRoeS1hbGVydC1oaWRkZW5dJzogJ2hpZGRlbidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFsZXJ0IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgaGlkZGVuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHNob3dJY29uID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgaWNvbjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSB0eXBlOiBUaHlBbGVydFR5cGUgPSAnaW5mbyc7XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgcHVibGljIHRoZW1lOiBUaHlBbGVydFRoZW1lID0gJ2ZpbGwnO1xuXG4gICAgbWVzc2FnZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBtZXNzYWdlVGV4dDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICog5oyH5a6a6K2m5ZGK5o+Q56S655qE57G75Z6LXG4gICAgICogQHR5cGUgc3VjY2VzcyB8IHdhcm5pbmcgfCBkYW5nZXIgfCBpbmZvIHwgcHJpbWFyeSB8IHByaW1hcnktd2VhayB8IHN1Y2Nlc3Mtd2VhayB8IHdhcm5pbmctd2VhayB8IGRhbmdlci13ZWFrXG4gICAgICogQGRlZmF1bHQgaW5mb1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlBbGVydFR5cGUpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyH5a6a6K2m5ZGK5o+Q56S655qE5Li76aKYXG4gICAgICogQHR5cGUgZmlsbCB8IGJvcmRlcmVkIHwgbmFrZWRcbiAgICAgKiBAZGVmYXVsdCBmaWxsXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVRoZW1lKHZhbHVlOiBUaHlBbGVydFRoZW1lKSB7XG4gICAgICAgIHRoaXMudGhlbWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmL7npLrorablkYrmj5DnpLrnmoTlhoXlrrlcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5TWVzc2FnZSh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VUZW1wbGF0ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlVGV4dCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pi+56S66Ieq5a6a5LmJ5Zu+5qCH77yM5Y+v5LygIHRydWUvZmFsc2Ug5o6n5Yi25piv5ZCm5pi+56S65Zu+5qCH77yM5oiW6ICF5Lyg5a2X56ym5Liy5Y675oyH5a6a5Zu+5qCH5ZCN56ewXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbih2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ljb24gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pY29uID0gaXNTdHJpbmcodmFsdWUpID8gdmFsdWUudG9TdHJpbmcoKSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNob3dJY29uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgdGh5SWNvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd0ljb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmljb24gfHwgdHlwZUljb25zTWFwW3RoaXMudHlwZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuWFs+mXreitpuWRiuahhuaMiemSru+8jOm7mOiupOS4jeaYvuekulxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeUNsb3NlYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIOitpuWRiuahhuiHquWumuS5ieaTjeS9nFxuICAgICAqIEB0eXBlIFRlbXBsYXRlUmVmXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnb3BlcmF0aW9uJykgYWxlcnRPcGVyYXRpb246IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKChjaGFuZ2VzLnRoeVRoZW1lICYmICFjaGFuZ2VzLnRoeVRoZW1lLmZpcnN0Q2hhbmdlKSB8fCAoY2hhbmdlcy50aHlUeXBlICYmICFjaGFuZ2VzLnRoeVR5cGUuZmlyc3RDaGFuZ2UpKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZUFsZXJ0KCkge1xuICAgICAgICB0aGlzLmhpZGRlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzcygpIHtcbiAgICAgICAgLy8g5YW85a65ICdwcmltYXJ5LXdlYWsnLCAnc3VjY2Vzcy13ZWFrJywgJ3dhcm5pbmctd2VhaycsICdkYW5nZXItd2VhaycgdHlwZXNcbiAgICAgICAgbGV0IHRoZW1lID0gdGhpcy50aGVtZTtcbiAgICAgICAgbGV0IHR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgIGlmICh3ZWFrVHlwZXMuaW5jbHVkZXModGhpcy50eXBlKSkge1xuICAgICAgICAgICAgdGhlbWUgPSAnYm9yZGVyZWQnO1xuICAgICAgICAgICAgdHlwZSA9IHRoaXMudHlwZS5zcGxpdCgnLScpWzBdIGFzIFRoeUFsZXJ0VHlwZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhbYHRoeS1hbGVydC0ke3RoZW1lfWAsIGB0aHktYWxlcnQtJHt0aGVtZX0tJHt0eXBlfWBdKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGh5LWFsZXJ0LWNvbnRlbnRcIj5cbiAgPHRoeS1pY29uICpuZ0lmPVwidGh5SWNvblwiIGNsYXNzPVwidGh5LWFsZXJ0LWljb25cIiBbdGh5SWNvbk5hbWVdPVwidGh5SWNvblwiPjwvdGh5LWljb24+XG4gIDxzcGFuICpuZ0lmPVwidGhlbWUgPT09ICduYWtlZCdcIiBjbGFzcz1cInRoeS1hbGVydC10aXBzXCI+VGlwc++8miA8L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNzYWdlVGVtcGxhdGVcIj5cbiAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZXNzYWdlVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHNwYW4gKm5nSWY9XCJtZXNzYWdlVGV4dFwiPnt7IG1lc3NhZ2VUZXh0IH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwidGh5LWFsZXJ0LW9wZXJhdGlvblwiICpuZ0lmPVwiYWxlcnRPcGVyYXRpb25cIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsZXJ0T3BlcmF0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG48YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJ0aHktYWxlcnQtY2xvc2VcIiAqbmdJZj1cInRoeUNsb3NlYWJsZVwiIChjbGljayk9XCJjbG9zZUFsZXJ0KClcIj5cbiAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiY2xvc2VcIj48L3RoeS1pY29uPlxuPC9hPlxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9hbGVydC9hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFFTCxZQUFZLEVBQ1osV0FBVyxFQUVYLHVCQUF1QixFQUV2QixnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV6RCxNQUFNLFNBQVMsR0FBRyxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBZWxGLE1BQU0sWUFBWSxHQUEyQjtJQUN6QyxPQUFPLEVBQUUsbUJBQW1CO0lBQzVCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixPQUFPLEVBQUUsa0JBQWtCO0lBQzNCLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsY0FBYyxFQUFFLG1CQUFtQjtJQUNuQyxjQUFjLEVBQUUsYUFBYTtJQUM3QixhQUFhLEVBQUUsbUJBQW1CO0NBQ3JDLENBQUM7QUFFRjs7OztHQUlHO0FBWUgsTUFBTSxPQUFPLFFBQVE7SUFpQmpCOzs7O09BSUc7SUFDSCxJQUFhLE9BQU8sQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJ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LElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBd0I3QixPQUFPO3NCQUFuQixLQUFLO2dCQVNPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBT08sVUFBVTtzQkFBdEIsS0FBSztnQkFZRixPQUFPO3NCQURWLEtBQUs7Z0JBc0JrQyxZQUFZO3NCQUFuRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU1YLGNBQWM7c0JBQXhDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IHVzZUhvc3RSZW5kZXJlciB9IGZyb20gJ0B0ZXRoeXMvY2RrL2RvbSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCB3ZWFrVHlwZXMgPSBbJ3ByaW1hcnktd2VhaycsICdzdWNjZXNzLXdlYWsnLCAnd2FybmluZy13ZWFrJywgJ2Rhbmdlci13ZWFrJ107XG5cbnR5cGUgVGh5QWxlcnRUeXBlID1cbiAgICB8ICdzdWNjZXNzJ1xuICAgIHwgJ3dhcm5pbmcnXG4gICAgfCAnZGFuZ2VyJ1xuICAgIHwgJ2luZm8nXG4gICAgfCAncHJpbWFyeSdcbiAgICB8ICdwcmltYXJ5LXdlYWsnXG4gICAgfCAnc3VjY2Vzcy13ZWFrJ1xuICAgIHwgJ3dhcm5pbmctd2VhaydcbiAgICB8ICdkYW5nZXItd2Vhayc7XG5cbmV4cG9ydCB0eXBlIFRoeUFsZXJ0VGhlbWUgPSAnZmlsbCcgfCAnYm9yZGVyZWQnIHwgJ25ha2VkJztcblxuY29uc3QgdHlwZUljb25zTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHN1Y2Nlc3M6ICdjaGVjay1jaXJjbGUtZmlsbCcsXG4gICAgd2FybmluZzogJ3dhcmluZy1maWxsJyxcbiAgICBkYW5nZXI6ICdjbG9zZS1jaXJjbGUtZmlsbCcsXG4gICAgaW5mbzogJ21pbnVzLWNpcmNsZS1maWxsJyxcbiAgICBwcmltYXJ5OiAnaW5mby1jaXJjbGUtZmlsbCcsXG4gICAgJ3ByaW1hcnktd2Vhayc6ICdpbmZvLWNpcmNsZS1maWxsJyxcbiAgICAnc3VjY2Vzcy13ZWFrJzogJ2NoZWNrLWNpcmNsZS1maWxsJyxcbiAgICAnd2FybmluZy13ZWFrJzogJ3dhcmluZy1maWxsJyxcbiAgICAnZGFuZ2VyLXdlYWsnOiAnY2xvc2UtY2lyY2xlLWZpbGwnXG59O1xuXG4vKipcbiAqIOitpuWRiuaPkOekuu+8jOWxleeOsOmcgOimgeWFs+azqOeahOS/oeaBr1xuICogQG5hbWUgdGh5LWFsZXJ0XG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYWxlcnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1hbGVydCcsXG4gICAgICAgICdbY2xhc3MudGh5LWFsZXJ0LWhpZGRlbl0nOiAnaGlkZGVuJ1xuICAgIH0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5SWNvbiwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgVGh5QWxlcnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSBoaWRkZW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc2hvd0ljb24gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBpY29uOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHR5cGU6IFRoeUFsZXJ0VHlwZSA9ICdpbmZvJztcblxuICAgIHByaXZhdGUgaG9zdFJlbmRlcmVyID0gdXNlSG9zdFJlbmRlcmVyKCk7XG5cbiAgICBwdWJsaWMgdGhlbWU6IFRoeUFsZXJ0VGhlbWUgPSAnZmlsbCc7XG5cbiAgICBtZXNzYWdlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIG1lc3NhZ2VUZXh0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDmjIflrprorablkYrmj5DnpLrnmoTnsbvlnotcbiAgICAgKiBAdHlwZSBzdWNjZXNzIHwgd2FybmluZyB8IGRhbmdlciB8IGluZm8gfCBwcmltYXJ5IHwgcHJpbWFyeS13ZWFrIHwgc3VjY2Vzcy13ZWFrIHwgd2FybmluZy13ZWFrIHwgZGFuZ2VyLXdlYWtcbiAgICAgKiBAZGVmYXVsdCBpbmZvXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeVR5cGUodmFsdWU6IFRoeUFsZXJ0VHlwZSkge1xuICAgICAgICB0aGlzLnR5cGUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmjIflrprorablkYrmj5DnpLrnmoTkuLvpophcbiAgICAgKiBAdHlwZSBmaWxsIHwgYm9yZGVyZWQgfCBuYWtlZFxuICAgICAqIEBkZWZhdWx0IGZpbGxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgdGh5VGhlbWUodmFsdWU6IFRoeUFsZXJ0VGhlbWUpIHtcbiAgICAgICAgdGhpcy50aGVtZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaYvuekuuitpuWRiuaPkOekuueahOWGheWuuVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNldCB0aHlNZXNzYWdlKHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVRlbXBsYXRlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VUZXh0ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmmL7npLroh6rlrprkuYnlm77moIfvvIzlj6/kvKAgdHJ1ZS9mYWxzZSDmjqfliLbmmK/lkKbmmL7npLrlm77moIfvvIzmiJbogIXkvKDlrZfnrKbkuLLljrvmjIflrprlm77moIflkI3np7BcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlJY29uKHZhbHVlOiBib29sZWFuIHwgc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zaG93SWNvbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmljb24gPSBpc1N0cmluZyh2YWx1ZSkgPyB2YWx1ZS50b1N0cmluZygpIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0ljb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0aHlJY29uKCkge1xuICAgICAgICBpZiAodGhpcy5zaG93SWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaWNvbiB8fCB0eXBlSWNvbnNNYXBbdGhpcy50eXBlXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S65YWz6Zet6K2m5ZGK5qGG5oyJ6ZKu77yM6buY6K6k5LiN5pi+56S6XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5Q2xvc2VhYmxlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6K2m5ZGK5qGG6Ieq5a6a5LmJ5pON5L2cXG4gICAgICogQHR5cGUgVGVtcGxhdGVSZWZcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdvcGVyYXRpb24nKSBhbGVydE9wZXJhdGlvbjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoKGNoYW5nZXMudGh5VGhlbWUgJiYgIWNoYW5nZXMudGh5VGhlbWUuZmlyc3RDaGFuZ2UpIHx8IChjaGFuZ2VzLnRoeVR5cGUgJiYgIWNoYW5nZXMudGh5VHlwZS5maXJzdENoYW5nZSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3MoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlQWxlcnQoKSB7XG4gICAgICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzKCkge1xuICAgICAgICAvLyDlhbzlrrkgJ3ByaW1hcnktd2VhaycsICdzdWNjZXNzLXdlYWsnLCAnd2FybmluZy13ZWFrJywgJ2Rhbmdlci13ZWFrJyB0eXBlc1xuICAgICAgICBsZXQgdGhlbWUgPSB0aGlzLnRoZW1lO1xuICAgICAgICBsZXQgdHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgaWYgKHdlYWtUeXBlcy5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICAgICAgICB0aGVtZSA9ICdib3JkZXJlZCc7XG4gICAgICAgICAgICB0eXBlID0gdGhpcy50eXBlLnNwbGl0KCctJylbMF0gYXMgVGh5QWxlcnRUeXBlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnVwZGF0ZUNsYXNzKFtgdGh5LWFsZXJ0LSR7dGhlbWV9YCwgYHRoeS1hbGVydC0ke3RoZW1lfS0ke3R5cGV9YF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktYWxlcnQtY29udGVudFwiPlxuICA8dGh5LWljb24gKm5nSWY9XCJ0aHlJY29uXCIgY2xhc3M9XCJ0aHktYWxlcnQtaWNvblwiIFt0aHlJY29uTmFtZV09XCJ0aHlJY29uXCI+PC90aHktaWNvbj5cbiAgPHNwYW4gKm5nSWY9XCJ0aGVtZSA9PT0gJ25ha2VkJ1wiIGNsYXNzPVwidGh5LWFsZXJ0LXRpcHNcIj5UaXBz77yaIDwvc3Bhbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lc3NhZ2VUZW1wbGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1lc3NhZ2VUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuICA8c3BhbiAqbmdJZj1cIm1lc3NhZ2VUZXh0XCI+e3sgbWVzc2FnZVRleHQgfX08L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJ0aHktYWxlcnQtb3BlcmF0aW9uXCIgKm5nSWY9XCJhbGVydE9wZXJhdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWxlcnRPcGVyYXRpb25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cInRoeS1hbGVydC1jbG9zZVwiICpuZ0lmPVwidGh5Q2xvc2VhYmxlXCIgKGNsaWNrKT1cImNsb3NlQWxlcnQoKVwiPlxuICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJjbG9zZVwiPjwvdGh5LWljb24+XG48L2E+XG4iXX0=
@@ -1,11 +1,10 @@
1
- import { __decorate, __metadata } from "tslib";
2
1
  import { Platform } from '@angular/cdk/platform';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, NgZone, Output, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Inject, Input, NgZone, Output, Renderer2, ViewChild, ViewEncapsulation, booleanAttribute, numberAttribute } from '@angular/core';
4
3
  import { Subject, fromEvent } from 'rxjs';
5
4
  import { takeUntil, throttleTime } from 'rxjs/operators';
6
5
  import { DOCUMENT, NgClass, NgIf, NgStyle, NgTemplateOutlet } from '@angular/common';
7
6
  import { ThyAffix } from 'ngx-tethys/affix';
8
- import { InputBoolean, InputNumber, ThyScrollService } from 'ngx-tethys/core';
7
+ import { ThyScrollService } from 'ngx-tethys/core';
9
8
  import { getOffset } from 'ngx-tethys/util';
10
9
  import * as i0 from "@angular/core";
11
10
  import * as i1 from "@angular/cdk/platform";
@@ -190,7 +189,7 @@ export class ThyAnchor {
190
189
  }
191
190
  }
192
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAnchor, deps: [{ token: DOCUMENT }, { token: i0.ChangeDetectorRef }, { token: i1.Platform }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i2.ThyScrollService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ThyAnchor, isStandalone: true, selector: "thy-anchor", inputs: { thyAffix: "thyAffix", thyBounds: "thyBounds", thyOffsetTop: "thyOffsetTop", thyContainer: "thyContainer", thyDirection: "thyDirection" }, outputs: { thyClick: "thyClick", thyScroll: "thyScroll" }, viewQueries: [{ propertyName: "ink", first: true, predicate: ["ink"], descendants: true }], exportAs: ["thyAnchor"], usesOnChanges: true, ngImport: i0, template: `
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyAnchor, isStandalone: true, selector: "thy-anchor", inputs: { thyAffix: ["thyAffix", "thyAffix", booleanAttribute], thyBounds: ["thyBounds", "thyBounds", numberAttribute], thyOffsetTop: ["thyOffsetTop", "thyOffsetTop", numberAttribute], thyContainer: "thyContainer", thyDirection: "thyDirection" }, outputs: { thyClick: "thyClick", thyScroll: "thyScroll" }, viewQueries: [{ propertyName: "ink", first: true, predicate: ["ink"], descendants: true }], exportAs: ["thyAnchor"], usesOnChanges: true, ngImport: i0, template: `
194
193
  <thy-affix *ngIf="thyAffix; else content" [thyOffsetTop]="thyOffsetTop" [thyContainer]="container">
195
194
  <ng-template [ngTemplateOutlet]="content"></ng-template>
196
195
  </thy-affix>
@@ -209,18 +208,6 @@ export class ThyAnchor {
209
208
  </ng-template>
210
209
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyAffix, selector: "thy-affix", inputs: ["thyContainer", "thyOffsetTop", "thyOffsetBottom"], outputs: ["thyChange"], exportAs: ["thyAffix"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
211
210
  }
212
- __decorate([
213
- InputBoolean(),
214
- __metadata("design:type", Object)
215
- ], ThyAnchor.prototype, "thyAffix", void 0);
216
- __decorate([
217
- InputNumber(),
218
- __metadata("design:type", Object)
219
- ], ThyAnchor.prototype, "thyBounds", void 0);
220
- __decorate([
221
- InputNumber(),
222
- __metadata("design:type", Number)
223
- ], ThyAnchor.prototype, "thyOffsetTop", void 0);
224
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyAnchor, decorators: [{
225
212
  type: Component,
226
213
  args: [{
@@ -257,11 +244,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
257
244
  type: ViewChild,
258
245
  args: ['ink']
259
246
  }], thyAffix: [{
260
- type: Input
247
+ type: Input,
248
+ args: [{ transform: booleanAttribute }]
261
249
  }], thyBounds: [{
262
- type: Input
250
+ type: Input,
251
+ args: [{ transform: numberAttribute }]
263
252
  }], thyOffsetTop: [{
264
- type: Input
253
+ type: Input,
254
+ args: [{ transform: numberAttribute }]
265
255
  }], thyContainer: [{
266
256
  type: Input
267
257
  }], thyDirection: [{
@@ -271,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
271
261
  }], thyScroll: [{
272
262
  type: Output
273
263
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmNob3IvYW5jaG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFRNUMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7QUFFckM7OztHQUdHO0FBNEJILE1BQU0sT0FBTyxTQUFTO0lBMERsQixZQUM4QixRQUFhLEVBQy9CLEdBQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLElBQVksRUFDWixRQUFtQixFQUNuQixhQUErQixFQUMvQixVQUFzQjtRQU5KLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFB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QyxJQUFJLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7aUJBQ2hFOzswQkE0RFEsTUFBTTsyQkFBQyxRQUFRO3FNQTFETSxHQUFHO3NCQUE1QixTQUFTO3VCQUFDLEtBQUs7Z0JBS1MsUUFBUTtzQkFBaEMsS0FBSztnQkFPTixTQUFTO3NCQUZSLEtBQUs7Z0JBU04sWUFBWTtzQkFGWCxLQUFLO2dCQVFHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFLYSxRQUFRO3NCQUExQixNQUFNO2dCQUtZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRE9DVU1FTlQsIE5nQ2xhc3MsIE5nSWYsIE5nU3R5bGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5QWZmaXggfSBmcm9tICduZ3gtdGV0aHlzL2FmZml4JztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIsIFRoeVNjcm9sbFNlcnZpY2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgZ2V0T2Zmc2V0IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IFRoeUFuY2hvckxpbmsgfSBmcm9tICcuL2FuY2hvci1saW5rLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBTZWN0aW9uIHtcbiAgICBsaW5rQ29tcG9uZW50OiBUaHlBbmNob3JMaW5rO1xuICAgIHRvcDogbnVtYmVyO1xufVxuXG5jb25zdCBzaGFycE1hdGNoZXJSZWd4ID0gLyMoW14jXSspJC87XG5cbi8qKlxuICog6ZSa54K557uE5Lu2XG4gKiBAbmFtZSB0aHktYW5jaG9yXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWFuY2hvcicsXG4gICAgZXhwb3J0QXM6ICd0aHlBbmNob3InLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDx0aHktYWZmaXggKm5nSWY9XCJ0aHlBZmZpeDsgZWxzZSBjb250ZW50XCIgW3RoeU9mZnNldFRvcF09XCJ0aHlPZmZzZXRUb3BcIiBbdGh5Q29udGFpbmVyXT1cImNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RoeS1hZmZpeD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGh5LWFuY2hvci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICd0aHktYW5jaG9yLXdyYXBwZXItaG9yaXpvbnRhbCc6IHRoeURpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnIH1cIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIndyYXBwZXJTdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktYW5jaG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aHktYW5jaG9yLWlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1hbmNob3ItaW5rLWZ1bGxcIiAjaW5rPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUFmZml4LCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ1N0eWxlLCBOZ0NsYXNzXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlBbmNob3IgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgnaW5rJykgcHJpdmF0ZSBpbmshOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICog5Zu65a6a5qih5byPXG4gICAgICovXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHRoeUFmZml4ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOmUmueCueWMuuWfn+i+ueeVjO+8jOWNleS9je+8mnB4XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASW5wdXROdW1iZXIoKVxuICAgIHRoeUJvdW5kcyA9IDU7XG5cbiAgICAvKipcbiAgICAgKiDnvJPlhrLnmoTlgY/np7vph4/pmIjlgLxcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dE51bWJlcigpXG4gICAgdGh5T2Zmc2V0VG9wPzogbnVtYmVyID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICog5oyH5a6a5rua5Yqo55qE5a655ZmoXG4gICAgICogQHR5cGUgc3RyaW5nIHwgSFRNTEVsZW1lbnRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDb250YWluZXI/OiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIOiuvue9ruWvvOiIquaWueWQkVxuICAgICAqIEB0eXBlICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXJlY3Rpb246ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAndmVydGljYWwnO1xuXG4gICAgLyoqXG4gICAgICog54K55Ye76aG56Kem5Y+RXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlBbmNob3JMaW5rPigpO1xuXG4gICAgLyoqXG4gICAgICog5rua5Yqo5Yiw5p+Q6ZSa54K55pe26Kem5Y+RXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeVNjcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5QW5jaG9yTGluaz4oKTtcblxuICAgIHZpc2libGUgPSBmYWxzZTtcblxuICAgIHdyYXBwZXJTdHlsZSA9IHsgJ21heC1oZWlnaHQnOiAnMTAwdmgnIH07XG5cbiAgICBjb250YWluZXI/OiBIVE1MRWxlbWVudCB8IFdpbmRvdztcblxuICAgIHByaXZhdGUgbGlua3M6IFRoeUFuY2hvckxpbmtbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBhbmltYXRpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBoYW5kbGVTY3JvbGxUaW1lb3V0SUQgPSAtMTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgc2Nyb2xsU2VydmljZTogVGh5U2Nyb2xsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICAgKSB7fVxuXG4gICAgcmVnaXN0ZXJMaW5rKGxpbms6IFRoeUFuY2hvckxpbmspOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rcy5wdXNoKGxpbmspO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXJMaW5rKGxpbms6IFRoeUFuY2hvckxpbmspOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rcy5zcGxpY2UodGhpcy5saW5rcy5pbmRleE9mKGxpbmspLCAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lciB8fCB3aW5kb3c7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLndhcm5pbmdQcm9tcHQoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlclNjcm9sbEV2ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhhbmRsZVNjcm9sbFRpbWVvdXRJRCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YXJuaW5nUHJvbXB0KCkge1xuICAgICAgICBpZiAodGhpcy50aHlEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSB0aGlzLmxpbmtzLnNvbWUobGluayA9PlxuICAgICAgICAgICAgICAgIEFycmF5LmZyb20obGluaz8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uY2hpbGROb2Rlcyk/LnNvbWUoKGl0ZW06IEhUTUxFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICBpdGVtPy5jbGFzc05hbWUuaW5jbHVkZXMoJ3RoeS1hbmNob3ItbGluaycpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChoYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkFuY2hvciBsaW5rIG5lc3RpbmcgaXMgbm90IHN1cHBvcnRlZCB3aGVuICdBbmNob3InIGRpcmVjdGlvbiBpcyBob3Jpem9udGFsLlwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTY3JvbGxFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZ2V0Q29udGFpbmVyKCksICdzY3JvbGwnLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgICAgICAgICAgICAucGlwZSh0aHJvdHRsZVRpbWUoNTApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhbmRsZVNjcm9sbCgpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIEJyb3dzZXIgd291bGQgbWFpbnRhaW4gdGhlIHNjcm9sbGluZyBwb3NpdGlvbiB3aGVuIHJlZnJlc2hpbmcuXG4gICAgICAgIC8vIFNvIHdlIGhhdmUgdG8gZGVsYXkgY2FsY3VsYXRpb24gaW4gYXZvaWQgb2YgZ2V0dGluZyBhIGluY29ycmVjdCByZXN1bHQuXG4gICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsVGltZW91dElEID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmhhbmRsZVNjcm9sbCgpKTtcbiAgICB9XG5cbiAgICBoYW5kbGVTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyB0aGlzLmNvbnRhaW5lciA6IHRoaXMuZG9jdW1lbnQ7XG5cbiAgICAgICAgY29uc3Qgc2VjdGlvbnM6IFNlY3Rpb25bXSA9IFtdO1xuICAgICAgICBjb25zdCBzY29wZSA9ICh0aGlzLnRoeU9mZnNldFRvcCB8fCAwKSArIHRoaXMudGh5Qm91bmRzO1xuICAgICAgICB0aGlzLmxpbmtzLmZvckVhY2gobGlua0NvbXBvbmVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaGFycExpbmtNYXRjaCA9IHNoYXJwTWF0Y2hlclJlZ3guZXhlYyhsaW5rQ29tcG9uZW50LnRoeUhyZWYudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBpZiAoIXNoYXJwTGlua01hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke3NoYXJwTGlua01hdGNoWzFdfWApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvcCA9IGdldE9mZnNldCh0YXJnZXQsIHRoaXMuZ2V0Q29udGFpbmVyKCkpLnRvcDtcbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgc2NvcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy52aXNpYmxlID0gISFzZWN0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtYXhTZWN0aW9uID0gc2VjdGlvbnMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiAoY3Vyci50b3AgPiBwcmV2LnRvcCA/IGN1cnIgOiBwcmV2KSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFjdGl2ZShtYXhTZWN0aW9uLmxpbmtDb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJBY3RpdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua3MuZm9yRWFjaChpID0+IHtcbiAgICAgICAgICAgIGkudW5zZXRBY3RpdmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVBY3RpdmUobGlua0NvbXBvbmVudDogVGh5QW5jaG9yTGluayk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyQWN0aXZlKCk7XG4gICAgICAgIGxpbmtDb21wb25lbnQuc2V0QWN0aXZlKCk7XG4gICAgICAgIGNvbnN0IGxpbmtOb2RlID0gbGlua0NvbXBvbmVudC5nZXRMaW5rVGl0bGVFbGVtZW50KCk7XG4gICAgICAgIGNvbnN0IGhvcml6b250YWxBbmNob3IgPSB0aGlzLnRoeURpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnO1xuXG4gICAgICAgIHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gaG9yaXpvbnRhbEFuY2hvciA/ICcnIDogYCR7bGlua05vZGUub2Zmc2V0VG9wfXB4YDtcbiAgICAgICAgdGhpcy5pbmsubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBob3Jpem9udGFsQW5jaG9yID8gJycgOiBgJHtsaW5rTm9kZS5jbGllbnRIZWlnaHR9cHhgO1xuICAgICAgICB0aGlzLmluay5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBob3Jpem9udGFsQW5jaG9yID8gYCR7bGlua05vZGUub2Zmc2V0TGVmdH1weGAgOiAnJztcbiAgICAgICAgdGhpcy5pbmsubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IGhvcml6b250YWxBbmNob3IgPyBgJHtsaW5rTm9kZS5jbGllbnRXaWR0aH1weGAgOiAnJztcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRWaXNpYmxlKCk7XG4gICAgICAgIHRoaXMudGh5U2Nyb2xsLmVtaXQobGlua0NvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWaXNpYmxlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aXNpYmxlID0gdGhpcy52aXNpYmxlO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ2xhc3NuYW1lID0gJ3Zpc2libGUnO1xuICAgICAgICBpZiAodGhpcy5pbmspIHtcbiAgICAgICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmluay5uYXRpdmVFbGVtZW50LCB2aXNpYmxlQ2xhc3NuYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmluay5uYXRpdmVFbGVtZW50LCB2aXNpYmxlQ2xhc3NuYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZVNjcm9sbFRvKGxpbmtDb21wb25lbnQ6IFRoeUFuY2hvckxpbmspOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IHRoaXMuY29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyB0aGlzLmNvbnRhaW5lciA6IHRoaXMuZG9jdW1lbnQ7XG4gICAgICAgIGNvbnN0IGxpbmtFbGVtZW50OiBIVE1MRWxlbWVudCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGxpbmtDb21wb25lbnQudGh5SHJlZik7XG4gICAgICAgIGlmICghbGlua0VsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxTZXJ2aWNlLmdldFNjcm9sbCh0aGlzLmdldENvbnRhaW5lcigpKTtcbiAgICAgICAgY29uc3QgZWxlbWVudE9mZnNldFRvcCA9IGdldE9mZnNldChsaW5rRWxlbWVudCwgdGhpcy5nZXRDb250YWluZXIoKSkudG9wO1xuICAgICAgICBjb25zdCB0YXJnZXRTY3JvbGxUb3AgPSBjb250YWluZXJTY3JvbGxUb3AgKyBlbGVtZW50T2Zmc2V0VG9wIC0gKHRoaXMudGh5T2Zmc2V0VG9wIHx8IDApO1xuICAgICAgICB0aGlzLnNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG8odGhpcy5nZXRDb250YWluZXIoKSwgdGFyZ2V0U2Nyb2xsVG9wLCB1bmRlZmluZWQsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhhbmRsZUFjdGl2ZShsaW5rQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy50aHlDbGljay5lbWl0KGxpbmtDb21wb25lbnQpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyB0aHlPZmZzZXRUb3AsIHRoeUNvbnRhaW5lciB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeU9mZnNldFRvcCkge1xuICAgICAgICAgICAgdGhpcy53cmFwcGVyU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgJ21heC1oZWlnaHQnOiBgY2FsYygxMDB2aCAtICR7dGhpcy50aHlPZmZzZXRUb3B9cHgpYFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGh5Q29udGFpbmVyICYmIHRoaXMudGh5Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnRoeUNvbnRhaW5lcjtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID0gdHlwZW9mIGNvbnRhaW5lciA9PT0gJ3N0cmluZycgPyB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoY29udGFpbmVyKSA6IGNvbnRhaW5lcjtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJTY3JvbGxFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmNob3IvYW5jaG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFRNUMsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7QUFFckM7OztHQUdHO0FBNEJILE1BQU0sT0FBTyxTQUFTO0lBd0RsQixZQUM4QixRQUFhLEVBQy9CLEdBQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLElBQVksRUFDWixRQUFtQixFQUNuQixhQUErQixFQUMvQixVQUFzQjtRQU5KLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIs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QU8sQ0FBQztpQkFDaEU7OzBCQTBEUSxNQUFNOzJCQUFDLFFBQVE7cU1BeERNLEdBQUc7c0JBQTVCLFNBQVM7dUJBQUMsS0FBSztnQkFLd0IsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNdEMsU0FBUztzQkFEUixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPckMsWUFBWTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPNUIsWUFBWTtzQkFBcEIsS0FBSztnQkFNRyxZQUFZO3NCQUFwQixLQUFLO2dCQUthLFFBQVE7c0JBQTFCLE1BQU07Z0JBS1ksU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGhyb3R0bGVUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBET0NVTUVOVCwgTmdDbGFzcywgTmdJZiwgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlBZmZpeCB9IGZyb20gJ25neC10ZXRoeXMvYWZmaXgnO1xuaW1wb3J0IHsgVGh5U2Nyb2xsU2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBnZXRPZmZzZXQgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHsgVGh5QW5jaG9yTGluayB9IGZyb20gJy4vYW5jaG9yLWxpbmsuY29tcG9uZW50JztcblxuaW50ZXJmYWNlIFNlY3Rpb24ge1xuICAgIGxpbmtDb21wb25lbnQ6IFRoeUFuY2hvckxpbms7XG4gICAgdG9wOiBudW1iZXI7XG59XG5cbmNvbnN0IHNoYXJwTWF0Y2hlclJlZ3ggPSAvIyhbXiNdKykkLztcblxuLyoqXG4gKiDplJrngrnnu4Tku7ZcbiAqIEBuYW1lIHRoeS1hbmNob3JcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktYW5jaG9yJyxcbiAgICBleHBvcnRBczogJ3RoeUFuY2hvcicsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHRoeS1hZmZpeCAqbmdJZj1cInRoeUFmZml4OyBlbHNlIGNvbnRlbnRcIiBbdGh5T2Zmc2V0VG9wXT1cInRoeU9mZnNldFRvcFwiIFt0aHlDb250YWluZXJdPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdGh5LWFmZml4PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aHktYW5jaG9yLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3RoeS1hbmNob3Itd3JhcHBlci1ob3Jpem9udGFsJzogdGh5RGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgfVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwid3JhcHBlclN0eWxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1hbmNob3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRoeS1hbmNob3ItaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGh5LWFuY2hvci1pbmstZnVsbFwiICNpbms+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5QWZmaXgsIE5nVGVtcGxhdGVPdXRsZXQsIE5nU3R5bGUsIE5nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUFuY2hvciBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdpbmsnKSBwcml2YXRlIGluayE6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiDlm7rlrprmqKHlvI9cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgdGh5QWZmaXggPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog6ZSa54K55Yy65Z+f6L6555WM77yM5Y2V5L2N77yacHhcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHRoeUJvdW5kcyA9IDU7XG5cbiAgICAvKipcbiAgICAgKiDnvJPlhrLnmoTlgY/np7vph4/pmIjlgLxcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICAgIHRoeU9mZnNldFRvcD86IG51bWJlciA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIOaMh+Wumua7muWKqOeahOWuueWZqFxuICAgICAqIEB0eXBlIHN0cmluZyB8IEhUTUxFbGVtZW50XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29udGFpbmVyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgICAvKipcbiAgICAgKiDorr7nva7lr7zoiKrmlrnlkJFcbiAgICAgKiBAdHlwZSAndmVydGljYWwnIHwgJ2hvcml6b250YWwnXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RGlyZWN0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKlxuICAgICAqIOeCueWHu+mhueinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5QW5jaG9yTGluaz4oKTtcblxuICAgIC8qKlxuICAgICAqIOa7muWKqOWIsOafkOmUmueCueaXtuinpuWPkVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlTY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeUFuY2hvckxpbms+KCk7XG5cbiAgICB2aXNpYmxlID0gZmFsc2U7XG5cbiAgICB3cmFwcGVyU3R5bGUgPSB7ICdtYXgtaGVpZ2h0JzogJzEwMHZoJyB9O1xuXG4gICAgY29udGFpbmVyPzogSFRNTEVsZW1lbnQgfCBXaW5kb3c7XG5cbiAgICBwcml2YXRlIGxpbmtzOiBUaHlBbmNob3JMaW5rW10gPSBbXTtcblxuICAgIHByaXZhdGUgYW5pbWF0aW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgaGFuZGxlU2Nyb2xsVGltZW91dElEID0gLTE7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIHNjcm9sbFNlcnZpY2U6IFRoeVNjcm9sbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICAgICkge31cblxuICAgIHJlZ2lzdGVyTGluayhsaW5rOiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua3MucHVzaChsaW5rKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVyTGluayhsaW5rOiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlua3Muc3BsaWNlKHRoaXMubGlua3MuaW5kZXhPZihsaW5rKSwgMSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXIgfHwgd2luZG93O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53YXJuaW5nUHJvbXB0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTY3JvbGxFdmVudCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oYW5kbGVTY3JvbGxUaW1lb3V0SUQpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgd2FybmluZ1Byb21wdCgpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5RGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gdGhpcy5saW5rcy5zb21lKGxpbmsgPT5cbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKGxpbms/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkTm9kZXMpPy5zb21lKChpdGVtOiBIVE1MRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICAgICAgaXRlbT8uY2xhc3NOYW1lLmluY2x1ZGVzKCd0aHktYW5jaG9yLWxpbmsnKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJBbmNob3IgbGluayBuZXN0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiAnQW5jaG9yJyBkaXJlY3Rpb24gaXMgaG9yaXpvbnRhbC5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmdldENvbnRhaW5lcigpLCAnc2Nyb2xsJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUodGhyb3R0bGVUaW1lKDUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVTY3JvbGwoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBCcm93c2VyIHdvdWxkIG1haW50YWluIHRoZSBzY3JvbGxpbmcgcG9zaXRpb24gd2hlbiByZWZyZXNoaW5nLlxuICAgICAgICAvLyBTbyB3ZSBoYXZlIHRvIGRlbGF5IGNhbGN1bGF0aW9uIGluIGF2b2lkIG9mIGdldHRpbmcgYSBpbmNvcnJlY3QgcmVzdWx0LlxuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbFRpbWVvdXRJRCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oYW5kbGVTY3JvbGwoKSk7XG4gICAgfVxuXG4gICAgaGFuZGxlU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLmFuaW1hdGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5jb250YWluZXIgOiB0aGlzLmRvY3VtZW50O1xuXG4gICAgICAgIGNvbnN0IHNlY3Rpb25zOiBTZWN0aW9uW10gPSBbXTtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSAodGhpcy50aHlPZmZzZXRUb3AgfHwgMCkgKyB0aGlzLnRoeUJvdW5kcztcbiAgICAgICAgdGhpcy5saW5rcy5mb3JFYWNoKGxpbmtDb21wb25lbnQgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2hhcnBMaW5rTWF0Y2ggPSBzaGFycE1hdGNoZXJSZWd4LmV4ZWMobGlua0NvbXBvbmVudC50aHlIcmVmLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgaWYgKCFzaGFycExpbmtNYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKGAjJHtzaGFycExpbmtNYXRjaFsxXX1gKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3AgPSBnZXRPZmZzZXQodGFyZ2V0LCB0aGlzLmdldENvbnRhaW5lcigpKS50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCA8IHNjb3BlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlua0NvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudmlzaWJsZSA9ICEhc2VjdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbWF4U2VjdGlvbiA9IHNlY3Rpb25zLnJlZHVjZSgocHJldiwgY3VycikgPT4gKGN1cnIudG9wID4gcHJldi50b3AgPyBjdXJyIDogcHJldikpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmUobWF4U2VjdGlvbi5saW5rQ29tcG9uZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldFZpc2libGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQWN0aXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpbmtzLmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpLnVuc2V0QWN0aXZlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQWN0aXZlKGxpbmtDb21wb25lbnQ6IFRoeUFuY2hvckxpbmspOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckFjdGl2ZSgpO1xuICAgICAgICBsaW5rQ29tcG9uZW50LnNldEFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBsaW5rTm9kZSA9IGxpbmtDb21wb25lbnQuZ2V0TGlua1RpdGxlRWxlbWVudCgpO1xuICAgICAgICBjb25zdCBob3Jpem9udGFsQW5jaG9yID0gdGhpcy50aHlEaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJztcblxuICAgICAgICB0aGlzLmluay5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IGhvcml6b250YWxBbmNob3IgPyAnJyA6IGAke2xpbmtOb2RlLm9mZnNldFRvcH1weGA7XG4gICAgICAgIHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaG9yaXpvbnRhbEFuY2hvciA/ICcnIDogYCR7bGlua05vZGUuY2xpZW50SGVpZ2h0fXB4YDtcbiAgICAgICAgdGhpcy5pbmsubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gaG9yaXpvbnRhbEFuY2hvciA/IGAke2xpbmtOb2RlLm9mZnNldExlZnR9cHhgIDogJyc7XG4gICAgICAgIHRoaXMuaW5rLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSBob3Jpem9udGFsQW5jaG9yID8gYCR7bGlua05vZGUuY2xpZW50V2lkdGh9cHhgIDogJyc7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZSgpO1xuICAgICAgICB0aGlzLnRoeVNjcm9sbC5lbWl0KGxpbmtDb21wb25lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmlzaWJsZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMudmlzaWJsZTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNsYXNzbmFtZSA9ICd2aXNpYmxlJztcbiAgICAgICAgaWYgKHRoaXMuaW5rKSB7XG4gICAgICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5pbmsubmF0aXZlRWxlbWVudCwgdmlzaWJsZUNsYXNzbmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5pbmsubmF0aXZlRWxlbWVudCwgdmlzaWJsZUNsYXNzbmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVTY3JvbGxUbyhsaW5rQ29tcG9uZW50OiBUaHlBbmNob3JMaW5rKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcjogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gdGhpcy5jb250YWluZXIgOiB0aGlzLmRvY3VtZW50O1xuICAgICAgICBjb25zdCBsaW5rRWxlbWVudDogSFRNTEVsZW1lbnQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihsaW5rQ29tcG9uZW50LnRoeUhyZWYpO1xuICAgICAgICBpZiAoIWxpbmtFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGwodGhpcy5nZXRDb250YWluZXIoKSk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRPZmZzZXRUb3AgPSBnZXRPZmZzZXQobGlua0VsZW1lbnQsIHRoaXMuZ2V0Q29udGFpbmVyKCkpLnRvcDtcbiAgICAgICAgY29uc3QgdGFyZ2V0U2Nyb2xsVG9wID0gY29udGFpbmVyU2Nyb2xsVG9wICsgZWxlbWVudE9mZnNldFRvcCAtICh0aGlzLnRoeU9mZnNldFRvcCB8fCAwKTtcbiAgICAgICAgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbFRvKHRoaXMuZ2V0Q29udGFpbmVyKCksIHRhcmdldFNjcm9sbFRvcCwgdW5kZWZpbmVkLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmUobGlua0NvbXBvbmVudCk7XG4gICAgICAgIHRoaXMudGh5Q2xpY2suZW1pdChsaW5rQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdGh5T2Zmc2V0VG9wLCB0aHlDb250YWluZXIgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh0aHlPZmZzZXRUb3ApIHtcbiAgICAgICAgICAgIHRoaXMud3JhcHBlclN0eWxlID0ge1xuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JzogYGNhbGMoMTAwdmggLSAke3RoaXMudGh5T2Zmc2V0VG9wfXB4KWBcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoeUNvbnRhaW5lciAmJiB0aGlzLnRoeUNvbnRhaW5lcikge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy50aHlDb250YWluZXI7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHR5cGVvZiBjb250YWluZXIgPT09ICdzdHJpbmcnID8gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbnRhaW5lcikgOiBjb250YWluZXI7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyU2Nyb2xsRXZlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==