ngx-tethys 17.0.9 → 17.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/action/action.component.d.ts +3 -3
  3. package/alert/alert.component.d.ts +1 -1
  4. package/anchor/anchor.component.d.ts +3 -1
  5. package/autocomplete/autocomplete.component.d.ts +1 -1
  6. package/autocomplete/autocomplete.trigger.directive.d.ts +1 -1
  7. package/avatar/avatar.component.d.ts +4 -4
  8. package/badge/badge.component.d.ts +3 -3
  9. package/button/button-icon.component.d.ts +2 -2
  10. package/button/button.component.d.ts +2 -2
  11. package/card/card.component.d.ts +3 -3
  12. package/card/content.component.d.ts +1 -1
  13. package/carousel/carousel.component.d.ts +4 -4
  14. package/cascader/cascader-li.component.d.ts +5 -5
  15. package/cascader/cascader-search-option.component.d.ts +3 -3
  16. package/cascader/cascader.component.d.ts +8 -8
  17. package/checkbox/checkbox.component.d.ts +1 -1
  18. package/collapse/collapse-item.component.d.ts +2 -2
  19. package/collapse/collapse.component.d.ts +1 -1
  20. package/color-picker/color-picker-panel.component.d.ts +1 -1
  21. package/color-picker/color-picker.component.d.ts +3 -3
  22. package/copy/copy.directive.d.ts +1 -1
  23. package/core/behaviors/decorators.d.ts +1 -1
  24. package/date-picker/abstract-picker.component.d.ts +7 -7
  25. package/date-picker/abstract-picker.directive.d.ts +3 -3
  26. package/date-picker/base-picker.component.d.ts +2 -2
  27. package/date-picker/lib/calendar/calendar-footer.component.d.ts +1 -1
  28. package/date-picker/lib/popups/inner-popup.component.d.ts +1 -1
  29. package/date-picker/picker.component.d.ts +1 -1
  30. package/date-range/date-range.component.d.ts +8 -2
  31. package/dialog/body/dialog-body.component.d.ts +1 -1
  32. package/dialog/footer/dialog-footer.component.d.ts +1 -1
  33. package/dialog/header/dialog-header.component.d.ts +1 -1
  34. package/divider/divider.component.d.ts +2 -2
  35. package/drag-drop/drag-handle.directive.d.ts +1 -1
  36. package/drag-drop/drag.directive.d.ts +1 -1
  37. package/drag-drop/drop-container.directive.d.ts +1 -1
  38. package/dropdown/dropdown-menu-item.directive.d.ts +2 -2
  39. package/dropdown/dropdown-menu.component.d.ts +1 -1
  40. package/dropdown/dropdown.directive.d.ts +1 -1
  41. package/empty/empty.component.d.ts +1 -1
  42. package/esm2022/action/action.component.mjs +7 -6
  43. package/esm2022/alert/alert.component.mjs +5 -5
  44. package/esm2022/anchor/anchor.component.mjs +5 -5
  45. package/esm2022/autocomplete/autocomplete.component.mjs +5 -4
  46. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +5 -5
  47. package/esm2022/avatar/avatar.component.mjs +8 -8
  48. package/esm2022/badge/badge.component.mjs +7 -6
  49. package/esm2022/button/button-icon.component.mjs +6 -5
  50. package/esm2022/button/button.component.mjs +6 -6
  51. package/esm2022/card/card.component.mjs +7 -6
  52. package/esm2022/card/content.component.mjs +5 -4
  53. package/esm2022/carousel/carousel.component.mjs +8 -7
  54. package/esm2022/cascader/cascader-li.component.mjs +9 -8
  55. package/esm2022/cascader/cascader-search-option.component.mjs +7 -6
  56. package/esm2022/cascader/cascader.component.mjs +12 -12
  57. package/esm2022/checkbox/checkbox.component.mjs +5 -4
  58. package/esm2022/collapse/collapse-item.component.mjs +6 -6
  59. package/esm2022/collapse/collapse.component.mjs +5 -4
  60. package/esm2022/color-picker/color-picker-panel.component.mjs +5 -4
  61. package/esm2022/color-picker/color-picker.component.mjs +7 -6
  62. package/esm2022/copy/copy.directive.mjs +5 -4
  63. package/esm2022/core/behaviors/decorators.mjs +2 -2
  64. package/esm2022/date-picker/abstract-picker.component.mjs +11 -10
  65. package/esm2022/date-picker/abstract-picker.directive.mjs +6 -6
  66. package/esm2022/date-picker/base-picker.component.mjs +5 -5
  67. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +5 -5
  68. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +5 -5
  69. package/esm2022/date-picker/picker.component.mjs +5 -5
  70. package/esm2022/date-range/date-range.component.mjs +6 -5
  71. package/esm2022/dialog/body/dialog-body.component.mjs +5 -4
  72. package/esm2022/dialog/footer/dialog-footer.component.mjs +5 -4
  73. package/esm2022/dialog/header/dialog-header.component.mjs +5 -4
  74. package/esm2022/divider/divider.component.mjs +6 -5
  75. package/esm2022/drag-drop/drag-handle.directive.mjs +5 -4
  76. package/esm2022/drag-drop/drag.directive.mjs +5 -4
  77. package/esm2022/drag-drop/drop-container.directive.mjs +5 -4
  78. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +7 -6
  79. package/esm2022/dropdown/dropdown-menu.component.mjs +5 -4
  80. package/esm2022/dropdown/dropdown.directive.mjs +5 -5
  81. package/esm2022/empty/empty.component.mjs +5 -4
  82. package/esm2022/form/form-group-error/form-group-error.component.mjs +5 -4
  83. package/esm2022/form/form-group-label.directive.mjs +5 -4
  84. package/esm2022/form/form-group.component.mjs +7 -6
  85. package/esm2022/icon/icon.component.mjs +6 -5
  86. package/esm2022/image/image.directive.mjs +6 -5
  87. package/esm2022/input/input-search.component.mjs +5 -4
  88. package/esm2022/input/input.component.mjs +6 -5
  89. package/esm2022/input-number/input-number.component.mjs +6 -6
  90. package/esm2022/layout/header.component.mjs +7 -6
  91. package/esm2022/layout/sidebar-header.component.mjs +5 -4
  92. package/esm2022/layout/sidebar.component.mjs +12 -11
  93. package/esm2022/list/list.component.mjs +5 -4
  94. package/esm2022/list/selection/selection-list.mjs +7 -7
  95. package/esm2022/loading/loading.component.mjs +6 -5
  96. package/esm2022/mention/mention.directive.mjs +3 -3
  97. package/esm2022/menu/group/menu-group.component.mjs +10 -9
  98. package/esm2022/menu/item/action/menu-item-action.component.mjs +5 -4
  99. package/esm2022/menu/item/name/menu-item-name.component.mjs +5 -4
  100. package/esm2022/menu/menu.component.mjs +5 -4
  101. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +5 -4
  102. package/esm2022/nav/nav-ink-bar.directive.mjs +6 -5
  103. package/esm2022/nav/nav-item.directive.mjs +7 -6
  104. package/esm2022/nav/nav.component.mjs +8 -7
  105. package/esm2022/pagination/pagination.component.mjs +9 -9
  106. package/esm2022/popover/popover.directive.mjs +6 -5
  107. package/esm2022/property/property-item.component.mjs +5 -4
  108. package/esm2022/property-operation/property-operation.component.mjs +9 -9
  109. package/esm2022/radio/group/radio-group.component.mjs +5 -4
  110. package/esm2022/rate/rate-item.component.mjs +5 -4
  111. package/esm2022/rate/rate.component.mjs +7 -7
  112. package/esm2022/resizable/resizable.directive.mjs +7 -6
  113. package/esm2022/resizable/resize-handle.component.mjs +5 -4
  114. package/esm2022/resizable/resize-handles.component.mjs +5 -4
  115. package/esm2022/segment/segment-item.component.mjs +5 -5
  116. package/esm2022/segment/segment.component.mjs +5 -4
  117. package/esm2022/select/custom-select/custom-select.component.mjs +14 -14
  118. package/esm2022/select/native-select/native-select.component.mjs +5 -5
  119. package/esm2022/shared/base-form-check.component.mjs +6 -5
  120. package/esm2022/shared/directives/thy-autofocus.directive.mjs +6 -5
  121. package/esm2022/shared/directives/thy-scroll.directive.mjs +5 -4
  122. package/esm2022/shared/directives/thy-show.mjs +5 -4
  123. package/esm2022/shared/option/group/option-group.component.mjs +5 -4
  124. package/esm2022/shared/option/list-option/list-option.component.mjs +5 -4
  125. package/esm2022/shared/option/option.component.mjs +5 -5
  126. package/esm2022/shared/select/select-control/select-control.component.mjs +10 -10
  127. package/esm2022/skeleton/skeleton-circle.component.mjs +5 -5
  128. package/esm2022/skeleton/skeleton-rectangle.component.mjs +5 -5
  129. package/esm2022/skeleton/skeleton.component.mjs +5 -4
  130. package/esm2022/skeleton/stylized/bullet-list.component.mjs +5 -4
  131. package/esm2022/skeleton/stylized/list.component.mjs +5 -4
  132. package/esm2022/skeleton/stylized/paragraph.component.mjs +5 -4
  133. package/esm2022/slide/slide-body/slide-body-section.component.mjs +5 -4
  134. package/esm2022/slider/slider.component.mjs +6 -6
  135. package/esm2022/space/space.component.mjs +5 -4
  136. package/esm2022/stepper/step-header.component.mjs +6 -5
  137. package/esm2022/stepper/stepper.component.mjs +5 -4
  138. package/esm2022/switch/switch.component.mjs +6 -5
  139. package/esm2022/table/table-column.component.mjs +9 -9
  140. package/esm2022/table/table-skeleton.component.mjs +6 -5
  141. package/esm2022/table/table.component.mjs +14 -14
  142. package/esm2022/tabs/tab.component.mjs +5 -4
  143. package/esm2022/tabs/tabs.component.mjs +6 -6
  144. package/esm2022/tag/tag.component.mjs +5 -5
  145. package/esm2022/time-picker/time-picker-panel.component.mjs +6 -6
  146. package/esm2022/time-picker/time-picker.component.mjs +9 -9
  147. package/esm2022/timeline/timeline.component.mjs +5 -4
  148. package/esm2022/tooltip/tooltip.directive.mjs +6 -6
  149. package/esm2022/tree/tree-node.component.mjs +9 -8
  150. package/esm2022/tree/tree.component.mjs +10 -10
  151. package/esm2022/tree-select/tree-select.component.mjs +11 -11
  152. package/esm2022/upload/file-select.component.mjs +6 -5
  153. package/esm2022/version.mjs +2 -2
  154. package/esm2022/vote/vote.component.mjs +7 -6
  155. package/esm2022/watermark/watermark.directive.mjs +5 -4
  156. package/fesm2022/ngx-tethys-action.mjs +6 -5
  157. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-alert.mjs +4 -4
  159. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-anchor.mjs +4 -4
  161. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-autocomplete.mjs +6 -6
  163. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-avatar.mjs +7 -7
  165. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-badge.mjs +6 -5
  167. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-button.mjs +8 -8
  169. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-card.mjs +8 -7
  171. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-carousel.mjs +7 -6
  173. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-cascader.mjs +21 -21
  175. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys-checkbox.mjs +4 -3
  177. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  178. package/fesm2022/ngx-tethys-collapse.mjs +7 -7
  179. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  180. package/fesm2022/ngx-tethys-color-picker.mjs +8 -7
  181. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  182. package/fesm2022/ngx-tethys-copy.mjs +4 -3
  183. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  184. package/fesm2022/ngx-tethys-core.mjs +1 -1
  185. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  186. package/fesm2022/ngx-tethys-date-picker.mjs +26 -26
  187. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  188. package/fesm2022/ngx-tethys-date-range.mjs +5 -4
  189. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  190. package/fesm2022/ngx-tethys-dialog.mjs +8 -7
  191. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  192. package/fesm2022/ngx-tethys-divider.mjs +5 -4
  193. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  194. package/fesm2022/ngx-tethys-drag-drop.mjs +8 -8
  195. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  196. package/fesm2022/ngx-tethys-dropdown.mjs +10 -10
  197. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  198. package/fesm2022/ngx-tethys-empty.mjs +4 -3
  199. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  200. package/fesm2022/ngx-tethys-form.mjs +10 -10
  201. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  202. package/fesm2022/ngx-tethys-icon.mjs +5 -5
  203. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  204. package/fesm2022/ngx-tethys-image.mjs +5 -5
  205. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  206. package/fesm2022/ngx-tethys-input-number.mjs +5 -5
  207. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  208. package/fesm2022/ngx-tethys-input.mjs +7 -6
  209. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  210. package/fesm2022/ngx-tethys-layout.mjs +17 -16
  211. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  212. package/fesm2022/ngx-tethys-list.mjs +8 -8
  213. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  214. package/fesm2022/ngx-tethys-loading.mjs +5 -4
  215. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  216. package/fesm2022/ngx-tethys-mention.mjs +2 -2
  217. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  218. package/fesm2022/ngx-tethys-menu.mjs +15 -14
  219. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  220. package/fesm2022/ngx-tethys-nav.mjs +16 -16
  221. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  222. package/fesm2022/ngx-tethys-pagination.mjs +8 -8
  223. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  224. package/fesm2022/ngx-tethys-popover.mjs +5 -5
  225. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  226. package/fesm2022/ngx-tethys-property-operation.mjs +8 -8
  227. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  228. package/fesm2022/ngx-tethys-property.mjs +4 -3
  229. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  230. package/fesm2022/ngx-tethys-radio.mjs +7 -6
  231. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  232. package/fesm2022/ngx-tethys-rate.mjs +8 -8
  233. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  234. package/fesm2022/ngx-tethys-resizable.mjs +10 -10
  235. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  236. package/fesm2022/ngx-tethys-segment.mjs +6 -6
  237. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  238. package/fesm2022/ngx-tethys-select.mjs +15 -15
  239. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  240. package/fesm2022/ngx-tethys-shared.mjs +25 -25
  241. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  242. package/fesm2022/ngx-tethys-skeleton.mjs +14 -14
  243. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  244. package/fesm2022/ngx-tethys-slide.mjs +4 -4
  245. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  246. package/fesm2022/ngx-tethys-slider.mjs +5 -5
  247. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  248. package/fesm2022/ngx-tethys-space.mjs +4 -3
  249. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  250. package/fesm2022/ngx-tethys-stepper.mjs +7 -6
  251. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  252. package/fesm2022/ngx-tethys-switch.mjs +5 -4
  253. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  254. package/fesm2022/ngx-tethys-table.mjs +22 -22
  255. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  256. package/fesm2022/ngx-tethys-tabs.mjs +7 -7
  257. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  258. package/fesm2022/ngx-tethys-tag.mjs +4 -4
  259. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  260. package/fesm2022/ngx-tethys-time-picker.mjs +11 -11
  261. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  262. package/fesm2022/ngx-tethys-timeline.mjs +4 -3
  263. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  264. package/fesm2022/ngx-tethys-tooltip.mjs +5 -5
  265. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  266. package/fesm2022/ngx-tethys-tree-select.mjs +10 -10
  267. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  268. package/fesm2022/ngx-tethys-tree.mjs +15 -15
  269. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  270. package/fesm2022/ngx-tethys-upload.mjs +5 -5
  271. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  272. package/fesm2022/ngx-tethys-vote.mjs +6 -5
  273. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  274. package/fesm2022/ngx-tethys-watermark.mjs +4 -3
  275. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  276. package/fesm2022/ngx-tethys.mjs +1 -1
  277. package/fesm2022/ngx-tethys.mjs.map +1 -1
  278. package/form/form-group-error/form-group-error.component.d.ts +1 -1
  279. package/form/form-group-label.directive.d.ts +1 -1
  280. package/form/form-group.component.d.ts +3 -3
  281. package/icon/icon.component.d.ts +2 -2
  282. package/image/image.directive.d.ts +2 -2
  283. package/input/input-search.component.d.ts +1 -1
  284. package/input/input.component.d.ts +2 -2
  285. package/input-number/input-number.component.d.ts +2 -2
  286. package/layout/header.component.d.ts +3 -3
  287. package/layout/sidebar-header.component.d.ts +1 -1
  288. package/layout/sidebar.component.d.ts +7 -7
  289. package/list/list.component.d.ts +1 -1
  290. package/list/selection/selection-list.d.ts +3 -3
  291. package/loading/loading.component.d.ts +2 -2
  292. package/menu/group/menu-group.component.d.ts +6 -6
  293. package/menu/item/action/menu-item-action.component.d.ts +1 -1
  294. package/menu/item/name/menu-item-name.component.d.ts +1 -1
  295. package/menu/menu.component.d.ts +1 -1
  296. package/nav/icon-nav/icon-nav-link.directive.d.ts +1 -1
  297. package/nav/nav-ink-bar.directive.d.ts +2 -2
  298. package/nav/nav-item.directive.d.ts +3 -3
  299. package/nav/nav.component.d.ts +4 -4
  300. package/package.json +1 -1
  301. package/pagination/pagination.component.d.ts +5 -5
  302. package/popover/popover.directive.d.ts +2 -2
  303. package/property/property-item.component.d.ts +4 -1
  304. package/property-operation/property-operation.component.d.ts +5 -5
  305. package/radio/group/radio-group.component.d.ts +1 -1
  306. package/rate/rate-item.component.d.ts +1 -1
  307. package/rate/rate.component.d.ts +3 -3
  308. package/resizable/resizable.directive.d.ts +3 -3
  309. package/resizable/resize-handle.component.d.ts +1 -1
  310. package/resizable/resize-handles.component.d.ts +1 -1
  311. package/schematics/version.d.ts +1 -1
  312. package/schematics/version.js +1 -1
  313. package/segment/segment-item.component.d.ts +1 -1
  314. package/segment/segment.component.d.ts +5 -1
  315. package/select/custom-select/custom-select.component.d.ts +10 -10
  316. package/select/native-select/native-select.component.d.ts +1 -1
  317. package/shared/base-form-check.component.d.ts +2 -2
  318. package/shared/directives/thy-autofocus.directive.d.ts +2 -2
  319. package/shared/directives/thy-scroll.directive.d.ts +1 -1
  320. package/shared/directives/thy-show.d.ts +1 -1
  321. package/shared/option/group/option-group.component.d.ts +1 -1
  322. package/shared/option/list-option/list-option.component.d.ts +1 -1
  323. package/shared/option/option.component.d.ts +1 -1
  324. package/shared/select/select-control/select-control.component.d.ts +6 -6
  325. package/skeleton/skeleton-circle.component.d.ts +1 -1
  326. package/skeleton/skeleton-rectangle.component.d.ts +1 -1
  327. package/skeleton/skeleton.component.d.ts +1 -1
  328. package/skeleton/stylized/bullet-list.component.d.ts +1 -1
  329. package/skeleton/stylized/list.component.d.ts +1 -1
  330. package/skeleton/stylized/paragraph.component.d.ts +1 -1
  331. package/slide/slide-body/slide-body-section.component.d.ts +1 -1
  332. package/slider/slider.component.d.ts +2 -2
  333. package/space/space.component.d.ts +1 -1
  334. package/stepper/step-header.component.d.ts +2 -2
  335. package/stepper/stepper.component.d.ts +1 -1
  336. package/switch/switch.component.d.ts +2 -2
  337. package/table/table-column.component.d.ts +5 -5
  338. package/table/table-skeleton.component.d.ts +2 -2
  339. package/table/table.component.d.ts +10 -10
  340. package/tabs/tab.component.d.ts +1 -1
  341. package/tabs/tabs.component.d.ts +2 -2
  342. package/tag/tag.component.d.ts +1 -1
  343. package/time-picker/time-picker-panel.component.d.ts +2 -2
  344. package/time-picker/time-picker.component.d.ts +5 -5
  345. package/timeline/timeline.component.d.ts +1 -1
  346. package/tooltip/tooltip.directive.d.ts +10 -2
  347. package/tree/tree-node.component.d.ts +20 -5
  348. package/tree/tree.component.d.ts +6 -6
  349. package/tree-select/tree-select.component.d.ts +7 -7
  350. package/upload/file-select.component.d.ts +2 -2
  351. package/vote/vote.component.d.ts +3 -3
  352. package/watermark/watermark.directive.d.ts +1 -1
@@ -1,5 +1,5 @@
1
- import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
- import { TinyDate } from 'ngx-tethys/util';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { TinyDate, coerceBooleanProperty } from 'ngx-tethys/util';
3
3
  import { DateHelperService } from '../../date-helper.service';
4
4
  import { isAfterMoreThanLessOneYear, isAfterMoreThanOneDecade, isAfterMoreThanOneMonth, isAfterMoreThanOneYear } from '../../picker.util';
5
5
  import { DateHeader } from '../date/date-header.component';
@@ -131,7 +131,7 @@ export class InnerPopup {
131
131
  }
132
132
  }
133
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: InnerPopup, deps: [{ token: i1.DateHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
134
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: InnerPopup, isStandalone: true, selector: "inner-popup", inputs: { showWeek: "showWeek", isRange: "isRange", activeDate: "activeDate", rangeActiveDate: "rangeActiveDate", enablePrev: "enablePrev", enableNext: "enableNext", disabledDate: "disabledDate", dateRender: "dateRender", selectedValue: "selectedValue", hoverValue: "hoverValue", panelMode: "panelMode", showDateRangeInput: ["showDateRangeInput", "showDateRangeInput", booleanAttribute], partType: "partType", endPanelMode: "endPanelMode", value: "value" }, outputs: { panelModeChange: "panelModeChange", headerChange: "headerChange", selectDate: "selectDate", dayHover: "dayHover" }, host: { properties: { "class.thy-calendar-picker-inner-popup": "this.className", "class.thy-calendar-picker-inner-popup-with-range-input": "this._showDateRangeInput" } }, exportAs: ["innerPopup"], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"showDateRangeInput\">\n <div class=\"{{ prefixCls }}-picker-inner-popup-range-input\">\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue[0])\" placeholder=\"\u5F00\u59CB\u65E5\u671F\" />\n <span class=\"split\"></span>\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue[1])\" placeholder=\"\u7ED3\u675F\u65E5\u671F\" />\n </div>\n</ng-container>\n<ng-container [ngSwitch]=\"panelMode\">\n <ng-container *ngSwitchCase=\"'decade'\">\n <div class=\"{{ prefixCls }}-decade\">\n <decade-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'decade')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'decade')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </decade-header>\n <div class=\"{{ prefixCls }}-body\">\n <decade-table [value]=\"value\" [activeDate]=\"activeDate\" (valueChange)=\"onChooseDecade($event)\"></decade-table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'year'\">\n <div class=\"{{ prefixCls }}-year\">\n <year-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'year')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'year')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </year-header>\n <div class=\"{{ prefixCls }}-body\">\n <year-table\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n [disabledDate]=\"disabledDate\"\n (valueChange)=\"onChooseYear($event)\"\n [selectedValue]=\"selectedValue\">\n </year-table>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'month'\">\n <div class=\"{{ prefixCls }}-month\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <month-table\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n [disabledDate]=\"disabledDate\"\n (valueChange)=\"onChooseMonth($event)\"\n [selectedValue]=\"selectedValue\">\n </month-table>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'quarter'\">\n <div class=\"{{ prefixCls }}-quarter\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <quarter-table\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n [disabledDate]=\"disabledDate\"\n (valueChange)=\"onChooseQuarter($event)\"\n [selectedValue]=\"selectedValue\">\n </quarter-table>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <date-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'date')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'date')\"\n [showPreBtn]=\"enablePrevNext('prev', 'date')\"\n [showNextBtn]=\"enablePrevNext('next', 'date')\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\"></date-header>\n <div class=\"{{ prefixCls }}-body\">\n <date-table\n [showWeek]=\"showWeek\"\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n (valueChange)=\"onSelectDate($event)\"\n showWeekNumber=\"false\"\n [disabledDate]=\"disabledDate\"\n [cellRender]=\"dateRender\"\n [selectedValue]=\"selectedValue\"\n [hoverValue]=\"hoverValue\"\n (dayHover)=\"dayHover.emit($event)\"></date-table>\n </div>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: DecadeHeader, selector: "decade-header" }, { kind: "component", type: DecadeTable, selector: "decade-table", exportAs: ["decadeTable"] }, { kind: "component", type: YearHeader, selector: "year-header" }, { kind: "component", type: YearTable, selector: "year-table", outputs: ["decadePanelShow"] }, { kind: "component", type: MonthHeader, selector: "month-header" }, { kind: "component", type: MonthTable, selector: "month-table", exportAs: ["monthTable"] }, { kind: "component", type: QuarterTable, selector: "quarter-table", exportAs: ["quarterTable"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: DateHeader, selector: "date-header" }, { kind: "component", type: DateTable, selector: "date-table", outputs: ["dayHover"], exportAs: ["dateTable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: InnerPopup, isStandalone: true, selector: "inner-popup", inputs: { showWeek: "showWeek", isRange: "isRange", activeDate: "activeDate", rangeActiveDate: "rangeActiveDate", enablePrev: "enablePrev", enableNext: "enableNext", disabledDate: "disabledDate", dateRender: "dateRender", selectedValue: "selectedValue", hoverValue: "hoverValue", panelMode: "panelMode", showDateRangeInput: ["showDateRangeInput", "showDateRangeInput", coerceBooleanProperty], partType: "partType", endPanelMode: "endPanelMode", value: "value" }, outputs: { panelModeChange: "panelModeChange", headerChange: "headerChange", selectDate: "selectDate", dayHover: "dayHover" }, host: { properties: { "class.thy-calendar-picker-inner-popup": "this.className", "class.thy-calendar-picker-inner-popup-with-range-input": "this._showDateRangeInput" } }, exportAs: ["innerPopup"], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"showDateRangeInput\">\n <div class=\"{{ prefixCls }}-picker-inner-popup-range-input\">\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue[0])\" placeholder=\"\u5F00\u59CB\u65E5\u671F\" />\n <span class=\"split\"></span>\n <input thyInput thySize=\"sm\" [value]=\"getReadableValue(selectedValue[1])\" placeholder=\"\u7ED3\u675F\u65E5\u671F\" />\n </div>\n</ng-container>\n<ng-container [ngSwitch]=\"panelMode\">\n <ng-container *ngSwitchCase=\"'decade'\">\n <div class=\"{{ prefixCls }}-decade\">\n <decade-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'decade')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'decade')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </decade-header>\n <div class=\"{{ prefixCls }}-body\">\n <decade-table [value]=\"value\" [activeDate]=\"activeDate\" (valueChange)=\"onChooseDecade($event)\"></decade-table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'year'\">\n <div class=\"{{ prefixCls }}-year\">\n <year-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'year')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'year')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </year-header>\n <div class=\"{{ prefixCls }}-body\">\n <year-table\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n [disabledDate]=\"disabledDate\"\n (valueChange)=\"onChooseYear($event)\"\n [selectedValue]=\"selectedValue\">\n </year-table>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'month'\">\n <div class=\"{{ prefixCls }}-month\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <month-table\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n [disabledDate]=\"disabledDate\"\n (valueChange)=\"onChooseMonth($event)\"\n [selectedValue]=\"selectedValue\">\n </month-table>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'quarter'\">\n <div class=\"{{ prefixCls }}-quarter\">\n <month-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'month')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'month')\"\n [showNextBtn]=\"false\"\n [showPreBtn]=\"false\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\">\n </month-header>\n <div class=\"{{ prefixCls }}-body\">\n <quarter-table\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n [disabledDate]=\"disabledDate\"\n (valueChange)=\"onChooseQuarter($event)\"\n [selectedValue]=\"selectedValue\">\n </quarter-table>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <date-header\n [(value)]=\"activeDate\"\n [showSuperPreBtn]=\"enableSuperPrevNext('prev', 'date')\"\n [showSuperNextBtn]=\"enableSuperPrevNext('next', 'date')\"\n [showPreBtn]=\"enablePrevNext('prev', 'date')\"\n [showNextBtn]=\"enablePrevNext('next', 'date')\"\n (panelModeChange)=\"panelModeChange.emit($event)\"\n (valueChange)=\"headerChange.emit($event)\"></date-header>\n <div class=\"{{ prefixCls }}-body\">\n <date-table\n [showWeek]=\"showWeek\"\n [value]=\"value\"\n [activeDate]=\"activeDate\"\n (valueChange)=\"onSelectDate($event)\"\n showWeekNumber=\"false\"\n [disabledDate]=\"disabledDate\"\n [cellRender]=\"dateRender\"\n [selectedValue]=\"selectedValue\"\n [hoverValue]=\"hoverValue\"\n (dayHover)=\"dayHover.emit($event)\"></date-table>\n </div>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: DecadeHeader, selector: "decade-header" }, { kind: "component", type: DecadeTable, selector: "decade-table", exportAs: ["decadeTable"] }, { kind: "component", type: YearHeader, selector: "year-header" }, { kind: "component", type: YearTable, selector: "year-table", outputs: ["decadePanelShow"] }, { kind: "component", type: MonthHeader, selector: "month-header" }, { kind: "component", type: MonthTable, selector: "month-table", exportAs: ["monthTable"] }, { kind: "component", type: QuarterTable, selector: "quarter-table", exportAs: ["quarterTable"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: DateHeader, selector: "date-header" }, { kind: "component", type: DateTable, selector: "date-table", outputs: ["dayHover"], exportAs: ["dateTable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: InnerPopup, decorators: [{
137
137
  type: Component,
@@ -181,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
181
181
  type: Input
182
182
  }], showDateRangeInput: [{
183
183
  type: Input,
184
- args: [{ transform: booleanAttribute }]
184
+ args: [{ transform: coerceBooleanProperty }]
185
185
  }], partType: [{
186
186
  type: Input
187
187
  }], endPanelMode: [{
@@ -197,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
197
197
  }], dayHover: [{
198
198
  type: Output
199
199
  }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5uZXItcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2xpYi9wb3B1cHMvaW5uZXItcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2xpYi9wb3B1cHMvaW5uZXItcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFHVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFJLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFekQsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBRWxFOztHQUVHO0FBeUJILE1BQU0sT0FBTyxVQUFVO0lBaUJuQixJQUNJLGtCQUFrQixDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQWdCRCxZQUFvQixVQUE2QjtRQUE3QixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQXZDSyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ0Esd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBNEJoRixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBSW5ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUM1QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUMxQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUUzRCxjQUFTLEdBQUcsY0FBYyxDQUFDO0lBRXlCLENBQUM7SUFFckQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFlO1FBQzVCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFxQjtRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQVksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBZTtRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFlO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDakUsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWU7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBZTtRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQTBCLEVBQUUsSUFBa0I7UUFDekQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksU0FBUyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLElBQUksU0FBUyxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzVHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDL0QsT0FBTyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDcEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsU0FBMEIsRUFBRSxTQUF1QjtRQUNuRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sSUFBSSxTQUFTLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDNUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUMvRCxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDdkIsT0FBTywwQkFBMEIsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZFLENBQUM7cUJBQU0sSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDMUQsT0FBTyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ25FLENBQUM7cUJBQU0sSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQzlCLE9BQU8sd0JBQXdCLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUNyRSxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDOzhHQXZJUSxVQUFVO2tHQUFWLFVBQVUsZ2FBaUJDLGdCQUFnQiwwYkMzRXhDLDQvSUFtSEEsNENEekVRLElBQUksNkZBQ0osaUJBQWlCLCtJQUNqQixRQUFRLDZFQUNSLFlBQVkscUZBQ1osWUFBWSwwREFDWixXQUFXLG9GQUNYLFVBQVUsd0RBQ1YsU0FBUyxxRkFDVCxXQUFXLHlEQUNYLFVBQVUsa0ZBQ1YsWUFBWSxzRkFDWixlQUFlLDhEQUNmLFVBQVUsd0RBQ1YsU0FBUzs7MkZBR0osVUFBVTtrQkF4QnRCLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUVyQyxhQUFhLFlBQ2IsWUFBWSxjQUVWLElBQUksV0FDUDt3QkFDTCxJQUFJO3dCQUNKLGlCQUFpQjt3QkFDakIsUUFBUTt3QkFDUixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixVQUFVO3dCQUNWLFNBQVM7cUJBQ1o7c0ZBR3FELFNBQVM7c0JBQTlELFdBQVc7dUJBQUMsdUNBQXVDO2dCQUNtQixtQkFBbUI7c0JBQXpGLFdBQVc7dUJBQUMsd0RBQXdEO2dCQUU1RCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFHRixrQkFBa0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUzdCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFYSxlQUFlO3NCQUFqQyxNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFFYSxZQUFZO3NCQUE5QixNQUFNO2dCQUNZLFVBQVU7c0JBQTVCLE1BQU07Z0JBQ1ksUUFBUTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnVuY3Rpb25Qcm9wLCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGUtaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmFuZ2VQYXJ0VHlwZSB9IGZyb20gJy4uLy4uL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IGlzQWZ0ZXJNb3JlVGhhbkxlc3NPbmVZZWFyLCBpc0FmdGVyTW9yZVRoYW5PbmVEZWNhZGUsIGlzQWZ0ZXJNb3JlVGhhbk9uZU1vbnRoLCBpc0FmdGVyTW9yZVRoYW5PbmVZZWFyIH0gZnJvbSAnLi4vLi4vcGlja2VyLnV0aWwnO1xuaW1wb3J0IHsgRGlzYWJsZWREYXRlRm4sIFRoeVBhbmVsTW9kZSB9IGZyb20gJy4uLy4uL3N0YW5kYXJkLXR5cGVzJztcbmltcG9ydCB7IERhdGVIZWFkZXIgfSBmcm9tICcuLi9kYXRlL2RhdGUtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlVGFibGUgfSBmcm9tICcuLi9kYXRlL2RhdGUtdGFibGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTmdJZiwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBEZWNhZGVIZWFkZXIgfSBmcm9tICcuLi9kZWNhZGUvZGVjYWRlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVjYWRlVGFibGUgfSBmcm9tICcuLi9kZWNhZGUvZGVjYWRlLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb250aEhlYWRlciB9IGZyb20gJy4uL21vbnRoL21vbnRoLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9udGhUYWJsZSB9IGZyb20gJy4uL21vbnRoL21vbnRoLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBZZWFySGVhZGVyIH0gZnJvbSAnLi4veWVhci95ZWFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWWVhclRhYmxlIH0gZnJvbSAnLi4veWVhci95ZWFyLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWFydGVyVGFibGUgfSBmcm9tICcuLi9xdWFydGVyL3F1YXJ0ZXItdGFibGUuY29tcG9uZW50JztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnaW5uZXItcG9wdXAnLFxuICAgIGV4cG9ydEFzOiAnaW5uZXJQb3B1cCcsXG4gICAgdGVtcGxhdGVVcmw6ICdpbm5lci1wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFRoeUlucHV0RGlyZWN0aXZlLFxuICAgICAgICBOZ1N3aXRjaCxcbiAgICAgICAgTmdTd2l0Y2hDYXNlLFxuICAgICAgICBEZWNhZGVIZWFkZXIsXG4gICAgICAgIERlY2FkZVRhYmxlLFxuICAgICAgICBZZWFySGVhZGVyLFxuICAgICAgICBZZWFyVGFibGUsXG4gICAgICAgIE1vbnRoSGVhZGVyLFxuICAgICAgICBNb250aFRhYmxlLFxuICAgICAgICBRdWFydGVyVGFibGUsXG4gICAgICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICAgICAgRGF0ZUhlYWRlcixcbiAgICAgICAgRGF0ZVRhYmxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbm5lclBvcHVwIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jYWxlbmRhci1waWNrZXItaW5uZXItcG9wdXAnKSBjbGFzc05hbWUgPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWNhbGVuZGFyLXBpY2tlci1pbm5lci1wb3B1cC13aXRoLXJhbmdlLWlucHV0JykgX3Nob3dEYXRlUmFuZ2VJbnB1dCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2hvd1dlZWs6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNSYW5nZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhY3RpdmVEYXRlOiBUaW55RGF0ZTtcbiAgICBASW5wdXQoKSByYW5nZUFjdGl2ZURhdGU6IFRpbnlEYXRlW107IC8vIFJhbmdlIE9OTFlcbiAgICBASW5wdXQoKSBlbmFibGVQcmV2OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGVuYWJsZU5leHQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGlzYWJsZWREYXRlOiBEaXNhYmxlZERhdGVGbjtcbiAgICBASW5wdXQoKSBkYXRlUmVuZGVyOiBGdW5jdGlvblByb3A8VGVtcGxhdGVSZWY8RGF0ZT4gfCBzdHJpbmc+O1xuICAgIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWU6IFRpbnlEYXRlW107IC8vIFJhbmdlIE9OTFlcbiAgICBASW5wdXQoKSBob3ZlclZhbHVlOiBUaW55RGF0ZVtdOyAvLyBSYW5nZSBPTkxZXG5cbiAgICBASW5wdXQoKSBwYW5lbE1vZGU6IFRoeVBhbmVsTW9kZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBzaG93RGF0ZVJhbmdlSW5wdXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd0RhdGVSYW5nZUlucHV0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dEYXRlUmFuZ2VJbnB1dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dEYXRlUmFuZ2VJbnB1dDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBwYXJ0VHlwZTogUmFuZ2VQYXJ0VHlwZTtcblxuICAgIEBJbnB1dCgpIGVuZFBhbmVsTW9kZTogVGh5UGFuZWxNb2RlO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHBhbmVsTW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5UGFuZWxNb2RlPigpO1xuXG4gICAgQElucHV0KCkgdmFsdWU6IFRpbnlEYXRlO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGhlYWRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGlueURhdGU+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbnlEYXRlPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBkYXlIb3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8VGlueURhdGU+KCk7XG5cbiAgICBwcmVmaXhDbHMgPSAndGh5LWNhbGVuZGFyJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUhlbHBlcjogRGF0ZUhlbHBlclNlcnZpY2UpIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmFjdGl2ZURhdGUgJiYgIWNoYW5nZXMuYWN0aXZlRGF0ZS5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBUaW55RGF0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLnBhbmVsTW9kZSAmJiBjaGFuZ2VzLnBhbmVsTW9kZS5jdXJyZW50VmFsdWUgPT09ICd0aW1lJykge1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGUgPSAnZGF0ZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSZWFkYWJsZVZhbHVlKHZhbHVlOiBUaW55RGF0ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLmRhdGVIZWxwZXIuZm9ybWF0KHZhbHVlLm5hdGl2ZURhdGUsICd5eXl5LU1NLWRkJykgOiAnJztcbiAgICB9XG5cbiAgICBvblNlbGVjdERhdGUoZGF0ZTogVGlueURhdGUgfCBEYXRlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZGF0ZSBpbnN0YW5jZW9mIFRpbnlEYXRlID8gZGF0ZSA6IG5ldyBUaW55RGF0ZShkYXRlKTtcblxuICAgICAgICB0aGlzLnNlbGVjdERhdGUuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25DaG9vc2VNb250aCh2YWx1ZTogVGlueURhdGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hY3RpdmVEYXRlLnNldE1vbnRoKHZhbHVlLmdldE1vbnRoKCkpO1xuICAgICAgICBpZiAodGhpcy5lbmRQYW5lbE1vZGUgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGVDaGFuZ2UuZW1pdCh0aGlzLmVuZFBhbmVsTW9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNob29zZVF1YXJ0ZXIodmFsdWU6IFRpbnlEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWN0aXZlRGF0ZS5zZXRRdWFydGVyKHZhbHVlLmdldFF1YXJ0ZXIoKSk7XG4gICAgICAgIGlmICh0aGlzLmVuZFBhbmVsTW9kZSA9PT0gJ3F1YXJ0ZXInKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERhdGUuZW1pdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlckNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucGFuZWxNb2RlQ2hhbmdlLmVtaXQodGhpcy5lbmRQYW5lbE1vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaG9vc2VZZWFyKHZhbHVlOiBUaW55RGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFjdGl2ZURhdGUuc2V0WWVhcih2YWx1ZS5nZXRZZWFyKCkpO1xuICAgICAgICBpZiAodGhpcy5lbmRQYW5lbE1vZGUgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnBhbmVsTW9kZUNoYW5nZS5lbWl0KHRoaXMuZW5kUGFuZWxNb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hvb3NlRGVjYWRlKHZhbHVlOiBUaW55RGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFjdGl2ZURhdGUuc2V0WWVhcih2YWx1ZS5nZXRZZWFyKCkpO1xuICAgICAgICBpZiAodGhpcy5lbmRQYW5lbE1vZGUgPT09ICdkZWNhZGUnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERhdGUuZW1pdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlckNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucGFuZWxNb2RlQ2hhbmdlLmVtaXQoJ3llYXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVuYWJsZVByZXZOZXh0KGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLCBtb2RlOiBUaHlQYW5lbE1vZGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgaWYgKCh0aGlzLnBhcnRUeXBlID09PSAnbGVmdCcgJiYgZGlyZWN0aW9uID09PSAnbmV4dCcpIHx8ICh0aGlzLnBhcnRUeXBlID09PSAncmlnaHQnICYmIGRpcmVjdGlvbiA9PT0gJ3ByZXYnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtoZWFkZXJMZWZ0RGF0ZSwgaGVhZGVyUmlnaHREYXRlXSA9IHRoaXMucmFuZ2VBY3RpdmVEYXRlO1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0FmdGVyTW9yZVRoYW5PbmVNb250aChoZWFkZXJSaWdodERhdGUsIGhlYWRlckxlZnREYXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGVuYWJsZVN1cGVyUHJldk5leHQoZGlyZWN0aW9uOiAncHJldicgfCAnbmV4dCcsIHBhbmVsTW9kZTogVGh5UGFuZWxNb2RlKSB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGlmICgodGhpcy5wYXJ0VHlwZSA9PT0gJ2xlZnQnICYmIGRpcmVjdGlvbiA9PT0gJ25leHQnKSB8fCAodGhpcy5wYXJ0VHlwZSA9PT0gJ3JpZ2h0JyAmJiBkaXJlY3Rpb24gPT09ICdwcmV2JykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbaGVhZGVyTGVmdERhdGUsIGhlYWRlclJpZ2h0RGF0ZV0gPSB0aGlzLnJhbmdlQWN0aXZlRGF0ZTtcbiAgICAgICAgICAgICAgICBpZiAocGFuZWxNb2RlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzQWZ0ZXJNb3JlVGhhbkxlc3NPbmVZZWFyKGhlYWRlclJpZ2h0RGF0ZSwgaGVhZGVyTGVmdERhdGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFuZWxNb2RlID09PSAnbW9udGgnIHx8IHBhbmVsTW9kZSA9PT0gJ3F1YXJ0ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0FmdGVyTW9yZVRoYW5PbmVZZWFyKGhlYWRlclJpZ2h0RGF0ZSwgaGVhZGVyTGVmdERhdGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFuZWxNb2RlID09PSAneWVhcicpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzQWZ0ZXJNb3JlVGhhbk9uZURlY2FkZShoZWFkZXJSaWdodERhdGUsIGhlYWRlckxlZnREYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0RhdGVSYW5nZUlucHV0XCI+XG4gIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWlubmVyLXBvcHVwLXJhbmdlLWlucHV0XCI+XG4gICAgPGlucHV0IHRoeUlucHV0IHRoeVNpemU9XCJzbVwiIFt2YWx1ZV09XCJnZXRSZWFkYWJsZVZhbHVlKHNlbGVjdGVkVmFsdWVbMF0pXCIgcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIiAvPlxuICAgIDxzcGFuIGNsYXNzPVwic3BsaXRcIj48L3NwYW4+XG4gICAgPGlucHV0IHRoeUlucHV0IHRoeVNpemU9XCJzbVwiIFt2YWx1ZV09XCJnZXRSZWFkYWJsZVZhbHVlKHNlbGVjdGVkVmFsdWVbMV0pXCIgcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIiAvPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicGFuZWxNb2RlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkZWNhZGUnXCI+XG4gICAgPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1kZWNhZGVcIj5cbiAgICAgIDxkZWNhZGUtaGVhZGVyXG4gICAgICAgIFsodmFsdWUpXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICBbc2hvd1N1cGVyUHJlQnRuXT1cImVuYWJsZVN1cGVyUHJldk5leHQoJ3ByZXYnLCAnZGVjYWRlJylcIlxuICAgICAgICBbc2hvd1N1cGVyTmV4dEJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCduZXh0JywgJ2RlY2FkZScpXCJcbiAgICAgICAgW3Nob3dOZXh0QnRuXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dQcmVCdG5dPVwiZmFsc2VcIlxuICAgICAgICAocGFuZWxNb2RlQ2hhbmdlKT1cInBhbmVsTW9kZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaGVhZGVyQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgPC9kZWNhZGUtaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1ib2R5XCI+XG4gICAgICAgIDxkZWNhZGUtdGFibGUgW3ZhbHVlXT1cInZhbHVlXCIgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiICh2YWx1ZUNoYW5nZSk9XCJvbkNob29zZURlY2FkZSgkZXZlbnQpXCI+PC9kZWNhZGUtdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCI+XG4gICAgPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS15ZWFyXCI+XG4gICAgICA8eWVhci1oZWFkZXJcbiAgICAgICAgWyh2YWx1ZSldPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgIFtzaG93U3VwZXJQcmVCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgncHJldicsICd5ZWFyJylcIlxuICAgICAgICBbc2hvd1N1cGVyTmV4dEJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCduZXh0JywgJ3llYXInKVwiXG4gICAgICAgIFtzaG93TmV4dEJ0bl09XCJmYWxzZVwiXG4gICAgICAgIFtzaG93UHJlQnRuXT1cImZhbHNlXCJcbiAgICAgICAgKHBhbmVsTW9kZUNoYW5nZSk9XCJwYW5lbE1vZGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImhlYWRlckNoYW5nZS5lbWl0KCRldmVudClcIj5cbiAgICAgIDwveWVhci1oZWFkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvZHlcIj5cbiAgICAgICAgPHllYXItdGFibGVcbiAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaG9vc2VZZWFyKCRldmVudClcIlxuICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj5cbiAgICAgICAgPC95ZWFyLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1tb250aFwiPlxuICAgICAgPG1vbnRoLWhlYWRlclxuICAgICAgICBbKHZhbHVlKV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgW3Nob3dTdXBlclByZUJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCdwcmV2JywgJ21vbnRoJylcIlxuICAgICAgICBbc2hvd1N1cGVyTmV4dEJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCduZXh0JywgJ21vbnRoJylcIlxuICAgICAgICBbc2hvd05leHRCdG5dPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd1ByZUJ0bl09XCJmYWxzZVwiXG4gICAgICAgIChwYW5lbE1vZGVDaGFuZ2UpPVwicGFuZWxNb2RlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJoZWFkZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+XG4gICAgICA8L21vbnRoLWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tYm9keVwiPlxuICAgICAgICA8bW9udGgtdGFibGVcbiAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaG9vc2VNb250aCgkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCI+XG4gICAgICAgIDwvbW9udGgtdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVyJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcXVhcnRlclwiPlxuICAgICAgPG1vbnRoLWhlYWRlclxuICAgICAgICBbKHZhbHVlKV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgW3Nob3dTdXBlclByZUJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCdwcmV2JywgJ21vbnRoJylcIlxuICAgICAgICBbc2hvd1N1cGVyTmV4dEJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCduZXh0JywgJ21vbnRoJylcIlxuICAgICAgICBbc2hvd05leHRCdG5dPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd1ByZUJ0bl09XCJmYWxzZVwiXG4gICAgICAgIChwYW5lbE1vZGVDaGFuZ2UpPVwicGFuZWxNb2RlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJoZWFkZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+XG4gICAgICA8L21vbnRoLWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tYm9keVwiPlxuICAgICAgICA8cXVhcnRlci10YWJsZVxuICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvbkNob29zZVF1YXJ0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiPlxuICAgICAgICA8L3F1YXJ0ZXItdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICA8ZGF0ZS1oZWFkZXJcbiAgICAgIFsodmFsdWUpXT1cImFjdGl2ZURhdGVcIlxuICAgICAgW3Nob3dTdXBlclByZUJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCdwcmV2JywgJ2RhdGUnKVwiXG4gICAgICBbc2hvd1N1cGVyTmV4dEJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCduZXh0JywgJ2RhdGUnKVwiXG4gICAgICBbc2hvd1ByZUJ0bl09XCJlbmFibGVQcmV2TmV4dCgncHJldicsICdkYXRlJylcIlxuICAgICAgW3Nob3dOZXh0QnRuXT1cImVuYWJsZVByZXZOZXh0KCduZXh0JywgJ2RhdGUnKVwiXG4gICAgICAocGFuZWxNb2RlQ2hhbmdlKT1cInBhbmVsTW9kZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImhlYWRlckNoYW5nZS5lbWl0KCRldmVudClcIj48L2RhdGUtaGVhZGVyPlxuICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tYm9keVwiPlxuICAgICAgPGRhdGUtdGFibGVcbiAgICAgICAgW3Nob3dXZWVrXT1cInNob3dXZWVrXCJcbiAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblNlbGVjdERhdGUoJGV2ZW50KVwiXG4gICAgICAgIHNob3dXZWVrTnVtYmVyPVwiZmFsc2VcIlxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXG4gICAgICAgIFtjZWxsUmVuZGVyXT1cImRhdGVSZW5kZXJcIlxuICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgW2hvdmVyVmFsdWVdPVwiaG92ZXJWYWx1ZVwiXG4gICAgICAgIChkYXlIb3Zlcik9XCJkYXlIb3Zlci5lbWl0KCRldmVudClcIj48L2RhdGUtdGFibGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5uZXItcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2xpYi9wb3B1cHMvaW5uZXItcG9wdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL2xpYi9wb3B1cHMvaW5uZXItcG9wdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUdULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IsUUFBUSxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFbEU7O0dBRUc7QUF5QkgsTUFBTSxPQUFPLFVBQVU7SUFpQm5CLElBQ0ksa0JBQWtCLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBZ0JELFlBQW9CLFVBQTZCO1FBQTdCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBdkNLLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDQSx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUE0QmhGLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFJbkQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzVDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBQzFDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRTNELGNBQVMsR0FBRyxjQUFjLENBQUM7SUFFeUIsQ0FBQztJQUVyRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWU7UUFDNUIsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXFCO1FBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFlO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWU7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBZTtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqRCxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFlO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsU0FBMEIsRUFBRSxJQUFrQjtRQUN6RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sSUFBSSxTQUFTLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDNUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUMvRCxPQUFPLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNwRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxTQUEwQixFQUFFLFNBQXVCO1FBQ25FLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM1RyxNQUFNLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7Z0JBQy9ELElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUN2QixPQUFPLDBCQUEwQixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdkUsQ0FBQztxQkFBTSxJQUFJLFNBQVMsS0FBSyxPQUFPLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUMxRCxPQUFPLHNCQUFzQixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztxQkFBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyx3QkFBd0IsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3JFLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7OEdBdklRLFVBQVU7a0dBQVYsVUFBVSxnYUFpQkMscUJBQXFCLDBiQzFFN0MsNC9JQW1IQSw0Q0QxRVEsSUFBSSw2RkFDSixpQkFBaUIsK0lBQ2pCLFFBQVEsNkVBQ1IsWUFBWSxxRkFDWixZQUFZLDBEQUNaLFdBQVcsb0ZBQ1gsVUFBVSx3REFDVixTQUFTLHFGQUNULFdBQVcseURBQ1gsVUFBVSxrRkFDVixZQUFZLHNGQUNaLGVBQWUsOERBQ2YsVUFBVSx3REFDVixTQUFTOzsyRkFHSixVQUFVO2tCQXhCdEIsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBRXJDLGFBQWEsWUFDYixZQUFZLGNBRVYsSUFBSSxXQUNQO3dCQUNMLElBQUk7d0JBQ0osaUJBQWlCO3dCQUNqQixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFVBQVU7d0JBQ1YsU0FBUztxQkFDWjtzRkFHcUQsU0FBUztzQkFBOUQsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBQ21CLG1CQUFtQjtzQkFBekYsV0FBVzt1QkFBQyx3REFBd0Q7Z0JBRTVELFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdGLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFTbEMsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVhLGVBQWU7c0JBQWpDLE1BQU07Z0JBRUUsS0FBSztzQkFBYixLQUFLO2dCQUVhLFlBQVk7c0JBQTlCLE1BQU07Z0JBQ1ksVUFBVTtzQkFBNUIsTUFBTTtnQkFDWSxRQUFRO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnVuY3Rpb25Qcm9wLCBUaW55RGF0ZSwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IERhdGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSYW5nZVBhcnRUeXBlIH0gZnJvbSAnLi4vLi4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgaXNBZnRlck1vcmVUaGFuTGVzc09uZVllYXIsIGlzQWZ0ZXJNb3JlVGhhbk9uZURlY2FkZSwgaXNBZnRlck1vcmVUaGFuT25lTW9udGgsIGlzQWZ0ZXJNb3JlVGhhbk9uZVllYXIgfSBmcm9tICcuLi8uLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBEaXNhYmxlZERhdGVGbiwgVGh5UGFuZWxNb2RlIH0gZnJvbSAnLi4vLi4vc3RhbmRhcmQtdHlwZXMnO1xuaW1wb3J0IHsgRGF0ZUhlYWRlciB9IGZyb20gJy4uL2RhdGUvZGF0ZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVUYWJsZSB9IGZyb20gJy4uL2RhdGUvZGF0ZS10YWJsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBOZ0lmLCBOZ1N3aXRjaCwgTmdTd2l0Y2hDYXNlLCBOZ1N3aXRjaERlZmF1bHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IERlY2FkZUhlYWRlciB9IGZyb20gJy4uL2RlY2FkZS9kZWNhZGUtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWNhZGVUYWJsZSB9IGZyb20gJy4uL2RlY2FkZS9kZWNhZGUtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1vbnRoSGVhZGVyIH0gZnJvbSAnLi4vbW9udGgvbW9udGgtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb250aFRhYmxlIH0gZnJvbSAnLi4vbW9udGgvbW9udGgtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFllYXJIZWFkZXIgfSBmcm9tICcuLi95ZWFyL3llYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBZZWFyVGFibGUgfSBmcm9tICcuLi95ZWFyL3llYXItdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1YXJ0ZXJUYWJsZSB9IGZyb20gJy4uL3F1YXJ0ZXIvcXVhcnRlci10YWJsZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdpbm5lci1wb3B1cCcsXG4gICAgZXhwb3J0QXM6ICdpbm5lclBvcHVwJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2lubmVyLXBvcHVwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgVGh5SW5wdXREaXJlY3RpdmUsXG4gICAgICAgIE5nU3dpdGNoLFxuICAgICAgICBOZ1N3aXRjaENhc2UsXG4gICAgICAgIERlY2FkZUhlYWRlcixcbiAgICAgICAgRGVjYWRlVGFibGUsXG4gICAgICAgIFllYXJIZWFkZXIsXG4gICAgICAgIFllYXJUYWJsZSxcbiAgICAgICAgTW9udGhIZWFkZXIsXG4gICAgICAgIE1vbnRoVGFibGUsXG4gICAgICAgIFF1YXJ0ZXJUYWJsZSxcbiAgICAgICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgICAgICBEYXRlSGVhZGVyLFxuICAgICAgICBEYXRlVGFibGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElubmVyUG9wdXAgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWNhbGVuZGFyLXBpY2tlci1pbm5lci1wb3B1cCcpIGNsYXNzTmFtZSA9IHRydWU7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktY2FsZW5kYXItcGlja2VyLWlubmVyLXBvcHVwLXdpdGgtcmFuZ2UtaW5wdXQnKSBfc2hvd0RhdGVSYW5nZUlucHV0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzaG93V2VlazogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc1JhbmdlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFjdGl2ZURhdGU6IFRpbnlEYXRlO1xuICAgIEBJbnB1dCgpIHJhbmdlQWN0aXZlRGF0ZTogVGlueURhdGVbXTsgLy8gUmFuZ2UgT05MWVxuICAgIEBJbnB1dCgpIGVuYWJsZVByZXY6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZW5hYmxlTmV4dDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkaXNhYmxlZERhdGU6IERpc2FibGVkRGF0ZUZuO1xuICAgIEBJbnB1dCgpIGRhdGVSZW5kZXI6IEZ1bmN0aW9uUHJvcDxUZW1wbGF0ZVJlZjxEYXRlPiB8IHN0cmluZz47XG4gICAgQElucHV0KCkgc2VsZWN0ZWRWYWx1ZTogVGlueURhdGVbXTsgLy8gUmFuZ2UgT05MWVxuICAgIEBJbnB1dCgpIGhvdmVyVmFsdWU6IFRpbnlEYXRlW107IC8vIFJhbmdlIE9OTFlcblxuICAgIEBJbnB1dCgpIHBhbmVsTW9kZTogVGh5UGFuZWxNb2RlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSlcbiAgICBzZXQgc2hvd0RhdGVSYW5nZUlucHV0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dEYXRlUmFuZ2VJbnB1dCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBzaG93RGF0ZVJhbmdlSW5wdXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93RGF0ZVJhbmdlSW5wdXQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgcGFydFR5cGU6IFJhbmdlUGFydFR5cGU7XG5cbiAgICBASW5wdXQoKSBlbmRQYW5lbE1vZGU6IFRoeVBhbmVsTW9kZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBwYW5lbE1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRoeVBhbmVsTW9kZT4oKTtcblxuICAgIEBJbnB1dCgpIHZhbHVlOiBUaW55RGF0ZTtcblxuICAgIEBPdXRwdXQoKSByZWFkb25seSBoZWFkZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbnlEYXRlPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3REYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW55RGF0ZT4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgZGF5SG92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFRpbnlEYXRlPigpO1xuXG4gICAgcHJlZml4Q2xzID0gJ3RoeS1jYWxlbmRhcic7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVIZWxwZXI6IERhdGVIZWxwZXJTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5hY3RpdmVEYXRlICYmICFjaGFuZ2VzLmFjdGl2ZURhdGUuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSBuZXcgVGlueURhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5wYW5lbE1vZGUgJiYgY2hhbmdlcy5wYW5lbE1vZGUuY3VycmVudFZhbHVlID09PSAndGltZScpIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxNb2RlID0gJ2RhdGUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UmVhZGFibGVWYWx1ZSh2YWx1ZTogVGlueURhdGUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZS5uYXRpdmVEYXRlLCAneXl5eS1NTS1kZCcpIDogJyc7XG4gICAgfVxuXG4gICAgb25TZWxlY3REYXRlKGRhdGU6IFRpbnlEYXRlIHwgRGF0ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGUgaW5zdGFuY2VvZiBUaW55RGF0ZSA/IGRhdGUgOiBuZXcgVGlueURhdGUoZGF0ZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIG9uQ2hvb3NlTW9udGgodmFsdWU6IFRpbnlEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWN0aXZlRGF0ZS5zZXRNb250aCh2YWx1ZS5nZXRNb250aCgpKTtcbiAgICAgICAgaWYgKHRoaXMuZW5kUGFuZWxNb2RlID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERhdGUuZW1pdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlckNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucGFuZWxNb2RlQ2hhbmdlLmVtaXQodGhpcy5lbmRQYW5lbE1vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaG9vc2VRdWFydGVyKHZhbHVlOiBUaW55RGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFjdGl2ZURhdGUuc2V0UXVhcnRlcih2YWx1ZS5nZXRRdWFydGVyKCkpO1xuICAgICAgICBpZiAodGhpcy5lbmRQYW5lbE1vZGUgPT09ICdxdWFydGVyJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnBhbmVsTW9kZUNoYW5nZS5lbWl0KHRoaXMuZW5kUGFuZWxNb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hvb3NlWWVhcih2YWx1ZTogVGlueURhdGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hY3RpdmVEYXRlLnNldFllYXIodmFsdWUuZ2V0WWVhcigpKTtcbiAgICAgICAgaWYgKHRoaXMuZW5kUGFuZWxNb2RlID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0ZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5wYW5lbE1vZGVDaGFuZ2UuZW1pdCh0aGlzLmVuZFBhbmVsTW9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNob29zZURlY2FkZSh2YWx1ZTogVGlueURhdGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hY3RpdmVEYXRlLnNldFllYXIodmFsdWUuZ2V0WWVhcigpKTtcbiAgICAgICAgaWYgKHRoaXMuZW5kUGFuZWxNb2RlID09PSAnZGVjYWRlJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQodmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnBhbmVsTW9kZUNoYW5nZS5lbWl0KCd5ZWFyJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbmFibGVQcmV2TmV4dChkaXJlY3Rpb246ICdwcmV2JyB8ICduZXh0JywgbW9kZTogVGh5UGFuZWxNb2RlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UpIHtcbiAgICAgICAgICAgIGlmICgodGhpcy5wYXJ0VHlwZSA9PT0gJ2xlZnQnICYmIGRpcmVjdGlvbiA9PT0gJ25leHQnKSB8fCAodGhpcy5wYXJ0VHlwZSA9PT0gJ3JpZ2h0JyAmJiBkaXJlY3Rpb24gPT09ICdwcmV2JykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbaGVhZGVyTGVmdERhdGUsIGhlYWRlclJpZ2h0RGF0ZV0gPSB0aGlzLnJhbmdlQWN0aXZlRGF0ZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNBZnRlck1vcmVUaGFuT25lTW9udGgoaGVhZGVyUmlnaHREYXRlLCBoZWFkZXJMZWZ0RGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbmFibGVTdXBlclByZXZOZXh0KGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLCBwYW5lbE1vZGU6IFRoeVBhbmVsTW9kZSkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICBpZiAoKHRoaXMucGFydFR5cGUgPT09ICdsZWZ0JyAmJiBkaXJlY3Rpb24gPT09ICduZXh0JykgfHwgKHRoaXMucGFydFR5cGUgPT09ICdyaWdodCcgJiYgZGlyZWN0aW9uID09PSAncHJldicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW2hlYWRlckxlZnREYXRlLCBoZWFkZXJSaWdodERhdGVdID0gdGhpcy5yYW5nZUFjdGl2ZURhdGU7XG4gICAgICAgICAgICAgICAgaWYgKHBhbmVsTW9kZSA9PT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0FmdGVyTW9yZVRoYW5MZXNzT25lWWVhcihoZWFkZXJSaWdodERhdGUsIGhlYWRlckxlZnREYXRlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbmVsTW9kZSA9PT0gJ21vbnRoJyB8fCBwYW5lbE1vZGUgPT09ICdxdWFydGVyJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNBZnRlck1vcmVUaGFuT25lWWVhcihoZWFkZXJSaWdodERhdGUsIGhlYWRlckxlZnREYXRlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhbmVsTW9kZSA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0FmdGVyTW9yZVRoYW5PbmVEZWNhZGUoaGVhZGVyUmlnaHREYXRlLCBoZWFkZXJMZWZ0RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEYXRlUmFuZ2VJbnB1dFwiPlxuICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlci1pbm5lci1wb3B1cC1yYW5nZS1pbnB1dFwiPlxuICAgIDxpbnB1dCB0aHlJbnB1dCB0aHlTaXplPVwic21cIiBbdmFsdWVdPVwiZ2V0UmVhZGFibGVWYWx1ZShzZWxlY3RlZFZhbHVlWzBdKVwiIHBsYWNlaG9sZGVyPVwi5byA5aeL5pel5pyfXCIgLz5cbiAgICA8c3BhbiBjbGFzcz1cInNwbGl0XCI+PC9zcGFuPlxuICAgIDxpbnB1dCB0aHlJbnB1dCB0aHlTaXplPVwic21cIiBbdmFsdWVdPVwiZ2V0UmVhZGFibGVWYWx1ZShzZWxlY3RlZFZhbHVlWzFdKVwiIHBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIgLz5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInBhbmVsTW9kZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVjYWRlJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tZGVjYWRlXCI+XG4gICAgICA8ZGVjYWRlLWhlYWRlclxuICAgICAgICBbKHZhbHVlKV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgW3Nob3dTdXBlclByZUJ0bl09XCJlbmFibGVTdXBlclByZXZOZXh0KCdwcmV2JywgJ2RlY2FkZScpXCJcbiAgICAgICAgW3Nob3dTdXBlck5leHRCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgnbmV4dCcsICdkZWNhZGUnKVwiXG4gICAgICAgIFtzaG93TmV4dEJ0bl09XCJmYWxzZVwiXG4gICAgICAgIFtzaG93UHJlQnRuXT1cImZhbHNlXCJcbiAgICAgICAgKHBhbmVsTW9kZUNoYW5nZSk9XCJwYW5lbE1vZGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImhlYWRlckNoYW5nZS5lbWl0KCRldmVudClcIj5cbiAgICAgIDwvZGVjYWRlLWhlYWRlcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tYm9keVwiPlxuICAgICAgICA8ZGVjYWRlLXRhYmxlIFt2YWx1ZV09XCJ2YWx1ZVwiIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIiAodmFsdWVDaGFuZ2UpPVwib25DaG9vc2VEZWNhZGUoJGV2ZW50KVwiPjwvZGVjYWRlLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFyJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0teWVhclwiPlxuICAgICAgPHllYXItaGVhZGVyXG4gICAgICAgIFsodmFsdWUpXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICBbc2hvd1N1cGVyUHJlQnRuXT1cImVuYWJsZVN1cGVyUHJldk5leHQoJ3ByZXYnLCAneWVhcicpXCJcbiAgICAgICAgW3Nob3dTdXBlck5leHRCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgnbmV4dCcsICd5ZWFyJylcIlxuICAgICAgICBbc2hvd05leHRCdG5dPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd1ByZUJ0bl09XCJmYWxzZVwiXG4gICAgICAgIChwYW5lbE1vZGVDaGFuZ2UpPVwicGFuZWxNb2RlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJoZWFkZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+XG4gICAgICA8L3llYXItaGVhZGVyPlxuICAgICAgPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1ib2R5XCI+XG4gICAgICAgIDx5ZWFyLXRhYmxlXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hvb3NlWWVhcigkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRWYWx1ZV09XCJzZWxlY3RlZFZhbHVlXCI+XG4gICAgICAgIDwveWVhci10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRoJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tbW9udGhcIj5cbiAgICAgIDxtb250aC1oZWFkZXJcbiAgICAgICAgWyh2YWx1ZSldPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgIFtzaG93U3VwZXJQcmVCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgncHJldicsICdtb250aCcpXCJcbiAgICAgICAgW3Nob3dTdXBlck5leHRCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgnbmV4dCcsICdtb250aCcpXCJcbiAgICAgICAgW3Nob3dOZXh0QnRuXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dQcmVCdG5dPVwiZmFsc2VcIlxuICAgICAgICAocGFuZWxNb2RlQ2hhbmdlKT1cInBhbmVsTW9kZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaGVhZGVyQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgPC9tb250aC1oZWFkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvZHlcIj5cbiAgICAgICAgPG1vbnRoLXRhYmxlXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uQ2hvb3NlTW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiPlxuICAgICAgICA8L21vbnRoLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcidcIj5cbiAgICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXF1YXJ0ZXJcIj5cbiAgICAgIDxtb250aC1oZWFkZXJcbiAgICAgICAgWyh2YWx1ZSldPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgIFtzaG93U3VwZXJQcmVCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgncHJldicsICdtb250aCcpXCJcbiAgICAgICAgW3Nob3dTdXBlck5leHRCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgnbmV4dCcsICdtb250aCcpXCJcbiAgICAgICAgW3Nob3dOZXh0QnRuXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dQcmVCdG5dPVwiZmFsc2VcIlxuICAgICAgICAocGFuZWxNb2RlQ2hhbmdlKT1cInBhbmVsTW9kZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwiaGVhZGVyQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgPC9tb250aC1oZWFkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvZHlcIj5cbiAgICAgICAgPHF1YXJ0ZXItdGFibGVcbiAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaG9vc2VRdWFydGVyKCRldmVudClcIlxuICAgICAgICAgIFtzZWxlY3RlZFZhbHVlXT1cInNlbGVjdGVkVmFsdWVcIj5cbiAgICAgICAgPC9xdWFydGVyLXRhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPGRhdGUtaGVhZGVyXG4gICAgICBbKHZhbHVlKV09XCJhY3RpdmVEYXRlXCJcbiAgICAgIFtzaG93U3VwZXJQcmVCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgncHJldicsICdkYXRlJylcIlxuICAgICAgW3Nob3dTdXBlck5leHRCdG5dPVwiZW5hYmxlU3VwZXJQcmV2TmV4dCgnbmV4dCcsICdkYXRlJylcIlxuICAgICAgW3Nob3dQcmVCdG5dPVwiZW5hYmxlUHJldk5leHQoJ3ByZXYnLCAnZGF0ZScpXCJcbiAgICAgIFtzaG93TmV4dEJ0bl09XCJlbmFibGVQcmV2TmV4dCgnbmV4dCcsICdkYXRlJylcIlxuICAgICAgKHBhbmVsTW9kZUNoYW5nZSk9XCJwYW5lbE1vZGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJoZWFkZXJDaGFuZ2UuZW1pdCgkZXZlbnQpXCI+PC9kYXRlLWhlYWRlcj5cbiAgICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvZHlcIj5cbiAgICAgIDxkYXRlLXRhYmxlXG4gICAgICAgIFtzaG93V2Vla109XCJzaG93V2Vla1wiXG4gICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgIFthY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25TZWxlY3REYXRlKCRldmVudClcIlxuICAgICAgICBzaG93V2Vla051bWJlcj1cImZhbHNlXCJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxuICAgICAgICBbY2VsbFJlbmRlcl09XCJkYXRlUmVuZGVyXCJcbiAgICAgICAgW3NlbGVjdGVkVmFsdWVdPVwic2VsZWN0ZWRWYWx1ZVwiXG4gICAgICAgIFtob3ZlclZhbHVlXT1cImhvdmVyVmFsdWVcIlxuICAgICAgICAoZGF5SG92ZXIpPVwiZGF5SG92ZXIuZW1pdCgkZXZlbnQpXCI+PC9kYXRlLXRhYmxlPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { getFlexiblePositions } from 'ngx-tethys/core';
2
- import { TinyDate } from 'ngx-tethys/util';
2
+ import { coerceBooleanProperty, TinyDate } from 'ngx-tethys/util';
3
3
  import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
4
- import { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
4
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
5
5
  import { AsyncPipe, NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
6
6
  import { ThyIcon } from 'ngx-tethys/icon';
7
7
  import { ThyInputDirective } from 'ngx-tethys/input';
@@ -210,7 +210,7 @@ export class ThyPicker {
210
210
  this.pickerInput.nativeElement.value = readableValue;
211
211
  }
212
212
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.DateHelperService }], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyPicker, isStandalone: true, selector: "thy-picker", inputs: { isRange: "isRange", open: "open", disabled: "disabled", placeholder: "placeholder", readonly: "readonly", allowClear: "allowClear", autoFocus: "autoFocus", className: "className", size: "size", suffixIcon: "suffixIcon", placement: "placement", flexible: "flexible", mode: "mode", hasBackdrop: ["hasBackdrop", "hasBackdrop", booleanAttribute], format: "format", flexibleDateGranularity: "flexibleDateGranularity", value: "value" }, outputs: { blur: "blur", valueChange: "valueChange", openChange: "openChange", inputChange: "inputChange" }, viewQueries: [{ propertyName: "origin", first: true, predicate: ["origin"], descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "pickerInput", first: true, predicate: ["pickerInput"], descendants: true, static: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true }], exportAs: ["thyPicker"], usesOnChanges: true, ngImport: i0, template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonlyState\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n placeholder=\"{{ getPlaceholder() }}\"\n thyEnter\n (thyEnter)=\"onEnter()\" />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n *ngIf=\"!disabled && !isEmptyValue(value) && allowClear && !readonly\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link-{{ size ? size : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n class=\"thy-picker-container\"\n [@scaleXMotion]=\"placement === 'left' || placement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"placement === 'top' || placement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"placement !== 'left' && placement !== 'right' && placement !== 'top' && placement !== 'bottom' ? 'enter' : 'void'\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], animations: [scaleXMotion, scaleYMotion, scaleMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
213
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyPicker, isStandalone: true, selector: "thy-picker", inputs: { isRange: "isRange", open: "open", disabled: "disabled", placeholder: "placeholder", readonly: "readonly", allowClear: "allowClear", autoFocus: "autoFocus", className: "className", size: "size", suffixIcon: "suffixIcon", placement: "placement", flexible: "flexible", mode: "mode", hasBackdrop: ["hasBackdrop", "hasBackdrop", coerceBooleanProperty], format: "format", flexibleDateGranularity: "flexibleDateGranularity", value: "value" }, outputs: { blur: "blur", valueChange: "valueChange", openChange: "openChange", inputChange: "inputChange" }, viewQueries: [{ propertyName: "origin", first: true, predicate: ["origin"], descendants: true, static: true }, { propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, static: true }, { propertyName: "pickerInput", first: true, predicate: ["pickerInput"], descendants: true, static: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true }], exportAs: ["thyPicker"], usesOnChanges: true, ngImport: i0, template: "<span\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"{{ prefixCls }}-picker {{ size ? prefixCls + '-picker-' + size : '' }} {{ className }}\"\n (click)=\"onClickInputBox()\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control-{{ size }} form-control {{ prefixCls }}-picker-input\"\n [thySize]=\"size\"\n [tabindex]=\"-1\"\n [class.thy-input-disabled]=\"disabled\"\n [class.thy-input-readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [readonly]=\"readonlyState\"\n (blur)=\"onBlur($event)\"\n (input)=\"onInput($event)\"\n placeholder=\"{{ getPlaceholder() }}\"\n thyEnter\n (thyEnter)=\"onEnter()\" />\n <ng-container *ngTemplateOutlet=\"tplRightRest\"></ng-container>\n </ng-container>\n</span>\n\n<!-- Right operator icons -->\n<ng-template #tplRightRest>\n <span class=\"{{ prefixCls }}-picker-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n *ngIf=\"!disabled && !isEmptyValue(value) && allowClear && !readonly\"\n (click)=\"onClickClear($event)\"\n ngClass=\"remove-link remove-link-{{ size }}\"></thy-icon>\n </span>\n <span class=\"{{ prefixCls }}-picker-icon\">\n <thy-icon [thyIconName]=\"suffixIcon\" ngClass=\"remove-link-{{ size ? size : 'default' }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"realOpenState\"\n [cdkConnectedOverlayHasBackdrop]=\"hasBackdrop\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (detach)=\"onOverlayDetach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n class=\"thy-picker-container\"\n [@scaleXMotion]=\"placement === 'left' || placement === 'right' ? 'enter' : 'void'\"\n [@scaleYMotion]=\"placement === 'top' || placement === 'bottom' ? 'enter' : 'void'\"\n [@scaleMotion]=\"placement !== 'left' && placement !== 'right' && placement !== 'top' && placement !== 'bottom' ? 'enter' : 'void'\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <ng-content></ng-content>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }], animations: [scaleXMotion, scaleYMotion, scaleMotion], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
214
214
  }
215
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyPicker, decorators: [{
216
216
  type: Component,
@@ -253,7 +253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
253
253
  type: Input
254
254
  }], hasBackdrop: [{
255
255
  type: Input,
256
- args: [{ transform: booleanAttribute }]
256
+ args: [{ transform: coerceBooleanProperty }]
257
257
  }], blur: [{
258
258
  type: Output
259
259
  }], valueChange: [{
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
281
281
  }], value: [{
282
282
  type: Input
283
283
  }] } });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBRUgsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFFOztHQUVHO0FBb0JILE1BQU0sT0FBTyxTQUFTO0lBeUJsQixJQUNJLE1BQU07UUFDTixPQUFPLElBQUksQ0FB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LEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHNUMsTUFBTTtzQkFEVCxLQUFLO2dCQVdGLHVCQUF1QjtzQkFEMUIsS0FBSztnQkFXRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRGbGV4aWJsZVBvc2l0aW9ucywgVGh5UGxhY2VtZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRpbnlEYXRlIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiwgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBEYXRlSGVscGVyU2VydmljZSB9IGZyb20gJy4vZGF0ZS1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYXRpYmxlVmFsdWUsIFJhbmdlUGFydFR5cGUgfSBmcm9tICcuL2lubmVyLXR5cGVzJztcbmltcG9ydCB7IGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlIH0gZnJvbSAnLi9waWNrZXIudXRpbCc7XG5pbXBvcnQgeyBUaHlEYXRlR3JhbnVsYXJpdHkgfSBmcm9tICcuL3N0YW5kYXJkLXR5cGVzJztcbmltcG9ydCB7IFRoeUVudGVyRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgc2NhbGVNb3Rpb24sIHNjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1waWNrZXInLFxuICAgIGV4cG9ydEFzOiAndGh5UGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ2RrT3ZlcmxheU9yaWdpbixcbiAgICAgICAgVGh5SW5wdXREaXJlY3RpdmUsXG4gICAgICAgIFRoeUVudGVyRGlyZWN0aXZlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIFRoeUljb24sXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIENka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICBdLFxuICAgIGFuaW1hdGlvbnM6IFtzY2FsZVhNb3Rpb24sIHNjYWxlWU1vdGlvbiwgc2NhbGVNb3Rpb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeVBpY2tlciBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgaXNSYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG9wZW46IGJvb2xlYW4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGFsbG93Q2xlYXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYXV0b0ZvY3VzOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNpemU6ICdzbScgfCAneHMnIHwgJ2xnJyB8ICdtZCcgfCAnZGVmYXVsdCc7XG4gICAgQElucHV0KCkgc3VmZml4SWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogVGh5UGxhY2VtZW50ID0gJ2JvdHRvbUxlZnQnO1xuICAgIEBJbnB1dCgpIGZsZXhpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgbW9kZTogc3RyaW5nO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNCYWNrZHJvcDogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOyAvLyBFbWl0dGVkIHdoZW4gb3ZlcmxheSdzIG9wZW4gc3RhdGUgY2hhbmdlXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGlucHV0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdvcmlnaW4nLCB7IHN0YXRpYzogdHJ1ZSB9KSBvcmlnaW46IENka092ZXJsYXlPcmlnaW47XG4gICAgQFZpZXdDaGlsZChDZGtDb25uZWN0ZWRPdmVybGF5LCB7IHN0YXRpYzogdHJ1ZSB9KSBjZGtDb25uZWN0ZWRPdmVybGF5OiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuICAgIEBWaWV3Q2hpbGQoJ3BpY2tlcklucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcGlja2VySW5wdXQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnb3ZlcmxheUNvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSBvdmVybGF5Q29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGZvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJGb3JtYXQ7XG4gICAgfVxuXG4gICAgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaW5uZXJGb3JtYXQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVSZWFkYWJsZURhdGUodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBmbGV4aWJsZURhdGVHcmFudWxhcml0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eTtcbiAgICB9XG5cbiAgICBzZXQgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkoZ3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eSkge1xuICAgICAgICB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgPSBncmFudWxhcml0eTtcbiAgICAgICAgdGhpcy51cGRhdGVSZWFkYWJsZURhdGUodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCB2YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgdmFsdWUodmFsdWU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmICghdGhpcy5lbnRlcmluZykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSZWFkYWJsZURhdGUodGhpcy5pbm5lclZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eTogVGh5RGF0ZUdyYW51bGFyaXR5O1xuXG4gICAgcHJpdmF0ZSBpbm5lckZvcm1hdDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBpbm5lclZhbHVlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsO1xuXG4gICAgZW50ZXJpbmcgPSBmYWxzZTtcblxuICAgIHByZWZpeENscyA9ICd0aHktY2FsZW5kYXInO1xuXG4gICAgaXNTaG93RGF0ZVBvcHVwID0gZmFsc2U7XG5cbiAgICBvdmVybGF5T3BlbiA9IGZhbHNlOyAvLyBBdmFpbGFibGUgd2hlbiBcIm9wZW5cIj11bmRlZmluZWRcblxuICAgIG92ZXJsYXlQb3NpdGlvbnMgPSBnZXRGbGV4aWJsZVBvc2l0aW9ucyh0aGlzLnBsYWNlbWVudCwgNCk7XG5cbiAgICBnZXQgcmVhbE9wZW5TdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgLy8gVGhlIHZhbHVlIHRoYXQgcmVhbGx5IGRlY2lkZSB0aGUgb3BlbiBzdGF0ZSBvZiBvdmVybGF5XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3BlbkhhbmRsZWRCeVVzZXIoKSA/ICEhdGhpcy5vcGVuIDogdGhpcy5vdmVybGF5T3BlbjtcbiAgICB9XG5cbiAgICBnZXQgcmVhZG9ubHlTdGF0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSYW5nZSB8fCB0aGlzLnJlYWRvbmx5IHx8IHRoaXMubW9kZSAhPT0gJ2RhdGUnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGRhdGVIZWxwZXI6IERhdGVIZWxwZXJTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICAvLyBvcGVuIGJ5IHVzZXJcbiAgICAgICAgaWYgKGNoYW5nZXMub3BlbiAmJiBjaGFuZ2VzLm9wZW4uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLm9wZW4uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93RGF0ZVBvcHVwKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VEYXRlUG9wdXAoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuICAgICAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgICAgICBpZiAodGhpcy5lbnRlcmluZykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbnRlcmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uSW5wdXQoZXZlbnQ6IElucHV0RXZlbnQpIHtcbiAgICAgICAgdGhpcy5lbnRlcmluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KVsndmFsdWUnXTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KGlucHV0VmFsdWUpO1xuICAgIH1cblxuICAgIG9uRW50ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5U3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlIHx8IHRoaXMuZ2V0UmVhZGFibGVWYWx1ZShuZXcgVGlueURhdGUobmV3IERhdGUoKSkpKTtcbiAgICAgICAgdGhpcy5lbnRlcmluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHNob3dPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNob3dEYXRlUG9wdXAoKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jZGtDb25uZWN0ZWRPdmVybGF5ICYmIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheS5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhbE9wZW5TdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5T3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbG9zZURhdGVQb3B1cCgpO1xuXG4gICAgICAgICAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0aGlzLm92ZXJsYXlPcGVuKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dEYXRlUG9wdXAoKSB7XG4gICAgICAgIHRoaXMuaXNTaG93RGF0ZVBvcHVwID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBjbG9zZURhdGVQb3B1cCgpIHtcbiAgICAgICAgLy8gRGVsYXkgMjAwbXMgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlIGRhdGUtcG9wdXAsIG90aGVyd2lzZSB5b3Ugd2lsbCBub3Qgc2VlIHRoZSBjbG9zaW5nIGFuaW1hdGlvbi5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0RhdGVQb3B1cCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSwgMjAwKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrSW5wdXRCb3goKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAhdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2xpY2tCYWNrZHJvcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uT3ZlcmxheURldGFjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cblxuICAgIG9uUG9zaXRpb25DaGFuZ2UocG9zaXRpb246IENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrQ2xlYXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5pbm5lclZhbHVlID0gdGhpcy5pc1JhbmdlID8gW10gOiBudWxsO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRQYXJ0VHlwZUluZGV4KHBhcnRUeXBlOiBSYW5nZVBhcnRUeXBlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHsgbGVmdDogMCwgcmlnaHQ6IDEgfVtwYXJ0VHlwZV07XG4gICAgfVxuXG4gICAgaXNFbXB0eVZhbHVlKHZhbHVlOiBDb21wYXRpYmxlVmFsdWUgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICByZXR1cm4gIXZhbHVlIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5ldmVyeSh2YWwgPT4gIXZhbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gIXZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gV2hldGhlciBvcGVuIHN0YXRlIGlzIHBlcm1hbmVudGx5IGNvbnRyb2xsZWQgYnkgdXNlciBoaW1zZWxmXG4gICAgaXNPcGVuSGFuZGxlZEJ5VXNlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3BlbiAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldFJlYWRhYmxlVmFsdWUodGlueURhdGU6IFRpbnlEYXRlIHwgVGlueURhdGVbXSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBsZXQgdmFsdWU6IFRpbnlEYXRlO1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mbGV4aWJsZSAmJiB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHkgIT09ICdkYXknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEZsZXhpYmxlQWR2YW5jZWRSZWFkYWJsZVZhbHVlKHRpbnlEYXRlIGFzIFRpbnlEYXRlW10sIHRoaXMuaW5uZXJmbGV4aWJsZURhdGVHcmFudWxhcml0eSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGlueURhdGVbMF0gPyB0aGlzLmZvcm1hdERhdGUodGlueURhdGVbMF0pIDogJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gdGlueURhdGVbMV0gPyB0aGlzLmZvcm1hdERhdGUodGlueURhdGVbMV0pIDogJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0ICYmIGVuZCA/IGAke3N0YXJ0fSB+ICR7ZW5kfWAgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSB0aW55RGF0ZSBhcyBUaW55RGF0ZTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IHRoaXMuZm9ybWF0RGF0ZSh2YWx1ZSkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9ybWF0RGF0ZSh2YWx1ZTogVGlueURhdGUpIHtcbiAgICAgICAgLy8gZGF0ZUhlbHBlci5mb3JtYXQoKSDkvb/nlKjnmoTmmK8gYW5ndWxhciDnmoQgZm9ybWF077yM5LiN5pSv5oyB5a2j5bqm77yM5L+u5pS555qE6K+d77yM5pS55Yqo5q+U6L6D5aSn44CCXG4gICAgICAgIC8vIOatpOWkhOmAmui/h+WvuSBpbm5lckZvcm1hdCDlgZrkuIvliKTmlq3vvIzlpoLmnpzmmK/lraPluqbnmoQgZm9ybWF077yM5L2/55SoIGRhdGUtZm5zIOeahCBmb3JtYXQoKVxuICAgICAgICBpZiAodGhpcy5pbm5lckZvcm1hdCAmJiAodGhpcy5pbm5lckZvcm1hdC5pbmNsdWRlcygncScpIHx8IHRoaXMuaW5uZXJGb3JtYXQuaW5jbHVkZXMoJ1EnKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mb3JtYXQodGhpcy5pbm5lckZvcm1hdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRlSGVscGVyLmZvcm1hdCh2YWx1ZS5uYXRpdmVEYXRlLCB0aGlzLmlubmVyRm9ybWF0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UgJiYgdGhpcy5wbGFjZWhvbGRlciAmJiBBcnJheS5pc0FycmF5KHRoaXMucGxhY2Vob2xkZXIpXG4gICAgICAgICAgICA/ICh0aGlzLnBsYWNlaG9sZGVyIGFzIHN0cmluZ1tdKS5qb2luKCcgfiAnKVxuICAgICAgICAgICAgOiAodGhpcy5wbGFjZWhvbGRlciBhcyBzdHJpbmcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUmVhZGFibGVEYXRlKHNldFZhbHVlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsKSB7XG4gICAgICAgIGNvbnN0IHJlYWRhYmxlVmFsdWUgPSB0aGlzLmdldFJlYWRhYmxlVmFsdWUoc2V0VmFsdWUpO1xuICAgICAgICBpZiAocmVhZGFibGVWYWx1ZSA9PT0gdGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50Wyd2YWx1ZSddKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSByZWFkYWJsZVZhbHVlO1xuICAgIH1cbn1cbiIsIjxzcGFuXG4gIGNka092ZXJsYXlPcmlnaW5cbiAgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuICBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXIge3sgc2l6ZSA/IHByZWZpeENscyArICctcGlja2VyLScgKyBzaXplIDogJycgfX0ge3sgY2xhc3NOYW1lIH19XCJcbiAgKGNsaWNrKT1cIm9uQ2xpY2tJbnB1dEJveCgpXCI+XG4gIDxuZy1jb250YWluZXI+XG4gICAgPGlucHV0XG4gICAgICAjcGlja2VySW5wdXRcbiAgICAgIHRoeUlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbC17eyBzaXplIH19IGZvcm0tY29udHJvbCB7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWlucHV0XCJcbiAgICAgIFt0aHlTaXplXT1cInNpemVcIlxuICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2NsYXNzLnRoeS1pbnB1dC1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5U3RhdGVcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IGdldFBsYWNlaG9sZGVyKCkgfX1cIlxuICAgICAgdGh5RW50ZXJcbiAgICAgICh0aHlFbnRlcik9XCJvbkVudGVyKClcIiAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxSaWdodFJlc3RcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L3NwYW4+XG5cbjwhLS0gUmlnaHQgb3BlcmF0b3IgaWNvbnMgLS0+XG48bmctdGVtcGxhdGUgI3RwbFJpZ2h0UmVzdD5cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWNsZWFyXCI+XG4gICAgPHRoeS1pY29uXG4gICAgICB0aHlJY29uTmFtZT1cImNsb3NlLWNpcmNsZS1ib2xkLWZpbGxcIlxuICAgICAgKm5nSWY9XCIhZGlzYWJsZWQgJiYgIWlzRW1wdHlWYWx1ZSh2YWx1ZSkgJiYgYWxsb3dDbGVhciAmJiAhcmVhZG9ubHlcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tDbGVhcigkZXZlbnQpXCJcbiAgICAgIG5nQ2xhc3M9XCJyZW1vdmUtbGluayByZW1vdmUtbGluay17eyBzaXplIH19XCI+PC90aHktaWNvbj5cbiAgPC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1waWNrZXItaWNvblwiPlxuICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwic3VmZml4SWNvblwiIG5nQ2xhc3M9XCJyZW1vdmUtbGluay17eyBzaXplID8gc2l6ZSA6ICdkZWZhdWx0JyB9fVwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gT3ZlcmxheSAtLT5cbjxuZy10ZW1wbGF0ZVxuICBjZGtDb25uZWN0ZWRPdmVybGF5XG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm9yaWdpblwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJyZWFsT3BlblN0YXRlXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJoYXNCYWNrZHJvcFwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cIm92ZXJsYXlQb3NpdGlvbnNcIlxuICBjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzcz1cImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVRyYW5zZm9ybU9yaWdpbk9uPVwiLnRoeS1waWNrZXItY29udGFpbmVyXCJcbiAgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQ2xpY2tCYWNrZHJvcCgpXCJcbiAgKGRldGFjaCk9XCJvbk92ZXJsYXlEZXRhY2goKVwiPlxuICA8ZGl2XG4gICAgI292ZXJsYXlDb250YWluZXJcbiAgICBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiXG4gICAgY2xhc3M9XCJ0aHktcGlja2VyLWNvbnRhaW5lclwiXG4gICAgW0BzY2FsZVhNb3Rpb25dPVwicGxhY2VtZW50ID09PSAnbGVmdCcgfHwgcGxhY2VtZW50ID09PSAncmlnaHQnID8gJ2VudGVyJyA6ICd2b2lkJ1wiXG4gICAgW0BzY2FsZVlNb3Rpb25dPVwicGxhY2VtZW50ID09PSAndG9wJyB8fCBwbGFjZW1lbnQgPT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1wiXG4gICAgW0BzY2FsZU1vdGlvbl09XCJwbGFjZW1lbnQgIT09ICdsZWZ0JyAmJiBwbGFjZW1lbnQgIT09ICdyaWdodCcgJiYgcGxhY2VtZW50ICE9PSAndG9wJyAmJiBwbGFjZW1lbnQgIT09ICdib3R0b20nID8gJ2VudGVyJyA6ICd2b2lkJ1wiPlxuICAgIDwhLS0gQ29tcGF0aWJsZSBmb3Igb3ZlcmxheSB0aGF0IG5vdCBzdXBwb3J0IG9mZnNldCBkeW5hbWljYWxseSBhbmQgaW1tZWRpYXRlbHkgLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXBpY2tlci9waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2RhdGUtcGlja2VyL3BpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFMUU7O0dBRUc7QUFvQkgsTUFBTSxPQUFPLFNBQVM7SUF5QmxCLElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFD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RUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUc1QyxNQUFNO3NCQURULEtBQUs7Z0JBV0YsdUJBQXVCO3NCQUQxQixLQUFLO2dCQVdGLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZsZXhpYmxlUG9zaXRpb25zLCBUaHlQbGFjZW1lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5SW5wdXREaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IERhdGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBhdGlibGVWYWx1ZSwgUmFuZ2VQYXJ0VHlwZSB9IGZyb20gJy4vaW5uZXItdHlwZXMnO1xuaW1wb3J0IHsgZ2V0RmxleGlibGVBZHZhbmNlZFJlYWRhYmxlVmFsdWUgfSBmcm9tICcuL3BpY2tlci51dGlsJztcbmltcG9ydCB7IFRoeURhdGVHcmFudWxhcml0eSB9IGZyb20gJy4vc3RhbmRhcmQtdHlwZXMnO1xuaW1wb3J0IHsgVGh5RW50ZXJEaXJlY3RpdmUgfSBmcm9tICduZ3gtdGV0aHlzL3NoYXJlZCc7XG5pbXBvcnQgeyBzY2FsZU1vdGlvbiwgc2NhbGVYTW90aW9uLCBzY2FsZVlNb3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXBpY2tlcicsXG4gICAgZXhwb3J0QXM6ICd0aHlQaWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDZGtPdmVybGF5T3JpZ2luLFxuICAgICAgICBUaHlJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgVGh5RW50ZXJEaXJlY3RpdmUsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTmdJZixcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQ2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW3NjYWxlWE1vdGlvbiwgc2NhbGVZTW90aW9uLCBzY2FsZU1vdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgVGh5UGlja2VyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKSBpc1JhbmdlID0gZmFsc2U7XG4gICAgQElucHV0KCkgb3BlbjogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYWxsb3dDbGVhcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBhdXRvRm9jdXM6IGJvb2xlYW47XG4gICAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICd4cycgfCAnbGcnIHwgJ21kJyB8ICdkZWZhdWx0JztcbiAgICBASW5wdXQoKSBzdWZmaXhJY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcGxhY2VtZW50OiBUaHlQbGFjZW1lbnQgPSAnYm90dG9tTGVmdCc7XG4gICAgQElucHV0KCkgZmxleGlibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBtb2RlOiBzdHJpbmc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgaGFzQmFja2Ryb3A6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbD4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTsgLy8gRW1pdHRlZCB3aGVuIG92ZXJsYXkncyBvcGVuIHN0YXRlIGNoYW5nZVxuICAgIEBPdXRwdXQoKSByZWFkb25seSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnb3JpZ2luJywgeyBzdGF0aWM6IHRydWUgfSkgb3JpZ2luOiBDZGtPdmVybGF5T3JpZ2luO1xuICAgIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSwgeyBzdGF0aWM6IHRydWUgfSkgY2RrQ29ubmVjdGVkT3ZlcmxheTogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcbiAgICBAVmlld0NoaWxkKCdwaWNrZXJJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHBpY2tlcklucHV0OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgb3ZlcmxheUNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBmb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyRm9ybWF0O1xuICAgIH1cblxuICAgIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLmlubmVyRm9ybWF0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlUmVhZGFibGVEYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgZmxleGlibGVEYXRlR3JhbnVsYXJpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHk7XG4gICAgfVxuXG4gICAgc2V0IGZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5KGdyYW51bGFyaXR5OiBUaHlEYXRlR3JhbnVsYXJpdHkpIHtcbiAgICAgICAgdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ID0gZ3JhbnVsYXJpdHk7XG4gICAgICAgIHRoaXMudXBkYXRlUmVhZGFibGVEYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBpZiAoIXRoaXMuZW50ZXJpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUmVhZGFibGVEYXRlKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHk6IFRoeURhdGVHcmFudWxhcml0eTtcblxuICAgIHByaXZhdGUgaW5uZXJGb3JtYXQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgaW5uZXJWYWx1ZTogVGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbDtcblxuICAgIGVudGVyaW5nID0gZmFsc2U7XG5cbiAgICBwcmVmaXhDbHMgPSAndGh5LWNhbGVuZGFyJztcblxuICAgIGlzU2hvd0RhdGVQb3B1cCA9IGZhbHNlO1xuXG4gICAgb3ZlcmxheU9wZW4gPSBmYWxzZTsgLy8gQXZhaWxhYmxlIHdoZW4gXCJvcGVuXCI9dW5kZWZpbmVkXG5cbiAgICBvdmVybGF5UG9zaXRpb25zID0gZ2V0RmxleGlibGVQb3NpdGlvbnModGhpcy5wbGFjZW1lbnQsIDQpO1xuXG4gICAgZ2V0IHJlYWxPcGVuU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIFRoZSB2YWx1ZSB0aGF0IHJlYWxseSBkZWNpZGUgdGhlIG9wZW4gc3RhdGUgb2Ygb3ZlcmxheVxuICAgICAgICByZXR1cm4gdGhpcy5pc09wZW5IYW5kbGVkQnlVc2VyKCkgPyAhIXRoaXMub3BlbiA6IHRoaXMub3ZlcmxheU9wZW47XG4gICAgfVxuXG4gICAgZ2V0IHJlYWRvbmx5U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UgfHwgdGhpcy5yZWFkb25seSB8fCB0aGlzLm1vZGUgIT09ICdkYXRlJztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBkYXRlSGVscGVyOiBEYXRlSGVscGVyU2VydmljZSkge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgLy8gb3BlbiBieSB1c2VyXG4gICAgICAgIGlmIChjaGFuZ2VzLm9wZW4gJiYgY2hhbmdlcy5vcGVuLmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlcy5vcGVuLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0RhdGVQb3B1cCgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRGF0ZVBvcHVwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheVBvc2l0aW9ucyA9IGdldEZsZXhpYmxlUG9zaXRpb25zKHRoaXMucGxhY2VtZW50LCA0KTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgb25CbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZW50ZXJpbmcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnBpY2tlcklucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50ZXJpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbklucHV0KGV2ZW50OiBJbnB1dEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZW50ZXJpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudClbJ3ZhbHVlJ107XG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdChpbnB1dFZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkVudGVyKCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seVN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSB8fCB0aGlzLmdldFJlYWRhYmxlVmFsdWUobmV3IFRpbnlEYXRlKG5ldyBEYXRlKCkpKSk7XG4gICAgICAgIHRoaXMuZW50ZXJpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBzaG93T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlYWxPcGVuU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zaG93RGF0ZVBvcHVwKCk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRoaXMub3ZlcmxheU9wZW4pO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2RrQ29ubmVjdGVkT3ZlcmxheSAmJiB0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkub3ZlcmxheVJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNka0Nvbm5lY3RlZE92ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZU92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWxPcGVuU3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheU9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEYXRlUG9wdXAoKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQodGhpcy5vdmVybGF5T3Blbik7XG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93RGF0ZVBvcHVwKCkge1xuICAgICAgICB0aGlzLmlzU2hvd0RhdGVQb3B1cCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgY2xvc2VEYXRlUG9wdXAoKSB7XG4gICAgICAgIC8vIERlbGF5IDIwMG1zIGJlZm9yZSBkZXN0cm95aW5nIHRoZSBkYXRlLXBvcHVwLCBvdGhlcndpc2UgeW91IHdpbGwgbm90IHNlZSB0aGUgY2xvc2luZyBhbmltYXRpb24uXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dEYXRlUG9wdXAgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfVxuXG4gICAgb25DbGlja0lucHV0Qm94KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMuaXNPcGVuSGFuZGxlZEJ5VXNlcigpKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dPdmVybGF5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNsaWNrQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvbk92ZXJsYXlEZXRhY2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICB9XG5cbiAgICBvblBvc2l0aW9uQ2hhbmdlKHBvc2l0aW9uOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgb25DbGlja0NsZWFyKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHRoaXMuaXNSYW5nZSA/IFtdIDogbnVsbDtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0UGFydFR5cGVJbmRleChwYXJ0VHlwZTogUmFuZ2VQYXJ0VHlwZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB7IGxlZnQ6IDAsIHJpZ2h0OiAxIH1bcGFydFR5cGVdO1xuICAgIH1cblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogQ29tcGF0aWJsZVZhbHVlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgcmV0dXJuICF2YWx1ZSB8fCAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUuZXZlcnkodmFsID0+ICF2YWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICF2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdoZXRoZXIgb3BlbiBzdGF0ZSBpcyBwZXJtYW5lbnRseSBjb250cm9sbGVkIGJ5IHVzZXIgaGltc2VsZlxuICAgIGlzT3BlbkhhbmRsZWRCeVVzZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wZW4gIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRSZWFkYWJsZVZhbHVlKHRpbnlEYXRlOiBUaW55RGF0ZSB8IFRpbnlEYXRlW10pOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgbGV0IHZhbHVlOiBUaW55RGF0ZTtcbiAgICAgICAgaWYgKHRoaXMuaXNSYW5nZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmxleGlibGUgJiYgdGhpcy5pbm5lcmZsZXhpYmxlRGF0ZUdyYW51bGFyaXR5ICE9PSAnZGF5Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRGbGV4aWJsZUFkdmFuY2VkUmVhZGFibGVWYWx1ZSh0aW55RGF0ZSBhcyBUaW55RGF0ZVtdLCB0aGlzLmlubmVyZmxleGlibGVEYXRlR3JhbnVsYXJpdHkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHRpbnlEYXRlWzBdID8gdGhpcy5mb3JtYXREYXRlKHRpbnlEYXRlWzBdKSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHRpbnlEYXRlWzFdID8gdGhpcy5mb3JtYXREYXRlKHRpbnlEYXRlWzFdKSA6ICcnO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFydCAmJiBlbmQgPyBgJHtzdGFydH0gfiAke2VuZH1gIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGlueURhdGUgYXMgVGlueURhdGU7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPyB0aGlzLmZvcm1hdERhdGUodmFsdWUpIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvcm1hdERhdGUodmFsdWU6IFRpbnlEYXRlKSB7XG4gICAgICAgIC8vIGRhdGVIZWxwZXIuZm9ybWF0KCkg5L2/55So55qE5pivIGFuZ3VsYXIg55qEIGZvcm1hdO+8jOS4jeaUr+aMgeWto+W6pu+8jOS/ruaUueeahOivne+8jOaUueWKqOavlOi+g+Wkp+OAglxuICAgICAgICAvLyDmraTlpITpgJrov4flr7kgaW5uZXJGb3JtYXQg5YGa5LiL5Yik5pat77yM5aaC5p6c5piv5a2j5bqm55qEIGZvcm1hdO+8jOS9v+eUqCBkYXRlLWZucyDnmoQgZm9ybWF0KClcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJGb3JtYXQgJiYgKHRoaXMuaW5uZXJGb3JtYXQuaW5jbHVkZXMoJ3EnKSB8fCB0aGlzLmlubmVyRm9ybWF0LmluY2x1ZGVzKCdRJykpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuZm9ybWF0KHRoaXMuaW5uZXJGb3JtYXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUhlbHBlci5mb3JtYXQodmFsdWUubmF0aXZlRGF0ZSwgdGhpcy5pbm5lckZvcm1hdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1JhbmdlICYmIHRoaXMucGxhY2Vob2xkZXIgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgICAgICAgPyAodGhpcy5wbGFjZWhvbGRlciBhcyBzdHJpbmdbXSkuam9pbignIH4gJylcbiAgICAgICAgICAgIDogKHRoaXMucGxhY2Vob2xkZXIgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJlYWRhYmxlRGF0ZShzZXRWYWx1ZTogVGlueURhdGUgfCBUaW55RGF0ZVtdIHwgbnVsbCkge1xuICAgICAgICBjb25zdCByZWFkYWJsZVZhbHVlID0gdGhpcy5nZXRSZWFkYWJsZVZhbHVlKHNldFZhbHVlKTtcbiAgICAgICAgaWYgKHJlYWRhYmxlVmFsdWUgPT09IHRoaXMucGlja2VySW5wdXQubmF0aXZlRWxlbWVudFsndmFsdWUnXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5waWNrZXJJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gcmVhZGFibGVWYWx1ZTtcbiAgICB9XG59XG4iLCI8c3BhblxuICBjZGtPdmVybGF5T3JpZ2luXG4gICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyIHt7IHNpemUgPyBwcmVmaXhDbHMgKyAnLXBpY2tlci0nICsgc2l6ZSA6ICcnIH19IHt7IGNsYXNzTmFtZSB9fVwiXG4gIChjbGljayk9XCJvbkNsaWNrSW5wdXRCb3goKVwiPlxuICA8bmctY29udGFpbmVyPlxuICAgIDxpbnB1dFxuICAgICAgI3BpY2tlcklucHV0XG4gICAgICB0aHlJbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wte3sgc2l6ZSB9fSBmb3JtLWNvbnRyb2wge3sgcHJlZml4Q2xzIH19LXBpY2tlci1pbnB1dFwiXG4gICAgICBbdGh5U2l6ZV09XCJzaXplXCJcbiAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICBbY2xhc3MudGh5LWlucHV0LWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtjbGFzcy50aHktaW5wdXQtcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVN0YXRlXCJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBnZXRQbGFjZWhvbGRlcigpIH19XCJcbiAgICAgIHRoeUVudGVyXG4gICAgICAodGh5RW50ZXIpPVwib25FbnRlcigpXCIgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsUmlnaHRSZXN0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9zcGFuPlxuXG48IS0tIFJpZ2h0IG9wZXJhdG9yIGljb25zIC0tPlxuPG5nLXRlbXBsYXRlICN0cGxSaWdodFJlc3Q+XG4gIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXBpY2tlci1jbGVhclwiPlxuICAgIDx0aHktaWNvblxuICAgICAgdGh5SWNvbk5hbWU9XCJjbG9zZS1jaXJjbGUtYm9sZC1maWxsXCJcbiAgICAgICpuZ0lmPVwiIWRpc2FibGVkICYmICFpc0VtcHR5VmFsdWUodmFsdWUpICYmIGFsbG93Q2xlYXIgJiYgIXJlYWRvbmx5XCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrQ2xlYXIoJGV2ZW50KVwiXG4gICAgICBuZ0NsYXNzPVwicmVtb3ZlLWxpbmsgcmVtb3ZlLWxpbmste3sgc2l6ZSB9fVwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tcGlja2VyLWljb25cIj5cbiAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cInN1ZmZpeEljb25cIiBuZ0NsYXNzPVwicmVtb3ZlLWxpbmste3sgc2l6ZSA/IHNpemUgOiAnZGVmYXVsdCcgfX1cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIE92ZXJsYXkgLS0+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwicmVhbE9wZW5TdGF0ZVwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwiaGFzQmFja2Ryb3BcIlxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlUcmFuc2Zvcm1PcmlnaW5Pbj1cIi50aHktcGlja2VyLWNvbnRhaW5lclwiXG4gIChwb3NpdGlvbkNoYW5nZSk9XCJvblBvc2l0aW9uQ2hhbmdlKCRldmVudClcIlxuICAoYmFja2Ryb3BDbGljayk9XCJvbkNsaWNrQmFja2Ryb3AoKVwiXG4gIChkZXRhY2gpPVwib25PdmVybGF5RGV0YWNoKClcIj5cbiAgPGRpdlxuICAgICNvdmVybGF5Q29udGFpbmVyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIlxuICAgIGNsYXNzPVwidGh5LXBpY2tlci1jb250YWluZXJcIlxuICAgIFtAc2NhbGVYTW90aW9uXT1cInBsYWNlbWVudCA9PT0gJ2xlZnQnIHx8IHBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVZTW90aW9uXT1cInBsYWNlbWVudCA9PT0gJ3RvcCcgfHwgcGxhY2VtZW50ID09PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIlxuICAgIFtAc2NhbGVNb3Rpb25dPVwicGxhY2VtZW50ICE9PSAnbGVmdCcgJiYgcGxhY2VtZW50ICE9PSAncmlnaHQnICYmIHBsYWNlbWVudCAhPT0gJ3RvcCcgJiYgcGxhY2VtZW50ICE9PSAnYm90dG9tJyA/ICdlbnRlcicgOiAndm9pZCdcIj5cbiAgICA8IS0tIENvbXBhdGlibGUgZm9yIG92ZXJsYXkgdGhhdCBub3Qgc3VwcG9ydCBvZmZzZXQgZHluYW1pY2FsbHkgYW5kIGltbWVkaWF0ZWx5IC0tPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, forwardRef, Input, ChangeDetectorRef, Output, EventEmitter, booleanAttribute } from '@angular/core';
1
+ import { Component, forwardRef, Input, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { ThyPopover } from 'ngx-tethys/popover';
4
4
  import { OptionalDateRanges } from './optional-dates/optional-dates.component';
@@ -7,6 +7,7 @@ import { ThyDatePickerFormatPipe } from 'ngx-tethys/date-picker';
7
7
  import { ThyIcon } from 'ngx-tethys/icon';
8
8
  import { ThyAction } from 'ngx-tethys/action';
9
9
  import { NgIf, NgClass } from '@angular/common';
10
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "ngx-tethys/popover";
12
13
  const allDayTimestamp = 24 * 60 * 60;
@@ -222,7 +223,7 @@ export class ThyDateRange {
222
223
  });
223
224
  }
224
225
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDateRange, deps: [{ token: i1.ThyPopover }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
225
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyDateRange, isStandalone: true, selector: "thy-date-range", inputs: { thyOptionalDateRanges: "thyOptionalDateRanges", thyHiddenMenu: ["thyHiddenMenu", "thyHiddenMenu", booleanAttribute], thyDisabledSwitch: ["thyDisabledSwitch", "thyDisabledSwitch", booleanAttribute], thyCustomTextValue: "thyCustomTextValue", thyMinDate: "thyMinDate", thyMaxDate: "thyMaxDate", thyCustomKey: "thyCustomKey", thyPickerFormat: "thyPickerFormat", thyDisabledDate: "thyDisabledDate" }, outputs: { thyOnCalendarChange: "thyOnCalendarChange" }, providers: [INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"thy-date-range-container\">\n <ng-container *ngIf=\"!thyDisabledSwitch\">\n <a thyAction thyIcon=\"angle-left\" href=\"javascript:;\" (click)=\"previous()\"></a>\n </ng-container>\n <span\n href=\"javascript:;\"\n (click)=\"openOptionalDateRangesMenu($event)\"\n class=\"thy-date-range-text\"\n [ngClass]=\"{ 'thy-date-range-disabled': thyHiddenMenu }\">\n <ng-container *ngIf=\"selectedDate?.key === 'custom'\">\n {{ selectedDate?.begin | thyDatePickerFormat }} ~ {{ selectedDate?.end | thyDatePickerFormat }}\n </ng-container>\n <ng-container *ngIf=\"selectedDate?.key === 'exception'\">\n {{ selectedDate?.begin | thyDatePickerFormat : thyPickerFormat }}\n </ng-container>\n <ng-container *ngIf=\"selectedDate?.key !== 'custom' && selectedDate?.key !== 'exception'\">{{ selectedDate?.text }}</ng-container>\n <thy-icon *ngIf=\"!thyHiddenMenu\" class=\"thy-date-range-text-caret-down ml-2\" thyIconName=\"angle-down\"></thy-icon>\n </span>\n <ng-container *ngIf=\"!thyDisabledSwitch\">\n <a thyAction thyIcon=\"angle-right\" href=\"javascript:;\" (click)=\"next()\"></a>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: ThyDatePickerFormatPipe, name: "thyDatePickerFormat" }] }); }
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyDateRange, isStandalone: true, selector: "thy-date-range", inputs: { thyOptionalDateRanges: "thyOptionalDateRanges", thyHiddenMenu: ["thyHiddenMenu", "thyHiddenMenu", coerceBooleanProperty], thyDisabledSwitch: ["thyDisabledSwitch", "thyDisabledSwitch", coerceBooleanProperty], thyCustomTextValue: "thyCustomTextValue", thyMinDate: "thyMinDate", thyMaxDate: "thyMaxDate", thyCustomKey: "thyCustomKey", thyPickerFormat: "thyPickerFormat", thyDisabledDate: "thyDisabledDate" }, outputs: { thyOnCalendarChange: "thyOnCalendarChange" }, providers: [INPUT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"thy-date-range-container\">\n <ng-container *ngIf=\"!thyDisabledSwitch\">\n <a thyAction thyIcon=\"angle-left\" href=\"javascript:;\" (click)=\"previous()\"></a>\n </ng-container>\n <span\n href=\"javascript:;\"\n (click)=\"openOptionalDateRangesMenu($event)\"\n class=\"thy-date-range-text\"\n [ngClass]=\"{ 'thy-date-range-disabled': thyHiddenMenu }\">\n <ng-container *ngIf=\"selectedDate?.key === 'custom'\">\n {{ selectedDate?.begin | thyDatePickerFormat }} ~ {{ selectedDate?.end | thyDatePickerFormat }}\n </ng-container>\n <ng-container *ngIf=\"selectedDate?.key === 'exception'\">\n {{ selectedDate?.begin | thyDatePickerFormat : thyPickerFormat }}\n </ng-container>\n <ng-container *ngIf=\"selectedDate?.key !== 'custom' && selectedDate?.key !== 'exception'\">{{ selectedDate?.text }}</ng-container>\n <thy-icon *ngIf=\"!thyHiddenMenu\" class=\"thy-date-range-text-caret-down ml-2\" thyIconName=\"angle-down\"></thy-icon>\n </span>\n <ng-container *ngIf=\"!thyDisabledSwitch\">\n <a thyAction thyIcon=\"angle-right\" href=\"javascript:;\" (click)=\"next()\"></a>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: ThyDatePickerFormatPipe, name: "thyDatePickerFormat" }] }); }
226
227
  }
227
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDateRange, decorators: [{
228
229
  type: Component,
@@ -231,10 +232,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
231
232
  type: Input
232
233
  }], thyHiddenMenu: [{
233
234
  type: Input,
234
- args: [{ transform: booleanAttribute }]
235
+ args: [{ transform: coerceBooleanProperty }]
235
236
  }], thyDisabledSwitch: [{
236
237
  type: Input,
237
- args: [{ transform: booleanAttribute }]
238
+ args: [{ transform: coerceBooleanProperty }]
238
239
  }], thyCustomTextValue: [{
239
240
  type: Input
240
241
  }], thyMinDate: [{
@@ -250,4 +251,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
250
251
  }], thyOnCalendarChange: [{
251
252
  type: Output
252
253
  }] } });
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixPQUFPLEVBQ1AsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDYixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVoRCxNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUVyQyxNQUFNLDRCQUE0QixHQUFRO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDM0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUY7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxZQUFZO0lBQ3JCOzs7T0FHRztJQUNILElBQ0kscUJBQXFCLENBQUMsS0FBMEI7UUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqRixDQUFDO0lBd0ZELFlBQW9CLFVBQXNCLEVBQVUsR0FBc0I7UUFBdEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdEYxRTs7O1dBR0c7UUFDcUMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFOUQ7OztXQUdHO1FBQ3FDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVsRTs7V0FFRztRQUNNLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQWNwQzs7OztXQUlHO1FBQ00saUJBQVksR0FBMkIsUUFBUSxDQUFDO1FBWXpEOzs7V0FHRztRQUNnQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSTdELHVCQUFrQixHQUF3QjtZQUM3QztnQkFDSSxHQUFHLEVBQUUsTUFBTTtnQkFDWCxJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzlDLEdBQUcsRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUMsU0FBUyxFQUFFO29CQUNQLFFBQVEsRUFBRSxDQUFDO29CQUNYLElBQUksRUFBRSxLQUFLO2lCQUNkO2FBQ0o7WUFDRDtnQkFDSSxHQUFHLEVBQUUsT0FBTztnQkFDWixJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzVDLEdBQUcsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDeEMsU0FBUyxFQUFFO29CQUNQLFFBQVEsRUFBRSxDQUFDO29CQUNYLElBQUksRUFBRSxPQUFPO2lCQUNoQjthQUNKO1NBQ0osQ0FBQztRQU9LLGtCQUFhLEdBQWEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRW5DLG1CQUFjLEdBQWEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRWtDLENBQUM7SUFFOUUsVUFBVSxDQUFDLEtBQVU7UUFDakIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO0lBRUwscUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQzlCLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUc7U0FDN0IsQ0FBQztJQUNOLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFFdEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzdDLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUN0QixPQUFPO3dCQUNILEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzt3QkFDckQsR0FBRyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUNqRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzt3QkFDcEQsR0FBRyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzt3QkFDaEQsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZO3FCQUN6QixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUN0RCxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDdEIsT0FBTzt3QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7d0JBQ3ZELEdBQUcsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNsRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDbkUsT0FBTzt3QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ25ELEdBQUcsRUFBRSxrQkFBa0I7NEJBQ25CLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7NEJBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7d0JBQ25ELEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtxQkFDekIsQ0FBQztnQkFDTixDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3RCLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUN0RCxHQUFHLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7d0JBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtxQkFDekIsQ0FBQztnQkFDTixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTzt3QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUNyRCxHQUFHLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUNqRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUMzRixJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDdEIsT0FBTztvQkFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUTtvQkFDekMsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLFFBQVE7b0JBQ3JDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDekIsQ0FBQztZQUNOLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPO29CQUNILEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxRQUFRO29CQUN6QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsUUFBUTtvQkFDckMsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZO2lCQUN6QixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBWTtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLDBCQUEwQixDQUFDLEtBQVk7UUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQTRCO1lBQzFDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsTUFBTSxFQUFFLENBQUM7WUFDVCxhQUFhLEVBQUUsSUFBSTtZQUNuQixpQkFBaUIsRUFBRSw0QkFBNEI7WUFDL0MsWUFBWSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDOUIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtnQkFDM0MsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDeEIsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDNUIsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNsQyxpQkFBaUIsRUFBRSxDQUFDLFNBQTRCLEVBQUUsRUFBRTtvQkFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQ2xDLENBQUM7Z0JBQ0QsY0FBYyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBL09RLFlBQVk7a0dBQVosWUFBWSw4SkFjRCxnQkFBZ0IsaUVBTWhCLGdCQUFnQiw2UUF4QnpCLENBQUMsNEJBQTRCLENBQUMsMEJDeEM3Qywrb0NBc0JBLDRDRG9CYyxJQUFJLDZGQUFFLFNBQVMsZ01BQUUsT0FBTyxzTUFBRSxPQUFPLCtFQUFFLHVCQUF1Qjs7MkZBRTNELFlBQVk7a0JBUHhCLFNBQVM7K0JBQ0ksZ0JBQWdCLGFBRWYsQ0FBQyw0QkFBNEIsQ0FBQyxjQUM3QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLENBQUM7K0dBUWpFLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFTa0MsYUFBYTtzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNRSxpQkFBaUI7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSzdCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTWEsbUJBQW1CO3NCQUFyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGJvb2xlYW5BdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVSYW5nZUl0ZW1JbmZvIH0gZnJvbSAnLi9kYXRlLXJhbmdlLmNsYXNzJztcbmltcG9ydCB7IFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgT3B0aW9uYWxEYXRlUmFuZ2VzIH0gZnJvbSAnLi9vcHRpb25hbC1kYXRlcy9vcHRpb25hbC1kYXRlcy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICAgIGdldFVuaXhUaW1lLFxuICAgIHN0YXJ0T2ZJU09XZWVrLFxuICAgIGVuZE9mSVNPV2VlayxcbiAgICBlbmRPZk1vbnRoLFxuICAgIHN0YXJ0T2ZNb250aCxcbiAgICBhZGREYXlzLFxuICAgIGFkZE1vbnRocyxcbiAgICBhZGRZZWFycyxcbiAgICBpc1NhbWVEYXksXG4gICAgZW5kT2ZEYXksXG4gICAgc3RhcnRPZkRheVxufSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBUaHlEYXRlUGlja2VyRm9ybWF0UGlwZSB9IGZyb20gJ25neC10ZXRoeXMvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlBY3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2FjdGlvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuY29uc3QgYWxsRGF5VGltZXN0YW1wID0gMjQgKiA2MCAqIDYwO1xuXG5jb25zdCBJTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5RGF0ZVJhbmdlKSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuLyoqXG4gKiDpooTorr7ml7bpl7TmrrXlj4roh6rlrprkuYnml7bpl7TmrrXpgInmi6nnu4Tku7ZcbiAqIEBuYW1lIHRoeS1kYXRlLXJhbmdlXG4gKiBAb3JkZXIgMTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktZGF0ZS1yYW5nZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW0lOUFVUX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUFjdGlvbiwgVGh5SWNvbiwgTmdDbGFzcywgVGh5RGF0ZVBpY2tlckZvcm1hdFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeURhdGVSYW5nZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieWPr+mAieWAvOWIl+ihqOmhuVxuICAgICAqIEB0eXBlIERhdGVSYW5nZUl0ZW1JbmZvW11cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlPcHRpb25hbERhdGVSYW5nZXModmFsdWU6IERhdGVSYW5nZUl0ZW1JbmZvW10pIHtcbiAgICAgICAgdGhpcy5vcHRpb25hbERhdGVSYW5nZXMgPSB2YWx1ZS5sZW5ndGggPiAwID8gdmFsdWUgOiB0aGlzLm9wdGlvbmFsRGF0ZVJhbmdlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDpmpDol4/kuIvmi4npgInmi6nml7bpl7TmrrVcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlIaWRkZW5NZW51ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDnpoHnlKjlt6blj7PliIfmjaLml7bpl7TmrrVcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB0aHlEaXNhYmxlZFN3aXRjaCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5pel5pyf6YCJ5oup55qE5bGV56S65paH5a2XXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q3VzdG9tVGV4dFZhbHVlID0gJ+iHquWumuS5iSc7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnml6XmnJ/pgInmi6nkuK3lj6/pgInmi6nnmoTmnIDlsI/ml7bpl7RcbiAgICAgKiBAdHlwZSBEYXRlIHwgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5TWluRGF0ZTogRGF0ZSB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieaXpeacn+mAieaLqeS4reWPr+mAieaLqeeahOacgOWkp+aXtumXtFxuICAgICAqIEB0eXBlIERhdGUgfCBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlNYXhEYXRlOiBEYXRlIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6YCJ5Lit55qE5pe26Ze05q6155qE5bGV56S65b2i5byP77yMXG4gICAgICogPGJyLz4gYGN1c3RvbWDlvaLlvI/vvJpgMjAyMy0wNy0wMSB+IDIwMjMtMDctMzFg77ybXG4gICAgICogPGJyLz4gYGV4Y2VwdGlvbmDlvaLlvI/vvJpgMjAyMy0wNy0wMWDvvIzlhbfkvZPlsZXnpLrov5jkuI5gdGh5UGlja2VyRm9ybWF0YOacieWFs+OAglxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUN1c3RvbUtleTogJ2N1c3RvbScgfCAnZXhjZXB0aW9uJyA9ICdjdXN0b20nO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5pel5pyf5bGV56S65qC85byP77yM5q+U5aaCYHl5eXnlubRNTeaciGDvvIzlj6rmnInlvZNgdGh5Q3VzdG9tS2V5YOWAvOiuvuS4umBleGNlcHRpb25g5pe25omN5Lya55Sf5pWIXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGlja2VyRm9ybWF0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnml6XmnJ/npoHnlKjml6XmnJ9cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlEaXNhYmxlZERhdGU6IChkOiBEYXRlKSA9PiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5pel5pyf6YCJ5oup5pel5pyf5Zue6LCDXG4gICAgICogQHR5cGUgRXZlbnRFbWl0dGVyPERhdGVbXT5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5T25DYWxlbmRhckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xuXG4gICAgcHVibGljIHNlbGVjdGVkRGF0ZT86IERhdGVSYW5nZUl0ZW1JbmZvO1xuXG4gICAgcHVibGljIG9wdGlvbmFsRGF0ZVJhbmdlczogRGF0ZVJhbmdlSXRlbUluZm9bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnd2VlaycsXG4gICAgICAgICAgICB0ZXh0OiAn5pys5ZGoJyxcbiAgICAgICAgICAgIGJlZ2luOiBnZXRVbml4VGltZShzdGFydE9mSVNPV2VlayhuZXcgRGF0ZSgpKSksXG4gICAgICAgICAgICBlbmQ6IGdldFVuaXhUaW1lKGVuZE9mSVNPV2VlayhuZXcgRGF0ZSgpKSksXG4gICAgICAgICAgICB0aW1lc3RhbXA6IHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogNyxcbiAgICAgICAgICAgICAgICB1bml0OiAnZGF5J1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdtb250aCcsXG4gICAgICAgICAgICB0ZXh0OiAn5pys5pyIJyxcbiAgICAgICAgICAgIGJlZ2luOiBnZXRVbml4VGltZShzdGFydE9mTW9udGgobmV3IERhdGUoKSkpLFxuICAgICAgICAgICAgZW5kOiBnZXRVbml4VGltZShlbmRPZk1vbnRoKG5ldyBEYXRlKCkpKSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDoge1xuICAgICAgICAgICAgICAgIGludGVydmFsOiAxLFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdtb250aCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlUmFuZ2U6IHtcbiAgICAgICAgYmVnaW46IG51bWJlcjtcbiAgICAgICAgZW5kOiBudW1iZXI7XG4gICAgfTtcblxuICAgIHB1YmxpYyBvbk1vZGVsQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIG9uTW9kZWxUb3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9uYWxEYXRlUmFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5vcHRpb25hbERhdGVSYW5nZXNbMF07XG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldFNlbGVjdGVkRGF0ZVJhbmdlKCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7fVxuXG4gICAgcHJpdmF0ZSBfc2V0U2VsZWN0ZWREYXRlUmFuZ2UoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XG4gICAgICAgICAgICBiZWdpbjogdGhpcy5zZWxlY3RlZERhdGUuYmVnaW4sXG4gICAgICAgICAgICBlbmQ6IHRoaXMuc2VsZWN0ZWREYXRlLmVuZFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NhbGN1bGF0ZU5ld1RpbWUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZS50aW1lc3RhbXApIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZ2luRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmJlZ2luICogMTAwMCk7XG4gICAgICAgICAgICBjb25zdCBlbmREYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZW5kICogMTAwMCk7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMuc2VsZWN0ZWREYXRlLnRpbWVzdGFtcC5pbnRlcnZhbDtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlLnRpbWVzdGFtcC51bml0ID09PSAnZGF5Jykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAncHJldmlvdXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoYWRkRGF5cyhiZWdpbkRhdGUsIC0xICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoYWRkRGF5cyhlbmREYXRlLCAtMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMudGh5Q3VzdG9tS2V5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBnZXRVbml4VGltZShhZGREYXlzKGJlZ2luRGF0ZSwgMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IGdldFVuaXhUaW1lKGFkZERheXMoZW5kRGF0ZSwgMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMudGh5Q3VzdG9tS2V5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRGF0ZS50aW1lc3RhbXAudW5pdCA9PT0gJ21vbnRoJykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAncHJldmlvdXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoYWRkTW9udGhzKGJlZ2luRGF0ZSwgLTEgKiBpbnRlcnZhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBnZXRVbml4VGltZShlbmRPZkRheShhZGREYXlzKGJlZ2luRGF0ZSwgLTEpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMudGh5Q3VzdG9tS2V5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kSXNFbmREYXlPZk1vbnRoID0gaXNTYW1lRGF5KGVuZERhdGUsIGVuZE9mTW9udGgoZW5kRGF0ZSkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKHN0YXJ0T2ZEYXkoYWRkRGF5cyhlbmREYXRlLCAxKSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBlbmRJc0VuZERheU9mTW9udGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdldFVuaXhUaW1lKGVuZE9mTW9udGgoYWRkTW9udGhzKGVuZERhdGUsIDEgKiBpbnRlcnZhbCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZ2V0VW5peFRpbWUoYWRkTW9udGhzKGVuZERhdGUsIDEgKiBpbnRlcnZhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLnRoeUN1c3RvbUtleVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGUudGltZXN0YW1wLnVuaXQgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAncHJldmlvdXMnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoYWRkWWVhcnMoYmVnaW5EYXRlLCAtMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IGdldFVuaXhUaW1lKGFkZFllYXJzKGVuZERhdGUsIC0xICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGhpcy50aHlDdXN0b21LZXlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKGFkZFllYXJzKGJlZ2luRGF0ZSwgMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IGdldFVuaXhUaW1lKGFkZFllYXJzKGVuZERhdGUsIDEgKiBpbnRlcnZhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLnRoeUN1c3RvbUtleVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsOiBudW1iZXIgPSB0aGlzLnNlbGVjdGVkRGF0ZS5lbmQgLSB0aGlzLnNlbGVjdGVkRGF0ZS5iZWdpbiArIGFsbERheVRpbWVzdGFtcDtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAncHJldmlvdXMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW46IHRoaXMuc2VsZWN0ZWREYXRlLmJlZ2luIC0gaW50ZXJ2YWwsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogdGhpcy5zZWxlY3RlZERhdGUuZW5kIC0gaW50ZXJ2YWwsXG4gICAgICAgICAgICAgICAgICAgIGtleTogdGhpcy50aHlDdXN0b21LZXlcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogdGhpcy5zZWxlY3RlZERhdGUuYmVnaW4gKyBpbnRlcnZhbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiB0aGlzLnNlbGVjdGVkRGF0ZS5lbmQgKyBpbnRlcnZhbCxcbiAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLnRoeUN1c3RvbUtleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRQcmV2aW91c09yTmV4dERhdGUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5zZWxlY3RlZERhdGUsIHRoaXMuX2NhbGN1bGF0ZU5ld1RpbWUodHlwZSkpO1xuICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZERhdGVSYW5nZSgpO1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2aW91cygpIHtcbiAgICAgICAgdGhpcy5fc2V0UHJldmlvdXNPck5leHREYXRlKCdwcmV2aW91cycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZXh0KCkge1xuICAgICAgICB0aGlzLl9zZXRQcmV2aW91c09yTmV4dERhdGUoJ25leHQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3Blbk9wdGlvbmFsRGF0ZVJhbmdlc01lbnUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnRoeUhpZGRlbk1lbnUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRoeVBvcG92ZXIub3BlbihPcHRpb25hbERhdGVSYW5nZXMsIHtcbiAgICAgICAgICAgIG9yaWdpbjogZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogJ3RoeS1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcbiAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICBvcmlnaW5BY3RpdmVDbGFzczogJ3RoeS1kYXRlLXJhbmdlLXRleHQtYWN0aXZlJyxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGhpZGRlbk1lbnU6IHRoaXMudGh5SGlkZGVuTWVudSxcbiAgICAgICAgICAgICAgICBvcHRpb25hbERhdGVSYW5nZXM6IHRoaXMub3B0aW9uYWxEYXRlUmFuZ2VzLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF0ZTogdGhpcy5zZWxlY3RlZERhdGUsXG4gICAgICAgICAgICAgICAgbWluRGF0ZTogdGhpcy50aHlNaW5EYXRlLFxuICAgICAgICAgICAgICAgIG1heERhdGU6IHRoaXMudGh5TWF4RGF0ZSxcbiAgICAgICAgICAgICAgICBjdXN0b21WYWx1ZTogdGhpcy50aHlDdXN0b21UZXh0VmFsdWUsXG4gICAgICAgICAgICAgICAgY3VzdG9tS2V5OiB0aGlzLnRoeUN1c3RvbUtleSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZERhdGU6IHRoaXMudGh5RGlzYWJsZWREYXRlLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF0ZVJhbmdlOiAoZGF0ZVJhbmdlOiBEYXRlUmFuZ2VJdGVtSW5mbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UoZGF0ZVJhbmdlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlUmFuZ2U7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjYWxlbmRhckNoYW5nZTogKGRhdGU6IERhdGVbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeU9uQ2FsZW5kYXJDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktZGF0ZS1yYW5nZS1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0aHlEaXNhYmxlZFN3aXRjaFwiPlxuICAgIDxhIHRoeUFjdGlvbiB0aHlJY29uPVwiYW5nbGUtbGVmdFwiIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPjwvYT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxzcGFuXG4gICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgKGNsaWNrKT1cIm9wZW5PcHRpb25hbERhdGVSYW5nZXNNZW51KCRldmVudClcIlxuICAgIGNsYXNzPVwidGh5LWRhdGUtcmFuZ2UtdGV4dFwiXG4gICAgW25nQ2xhc3NdPVwieyAndGh5LWRhdGUtcmFuZ2UtZGlzYWJsZWQnOiB0aHlIaWRkZW5NZW51IH1cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWREYXRlPy5rZXkgPT09ICdjdXN0b20nXCI+XG4gICAgICB7eyBzZWxlY3RlZERhdGU/LmJlZ2luIHwgdGh5RGF0ZVBpY2tlckZvcm1hdCB9fSB+IHt7IHNlbGVjdGVkRGF0ZT8uZW5kIHwgdGh5RGF0ZVBpY2tlckZvcm1hdCB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZERhdGU/LmtleSA9PT0gJ2V4Y2VwdGlvbidcIj5cbiAgICAgIHt7IHNlbGVjdGVkRGF0ZT8uYmVnaW4gfCB0aHlEYXRlUGlja2VyRm9ybWF0IDogdGh5UGlja2VyRm9ybWF0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRGF0ZT8ua2V5ICE9PSAnY3VzdG9tJyAmJiBzZWxlY3RlZERhdGU/LmtleSAhPT0gJ2V4Y2VwdGlvbidcIj57eyBzZWxlY3RlZERhdGU/LnRleHQgfX08L25nLWNvbnRhaW5lcj5cbiAgICA8dGh5LWljb24gKm5nSWY9XCIhdGh5SGlkZGVuTWVudVwiIGNsYXNzPVwidGh5LWRhdGUtcmFuZ2UtdGV4dC1jYXJldC1kb3duIG1sLTJcIiB0aHlJY29uTmFtZT1cImFuZ2xlLWRvd25cIj48L3RoeS1pY29uPlxuICA8L3NwYW4+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdGh5RGlzYWJsZWRTd2l0Y2hcIj5cbiAgICA8YSB0aHlBY3Rpb24gdGh5SWNvbj1cImFuZ2xlLXJpZ2h0XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJuZXh0KClcIj48L2E+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixPQUFPLEVBQ1AsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDYixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV4RCxNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUVyQyxNQUFNLDRCQUE0QixHQUFRO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDM0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUY7Ozs7R0FJRztBQVFILE1BQU0sT0FBTyxZQUFZO0lBQ3JCOzs7T0FHRztJQUNILElBQ0kscUJBQXFCLENBQUMsS0FBMEI7UUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqRixDQUFDO0lBd0ZELFlBQW9CLFVBQXNCLEVBQVUsR0FBc0I7UUFBdEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBdEYxRTs7O1dBR0c7UUFDMEMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFbkU7OztXQUdHO1FBQzBDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUV2RTs7V0FFRztRQUNNLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQWNwQzs7OztXQUlHO1FBQ00saUJBQVksR0FBMkIsUUFBUSxDQUFDO1FBWXpEOzs7V0FHRztRQUNnQix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBSTdELHVCQUFrQixHQUF3QjtZQUM3QztnQkFDSSxHQUFHLEVBQUUsTUFBTTtnQkFDWCxJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzlDLEdBQUcsRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUMsU0FBUyxFQUFFO29CQUNQLFFBQVEsRUFBRSxDQUFDO29CQUNYLElBQUksRUFBRSxLQUFLO2lCQUNkO2FBQ0o7WUFDRDtnQkFDSSxHQUFHLEVBQUUsT0FBTztnQkFDWixJQUFJLEVBQUUsSUFBSTtnQkFDVixLQUFLLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzVDLEdBQUcsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDeEMsU0FBUyxFQUFFO29CQUNQLFFBQVEsRUFBRSxDQUFDO29CQUNYLElBQUksRUFBRSxPQUFPO2lCQUNoQjthQUNKO1NBQ0osQ0FBQztRQU9LLGtCQUFhLEdBQWEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRW5DLG1CQUFjLEdBQWEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRWtDLENBQUM7SUFFOUUsVUFBVSxDQUFDLEtBQVU7UUFDakIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO0lBRUwscUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLO1lBQzlCLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUc7U0FDN0IsQ0FBQztJQUNOLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFFdEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzdDLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUN0QixPQUFPO3dCQUNILEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzt3QkFDckQsR0FBRyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUNqRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzt3QkFDcEQsR0FBRyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQzt3QkFDaEQsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZO3FCQUN6QixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUN0RCxJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDdEIsT0FBTzt3QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7d0JBQ3ZELEdBQUcsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNsRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDbkUsT0FBTzt3QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ25ELEdBQUcsRUFBRSxrQkFBa0I7NEJBQ25CLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7NEJBQzNELENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7d0JBQ25ELEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtxQkFDekIsQ0FBQztnQkFDTixDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3RCLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUN0RCxHQUFHLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7d0JBQ2xELEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtxQkFDekIsQ0FBQztnQkFDTixDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTzt3QkFDSCxLQUFLLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUNyRCxHQUFHLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO3dCQUNqRCxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLENBQUM7Z0JBQ04sQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUMzRixJQUFJLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDdEIsT0FBTztvQkFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUTtvQkFDekMsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLFFBQVE7b0JBQ3JDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtpQkFDekIsQ0FBQztZQUNOLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPO29CQUNILEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxRQUFRO29CQUN6QyxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsUUFBUTtvQkFDckMsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZO2lCQUN6QixDQUFDO1lBQ04sQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBWTtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLElBQUk7UUFDUCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLDBCQUEwQixDQUFDLEtBQVk7UUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQTRCO1lBQzFDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsTUFBTSxFQUFFLENBQUM7WUFDVCxhQUFhLEVBQUUsSUFBSTtZQUNuQixpQkFBaUIsRUFBRSw0QkFBNEI7WUFDL0MsWUFBWSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDOUIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtnQkFDM0MsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDeEIsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDNUIsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNsQyxpQkFBaUIsRUFBRSxDQUFDLFNBQTRCLEVBQUUsRUFBRTtvQkFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQ2xDLENBQUM7Z0JBQ0QsY0FBYyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7YUFDSjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBL09RLFlBQVk7a0dBQVosWUFBWSw4SkFjRCxxQkFBcUIsaUVBTXJCLHFCQUFxQiw2UUF4QjlCLENBQUMsNEJBQTRCLENBQUMsMEJDekM3Qywrb0NBc0JBLDRDRHFCYyxJQUFJLDZGQUFFLFNBQVMsZ01BQUUsT0FBTyxzTUFBRSxPQUFPLCtFQUFFLHVCQUF1Qjs7MkZBRTNELFlBQVk7a0JBUHhCLFNBQVM7K0JBQ0ksZ0JBQWdCLGFBRWYsQ0FBQyw0QkFBNEIsQ0FBQyxjQUM3QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsdUJBQXVCLENBQUM7K0dBUWpFLHFCQUFxQjtzQkFEeEIsS0FBSztnQkFTdUMsYUFBYTtzQkFBekQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNRSxpQkFBaUI7c0JBQTdELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBS2xDLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBTWEsbUJBQW1CO3NCQUFyQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVSYW5nZUl0ZW1JbmZvIH0gZnJvbSAnLi9kYXRlLXJhbmdlLmNsYXNzJztcbmltcG9ydCB7IFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgT3B0aW9uYWxEYXRlUmFuZ2VzIH0gZnJvbSAnLi9vcHRpb25hbC1kYXRlcy9vcHRpb25hbC1kYXRlcy5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICAgIGdldFVuaXhUaW1lLFxuICAgIHN0YXJ0T2ZJU09XZWVrLFxuICAgIGVuZE9mSVNPV2VlayxcbiAgICBlbmRPZk1vbnRoLFxuICAgIHN0YXJ0T2ZNb250aCxcbiAgICBhZGREYXlzLFxuICAgIGFkZE1vbnRocyxcbiAgICBhZGRZZWFycyxcbiAgICBpc1NhbWVEYXksXG4gICAgZW5kT2ZEYXksXG4gICAgc3RhcnRPZkRheVxufSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBUaHlEYXRlUGlja2VyRm9ybWF0UGlwZSB9IGZyb20gJ25neC10ZXRoeXMvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlBY3Rpb24gfSBmcm9tICduZ3gtdGV0aHlzL2FjdGlvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5cbmNvbnN0IGFsbERheVRpbWVzdGFtcCA9IDI0ICogNjAgKiA2MDtcblxuY29uc3QgSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoeURhdGVSYW5nZSksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbi8qKlxuICog6aKE6K6+5pe26Ze05q615Y+K6Ieq5a6a5LmJ5pe26Ze05q616YCJ5oup57uE5Lu2XG4gKiBAbmFtZSB0aHktZGF0ZS1yYW5nZVxuICogQG9yZGVyIDEwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWRhdGUtcmFuZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtJTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlBY3Rpb24sIFRoeUljb24sIE5nQ2xhc3MsIFRoeURhdGVQaWNrZXJGb3JtYXRQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlEYXRlUmFuZ2UgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnlj6/pgInlgLzliJfooajpoblcbiAgICAgKiBAdHlwZSBEYXRlUmFuZ2VJdGVtSW5mb1tdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5T3B0aW9uYWxEYXRlUmFuZ2VzKHZhbHVlOiBEYXRlUmFuZ2VJdGVtSW5mb1tdKSB7XG4gICAgICAgIHRoaXMub3B0aW9uYWxEYXRlUmFuZ2VzID0gdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlIDogdGhpcy5vcHRpb25hbERhdGVSYW5nZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6ZqQ6JeP5LiL5ouJ6YCJ5oup5pe26Ze05q61XG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlIaWRkZW5NZW51ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDnpoHnlKjlt6blj7PliIfmjaLml7bpl7TmrrVcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeURpc2FibGVkU3dpdGNoID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnml6XmnJ/pgInmi6nnmoTlsZXnpLrmloflrZdcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDdXN0b21UZXh0VmFsdWUgPSAn6Ieq5a6a5LmJJztcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieaXpeacn+mAieaLqeS4reWPr+mAieaLqeeahOacgOWwj+aXtumXtFxuICAgICAqIEB0eXBlIERhdGUgfCBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlNaW5EYXRlOiBEYXRlIHwgbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog6Ieq5a6a5LmJ5pel5pyf6YCJ5oup5Lit5Y+v6YCJ5oup55qE5pyA5aSn5pe26Ze0XG4gICAgICogQHR5cGUgRGF0ZSB8IG51bWJlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeU1heERhdGU6IERhdGUgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiDpgInkuK3nmoTml7bpl7TmrrXnmoTlsZXnpLrlvaLlvI/vvIxcbiAgICAgKiA8YnIvPiBgY3VzdG9tYOW9ouW8j++8mmAyMDIzLTA3LTAxIH4gMjAyMy0wNy0zMWDvvJtcbiAgICAgKiA8YnIvPiBgZXhjZXB0aW9uYOW9ouW8j++8mmAyMDIzLTA3LTAxYO+8jOWFt+S9k+Wxleekuui/mOS4jmB0aHlQaWNrZXJGb3JtYXRg5pyJ5YWz44CCXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q3VzdG9tS2V5OiAnY3VzdG9tJyB8ICdleGNlcHRpb24nID0gJ2N1c3RvbSc7XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnml6XmnJ/lsZXnpLrmoLzlvI/vvIzmr5TlpoJgeXl5eeW5tE1N5pyIYO+8jOWPquacieW9k2B0aHlDdXN0b21LZXlg5YC86K6+5Li6YGV4Y2VwdGlvbmDml7bmiY3kvJrnlJ/mlYhcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlQaWNrZXJGb3JtYXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIOiHquWumuS5ieaXpeacn+emgeeUqOaXpeacn1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeURpc2FibGVkRGF0ZTogKGQ6IERhdGUpID0+IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiDoh6rlrprkuYnml6XmnJ/pgInmi6nml6XmnJ/lm57osINcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8RGF0ZVtdPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB0aHlPbkNhbGVuZGFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlW10+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlPzogRGF0ZVJhbmdlSXRlbUluZm87XG5cbiAgICBwdWJsaWMgb3B0aW9uYWxEYXRlUmFuZ2VzOiBEYXRlUmFuZ2VJdGVtSW5mb1tdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICd3ZWVrJyxcbiAgICAgICAgICAgIHRleHQ6ICfmnKzlkagnLFxuICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKHN0YXJ0T2ZJU09XZWVrKG5ldyBEYXRlKCkpKSxcbiAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoZW5kT2ZJU09XZWVrKG5ldyBEYXRlKCkpKSxcbiAgICAgICAgICAgIHRpbWVzdGFtcDoge1xuICAgICAgICAgICAgICAgIGludGVydmFsOiA3LFxuICAgICAgICAgICAgICAgIHVuaXQ6ICdkYXknXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgICAgICAgIHRleHQ6ICfmnKzmnIgnLFxuICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKHN0YXJ0T2ZNb250aChuZXcgRGF0ZSgpKSksXG4gICAgICAgICAgICBlbmQ6IGdldFVuaXhUaW1lKGVuZE9mTW9udGgobmV3IERhdGUoKSkpLFxuICAgICAgICAgICAgdGltZXN0YW1wOiB7XG4gICAgICAgICAgICAgICAgaW50ZXJ2YWw6IDEsXG4gICAgICAgICAgICAgICAgdW5pdDogJ21vbnRoJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXTtcblxuICAgIHB1YmxpYyBzZWxlY3RlZERhdGVSYW5nZToge1xuICAgICAgICBiZWdpbjogbnVtYmVyO1xuICAgICAgICBlbmQ6IG51bWJlcjtcbiAgICB9O1xuXG4gICAgcHVibGljIG9uTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgICBwdWJsaWMgb25Nb2RlbFRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRoeVBvcG92ZXI6IFRoeVBvcG92ZXIsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25hbERhdGVSYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLm9wdGlvbmFsRGF0ZVJhbmdlc1swXTtcbiAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0U2VsZWN0ZWREYXRlUmFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBwcml2YXRlIF9zZXRTZWxlY3RlZERhdGVSYW5nZSgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcbiAgICAgICAgICAgIGJlZ2luOiB0aGlzLnNlbGVjdGVkRGF0ZS5iZWdpbixcbiAgICAgICAgICAgIGVuZDogdGhpcy5zZWxlY3RlZERhdGUuZW5kXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlTmV3VGltZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlLnRpbWVzdGFtcCkge1xuICAgICAgICAgICAgY29uc3QgYmVnaW5EYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuYmVnaW4gKiAxMDAwKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5lbmQgKiAxMDAwKTtcbiAgICAgICAgICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5zZWxlY3RlZERhdGUudGltZXN0YW1wLmludGVydmFsO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUudGltZXN0YW1wLnVuaXQgPT09ICdkYXknKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdwcmV2aW91cycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBnZXRVbml4VGltZShhZGREYXlzKGJlZ2luRGF0ZSwgLTEgKiBpbnRlcnZhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBnZXRVbml4VGltZShhZGREYXlzKGVuZERhdGUsIC0xICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGhpcy50aHlDdXN0b21LZXlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW46IGdldFVuaXhUaW1lKGFkZERheXMoYmVnaW5EYXRlLCAxICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoYWRkRGF5cyhlbmREYXRlLCAxICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGhpcy50aHlDdXN0b21LZXlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWREYXRlLnRpbWVzdGFtcC51bml0ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdwcmV2aW91cycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBnZXRVbml4VGltZShhZGRNb250aHMoYmVnaW5EYXRlLCAtMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IGdldFVuaXhUaW1lKGVuZE9mRGF5KGFkZERheXMoYmVnaW5EYXRlLCAtMSkpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGhpcy50aHlDdXN0b21LZXlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRJc0VuZERheU9mTW9udGggPSBpc1NhbWVEYXkoZW5kRGF0ZSwgZW5kT2ZNb250aChlbmREYXRlKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoc3RhcnRPZkRheShhZGREYXlzKGVuZERhdGUsIDEpKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IGVuZElzRW5kRGF5T2ZNb250aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZ2V0VW5peFRpbWUoZW5kT2ZNb250aChhZGRNb250aHMoZW5kRGF0ZSwgMSAqIGludGVydmFsKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnZXRVbml4VGltZShhZGRNb250aHMoZW5kRGF0ZSwgMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMudGh5Q3VzdG9tS2V5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkRGF0ZS50aW1lc3RhbXAudW5pdCA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdwcmV2aW91cycpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luOiBnZXRVbml4VGltZShhZGRZZWFycyhiZWdpbkRhdGUsIC0xICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoYWRkWWVhcnMoZW5kRGF0ZSwgLTEgKiBpbnRlcnZhbCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLnRoeUN1c3RvbUtleVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZWdpbjogZ2V0VW5peFRpbWUoYWRkWWVhcnMoYmVnaW5EYXRlLCAxICogaW50ZXJ2YWwpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogZ2V0VW5peFRpbWUoYWRkWWVhcnMoZW5kRGF0ZSwgMSAqIGludGVydmFsKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMudGh5Q3VzdG9tS2V5XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWw6IG51bWJlciA9IHRoaXMuc2VsZWN0ZWREYXRlLmVuZCAtIHRoaXMuc2VsZWN0ZWREYXRlLmJlZ2luICsgYWxsRGF5VGltZXN0YW1wO1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdwcmV2aW91cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBiZWdpbjogdGhpcy5zZWxlY3RlZERhdGUuYmVnaW4gLSBpbnRlcnZhbCxcbiAgICAgICAgICAgICAgICAgICAgZW5kOiB0aGlzLnNlbGVjdGVkRGF0ZS5lbmQgLSBpbnRlcnZhbCxcbiAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLnRoeUN1c3RvbUtleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGJlZ2luOiB0aGlzLnNlbGVjdGVkRGF0ZS5iZWdpbiArIGludGVydmFsLFxuICAgICAgICAgICAgICAgICAgICBlbmQ6IHRoaXMuc2VsZWN0ZWREYXRlLmVuZCArIGludGVydmFsLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMudGh5Q3VzdG9tS2V5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldFByZXZpb3VzT3JOZXh0RGF0ZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5fY2FsY3VsYXRlTmV3VGltZSh0eXBlKSk7XG4gICAgICAgIHRoaXMuX3NldFNlbGVjdGVkRGF0ZVJhbmdlKCk7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZpb3VzKCkge1xuICAgICAgICB0aGlzLl9zZXRQcmV2aW91c09yTmV4dERhdGUoJ3ByZXZpb3VzJyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5leHQoKSB7XG4gICAgICAgIHRoaXMuX3NldFByZXZpb3VzT3JOZXh0RGF0ZSgnbmV4dCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuT3B0aW9uYWxEYXRlUmFuZ2VzTWVudShldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMudGh5SGlkZGVuTWVudSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGh5UG9wb3Zlci5vcGVuKE9wdGlvbmFsRGF0ZVJhbmdlcywge1xuICAgICAgICAgICAgb3JpZ2luOiBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAndGh5LW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgIG9yaWdpbkFjdGl2ZUNsYXNzOiAndGh5LWRhdGUtcmFuZ2UtdGV4dC1hY3RpdmUnLFxuICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgaGlkZGVuTWVudTogdGhpcy50aHlIaWRkZW5NZW51LFxuICAgICAgICAgICAgICAgIG9wdGlvbmFsRGF0ZVJhbmdlczogdGhpcy5vcHRpb25hbERhdGVSYW5nZXMsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRlOiB0aGlzLnNlbGVjdGVkRGF0ZSxcbiAgICAgICAgICAgICAgICBtaW5EYXRlOiB0aGlzLnRoeU1pbkRhdGUsXG4gICAgICAgICAgICAgICAgbWF4RGF0ZTogdGhpcy50aHlNYXhEYXRlLFxuICAgICAgICAgICAgICAgIGN1c3RvbVZhbHVlOiB0aGlzLnRoeUN1c3RvbVRleHRWYWx1ZSxcbiAgICAgICAgICAgICAgICBjdXN0b21LZXk6IHRoaXMudGh5Q3VzdG9tS2V5LFxuICAgICAgICAgICAgICAgIGRpc2FibGVkRGF0ZTogdGhpcy50aHlEaXNhYmxlZERhdGUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRlUmFuZ2U6IChkYXRlUmFuZ2U6IERhdGVSYW5nZUl0ZW1JbmZvKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZShkYXRlUmFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGVSYW5nZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNhbGVuZGFyQ2hhbmdlOiAoZGF0ZTogRGF0ZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGh5T25DYWxlbmRhckNoYW5nZS5lbWl0KGRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRoeS1kYXRlLXJhbmdlLWNvbnRhaW5lclwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRoeURpc2FibGVkU3dpdGNoXCI+XG4gICAgPGEgdGh5QWN0aW9uIHRoeUljb249XCJhbmdsZS1sZWZ0XCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJwcmV2aW91cygpXCI+PC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHNwYW5cbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAoY2xpY2spPVwib3Blbk9wdGlvbmFsRGF0ZVJhbmdlc01lbnUoJGV2ZW50KVwiXG4gICAgY2xhc3M9XCJ0aHktZGF0ZS1yYW5nZS10ZXh0XCJcbiAgICBbbmdDbGFzc109XCJ7ICd0aHktZGF0ZS1yYW5nZS1kaXNhYmxlZCc6IHRoeUhpZGRlbk1lbnUgfVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZERhdGU/LmtleSA9PT0gJ2N1c3RvbSdcIj5cbiAgICAgIHt7IHNlbGVjdGVkRGF0ZT8uYmVnaW4gfCB0aHlEYXRlUGlja2VyRm9ybWF0IH19IH4ge3sgc2VsZWN0ZWREYXRlPy5lbmQgfCB0aHlEYXRlUGlja2VyRm9ybWF0IH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRGF0ZT8ua2V5ID09PSAnZXhjZXB0aW9uJ1wiPlxuICAgICAge3sgc2VsZWN0ZWREYXRlPy5iZWdpbiB8IHRoeURhdGVQaWNrZXJGb3JtYXQgOiB0aHlQaWNrZXJGb3JtYXQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWREYXRlPy5rZXkgIT09ICdjdXN0b20nICYmIHNlbGVjdGVkRGF0ZT8ua2V5ICE9PSAnZXhjZXB0aW9uJ1wiPnt7IHNlbGVjdGVkRGF0ZT8udGV4dCB9fTwvbmctY29udGFpbmVyPlxuICAgIDx0aHktaWNvbiAqbmdJZj1cIiF0aHlIaWRkZW5NZW51XCIgY2xhc3M9XCJ0aHktZGF0ZS1yYW5nZS10ZXh0LWNhcmV0LWRvd24gbWwtMlwiIHRoeUljb25OYW1lPVwiYW5nbGUtZG93blwiPjwvdGh5LWljb24+XG4gIDwvc3Bhbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0aHlEaXNhYmxlZFN3aXRjaFwiPlxuICAgIDxhIHRoeUFjdGlvbiB0aHlJY29uPVwiYW5nbGUtcmlnaHRcIiBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cIm5leHQoKVwiPjwvYT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,7 @@
1
- import { Component, Input, HostBinding, booleanAttribute } from '@angular/core';
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
2
  import { ThyDialog } from '../dialog.service';
3
3
  import { CdkScrollable } from '@angular/cdk/scrolling';
4
+ import { coerceBooleanProperty } from 'ngx-tethys/util';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../dialog.service";
6
7
  import * as i2 from "@angular/cdk/scrolling";
@@ -24,7 +25,7 @@ export class ThyDialogBody {
24
25
  }
25
26
  ngOnInit() { }
26
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDialogBody, deps: [{ token: i1.ThyDialog }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyDialogBody, isStandalone: true, selector: "thy-dialog-body", inputs: { thyClearPadding: ["thyClearPadding", "thyClearPadding", booleanAttribute] }, host: { properties: { "class.dialog-body": "this._isDialogBody", "class.dialog-body-clear-padding": "this.thyClearPaddingClassName" } }, exportAs: ["thyDialogBody"], hostDirectives: [{ directive: i2.CdkScrollable }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.2.3", type: ThyDialogBody, isStandalone: true, selector: "thy-dialog-body", inputs: { thyClearPadding: ["thyClearPadding", "thyClearPadding", coerceBooleanProperty] }, host: { properties: { "class.dialog-body": "this._isDialogBody", "class.dialog-body-clear-padding": "this.thyClearPaddingClassName" } }, exportAs: ["thyDialogBody"], hostDirectives: [{ directive: i2.CdkScrollable }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
28
29
  }
29
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ThyDialogBody, decorators: [{
30
31
  type: Component,
@@ -44,6 +45,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
44
45
  args: [`class.dialog-body-clear-padding`]
45
46
  }], thyClearPadding: [{
46
47
  type: Input,
47
- args: [{ transform: booleanAttribute }]
48
+ args: [{ transform: coerceBooleanProperty }]
48
49
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpYWxvZy9ib2R5L2RpYWxvZy1ib2R5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUV2RDs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLGFBQWE7SUFNdEI7OztPQUdHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZEgsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHdkQsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO0lBV08sQ0FBQztJQUV6QyxRQUFRLEtBQUksQ0FBQzs4R0FqQkosYUFBYTtrR0FBYixhQUFhLHFIQVVGLGdCQUFnQixzUEFoQjFCLDJCQUEyQjs7MkZBTTVCLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsbURBQW1EO29CQUNuRCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDbEM7OEVBRXFDLGFBQWE7c0JBQTlDLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUdoQyx3QkFBd0I7c0JBRHZCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVExQyxlQUFlO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBIb3N0QmluZGluZywgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5RGlhbG9nIH0gZnJvbSAnLi4vZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG4vKipcbiAqIOaooeaAgeahhueahOS4u+S9k+e7hOS7tlxuICogQG5hbWUgdGh5LWRpYWxvZy1ib2R5XG4gKiBAb3JkZXIgNTBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aHktZGlhbG9nLWJvZHknLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgLy8gY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZXhwb3J0QXM6ICd0aHlEaWFsb2dCb2R5JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbQ2RrU2Nyb2xsYWJsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5RGlhbG9nQm9keSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5kaWFsb2ctYm9keWApIF9pc0RpYWxvZ0JvZHkgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKGBjbGFzcy5kaWFsb2ctYm9keS1jbGVhci1wYWRkaW5nYClcbiAgICB0aHlDbGVhclBhZGRpbmdDbGFzc05hbWUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOa4hemZpOmXtOi3nVxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHRoeUNsZWFyUGFkZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeUNsZWFyUGFkZGluZ0NsYXNzTmFtZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBUaHlEaWFsb2cpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RpYWxvZy9ib2R5L2RpYWxvZy1ib2R5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUV4RDs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLGFBQWE7SUFNdEI7OztPQUdHO0lBQ0gsSUFDSSxlQUFlLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZEgsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHdkQsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO0lBV08sQ0FBQztJQUV6QyxRQUFRLEtBQUksQ0FBQzs4R0FqQkosYUFBYTtrR0FBYixhQUFhLHFIQVVGLHFCQUFxQixzUEFoQi9CLDJCQUEyQjs7MkZBTTVCLGFBQWE7a0JBUnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsbURBQW1EO29CQUNuRCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDbEM7OEVBRXFDLGFBQWE7c0JBQTlDLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUdoQyx3QkFBd0I7c0JBRHZCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQVExQyxlQUFlO3NCQURsQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5RGlhbG9nIH0gZnJvbSAnLi4vZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiDmqKHmgIHmoYbnmoTkuLvkvZPnu4Tku7ZcbiAqIEBuYW1lIHRoeS1kaWFsb2ctYm9keVxuICogQG9yZGVyIDUwXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWRpYWxvZy1ib2R5JyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGV4cG9ydEFzOiAndGh5RGlhbG9nQm9keScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0RGlyZWN0aXZlczogW0Nka1Njcm9sbGFibGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeURpYWxvZ0JvZHkgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuZGlhbG9nLWJvZHlgKSBfaXNEaWFsb2dCb2R5ID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuZGlhbG9nLWJvZHktY2xlYXItcGFkZGluZ2ApXG4gICAgdGh5Q2xlYXJQYWRkaW5nQ2xhc3NOYW1lID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDmuIXpmaTpl7Tot51cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pXG4gICAgc2V0IHRoeUNsZWFyUGFkZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRoeUNsZWFyUGFkZGluZ0NsYXNzTmFtZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBUaHlEaWFsb2cpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=