@taiga-ui/kit 3.14.0 → 3.15.0

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 (424) hide show
  1. package/bundles/taiga-ui-kit-components-accordion.umd.js +19 -26
  2. package/bundles/taiga-ui-kit-components-accordion.umd.js.map +1 -1
  3. package/bundles/taiga-ui-kit-components-action.umd.js +8 -8
  4. package/bundles/taiga-ui-kit-components-action.umd.js.map +1 -1
  5. package/bundles/taiga-ui-kit-components-arrow.umd.js +4 -4
  6. package/bundles/taiga-ui-kit-components-arrow.umd.js.map +1 -1
  7. package/bundles/taiga-ui-kit-components-avatar.umd.js +15 -15
  8. package/bundles/taiga-ui-kit-components-avatar.umd.js.map +1 -1
  9. package/bundles/taiga-ui-kit-components-badge.umd.js +17 -17
  10. package/bundles/taiga-ui-kit-components-badge.umd.js.map +1 -1
  11. package/bundles/taiga-ui-kit-components-badged-content.umd.js +22 -22
  12. package/bundles/taiga-ui-kit-components-badged-content.umd.js.map +1 -1
  13. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js +6 -6
  14. package/bundles/taiga-ui-kit-components-breadcrumbs.umd.js.map +1 -1
  15. package/bundles/taiga-ui-kit-components-calendar-month.umd.js +4 -4
  16. package/bundles/taiga-ui-kit-components-calendar-month.umd.js.map +1 -1
  17. package/bundles/taiga-ui-kit-components-calendar-range.umd.js +7 -7
  18. package/bundles/taiga-ui-kit-components-calendar-range.umd.js.map +1 -1
  19. package/bundles/taiga-ui-kit-components-carousel.umd.js +22 -22
  20. package/bundles/taiga-ui-kit-components-carousel.umd.js.map +1 -1
  21. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js +10 -10
  22. package/bundles/taiga-ui-kit-components-checkbox-block.umd.js.map +1 -1
  23. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js +6 -6
  24. package/bundles/taiga-ui-kit-components-checkbox-labeled.umd.js.map +1 -1
  25. package/bundles/taiga-ui-kit-components-checkbox.umd.js +5 -5
  26. package/bundles/taiga-ui-kit-components-checkbox.umd.js.map +1 -1
  27. package/bundles/taiga-ui-kit-components-combo-box.umd.js +11 -11
  28. package/bundles/taiga-ui-kit-components-combo-box.umd.js.map +1 -1
  29. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js +8 -8
  30. package/bundles/taiga-ui-kit-components-data-list-wrapper.umd.js.map +1 -1
  31. package/bundles/taiga-ui-kit-components-files.umd.js +39 -33
  32. package/bundles/taiga-ui-kit-components-files.umd.js.map +1 -1
  33. package/bundles/taiga-ui-kit-components-filter.umd.js +5 -5
  34. package/bundles/taiga-ui-kit-components-filter.umd.js.map +1 -1
  35. package/bundles/taiga-ui-kit-components-input-copy.umd.js +11 -11
  36. package/bundles/taiga-ui-kit-components-input-copy.umd.js.map +1 -1
  37. package/bundles/taiga-ui-kit-components-input-count.umd.js +27 -22
  38. package/bundles/taiga-ui-kit-components-input-count.umd.js.map +1 -1
  39. package/bundles/taiga-ui-kit-components-input-date-range.umd.js +15 -15
  40. package/bundles/taiga-ui-kit-components-input-date-range.umd.js.map +1 -1
  41. package/bundles/taiga-ui-kit-components-input-date-time.umd.js +17 -17
  42. package/bundles/taiga-ui-kit-components-input-date-time.umd.js.map +1 -1
  43. package/bundles/taiga-ui-kit-components-input-date.umd.js +11 -11
  44. package/bundles/taiga-ui-kit-components-input-date.umd.js.map +1 -1
  45. package/bundles/taiga-ui-kit-components-input-files.umd.js +28 -28
  46. package/bundles/taiga-ui-kit-components-input-files.umd.js.map +1 -1
  47. package/bundles/taiga-ui-kit-components-input-inline.umd.js +6 -6
  48. package/bundles/taiga-ui-kit-components-input-inline.umd.js.map +1 -1
  49. package/bundles/taiga-ui-kit-components-input-month-range.umd.js +7 -7
  50. package/bundles/taiga-ui-kit-components-input-month-range.umd.js.map +1 -1
  51. package/bundles/taiga-ui-kit-components-input-month.umd.js +5 -5
  52. package/bundles/taiga-ui-kit-components-input-month.umd.js.map +1 -1
  53. package/bundles/taiga-ui-kit-components-input-number.umd.js +25 -25
  54. package/bundles/taiga-ui-kit-components-input-number.umd.js.map +1 -1
  55. package/bundles/taiga-ui-kit-components-input-password.umd.js +9 -9
  56. package/bundles/taiga-ui-kit-components-input-password.umd.js.map +1 -1
  57. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js +16 -16
  58. package/bundles/taiga-ui-kit-components-input-phone-international.umd.js.map +1 -1
  59. package/bundles/taiga-ui-kit-components-input-phone.umd.js +33 -33
  60. package/bundles/taiga-ui-kit-components-input-phone.umd.js.map +1 -1
  61. package/bundles/taiga-ui-kit-components-input-range.umd.js +19 -19
  62. package/bundles/taiga-ui-kit-components-input-range.umd.js.map +1 -1
  63. package/bundles/taiga-ui-kit-components-input-slider.umd.js +15 -15
  64. package/bundles/taiga-ui-kit-components-input-slider.umd.js.map +1 -1
  65. package/bundles/taiga-ui-kit-components-input-tag.umd.js +57 -26
  66. package/bundles/taiga-ui-kit-components-input-tag.umd.js.map +1 -1
  67. package/bundles/taiga-ui-kit-components-input-time.umd.js +10 -10
  68. package/bundles/taiga-ui-kit-components-input-time.umd.js.map +1 -1
  69. package/bundles/taiga-ui-kit-components-input-year.umd.js +5 -5
  70. package/bundles/taiga-ui-kit-components-input-year.umd.js.map +1 -1
  71. package/bundles/taiga-ui-kit-components-input.umd.js +6 -6
  72. package/bundles/taiga-ui-kit-components-input.umd.js.map +1 -1
  73. package/bundles/taiga-ui-kit-components-island.umd.js +20 -20
  74. package/bundles/taiga-ui-kit-components-island.umd.js.map +1 -1
  75. package/bundles/taiga-ui-kit-components-items-with-more.umd.js +5 -5
  76. package/bundles/taiga-ui-kit-components-items-with-more.umd.js.map +1 -1
  77. package/bundles/taiga-ui-kit-components-line-clamp.umd.js +14 -14
  78. package/bundles/taiga-ui-kit-components-line-clamp.umd.js.map +1 -1
  79. package/bundles/taiga-ui-kit-components-marker-icon.umd.js +8 -8
  80. package/bundles/taiga-ui-kit-components-marker-icon.umd.js.map +1 -1
  81. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js +7 -7
  82. package/bundles/taiga-ui-kit-components-multi-select-option.umd.js.map +1 -1
  83. package/bundles/taiga-ui-kit-components-multi-select.umd.js +17 -17
  84. package/bundles/taiga-ui-kit-components-multi-select.umd.js.map +1 -1
  85. package/bundles/taiga-ui-kit-components-pagination.umd.js +9 -9
  86. package/bundles/taiga-ui-kit-components-pagination.umd.js.map +1 -1
  87. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js +10 -10
  88. package/bundles/taiga-ui-kit-components-pdf-viewer.umd.js.map +1 -1
  89. package/bundles/taiga-ui-kit-components-progress.umd.js +31 -31
  90. package/bundles/taiga-ui-kit-components-progress.umd.js.map +1 -1
  91. package/bundles/taiga-ui-kit-components-push.umd.js +17 -17
  92. package/bundles/taiga-ui-kit-components-push.umd.js.map +1 -1
  93. package/bundles/taiga-ui-kit-components-radio-block.umd.js +11 -11
  94. package/bundles/taiga-ui-kit-components-radio-block.umd.js.map +1 -1
  95. package/bundles/taiga-ui-kit-components-radio-group.umd.js +2 -2
  96. package/bundles/taiga-ui-kit-components-radio-group.umd.js.map +1 -1
  97. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js +7 -7
  98. package/bundles/taiga-ui-kit-components-radio-labeled.umd.js.map +1 -1
  99. package/bundles/taiga-ui-kit-components-radio-list.umd.js +7 -7
  100. package/bundles/taiga-ui-kit-components-radio-list.umd.js.map +1 -1
  101. package/bundles/taiga-ui-kit-components-radio.umd.js +8 -8
  102. package/bundles/taiga-ui-kit-components-radio.umd.js.map +1 -1
  103. package/bundles/taiga-ui-kit-components-range.umd.js +31 -31
  104. package/bundles/taiga-ui-kit-components-range.umd.js.map +1 -1
  105. package/bundles/taiga-ui-kit-components-rating.umd.js +6 -6
  106. package/bundles/taiga-ui-kit-components-rating.umd.js.map +1 -1
  107. package/bundles/taiga-ui-kit-components-select-option.umd.js +4 -4
  108. package/bundles/taiga-ui-kit-components-select-option.umd.js.map +1 -1
  109. package/bundles/taiga-ui-kit-components-select.umd.js +30 -28
  110. package/bundles/taiga-ui-kit-components-select.umd.js.map +1 -1
  111. package/bundles/taiga-ui-kit-components-slider.umd.js +37 -37
  112. package/bundles/taiga-ui-kit-components-slider.umd.js.map +1 -1
  113. package/bundles/taiga-ui-kit-components-stepper.umd.js +30 -30
  114. package/bundles/taiga-ui-kit-components-stepper.umd.js.map +1 -1
  115. package/bundles/taiga-ui-kit-components-tabs.umd.js +44 -44
  116. package/bundles/taiga-ui-kit-components-tabs.umd.js.map +1 -1
  117. package/bundles/taiga-ui-kit-components-tag.umd.js +24 -24
  118. package/bundles/taiga-ui-kit-components-tag.umd.js.map +1 -1
  119. package/bundles/taiga-ui-kit-components-text-area.umd.js +20 -20
  120. package/bundles/taiga-ui-kit-components-text-area.umd.js.map +1 -1
  121. package/bundles/taiga-ui-kit-components-tiles.umd.js +15 -15
  122. package/bundles/taiga-ui-kit-components-tiles.umd.js.map +1 -1
  123. package/bundles/taiga-ui-kit-components-toggle.umd.js +9 -9
  124. package/bundles/taiga-ui-kit-components-toggle.umd.js.map +1 -1
  125. package/bundles/taiga-ui-kit-components-tree.umd.js +22 -22
  126. package/bundles/taiga-ui-kit-components-tree.umd.js.map +1 -1
  127. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js +36 -26
  128. package/bundles/taiga-ui-kit-directives-data-list-dropdown-manager.umd.js.map +1 -1
  129. package/bundles/taiga-ui-kit-directives-highlight.umd.js +10 -10
  130. package/bundles/taiga-ui-kit-directives-highlight.umd.js.map +1 -1
  131. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js +11 -11
  132. package/bundles/taiga-ui-kit-directives-lazy-loading.umd.js.map +1 -1
  133. package/bundles/taiga-ui-kit-directives-present.umd.js +8 -10
  134. package/bundles/taiga-ui-kit-directives-present.umd.js.map +1 -1
  135. package/bundles/taiga-ui-kit-directives-project-class.umd.js +2 -2
  136. package/bundles/taiga-ui-kit-directives-project-class.umd.js.map +1 -1
  137. package/bundles/taiga-ui-kit-directives-unfinished-validator.umd.js +4 -4
  138. package/bundles/taiga-ui-kit-directives-unfinished-validator.umd.js.map +1 -1
  139. package/bundles/taiga-ui-kit-directives-value-accessor.umd.js +1 -1
  140. package/bundles/taiga-ui-kit-directives-value-accessor.umd.js.map +1 -1
  141. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js +4 -4
  142. package/bundles/taiga-ui-kit-internal-primitive-calendar-range.umd.js.map +1 -1
  143. package/components/accordion/accordion-item/accordion-item.component.d.ts +0 -1
  144. package/components/files/file/file.component.d.ts +2 -1
  145. package/components/input-count/input-count.component.d.ts +3 -3
  146. package/components/input-tag/input-tag.component.d.ts +4 -1
  147. package/components/select/native-select/native-select.d.ts +3 -2
  148. package/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.d.ts +4 -1
  149. package/directives/present/present.directive.d.ts +1 -1
  150. package/esm2015/components/accordion/accordion-item/accordion-item-content.directive.js +2 -2
  151. package/esm2015/components/accordion/accordion-item/accordion-item-eager-content.directive.js +2 -2
  152. package/esm2015/components/accordion/accordion-item/accordion-item.component.js +15 -22
  153. package/esm2015/components/accordion/accordion.component.js +4 -4
  154. package/esm2015/components/action/action.component.js +9 -9
  155. package/esm2015/components/arrow/arrow.component.js +5 -5
  156. package/esm2015/components/avatar/avatar.component.js +16 -16
  157. package/esm2015/components/badge/badge.component.js +18 -18
  158. package/esm2015/components/badged-content/badged-content.component.js +23 -23
  159. package/esm2015/components/breadcrumbs/breadcrumbs.component.js +7 -7
  160. package/esm2015/components/calendar-month/calendar-month.component.js +5 -5
  161. package/esm2015/components/calendar-range/calendar-range.component.js +8 -8
  162. package/esm2015/components/carousel/carousel-autoscroll.directive.js +3 -3
  163. package/esm2015/components/carousel/carousel-buttons.directive.js +6 -6
  164. package/esm2015/components/carousel/carousel-scroll.directive.js +3 -3
  165. package/esm2015/components/carousel/carousel.component.js +12 -12
  166. package/esm2015/components/carousel/carousel.directive.js +3 -3
  167. package/esm2015/components/checkbox/checkbox.component.js +6 -6
  168. package/esm2015/components/checkbox-block/checkbox-block.component.js +11 -11
  169. package/esm2015/components/checkbox-labeled/checkbox-labeled.component.js +7 -7
  170. package/esm2015/components/combo-box/combo-box-strict.directive.js +3 -3
  171. package/esm2015/components/combo-box/combo-box.component.js +9 -9
  172. package/esm2015/components/combo-box/combo-box.directive.js +2 -2
  173. package/esm2015/components/data-list-wrapper/data-list-group-wrapper.component.js +5 -5
  174. package/esm2015/components/data-list-wrapper/data-list-wrapper.component.js +5 -5
  175. package/esm2015/components/files/file/file.component.js +37 -31
  176. package/esm2015/components/files/files.component.js +4 -4
  177. package/esm2015/components/filter/filter.component.js +6 -6
  178. package/esm2015/components/input/input.component.js +6 -6
  179. package/esm2015/components/input/input.directive.js +2 -2
  180. package/esm2015/components/input-copy/input-copy.component.js +11 -11
  181. package/esm2015/components/input-copy/input-copy.directive.js +2 -2
  182. package/esm2015/components/input-count/input-count.component.js +26 -21
  183. package/esm2015/components/input-count/input-count.directive.js +4 -4
  184. package/esm2015/components/input-date/input-date.component.js +10 -10
  185. package/esm2015/components/input-date/input-date.directive.js +3 -3
  186. package/esm2015/components/input-date-range/input-date-range.component.js +14 -14
  187. package/esm2015/components/input-date-range/input-date-range.directive.js +3 -3
  188. package/esm2015/components/input-date-time/input-date-time.component.js +16 -16
  189. package/esm2015/components/input-date-time/input-date-time.directive.js +3 -3
  190. package/esm2015/components/input-files/input-files.component.js +21 -21
  191. package/esm2015/components/input-files/input-files.directive.js +9 -9
  192. package/esm2015/components/input-inline/input-inline.component.js +7 -7
  193. package/esm2015/components/input-month/input-month.component.js +4 -4
  194. package/esm2015/components/input-month/input-month.directive.js +3 -3
  195. package/esm2015/components/input-month-range/input-month-range.component.js +5 -5
  196. package/esm2015/components/input-month-range/input-month-range.directive.js +4 -4
  197. package/esm2015/components/input-number/input-number.component.js +24 -24
  198. package/esm2015/components/input-number/input-number.directive.js +3 -3
  199. package/esm2015/components/input-password/input-password.component.js +9 -9
  200. package/esm2015/components/input-password/input-password.directive.js +2 -2
  201. package/esm2015/components/input-phone/input-phone.component.js +32 -32
  202. package/esm2015/components/input-phone/input-phone.directive.js +3 -3
  203. package/esm2015/components/input-phone-international/input-phone-international.component.js +17 -17
  204. package/esm2015/components/input-range/input-range.component.js +20 -20
  205. package/esm2015/components/input-slider/input-slider.component.js +16 -16
  206. package/esm2015/components/input-tag/input-tag.component.js +50 -27
  207. package/esm2015/components/input-time/input-time.component.js +11 -11
  208. package/esm2015/components/input-year/input-year.component.js +4 -4
  209. package/esm2015/components/input-year/input-year.directive.js +3 -3
  210. package/esm2015/components/island/island.component.js +21 -21
  211. package/esm2015/components/items-with-more/items-with-more.component.js +4 -4
  212. package/esm2015/components/items-with-more/items-with-more.directive.js +2 -2
  213. package/esm2015/components/items-with-more/more.directive.js +2 -2
  214. package/esm2015/components/line-clamp/line-clamp-box.component.js +4 -4
  215. package/esm2015/components/line-clamp/line-clamp-position.directive.js +2 -2
  216. package/esm2015/components/line-clamp/line-clamp.component.js +11 -11
  217. package/esm2015/components/marker-icon/marker-icon.component.js +9 -9
  218. package/esm2015/components/multi-select/multi-select-group/multi-select-group.component.js +6 -6
  219. package/esm2015/components/multi-select/multi-select-group/multi-select-group.directive.js +2 -2
  220. package/esm2015/components/multi-select/multi-select.component.js +12 -12
  221. package/esm2015/components/multi-select-option/multi-select-option.component.js +8 -8
  222. package/esm2015/components/pagination/pagination.component.js +10 -10
  223. package/esm2015/components/pdf-viewer/pdf-viewer.component.js +8 -8
  224. package/esm2015/components/pdf-viewer/pdf-viewer.directive.js +4 -4
  225. package/esm2015/components/progress/progress-bar/progress-bar.component.js +8 -8
  226. package/esm2015/components/progress/progress-bar/progress-color-segments.directive.js +6 -6
  227. package/esm2015/components/progress/progress-circle/progress-circle.component.js +9 -9
  228. package/esm2015/components/progress/progress-label/progress-label.component.js +4 -4
  229. package/esm2015/components/progress/progress-segmented/progress-segmented.component.js +9 -9
  230. package/esm2015/components/push/push-alert.component.js +9 -9
  231. package/esm2015/components/push/push-alert.directive.js +2 -2
  232. package/esm2015/components/push/push.component.js +6 -6
  233. package/esm2015/components/push/push.directive.js +4 -4
  234. package/esm2015/components/radio/radio.component.js +9 -9
  235. package/esm2015/components/radio-block/radio-block.component.js +12 -12
  236. package/esm2015/components/radio-group/radio-group.component.js +3 -3
  237. package/esm2015/components/radio-labeled/radio-labeled.component.js +8 -8
  238. package/esm2015/components/radio-list/radio-list.component.js +8 -8
  239. package/esm2015/components/range/range-change.directive.js +11 -11
  240. package/esm2015/components/range/range.component.js +21 -21
  241. package/esm2015/components/rating/rating.component.js +7 -7
  242. package/esm2015/components/select/native-select/native-select-group.component.js +10 -11
  243. package/esm2015/components/select/native-select/native-select.component.js +10 -11
  244. package/esm2015/components/select/native-select/native-select.js +8 -4
  245. package/esm2015/components/select/select.component.js +6 -6
  246. package/esm2015/components/select/select.directive.js +2 -2
  247. package/esm2015/components/select-option/select-option.component.js +5 -5
  248. package/esm2015/components/slider/helpers/slider-key-steps.directive.js +8 -8
  249. package/esm2015/components/slider/helpers/slider-readonly.directive.js +15 -15
  250. package/esm2015/components/slider/helpers/slider-thumb-label/slider-thumb-label.component.js +7 -7
  251. package/esm2015/components/slider/slider.component.js +11 -11
  252. package/esm2015/components/stepper/step/step.component.js +14 -14
  253. package/esm2015/components/stepper/stepper.component.js +18 -18
  254. package/esm2015/components/tabs/tab/tab.component.js +9 -9
  255. package/esm2015/components/tabs/tabs/tabs.component.js +7 -7
  256. package/esm2015/components/tabs/tabs-vertical/tabs-vertical.component.js +7 -7
  257. package/esm2015/components/tabs/tabs-with-more/tabs-with-more.component.js +8 -8
  258. package/esm2015/components/tabs/tabs.directive.js +6 -6
  259. package/esm2015/components/tabs/underline/underline.component.js +13 -13
  260. package/esm2015/components/tag/tag.component.js +25 -25
  261. package/esm2015/components/text-area/text-area.component.js +20 -20
  262. package/esm2015/components/text-area/text-area.directive.js +2 -2
  263. package/esm2015/components/tiles/tile-handle.directive.js +6 -6
  264. package/esm2015/components/tiles/tile.component.js +7 -7
  265. package/esm2015/components/tiles/tiles.component.js +5 -5
  266. package/esm2015/components/toggle/toggle.component.js +10 -10
  267. package/esm2015/components/tree/components/tree/tree.component.js +5 -5
  268. package/esm2015/components/tree/components/tree-item/tree-item.component.js +6 -6
  269. package/esm2015/components/tree/components/tree-item-content/tree-item-content.component.js +5 -5
  270. package/esm2015/components/tree/directives/tree-children.directive.js +2 -2
  271. package/esm2015/components/tree/directives/tree-controller.directive.js +4 -4
  272. package/esm2015/components/tree/directives/tree-item-controller.directive.js +4 -4
  273. package/esm2015/components/tree/directives/tree-node.directive.js +3 -3
  274. package/esm2015/directives/data-list-dropdown-manager/data-list-dropdown-manager.directive.js +25 -17
  275. package/esm2015/directives/highlight/highlight.directive.js +11 -11
  276. package/esm2015/directives/lazy-loading/lazy-loading.directive.js +12 -12
  277. package/esm2015/directives/present/present.directive.js +10 -12
  278. package/esm2015/directives/project-class/project-class.directive.js +3 -3
  279. package/esm2015/directives/unfinished-validator/unfinished-validator.directive.js +5 -5
  280. package/esm2015/directives/value-accessor/value-accessor.directive.js +2 -2
  281. package/esm2015/internal/primitive-calendar-range/primitive-calendar-range.component.js +5 -5
  282. package/fesm2015/taiga-ui-kit-components-accordion.js +19 -26
  283. package/fesm2015/taiga-ui-kit-components-accordion.js.map +1 -1
  284. package/fesm2015/taiga-ui-kit-components-action.js +8 -8
  285. package/fesm2015/taiga-ui-kit-components-action.js.map +1 -1
  286. package/fesm2015/taiga-ui-kit-components-arrow.js +4 -4
  287. package/fesm2015/taiga-ui-kit-components-arrow.js.map +1 -1
  288. package/fesm2015/taiga-ui-kit-components-avatar.js +15 -15
  289. package/fesm2015/taiga-ui-kit-components-avatar.js.map +1 -1
  290. package/fesm2015/taiga-ui-kit-components-badge.js +17 -17
  291. package/fesm2015/taiga-ui-kit-components-badge.js.map +1 -1
  292. package/fesm2015/taiga-ui-kit-components-badged-content.js +22 -22
  293. package/fesm2015/taiga-ui-kit-components-badged-content.js.map +1 -1
  294. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js +6 -6
  295. package/fesm2015/taiga-ui-kit-components-breadcrumbs.js.map +1 -1
  296. package/fesm2015/taiga-ui-kit-components-calendar-month.js +4 -4
  297. package/fesm2015/taiga-ui-kit-components-calendar-month.js.map +1 -1
  298. package/fesm2015/taiga-ui-kit-components-calendar-range.js +7 -7
  299. package/fesm2015/taiga-ui-kit-components-calendar-range.js.map +1 -1
  300. package/fesm2015/taiga-ui-kit-components-carousel.js +22 -22
  301. package/fesm2015/taiga-ui-kit-components-carousel.js.map +1 -1
  302. package/fesm2015/taiga-ui-kit-components-checkbox-block.js +10 -10
  303. package/fesm2015/taiga-ui-kit-components-checkbox-block.js.map +1 -1
  304. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js +6 -6
  305. package/fesm2015/taiga-ui-kit-components-checkbox-labeled.js.map +1 -1
  306. package/fesm2015/taiga-ui-kit-components-checkbox.js +5 -5
  307. package/fesm2015/taiga-ui-kit-components-checkbox.js.map +1 -1
  308. package/fesm2015/taiga-ui-kit-components-combo-box.js +11 -11
  309. package/fesm2015/taiga-ui-kit-components-combo-box.js.map +1 -1
  310. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js +8 -8
  311. package/fesm2015/taiga-ui-kit-components-data-list-wrapper.js.map +1 -1
  312. package/fesm2015/taiga-ui-kit-components-files.js +39 -33
  313. package/fesm2015/taiga-ui-kit-components-files.js.map +1 -1
  314. package/fesm2015/taiga-ui-kit-components-filter.js +5 -5
  315. package/fesm2015/taiga-ui-kit-components-filter.js.map +1 -1
  316. package/fesm2015/taiga-ui-kit-components-input-copy.js +11 -11
  317. package/fesm2015/taiga-ui-kit-components-input-copy.js.map +1 -1
  318. package/fesm2015/taiga-ui-kit-components-input-count.js +28 -23
  319. package/fesm2015/taiga-ui-kit-components-input-count.js.map +1 -1
  320. package/fesm2015/taiga-ui-kit-components-input-date-range.js +15 -15
  321. package/fesm2015/taiga-ui-kit-components-input-date-range.js.map +1 -1
  322. package/fesm2015/taiga-ui-kit-components-input-date-time.js +17 -17
  323. package/fesm2015/taiga-ui-kit-components-input-date-time.js.map +1 -1
  324. package/fesm2015/taiga-ui-kit-components-input-date.js +11 -11
  325. package/fesm2015/taiga-ui-kit-components-input-date.js.map +1 -1
  326. package/fesm2015/taiga-ui-kit-components-input-files.js +28 -28
  327. package/fesm2015/taiga-ui-kit-components-input-files.js.map +1 -1
  328. package/fesm2015/taiga-ui-kit-components-input-inline.js +6 -6
  329. package/fesm2015/taiga-ui-kit-components-input-inline.js.map +1 -1
  330. package/fesm2015/taiga-ui-kit-components-input-month-range.js +7 -7
  331. package/fesm2015/taiga-ui-kit-components-input-month-range.js.map +1 -1
  332. package/fesm2015/taiga-ui-kit-components-input-month.js +5 -5
  333. package/fesm2015/taiga-ui-kit-components-input-month.js.map +1 -1
  334. package/fesm2015/taiga-ui-kit-components-input-number.js +25 -25
  335. package/fesm2015/taiga-ui-kit-components-input-number.js.map +1 -1
  336. package/fesm2015/taiga-ui-kit-components-input-password.js +9 -9
  337. package/fesm2015/taiga-ui-kit-components-input-password.js.map +1 -1
  338. package/fesm2015/taiga-ui-kit-components-input-phone-international.js +16 -16
  339. package/fesm2015/taiga-ui-kit-components-input-phone-international.js.map +1 -1
  340. package/fesm2015/taiga-ui-kit-components-input-phone.js +33 -33
  341. package/fesm2015/taiga-ui-kit-components-input-phone.js.map +1 -1
  342. package/fesm2015/taiga-ui-kit-components-input-range.js +19 -19
  343. package/fesm2015/taiga-ui-kit-components-input-range.js.map +1 -1
  344. package/fesm2015/taiga-ui-kit-components-input-slider.js +15 -15
  345. package/fesm2015/taiga-ui-kit-components-input-slider.js.map +1 -1
  346. package/fesm2015/taiga-ui-kit-components-input-tag.js +49 -26
  347. package/fesm2015/taiga-ui-kit-components-input-tag.js.map +1 -1
  348. package/fesm2015/taiga-ui-kit-components-input-time.js +10 -10
  349. package/fesm2015/taiga-ui-kit-components-input-time.js.map +1 -1
  350. package/fesm2015/taiga-ui-kit-components-input-year.js +5 -5
  351. package/fesm2015/taiga-ui-kit-components-input-year.js.map +1 -1
  352. package/fesm2015/taiga-ui-kit-components-input.js +6 -6
  353. package/fesm2015/taiga-ui-kit-components-input.js.map +1 -1
  354. package/fesm2015/taiga-ui-kit-components-island.js +20 -20
  355. package/fesm2015/taiga-ui-kit-components-island.js.map +1 -1
  356. package/fesm2015/taiga-ui-kit-components-items-with-more.js +5 -5
  357. package/fesm2015/taiga-ui-kit-components-items-with-more.js.map +1 -1
  358. package/fesm2015/taiga-ui-kit-components-line-clamp.js +14 -14
  359. package/fesm2015/taiga-ui-kit-components-line-clamp.js.map +1 -1
  360. package/fesm2015/taiga-ui-kit-components-marker-icon.js +8 -8
  361. package/fesm2015/taiga-ui-kit-components-marker-icon.js.map +1 -1
  362. package/fesm2015/taiga-ui-kit-components-multi-select-option.js +7 -7
  363. package/fesm2015/taiga-ui-kit-components-multi-select-option.js.map +1 -1
  364. package/fesm2015/taiga-ui-kit-components-multi-select.js +17 -17
  365. package/fesm2015/taiga-ui-kit-components-multi-select.js.map +1 -1
  366. package/fesm2015/taiga-ui-kit-components-pagination.js +9 -9
  367. package/fesm2015/taiga-ui-kit-components-pagination.js.map +1 -1
  368. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js +10 -10
  369. package/fesm2015/taiga-ui-kit-components-pdf-viewer.js.map +1 -1
  370. package/fesm2015/taiga-ui-kit-components-progress.js +31 -31
  371. package/fesm2015/taiga-ui-kit-components-progress.js.map +1 -1
  372. package/fesm2015/taiga-ui-kit-components-push.js +17 -17
  373. package/fesm2015/taiga-ui-kit-components-push.js.map +1 -1
  374. package/fesm2015/taiga-ui-kit-components-radio-block.js +11 -11
  375. package/fesm2015/taiga-ui-kit-components-radio-block.js.map +1 -1
  376. package/fesm2015/taiga-ui-kit-components-radio-group.js +2 -2
  377. package/fesm2015/taiga-ui-kit-components-radio-group.js.map +1 -1
  378. package/fesm2015/taiga-ui-kit-components-radio-labeled.js +7 -7
  379. package/fesm2015/taiga-ui-kit-components-radio-labeled.js.map +1 -1
  380. package/fesm2015/taiga-ui-kit-components-radio-list.js +7 -7
  381. package/fesm2015/taiga-ui-kit-components-radio-list.js.map +1 -1
  382. package/fesm2015/taiga-ui-kit-components-radio.js +8 -8
  383. package/fesm2015/taiga-ui-kit-components-radio.js.map +1 -1
  384. package/fesm2015/taiga-ui-kit-components-range.js +30 -30
  385. package/fesm2015/taiga-ui-kit-components-range.js.map +1 -1
  386. package/fesm2015/taiga-ui-kit-components-rating.js +6 -6
  387. package/fesm2015/taiga-ui-kit-components-rating.js.map +1 -1
  388. package/fesm2015/taiga-ui-kit-components-select-option.js +4 -4
  389. package/fesm2015/taiga-ui-kit-components-select-option.js.map +1 -1
  390. package/fesm2015/taiga-ui-kit-components-select.js +31 -29
  391. package/fesm2015/taiga-ui-kit-components-select.js.map +1 -1
  392. package/fesm2015/taiga-ui-kit-components-slider.js +37 -37
  393. package/fesm2015/taiga-ui-kit-components-slider.js.map +1 -1
  394. package/fesm2015/taiga-ui-kit-components-stepper.js +30 -30
  395. package/fesm2015/taiga-ui-kit-components-stepper.js.map +1 -1
  396. package/fesm2015/taiga-ui-kit-components-tabs.js +44 -44
  397. package/fesm2015/taiga-ui-kit-components-tabs.js.map +1 -1
  398. package/fesm2015/taiga-ui-kit-components-tag.js +24 -24
  399. package/fesm2015/taiga-ui-kit-components-tag.js.map +1 -1
  400. package/fesm2015/taiga-ui-kit-components-text-area.js +20 -20
  401. package/fesm2015/taiga-ui-kit-components-text-area.js.map +1 -1
  402. package/fesm2015/taiga-ui-kit-components-tiles.js +15 -15
  403. package/fesm2015/taiga-ui-kit-components-tiles.js.map +1 -1
  404. package/fesm2015/taiga-ui-kit-components-toggle.js +9 -9
  405. package/fesm2015/taiga-ui-kit-components-toggle.js.map +1 -1
  406. package/fesm2015/taiga-ui-kit-components-tree.js +22 -22
  407. package/fesm2015/taiga-ui-kit-components-tree.js.map +1 -1
  408. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js +24 -16
  409. package/fesm2015/taiga-ui-kit-directives-data-list-dropdown-manager.js.map +1 -1
  410. package/fesm2015/taiga-ui-kit-directives-highlight.js +10 -10
  411. package/fesm2015/taiga-ui-kit-directives-highlight.js.map +1 -1
  412. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js +11 -11
  413. package/fesm2015/taiga-ui-kit-directives-lazy-loading.js.map +1 -1
  414. package/fesm2015/taiga-ui-kit-directives-present.js +9 -11
  415. package/fesm2015/taiga-ui-kit-directives-present.js.map +1 -1
  416. package/fesm2015/taiga-ui-kit-directives-project-class.js +2 -2
  417. package/fesm2015/taiga-ui-kit-directives-project-class.js.map +1 -1
  418. package/fesm2015/taiga-ui-kit-directives-unfinished-validator.js +4 -4
  419. package/fesm2015/taiga-ui-kit-directives-unfinished-validator.js.map +1 -1
  420. package/fesm2015/taiga-ui-kit-directives-value-accessor.js +1 -1
  421. package/fesm2015/taiga-ui-kit-directives-value-accessor.js.map +1 -1
  422. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js +4 -4
  423. package/fesm2015/taiga-ui-kit-internal-primitive-calendar-range.js.map +1 -1
  424. package/package.json +6 -6
@@ -19,26 +19,26 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
19
19
  this.options = options;
20
20
  this.phoneMaskAfterCountryCode = this.options.phoneMaskAfterCountryCode;
21
21
  this.allowText = this.options.allowText;
22
- this.search = ``;
22
+ this.search = '';
23
23
  this.searchChange = new EventEmitter();
24
24
  this.textMaskOptions = {
25
- mask: value => this.allowText && !this.value && isText(value) && value !== `+`
25
+ mask: value => this.allowText && !this.value && isText(value) && value !== '+'
26
26
  ? false
27
27
  : [
28
- ...this.countryCode.split(``),
29
- ` `,
28
+ ...this.countryCode.split(''),
29
+ ' ',
30
30
  ...this.phoneMaskAfterCountryCode
31
- .replace(/[^#\- ()]+/g, ``)
32
- .split(``)
33
- .map(item => (item === `#` ? /\d/ : item)),
31
+ .replace(/[^#\- ()]+/g, '')
32
+ .split('')
33
+ .map(item => (item === '#' ? /\d/ : item)),
34
34
  ],
35
35
  pipe: value => {
36
36
  if (this.allowText) {
37
37
  return value;
38
38
  }
39
- return value === `` && this.focused && !this.readOnly
39
+ return value === '' && this.focused && !this.readOnly
40
40
  ? `${this.countryCode} `
41
- : value.replace(/-$/, ``);
41
+ : value.replace(/-$/, '');
42
42
  },
43
43
  guide: false,
44
44
  };
@@ -64,10 +64,10 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
64
64
  get computedValue() {
65
65
  return this.value
66
66
  ? tuiFormatPhone(this.value, this.countryCode, this.phoneMaskAfterCountryCode)
67
- : this.search || ``;
67
+ : this.search || '';
68
68
  }
69
69
  get inputMode() {
70
- return this.allowText ? `text` : `numeric`;
70
+ return this.allowText ? 'text' : 'numeric';
71
71
  }
72
72
  get canOpen() {
73
73
  return this.interactive && !!this.datalist;
@@ -79,7 +79,7 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
79
79
  if (!event.dataTransfer) {
80
80
  return;
81
81
  }
82
- this.setValueWithoutPrefix(event.dataTransfer.getData(`text`));
82
+ this.setValueWithoutPrefix(event.dataTransfer.getData('text'));
83
83
  event.preventDefault();
84
84
  }
85
85
  onPaste(event) {
@@ -93,8 +93,8 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
93
93
  }
94
94
  if (this.computedValue === this.countryCode ||
95
95
  (this.search !== null &&
96
- Number.isNaN(parseInt(this.search.replace(TUI_MASK_SYMBOLS_REGEXP, ``), 10)))) {
97
- this.updateSearch(``);
96
+ Number.isNaN(parseInt(this.search.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10)))) {
97
+ this.updateSearch('');
98
98
  }
99
99
  }
100
100
  onBackspace(event) {
@@ -105,18 +105,18 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
105
105
  }
106
106
  }
107
107
  onValueChange(value) {
108
- value = value === `` ? this.countryCode : value;
108
+ value = value === '' ? this.countryCode : value;
109
109
  const parsed = isText(value)
110
110
  ? value
111
- : value.replace(TUI_MASK_SYMBOLS_REGEXP, ``).slice(0, this.maxPhoneLength);
111
+ : value.replace(TUI_MASK_SYMBOLS_REGEXP, '').slice(0, this.maxPhoneLength);
112
112
  this.updateSearch(parsed);
113
- this.updateValue(parsed === this.countryCode || isText(parsed) ? `` : parsed);
113
+ this.updateValue(parsed === this.countryCode || isText(parsed) ? '' : parsed);
114
114
  this.open = true;
115
115
  }
116
116
  handleOption(item) {
117
117
  this.focusInput();
118
118
  this.updateValue(item);
119
- this.updateSearch(``);
119
+ this.updateSearch('');
120
120
  this.open = false;
121
121
  }
122
122
  setDisabledState() {
@@ -125,10 +125,10 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
125
125
  }
126
126
  writeValue(value) {
127
127
  super.writeValue(value);
128
- this.updateSearch(``);
128
+ this.updateSearch('');
129
129
  }
130
130
  getFallbackValue() {
131
- return ``;
131
+ return '';
132
132
  }
133
133
  get caretIsInForbiddenArea() {
134
134
  const { nativeFocusableElement } = this;
@@ -146,7 +146,7 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
146
146
  }
147
147
  get maxPhoneLength() {
148
148
  return (this.countryCode.length +
149
- this.phoneMaskAfterCountryCode.replace(/[^#]+/g, ``).length);
149
+ this.phoneMaskAfterCountryCode.replace(/[^#]+/g, '').length);
150
150
  }
151
151
  get isTextValue() {
152
152
  return !!this.search && isText(this.search);
@@ -164,14 +164,14 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
164
164
  this.updateValue(this.cleanValue(value));
165
165
  this.updateSearch(this.allowText && isText(value)
166
166
  ? value
167
- : value.replace(TUI_MASK_SYMBOLS_REGEXP, ``));
167
+ : value.replace(TUI_MASK_SYMBOLS_REGEXP, ''));
168
168
  }
169
169
  cleanValue(value) {
170
- const reg = this.countryCode === `+7` ? /^7|^8/ : new RegExp(this.countryCode.slice(1));
170
+ const reg = this.countryCode === '+7' ? /^7|^8/ : new RegExp(this.countryCode.slice(1));
171
171
  const oldValueExist = this.value.length > this.countryCode.length &&
172
172
  this.value.length < this.maxPhoneLength;
173
- const newValueLength = value.replace(TUI_MASK_SYMBOLS_REGEXP, ``).length;
174
- const cleanNewValue = value.replace(/[^0-9]+/g, ``);
173
+ const newValueLength = value.replace(TUI_MASK_SYMBOLS_REGEXP, '').length;
174
+ const cleanNewValue = value.replace(/[^0-9]+/g, '');
175
175
  const selectionLength = String(getSelection()).length;
176
176
  if (oldValueExist && selectionLength === 0) {
177
177
  return `${this.value}${cleanNewValue}`.slice(0, this.maxPhoneLength);
@@ -179,7 +179,7 @@ export class TuiInputPhoneComponent extends AbstractTuiControl {
179
179
  if (newValueLength < this.maxPhoneLength - 1) {
180
180
  return `${this.countryCode}${cleanNewValue}`.slice(0, this.maxPhoneLength);
181
181
  }
182
- return `${this.countryCode}${cleanNewValue.replace(reg, ``)}`.slice(0, this.maxPhoneLength);
182
+ return `${this.countryCode}${cleanNewValue.replace(reg, '')}`.slice(0, this.maxPhoneLength);
183
183
  }
184
184
  focusInput() {
185
185
  if (this.nativeFocusableElement) {
@@ -221,9 +221,9 @@ __decorate([
221
221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputPhoneComponent, decorators: [{
222
222
  type: Component,
223
223
  args: [{
224
- selector: `tui-input-phone`,
225
- templateUrl: `./input-phone.template.html`,
226
- styleUrls: [`./input-phone.style.less`],
224
+ selector: 'tui-input-phone',
225
+ templateUrl: './input-phone.template.html',
226
+ styleUrls: ['./input-phone.style.less'],
227
227
  changeDetection: ChangeDetectionStrategy.OnPush,
228
228
  providers: [
229
229
  TuiDestroyService,
@@ -265,7 +265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
265
265
  args: [TuiPrimitiveTextfieldComponent]
266
266
  }], countryCodeSetter: [{
267
267
  type: Input,
268
- args: [`countryCode`]
268
+ args: ['countryCode']
269
269
  }], phoneMaskAfterCountryCode: [{
270
270
  type: Input
271
271
  }], allowText: [{
@@ -279,6 +279,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
279
279
  args: [TuiDataListDirective, { read: TemplateRef }]
280
280
  }] } });
281
281
  function isText(value) {
282
- return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ``), 10));
282
+ return Number.isNaN(parseInt(value.replace(TUI_MASK_SYMBOLS_REGEXP, ''), 10));
283
283
  }
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLFlBQVksRUFDWiwwQkFBMEIsRUFFMUIsY0FBYyxFQUNkLGlCQUFpQixFQUVqQix1QkFBdUIsRUFFdkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUdqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFlcEYsTUFBTSxPQUFPLHNCQUNULFNBQVEsa0JBQTBCO0lBOERsQyxZ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aGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlHZXRDbGlwYm9hcmREYXRhVGV4dCxcbiAgICBUdWlJbnB1dE1vZGUsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkLFxuICAgIHR1aVJlcXVpcmVkU2V0dGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX1NFTEVDVElPTl9TVFJFQU0sXG4gICAgVFVJX1RFWFRGSUVMRF9DTEVBTkVSLFxuICAgIHR1aUFzRGF0YUxpc3RIb3N0LFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxuICAgIFR1aURhdGFMaXN0SG9zdCxcbiAgICB0dWlGb3JtYXRQaG9uZSxcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1BIT05FX09QVElPTlMsIFR1aUlucHV0UGhvbmVPcHRpb25zfSBmcm9tICcuL2lucHV0LXBob25lLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYHR1aS1pbnB1dC1waG9uZWAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2lucHV0LXBob25lLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2lucHV0LXBob25lLnN0eWxlLmxlc3NgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRQaG9uZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8c3RyaW5nPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoYGNvdW50cnlDb2RlYClcbiAgICBAdHVpUmVxdWlyZWRTZXR0ZXIoKVxuICAgIHNldCBjb3VudHJ5Q29kZVNldHRlcihjb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUoY291bnRyeUNvZGUpO1xuICAgICAgICB0aGlzLmNvdW50cnlDb2RlID0gY291bnRyeUNvZGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1RleHQgPSB0aGlzLm9wdGlvbnMuYWxsb3dUZXh0O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlYXJjaCA9IGBgO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0PzogVGVtcGxhdGVSZWY8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj47XG5cbiAgICByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogdmFsdWUgPT5cbiAgICAgICAgICAgIHRoaXMuYWxsb3dUZXh0ICYmICF0aGlzLnZhbHVlICYmIGlzVGV4dCh2YWx1ZSkgJiYgdmFsdWUgIT09IGArYFxuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmNvdW50cnlDb2RlLnNwbGl0KGBgKSxcbiAgICAgICAgICAgICAgICAgICAgICBgIGAsXG4gICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXiNcXC0gKCldKy9nLCBgYClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KGBgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gKGl0ZW0gPT09IGAjYCA/IC9cXGQvIDogaXRlbSkpLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgcGlwZTogdmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IGBgICYmIHRoaXMuZm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5jb3VudHJ5Q29kZX0gYFxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZSgvLSQvLCBgYCk7XG4gICAgICAgIH0sXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGU7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5nQ29udHJvbCkgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9TRUxFQ1RJT05fU1RSRUFNKSBzZWxlY3Rpb24kOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9QSE9ORV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0UGhvbmVPcHRpb25zLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgc2VsZWN0aW9uJC5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMudGV4dGZpZWxkIHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5kcm9wZG93biAmJiB0aGlzLmRyb3Bkb3duLmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVcbiAgICAgICAgICAgID8gdHVpRm9ybWF0UGhvbmUodGhpcy52YWx1ZSwgdGhpcy5jb3VudHJ5Q29kZSwgdGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlKVxuICAgICAgICAgICAgOiB0aGlzLnNlYXJjaCB8fCBgYDtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRNb2RlKCk6IFR1aUlucHV0TW9kZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbG93VGV4dCA/IGB0ZXh0YCA6IGBudW1lcmljYDtcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgISF0aGlzLmRhdGFsaXN0O1xuICAgIH1cblxuICAgIGdldCBjYW5DbGVhbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRWYWx1ZSAhPT0gdGhpcy5jb3VudHJ5Q29kZSAmJiB0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcjtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgoZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoYHRleHRgKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgodHVpR2V0Q2xpcGJvYXJkRGF0YVRleHQoZXZlbnQgYXMgQ2xpcGJvYXJkRXZlbnQpKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmIChhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRWYWx1ZSAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5hbGxvd1RleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHRoaXMuY291bnRyeUNvZGUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWUgPT09IHRoaXMuY291bnRyeUNvZGUgfHxcbiAgICAgICAgICAgICh0aGlzLnNlYXJjaCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIE51bWJlci5pc05hTihcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5zZWFyY2gucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgYGApLCAxMCksXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChgYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJhY2tzcGFjZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRhcmdldC5zZWxlY3Rpb25TdGFydCB8fCAwKSA8PSB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgdGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID09PSB0YXJnZXQuc2VsZWN0aW9uRW5kXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlID09PSBgYCA/IHRoaXMuY291bnRyeUNvZGUgOiB2YWx1ZTtcblxuICAgICAgICBjb25zdCBwYXJzZWQgPSBpc1RleHQodmFsdWUpXG4gICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICA6IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsIGBgKS5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChwYXJzZWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCA9PT0gdGhpcy5jb3VudHJ5Q29kZSB8fCBpc1RleHQocGFyc2VkKSA/IGBgIDogcGFyc2VkKTtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChgYCk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goYGApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYXJldElzSW5Gb3JiaWRkZW5BcmVhKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICBzZWxlY3Rpb25TdGFydCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPCB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5vblJlbW92YWJsZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RleHRWYWx1ZSA/IDAgOiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbWF4UGhvbmVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGUubGVuZ3RoICtcbiAgICAgICAgICAgIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZS5yZXBsYWNlKC9bXiNdKy9nLCBgYCkubGVuZ3RoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoICYmIGlzVGV4dCh0aGlzLnNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYXJldElzSW5Gb3JiaWRkZW5BcmVhICYmICEhdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZVdpdGhvdXRQcmVmaXgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmNsZWFuVmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goXG4gICAgICAgICAgICB0aGlzLmFsbG93VGV4dCAmJiBpc1RleHQodmFsdWUpXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgYGApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5WYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnOiBSZWdFeHAgPVxuICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29kZSA9PT0gYCs3YCA/IC9eN3xeOC8gOiBuZXcgUmVnRXhwKHRoaXMuY291bnRyeUNvZGUuc2xpY2UoMSkpO1xuICAgICAgICBjb25zdCBvbGRWYWx1ZUV4aXN0ID1cbiAgICAgICAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gdGhpcy5jb3VudHJ5Q29kZS5sZW5ndGggJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUubGVuZ3RoIDwgdGhpcy5tYXhQaG9uZUxlbmd0aDtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVMZW5ndGggPSB2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCBgYCkubGVuZ3RoO1xuICAgICAgICBjb25zdCBjbGVhbk5ld1ZhbHVlID0gdmFsdWUucmVwbGFjZSgvW14wLTldKy9nLCBgYCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbkxlbmd0aCA9IFN0cmluZyhnZXRTZWxlY3Rpb24oKSkubGVuZ3RoO1xuXG4gICAgICAgIGlmIChvbGRWYWx1ZUV4aXN0ICYmIHNlbGVjdGlvbkxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMudmFsdWV9JHtjbGVhbk5ld1ZhbHVlfWAuc2xpY2UoMCwgdGhpcy5tYXhQaG9uZUxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3VmFsdWVMZW5ndGggPCB0aGlzLm1heFBob25lTGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuY291bnRyeUNvZGV9JHtjbGVhbk5ld1ZhbHVlfWAuc2xpY2UoMCwgdGhpcy5tYXhQaG9uZUxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5jb3VudHJ5Q29kZX0ke2NsZWFuTmV3VmFsdWUucmVwbGFjZShyZWcsIGBgKX1gLnNsaWNlKFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIHRoaXMubWF4UGhvbmVMZW5ndGgsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaCA9PT0gc2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdChzZWFyY2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUobmV3Q291bnRyeUNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNUZXh0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5yZXBsYWNlKHRoaXMuY291bnRyeUNvZGUsIG5ld0NvdW50cnlDb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTihwYXJzZUludCh2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCBgYCksIDEwKSk7XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImNhbk9wZW5cIlxuICAgIFtjb250ZW50XT1cImRhdGFsaXN0IHx8ICcnXCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICBbdGV4dE1hc2tdPVwidGV4dE1hc2tPcHRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJjYW5DbGVhblwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCJcbiAgICAgICAgKHBhc3RlLnByZXZlbnQpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixXQUFXLEVBQ1gsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLFlBQVksRUFDWiwwQkFBMEIsRUFFMUIsY0FBYyxFQUNkLGlCQUFpQixFQUVqQix1QkFBdUIsRUFFdkIsa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQixjQUFjLEVBQ2QsMEJBQTBCLEVBQzFCLDhCQUE4QixHQUdqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFlcEYsTUFBTSxPQUFPLHNCQUNULFNBQVEsa0JBQTBCO0lBOERsQyxZ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aGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNlbGYsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICBUdWlBY3RpdmVab25lRGlyZWN0aXZlLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aURlc3Ryb3lTZXJ2aWNlLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlHZXRDbGlwYm9hcmREYXRhVGV4dCxcbiAgICBUdWlJbnB1dE1vZGUsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkLFxuICAgIHR1aVJlcXVpcmVkU2V0dGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX1NFTEVDVElPTl9TVFJFQU0sXG4gICAgVFVJX1RFWFRGSUVMRF9DTEVBTkVSLFxuICAgIHR1aUFzRGF0YUxpc3RIb3N0LFxuICAgIFR1aURhdGFMaXN0RGlyZWN0aXZlLFxuICAgIFR1aURhdGFMaXN0SG9zdCxcbiAgICB0dWlGb3JtYXRQaG9uZSxcbiAgICBUdWlIb3N0ZWREcm9wZG93bkNvbXBvbmVudCxcbiAgICBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQsXG4gICAgVHVpVGV4dGZpZWxkQ2xlYW5lckRpcmVjdGl2ZSxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7RklYRURfRFJPUERPV05fQ09OVFJPTExFUl9QUk9WSURFUn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9wcm92aWRlcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7VFVJX0lOUFVUX1BIT05FX09QVElPTlMsIFR1aUlucHV0UGhvbmVPcHRpb25zfSBmcm9tICcuL2lucHV0LXBob25lLm9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3R1aS1pbnB1dC1waG9uZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBob25lLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXBob25lLnN0eWxlLmxlc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRQaG9uZUNvbXBvbmVudCksXG4gICAgICAgIHR1aUFzRGF0YUxpc3RIb3N0KFR1aUlucHV0UGhvbmVDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dFBob25lQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aUNvbnRyb2w8c3RyaW5nPlxuICAgIGltcGxlbWVudHMgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLCBUdWlEYXRhTGlzdEhvc3Q8c3RyaW5nPlxue1xuICAgIEBWaWV3Q2hpbGQoVHVpSG9zdGVkRHJvcGRvd25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBkcm9wZG93bj86IFR1aUhvc3RlZERyb3Bkb3duQ29tcG9uZW50O1xuXG4gICAgQFZpZXdDaGlsZChUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQ/OiBUdWlQcmltaXRpdmVUZXh0ZmllbGRDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoJ2NvdW50cnlDb2RlJylcbiAgICBAdHVpUmVxdWlyZWRTZXR0ZXIoKVxuICAgIHNldCBjb3VudHJ5Q29kZVNldHRlcihjb3VudHJ5Q29kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUoY291bnRyeUNvZGUpO1xuICAgICAgICB0aGlzLmNvdW50cnlDb2RlID0gY291bnRyeUNvZGU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhbGxvd1RleHQgPSB0aGlzLm9wdGlvbnMuYWxsb3dUZXh0O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlYXJjaCA9ICcnO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgc2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKFR1aURhdGFMaXN0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWZ9KVxuICAgIHJlYWRvbmx5IGRhdGFsaXN0PzogVGVtcGxhdGVSZWY8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxUdWlBY3RpdmVab25lRGlyZWN0aXZlPj47XG5cbiAgICByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogdmFsdWUgPT5cbiAgICAgICAgICAgIHRoaXMuYWxsb3dUZXh0ICYmICF0aGlzLnZhbHVlICYmIGlzVGV4dCh2YWx1ZSkgJiYgdmFsdWUgIT09ICcrJ1xuICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmNvdW50cnlDb2RlLnNwbGl0KCcnKSxcbiAgICAgICAgICAgICAgICAgICAgICAnICcsXG4gICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9bXiNcXC0gKCldKy9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gKGl0ZW0gPT09ICcjJyA/IC9cXGQvIDogaXRlbSkpLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgcGlwZTogdmFsdWUgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWxsb3dUZXh0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcnICYmIHRoaXMuZm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5jb3VudHJ5Q29kZX0gYFxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZSgvLSQvLCAnJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY291bnRyeUNvZGUgPSB0aGlzLm9wdGlvbnMuY291bnRyeUNvZGU7XG5cbiAgICBvcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KE5nQ29udHJvbCkgY29udHJvbDogTmdDb250cm9sIHwgbnVsbCxcbiAgICAgICAgQFNlbGYoKSBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgICAgICAgQEluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBASW5qZWN0KFRVSV9TRUxFQ1RJT05fU1RSRUFNKSBzZWxlY3Rpb24kOiBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgICBASW5qZWN0KFRVSV9URVhURklFTERfQ0xFQU5FUilcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGRDbGVhbmVyOiBUdWlUZXh0ZmllbGRDbGVhbmVyRGlyZWN0aXZlLFxuICAgICAgICBASW5qZWN0KFRVSV9JTlBVVF9QSE9ORV9PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0UGhvbmVPcHRpb25zLFxuICAgICkge1xuICAgICAgICBzdXBlcihjb250cm9sLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgc2VsZWN0aW9uJC5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gIXRoaXMudGV4dGZpZWxkIHx8IHRoaXMuY29tcHV0ZWREaXNhYmxlZFxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHRoaXMudGV4dGZpZWxkLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0dWlJc05hdGl2ZUZvY3VzZWQodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5kcm9wZG93biAmJiB0aGlzLmRyb3Bkb3duLmZvY3VzZWQpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVcbiAgICAgICAgICAgID8gdHVpRm9ybWF0UGhvbmUodGhpcy52YWx1ZSwgdGhpcy5jb3VudHJ5Q29kZSwgdGhpcy5waG9uZU1hc2tBZnRlckNvdW50cnlDb2RlKVxuICAgICAgICAgICAgOiB0aGlzLnNlYXJjaCB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRNb2RlKCk6IFR1aUlucHV0TW9kZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFsbG93VGV4dCA/ICd0ZXh0JyA6ICdudW1lcmljJztcbiAgICB9XG5cbiAgICBnZXQgY2FuT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RpdmUgJiYgISF0aGlzLmRhdGFsaXN0O1xuICAgIH1cblxuICAgIGdldCBjYW5DbGVhbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcHV0ZWRWYWx1ZSAhPT0gdGhpcy5jb3VudHJ5Q29kZSAmJiB0aGlzLnRleHRmaWVsZENsZWFuZXIuY2xlYW5lcjtcbiAgICB9XG5cbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgoZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZVdpdGhvdXRQcmVmaXgodHVpR2V0Q2xpcGJvYXJkRGF0YVRleHQoZXZlbnQgYXMgQ2xpcGJvYXJkRXZlbnQpKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuXG4gICAgICAgIGlmIChhY3RpdmUgJiYgIXRoaXMuY29tcHV0ZWRWYWx1ZSAmJiAhdGhpcy5yZWFkT25seSAmJiAhdGhpcy5hbGxvd1RleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2VhcmNoKHRoaXMuY291bnRyeUNvZGUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkVmFsdWUgPT09IHRoaXMuY291bnRyeUNvZGUgfHxcbiAgICAgICAgICAgICh0aGlzLnNlYXJjaCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIE51bWJlci5pc05hTihcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5zZWFyY2gucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpLCAxMCksXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJhY2tzcGFjZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRhcmdldC5zZWxlY3Rpb25TdGFydCB8fCAwKSA8PSB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgdGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID09PSB0YXJnZXQuc2VsZWN0aW9uRW5kXG4gICAgICAgICkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlID09PSAnJyA/IHRoaXMuY291bnRyeUNvZGUgOiB2YWx1ZTtcblxuICAgICAgICBjb25zdCBwYXJzZWQgPSBpc1RleHQodmFsdWUpXG4gICAgICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICA6IHZhbHVlLnJlcGxhY2UoVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsICcnKS5zbGljZSgwLCB0aGlzLm1heFBob25lTGVuZ3RoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaChwYXJzZWQpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCA9PT0gdGhpcy5jb3VudHJ5Q29kZSB8fCBpc1RleHQocGFyc2VkKSA/ICcnIDogcGFyc2VkKTtcbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBoYW5kbGVPcHRpb24oaXRlbTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGl0ZW0pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlYXJjaCgnJyk7XG4gICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHNldERpc2FibGVkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goJycpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBjYXJldElzSW5Gb3JiaWRkZW5BcmVhKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghbmF0aXZlRm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3NlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmR9ID0gbmF0aXZlRm9jdXNhYmxlRWxlbWVudDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdHVpSXNOYXRpdmVGb2N1c2VkKG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpICYmXG4gICAgICAgICAgICBzZWxlY3Rpb25TdGFydCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPCB0aGlzLm5vblJlbW92YWJsZUxlbmd0aCAmJlxuICAgICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPT09IHNlbGVjdGlvbkVuZFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG5vblJlbW92YWJsZUxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1RleHRWYWx1ZSA/IDAgOiB0aGlzLmNvdW50cnlDb2RlLmxlbmd0aCArIDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbWF4UGhvbmVMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuY291bnRyeUNvZGUubGVuZ3RoICtcbiAgICAgICAgICAgIHRoaXMucGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZS5yZXBsYWNlKC9bXiNdKy9nLCAnJykubGVuZ3RoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUZXh0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuc2VhcmNoICYmIGlzVGV4dCh0aGlzLnNlYXJjaCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDYXJldFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYXJldElzSW5Gb3JiaWRkZW5BcmVhICYmICEhdGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICAgICAgdGhpcy5ub25SZW1vdmFibGVMZW5ndGgsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZVdpdGhvdXRQcmVmaXgodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmNsZWFuVmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWFyY2goXG4gICAgICAgICAgICB0aGlzLmFsbG93VGV4dCAmJiBpc1RleHQodmFsdWUpXG4gICAgICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgICAgIDogdmFsdWUucmVwbGFjZShUVUlfTUFTS19TWU1CT0xTX1JFR0VYUCwgJycpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5WYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVnOiBSZWdFeHAgPVxuICAgICAgICAgICAgdGhpcy5jb3VudHJ5Q29kZSA9PT0gJys3JyA/IC9eN3xeOC8gOiBuZXcgUmVnRXhwKHRoaXMuY291bnRyeUNvZGUuc2xpY2UoMSkpO1xuICAgICAgICBjb25zdCBvbGRWYWx1ZUV4aXN0ID1cbiAgICAgICAgICAgIHRoaXMudmFsdWUubGVuZ3RoID4gdGhpcy5jb3VudHJ5Q29kZS5sZW5ndGggJiZcbiAgICAgICAgICAgIHRoaXMudmFsdWUubGVuZ3RoIDwgdGhpcy5tYXhQaG9uZUxlbmd0aDtcbiAgICAgICAgY29uc3QgbmV3VmFsdWVMZW5ndGggPSB2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJykubGVuZ3RoO1xuICAgICAgICBjb25zdCBjbGVhbk5ld1ZhbHVlID0gdmFsdWUucmVwbGFjZSgvW14wLTldKy9nLCAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbkxlbmd0aCA9IFN0cmluZyhnZXRTZWxlY3Rpb24oKSkubGVuZ3RoO1xuXG4gICAgICAgIGlmIChvbGRWYWx1ZUV4aXN0ICYmIHNlbGVjdGlvbkxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMudmFsdWV9JHtjbGVhbk5ld1ZhbHVlfWAuc2xpY2UoMCwgdGhpcy5tYXhQaG9uZUxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3VmFsdWVMZW5ndGggPCB0aGlzLm1heFBob25lTGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuY291bnRyeUNvZGV9JHtjbGVhbk5ld1ZhbHVlfWAuc2xpY2UoMCwgdGhpcy5tYXhQaG9uZUxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5jb3VudHJ5Q29kZX0ke2NsZWFuTmV3VmFsdWUucmVwbGFjZShyZWcsICcnKX1gLnNsaWNlKFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIHRoaXMubWF4UGhvbmVMZW5ndGgsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaCA9PT0gc2VhcmNoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgICAgdGhpcy5zZWFyY2hDaGFuZ2UuZW1pdChzZWFyY2gpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsdWVXaXRoTmV3Q291bnRyeUNvZGUobmV3Q291bnRyeUNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNUZXh0VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5yZXBsYWNlKHRoaXMuY291bnRyeUNvZGUsIG5ld0NvdW50cnlDb2RlKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE51bWJlci5pc05hTihwYXJzZUludCh2YWx1ZS5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJyksIDEwKSk7XG59XG4iLCI8dHVpLWhvc3RlZC1kcm9wZG93blxuICAgIGNsYXNzPVwidC1ob3N0ZWRcIlxuICAgIFtjYW5PcGVuXT1cImNhbk9wZW5cIlxuICAgIFtjb250ZW50XT1cImRhdGFsaXN0IHx8ICcnXCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgdHVpVmFsdWVBY2Nlc3NvclxuICAgICAgICBjbGFzcz1cInQtdGV4dGZpZWxkXCJcbiAgICAgICAgW3BzZXVkb0hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICAgICAgW3BzZXVkb0ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgICAgIFtpbnZhbGlkXT1cImNvbXB1dGVkSW52YWxpZFwiXG4gICAgICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICBbdGV4dE1hc2tdPVwidGV4dE1hc2tPcHRpb25zXCJcbiAgICAgICAgW3ZhbHVlXT1cImNvbXB1dGVkVmFsdWVcIlxuICAgICAgICBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJjYW5DbGVhblwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCJcbiAgICAgICAgKHBhc3RlLnByZXZlbnQpPVwib25QYXN0ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgICAgIG5nUHJvamVjdEFzPVwiaW5wdXRcIlxuICAgICAgICA+PC9uZy1jb250ZW50PlxuICAgIDwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG48L3R1aS1ob3N0ZWQtZHJvcGRvd24+XG4iXX0=
@@ -15,7 +15,7 @@ export class TuiInputPhoneDirective extends AbstractTuiTextfieldHost {
15
15
  if (!this.input) {
16
16
  return;
17
17
  }
18
- this.input.type = `tel`;
18
+ this.input.type = 'tel';
19
19
  this.input.inputMode = this.host.inputMode;
20
20
  }
21
21
  }
@@ -24,8 +24,8 @@ TuiInputPhoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0",
24
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputPhoneDirective, decorators: [{
25
25
  type: Directive,
26
26
  args: [{
27
- selector: `tui-input-phone`,
27
+ selector: 'tui-input-phone',
28
28
  providers: [tuiAsTextfieldHost(TuiInputPhoneDirective)],
29
29
  }]
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTVFLE1BQU0sT0FBTyxzQkFDVCxTQUFRLHdCQUFnRDtJQUt4RCxJQUFhLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRVEsT0FBTyxDQUFDLEtBQXVCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDYixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDL0MsQ0FBQzs7b0hBekJRLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDBDQUZwQixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLENBQUM7NEZBRTlDLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0Isd0JBQXdCLENBQUM7aUJBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIERvQ2hlY2t9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3QsIHR1aUFzVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aUlucHV0UGhvbmVDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtcGhvbmUuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGB0dWktaW5wdXQtcGhvbmVgLFxuICAgIHByb3ZpZGVyczogW3R1aUFzVGV4dGZpZWxkSG9zdChUdWlJbnB1dFBob25lRGlyZWN0aXZlKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGhvbmVEaXJlY3RpdmVcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpVGV4dGZpZWxkSG9zdDxUdWlJbnB1dFBob25lQ29tcG9uZW50PlxuICAgIGltcGxlbWVudHMgRG9DaGVja1xue1xuICAgIGlucHV0PzogSFRNTElucHV0RWxlbWVudDtcblxuICAgIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBwcm9jZXNzKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnB1dC50eXBlID0gYHRlbGA7XG4gICAgICAgIHRoaXMuaW5wdXQuaW5wdXRNb2RlID0gdGhpcy5ob3N0LmlucHV0TW9kZTtcbiAgICB9XG59XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUvaW5wdXQtcGhvbmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTVFLE1BQU0sT0FBTyxzQkFDVCxTQUFRLHdCQUFnRDtJQUt4RCxJQUFhLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRVEsT0FBTyxDQUFDLEtBQXVCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDYixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDL0MsQ0FBQzs7b0hBekJRLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDBDQUZwQixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLENBQUM7NEZBRTlDLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0Isd0JBQXdCLENBQUM7aUJBQzFEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIERvQ2hlY2t9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3QsIHR1aUFzVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aUlucHV0UGhvbmVDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtcGhvbmUuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUnLFxuICAgIHByb3ZpZGVyczogW3R1aUFzVGV4dGZpZWxkSG9zdChUdWlJbnB1dFBob25lRGlyZWN0aXZlKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUlucHV0UGhvbmVEaXJlY3RpdmVcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpVGV4dGZpZWxkSG9zdDxUdWlJbnB1dFBob25lQ29tcG9uZW50PlxuICAgIGltcGxlbWVudHMgRG9DaGVja1xue1xuICAgIGlucHV0PzogSFRNTElucHV0RWxlbWVudDtcblxuICAgIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0LmNvbXB1dGVkVmFsdWU7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdC5vblZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBwcm9jZXNzKGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXQgPSBpbnB1dDtcbiAgICB9XG5cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnB1dC50eXBlID0gJ3RlbCc7XG4gICAgICAgIHRoaXMuaW5wdXQuaW5wdXRNb2RlID0gdGhpcy5ob3N0LmlucHV0TW9kZTtcbiAgICB9XG59XG4iXX0=
@@ -32,7 +32,7 @@ export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
32
32
  this.open = false;
33
33
  this.arrow = TUI_ARROW;
34
34
  this.isoToCountryCodeMapper = item => this.isoToCountryCode(item);
35
- this.staticPath = iconsPath(`tuiIcon`).replace(`tuiIcon.svg#tuiIcon`, ``);
35
+ this.staticPath = iconsPath('tuiIcon').replace('tuiIcon.svg#tuiIcon', '');
36
36
  }
37
37
  set isoCode(code) {
38
38
  var _a;
@@ -59,16 +59,16 @@ export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
59
59
  return this.getFlagPath(this.countryIsoCode);
60
60
  }
61
61
  onPaste(event) {
62
- let value = tuiExtractValueFromEvent(event).replace(TUI_NON_DIGITS_REGEXP, ``);
62
+ let value = tuiExtractValueFromEvent(event).replace(TUI_NON_DIGITS_REGEXP, '');
63
63
  const countryIsoCode = this.extractCountryCode(value);
64
64
  if (!countryIsoCode) {
65
65
  this.updateValue(`${this.inputPhoneCountryCode}${value}`
66
- .replace(TUI_MASK_SYMBOLS_REGEXP, ``)
66
+ .replace(TUI_MASK_SYMBOLS_REGEXP, '')
67
67
  .slice(0, this.getMaxAllowedLength(this.countryIsoCode)));
68
68
  return;
69
69
  }
70
70
  if (countryIsoCode === TuiCountryIsoCode.RU) {
71
- value = value.replace(/^8/, `7`);
71
+ value = value.replace(/^8/, '7');
72
72
  }
73
73
  this.updateCountryIsoCode(countryIsoCode);
74
74
  this.updateValue(`${CHAR_PLUS}${value}`);
@@ -109,7 +109,7 @@ export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
109
109
  this.close();
110
110
  }
111
111
  isoToCountryCode(isoCode) {
112
- return this.countriesMasks[isoCode].replace(MASK_AFTER_CODE_REGEXP, ``);
112
+ return this.countriesMasks[isoCode].replace(MASK_AFTER_CODE_REGEXP, '');
113
113
  }
114
114
  onModelChange(value) {
115
115
  this.updateValue(value);
@@ -118,16 +118,16 @@ export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
118
118
  this.updateFocused(active);
119
119
  }
120
120
  getFallbackValue() {
121
- return ``;
121
+ return '';
122
122
  }
123
123
  calculateMaskAfterCountryCode(mask, countryCode) {
124
- return mask.replace(countryCode, ``).trim();
124
+ return mask.replace(countryCode, '').trim();
125
125
  }
126
126
  close() {
127
127
  this.open = false;
128
128
  }
129
129
  getMaxAllowedLength(isoCode) {
130
- return this.countriesMasks[isoCode].replace(/[()\- ]/g, ``).length;
130
+ return this.countriesMasks[isoCode].replace(/[()\- ]/g, '').length;
131
131
  }
132
132
  updateCountryIsoCode(code) {
133
133
  this.countryIsoCode = code;
@@ -140,7 +140,7 @@ export class TuiInputPhoneInternationalComponent extends AbstractTuiControl {
140
140
  /^(?!880[1-9 ])/.test(value) &&
141
141
  value.length + 1 === this.getMaxAllowedLength(TuiCountryIsoCode.RU);
142
142
  return (ruCodeTest ||
143
- (value.startsWith(this.isoToCountryCode(countryIsoCode).replace(CHAR_PLUS, ``)) &&
143
+ (value.startsWith(this.isoToCountryCode(countryIsoCode).replace(CHAR_PLUS, '')) &&
144
144
  value.length + 1 === this.getMaxAllowedLength(countryIsoCode)));
145
145
  });
146
146
  }
@@ -149,7 +149,7 @@ TuiInputPhoneInternationalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion
149
149
  TuiInputPhoneInternationalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiInputPhoneInternationalComponent, selector: "tui-input-phone-international", inputs: { isoCode: ["countryIsoCode", "isoCode"], countries: "countries" }, outputs: { countryIsoCodeChange: "countryIsoCodeChange" }, host: { listeners: { "paste.capture.prevent.stop": "onPaste($event)", "drop.capture.prevent.stop": "onPaste($event)" } }, providers: [
150
150
  tuiAsFocusableItemAccessor(TuiInputPhoneInternationalComponent),
151
151
  tuiAsControl(TuiInputPhoneInternationalComponent),
152
- ], viewQueries: [{ propertyName: "inputPhoneComponent", first: true, predicate: TuiInputPhoneComponent, descendants: true }, { propertyName: "primitiveTextfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n *ngIf=\"countriesNames$ | async as countriesNames\"\n class=\"t-hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHintContent=\"\"\n class=\"t-country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldIcon]=\"arrow\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [pseudoFocus]=\"open || null\"\n [readOnly]=\"readOnly\"\n ></tui-primitive-textfield>\n <tui-input-phone\n class=\"t-input-phone tui-group__auto-width-item\"\n [ngModel]=\"value\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ng-content></ng-content>\n <input\n tuiTextfield\n autocomplete=\"off\"\n />\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n alt=\"\"\n class=\"t-country-item-flag\"\n [src]=\"getFlagPath(item)\"\n />\n <span class=\"t-country-item-name\">\n {{ countriesNames[item] }}\n </span>\n <span class=\"t-country-item-code\">\n {{ item | tuiMapper : isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"t-flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryFlagPath\"\n />\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block}:host._disabled{pointer-events:none}.t-hosted-dropdown{display:block}.t-country-select{width:5.625rem}.t-country-select:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}.t-country-select._readonly ::ng-deep input{cursor:default}.t-arrow-icon{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.t-arrow-icon:hover{color:var(--tui-text-02)}:host._readonly .t-arrow-icon,:host._disabled .t-arrow-icon{pointer-events:none}:host[data-mode=onDark] .t-arrow-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow-icon:hover{color:var(--tui-text-01-night)}.t-arrow-icon_open{transform:rotate(180deg)}.t-input-phone{flex:1}.t-flag{width:1.75rem;height:1.25rem;margin-left:-.5rem}.t-country-item-flag{width:1.75rem;height:1.25rem}.t-country-item-name{margin-left:.75rem;margin-right:auto}.t-country-item-code{color:var(--tui-text-02);margin-right:.25rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i2.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { type: i1.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i1.TuiTextfieldCustomContentDirective, selector: "[tuiTextfieldCustomContent]", inputs: ["tuiTextfieldCustomContent"] }, { type: i1.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i2.TuiInputPhoneDirective, selector: "tui-input-phone" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe, "tuiMapper": i4.TuiMapperPipe }, viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
152
+ ], viewQueries: [{ propertyName: "inputPhoneComponent", first: true, predicate: TuiInputPhoneComponent, descendants: true }, { propertyName: "primitiveTextfield", first: true, predicate: TuiPrimitiveTextfieldComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<tui-hosted-dropdown\n *ngIf=\"countriesNames$ | async as countriesNames\"\n class=\"t-hosted-dropdown\"\n [content]=\"dropdown\"\n [canOpen]=\"!readOnly\"\n [(open)]=\"open\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <div tuiGroup>\n <tui-primitive-textfield\n tuiHintContent=\"\"\n tuiTextfieldPrefix=\"\"\n tuiTextfieldPostfix=\"\"\n class=\"t-country-select tui-group__auto-width-item\"\n [tuiTextfieldCustomContent]=\"countryValueContent\"\n [tuiTextfieldLabelOutside]=\"true\"\n [tuiTextfieldIcon]=\"arrow\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [editable]=\"false\"\n [pseudoFocus]=\"open || null\"\n [readOnly]=\"readOnly\"\n ></tui-primitive-textfield>\n <tui-input-phone\n class=\"t-input-phone tui-group__auto-width-item\"\n [ngModel]=\"value\"\n [disabled]=\"disabled\"\n [focusable]=\"focusable\"\n [countryCode]=\"inputPhoneCountryCode\"\n [phoneMaskAfterCountryCode]=\"phoneMaskAfterCountryCode\"\n [readOnly]=\"readOnly\"\n [pseudoInvalid]=\"computedInvalid\"\n [pseudoFocus]=\"pseudoFocus\"\n [pseudoHover]=\"pseudoHover\"\n (ngModelChange)=\"onModelChange($event)\"\n >\n <ng-content></ng-content>\n <input\n tuiTextfield\n autocomplete=\"off\"\n />\n </tui-input-phone>\n </div>\n\n <ng-template #dropdown>\n <tui-data-list>\n <button\n *ngFor=\"let item of countries\"\n tuiOption\n (click)=\"onItemClick(item)\"\n >\n <img\n alt=\"\"\n class=\"t-country-item-flag\"\n [src]=\"getFlagPath(item)\"\n />\n <span class=\"t-country-item-name\">\n {{ countriesNames[item] }}\n </span>\n <span class=\"t-country-item-code\">\n {{ item | tuiMapper : isoToCountryCodeMapper }}\n </span>\n </button>\n </tui-data-list>\n </ng-template>\n\n <ng-template #countryValueContent>\n <img\n class=\"t-flag\"\n [alt]=\"countriesNames[countryIsoCode]\"\n [src]=\"countryFlagPath\"\n />\n </ng-template>\n</tui-hosted-dropdown>\n", styles: [":host{display:block}:host._disabled{pointer-events:none}.t-hosted-dropdown{display:block}.t-country-select{width:5.625rem}.t-country-select:not(._readonly) ::ng-deep input:not(:disabled){cursor:pointer}.t-country-select._readonly ::ng-deep input{cursor:default}.t-country-select[data-size=m]{width:5.5rem}.t-country-select[data-size=s]{width:2rem}.t-country-select[data-size=s] .t-flag{margin-left:-1rem}.t-arrow-icon{transition-property:all;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;color:var(--tui-text-03);position:relative;box-sizing:border-box;cursor:pointer;transition-property:color,transform}.t-arrow-icon:hover{color:var(--tui-text-02)}:host._readonly .t-arrow-icon,:host._disabled .t-arrow-icon{pointer-events:none}:host[data-mode=onDark] .t-arrow-icon{color:var(--tui-text-03-night)}:host[data-mode=onDark] .t-arrow-icon:hover{color:var(--tui-text-01-night)}.t-arrow-icon_open{transform:rotate(180deg)}.t-input-phone{flex:1}.t-flag{width:1.75rem;height:1.25rem;margin-left:-.5rem}.t-country-item-flag{width:1.75rem;height:1.25rem}.t-country-item-name{margin-left:.75rem;margin-right:auto}.t-country-item-code{color:var(--tui-text-02);margin-right:.25rem}\n"], components: [{ type: i1.TuiHostedDropdownComponent, selector: "tui-hosted-dropdown", inputs: ["content", "sided", "canOpen", "open"], outputs: ["openChange", "focusedChange"] }, { type: i1.TuiPrimitiveTextfieldComponent, selector: "tui-primitive-textfield", inputs: ["editable", "filler", "iconCleaner", "readOnly", "invalid", "disabled", "prefix", "postfix", "value"], outputs: ["valueChange"] }, { type: i2.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { type: i1.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { type: i1.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { type: i1.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i1.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i1.TuiPrimitiveTextfieldDirective, selector: "tui-primitive-textfield" }, { type: i1.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { type: i1.TuiTextfieldPrefixDirective, selector: "[tuiTextfieldPrefix]", inputs: ["tuiTextfieldPrefix"] }, { type: i1.TuiTextfieldPostfixDirective, selector: "[tuiTextfieldPostfix]", inputs: ["tuiTextfieldPostfix"] }, { type: i1.TuiTextfieldCustomContentDirective, selector: "[tuiTextfieldCustomContent]", inputs: ["tuiTextfieldCustomContent"] }, { type: i1.TuiTextfieldLabelOutsideDirective, selector: "[tuiTextfieldLabelOutside]", inputs: ["tuiTextfieldLabelOutside"] }, { type: i1.TuiTextfieldIconDirective, selector: "[tuiTextfieldIcon]", inputs: ["tuiTextfieldIcon"] }, { type: i2.TuiInputPhoneDirective, selector: "tui-input-phone" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe, "tuiMapper": i4.TuiMapperPipe }, viewProviders: [FIXED_DROPDOWN_CONTROLLER_PROVIDER], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
153
  __decorate([
154
154
  tuiDefaultProp()
155
155
  ], TuiInputPhoneInternationalComponent.prototype, "isoCode", null);
@@ -159,9 +159,9 @@ __decorate([
159
159
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputPhoneInternationalComponent, decorators: [{
160
160
  type: Component,
161
161
  args: [{
162
- selector: `tui-input-phone-international`,
163
- templateUrl: `./input-phone-international.template.html`,
164
- styleUrls: [`./input-phone-international.style.less`],
162
+ selector: 'tui-input-phone-international',
163
+ templateUrl: './input-phone-international.template.html',
164
+ styleUrls: ['./input-phone-international.style.less'],
165
165
  changeDetection: ChangeDetectionStrategy.OnPush,
166
166
  providers: [
167
167
  tuiAsFocusableItemAccessor(TuiInputPhoneInternationalComponent),
@@ -199,16 +199,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
199
199
  args: [TuiPrimitiveTextfieldComponent]
200
200
  }], isoCode: [{
201
201
  type: Input,
202
- args: [`countryIsoCode`]
202
+ args: ['countryIsoCode']
203
203
  }], countries: [{
204
204
  type: Input
205
205
  }], countryIsoCodeChange: [{
206
206
  type: Output
207
207
  }], onPaste: [{
208
208
  type: HostListener,
209
- args: [`paste.capture.prevent.stop`, [`$event`]]
209
+ args: ['paste.capture.prevent.stop', ['$event']]
210
210
  }, {
211
211
  type: HostListener,
212
- args: [`drop.capture.prevent.stop`, [`$event`]]
212
+ args: ['drop.capture.prevent.stop', ['$event']]
213
213
  }], calculateMaskAfterCountryCode: [] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxZQUFZLEVBQ1osMEJBQTBCLEVBRTFCLGNBQWMsRUFHZCxPQUFPLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUlqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1B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aEIsa0JBQWtCO3NCQURsQyxTQUFTO3VCQUFDLDhCQUE4QjtnQkFPckMsT0FBTztzQkFGVixLQUFLO3VCQUFDLGdCQUFnQjtnQkFRdkIsU0FBUztzQkFEUixLQUFLO2dCQUlHLG9CQUFvQjtzQkFENUIsTUFBTTtnQkErRFAsT0FBTztzQkFGTixZQUFZO3VCQUFDLDRCQUE0QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckQsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvRjdDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgQ0hBUl9QTFVTLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNYXBwZXIsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0lDT05TX1BBVEgsXG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX05PTl9ESUdJVFNfUkVHRVhQLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplTSxcbiAgICBUdWlTaXplUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4nO1xuaW1wb3J0IHtUVUlfQVJST1d9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aUlucHV0UGhvbmVDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZSc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0NPVU5UUklFU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNQVNLX0FGVEVSX0NPREVfUkVHRVhQfSBmcm9tICcuL2NvbnN0L21hc2stYWZ0ZXItY29kZS1yZWdleHAnO1xuaW1wb3J0IHtcbiAgICBUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsT3B0aW9ucyxcbn0gZnJvbSAnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTX01BU0tTfSBmcm9tICcuL3Rva2Vucy9jb3VudHJpZXMtbWFza3MnO1xuaW1wb3J0IHt0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnR9IGZyb20gJy4vdXRpbHMvZXh0cmFjdC12YWx1ZS1mcm9tLWV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbGAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aUlucHV0UGhvbmVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFBob25lQ29tcG9uZW50PzogVHVpSW5wdXRQaG9uZUNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlVGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0aWNQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dChgY291bnRyeUlzb0NvZGVgKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2V0IGlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dFBob25lQ29tcG9uZW50Py53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlID0gY29kZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGNvdW50cmllcyA9IHRoaXMub3B0aW9ucy5jb3VudHJpZXM7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpQ291bnRyeUlzb0NvZGU+KCk7XG5cbiAgICBjb3VudHJ5SXNvQ29kZSA9IHRoaXMub3B0aW9ucy5jb3VudHJ5SXNvQ29kZTtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IGFycm93OiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZU0gfCBUdWlTaXplUz5cbiAgICA+ID0gVFVJX0FSUk9XO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfSUNPTlNfUEFUSClcbiAgICAgICAgaWNvbnNQYXRoOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NPVU5UUklFUylcbiAgICAgICAgcmVhZG9ubHkgY291bnRyaWVzTmFtZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NPVU5UUklFU19NQVNLUylcbiAgICAgICAgcmVhZG9ubHkgY291bnRyaWVzTWFza3M6IFJlY29yZDxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgICAgIHRoaXMuc3RhdGljUGF0aCA9IGljb25zUGF0aChgdHVpSWNvbmApLnJlcGxhY2UoYHR1aUljb24uc3ZnI3R1aUljb25gLCBgYCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudCAmJiAhdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5uYXRpdmVGb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoISF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCAmJiB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC5mb2N1c2VkKSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFBob25lQ291bnRyeUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvVG9Db3VudHJ5Q29kZSh0aGlzLmNvdW50cnlJc29Db2RlKTtcbiAgICB9XG5cbiAgICBnZXQgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuaXNvVG9Db3VudHJ5Q29kZSh0aGlzLmNvdW50cnlJc29Db2RlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVNYXNrQWZ0ZXJDb3VudHJ5Q29kZShcbiAgICAgICAgICAgIHRoaXMuY291bnRyaWVzTWFza3NbdGhpcy5jb3VudHJ5SXNvQ29kZV0sXG4gICAgICAgICAgICBjb3VudHJ5Q29kZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY291bnRyeUZsYWdQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZsYWdQYXRoKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoYHBhc3RlLmNhcHR1cmUucHJldmVudC5zdG9wYCwgW2AkZXZlbnRgXSlcbiAgICBASG9zdExpc3RlbmVyKGBkcm9wLmNhcHR1cmUucHJldmVudC5zdG9wYCwgW2AkZXZlbnRgXSlcbiAgICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCB8IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsdWUgPSB0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnQoZXZlbnQpLnJlcGxhY2UoVFVJX05PTl9ESUdJVFNfUkVHRVhQLCBgYCk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gdGhpcy5leHRyYWN0Q291bnRyeUNvZGUodmFsdWUpO1xuXG4gICAgICAgIGlmICghY291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5pbnB1dFBob25lQ291bnRyeUNvZGV9JHt2YWx1ZX1gXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCBgYClcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aCh0aGlzLmNvdW50cnlJc29Db2RlKSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY291bnRyeUlzb0NvZGUgPT09IFR1aUNvdW50cnlJc29Db2RlLlJVKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL144LywgYDdgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoY291bnRyeUlzb0NvZGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGAke0NIQVJfUExVU30ke3ZhbHVlfWApO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGlzb1RvQ291bnRyeUNvZGVNYXBwZXI6IFR1aU1hcHBlcjxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPiA9IGl0ZW0gPT5cbiAgICAgICAgdGhpcy5pc29Ub0NvdW50cnlDb2RlKGl0ZW0pO1xuXG4gICAgZ2V0RmxhZ1BhdGgoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKGNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgVHVpQ291bnRyeUlzb0NvZGUuQkw6XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLkJROlxuICAgICAgICAgICAgY2FzZSBUdWlDb3VudHJ5SXNvQ29kZS5DVzpcbiAgICAgICAgICAgIGNhc2UgVHVpQ291bnRyeUlzb0NvZGUuR0Y6XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLkdQOlxuICAgICAgICAgICAgY2FzZSBUdWlDb3VudHJ5SXNvQ29kZS5NRjpcbiAgICAgICAgICAgIGNhc2UgVHVpQ291bnRyeUlzb0NvZGUuTVE6XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLlJFOlxuICAgICAgICAgICAgY2FzZSBUdWlDb3VudHJ5SXNvQ29kZS5ZVDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zdGF0aWNQYXRofSR7VHVpQ291bnRyeUlzb0NvZGUuRlJ9LnBuZ2A7XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLlNYOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnN0YXRpY1BhdGh9JHtUdWlDb3VudHJ5SXNvQ29kZS5OTH0ucG5nYDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuc3RhdGljUGF0aH0ke2NvZGV9LnBuZ2A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVDb3VudHJ5SXNvQ29kZShpc29Db2RlKTtcbiAgICAgICAgLy8gcmVjYWxjdWxhdGVzIG1hc2sgaW5zaWRlIGlucHV0UGhvbmUgdG8gcHJldmVudCBpc29Db2RlIGNvbmZsaWN0XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aChpc29Db2RlKTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXNvVG9Db3VudHJ5Q29kZShpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvdW50cmllc01hc2tzW2lzb0NvZGVdLnJlcGxhY2UoTUFTS19BRlRFUl9DT0RFX1JFR0VYUCwgYGApO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYDtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWFza0FmdGVyQ291bnRyeUNvZGUobWFzazogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1hc2sucmVwbGFjZShjb3VudHJ5Q29kZSwgYGApLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1heEFsbG93ZWRMZW5ndGgoaXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3VudHJpZXNNYXNrc1tpc29Db2RlXS5yZXBsYWNlKC9bKClcXC0gXS9nLCBgYCkubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ291bnRyeUlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RDb3VudHJ5Q29kZSh2YWx1ZTogc3RyaW5nKTogVHVpQ291bnRyeUlzb0NvZGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3VudHJpZXMuZmluZChjb3VudHJ5SXNvQ29kZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBydUNvZGVUZXN0ID1cbiAgICAgICAgICAgICAgICBjb3VudHJ5SXNvQ29kZSA9PT0gVHVpQ291bnRyeUlzb0NvZGUuUlUgJiZcbiAgICAgICAgICAgICAgICAvXls3IHwgOF0vLnRlc3QodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgL14oPyE4ODBbMS05IF0pLy50ZXN0KHZhbHVlKSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmxlbmd0aCArIDEgPT09IHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aChUdWlDb3VudHJ5SXNvQ29kZS5SVSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgcnVDb2RlVGVzdCB8fFxuICAgICAgICAgICAgICAgICh2YWx1ZS5zdGFydHNXaXRoKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzb1RvQ291bnRyeUNvZGUoY291bnRyeUlzb0NvZGUpLnJlcGxhY2UoQ0hBUl9QTFVTLCBgYCksXG4gICAgICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggKyAxID09PSB0aGlzLmdldE1heEFsbG93ZWRMZW5ndGgoY291bnRyeUlzb0NvZGUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHR1aS1ob3N0ZWQtZHJvcGRvd25cbiAgICAqbmdJZj1cImNvdW50cmllc05hbWVzJCB8IGFzeW5jIGFzIGNvdW50cmllc05hbWVzXCJcbiAgICBjbGFzcz1cInQtaG9zdGVkLWRyb3Bkb3duXCJcbiAgICBbY29udGVudF09XCJkcm9wZG93blwiXG4gICAgW2Nhbk9wZW5dPVwiIXJlYWRPbmx5XCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8ZGl2IHR1aUdyb3VwPlxuICAgICAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgICAgIHR1aUhpbnRDb250ZW50PVwiXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jb3VudHJ5LXNlbGVjdCB0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudF09XCJjb3VudHJ5VmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRMYWJlbE91dHNpZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJhcnJvd1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Gb2N1c109XCJvcGVuIHx8IG51bGxcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgPjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4gICAgICAgIDx0dWktaW5wdXQtcGhvbmVcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dC1waG9uZSB0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2NvdW50cnlDb2RlXT1cImlucHV0UGhvbmVDb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBbcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZV09XCJwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC90dWktaW5wdXQtcGhvbmU+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgICA8dHVpLWRhdGEtbGlzdD5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY291bnRyeS1pdGVtLWZsYWdcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldEZsYWdQYXRoKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb3VudHJ5LWl0ZW0tbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudHJpZXNOYW1lc1tpdGVtXSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY291bnRyeS1pdGVtLWNvZGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB8IHR1aU1hcHBlciA6IGlzb1RvQ291bnRyeUNvZGVNYXBwZXIgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NvdW50cnlWYWx1ZUNvbnRlbnQ+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgIFthbHRdPVwiY291bnRyaWVzTmFtZXNbY291bnRyeUlzb0NvZGVdXCJcbiAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeUZsYWdQYXRoXCJcbiAgICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsL2lucHV0LXBob25lLWludGVybmF0aW9uYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVCxZQUFZLEVBQ1osMEJBQTBCLEVBRTFCLGNBQWMsRUFHZCxPQUFPLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLDhCQUE4QixHQUlqQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1B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aEIsa0JBQWtCO3NCQURsQyxTQUFTO3VCQUFDLDhCQUE4QjtnQkFPckMsT0FBTztzQkFGVixLQUFLO3VCQUFDLGdCQUFnQjtnQkFRdkIsU0FBUztzQkFEUixLQUFLO2dCQUlHLG9CQUFvQjtzQkFENUIsTUFBTTtnQkErRFAsT0FBTztzQkFGTixZQUFZO3VCQUFDLDRCQUE0QixFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDckQsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFvRjdDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgQ0hBUl9QTFVTLFxuICAgIHR1aUFzQ29udHJvbCxcbiAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcixcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICBUdWlNYXBwZXIsXG4gICAgdHVpUHVyZSxcbiAgICBUdWlTdHJpbmdIYW5kbGVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7XG4gICAgVFVJX0lDT05TX1BBVEgsXG4gICAgVFVJX01BU0tfU1lNQk9MU19SRUdFWFAsXG4gICAgVFVJX05PTl9ESUdJVFNfUkVHRVhQLFxuICAgIFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudCxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlTaXplTSxcbiAgICBUdWlTaXplUyxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtUdWlDb3VudHJ5SXNvQ29kZX0gZnJvbSAnQHRhaWdhLXVpL2kxOG4nO1xuaW1wb3J0IHtUVUlfQVJST1d9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9hcnJvdyc7XG5pbXBvcnQge1R1aUlucHV0UGhvbmVDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC1waG9uZSc7XG5pbXBvcnQge0ZJWEVEX0RST1BET1dOX0NPTlRST0xMRVJfUFJPVklERVJ9IGZyb20gJ0B0YWlnYS11aS9raXQvcHJvdmlkZXJzJztcbmltcG9ydCB7VFVJX0NPVU5UUklFU30gZnJvbSAnQHRhaWdhLXVpL2tpdC90b2tlbnMnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNQVNLX0FGVEVSX0NPREVfUkVHRVhQfSBmcm9tICcuL2NvbnN0L21hc2stYWZ0ZXItY29kZS1yZWdleHAnO1xuaW1wb3J0IHtcbiAgICBUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TLFxuICAgIFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsT3B0aW9ucyxcbn0gZnJvbSAnLi9pbnB1dC1waG9uZS1pbnRlcm5hdGlvbmFsLm9wdGlvbnMnO1xuaW1wb3J0IHtUVUlfQ09VTlRSSUVTX01BU0tTfSBmcm9tICcuL3Rva2Vucy9jb3VudHJpZXMtbWFza3MnO1xuaW1wb3J0IHt0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnR9IGZyb20gJy4vdXRpbHMvZXh0cmFjdC12YWx1ZS1mcm9tLWV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0dWktaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXBob25lLWludGVybmF0aW9uYWwudGVtcGxhdGUuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtcGhvbmUtaW50ZXJuYXRpb25hbC5zdHlsZS5sZXNzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtGSVhFRF9EUk9QRE9XTl9DT05UUk9MTEVSX1BST1ZJREVSXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRQaG9uZUludGVybmF0aW9uYWxDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aUlucHV0UGhvbmVDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dFBob25lQ29tcG9uZW50PzogVHVpSW5wdXRQaG9uZUNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJpbWl0aXZlVGV4dGZpZWxkPzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0aWNQYXRoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgnY291bnRyeUlzb0NvZGUnKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc2V0IGlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgdGhpcy5pbnB1dFBob25lQ29tcG9uZW50Py53cml0ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLmNvdW50cnlJc29Db2RlID0gY29kZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGNvdW50cmllcyA9IHRoaXMub3B0aW9ucy5jb3VudHJpZXM7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjb3VudHJ5SXNvQ29kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VHVpQ291bnRyeUlzb0NvZGU+KCk7XG5cbiAgICBjb3VudHJ5SXNvQ29kZSA9IHRoaXMub3B0aW9ucy5jb3VudHJ5SXNvQ29kZTtcblxuICAgIG9wZW4gPSBmYWxzZTtcblxuICAgIHJlYWRvbmx5IGFycm93OiBQb2x5bW9ycGhldXNDb250ZW50PFxuICAgICAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0PFR1aVNpemVMIHwgVHVpU2l6ZU0gfCBUdWlTaXplUz5cbiAgICA+ID0gVFVJX0FSUk9XO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChUVUlfSUNPTlNfUEFUSClcbiAgICAgICAgaWNvbnNQYXRoOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NPVU5UUklFUylcbiAgICAgICAgcmVhZG9ubHkgY291bnRyaWVzTmFtZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPj4sXG4gICAgICAgIEBJbmplY3QoVFVJX0NPVU5UUklFU19NQVNLUylcbiAgICAgICAgcmVhZG9ubHkgY291bnRyaWVzTWFza3M6IFJlY29yZDxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPixcbiAgICAgICAgQEluamVjdChUVUlfSU5QVVRfUEhPTkVfSU5URVJOQVRJT05BTF9PUFRJT05TKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFR1aUlucHV0UGhvbmVJbnRlcm5hdGlvbmFsT3B0aW9ucyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29udHJvbCwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgICAgIHRoaXMuc3RhdGljUGF0aCA9IGljb25zUGF0aCgndHVpSWNvbicpLnJlcGxhY2UoJ3R1aUljb24uc3ZnI3R1aUljb24nLCAnJyk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudCAmJiAhdGhpcy5jb21wdXRlZERpc2FibGVkXG4gICAgICAgICAgICA/IHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5uYXRpdmVGb2N1c2FibGVFbGVtZW50XG4gICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoISF0aGlzLnByaW1pdGl2ZVRleHRmaWVsZCAmJiB0aGlzLnByaW1pdGl2ZVRleHRmaWVsZC5mb2N1c2VkKSB8fFxuICAgICAgICAgICAgKCEhdGhpcy5pbnB1dFBob25lQ29tcG9uZW50ICYmIHRoaXMuaW5wdXRQaG9uZUNvbXBvbmVudC5mb2N1c2VkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpbnB1dFBob25lQ291bnRyeUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvVG9Db3VudHJ5Q29kZSh0aGlzLmNvdW50cnlJc29Db2RlKTtcbiAgICB9XG5cbiAgICBnZXQgcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMuaXNvVG9Db3VudHJ5Q29kZSh0aGlzLmNvdW50cnlJc29Db2RlKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVNYXNrQWZ0ZXJDb3VudHJ5Q29kZShcbiAgICAgICAgICAgIHRoaXMuY291bnRyaWVzTWFza3NbdGhpcy5jb3VudHJ5SXNvQ29kZV0sXG4gICAgICAgICAgICBjb3VudHJ5Q29kZSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgY291bnRyeUZsYWdQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEZsYWdQYXRoKHRoaXMuY291bnRyeUlzb0NvZGUpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlLmNhcHR1cmUucHJldmVudC5zdG9wJywgWyckZXZlbnQnXSlcbiAgICBASG9zdExpc3RlbmVyKCdkcm9wLmNhcHR1cmUucHJldmVudC5zdG9wJywgWyckZXZlbnQnXSlcbiAgICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCB8IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsdWUgPSB0dWlFeHRyYWN0VmFsdWVGcm9tRXZlbnQoZXZlbnQpLnJlcGxhY2UoVFVJX05PTl9ESUdJVFNfUkVHRVhQLCAnJyk7XG4gICAgICAgIGNvbnN0IGNvdW50cnlJc29Db2RlID0gdGhpcy5leHRyYWN0Q291bnRyeUNvZGUodmFsdWUpO1xuXG4gICAgICAgIGlmICghY291bnRyeUlzb0NvZGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5pbnB1dFBob25lQ291bnRyeUNvZGV9JHt2YWx1ZX1gXG4gICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKFRVSV9NQVNLX1NZTUJPTFNfUkVHRVhQLCAnJylcbiAgICAgICAgICAgICAgICAgICAgLnNsaWNlKDAsIHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aCh0aGlzLmNvdW50cnlJc29Db2RlKSksXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY291bnRyeUlzb0NvZGUgPT09IFR1aUNvdW50cnlJc29Db2RlLlJVKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL144LywgJzcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlQ291bnRyeUlzb0NvZGUoY291bnRyeUlzb0NvZGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGAke0NIQVJfUExVU30ke3ZhbHVlfWApO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGlzb1RvQ291bnRyeUNvZGVNYXBwZXI6IFR1aU1hcHBlcjxUdWlDb3VudHJ5SXNvQ29kZSwgc3RyaW5nPiA9IGl0ZW0gPT5cbiAgICAgICAgdGhpcy5pc29Ub0NvdW50cnlDb2RlKGl0ZW0pO1xuXG4gICAgZ2V0RmxhZ1BhdGgoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKGNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgVHVpQ291bnRyeUlzb0NvZGUuQkw6XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLkJROlxuICAgICAgICAgICAgY2FzZSBUdWlDb3VudHJ5SXNvQ29kZS5DVzpcbiAgICAgICAgICAgIGNhc2UgVHVpQ291bnRyeUlzb0NvZGUuR0Y6XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLkdQOlxuICAgICAgICAgICAgY2FzZSBUdWlDb3VudHJ5SXNvQ29kZS5NRjpcbiAgICAgICAgICAgIGNhc2UgVHVpQ291bnRyeUlzb0NvZGUuTVE6XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLlJFOlxuICAgICAgICAgICAgY2FzZSBUdWlDb3VudHJ5SXNvQ29kZS5ZVDpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5zdGF0aWNQYXRofSR7VHVpQ291bnRyeUlzb0NvZGUuRlJ9LnBuZ2A7XG4gICAgICAgICAgICBjYXNlIFR1aUNvdW50cnlJc29Db2RlLlNYOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnN0YXRpY1BhdGh9JHtUdWlDb3VudHJ5SXNvQ29kZS5OTH0ucG5nYDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuc3RhdGljUGF0aH0ke2NvZGV9LnBuZ2A7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy51cGRhdGVDb3VudHJ5SXNvQ29kZShpc29Db2RlKTtcbiAgICAgICAgLy8gcmVjYWxjdWxhdGVzIG1hc2sgaW5zaWRlIGlucHV0UGhvbmUgdG8gcHJldmVudCBpc29Db2RlIGNvbmZsaWN0XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aChpc29Db2RlKTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy52YWx1ZS5zbGljZSgwLCBtYXhMZW5ndGgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRm9jdXNhYmxlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgc2V0RGlzYWJsZWRTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXNvVG9Db3VudHJ5Q29kZShpc29Db2RlOiBUdWlDb3VudHJ5SXNvQ29kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvdW50cmllc01hc2tzW2lzb0NvZGVdLnJlcGxhY2UoTUFTS19BRlRFUl9DT0RFX1JFR0VYUCwgJycpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBvbkFjdGl2ZVpvbmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9jdXNlZChhY3RpdmUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgY2FsY3VsYXRlTWFza0FmdGVyQ291bnRyeUNvZGUobWFzazogc3RyaW5nLCBjb3VudHJ5Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG1hc2sucmVwbGFjZShjb3VudHJ5Q29kZSwgJycpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1heEFsbG93ZWRMZW5ndGgoaXNvQ29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3VudHJpZXNNYXNrc1tpc29Db2RlXS5yZXBsYWNlKC9bKClcXC0gXS9nLCAnJykubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ291bnRyeUlzb0NvZGUoY29kZTogVHVpQ291bnRyeUlzb0NvZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3VudHJ5SXNvQ29kZSA9IGNvZGU7XG4gICAgICAgIHRoaXMuY291bnRyeUlzb0NvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RDb3VudHJ5Q29kZSh2YWx1ZTogc3RyaW5nKTogVHVpQ291bnRyeUlzb0NvZGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3VudHJpZXMuZmluZChjb3VudHJ5SXNvQ29kZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBydUNvZGVUZXN0ID1cbiAgICAgICAgICAgICAgICBjb3VudHJ5SXNvQ29kZSA9PT0gVHVpQ291bnRyeUlzb0NvZGUuUlUgJiZcbiAgICAgICAgICAgICAgICAvXls3IHwgOF0vLnRlc3QodmFsdWUpICYmXG4gICAgICAgICAgICAgICAgL14oPyE4ODBbMS05IF0pLy50ZXN0KHZhbHVlKSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlLmxlbmd0aCArIDEgPT09IHRoaXMuZ2V0TWF4QWxsb3dlZExlbmd0aChUdWlDb3VudHJ5SXNvQ29kZS5SVSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgcnVDb2RlVGVzdCB8fFxuICAgICAgICAgICAgICAgICh2YWx1ZS5zdGFydHNXaXRoKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzb1RvQ291bnRyeUNvZGUoY291bnRyeUlzb0NvZGUpLnJlcGxhY2UoQ0hBUl9QTFVTLCAnJyksXG4gICAgICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggKyAxID09PSB0aGlzLmdldE1heEFsbG93ZWRMZW5ndGgoY291bnRyeUlzb0NvZGUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHR1aS1ob3N0ZWQtZHJvcGRvd25cbiAgICAqbmdJZj1cImNvdW50cmllc05hbWVzJCB8IGFzeW5jIGFzIGNvdW50cmllc05hbWVzXCJcbiAgICBjbGFzcz1cInQtaG9zdGVkLWRyb3Bkb3duXCJcbiAgICBbY29udGVudF09XCJkcm9wZG93blwiXG4gICAgW2Nhbk9wZW5dPVwiIXJlYWRPbmx5XCJcbiAgICBbKG9wZW4pXT1cIm9wZW5cIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZSgkZXZlbnQpXCJcbj5cbiAgICA8ZGl2IHR1aUdyb3VwPlxuICAgICAgICA8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICAgICAgICAgIHR1aUhpbnRDb250ZW50PVwiXCJcbiAgICAgICAgICAgIHR1aVRleHRmaWVsZFByZWZpeD1cIlwiXG4gICAgICAgICAgICB0dWlUZXh0ZmllbGRQb3N0Zml4PVwiXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1jb3VudHJ5LXNlbGVjdCB0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudF09XCJjb3VudHJ5VmFsdWVDb250ZW50XCJcbiAgICAgICAgICAgIFt0dWlUZXh0ZmllbGRMYWJlbE91dHNpZGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbdHVpVGV4dGZpZWxkSWNvbl09XCJhcnJvd1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2VkaXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Gb2N1c109XCJvcGVuIHx8IG51bGxcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgPjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4gICAgICAgIDx0dWktaW5wdXQtcGhvbmVcbiAgICAgICAgICAgIGNsYXNzPVwidC1pbnB1dC1waG9uZSB0dWktZ3JvdXBfX2F1dG8td2lkdGgtaXRlbVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgICAgICAgICAgW2NvdW50cnlDb2RlXT1cImlucHV0UGhvbmVDb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICBbcGhvbmVNYXNrQWZ0ZXJDb3VudHJ5Q29kZV09XCJwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICBbcHNldWRvSW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgICAgICAgICAgW3BzZXVkb0ZvY3VzXT1cInBzZXVkb0ZvY3VzXCJcbiAgICAgICAgICAgIFtwc2V1ZG9Ib3Zlcl09XCJwc2V1ZG9Ib3ZlclwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0dWlUZXh0ZmllbGRcbiAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC90dWktaW5wdXQtcGhvbmU+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgICA8dHVpLWRhdGEtbGlzdD5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInQtY291bnRyeS1pdGVtLWZsYWdcIlxuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldEZsYWdQYXRoKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb3VudHJ5LWl0ZW0tbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudHJpZXNOYW1lc1tpdGVtXSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInQtY291bnRyeS1pdGVtLWNvZGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB8IHR1aU1hcHBlciA6IGlzb1RvQ291bnRyeUNvZGVNYXBwZXIgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC90dWktZGF0YS1saXN0PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NvdW50cnlWYWx1ZUNvbnRlbnQ+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwidC1mbGFnXCJcbiAgICAgICAgICAgIFthbHRdPVwiY291bnRyaWVzTmFtZXNbY291bnRyeUlzb0NvZGVdXCJcbiAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeUZsYWdQYXRoXCJcbiAgICAgICAgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC90dWktaG9zdGVkLWRyb3Bkb3duPlxuIl19